SHA256
1
0
forked from pool/helix

- remove rpmlintrc as using fdupes works as intended

- remove README-suse-maint.md as the packaging changed so much that
  the readme is not needed anymore
- put the binary in the bindir, create a symlink for people who still
  want to use the full name for the binary

OBS-URL: https://build.opensuse.org/package/show/editors/helix?expand=0&rev=87
This commit is contained in:
Soc Virnyl Estela 2024-09-12 11:45:41 +00:00 committed by Git OBS Bridge
commit e881a86d28
11 changed files with 1402 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

12
README-suse-maint.md Normal file
View File

@ -0,0 +1,12 @@
From upstream releases, choose the file with `helix-<version>-source.tar.xz`.
And run `rpmdev-spectool -g helix.spec`. Create a directory named `helix` where
you should extract the contents of the downloaded tarball. Thereafter, run
`osc service disabledrun`. This will run cargo vendor and compress them inside
a tarball. You can check if you want to disable the cargo update mechanism.
Please do remember to create separate packages for the runtime and the helix
binary as the former is huge when built. Helix still runs fine without
the runtime but for it to run "normally" a user just needs to run
`helix --grammar fetch` then `helix --grammar build`. The purpose of the
runtime files as a package is to maintain consistency and convenience
and stay faithful with how other packagers do it and when someone needs it.

11
_constraints Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<physicalmemory>
<size unit="G">8</size>
</physicalmemory>
<disk>
<size unit="G">16</size>
</disk>
</hardware>
</constraints>

7
_service Normal file
View File

@ -0,0 +1,7 @@
<services>
<service name="download_files" mode="manual" />
<service name="cargo_vendor" mode="manual">
<param name="src">helix-*.tar.xz</param>
</service>
</services>

3
helix-24.03.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c59a5988f066c2ab90132e03a0e6b35b3dd89f48d3d78bf0ec81bd7d88c7677e
size 133067920

3
helix-24.07.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44d9eb113a54a80a2891ac6374c74bcd2bce63d317f1e1c69c286a6fc919922c
size 142746572

1
helix-rpmlintrc Normal file
View File

@ -0,0 +1 @@
addFilter("files-duplicate")

1174
helix.changes Normal file

File diff suppressed because it is too large Load Diff

164
helix.spec Normal file
View File

@ -0,0 +1,164 @@
#
# spec file for package helix
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global _helix_runtimedir %{_libdir}/%{name}/runtime
Name: helix
Version: 24.07
Release: 0
Summary: A post-modern modal text editor written in Rust
License: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (MIT OR Unlicense) AND (Apache-2.0 OR Zlib OR MIT) AND Apache-2.0 AND BSL-1.0 AND ISC AND MIT AND MPL-2.0 AND Zlib AND MPL-2.0
URL: https://github.com/helix-editor/helix
# This tarball includes fetched grammars
Source0: %{url}/releases/download/%{version}/%{name}-%{version}-source.tar.xz#/%{name}-%{version}.tar.xz
Source1: vendor.tar.zst
BuildRequires: bash-completion
BuildRequires: c++_compiler
BuildRequires: c_compiler
BuildRequires: cargo >= 1.74.0
BuildRequires: cargo-packaging
BuildRequires: fdupes
BuildRequires: fish
BuildRequires: git-core
BuildRequires: hicolor-icon-theme
BuildRequires: update-desktop-files
BuildRequires: zsh
Recommends: %{name}-runtime = %{version}
ExclusiveArch: %{rust_arches}
%description
A kakoune/neovim inspired modal text editor with built-in LSP and
has treesitter support for syntax highlighting and improved navigation
%package bash-completion
Summary: Bash Completion for %{name}
Supplements: (%{name} and bash-completion)
Requires: %{name} = %{version}
BuildArch: noarch
%description bash-completion
Bash command-line completion support for %{name}.
%package fish-completion
Summary: Fish Completion for %{name}
Supplements: (%{name} and fish)
Requires: %{name} = %{version}
BuildArch: noarch
%description fish-completion
Fish command-line completion support for %{name}.
%package zsh-completion
Summary: Zsh Completion for %{name}
Supplements: (%{name} and zsh)
Requires: %{name} = %{version}
BuildArch: noarch
%description zsh-completion
Zsh command-line completion support for %{name}.
%package runtime
Summary: Runtime files for %{name}
Requires: %{name}
%description runtime
Helix runtime files. Separated due to how huge the runtime files are.
The runtime contains tree-sitter and grammars that makes run helix normally
if there is no runtime present in the users config directory specifically
`XDG_CONFIG_HOME/helix`.
%prep
%autosetup -a1 -c
# Remove shell definitions
sed -e '/^\#\!\/usr\/bin\/env .*/d' -i contrib/completion/hx.*
%build
#be explicit where the default runtime lives
export HELIX_DEFAULT_RUNTIME=%{_libdir}/%{name}/runtime
%{cargo_build}
cargo run --release --offline -- --grammar build
%install
install -d -m 0755 %{buildroot}%{_helix_runtimedir}
install -Dm0755 ./target/release/hx %{buildroot}%{_bindir}/hx
ln -sfv "%{_bindir}/hx" "%{buildroot}%{_bindir}/%{name}"
cp -av "runtime/queries" %{buildroot}%{_helix_runtimedir}
cp -av "runtime/themes" %{buildroot}%{_helix_runtimedir}
find "%{_builddir}/%{name}-%{version}/runtime/grammars" -type f -name '*.so' -exec \
install --verbose -Dm 755 {} -t "%{buildroot}%{_helix_runtimedir}/grammars" \;
install -Dm644 runtime/tutor -t %{buildroot}%{_helix_runtimedir}
# Not needed during runtime
rm -rfv %{buildroot}%{_helix_runtimedir}/grammars/sources
# Desktop application file
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/Helix.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file %{name}
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/Helix.appdata.xml %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
# Icon
install -Dm644 -T %{_builddir}/%{name}-%{version}/logo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
# Shell completions
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.bash %{buildroot}%{_datadir}/bash-completion/completions/hx
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/hx.fish
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.zsh %{buildroot}%{_datadir}/zsh/site-functions/_hx
%fdupes %{buildroot}
%files
%license LICENSE
%doc README.md CHANGELOG.md languages.toml docs/CONTRIBUTING.md docs/architecture.md docs/vision.md
%{_bindir}/hx
%{_bindir}/%{name}
# Desktop application file
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop
%{_datadir}/metainfo/%{name}.appdata.xml
%dir %{_libdir}/%{name}
# Tutor
%dir %{_helix_runtimedir}
%{_helix_runtimedir}/tutor
%files runtime
# Runtimes and runtime files
# Grammars
%dir %{_helix_runtimedir}/grammars
%{_helix_runtimedir}/grammars/*
# Queries
%dir %{_helix_runtimedir}/queries
%{_helix_runtimedir}/queries/*
# Themes
%dir %{_helix_runtimedir}/themes
%{_helix_runtimedir}/themes/*
%files bash-completion
%{_datadir}/bash-completion/completions/hx
%files fish-completion
%{_datadir}/fish/vendor_completions.d/hx.fish
%files zsh-completion
%{_datadir}/zsh/site-functions/_hx
%changelog

3
vendor.tar.zst Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5fe22a1a2bcba19835c944bbfae926e3ec7808629d4b4524bcbf9754ca0bce96
size 25737226