diff options
Diffstat (limited to 'ghc-bootstrap-binary.spec')
-rw-r--r-- | ghc-bootstrap-binary.spec | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/ghc-bootstrap-binary.spec b/ghc-bootstrap-binary.spec new file mode 100644 index 0000000..a09fb07 --- /dev/null +++ b/ghc-bootstrap-binary.spec @@ -0,0 +1,128 @@ +%define alex_ver 3.4.0.0 +%define happy_ver 1.20.0 +%define ghc_ver 9.2.3 +%global debug_package %{nil} + +Name: ghc-bootstrap-binary +Version: 1.0.0 +Release: 1 +Summary: Binary distributions of The Glorious Glasgow Haskell Compiler and source code of Alex & Happy +License: BSD-3-Clause +URL: https://gitee.com/src-openeuler/ghc-bootstrap +Source0: LICENSE +Source1: ghc-9.2.3-x86_64-unknown-linux.tar.xz +Source2: ghc-9.2.3-aarch64-unknown-linux.tar.xz +Source3: alex-%{alex_ver}.tar.gz +Source4: happy-%{happy_ver}.tar.gz + +BuildRequires: chrpath +BuildRequires: fdupes +BuildRequires: gmp-devel +BuildRequires: libffi +BuildRequires: libatomic +BuildRequires: ncurses-libs +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libffi) +BuildRequires: numactl-devel +Requires: gmp-devel +Requires: libffi +Requires: libatomic +Requires: ncurses-libs +Requires: pkgconfig(libffi) +Requires: numactl-devel +Requires: libffi-devel + +Conflicts: ghc-base +Conflicts: alex +Conflicts: happy + +Provides: ghc-bootstrap-devel +ExclusiveArch: x86_64 aarch64 +AutoReq: off + +%description +This package contains a binary distribution of The Glorious Glasgow +Haskell Compilation System. + +The tarballs come from the ghc download page. +This package is only used for bootstraping ghc. + +Do not install this package! Install 'ghc' instead. + +%prep +cp %{SOURCE0} . +cp %{SOURCE1} . +cp %{SOURCE2} . +cp %{SOURCE3} . +cp %{SOURCE4} . + +%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 x86_64 aarch64 +%define sysname unknown +%endif + +%build +tar Jxf ghc-%{ghc_ver}-%{longarch}-%{sysname}-linux.tar.xz +tar xf alex-%{alex_ver}.tar.gz +tar xf happy-%{happy_ver}.tar.gz + +%install +cd ghc-%{ghc_ver}-%{longarch}-%{sysname}-linux + +./configure --prefix=/opt +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +echo "/opt/lib/ghc-%{ghc_ver}/lib/%{arch}-linux-ghc-%{ghc_ver}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/ghc.conf +%make_install +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/lib/ghc-%{ghc_ver}/lib/package.conf.d/.stamp +(cd %{buildroot}/opt/lib/ghc-%{ghc_ver}/lib/package.conf.d/ +for i in *.conf; do + mv $i.copy $i +done +) + +cd .. +export PATH=/opt/bin:$PATH +pushd alex-%{alex_ver} +ghc Setup.hs -o cabal +./cabal configure --prefix=%{_prefix} +./cabal build +./cabal copy --destdir=%{buildroot} +popd + +pushd happy-%{happy_ver} +ghc Setup.hs -o cabal +./cabal configure --prefix=%{_prefix} +./cabal build +./cabal copy --destdir=%{buildroot} +popd + +%post +/sbin/ldconfig +/opt/bin/ghc-pkg recache + +%postun -p /sbin/ldconfig + +%files +%license LICENSE +/opt/* +%config %{_sysconfdir}/ld.so.conf.d/ghc.conf +%{_bindir}/alex +%{_bindir}/happy +%{_datadir}/*ghc* +%{_datadir}/doc/*ghc* + +%changelog +* Mon Nov 13 2023 Lin Runze <lrzlin@163.com> - 1.0.0-1 +- Initial packaging. (Version 1.0.0) |