%global llvm_major 18 %ifarch ppc64le %define longarch powerpc64le # something weird on ghc arch detection %define arch ppc64 %endif %ifarch s390x %define longarch s390x %define sysname ibm %define arch s390x %endif %ifarch aarch64 %define longarch aarch64 %define arch aarch64 %endif %ifarch x86_64 %define longarch x86_64 %define sysname unknown %define arch x86_64 %endif %ifarch riscv64 %define longarch riscv64 %define arch riscv64 %endif %ifarch loongarch64 %define longarch loongarch64 %define arch loongarch64 %endif %ifarch ppc64le aarch64 riscv64 loongarch64 %define sysname unknown %endif Name: ghc-bootstrap Version: 9.10.1 Release: 1%{?dist} Summary: Binary distributions of The Glorious Glasgow Haskell Compiler License: BSD-3-Clause URL: https://build.opensuse.org/package/view_file/devel:languages:haskell:bootstrap Source1: README.openSUSE Source2: LICENSE Source13: ghc-%{version}-powerpc64le-unknown-linux.tar.xz Source14: ghc-%{version}-x86_64-unknown-linux.tar.xz Source16: ghc-%{version}-s390x-ibm-linux.tar.xz Source17: ghc-%{version}-aarch64-unknown-linux.tar.xz Source19: ghc-%{version}-riscv64-unknown-linux.tar.xz # I don't have any loongarch64 machine/worker #Source20: ghc-%%{version}-loongarch64-unknown-linux.tar.xz BuildRequires: chrpath BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gmp-devel BuildRequires: libffi8 >= 3.4.4 BuildRequires: libncurses5 BuildRequires: pkgconfig BuildRequires: pkgconfig(libffi) Requires: gmp-devel Requires: libffi8 >= 3.4.4 Requires: libncurses5 Conflicts: ghc-base Requires: pkgconfig(libffi) Provides: ghc-bootstrap-devel = 9.10.1 ExclusiveArch: ppc64le x86_64 s390x aarch64 riscv64 loongarch64 AutoReq: off %ifnarch s390x BuildRequires: libnuma-devel %endif Requires: clang Requires: libffi-devel Requires: libnuma-devel Requires: llvm %description This package contains a binary distribution of "The Glorious Glasgow Haskell Compilation System". See README.openSUSE on how the tarballs were produced. Do not install this package! Install 'ghc' instead. %prep cp %{SOURCE1} . cp %{SOURCE2} . cp %{SOURCE13} . cp %{SOURCE14} . cp %{SOURCE16} . cp %{SOURCE17} . cp %{SOURCE19} . # cp %%{SOURCE20} . %build tar Jxf ghc-%{version}-%{longarch}-%{sysname}-linux.tar.xz cd ghc-%{version}-%{longarch}-%{sysname}-linux %install cd ghc-%{version}-%{longarch}-%{sysname}-linux ./configure --prefix=/opt --libdir=%{_libdir} mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d echo "/opt/%{_libdir}/ghc-%{version}/lib/%{arch}-linux-ghc-%{version}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/ghc.conf %make_install %fdupes -s %{buildroot} for i in $(find %{buildroot} -type f -executable -exec sh -c "file {} | grep -q 'dynamically linked'" \; -print); do chrpath -d $i done rm %{buildroot}/opt/%{_libdir}/ghc-%{version}/lib/package.conf.d/.stamp (cd %{buildroot}/opt/%{_libdir}/ghc-%{version}/lib/package.conf.d/ for i in *.conf; do mv $i.copy $i done ) %post /opt/bin/ghc-pkg recache %files %doc README.openSUSE %license LICENSE /opt/* %config %{_sysconfdir}/ld.so.conf.d/ghc.conf