%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}%{_libdir}/nim/bin mkdir -p %{buildroot}%{_libdir}/nim/doc 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/lib/nim/bin install -Dm 755 nim-%{version}/bin/* -t %{buildroot}%{_libdir}/nim/bin # Create symlinks in /usr/bin ln -sf %{_libdir}/nim/bin/atlas %{buildroot}%{_bindir}/atlas ln -sf %{_libdir}/nim/bin/nim %{buildroot}%{_bindir}/nim ln -sf %{_libdir}/nim/bin/nimble %{buildroot}%{_bindir}/nimble ln -sf %{_libdir}/nim/bin/nim_dbg %{buildroot}%{_bindir}/nim_dbg ln -sf %{_libdir}/nim/bin/nim-gdb %{buildroot}%{_bindir}/nim-gdb ln -sf %{_libdir}/nim/bin/nimgrep %{buildroot}%{_bindir}/nimgrep ln -sf %{_libdir}/nim/bin/nimpretty %{buildroot}%{_bindir}/nimpretty ln -sf %{_libdir}/nim/bin/nimsuggest %{buildroot}%{_bindir}/nimsuggest ln -sf %{_libdir}/nim/bin/testament %{buildroot}%{_bindir}/testament # 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}%{_libdir}/nim/ cp -R nim-%{version}/dist %{buildroot}%{_libdir}/nim/ cp -R nim-%{version}/doc %{buildroot}%{_datadir}/nim/ # Install nim.nimble to the compiler directory install -Dm 644 nim-%{version}/nim.nimble -t %{buildroot}%{_libdir}/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 -Dm 644 nim-%{version}/doc/basicopt.txt -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}%{_libdir}/nim/config %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/_* # Exclude tests directories %exclude %{_libdir}/nim/dist/*/tests # Exclude .idx files in tools/html %exclude %{_datadir}/nim/doc/html/*.idx %exclude %{_datadir}/nim/doc/html/compiler/*.idx %changelog * Mon Jan 01 2024 Packager - 2.3.1-1 - Initial package