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:
commit
e881a86d28
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal 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
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
12
README-suse-maint.md
Normal file
12
README-suse-maint.md
Normal 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
11
_constraints
Normal 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
7
_service
Normal 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
3
helix-24.03.tar.xz
Normal 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
3
helix-24.07.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:44d9eb113a54a80a2891ac6374c74bcd2bce63d317f1e1c69c286a6fc919922c
|
||||||
|
size 142746572
|
1
helix-rpmlintrc
Normal file
1
helix-rpmlintrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
addFilter("files-duplicate")
|
1174
helix.changes
Normal file
1174
helix.changes
Normal file
File diff suppressed because it is too large
Load Diff
164
helix.spec
Normal file
164
helix.spec
Normal 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
3
vendor.tar.zst
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5fe22a1a2bcba19835c944bbfae926e3ec7808629d4b4524bcbf9754ca0bce96
|
||||||
|
size 25737226
|
Loading…
Reference in New Issue
Block a user