Blob Blame History Raw
Name:           rakudo
Version:        2024.04
Release:        %autorelease
Summary:        Raku on MoarVM, JVM, and JS
License:        Artistic-2.0
URL:            https://rakudo.org/
Source0:        https://github.com/rakudo/rakudo/releases/download/%{version}/rakudo-%{version}.tar.gz
Source1:        macros.raku

BuildRequires:  gcc
BuildRequires:  make
BuildRequires:  perl
BuildRequires:  libatomic_ops-devel
BuildRequires:  libuv-devel
BuildRequires:  libtommath-devel
BuildRequires:  libffi-devel
BuildRequires:  mimalloc-devel

BuildRequires:  moarvm-devel >= %{version}
BuildRequires:  nqp >= %{version}

Requires:       moarvm >= %{version}
Requires:       nqp >= %{version}

%description
Rakudo is a Raku Programming Language compiler for the MoarVM, JVM and
Javascript virtual machines.

%prep
%autosetup -p1

%build
perl Configure.pl --prefix=%{_prefix} --backends=moar
%make_build

%install
%make_install

mkdir -p %{buildroot}%{_mandir}/man1
pod2man --center="Rakudo Manual" --release="Raku" --section=1 --name=rakudo \
    docs/running.pod | gzip -c > %{buildroot}%{_mandir}/man1/rakudo.1.gz
ln -s rakudo.1.gz %{buildroot}%{_mandir}/man1/raku.1.gz

install -pDm755 tools/install-dist.raku %{buildroot}%{_bindir}/raku-install-dist

# Raku RPM macros
mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d
install -pDm0644 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/macros.d/macros.raku

# Avoid duplicates by creating symbolic links.
for i in %{buildroot}%{_bindir}/perl6* %{buildroot}%{_datadir}/perl6/runtime/perl6*; do
    dir=$(dirname $i)
    f=$(basename $i | sed 's/perl6/rakudo/')
    if [ -e $dir/$f ]; then
        ln -sf $f $i
    fi
done

# remove zero-length files
rm -r %{buildroot}%{_datadir}/perl6/core/precomp/
rm %{buildroot}%{_datadir}/perl6/core/repo.lock

%check
%ifarch i686
rm t/06-telemetry/01-basic.t
%endif
make test

%files
%license LICENSE
%doc README.md
%{_bindir}/perl6*
%{_bindir}/raku
%{_bindir}/raku-debug
%{_bindir}/rakudo*
%{_bindir}/raku-install-dist
%{_datadir}/perl6/
%{_mandir}/man1/raku.1*
%{_mandir}/man1/rakudo.1*
%{_rpmconfigdir}/macros.d/macros.raku

%changelog
%autochangelog