Compare commits
10
Commits
eee72b8a26
...
b9f6f3ce85
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9f6f3ce85 | ||
|
|
1f82aac078 | ||
|
|
f7870a2e60 | ||
|
|
daf970e0fc | ||
|
|
5fb811b721 | ||
|
|
b56f85e5cb | ||
|
|
ea1a0e9296 | ||
|
|
055bea8ff0 | ||
|
|
54fb208c15 | ||
|
|
a2702cd3be |
@@ -1,56 +0,0 @@
|
||||
pkgbase = windsurf
|
||||
pkgver = 1.9600.41
|
||||
pkgrel = 1
|
||||
url = https://windsurf.com/
|
||||
arch = x86_64
|
||||
license = LicenseRef-Windsurf Editor
|
||||
depends = ripgrep
|
||||
depends = fd
|
||||
depends = xdg-utils
|
||||
depends = alsa-lib
|
||||
depends = dbus
|
||||
depends = gnupg
|
||||
depends = libnotify
|
||||
depends = libsecret
|
||||
depends = libxkbfile
|
||||
depends = libxss
|
||||
optdepends = glib2: Move to trash functionality
|
||||
optdepends = org.freedesktop.secrets: Sync settings
|
||||
optdepends = libdbusmenu-glib: KDE global menu
|
||||
optdepends = lsof: Terminal splitting
|
||||
optdepends = vulkan-driver
|
||||
noextract = Windsurf-linux-x64-1.9600.41.deb
|
||||
options = !strip
|
||||
source = https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-1.9600.41.deb
|
||||
source = https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh
|
||||
sha256sums = ddcb1098231ea5a44d38461deb742e41d3fe2ea756275016903016f753bd7ea0
|
||||
sha256sums = 5da1525b5fe804b9192c05e1cbf8d751d852e3717fb2787c7ffe98fd5d93e8c1
|
||||
|
||||
pkgname = windsurf
|
||||
pkgdesc = The new purpose-built IDE to harness magic
|
||||
depends = ripgrep
|
||||
depends = fd
|
||||
depends = xdg-utils
|
||||
depends = alsa-lib
|
||||
depends = dbus
|
||||
depends = gnupg
|
||||
depends = libnotify
|
||||
depends = libsecret
|
||||
depends = libxkbfile
|
||||
depends = libxss
|
||||
|
||||
pkgname = windsurf-electron-latest
|
||||
pkgdesc = Windsurf Editor on latest stable electron
|
||||
depends = ripgrep
|
||||
depends = fd
|
||||
depends = xdg-utils
|
||||
depends = alsa-lib
|
||||
depends = dbus
|
||||
depends = gnupg
|
||||
depends = libnotify
|
||||
depends = libsecret
|
||||
depends = libxkbfile
|
||||
depends = libxss
|
||||
depends = electron
|
||||
provides = windsurf
|
||||
conflicts = windsurf
|
||||
@@ -0,0 +1,4 @@
|
||||
code.sh
|
||||
*.pkg.tar.zst
|
||||
*.deb
|
||||
src/*
|
||||
@@ -1,66 +1,62 @@
|
||||
# Maintainer: Chris Watson <cawatson1993@gmail.com>
|
||||
|
||||
pkgver=1.9600.41
|
||||
pkgbase=windsurf
|
||||
pkgname=(windsurf{,-electron-latest})
|
||||
pkgname=windsurf
|
||||
pkgver=2.1.32
|
||||
pkgrel=1
|
||||
pkgdesc='The new purpose-built IDE to harness magic'
|
||||
arch=('x86_64')
|
||||
url="https://windsurf.com/"
|
||||
url='https://windsurf.com/'
|
||||
license=('LicenseRef-Windsurf Editor')
|
||||
depends=( ripgrep fd xdg-utils #replacements
|
||||
depends=(
|
||||
'alsa-lib'
|
||||
'dbus'
|
||||
'fd'
|
||||
'gnupg'
|
||||
'libnotify'
|
||||
'libsecret'
|
||||
'libxkbfile'
|
||||
'libxss'
|
||||
'ripgrep'
|
||||
'xdg-utils'
|
||||
)
|
||||
optdepends=('glib2: Move to trash functionality'
|
||||
'org.freedesktop.secrets: Sync settings'
|
||||
'libdbusmenu-glib: KDE global menu'
|
||||
'lsof: Terminal splitting'
|
||||
'vulkan-driver')
|
||||
options=('!strip') # for sing of ext ?
|
||||
source=("https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-${pkgver}.deb"
|
||||
"https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh")
|
||||
sha256sums=('ddcb1098231ea5a44d38461deb742e41d3fe2ea756275016903016f753bd7ea0'
|
||||
optdepends=(
|
||||
'glib2: Move to trash functionality'
|
||||
'libdbusmenu-glib: KDE global menu'
|
||||
'lsof: Terminal splitting'
|
||||
'org.freedesktop.secrets: Sync settings'
|
||||
'vulkan-driver: Hardware acceleration'
|
||||
)
|
||||
options=('!strip')
|
||||
source=(
|
||||
"windsurf-${pkgver}.deb::https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-${pkgver}.deb"
|
||||
'code.sh::https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh'
|
||||
)
|
||||
sha256sums=('ded473cf5f8cd07f8890be951f9164118ba0633a5cee88844fa623b7c4713df3'
|
||||
'5da1525b5fe804b9192c05e1cbf8d751d852e3717fb2787c7ffe98fd5d93e8c1')
|
||||
noextract=(Windsurf-linux-x64-${pkgver}.deb) # avoid double tarball
|
||||
noextract=("windsurf-${pkgver}.deb")
|
||||
|
||||
build() {
|
||||
bsdtar -xOf ${noextract[0]} data.tar.xz | tar -xJf - --exclude 'usr/share/windsurf/[^r]*' --exclude 'usr/share/windsurf/*.pak'
|
||||
# Fix path
|
||||
bsdtar -xOf "${srcdir}/windsurf-${pkgver}.deb" data.tar.xz | tar -xJf -
|
||||
# Fix paths
|
||||
mv usr/share/{appdata,metainfo}
|
||||
mv usr/share/zsh/{vendor-completions,site-functions}
|
||||
# Launcher
|
||||
_app=/usr/share/windsurf/resources/app
|
||||
sed -e "s|code-flags|windsurf-flags|" code.sh \
|
||||
sed -e 's|code-flags|windsurf-flags|' \
|
||||
-e "s|/usr/lib/code/out/cli.js|${_app}/out/cli.js|" \
|
||||
-e "s|/usr/lib/code/code.mjs|--app=${_app}|" > run.sh
|
||||
ln -sf /usr/bin/windsurf usr/share/windsurf/windsurf
|
||||
# Replacements
|
||||
ln -svf /usr/bin/fd usr/share/windsurf/resources/app/extensions/windsurf/bin/fd
|
||||
ln -svf /usr/bin/rg usr/share/windsurf/resources/app/node_modules/@vscode/ripgrep/bin/rg
|
||||
-e "s|/usr/lib/code/code.mjs|--app=${_app}|" \
|
||||
"${srcdir}/code.sh" > run.sh
|
||||
# System binary replacements
|
||||
ln -svf /usr/bin/fd usr/share/windsurf/resources/app/extensions/windsurf/bin/fd
|
||||
ln -svf /usr/bin/rg usr/share/windsurf/resources/app/node_modules/@vscode/ripgrep/bin/rg
|
||||
ln -svf /usr/bin/xdg-open usr/share/windsurf/resources/app/node_modules/open/xdg-open
|
||||
# SVG Icon
|
||||
install -Dm644 "usr/share/${pkgname}/resources/app/out/media/code-iconsvg.svg" "usr/share/icons/hicolor/scalable/apps/${pkgname}.svg"
|
||||
install -Dm644 "usr/share/${pkgname}/resources/app/out/media/code-icon.svg" \
|
||||
"usr/share/icons/hicolor/scalable/apps/${pkgname}.svg"
|
||||
}
|
||||
|
||||
package_windsurf(){
|
||||
pkgdesc="The new purpose-built IDE to harness magic"
|
||||
package() {
|
||||
cp -r --reflink=auto usr "${pkgdir}/usr"
|
||||
_electron=electron$(rg -o -r '$1' '"electron": *"[^0-9]*([0-9]+)' usr/share/windsurf/resources/app/package.json)
|
||||
echo $_electron
|
||||
sed "s|name=electron|name=${_electron}|" run.sh > run-safe.sh
|
||||
sed "s|/usr/lib/\${name}/electron|/usr/share/windsurf/windsurf|" run.sh > run-safe.sh
|
||||
install -Dm755 run-safe.sh "${pkgdir}/usr/bin/windsurf"
|
||||
depends+=(${_electron}) # hidden from --printsrcinfo
|
||||
}
|
||||
|
||||
package_windsurf-electron-latest(){
|
||||
pkgdesc="Windsurf Editor on latest stable electron"
|
||||
mv usr "${pkgdir}/usr" # breaks --repackage
|
||||
install -Dm755 run.sh "${pkgdir}/usr/bin/windsurf"
|
||||
depends+=(electron)
|
||||
conflicts=(windsurf)
|
||||
provides=(windsurf)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
rm -f .SRCINFO
|
||||
rm -f code.sh
|
||||
rm -f windsurf*.tar.zst
|
||||
rm -f windsurf*.deb
|
||||
rm -rf src
|
||||
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# Windsurf AUR package updater
|
||||
|
||||
set -e
|
||||
|
||||
PKGDIR="$(dirname "$0")"
|
||||
PKGBUILD="$PKGDIR/PKGBUILD"
|
||||
SRCINFO="$PKGDIR/.SRCINFO"
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Get current version from PKGBUILD
|
||||
current_ver=$(grep -E '^pkgver=' "$PKGBUILD" | cut -d= -f2)
|
||||
echo "Current PKGBUILD version: $current_ver"
|
||||
|
||||
# Fetch latest version from apt repository
|
||||
echo "Checking Windsurf repository..."
|
||||
latest_info=$(curl -s "https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/dists/stable/main/binary-amd64/Packages.gz" | zcat)
|
||||
latest_ver=$(echo "$latest_info" | grep -A1 "Package: windsurf" | grep "Version:" | head -1 | sed 's/Version: \([0-9.]*\).*/\1/')
|
||||
|
||||
if [[ -z "$latest_ver" ]]; then
|
||||
echo -e "${RED}Error: Could not fetch latest version${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Latest available version: $latest_ver"
|
||||
|
||||
# Compare versions
|
||||
if [[ "$current_ver" == "$latest_ver" ]]; then
|
||||
echo -e "${GREEN}Already up to date!${NC}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if latest is newer (simple version comparison)
|
||||
if printf '%s\n%s\n' "$current_ver" "$latest_ver" | sort -V -C; then
|
||||
echo -e "${YELLOW}Update available: $current_ver → $latest_ver${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}Repository version ($latest_ver) is older than PKGBUILD ($current_ver)${NC}"
|
||||
echo "Skipping update."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Download and calculate SHA256
|
||||
deb_url="https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-${latest_ver}.deb"
|
||||
echo ""
|
||||
echo "Downloading ${latest_ver} for SHA256 verification..."
|
||||
echo "URL: $deb_url"
|
||||
|
||||
new_sha256=$(curl -sL "$deb_url" | sha256sum | cut -d' ' -f1)
|
||||
|
||||
if [[ -z "$new_sha256" ]] || [[ ${#new_sha256} -ne 64 ]]; then
|
||||
echo -e "${RED}Error: Failed to calculate SHA256${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "New SHA256: $new_sha256"
|
||||
echo ""
|
||||
|
||||
# Show diff
|
||||
echo "Proposed changes:"
|
||||
echo " PKGBUILD: pkgver=$latest_ver"
|
||||
echo " PKGBUILD: sha256sums=('$new_sha256' ...)"
|
||||
echo " .SRCINFO: pkgver = $latest_ver"
|
||||
echo " .SRCINFO: source = ...Windsurf-linux-x64-${latest_ver}.deb"
|
||||
echo " .SRCINFO: sha256sums = $new_sha256"
|
||||
echo ""
|
||||
|
||||
# Ask for confirmation
|
||||
read -p "Update PKGBUILD and .SRCINFO? [Y/n] " -n 1 -r
|
||||
echo ""
|
||||
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ -n $REPLY ]]; then
|
||||
echo "Update cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Update PKGBUILD
|
||||
echo "Updating PKGBUILD..."
|
||||
sed -i "s/^pkgver=.*/pkgver=$latest_ver/" "$PKGBUILD"
|
||||
sed -i "s/sha256sums=('[^']*'/sha256sums=('$new_sha256'/" "$PKGBUILD"
|
||||
|
||||
# Update .SRCINFO
|
||||
echo "Updating .SRCINFO..."
|
||||
sed -i "s/pkgver = .*/pkgver = $latest_ver/" "$SRCINFO"
|
||||
sed -i "s|Windsurf-linux-x64-[0-9.]*\.deb|Windsurf-linux-x64-${latest_ver}.deb|" "$SRCINFO"
|
||||
sed -i "s/sha256sums = [a-f0-9]*/sha256sums = $new_sha256/" "$SRCINFO"
|
||||
|
||||
echo -e "${GREEN}Updated to version $latest_ver${NC}"
|
||||
echo ""
|
||||
echo "Review changes with: git diff"
|
||||
echo "Build with: makepkg -si"
|
||||
Reference in New Issue
Block a user