diff --git a/.SRCINFO b/.SRCINFO index d00a52d..1c644e2 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -2,15 +2,22 @@ pkgbase = windsurf pkgdesc = Tomorrow's Editor, Today. Built to keep you in flow state with instant, invaluable AI developer assistance. pkgver = 1.4.4 pkgrel = 1 - url = https://codeium.com + url = https://codeium.com/ arch = x86_64 - license = custom + license = MIT depends = alsa-lib + depends = bash + depends = cairo depends = dbus depends = expat + depends = fontconfig depends = gcc-libs - depends = glibc + depends = glibc>=2.28-4 + depends = gnupg + depends = gtk3 depends = libdrm + depends = libnotify + depends = libsecret depends = libx11 depends = libxcb depends = libxcomposite @@ -18,16 +25,29 @@ pkgbase = windsurf depends = libxext depends = libxfixes depends = libxkbcommon + depends = libxkbfile depends = libxrandr + depends = libxss + depends = libxtst + depends = lsof depends = mesa depends = nspr depends = nss - depends = gtk3 + depends = shared-mime-info depends = xdg-utils + optdepends = glib2: Needed for move to trash functionality + optdepends = org.freedesktop.secrets: Needed for settings sync + optdepends = libdbusmenu-glib: Needed for KDE global menu + optdepends = icu69: Needed for live share optdepends = vulkan-icd-loader: Vulkan support provides = windsurf + conflicts = windsurf options = !strip source = https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-1.4.4.deb + source = windsurf.png::https://raw.githubusercontent.com/watzon/aur-packages/refs/heads/main/packages/windsurf/windsurf.png + source = windsurf-bin.sh::https://raw.githubusercontent.com/watzon/aur-packages/refs/heads/main/packages/windsurf/windsurf-bin.sh sha256sums = SKIP + sha256sums = 5c54ecf084dbaee5d85036205c2bb2df0d9b2bf77a503d722ee9833e4a236d7a + sha256sums = 5288e6a845852d5fc1c6045da57d5b973bd24eda866d4222a8cee41ffb0c6041 pkgname = windsurf diff --git a/PKGBUILD b/PKGBUILD index 46ed81d..6758406 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,19 +1,27 @@ # Maintainer: Chris Watson pkgname=windsurf +_pkgname=windsurf pkgver=1.4.4 pkgrel=1 pkgdesc="Tomorrow's Editor, Today. Built to keep you in flow state with instant, invaluable AI developer assistance." arch=('x86_64') -url="https://codeium.com" -license=('custom') +url="https://codeium.com/" +license=('MIT') depends=( 'alsa-lib' + 'bash' + 'cairo' 'dbus' 'expat' + 'fontconfig' 'gcc-libs' - 'glibc' + 'glibc>=2.28-4' + 'gnupg' + 'gtk3' 'libdrm' + 'libnotify' + 'libsecret' 'libx11' 'libxcb' 'libxcomposite' @@ -21,41 +29,90 @@ depends=( 'libxext' 'libxfixes' 'libxkbcommon' + 'libxkbfile' 'libxrandr' + 'libxss' + 'libxtst' + 'lsof' 'mesa' 'nspr' 'nss' - 'gtk3' + 'shared-mime-info' 'xdg-utils' ) -optdepends=('vulkan-icd-loader: Vulkan support') +optdepends=('glib2: Needed for move to trash functionality' + 'org.freedesktop.secrets: Needed for settings sync' + 'libdbusmenu-glib: Needed for KDE global menu' + 'icu69: Needed for live share' + 'vulkan-icd-loader: Vulkan support') + provides=('windsurf') -options=(!strip) +conflicts=('windsurf') +options=('!strip') -source=("https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-${pkgver}.deb") -sha256sums=('SKIP') +#Official Repo URL Prefixes +_windsurf_deb_repo_url_prefix="https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf" -package() { - # Extract package data using the new zst archive - bsdtar -xf data.tar.zst -C "${pkgdir}" +#Github Repo 1 URL Prefixes +_git_repo="https://raw.githubusercontent.com/watzon/aur-packages/refs/heads/main/packages/windsurf" - # Fix permissions - chmod 4755 "${pkgdir}/usr/share/windsurf/chrome-sandbox" +#URLs +_deb_url1="${_windsurf_deb_repo_url_prefix}/Windsurf-linux-x64-${pkgver}.deb" - # Create symlink in /usr/bin - install -dm755 "${pkgdir}/usr/bin" - ln -s /usr/share/windsurf/bin/windsurf "${pkgdir}/usr/bin/windsurf" - - # Add desktop entry - install -dm755 "${pkgdir}/usr/share/applications" - cat <"${pkgdir}/usr/share/applications/windsurf.desktop" -[Desktop Entry] -Name=Windsurf -Comment=Tomorrow's Editor, Today -Exec=/usr/bin/windsurf -Icon=/usr/share/windsurf/resources/app/resources/linux/code.png -Terminal=false -Type=Application -Categories=Development;IDE; -EOF +#Checksums +_deb_sha256="SKIP" + +source=( + $_deb_url1 + "${_pkgname}.png::${_git_repo}/${_pkgname}.png" + "${_pkgname}-bin.sh::${_git_repo}/windsurf-bin.sh" +) + +sha256sums=( + $_deb_sha256 + '5c54ecf084dbaee5d85036205c2bb2df0d9b2bf77a503d722ee9833e4a236d7a' + '5288e6a845852d5fc1c6045da57d5b973bd24eda866d4222a8cee41ffb0c6041' +) + +prepare() { + mkdir -p "${srcdir}/deb_file/data" + bsdtar -xf "${srcdir}/Windsurf-linux-x64-${pkgver}.deb" -C "${srcdir}/deb_file" + tar -xf "${srcdir}/deb_file/data.tar.zst" -C "${srcdir}/deb_file/data" } + +package() { + + # Install main binaries + install -d "${pkgdir}/usr/share/${_pkgname}" + cp -r "${srcdir}/deb_file/data/usr/share/${_pkgname}" "${pkgdir}/usr/share/" + + # Fix chrome-sandbox permissions + chmod 4755 "${pkgdir}/usr/share/${_pkgname}/chrome-sandbox" + + # Install binary launcher script + install -d "${pkgdir}/usr/bin" + install -m755 "${srcdir}/${_pkgname}-bin.sh" "${pkgdir}/usr/bin/${_pkgname}" + + # Install desktop entry files for application and URL handling + install -d "${pkgdir}/usr/share/applications" + install -m644 "${srcdir}/deb_file/data/usr/share/applications/${_pkgname}.desktop" "${pkgdir}/usr/share/applications/" + install -m644 "${srcdir}/deb_file/data/usr/share/applications/${_pkgname}-url-handler.desktop" "${pkgdir}/usr/share/applications/" + + # Install application metadata (AppStream metainfo) + install -d "${pkgdir}/usr/share/metainfo" + install -m644 "${srcdir}/deb_file/data/usr/share/appdata/${_pkgname}.appdata.xml" "${pkgdir}/usr/share/metainfo/com.codeium.${_pkgname}.metainfo.xml" + + # Install MIME type definitions + install -d "${pkgdir}/usr/share/mime/packages" + install -m644 "${srcdir}/deb_file/data/usr/share/mime/packages/${_pkgname}-workspace.xml" "${pkgdir}/usr/share/mime/packages/" + + # Install application icon (128x128 resolution) + install -d "${pkgdir}/usr/share/icons/hicolor/128x128/apps" + install -m644 "${srcdir}/${_pkgname}.png" "${pkgdir}/usr/share/icons/hicolor/128x128/apps/${_pkgname}.png" + + # Install shell completion scripts + install -d "${pkgdir}/usr/share/bash-completion/completions" + install -d "${pkgdir}/usr/share/zsh/site-functions" + install -Dm 644 "${srcdir}/deb_file/data/usr/share/bash-completion/completions/${_pkgname}" "${pkgdir}/usr/share/bash-completion/completions/${_pkgname}" #bash + install -Dm 644 "${srcdir}/deb_file/data/usr/share/zsh/vendor-completions/_${_pkgname}" "${pkgdir}/usr/share/zsh/site-functions/_${_pkgname}" #zsh +} \ No newline at end of file