From daf970e0fc805f3b8db5706981b1077d110b0b12 Mon Sep 17 00:00:00 2001 From: Igor Barcik Date: Tue, 5 May 2026 19:24:14 +0200 Subject: [PATCH] refactor: simplify to single package, fix source naming and field order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Drop split package (windsurf-electron-latest removed) - pkgname as scalar, pkgdesc moved to top-level - depends/optdepends sorted alphabetically, all quoted - Named source entries (windsurf-${pkgver}.deb::url, code.sh::url) - noextract updated to match new source name - build() uses explicit ${srcdir}/... references - package_windsurf() → package(); sed path fixed for single-pkg layout - vulkan-driver optdepends gains description --- .SRCINFO | 44 ++++++++--------------------------- PKGBUILD | 70 ++++++++++++++++++++++++++------------------------------ 2 files changed, 42 insertions(+), 72 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 2eb1d74..90ca6d9 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,56 +1,30 @@ pkgbase = windsurf + pkgdesc = The new purpose-built IDE to harness magic pkgver = 2.1.32 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 = fd depends = gnupg depends = libnotify depends = libsecret depends = libxkbfile depends = libxss + depends = ripgrep + depends = xdg-utils 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-2.1.32.deb + optdepends = org.freedesktop.secrets: Sync settings + optdepends = vulkan-driver: Hardware acceleration + noextract = windsurf-2.1.32.deb options = !strip - source = https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-2.1.32.deb - source = https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh + source = windsurf-2.1.32.deb::https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-2.1.32.deb + source = code.sh::https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh sha256sums = ded473cf5f8cd07f8890be951f9164118ba0633a5cee88844fa623b7c4713df3 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 diff --git a/PKGBUILD b/PKGBUILD index 5c5b269..471c324 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,66 +1,62 @@ # Maintainer: Chris Watson +pkgname=windsurf pkgver=2.1.32 -pkgbase=windsurf -pkgname=(windsurf{,-electron-latest}) 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' + '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' ) -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=('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) }