From 0eec3b1d564b7afe3b108dbdb40344f4d79cde45cc6d79a6f8a2bad8da3f0333 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 10:50:38 +0000 Subject: [PATCH 01/19] - There should be a package libjulia19. - CFLAGS and CXXFLAGS use %optflags. OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=140 --- julia.changes | 6 ++++++ julia.spec | 37 +++++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/julia.changes b/julia.changes index c1184d4..5d7215f 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Dec 17 10:46:54 UTC 2023 - Soc Virnyl Estela + +- There should be a package libjulia19. +- CFLAGS and CXXFLAGS use %optflags. + ------------------------------------------------------------------- Wed Dec 13 00:36:26 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index d8c6603..38e7403 100644 --- a/julia.spec +++ b/julia.spec @@ -32,6 +32,7 @@ %define libjulia_sover_major 1 %define libjulia_sover_minor 9 +%define libname libjulia%{libjulia_sover_major}%{libjulia_sover_minor} %if "@BUILD_FLAVOR@%{nil}" == "compat" %define compat_mode 1 %else @@ -147,6 +148,8 @@ ExclusiveArch: x86_64 %else ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %endif +# Julia requires this or it will break +Requires: %{name}-devel = %{version} %description Julia is a high-level, high-performance dynamic programming language for @@ -162,11 +165,12 @@ to use julia, please install juliaup instead. %package devel Summary: Julia development, debugging and testing files +Version: %{version} Group: Development/Languages/Other -Requires: %{name} = %{version} +Requires: %{libname} = %{version} %if 0%{?compat_mode} Conflicts: julia-devel -Provides: julia-devel = %{version} +Provides: julia-devel %endif %description devel @@ -176,6 +180,13 @@ 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 -n %{libname} +Summary: Julia shared object libraries +Group: System/Libraries + +%description -n %{libname} +Contains library files for interacting with Julia through C interfaces. + %prep %setup -q -n julia-%{version} patch -p1 -i %{PATCH1} @@ -250,11 +261,8 @@ sed "s/ \$(build_prefix)\\/manifest\\/zlib//" -i deps/llvm.mk 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 CXXFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized" +export CFLAGS="%{optflags}" +export CXXFLAGS="%{optflags}" export LD_LIBRARY_PATH=%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:%{_builddir}/%{buildsubdir}/usr/lib pushd deps @@ -327,11 +335,8 @@ fi # make %{?_smp_mflags} test %install -# 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 CXXFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized" +export CFLAGS="%{optflags}" +export CXXFLAGS="%{optflags}" export LD_LIBRARY_PATH=%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:%{_builddir}/%{buildsubdir}/usr/lib make install DESTDIR=%{buildroot} \ @@ -434,7 +439,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/alternatives if [ "x%{_lib}" != xlib ] ; then mkdir -p %{buildroot}%{_prefix}/lib - ln -sf %{_libdir}/julia %{buildroot}%{_prefix}/lib/julia + ln -sf %{_libdir}/julia %{buildroot}%{_prefix}/lib/julia fi ln -sf %{_sysconfdir}/alternatives/julia %{buildroot}%{_bindir}/julia @@ -452,6 +457,8 @@ fi %post devel -p /sbin/ldconfig %postun devel -p /sbin/ldconfig +%post %{libname} -p /sbin/ldconfig +%postun %{libname} -p /sbin/ldconfig %files %doc CONTRIBUTING.md NEWS.md README.md @@ -486,7 +493,9 @@ fi %{_datadir}/julia/test/ %{_datadir}/julia/julia-config.jl %{_includedir}/julia/ -%{_libdir}/libjulia.so.%{libjulia_sover_major} %{_libdir}/libjulia.so +%files -n %{libname} +%{_libdir}/libjulia.so.* + %changelog From 509204afcb2f17c58edd7159e0dedf19242cadeb4bd133a65cf51832166b996a Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 10:51:12 +0000 Subject: [PATCH 02/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=141 --- julia.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/julia.spec b/julia.spec index 38e7403..5b16ce2 100644 --- a/julia.spec +++ b/julia.spec @@ -165,7 +165,6 @@ to use julia, please install juliaup instead. %package devel Summary: Julia development, debugging and testing files -Version: %{version} Group: Development/Languages/Other Requires: %{libname} = %{version} %if 0%{?compat_mode} From 2c9fb3e602f72de819b27101c4540ddd2ae10c42a82120ac824ddbfa432fbaae Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 10:55:43 +0000 Subject: [PATCH 03/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=142 --- julia.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/julia.spec b/julia.spec index 5b16ce2..37945ee 100644 --- a/julia.spec +++ b/julia.spec @@ -454,10 +454,10 @@ if [ ! -f %{_bindir}/julia-base ] ; then fi %{_sbindir}/ldconfig -%post devel -p /sbin/ldconfig -%postun devel -p /sbin/ldconfig -%post %{libname} -p /sbin/ldconfig -%postun %{libname} -p /sbin/ldconfig +%post devel -p %{_sbindir}/ldconfig +%postun devel -p %{_sbindir}/ldconfig +%post -n %{libname} -p %{_sbindir}/ldconfig +%postun -n %{libname} -p %{_sbindir}/ldconfig %files %doc CONTRIBUTING.md NEWS.md README.md From c7a05ef11fd4534aef7fad1ffc19e51499415e620dad038e2c7e748ec568ff29 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 11:17:48 +0000 Subject: [PATCH 04/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=143 --- julia.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/julia.spec b/julia.spec index 37945ee..169b44e 100644 --- a/julia.spec +++ b/julia.spec @@ -149,7 +149,7 @@ ExclusiveArch: x86_64 ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %endif # Julia requires this or it will break -Requires: %{name}-devel = %{version} +Requires: %{libname} %description Julia is a high-level, high-performance dynamic programming language for From 40226658e82b93ced8894cb93a2cf52e75468192de97596d5f79bbf60e145ddb Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 13:01:11 +0000 Subject: [PATCH 05/19] - libjulia19 package should be unambiguous if it is for julia-compat or julia OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=144 --- julia.changes | 5 +++++ julia.spec | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/julia.changes b/julia.changes index 5d7215f..42b53ef 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Dec 17 13:00:29 UTC 2023 - Soc Virnyl Estela + +- libjulia19 package should be unambiguous if it is for julia-compat or julia + ------------------------------------------------------------------- Sun Dec 17 10:46:54 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index 169b44e..fc92f3b 100644 --- a/julia.spec +++ b/julia.spec @@ -179,12 +179,14 @@ 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. +%if 0%{?compat_mode} || 1%{?compat_mode} %package -n %{libname} Summary: Julia shared object libraries Group: System/Libraries %description -n %{libname} Contains library files for interacting with Julia through C interfaces. +%endif %prep %setup -q -n julia-%{version} @@ -494,7 +496,9 @@ fi %{_includedir}/julia/ %{_libdir}/libjulia.so +%if 0%{?compat_mode} || 1%{?compat_mode} %files -n %{libname} %{_libdir}/libjulia.so.* +%endif %changelog From 6babdb9cd761c0d2d0f2c70a0d4c247b74479aa2abbf2aa54a5bc87307cbe22e Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 15:37:23 +0000 Subject: [PATCH 06/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=145 --- julia.spec | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/julia.spec b/julia.spec index fc92f3b..e91dcf1 100644 --- a/julia.spec +++ b/julia.spec @@ -32,13 +32,19 @@ %define libjulia_sover_major 1 %define libjulia_sover_minor 9 -%define libname libjulia%{libjulia_sover_major}%{libjulia_sover_minor} + %if "@BUILD_FLAVOR@%{nil}" == "compat" %define compat_mode 1 %else %define compat_mode 0 %endif +%if 0%{?compat_mode} +%define libname libjulia-compat%{libjulia_sover_major}%{libjulia_sover_minor} +%else +%define libname libjulia%{libjulia_sover_major}%{libjulia_sover_minor} +%endif + # LTO currently makes building blastrampoline and Julia itself fail # It is not enabled upstream anyway %global _lto_cflags %nil @@ -179,14 +185,16 @@ 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. -%if 0%{?compat_mode} || 1%{?compat_mode} %package -n %{libname} Summary: Julia shared object libraries Group: System/Libraries +%if 0%{?compat_mode} +Conflicts: libjulia%{libjulia_sover_major}%{libjulia_sover_minor} +Provides: libjulia%{libjulia_sover_major}%{libjulia_sover_minor} +%endif %description -n %{libname} Contains library files for interacting with Julia through C interfaces. -%endif %prep %setup -q -n julia-%{version} @@ -496,9 +504,7 @@ fi %{_includedir}/julia/ %{_libdir}/libjulia.so -%if 0%{?compat_mode} || 1%{?compat_mode} %files -n %{libname} %{_libdir}/libjulia.so.* -%endif %changelog From 89b7b38d8c46d397b90456575087b18cf1d839174d4e920820f03cba9841e68a Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Sun, 17 Dec 2023 16:25:06 +0000 Subject: [PATCH 07/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=146 --- julia.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/julia.spec b/julia.spec index e91dcf1..0895ec1 100644 --- a/julia.spec +++ b/julia.spec @@ -154,8 +154,6 @@ ExclusiveArch: x86_64 %else ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %endif -# Julia requires this or it will break -Requires: %{libname} %description Julia is a high-level, high-performance dynamic programming language for From b42ea1f83fefbfb526b3e5b85e5ad51e17847a9ec3768c26cba1e5f7b1d20419 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 00:25:54 +0000 Subject: [PATCH 08/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=147 --- julia.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/julia.spec b/julia.spec index 0895ec1..2c5c489 100644 --- a/julia.spec +++ b/julia.spec @@ -491,7 +491,6 @@ fi %{_datadir}/applications/julia.desktop %{_prefix}/lib/julia %{_libdir}/julia/ -%{_libdir}/libjulia.so.%{libjulia_sover_major}.%{libjulia_sover_minor} %{_mandir}/man1/julia.1%{?ext_man} %dir %{_sysconfdir}/julia/ %config(noreplace) %{_sysconfdir}/julia/startup.jl From c2ff07ed391bf48e7c45d4ff2852cff95268cd32dd8c6279f202c3f40ee7b5fc Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 02:14:29 +0000 Subject: [PATCH 09/19] - There should be a package libjulia1. - CFLAGS and CXXFLAGS use provided %optflags. - libjulia-compat1 should provide libjulia1 to fulfill soname shlib naming policies. - Remove unused rpmlints: * devel-dependency - Turn all eol encondings to unix to all files - Add rpmlint for "W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/.pkg" That contains julia scripts. Leave it alone. OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=148 --- julia-rpmlintrc | 3 +-- julia.changes | 17 +++++++++-------- julia.spec | 23 +++++++++++++++++------ 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/julia-rpmlintrc b/julia-rpmlintrc index 636259f..e280502 100644 --- a/julia-rpmlintrc +++ b/julia-rpmlintrc @@ -5,5 +5,4 @@ addFilter("E: arch-dependent-file-in-usr-share*") # We should not unstrip sofiles or binaries generated from this package # https://github.com/JuliaLang/julia/issues/17941 addFilter("unstripped-binary-or-object") -# Julia should be an exception. Otherwise, it fails to execute :) -addFilter("devel-dependency") +addFilter("W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/*") diff --git a/julia.changes b/julia.changes index 42b53ef..6944a54 100644 --- a/julia.changes +++ b/julia.changes @@ -1,13 +1,14 @@ ------------------------------------------------------------------- -Sun Dec 17 13:00:29 UTC 2023 - Soc Virnyl Estela +Mon Dec 18 02:13:44 UTC 2023 - Soc Virnyl Estela -- libjulia19 package should be unambiguous if it is for julia-compat or julia - -------------------------------------------------------------------- -Sun Dec 17 10:46:54 UTC 2023 - Soc Virnyl Estela - -- There should be a package libjulia19. -- CFLAGS and CXXFLAGS use %optflags. +- There should be a package libjulia1. +- CFLAGS and CXXFLAGS use provided %optflags. +- libjulia-compat1 should provide libjulia1 to fulfill soname shlib naming policies. +- Remove unused rpmlints: + * devel-dependency +- Turn all eol encondings to unix to all files +- Add rpmlint for "W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/.pkg" + That contains julia scripts. Leave it alone. ------------------------------------------------------------------- Wed Dec 13 00:36:26 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index 2c5c489..3c367ac 100644 --- a/julia.spec +++ b/julia.spec @@ -40,9 +40,9 @@ %endif %if 0%{?compat_mode} -%define libname libjulia-compat%{libjulia_sover_major}%{libjulia_sover_minor} +%define libname libjulia-compat%{libjulia_sover_major} %else -%define libname libjulia%{libjulia_sover_major}%{libjulia_sover_minor} +%define libname libjulia%{libjulia_sover_major} %endif # LTO currently makes building blastrampoline and Julia itself fail @@ -187,8 +187,8 @@ debugging Julia itself. Summary: Julia shared object libraries Group: System/Libraries %if 0%{?compat_mode} -Conflicts: libjulia%{libjulia_sover_major}%{libjulia_sover_minor} -Provides: libjulia%{libjulia_sover_major}%{libjulia_sover_minor} +Conflicts: libjulia%{libjulia_sover_major} +Provides: libjulia%{libjulia_sover_major} %endif %description -n %{libname} @@ -264,7 +264,7 @@ sed "s/ \$(build_prefix)\\/manifest\\/zlib//" -i deps/llvm.mk %define julia_march x86-64 %endif -%ifarch armv6l armv6hl aarch64 +%ifarch armv6l armv6hl export LDFLAGS="$LDFLAGS -latomic" %endif @@ -342,6 +342,11 @@ fi # make %{?_smp_mflags} test %install + +%ifarch armv6l armv6hl +export LDFLAGS="$LDFLAGS -latomic" +%endif + export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags}" export LD_LIBRARY_PATH=%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:%{_builddir}/%{buildsubdir}/usr/lib @@ -439,7 +444,7 @@ rm %{buildroot}%{_datadir}/appdata/julia.appdata.xml # Remove duplicated files. %fdupes %{buildroot} -%suse_update_desktop_file -r julia Science Math +%suse_update_desktop_file -r julia-base Science Math mv %{buildroot}%{_bindir}/julia %{buildroot}%{_bindir}/julia-base mkdir -p %{buildroot}%{_sysconfdir}/alternatives @@ -451,6 +456,12 @@ fi ln -sf %{_sysconfdir}/alternatives/julia %{buildroot}%{_bindir}/julia +# Convert all eol encodings to Unix +find %{buildroot} -type f -execdir dos2unix -k {} \; + +# make it executable +chmod +x %{buildroot}%{_datadir}/julia/stdlib/v1.9/SparseArrays/gen/generator.jl + %post %{_sbindir}/update-alternatives --install %{_bindir}/julia \ julia %{_bindir}/julia-base 5 From 5b5486e04512695616cdec4dd3a3801e9446bbe3f9d23043b67dc6ad54db9701 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 02:15:53 +0000 Subject: [PATCH 10/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=149 --- julia.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/julia.spec b/julia.spec index 3c367ac..d6ad93b 100644 --- a/julia.spec +++ b/julia.spec @@ -75,6 +75,7 @@ BuildRequires: blas-devel BuildRequires: ca-certificates BuildRequires: cmake BuildRequires: dSFMT-devel +BuildRequires: dos2unix BuildRequires: double-conversion-devel BuildRequires: fdupes BuildRequires: fftw3-threads-devel >= 3.3.4 From 0b4430c4d7c8454ec5cdcd353110aab2125236684d1dd6af96c570ef56aea57e Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 03:56:59 +0000 Subject: [PATCH 11/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=150 --- julia.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/julia.spec b/julia.spec index d6ad93b..3e0ccc8 100644 --- a/julia.spec +++ b/julia.spec @@ -445,7 +445,7 @@ rm %{buildroot}%{_datadir}/appdata/julia.appdata.xml # Remove duplicated files. %fdupes %{buildroot} -%suse_update_desktop_file -r julia-base Science Math +%suse_update_desktop_file -r julia Science Math mv %{buildroot}%{_bindir}/julia %{buildroot}%{_bindir}/julia-base mkdir -p %{buildroot}%{_sysconfdir}/alternatives From 80166d06a0f707d89ae099fb757c1f65e9bd619c57e11f2607b6ca5fd4501372 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 06:24:09 +0000 Subject: [PATCH 12/19] - fdupes at the end of the install section. OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=151 --- julia.changes | 3 ++- julia.spec | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/julia.changes b/julia.changes index 6944a54..e37f8d6 100644 --- a/julia.changes +++ b/julia.changes @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -Mon Dec 18 02:13:44 UTC 2023 - Soc Virnyl Estela +Mon Dec 18 06:20:48 UTC 2023 - Soc Virnyl Estela - There should be a package libjulia1. - CFLAGS and CXXFLAGS use provided %optflags. @@ -9,6 +9,7 @@ Mon Dec 18 02:13:44 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index 3e0ccc8..aa4bec1 100644 --- a/julia.spec +++ b/julia.spec @@ -442,9 +442,6 @@ rm -rf %{buildroot}%{_docdir}/julia/ rm %{buildroot}%{_datadir}/appdata/julia.appdata.xml %endif -# Remove duplicated files. -%fdupes %{buildroot} - %suse_update_desktop_file -r julia Science Math mv %{buildroot}%{_bindir}/julia %{buildroot}%{_bindir}/julia-base @@ -463,6 +460,9 @@ find %{buildroot} -type f -execdir dos2unix -k {} \; # make it executable chmod +x %{buildroot}%{_datadir}/julia/stdlib/v1.9/SparseArrays/gen/generator.jl +# Remove duplicated files. +%fdupes %{buildroot} + %post %{_sbindir}/update-alternatives --install %{_bindir}/julia \ julia %{_bindir}/julia-base 5 From b9ab29a5ec0fa8c77e3dfe871d5918de73f13d1f5947250d0b0634364455e539 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 10:11:00 +0000 Subject: [PATCH 13/19] - Fdupe only /usr/share/julia. Causes issues with sofiles that are symlinked OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=152 --- julia.changes | 5 +++++ julia.spec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/julia.changes b/julia.changes index e37f8d6..658d9f7 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Dec 18 10:09:55 UTC 2023 - Soc Virnyl Estela + +- Fdupe only /usr/share/julia. Causes issues with sofiles that are symlinked + ------------------------------------------------------------------- Mon Dec 18 06:20:48 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index aa4bec1..364d0e4 100644 --- a/julia.spec +++ b/julia.spec @@ -461,7 +461,7 @@ find %{buildroot} -type f -execdir dos2unix -k {} \; chmod +x %{buildroot}%{_datadir}/julia/stdlib/v1.9/SparseArrays/gen/generator.jl # Remove duplicated files. -%fdupes %{buildroot} +%fdupes %{buildroot}%{_datadir}/julia %post %{_sbindir}/update-alternatives --install %{_bindir}/julia \ From 0df6fe2797938edf1d8daeb4856721e85e535ca369e1d8136de9f3c380f4979a Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 14:34:37 +0000 Subject: [PATCH 14/19] - Specfile cleanup: * Exclude now only bundled libs - LLVM, uv, ccalltest, llvmcalltest, openblas with INTERFACE64 enabled, libjulia-internal and libjulia-codegen * Fdupe only /usr/share/julia. OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=153 --- julia.changes | 8 ++++++-- julia.spec | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/julia.changes b/julia.changes index 658d9f7..23504bd 100644 --- a/julia.changes +++ b/julia.changes @@ -1,7 +1,11 @@ ------------------------------------------------------------------- -Mon Dec 18 10:09:55 UTC 2023 - Soc Virnyl Estela +Mon Dec 18 14:24:24 UTC 2023 - Soc Virnyl Estela -- Fdupe only /usr/share/julia. Causes issues with sofiles that are symlinked +- Specfile cleanup: + * Exclude now only bundled libs + - LLVM, uv, ccalltest, llvmcalltest, openblas with INTERFACE64 enabled, + libjulia-internal and libjulia-codegen + * Fdupe only /usr/share/julia. ------------------------------------------------------------------- Mon Dec 18 06:20:48 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index 364d0e4..bc9c0b4 100644 --- a/julia.spec +++ b/julia.spec @@ -26,7 +26,7 @@ %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 _privatelibs lib(LLVM-.*|ccalltest|llvmcalltest|uv|openblas.*|sys|julia.*)\\.so.* %global __provides_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$ From 3d0bc4144ff1ea328d7a657db433090a6772325ee6384e08d968f9ba7fa355ae Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 15:07:44 +0000 Subject: [PATCH 15/19] * Define some dependencies that are dlopened OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=154 --- julia.changes | 1 + julia.spec | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/julia.changes b/julia.changes index 23504bd..abe07b5 100644 --- a/julia.changes +++ b/julia.changes @@ -6,6 +6,7 @@ Mon Dec 18 14:24:24 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index bc9c0b4..902088a 100644 --- a/julia.spec +++ b/julia.spec @@ -118,6 +118,26 @@ BuildRequires: zlib-devel Requires: ca-certificates Requires: p7zip >= 16 Requires: readline + +# Libraries used by CompilerSupportLibraries_jll, blastrampoline, +# nghttp2_jll but not detected as they are dlopen()ed but not linked to +%if 0%{?__isa_bits} == 64 +Requires: libgfortran.so.5()(64bit) +Requires: libgomp.so.1()(64bit) +Requires: libnghttp2.so.14()(64bit) +%else +Requires: libgfortran.so.5 +Requires: libgomp.so.1 +Requires: libnghttp2.so.14 +%endif + +# Same as the previous comment. But the difference +# is that we applied julia-hardcoded-libs.patch +# so therefore it is needed +Requires: libblastrampoline-devel +Requires: libnghttp2-devel +Requires: suitesparse-devel + Requires(post): %{_sbindir}/update-alternatives Requires(post): %{_sbindir}/ldconfig Requires(postun):%{_sbindir}/update-alternatives From 4b0124e32cc15fb28ab43ec6193a0f320a3134dce86994934d1877c7c92e778b Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Mon, 18 Dec 2023 22:36:00 +0000 Subject: [PATCH 16/19] - Some dependencies require to be explicit since Julia uses dlopen on it's stdlib and other julia scripts OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=155 --- julia-rpmlintrc | 4 ++++ julia.changes | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/julia-rpmlintrc b/julia-rpmlintrc index e280502..820afc3 100644 --- a/julia-rpmlintrc +++ b/julia-rpmlintrc @@ -6,3 +6,7 @@ addFilter("E: arch-dependent-file-in-usr-share*") # https://github.com/JuliaLang/julia/issues/17941 addFilter("unstripped-binary-or-object") addFilter("W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/*") +# Julia is unique that rpm cant detect what it needs because +# it is dlopened +addFilter("explicit-lib-dependency") +addFilter("devel-dependency") diff --git a/julia.changes b/julia.changes index abe07b5..3217413 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Dec 18 22:35:16 UTC 2023 - Soc Virnyl Estela + +- Some dependencies require to be explicit since Julia uses dlopen + on it's stdlib and other julia scripts + ------------------------------------------------------------------- Mon Dec 18 14:24:24 UTC 2023 - Soc Virnyl Estela From 046f62d9d26aeb4b6ac2d040d4fab107a2ca9644227e145b859d921f59178467 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Tue, 19 Dec 2023 02:30:49 +0000 Subject: [PATCH 17/19] - Specfile cleanup: * specify more dependencies - openlibm-devel - julia-devel or julia-compat-devel which provides libjulia.so OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=156 --- julia.changes | 8 ++++++++ julia.spec | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/julia.changes b/julia.changes index 3217413..6c494a4 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Dec 19 02:28:16 UTC 2023 - Soc Virnyl Estela + +- Specfile cleanup: + * specify more dependencies + - openlibm-devel + - julia-devel or julia-compat-devel which provides libjulia.so + ------------------------------------------------------------------- Mon Dec 18 22:35:16 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index 902088a..cd238d3 100644 --- a/julia.spec +++ b/julia.spec @@ -136,8 +136,13 @@ Requires: libnghttp2.so.14 # so therefore it is needed Requires: libblastrampoline-devel Requires: libnghttp2-devel +Requires: openlibm-devel Requires: suitesparse-devel +# Julia requires the devel package as well +# specifically libjulia.so +Requires: %{name}-devel = %{version} + Requires(post): %{_sbindir}/update-alternatives Requires(post): %{_sbindir}/ldconfig Requires(postun):%{_sbindir}/update-alternatives From f11d114e3445efafb744428843dabce3bb539166a8fe6facb98a63c1f1e014f5 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Tue, 19 Dec 2023 02:36:52 +0000 Subject: [PATCH 18/19] - Remove unsatisfactory architectures that does not guaranteed to build. It seems x86_64 is the guaranteed to work anyway. OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=157 --- julia.changes | 6 ++++++ julia.spec | 10 +++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/julia.changes b/julia.changes index 6c494a4..642258e 100644 --- a/julia.changes +++ b/julia.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Dec 19 02:34:10 UTC 2023 - Soc Virnyl Estela + +- Remove unsatisfactory architectures that does not guaranteed to build. + It seems x86_64 is the guaranteed to work anyway. + ------------------------------------------------------------------- Tue Dec 19 02:28:16 UTC 2023 - Soc Virnyl Estela diff --git a/julia.spec b/julia.spec index cd238d3..44aa2df 100644 --- a/julia.spec +++ b/julia.spec @@ -172,14 +172,10 @@ Group: Development/Languages/Other 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} + +# Let's not be optimistic towards 32 bit support and other architectures +# openSUSE cannot guarantee to support, shall we? ExclusiveArch: x86_64 -%else -ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le -%endif %description Julia is a high-level, high-performance dynamic programming language for From 1c685c49b54a6d37b1f6d67c59e1eab27242a332e3adc2d62fbdb8478fe00bd0 Mon Sep 17 00:00:00 2001 From: Soc Virnyl Estela Date: Tue, 19 Dec 2023 02:43:06 +0000 Subject: [PATCH 19/19] OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=158 --- julia.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/julia.spec b/julia.spec index 44aa2df..4bbcf52 100644 --- a/julia.spec +++ b/julia.spec @@ -141,7 +141,11 @@ Requires: suitesparse-devel # Julia requires the devel package as well # specifically libjulia.so -Requires: %{name}-devel = %{version} +%if 0%{?compat_mode} +Requires: julia-compat-devel +%else +Requires: julia-devel +%endif Requires(post): %{_sbindir}/update-alternatives Requires(post): %{_sbindir}/ldconfig