You are not logged in.

#1 2025-05-11 16:57:35

ZachAR3
Member
Registered: 2023-05-15
Posts: 6

PKGBUILD review Eden-appimage

Wanted to double check that this PKGBUILD looks ok, I had to use a fake ULR for the source as I cannot find any other way since you can't download from mega via curl or wget and that's where the source of the app is.

    # Based off of: https://daveparrish.net/posts/2019-11-16-Better-AppImage-PKGBUILD-template.html
    # Maintainer: ZachAR3 <Zach4R3@gmail.com>

    _pkgname=Eden
    pkgname="${_pkgname}-appimage"
    pkgver=0.0.1
    pkgrel=1
    pkgdesc="A Nintendo Switch emulator"
    arch=('x86_64')
    url="https://git.eden-emu.dev/eden-emu/eden"
    license=('GPL3')
    depends=('zlib' 'hicolor-icon-theme')
    makedepends=('megatools')
    options=(!strip)
    _appimage="${_pkgname}-Linux-${pkgver}-pre-alpha-amd64.AppImage"
    _sha256="6602e9083d2d4bb149e45a8629d894f813fc2569a6bc0835d76e26e3165008f4"

    source=("mega::https://mega.nz/#!MEGALINK!KEY")  # Fake URL
    md5sums=('SKIP')  # Skip checksum since we download manually

    prepare() {
        if [[ ! -f ${_appimage} ]]; then
            echo "Downloading AppImage..."
            megadl 'https://mega.nz/file/tI1mSYTb#ISZfSEVZk80NEvmc_x9as20O173I2jiXDEg9F2mE-8c' --path "${_appimage}"
        fi

        # Verify SHA256 checksum
        echo "Verifying checksum..."
        if ! echo "${_sha256}  ${_appimage}" | sha256sum --check --status; then
            error "SHA256 checksum verification failed for ${_appimage}!"
            return 1
        fi


        chmod +x "${_appimage}"
        ./"${_appimage}" --appimage-extract
    }

    build() {
        sed -i "s|^Exec=.*|Exec=/usr/bin/${_pkgname}|" "squashfs-root/org.eden_emu.eden.desktop"

    }

    package() {
        install -Dm755 "${_appimage}" "${pkgdir}/opt/${pkgname}/${pkgname}.AppImage"
        install -Dm644 "squashfs-root/org.eden_emu.eden.desktop" \
            "${pkgdir}/usr/share/applications/org.eden_emu.eden.desktop"
        # copy icon
        install -Dm644 "squashfs-root/org.eden_emu.eden.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/org.eden_emu.eden.svg"
        install -dm755 "${pkgdir}/usr/bin"
        ln -s "/opt/${pkgname}/${pkgname}.AppImage" "${pkgdir}/usr/bin/${_pkgname}"
        echo "${pkgdir}/usr/bin/${_pkgname}"
    }

Offline

#2 2025-05-11 20:09:32

ZachAR3
Member
Registered: 2023-05-15
Posts: 6

Re: PKGBUILD review Eden-appimage

After looking over guidelines ended up submitting this, if there are any issues please let me know and I'll fix them ASAP.

# Based off of: https://daveparrish.net/posts/2019-11-16-Better-AppImage-PKGBUILD-template.html
# Maintainer: ZachAR3 <Zach4R3@gmail.com>

_pkgname=Eden
pkgname="eden-bin"
pkgver=0.0.1
pkgrel=1
pkgdesc="The Eden Nintendo Switch emulator AppImage."
arch=('x86_64')
url="https://git.eden-emu.dev/eden-emu/eden"
license=('GPL3')
depends=('zlib' 'hicolor-icon-theme')
makedepends=('megatools')
options=(!strip)
_appimage="${_pkgname}-Linux-${pkgver}-pre-alpha-amd64.AppImage"
_sha256="6602e9083d2d4bb149e45a8629d894f813fc2569a6bc0835d76e26e3165008f4"

source=("mega::https://mega.nz/#!MEGALINK!KEY")  # Fake URL
md5sums=('SKIP')  # Skip checksum since we download manually in prepare

# Download from mega and check SHA256
prepare() {
    if [[ ! -f ${_appimage} ]]; then
        echo "Downloading AppImage..."
        megadl 'https://mega.nz/file/tI1mSYTb#ISZfSEVZk80NEvmc_x9as20O173I2jiXDEg9F2mE-8c' --path "${_appimage}"
    fi

    # Verify SHA256 checksum
    echo "Verifying checksum..."
    if ! echo "${_sha256}  ${_appimage}" | sha256sum --check --status; then
        error "SHA256 checksum verification failed for ${_appimage}!"
        return 1
    fi


    chmod +x "${_appimage}"
    ./"${_appimage}" --appimage-extract
}

# Fix .desktop file
build() {
    sed -i "s|^Exec=.*|Exec=/usr/bin/${_pkgname}|" "squashfs-root/org.eden_emu.eden.desktop"

}

package() {
    install -Dm755 "${_appimage}" "${pkgdir}/opt/${pkgname}/${pkgname}.AppImage"
    install -Dm644 "squashfs-root/org.eden_emu.eden.desktop" \
        "${pkgdir}/usr/share/applications/org.eden_emu.eden.desktop"
    # copy icon
    install -Dm644 "squashfs-root/org.eden_emu.eden.svg" \
        "${pkgdir}/usr/share/icons/hicolor/scalable/apps/org.eden_emu.eden.svg"
    install -dm755 "${pkgdir}/usr/bin"
    ln -s "/opt/${pkgname}/${pkgname}.AppImage" "${pkgdir}/usr/bin/${_pkgname}"
        echo "${pkgdir}/usr/bin/${_pkgname}"
    }

Offline

Board footer

Powered by FluxBB