mirror of
https://github.com/neovim/neovim
synced 2025-07-16 09:11:51 +00:00
ci(release): add linux-arm64 appimage and tarball
Problem: No releases for ARM Linux. Solution: Provide appimages and tarballs for `linux-arm64`. Rename x86 releases to `linux-x86_64` for consistency.
This commit is contained in:
committed by
Christian Clason
parent
eb60cd74fb
commit
c1718d6863
51
.github/workflows/notes.md
vendored
51
.github/workflows/notes.md
vendored
@ -34,25 +34,49 @@ Note: On Windows "Server" you may need to [install vcruntime140.dll](https://lea
|
|||||||
3. Extract: `tar xzvf nvim-macos-arm64.tar.gz`
|
3. Extract: `tar xzvf nvim-macos-arm64.tar.gz`
|
||||||
4. Run `./nvim-macos-arm64/bin/nvim`
|
4. Run `./nvim-macos-arm64/bin/nvim`
|
||||||
|
|
||||||
### Linux (x64)
|
### Linux (x86_64)
|
||||||
|
|
||||||
glibc 2.31 or newer is required. Or you may try the (unsupported) [builds for older glibc](https://github.com/neovim/neovim-releases).
|
glibc 2.31 or newer is required. Or you may try the (unsupported) [builds for older glibc](https://github.com/neovim/neovim-releases).
|
||||||
|
|
||||||
#### AppImage
|
#### AppImage
|
||||||
|
|
||||||
1. Download **nvim.appimage**
|
1. Download **nvim-linux-x86_64.appimage**
|
||||||
2. Run `chmod u+x nvim.appimage && ./nvim.appimage`
|
2. Run `chmod u+x nvim-linux-x86_64.appimage && ./nvim-linux-x86_64.appimage`
|
||||||
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
|
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
|
||||||
```
|
```
|
||||||
./nvim.appimage --appimage-extract
|
./nvim-linux-x86_64.appimage --appimage-extract
|
||||||
|
./squashfs-root/usr/bin/nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This appimage is also published as `nvim.appimage` for backward compatibility, but scripts should be updated to use the new name.
|
||||||
|
|
||||||
|
#### Tarball
|
||||||
|
|
||||||
|
1. Download **nvim-linux-x86_64.tar.gz**
|
||||||
|
2. Extract: `tar xzvf nvim-linux-x86_64.tar.gz`
|
||||||
|
3. Run `./nvim-linux-x86_64/bin/nvim`
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This tarball is also published as `nvim-linux64.tar.gz` for backward compatibility, but scripts should be updated to use the new name.
|
||||||
|
|
||||||
|
### Linux (arm64)
|
||||||
|
|
||||||
|
#### AppImage
|
||||||
|
|
||||||
|
1. Download **nvim-linux-arm64.appimage**
|
||||||
|
2. Run `chmod u+x nvim-linux-arm64.appimage && ./nvim-linux-arm64.appimage`
|
||||||
|
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
|
||||||
|
```
|
||||||
|
./nvim-linux-arm64.appimage --appimage-extract
|
||||||
./squashfs-root/usr/bin/nvim
|
./squashfs-root/usr/bin/nvim
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Tarball
|
#### Tarball
|
||||||
|
|
||||||
1. Download **nvim-linux64.tar.gz**
|
1. Download **nvim-linux-arm64.tar.gz**
|
||||||
2. Extract: `tar xzvf nvim-linux64.tar.gz`
|
2. Extract: `tar xzvf nvim-linux-arm64.tar.gz`
|
||||||
3. Run `./nvim-linux64/bin/nvim`
|
3. Run `./nvim-linux-arm64/bin/nvim`
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
@ -61,11 +85,14 @@ glibc 2.31 or newer is required. Or you may try the (unsupported) [builds for ol
|
|||||||
## SHA256 Checksums
|
## SHA256 Checksums
|
||||||
|
|
||||||
```
|
```
|
||||||
${SHA_LINUX_64_TAR}
|
${SHA_APPIMAGE_ARM64}
|
||||||
${SHA_APP_IMAGE}
|
${SHA_APPIMAGE_ARM64_ZSYNC}
|
||||||
${SHA_APP_IMAGE_ZSYNC}
|
${SHA_LINUX_ARM64_TAR}
|
||||||
${SHA_MACOS_X86_64}
|
${SHA_APPIMAGE_X86_64}
|
||||||
|
${SHA_APPIMAGE_X86_64_ZSYNC}
|
||||||
|
${SHA_LINUX_X86_64_TAR}
|
||||||
${SHA_MACOS_ARM64}
|
${SHA_MACOS_ARM64}
|
||||||
${SHA_WIN_64_ZIP}
|
${SHA_MACOS_X86_64}
|
||||||
${SHA_WIN_64_MSI}
|
${SHA_WIN_64_MSI}
|
||||||
|
${SHA_WIN_64_ZIP}
|
||||||
```
|
```
|
||||||
|
93
.github/workflows/release.yml
vendored
93
.github/workflows/release.yml
vendored
@ -39,10 +39,21 @@ jobs:
|
|||||||
printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT
|
printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
needs: setup
|
needs: setup
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
runner: [ ubuntu-20.04, ubuntu-24.04-arm ]
|
||||||
|
include:
|
||||||
|
- runner: ubuntu-20.04
|
||||||
|
arch: x86_64
|
||||||
|
cc: gcc-10
|
||||||
|
- runner: ubuntu-24.04-arm
|
||||||
|
arch: aarch64
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
env:
|
env:
|
||||||
CC: gcc-10
|
CC: ${{ matrix.cc }}
|
||||||
|
LDAI_NO_APPSTREAM: 1 # skip checking (broken) AppStream metadata for issues
|
||||||
outputs:
|
outputs:
|
||||||
version: ${{ steps.build.outputs.version }}
|
version: ${{ steps.build.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
@ -52,22 +63,25 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- run: ./.github/scripts/install_deps.sh
|
- run: ./.github/scripts/install_deps.sh
|
||||||
- run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV
|
- run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV
|
||||||
|
- if: matrix.arch == 'aarch64'
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y libfuse2t64
|
||||||
- name: appimage
|
- name: appimage
|
||||||
run: ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }}
|
run: |
|
||||||
|
./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }}
|
||||||
- name: tar.gz
|
- name: tar.gz
|
||||||
run: cpack --config build/CPackConfig.cmake -G TGZ
|
run: cpack --config build/CPackConfig.cmake -G TGZ
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: appimage
|
name: appimage-${{ matrix.arch }}
|
||||||
path: |
|
path: |
|
||||||
build/bin/nvim.appimage
|
build/bin/nvim-linux-${{ matrix.arch }}.appimage
|
||||||
build/bin/nvim.appimage.zsync
|
build/bin/nvim-linux-${{ matrix.arch }}.appimage.zsync
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: nvim-linux64
|
name: nvim-linux-${{ matrix.arch }}
|
||||||
path: |
|
path: |
|
||||||
build/nvim-linux64.tar.gz
|
build/nvim-linux-${{ matrix.arch }}.tar.gz
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
- name: Export version
|
- name: Export version
|
||||||
id: build
|
id: build
|
||||||
@ -75,7 +89,6 @@ jobs:
|
|||||||
printf 'version<<END\n' >> $GITHUB_OUTPUT
|
printf 'version<<END\n' >> $GITHUB_OUTPUT
|
||||||
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
|
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
|
||||||
printf 'END\n' >> $GITHUB_OUTPUT
|
printf 'END\n' >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
macos:
|
macos:
|
||||||
needs: setup
|
needs: setup
|
||||||
strategy:
|
strategy:
|
||||||
@ -104,7 +117,6 @@ jobs:
|
|||||||
-D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \
|
-D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \
|
||||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||||
cmake --build .deps
|
cmake --build .deps
|
||||||
|
|
||||||
- name: Build neovim
|
- name: Build neovim
|
||||||
run: |
|
run: |
|
||||||
cmake -B build -G Ninja \
|
cmake -B build -G Ninja \
|
||||||
@ -112,7 +124,6 @@ jobs:
|
|||||||
-D ENABLE_LIBINTL=OFF \
|
-D ENABLE_LIBINTL=OFF \
|
||||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
run: cpack --config build/CPackConfig.cmake
|
run: cpack --config build/CPackConfig.cmake
|
||||||
|
|
||||||
@ -185,23 +196,45 @@ jobs:
|
|||||||
echo 'PRERELEASE=') >> $GITHUB_ENV
|
echo 'PRERELEASE=') >> $GITHUB_ENV
|
||||||
gh release delete stable --yes || true
|
gh release delete stable --yes || true
|
||||||
git push origin :stable || true
|
git push origin :stable || true
|
||||||
|
- name: Rename aarch64 artifacts
|
||||||
|
run: |
|
||||||
|
cd ./nvim-linux-aarch64
|
||||||
|
mv nvim-linux-aarch64.tar.gz nvim-linux-arm64.tar.gz
|
||||||
|
cd ../appimage-aarch64
|
||||||
|
mv nvim-linux-aarch64.appimage nvim-linux-arm64.appimage
|
||||||
|
mv nvim-linux-aarch64.appimage.zsync nvim-linux-arm64.appimage.zsync
|
||||||
# `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the
|
# `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the
|
||||||
# containing folder from the output.
|
# containing folder from the output.
|
||||||
- name: Generate Linux64 SHA256 checksums
|
- name: Generate Linux x86_64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./nvim-linux64
|
cd ./nvim-linux-x86_64
|
||||||
sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum
|
sha256sum nvim-linux-x86_64.tar.gz > nvim-linux-x86_64.tar.gz.sha256sum
|
||||||
echo "SHA_LINUX_64_TAR=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_LINUX_X86_64_TAR=$(cat nvim-linux-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||||
- name: Generate App Image SHA256 checksums
|
- name: Generate Linux arm64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./appimage
|
cd ./nvim-linux-aarch64
|
||||||
sha256sum nvim.appimage > nvim.appimage.sha256sum
|
sha256sum nvim-linux-arm64.tar.gz > nvim-linux-arm64.tar.gz.sha256sum
|
||||||
echo "SHA_APP_IMAGE=$(cat nvim.appimage.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_LINUX_ARM64_TAR=$(cat nvim-linux-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||||
- name: Generate App Image Zsync SHA256 checksums
|
- name: Generate AppImage x64_64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./appimage
|
cd ./appimage-x86_64
|
||||||
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum
|
sha256sum nvim-linux-x86_64.appimage > nvim-linux-x86_64.appimage.sha256sum
|
||||||
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_APPIMAGE_X86_64=$(cat nvim-linux-x86_64.appimage.sha256sum)" >> $GITHUB_ENV
|
||||||
|
- name: Generate AppImage x86_64 Zsync SHA256 checksums
|
||||||
|
run: |
|
||||||
|
cd ./appimage-x86_64
|
||||||
|
sha256sum nvim-linux-x86_64.appimage.zsync > nvim-linux-x86_64.appimage.zsync.sha256sum
|
||||||
|
echo "SHA_APPIMAGE_X86_64_ZSYNC=$(cat nvim-linux-x86_64.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
||||||
|
- name: Generate AppImage x64_64 SHA256 checksums
|
||||||
|
run: |
|
||||||
|
cd ./appimage-aarch64
|
||||||
|
sha256sum nvim-linux-arm64.appimage > nvim-linux-arm64.appimage.sha256sum
|
||||||
|
echo "SHA_APPIMAGE_ARM64=$(cat nvim-linux-arm64.appimage.sha256sum)" >> $GITHUB_ENV
|
||||||
|
- name: Generate AppImage arm64 Zsync SHA256 checksums
|
||||||
|
run: |
|
||||||
|
cd ./appimage-aarch64
|
||||||
|
sha256sum nvim-linux-arm64.appimage.zsync > nvim-linux-arm64.appimage.zsync.sha256sum
|
||||||
|
echo "SHA_APPIMAGE_ARM64_ZSYNC=$(cat nvim-linux-arm64.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
||||||
- name: Generate macos x86_64 SHA256 checksums
|
- name: Generate macos x86_64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./nvim-macos-x86_64
|
cd ./nvim-macos-x86_64
|
||||||
@ -219,6 +252,16 @@ jobs:
|
|||||||
echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
|
||||||
sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
|
sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
|
||||||
echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
|
||||||
|
- name: Create linux64 aliases # For backward compatibility; remove for 0.12
|
||||||
|
run: |
|
||||||
|
cd ./nvim-linux-x86_64
|
||||||
|
cp nvim-linux-x86_64.tar.gz nvim-linux64.tar.gz
|
||||||
|
cp nvim-linux-x86_64.tar.gz.sha256sum nvim-linux64.tar.gz.sha256sum
|
||||||
|
cd ../appimage-x86_64
|
||||||
|
cp nvim-linux-x86_64.appimage nvim.appimage
|
||||||
|
cp nvim-linux-x86_64.appimage.sha256sum nvim.appimage.sha256sum
|
||||||
|
cp nvim-linux-x86_64.appimage.zsync nvim.appimage.zsync
|
||||||
|
cp nvim-linux-x86_64.appimage.zsync.sha256sum nvim.appimage.zsync.sha256sum
|
||||||
- name: Publish release
|
- name: Publish release
|
||||||
env:
|
env:
|
||||||
NVIM_VERSION: ${{ needs.linux.outputs.version }}
|
NVIM_VERSION: ${{ needs.linux.outputs.version }}
|
||||||
@ -226,6 +269,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
|
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
|
||||||
if [ "$TAG_NAME" != "nightly" ]; then
|
if [ "$TAG_NAME" != "nightly" ]; then
|
||||||
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-aarch64/* appimage-x86_64/* appimage-aarch64/* nvim-win64/*
|
||||||
fi
|
fi
|
||||||
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-aarch64/* appimage-x86_64/* appimage-aarch64/* nvim-win64/*
|
||||||
|
2
BUILD.md
2
BUILD.md
@ -13,7 +13,7 @@
|
|||||||
- To build on Windows, see the [Building on Windows](#building-on-windows) section. _MSVC (Visual Studio) is recommended._
|
- To build on Windows, see the [Building on Windows](#building-on-windows) section. _MSVC (Visual Studio) is recommended._
|
||||||
5. `sudo make install`
|
5. `sudo make install`
|
||||||
- Default install location is `/usr/local`
|
- Default install location is `/usr/local`
|
||||||
- On Debian/Ubuntu, instead of `sudo make install`, you can try `cd build && cpack -G DEB && sudo dpkg -i nvim-linux64.deb` to build DEB-package and install it. This helps ensure clean removal of installed files. Note: This is an unsupported, "best-effort" feature of the Nvim build.
|
- On Debian/Ubuntu, instead of `sudo make install`, you can try `cd build && cpack -G DEB && sudo dpkg -i nvim-linux-<arch>.deb` (with `<arch>` either `x86_64` or `arm64`) to build DEB-package and install it. This helps ensure clean removal of installed files. Note: This is an unsupported, "best-effort" feature of the Nvim build.
|
||||||
|
|
||||||
**Notes**:
|
**Notes**:
|
||||||
- From the repository's root directory, running `make` will download and build all the needed dependencies and put the `nvim` executable in `build/bin`.
|
- From the repository's root directory, running `make` will download and build all the needed dependencies and put the `nvim` executable in `build/bin`.
|
||||||
|
21
INSTALL.md
21
INSTALL.md
@ -15,9 +15,10 @@ Install from download
|
|||||||
Downloads are available on the [Releases](https://github.com/neovim/neovim/releases) page.
|
Downloads are available on the [Releases](https://github.com/neovim/neovim/releases) page.
|
||||||
|
|
||||||
* Latest [stable release](https://github.com/neovim/neovim/releases/latest)
|
* Latest [stable release](https://github.com/neovim/neovim/releases/latest)
|
||||||
* [macOS x86](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz)
|
* [macOS x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz)
|
||||||
* [macOS arm](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz)
|
* [macOS arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz)
|
||||||
* [Linux](https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz)
|
* [Linux x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz)
|
||||||
|
* [Linux arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-arm64.tar.gz)
|
||||||
* [Windows](https://github.com/neovim/neovim/releases/latest/download/nvim-win64.msi)
|
* [Windows](https://github.com/neovim/neovim/releases/latest/download/nvim-win64.msi)
|
||||||
* Latest [development prerelease](https://github.com/neovim/neovim/releases/nightly)
|
* Latest [development prerelease](https://github.com/neovim/neovim/releases/nightly)
|
||||||
|
|
||||||
@ -118,24 +119,24 @@ Then add this to your shell config (`~/.bashrc`, `~/.zshrc`, ...):
|
|||||||
|
|
||||||
### AppImage ("universal" Linux package)
|
### AppImage ("universal" Linux package)
|
||||||
|
|
||||||
The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.)
|
The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim-linux-x86_64.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.) The following instructions assume an `x86_64` architecture; on ARM Linux replace with `arm64`.
|
||||||
|
|
||||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
|
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-86_64.appimage
|
||||||
chmod u+x nvim.appimage
|
chmod u+x nvim-linux-x86_64.appimage
|
||||||
./nvim.appimage
|
./nvim-linux-x86_64.appimage
|
||||||
|
|
||||||
To expose nvim globally:
|
To expose nvim globally:
|
||||||
|
|
||||||
mkdir -p /opt/nvim
|
mkdir -p /opt/nvim
|
||||||
mv nvim.appimage /opt/nvim/nvim
|
mv nvim-linux-x86_64.appimage /opt/nvim/nvim
|
||||||
|
|
||||||
And the following line to your shell config (`~/.bashrc`, `~/.zshrc`, ...):
|
And the following line to your shell config (`~/.bashrc`, `~/.zshrc`, ...):
|
||||||
|
|
||||||
export PATH="$PATH:/opt/nvim/"
|
export PATH="$PATH:/opt/nvim/"
|
||||||
|
|
||||||
If the `./nvim.appimage` command fails, try:
|
If the `./nvim-linux-x86_64.appimage` command fails, try:
|
||||||
```sh
|
```sh
|
||||||
./nvim.appimage --appimage-extract
|
./nvim-linux-x86_64.appimage --appimage-extract
|
||||||
./squashfs-root/AppRun --version
|
./squashfs-root/AppRun --version
|
||||||
|
|
||||||
# Optional: exposing nvim globally.
|
# Optional: exposing nvim globally.
|
||||||
|
@ -53,7 +53,7 @@ elseif(APPLE)
|
|||||||
set(CPACK_GENERATOR TGZ)
|
set(CPACK_GENERATOR TGZ)
|
||||||
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
||||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
set(CPACK_PACKAGE_FILE_NAME "nvim-linux64")
|
set(CPACK_PACKAGE_FILE_NAME "nvim-linux-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
set(CPACK_GENERATOR TGZ DEB)
|
set(CPACK_GENERATOR TGZ DEB)
|
||||||
set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required
|
set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required
|
||||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required
|
||||||
|
@ -14,8 +14,8 @@ Supported platforms *supported-platforms*
|
|||||||
`System` `Tier` `Versions` `Tested versions`
|
`System` `Tier` `Versions` `Tested versions`
|
||||||
Linux (x86_64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
|
Linux (x86_64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
|
||||||
Linux (arm64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
|
Linux (arm64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
|
||||||
macOS (Intel) 1 >= 11 macOS 13
|
macOS (x86_64) 1 >= 11 macOS 13
|
||||||
macOS (M1) 1 >= 11 macOS 15
|
macOS (arm64) 1 >= 11 macOS 15
|
||||||
Windows 64-bit 1 >= Windows 10 Version 1809 Windows Server 2022
|
Windows 64-bit 1 >= Windows 10 Version 1809 Windows Server 2022
|
||||||
FreeBSD 1 >= 10 FreeBSD 14
|
FreeBSD 1 >= 10 FreeBSD 14
|
||||||
OpenBSD 2 >= 7
|
OpenBSD 2 >= 7
|
||||||
|
@ -40,16 +40,16 @@ export VERSION
|
|||||||
cd "$APP_BUILD_DIR" || exit
|
cd "$APP_BUILD_DIR" || exit
|
||||||
|
|
||||||
# Only downloads linuxdeploy if the remote file is different from local
|
# Only downloads linuxdeploy if the remote file is different from local
|
||||||
if [ -e "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage ]; then
|
if [ -e "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage ]; then
|
||||||
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \
|
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
|
||||||
-z "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \
|
-z "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
|
||||||
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage
|
||||||
else
|
else
|
||||||
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \
|
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
|
||||||
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chmod +x "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage
|
chmod +x "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage
|
||||||
|
|
||||||
# metainfo is not packaged automatically by linuxdeploy
|
# metainfo is not packaged automatically by linuxdeploy
|
||||||
mkdir -p "$APP_DIR/usr/share/metainfo/"
|
mkdir -p "$APP_DIR/usr/share/metainfo/"
|
||||||
@ -76,23 +76,23 @@ chmod 755 AppRun
|
|||||||
cd "$APP_BUILD_DIR" || exit # Get out of AppImage directory.
|
cd "$APP_BUILD_DIR" || exit # Get out of AppImage directory.
|
||||||
|
|
||||||
# Set the name of the file generated by appimage
|
# Set the name of the file generated by appimage
|
||||||
export OUTPUT=nvim.appimage
|
export OUTPUT=nvim-linux-"$ARCH".appimage
|
||||||
|
|
||||||
# If it's a release generate the zsync file
|
# If it's a release generate the zsync file
|
||||||
if [ -n "$TAG" ]; then
|
if [ -n "$TAG" ]; then
|
||||||
export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim.appimage.zsync"
|
export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim-linux-$ARCH.appimage.zsync"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Generate AppImage.
|
# Generate AppImage.
|
||||||
# - Expects: $ARCH, $APP, $VERSION env vars
|
# - Expects: $ARCH, $APP, $VERSION env vars
|
||||||
# - Expects: ./$APP.AppDir/ directory
|
# - Expects: ./$APP.AppDir/ directory
|
||||||
# - Produces: ./nvim.appimage
|
# - Produces: ./nvim-linux-$ARCH.appimage
|
||||||
./linuxdeploy-x86_64.AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \
|
./linuxdeploy-"$ARCH".AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \
|
||||||
"$ROOT_DIR/runtime/nvim.png" --output appimage
|
"$ROOT_DIR/runtime/nvim.png" --output appimage
|
||||||
|
|
||||||
# Moving the final executable to a different folder so it isn't in the
|
# Moving the final executable to a different folder so it isn't in the
|
||||||
# way for a subsequent build.
|
# way for a subsequent build.
|
||||||
|
|
||||||
mv "$ROOT_DIR"/build/nvim.appimage* "$ROOT_DIR"/build/bin
|
mv "$ROOT_DIR"/build/nvim-linux-"$ARCH".appimage* "$ROOT_DIR"/build/bin
|
||||||
|
|
||||||
echo 'genappimage.sh: finished'
|
echo 'genappimage.sh: finished'
|
||||||
|
Reference in New Issue
Block a user