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
openSUSE Build Service is sponsored by