Compare commits
30 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa65089984 | ||
|
|
7cada21bc0 | ||
|
|
799daddf4f | ||
|
|
fcc4a496d8 | ||
|
|
af8ffc0cc6 | ||
|
|
96e323a443 | ||
|
|
779b79f452 | ||
|
|
a3b8f60866 | ||
|
|
ff20515d53 | ||
|
|
f07945c673 | ||
|
|
bb616a4639 | ||
|
|
2e40335081 | ||
|
|
e1266c4239 | ||
|
|
f4251c6589 | ||
|
|
d16a58d67b | ||
|
|
9d6b989a50 | ||
|
|
2242fa95a8 | ||
|
|
1249cba1fb | ||
|
|
b68430bcc5 | ||
|
|
7162013a02 | ||
|
|
40971a0825 | ||
|
|
bf7e682be6 | ||
|
|
672088a636 | ||
|
|
cdd57a93b6 | ||
|
|
849fb59862 | ||
|
|
beedb9a0fe | ||
|
|
0d78f5c518 | ||
|
|
d4a39a806d | ||
|
|
3e7f27175e | ||
|
|
e25f9b05ed |
7 changed files with 276 additions and 0 deletions
22
.gitignore
vendored
Normal file
22
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
/bash-language-server-1.17.0-vendor.tar.xz
|
||||||
|
/bash-language-server-1.17.0.tar.gz
|
||||||
|
/bash-language-server-2.0.0.tar.gz
|
||||||
|
/bash-language-server-2.0.0-vendor.tar.xz
|
||||||
|
/bash-language-server-3.0.5.tar.gz
|
||||||
|
/bash-language-server-3.0.5-vendor.tar.xz
|
||||||
|
/bash-language-server-3.2.0.tar.gz
|
||||||
|
/bash-language-server-3.2.0-vendor.tar.xz
|
||||||
|
/bash-language-server-4.6.1.tar.gz
|
||||||
|
/bash-language-server-4.6.1-vendor.tar.xz
|
||||||
|
/bash-language-server-4.10.0-vendor.tar.xz
|
||||||
|
/bash-language-server-4.10.0.tar.gz
|
||||||
|
/bash-language-server-5.1.1.tar.gz
|
||||||
|
/bash-language-server-5.1.1-vendor.tar.zst
|
||||||
|
/bash-language-server-5.2.0.tar.gz
|
||||||
|
/bash-language-server-5.2.0-vendor.tar.zst
|
||||||
|
/bash-language-server-5.4.0.tar.gz
|
||||||
|
/bash-language-server-5.4.0-vendor.tar.zst
|
||||||
|
/bash-language-server-5.4.3.tar.gz
|
||||||
|
/bash-language-server-5.4.3-vendor.tar.zst
|
||||||
|
/bash-language-server-5.6.0.tar.gz
|
||||||
|
/bash-language-server-5.6.0-vendor.tar.zst
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
# nodejs-bash-language-server
|
# nodejs-bash-language-server
|
||||||
|
|
||||||
The nodejs-bash-language-server package
|
The nodejs-bash-language-server package
|
||||||
|
|
||||||
|
## Updating the package
|
||||||
|
|
||||||
|
* Update the version in the spec file
|
||||||
|
* Run `bash prepare_vendor.sh` (This will download the tarball and create the
|
||||||
|
vendor package)
|
||||||
|
* Add a changelog entry to the spec file
|
||||||
|
* Upload new source tarballs with `fedpkg new-sources PACKAGE.tar.gz`
|
||||||
|
* Commit your stuff to git
|
||||||
|
|
|
||||||
3
bash-language-server-bundled-licenses.txt
Normal file
3
bash-language-server-bundled-licenses.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
"BSD-2-Clause"
|
||||||
|
"ISC"
|
||||||
|
"MIT"
|
||||||
52
changelog
Normal file
52
changelog
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 02 2024 Andreas Schneider <asn@redhat.com> - 5.1.1-1
|
||||||
|
- Update to version 5.1.1
|
||||||
|
* https://github.com/bash-lsp/bash-language-server/blob/server-5.1.1/server/CHANGELOG.md
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 12 2023 Pavel Filipenský <pfilipen@redhat.com> - 4.6.10-1
|
||||||
|
- Update to version 4.10.0 - https://github.com/bash-lsp/bash-language-server/blob/server-4.10.0/server/CHANGELOG.md
|
||||||
|
|
||||||
|
* Thu Feb 02 2023 Pavel Filipenský <pfilipen@redhat.com> - 4.6.1-2
|
||||||
|
- Fix /usr/bin/bash-language-server
|
||||||
|
|
||||||
|
* Mon Jan 30 2023 Pavel Filipenský <pfilipen@redhat.com> - 4.6.1-1
|
||||||
|
- Update to version 4.6.1
|
||||||
|
* https://github.com/bash-lsp/bash-language-server/blob/server-4.6.1/server/CHANGELOG.md
|
||||||
|
|
||||||
|
* Sun Jan 29 2023 Jonathan Lebon <jonathan@jlebon.com> - 3.2.0-3
|
||||||
|
- Don't own /usr/lib/node_modules
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Aug 19 2022 Pavel Filipenský <pfilipen@redhat.com> - 3.0.5-1
|
||||||
|
- Update to version 3.0.5
|
||||||
|
* https://github.com/bash-lsp/bash-language-server/blob/server-3.0.5/server/CHANGELOG.md
|
||||||
|
- Linting based on shellcheck
|
||||||
|
- Update bashls-fix-CVE-2022-0613.patch with content of https://patch-diff.githubusercontent.com/raw/bash-lsp/bash-language-server/pull/489.patch
|
||||||
|
|
||||||
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 17 2022 Pavel Filipenský <pfilipen@redhat.com> - 2.0.0-3
|
||||||
|
- resolves: #2055544 - Fix CVE-2022-0613
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Aug 26 2021 Pavel Filipenský <pfilipen@redhat.com> - 2.0.0-1
|
||||||
|
- Update to version 2.0.0
|
||||||
|
* https://github.com/bash-lsp/bash-language-server/blob/server-2.0.0/server/CHANGELOG.md
|
||||||
|
- Fixed indentation for node shebang loop
|
||||||
|
|
||||||
|
* Thu Aug 05 2021 Andreas Schneider <asn@redhat.com> - 1.17.0-1
|
||||||
|
- Initial package
|
||||||
|
|
||||||
103
nodejs-bash-language-server.spec
Normal file
103
nodejs-bash-language-server.spec
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
%{?nodejs_default_filter}
|
||||||
|
|
||||||
|
%define pkg_name bash-language-server
|
||||||
|
|
||||||
|
Name: nodejs-bash-language-server
|
||||||
|
Version: 5.6.0
|
||||||
|
Release: %autorelease
|
||||||
|
Summary: A language server for Bash
|
||||||
|
License: MIT
|
||||||
|
Url: https://github.com/bash-lsp/bash-language-server
|
||||||
|
Source0: %{url}/archive/server-%{version}/%{pkg_name}-%{version}.tar.gz
|
||||||
|
# Create with `bash prepare_vendor.sh`
|
||||||
|
Source1: %{pkg_name}-%{version}-vendor.tar.zst
|
||||||
|
# Create with: nodejs-packaging-bundler bash-language-server 5.1.1
|
||||||
|
Source2: bash-language-server-bundled-licenses.txt
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: npm(typescript)
|
||||||
|
BuildRequires: nodejs-packaging
|
||||||
|
BuildRequires: nodejs-npm
|
||||||
|
BuildRequires: perl-interpreter
|
||||||
|
BuildRequires: pnpm
|
||||||
|
BuildArch: noarch
|
||||||
|
ExclusiveArch: %{nodejs_arches} noarch
|
||||||
|
Recommends: ShellCheck
|
||||||
|
|
||||||
|
%description
|
||||||
|
Bash language server implementation based on Tree Sitter and its grammar for
|
||||||
|
Bash with explainshell integration.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{pkg_name}-server-%{version} -a1 -p1
|
||||||
|
|
||||||
|
cp %{SOURCE2} .
|
||||||
|
|
||||||
|
%build
|
||||||
|
pnpm install --offline --frozen-lockfile --store-dir="$(pwd)/.pnpm-store"
|
||||||
|
|
||||||
|
npm run compile
|
||||||
|
|
||||||
|
%install
|
||||||
|
# Only install production dependencies in node_modules
|
||||||
|
rm -rf node_modules/
|
||||||
|
pnpm install --production --offline --frozen-lockfile --package-import-method copy --store-dir="$(pwd)/.pnpm-store"
|
||||||
|
|
||||||
|
for S in $(grep -l '#!.*node' \
|
||||||
|
server/out/cli.js \
|
||||||
|
server/node_modules/ajv/scripts/* \
|
||||||
|
server/node_modules/escodegen/bin/* \
|
||||||
|
server/node_modules/esprima/bin/* \
|
||||||
|
server/node_modules/performance-now/test/scripts/* \
|
||||||
|
server/node_modules/pn/scripts/* \
|
||||||
|
server/node_modules/sshpk/bin/* \
|
||||||
|
server/node_modules/uuid/bin/* \
|
||||||
|
server/node_modules/vscode-languageserver/bin/* \
|
||||||
|
) ; do
|
||||||
|
SB="${S}.backup"
|
||||||
|
cp ${S} ${SB}
|
||||||
|
perl -p -i -e 's|#!/usr/bin/env node|#!%{_bindir}/node|g' $S
|
||||||
|
diff -urN ${SB} ${S} || :
|
||||||
|
rm ${SB}
|
||||||
|
done
|
||||||
|
|
||||||
|
install -d -m 0755 %{buildroot}%{nodejs_sitelib}/%{pkg_name}/
|
||||||
|
|
||||||
|
cp -av server %{buildroot}%{nodejs_sitelib}/%{pkg_name}/
|
||||||
|
cp -av node_modules %{buildroot}%{nodejs_sitelib}/%{pkg_name}/
|
||||||
|
|
||||||
|
install -d -m 0755 %{buildroot}%{_bindir}
|
||||||
|
cat << EOF > %{buildroot}%{_bindir}/%{pkg_name}
|
||||||
|
#!/bin/sh
|
||||||
|
export NODE_ENV=production
|
||||||
|
|
||||||
|
exec /usr/bin/node %{nodejs_sitelib}/%{pkg_name}/server/out/cli.js "\$@"
|
||||||
|
EOF
|
||||||
|
chmod +x %{buildroot}%{_bindir}/%{pkg_name}
|
||||||
|
|
||||||
|
find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -name "*.bak" -delete
|
||||||
|
find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -type f -name "\.*" -delete
|
||||||
|
find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -type d -name "\.bin" -print0 | xargs -0 rm -rf
|
||||||
|
find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -type d -name "\.github" -print0 | xargs -0 rm -rf
|
||||||
|
|
||||||
|
rm -rf %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/ajv/scripts/
|
||||||
|
rm -rf %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/dashdash/etc/
|
||||||
|
rm -rf %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/performance-now/test/
|
||||||
|
|
||||||
|
rm %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/src/get-options.sh
|
||||||
|
|
||||||
|
# dangling symlinks
|
||||||
|
rm %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/@types/fuzzy-search
|
||||||
|
rm %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/@types/node-fetch
|
||||||
|
rm %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/@types/turndown
|
||||||
|
rm %{buildroot}%{nodejs_sitelib}/%{pkg_name}/server/node_modules/@types/urijs
|
||||||
|
|
||||||
|
%fdupes %{buildroot}%{nodejs_sitelib}/%{pkg_name}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE bash-language-server-bundled-licenses.txt
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/%{pkg_name}
|
||||||
|
%{nodejs_sitelib}/%{pkg_name}/
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
%autochangelog
|
||||||
85
prepare_vendor.sh
Normal file
85
prepare_vendor.sh
Normal file
|
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# shellcheck disable=2181
|
||||||
|
|
||||||
|
BASHLS_URL="$(rpmspec -P ./*.spec | grep Source0 | sed -e 's/Source0:[ ]*//g')"
|
||||||
|
BASHLS_TARBALL="$(basename "${BASHLS_URL}")"
|
||||||
|
BASHLS_PKGVERSION="$(rpmspec -P ./*.spec | grep ^Version | sed -e 's/Version:[ ]*//g')"
|
||||||
|
BASHLS_PKGNAME="bash-language-server"
|
||||||
|
BASHLS_PKGDIR="$(pwd)"
|
||||||
|
BASHLS_TMPDIR="$(mktemp --tmpdir -d bashls-XXXXXXXX)"
|
||||||
|
BASHLS_PATH="${BASHLS_TMPDIR}/${BASHLS_PKGNAME}-server-${BASHLS_PKGVERSION}"
|
||||||
|
|
||||||
|
echo "URL: ${BASHLS_URL}"
|
||||||
|
echo "TARBALL: ${BASHLS_TARBALL}"
|
||||||
|
echo "NAME: ${BASHLS_PKGNAME}"
|
||||||
|
echo "VERSION: ${BASHLS_PKGVERSION}"
|
||||||
|
echo "PATH: ${BASHLS_PATH}"
|
||||||
|
|
||||||
|
cleanup_tmpdir() {
|
||||||
|
popd 2>/dev/null || true
|
||||||
|
rm -rf "${BASHLS_TMPDIR}"
|
||||||
|
}
|
||||||
|
trap cleanup_tmpdir SIGINT
|
||||||
|
|
||||||
|
cleanup_and_exit() {
|
||||||
|
cleanup_tmpdir
|
||||||
|
if test "$1" = 0 -o -z "$1" ; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit "${1}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -w "${BASHLS_TARBALL}" ]; then
|
||||||
|
wget "$BASHLS_URL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
tar -xf "${BASHLS_TARBALL}" -C "${BASHLS_TMPDIR}"
|
||||||
|
|
||||||
|
|
||||||
|
pushd "${BASHLS_PATH}" || cleanup_and_exit 1
|
||||||
|
|
||||||
|
PNPM_STORE_DIR="$(pwd)/.pnpm-store"
|
||||||
|
echo ">>>>>> Install npm modules"
|
||||||
|
pnpm install --store-dir="${PNPM_STORE_DIR}"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "ERROR: yarn install failed"
|
||||||
|
cleanup_and_exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">>>>>> Cleanup object dirs"
|
||||||
|
find "${PNPM_STORE_DIR}/" -type d -name "__pycache__" -print0 | xargs -0 rm -rf
|
||||||
|
find "${PNPM_STORE_DIR}/" -type d -name "*.o.d" -print0 | xargs -0 rm -rf
|
||||||
|
|
||||||
|
|
||||||
|
echo ">>>>>> Cleanup object files"
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.node" -print0 | xargs -0 rm -rf
|
||||||
|
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.dll" | grep -v signal-client | xargs rm -f
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.dylib" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.so" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.o" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.a" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.snyk-*.flag" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "builderror.log" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name ".deps" -type d -print0 | xargs -0 rm -rf
|
||||||
|
|
||||||
|
|
||||||
|
echo ">>>>>> Cleanup build info"
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "Makefile" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "*.target.mk" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "config.gypi" -delete
|
||||||
|
find "${PNPM_STORE_DIR}/" -name "package.json" -exec sed -i "s#${BASHLS_PATH}#/tmp#g" {} \;
|
||||||
|
|
||||||
|
|
||||||
|
echo ">>>>>> Package vendor files"
|
||||||
|
rm -f "${BASHLS_PKGDIR}/${BASHLS_PKGNAME}-${BASHLS_PKGVERSION}-vendor.tar.zst"
|
||||||
|
XZ_OPT="-T$(nproc)" tar --zstd -cf "${BASHLS_PKGDIR}/${BASHLS_PKGNAME}-${BASHLS_PKGVERSION}-vendor.tar.zst" .pnpm-store
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
cleanup_and_exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd || cleanup_and_exit 1
|
||||||
|
|
||||||
|
cleanup_and_exit 0
|
||||||
2
sources
Normal file
2
sources
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
SHA512 (bash-language-server-5.6.0.tar.gz) = 0c99d34ca0e92a4e5719e8c8ca99faad5effe5d6d45f72cdaa05f70df521cf0830e3f81acf700d172496afa721881c2f1df4faf280e897809ce55757d5039796
|
||||||
|
SHA512 (bash-language-server-5.6.0-vendor.tar.zst) = ea90b1ea6fd23bbd18ff1346f3b22813a0c5a38c0f3c36b58dbebe64d2dd1f449ae9e1ea5ca516124d8a7bf7f327d2062cbf7fb17ccdf424489a29eb14a71560
|
||||||
Loading…
Add table
Add a link
Reference in a new issue