diff --git a/.gitignore b/.gitignore index 4048e05..5f5dba2 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,8 @@ /neovim-0.11.3.tar.gz /neovim-0.11.3-vendor.tar.gz /neovim-0.11.3-vendor-treesitter.tar.gz +/neovim-0.11.4.tar.gz +/neovim-0.11.4-vendor.tar.gz +/neovim-0.11.4-vendor-treesitter.tar.gz +/neovim-0.11.5.tar.gz +/neovim-0.11.5-vendor.tar.gz diff --git a/README.md b/README.md index 3e9397f..e3533c1 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,3 @@ The hyper-extensible Vim-based text editor * Download the new tarball * Add the tarball with `fedpkg new-sources neovim-.tar.gz` * Run `bash mkvendor.sh` -* Run `bash mkvendor-treesitter.sh` diff --git a/mkvendor-treesitter.sh b/mkvendor-treesitter.sh deleted file mode 100644 index 5ef2d5c..0000000 --- a/mkvendor-treesitter.sh +++ /dev/null @@ -1,27 +0,0 @@ - #!/usr/bin/bash -x - -set -euo pipefail - -url=$(rpmspec -P neovim.spec | sed -En 's/^Source0:[[:space:]]+//p') -archive=$(basename "$url") -tmp=$(mktemp -d) -trap "rm -rf $tmp" EXIT - -curl -Lo "${tmp}/${archive}" "${url}" -grep -F "${archive}" sources | (cd "${tmp}" && cksum -c) -mkdir -p "${tmp}/src" -tar -zxf "${tmp}/${archive}" -C "${tmp}/src" --strip-components=1 - -cmake -S "${tmp}/src/cmake.deps" -B "${tmp}/deps" -G Ninja \ - -DUSE_BUNDLED=OFF -DUSE_BUNDLED_TS=ON -targets=$(basename -a "${tmp}/deps"/build/downloads/treesitter | \ - xargs -I {} echo build/src/{}-stamp/{}-download) -ninja -C "${tmp}/deps" ${targets} - -mv "${tmp}/${archive}" . -vendor="${archive%.tar.gz}-vendor" -tar -zcf "${vendor}-treesitter.tar.gz" -H pax --numeric-owner --owner=0:0 \ - -C "${tmp}/deps/build/downloads" . --transform="s/^\\./${vendor}-treesitter/" - -echo -echo "Run: fedpkg new-sources ${archive} ${vendor}.tar.gz ${vendor}-treesitter.tar.gz" diff --git a/mkvendor.sh b/mkvendor.sh index c030923..69152c9 100644 --- a/mkvendor.sh +++ b/mkvendor.sh @@ -1,28 +1,61 @@ - #!/usr/bin/bash -x +#!/usr/bin/bash -x set -euo pipefail -url=$(rpmspec -P neovim.spec | sed -En 's/^Source0:[[:space:]]+//p') -archive=$(basename "$url") -tmp=$(mktemp -d) -trap "rm -rf $tmp" EXIT +nvim_url="$(rpmspec -P neovim.spec | sed -En 's/^Source0:[[:space:]]+//p')" +nvim_archive="$(basename "$nvim_url")" +nvim_tmpdir="$(mktemp --tmpdir -d nvim-XXXXXXXX)" +nvim_srcdir="$(pwd)" -curl -Lo "${tmp}/${archive}" "${url}" -grep -F "${archive}" sources | (cd "${tmp}" && cksum -c) -mkdir -p "${tmp}/src" -tar -zxf "${tmp}/${archive}" -C "${tmp}/src" --strip-components=1 +cleanup_tmpdir() { + popd 2>/dev/null || true + rm -rf "${nvim_tmpdir}" +} +trap cleanup_tmpdir SIGINT -cmake -S "${tmp}/src/cmake.deps" -B "${tmp}/deps" -G Ninja \ - -DUSE_BUNDLED=OFF -DUSE_BUNDLED_TS_PARSERS=ON -targets=$(basename -a "${tmp}/deps"/build/downloads/treesitter_* | \ - xargs -I {} echo build/src/{}-stamp/{}-download) -ninja -C "${tmp}/deps" ${targets} +cleanup_and_exit() { + cleanup_tmpdir + if test "$1" = 0 -o -z "$1" ; then + exit 0 + else + exit "${1}" + fi +} -mv "${tmp}/${archive}" . -vendor="${archive%.tar.gz}-vendor" -tar -zcf "${vendor}.tar.gz" -H pax --numeric-owner --owner=0:0 \ - -C "${tmp}/deps/build/downloads" . --transform="s/^\\./${vendor}/" +if [ ! -w "${nvim_archive}" ]; then + curl -Lo "${nvim_archive}" "${nvim_url}" + fedpkg new-sources "${nvim_archive}" +fi + +mkdir -p "${nvim_tmpdir}/src" +tar -zxf "${nvim_srcdir}/${nvim_archive}" -C "${nvim_tmpdir}/src" --strip-components=1 + +pushd "${nvim_tmpdir}" || cleanup_and_exit 1 + +cmake \ + -S "${nvim_tmpdir}/src/cmake.deps" \ + -B "${nvim_tmpdir}/deps" -G Ninja \ + -DUSE_BUNDLED=OFF \ + -DUSE_BUNDLED_TS=ON \ + -DUSE_BUNDLED_TS_PARSERS=ON + +readarray -t targets < <(basename -a "${nvim_tmpdir}/deps/build/downloads/"treesitter* | \ + xargs -I {} echo build/src/{}-stamp/{}-download) +ninja -C "${nvim_tmpdir}/deps" "${targets[@]}" + +nvim_vendor="${nvim_archive%.tar.gz}-vendor" +nvim_vendor_archive="${nvim_vendor}.tar.gz" +tar -zcf "${nvim_srcdir}/${nvim_vendor_archive}" \ + -H pax \ + --numeric-owner \ + --owner=0:0 \ + -C "${nvim_tmpdir}/deps/build/downloads" . \ + --transform="s/^\\./${nvim_vendor}/" +popd + +cksum -a sha512 "${nvim_archive}" "${nvim_vendor_archive}" | tee sources -cksum -a sha512 "${archive}" "${vendor}.tar.gz" | tee sources echo -echo "Run: fedpkg new-sources ${archive} ${vendor}.tar.gz" +echo "Run: fedpkg new-sources ${nvim_archive} ${nvim_vendor_archive}" + +cleanup_and_exit 0 diff --git a/neovim.spec b/neovim.spec index 32cb9b5..d3e5009 100644 --- a/neovim.spec +++ b/neovim.spec @@ -45,7 +45,7 @@ %endif Name: neovim -Version: 0.11.3 +Version: 0.11.5 Release: %autorelease License: Apache-2.0 AND Vim AND MIT @@ -58,7 +58,6 @@ Source2: spec-template # Generated by mkvendor.sh Source3: %{name}-%{version}-vendor.tar.gz Source4: neovim-bundled-licenses.txt -Source5: %{name}-%{version}-vendor-treesitter.tar.gz Patch1000: neovim-lua-bit32.patch @@ -124,14 +123,7 @@ excisions, Neovim is Vim. It is built for users who want the good parts of Vim, without compromise, and more. %prep -%if %{with system_treesitter} %setup -q -b3 -%else -%setup -q -b3 -b5 - -mv ../%{name}-%{version}-vendor-treesitter/* \ - ../%{name}-%{version}-vendor/ -%endif cp %{SOURCE4} . @@ -187,11 +179,11 @@ find %{buildroot}%{_datadir} \( -name "*.bat" -o -name "*.awk" \) \ # Refresh documentation helptags. %transfiletriggerin -- %{_datadir}/nvim/runtime/doc -%{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : +NVIM_LOG_FILE=/dev/null %{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : %transfiletriggerpostun -- %{_datadir}/nvim/runtime/doc > %{_datadir}/nvim/runtime/doc/tags || : -%{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : +NVIM_LOG_FILE=/dev/null %{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : %files -f nvim.lang %license LICENSE.txt neovim-bundled-licenses.txt @@ -278,6 +270,9 @@ find %{buildroot}%{_datadir} \( -name "*.bat" -o -name "*.awk" \) \ %dir %{_datadir}/nvim/runtime/lua %{_datadir}/nvim/runtime/lua/*.lua +%dir %{_datadir}/nvim/runtime/lua/nvim +%{_datadir}/nvim/runtime/lua/nvim/*.lua + %dir %{_datadir}/nvim/runtime/lua/vim %{_datadir}/nvim/runtime/lua/vim/*.lua @@ -440,5 +435,9 @@ find %{buildroot}%{_datadir} \( -name "*.bat" -o -name "*.awk" \) \ %{_datadir}/nvim/runtime/tutor/ja/*.tutor %{_datadir}/nvim/runtime/tutor/ja/*.tutor.json +%dir %{_datadir}/nvim/runtime/tutor/zh +%{_datadir}/nvim/runtime/tutor/zh/*.tutor +%{_datadir}/nvim/runtime/tutor/zh/*.tutor.json + %changelog %autochangelog diff --git a/sources b/sources index 6caa44e..2bb5bca 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (neovim-0.11.3.tar.gz) = 30be325ea364369c242d1ccc7067ccda4c64e4f89198431d1a22ad04213fd7a9aba01d41e9c7c7c35c73883e575d3e09bb928d8e450ad484814165ca1390d995 -SHA512 (neovim-0.11.3-vendor.tar.gz) = 65e11af8c8de8096ba8bcf4b08371a168ace608a30b9176c80ab57d2832aeb2ae1f05411f998f864a5ee35693fb7a0c8b1e42d71bdf2579cc99162049d6d51c8 -SHA512 (neovim-0.11.3-vendor-treesitter.tar.gz) = 5e2419f11ddf554d53942738a35057cb367c90808067294c4ae40b7bde44eb89da5e4d9c7df9a7297b132df9cd010ce093e6c286906fd0961f783a8863f4150e +SHA512 (neovim-0.11.5.tar.gz) = 1b2bb241261eefd195275e28bb9ebe4102261d61d8b7fe38ccebad7131ccc38d29fae8494d511b4c440ad71ef95dc405a2ba6e98b5d47426f215c8137c8bc91f +SHA512 (neovim-0.11.5-vendor.tar.gz) = 388e8afb7919d89c7bceab3f03a49909ef307c3c2ac29d9899f5e30e475c18d453010290cc8929e5cae0a1252b2b7056a5d2bedfc9a3f3a12c0530aa52e14b0c