Repository navigation
Archlinux PKGBUILD #83
Replies: 3 comments 1 reply
|
@InvisibleRasta hey and thank you for the work! |
|
This is actually my first time writing PKGBUILDs for arch, I have been encountering some issues building the package for wayland, I had to write a wrapper to fix the constant wayland crashes I was having when launching the application. I am basically forcing the app to use the x11 gdk backend. I will first ask in the arch forums if there is any less hacky way to get this running properly. |
|
@InvisibleRasta Are you using hybrid-GPU laptop? This PKGBUILD works on my CachyOS (KDE, Wayland) pkgname=extreme-infinitv-bin
_pkgname=extreme-infinitv
pkgver=1.7.1
pkgrel=1
pkgdesc="Cross-platform IPTV player for Xtream Codes and M3U/M3U8 playlists"
arch=('x86_64')
url="https://github.com/infinitel8p/Extreme-InfiniTV"
license=('GPL-3.0-or-later')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
depends=(
'webkit2gtk-4.1'
'gtk3'
'libappindicator-gtk3'
'hicolor-icon-theme'
'gstreamer'
'gst-plugins-base'
'gst-plugins-good'
)
source=(
"${pkgname}-${pkgver}.deb::${url}/releases/download/v${pkgver}/Extreme.InfiniTV_${pkgver}_amd64.deb"
"${pkgname}-${pkgver}-LICENSE::https://raw.githubusercontent.com/infinitel8p/Extreme-InfiniTV/main/LICENSE"
)
# The .deb is an ar archive; we unpack it manually in prepare().
# makepkg does not auto-extract .deb by default, but noextract makes the intent explicit
noextract=("${pkgname}-${pkgver}.deb")
sha256sums=(
'1da453023f7ef710d0bbc3d31df31e07868255d1b1db75fa1e029e809728254f' # Extreme.InfiniTV_1.7.1_amd64.deb
'SKIP' # LICENSE
)
prepare() {
cd "${srcdir}"
# Unpack the .deb
ar x "${pkgname}-${pkgver}.deb"
# Locate the data payload (data.tar.gz, data.tar.xz, data.tar.zst, etc.)
local data_tar
data_tar="$(find . -maxdepth 1 -type f -name 'data.tar.*' -print -quit)"
if [[ -z "${data_tar}" ]]; then
error "data.tar.* not found inside the .deb; extraction failed"
return 1
fi
# Extract data.tar into a staging directory
rm -rf deb-data
mkdir -p deb-data
bsdtar -xf "${data_tar}" -C deb-data
}
package() {
cd "${srcdir}"
# Copy the extracted filesystem tree into $pkgdir.
# cp -a preserves permissions
cp -a deb-data/. "${pkgdir}/"
# Rename the desktop file to drop the space: cosmetic;
if [[ -f "${pkgdir}/usr/share/applications/Extreme InfiniTV.desktop" ]]; then
mv "${pkgdir}/usr/share/applications/Extreme InfiniTV.desktop" \
"${pkgdir}/usr/share/applications/${_pkgname}.desktop"
fi
# Sanity-check that the main binary landed where we expect.
if [[ ! -x "${pkgdir}/usr/bin/${_pkgname}" ]]; then
error "binary not found or not executable at /usr/bin/${_pkgname}"
return 1
fi
# Install the license
install -Dm644 "${srcdir}/${pkgname}-${pkgver}-LICENSE" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
} |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello guys,I wrote two PKGBUILDs for Archlinux. I will not be posting them to the aur yet as I still want to figure out a couple of things. They both work perfectly. One builds from source and the other uses the released deb package. Any suggestions are wellcome.
deb version:
Source version:
All reactions