File crystal.spec of Package crystal1.0
%if 0%{?suse}
%global bash_completionsdir /usr/share/bash-completion/completions/
%else
%global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '/etc/bash_completion.d')
%endif
# Disable stripping of binaries because of https://github.com/crystal-lang/crystal/issues/10948
%global __os_install_post %{nil}
Name: crystal1.0
Version: 1.0.0
Release: 1%{?dist}
Provides: crystal
Conflicts: crystal
%if 0%{?fedora} || 0%{?rhel}
License: ASL 2.0
%else
License: Apache-2.0
%endif
Summary: A programming language for humans and computers
Url: https://github.com/crystal-lang/crystal
Source0: https://github.com/crystal-lang/crystal/archive/refs/tags/%{version}.tar.gz
Source1: https://github.com/crystal-lang/crystal/releases/download/%{version}/crystal-%{version}-docs.tar.gz
Source100: https://github.com/crystal-lang/crystal/releases/download/%{version}/crystal-%{version}-1-linux-x86_64.tar.gz
Source101: https://github.com/crystal-lang/crystal/releases/download/%{version}/crystal-%{version}-1-linux-i686.tar.gz
Requires: gcc
Requires: glibc
Requires: pkgconfig
Requires: pcre-devel
Requires: libevent-devel
%if ! 0%{?rhel}
Recommends: libssl-devel, libz-devel, libxml2-devel, libgmp-devel, libyaml-devel
%endif
%description
Crystal is a general-purpose, object-oriented programming language.
With syntax inspired by Ruby, it is a compiled language with static type-checking,
serving both, humans and computers.
%package docs
Summary: Documentation for the Crystal Programming Language
BuildArch: noarch
%description docs
%{summary}.
%package samples
Summary: Sample code for the Crystal Programming Language
BuildArch: noarch
%description samples
%{summary}.
%undefine _missing_build_ids_terminate_build
%global debug_package %{nil}
%prep
%setup -q -n crystal-%{version}
%setup -q -b 1 -n crystal-%{version}-docs
%ifarch x86_64
%setup -q -b 100 -n crystal-%{version}-1
%endif
%ifarch %{ix86}
%setup -q -b 101 -n crystal-%{version}-1
%endif
rm share/crystal/src/llvm/ext/llvm_ext.o share/crystal/src/ext/sigfault.o
%build
%install
install -D -m 0755 bin/crystal %{buildroot}%{_bindir}/crystal
sed -i 's|/lib/crystal/|/%{_lib}/crystal/|' \
%{buildroot}%{_bindir}/crystal
install -D -m 0755 lib/crystal/bin/crystal %{buildroot}%{_libdir}/crystal/bin/crystal
install -D -m 0644 lib/crystal/lib/libgc.a %{buildroot}%{_libdir}/crystal/lib/libgc.a
install -D -m 0644 share/man/man1/crystal.1.gz %{buildroot}%{_mandir}/man1/crystal.1.gz
install -D -m 0644 share/licenses/crystal/LICENSE %{buildroot}%{_datadir}/crystal/LICENSE
# install -D -m 644 etc/completion.bash {buildroot}{bash_completionsdir}/crystal
# install -D -m 644 etc/completion.zsh {buildroot}{_datadir}/zsh/site-functions/_crystal
mkdir -p %{buildroot}%{_datadir}/crystal
cp -r share/crystal/src %{buildroot}%{_datadir}/crystal
cp -r ../crystal-%{version}-docs %{buildroot}%{_datadir}/crystal/docs
cp -r ../crystal-%{version}/samples %{buildroot}%{_datadir}/crystal
install -D -m 0755 bin/shards %{buildroot}%{_bindir}/shards
install -D -m 0644 share/man/man1/shards.1.gz %{buildroot}%{_mandir}/man1/shards.1.gz
install -D -m 0644 share/man/man5/shard.yml.5.gz %{buildroot}%{_mandir}/man5/shard.yml.5.gz
%check
%{buildroot}%{_bindir}/crystal --version
%files
%defattr(-,root,root,-)
%doc %{_datadir}/crystal/LICENSE
%{_bindir}/crystal
%dir %{_libdir}/crystal
%dir %{_libdir}/crystal/*
%{_libdir}/crystal/bin/crystal
%{_libdir}/crystal/lib/libgc.a
%{_mandir}/man1/crystal.1.gz
# {bash_completionsdir}/{name}
# {_datadir}/zsh/site-functions/_{name}
%dir %{_datadir}/crystal
%dir %{_datadir}/crystal/*
%{_datadir}/crystal/src/*
%{_bindir}/shards
%{_mandir}/man1/shards.1.gz
%{_mandir}/man5/shard.yml.5.gz
%files docs
%dir %{_datadir}/crystal/docs/
%{_datadir}/crystal/docs/*
%files samples
%dir %{_datadir}/crystal/samples/
%{_datadir}/crystal/samples/*
%changelog