%global debug_package %{nil} %global _build_id_links none %define date %(date +%Y%m%d) Summary: A statically typed compiled systems programming language (development version) Name: nim-devel Version: 2.3.1 Release: 1.%{date}%{?dist} License: MIT Group: Development/Languages # Define all sources unconditionally Source0: https://github.com/nim-lang/nightlies/releases/download/latest-devel/linux_x64.tar.xz Source1: https://github.com/nim-lang/nightlies/releases/download/latest-devel/linux_arm64.tar.xz # Exclude unsupported architectures ExclusiveArch: x86_64 aarch64 URL: https://nim-lang.org/ BuildRequires: gcc BuildRequires: pcre2-devel BuildRequires: openssl-devel Requires: gcc Provides: nim = %{version}-%{release} Conflicts: nim %description Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. This is the development version of Nim, which includes the latest features and improvements. %prep # Extract prebuilt binaries %ifarch x86_64 %setup -q -c -T -a 0 %endif %ifarch aarch64 %setup -q -c -T -a 1 %endif %build # No build needed, using prebuilt binaries %install # Create directory structure mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_libdir}/nim mkdir -p %{buildroot}%{_datadir}/nim mkdir -p %{buildroot}%{_sysconfdir}/nim mkdir -p %{buildroot}%{_datadir}/bash-completion/completions mkdir -p %{buildroot}%{_datadir}/zsh/site-functions # Install binaries to /usr/bin install -Dm 755 nim-%{version}/bin/* -t %{buildroot}%{_bindir} # Install library files cp -R nim-%{version}/lib %{buildroot}%{_libdir}/nim/ # Install config files to /etc/nim install -Dm 644 nim-%{version}/config/* -t %{buildroot}%{_sysconfdir}/nim # Install other Nim components cp -R nim-%{version}/compiler %{buildroot}%{_datadir}/nim/ cp -R nim-%{version}/dist %{buildroot}%{_datadir}/nim/ cp -R nim-%{version}/doc %{buildroot}%{_datadir}/nim/ cp -R nim-%{version}/testament %{buildroot}%{_datadir}/nim/ # Install nim.nimble to the compiler directory install -Dm 644 nim-%{version}/nim.nimble -t %{buildroot}%{_datadir}/nim/compiler # Install documentation files to proper location install -Dm 644 nim-%{version}/doc/nimdoc.css -t %{buildroot}%{_libdir}/nim/doc install -Dm 644 nim-%{version}/doc/nimdoc.cls -t %{buildroot}%{_libdir}/nim/doc # Install tools install -Dm 644 nim-%{version}/tools/debug/nim-gdb.py -t %{buildroot}%{_libdir}/nim/tools install -Dm 644 nim-%{version}/tools/dochack/dochack.js -t %{buildroot}%{_libdir}/nim/tools/dochack # Install shell completions from tools directory for comp in nim-%{version}/tools/*.bash-completion; do install -Dm 644 "${comp}" "%{buildroot}%{_datadir}/bash-completion/completions/$(basename "${comp%.bash-completion}")" done for comp in nim-%{version}/tools/*.zsh-completion; do install -Dm 644 "${comp}" "%{buildroot}%{_datadir}/zsh/site-functions/_$(basename "${comp%.zsh-completion}")" done # Create symlinks for configuration ln -sf %{_sysconfdir}/nim %{buildroot}%{_datadir}/nim/config # Update config files with correct paths sed -i '1i lib = "%{_libdir}/nim/lib"' %{buildroot}%{_sysconfdir}/nim/nim.cfg sed -i '1i path = "%{_datadir}/nim"' %{buildroot}%{_sysconfdir}/nim/nim.cfg %files %{_bindir}/atlas %{_bindir}/nim %{_bindir}/nimble %{_bindir}/nim_dbg %{_bindir}/nim-gdb %{_bindir}/nimgrep %{_bindir}/nimpretty %{_bindir}/nimsuggest %{_bindir}/testament %{_libdir}/nim %{_datadir}/nim %{_sysconfdir}/nim # Include all bash completion files that were installed %{_datadir}/bash-completion/completions/* # Include all zsh completion files that were installed %{_datadir}/zsh/site-functions/_* %changelog * Mon Jan 01 2024 Packager - 2.3.1-1 - Initial package