DuckieTV
DuckieTV copied to clipboard
[enhancement req] Snap Package
Hello DuckieTV team, have you considered providing a snap(https://snapcraft.io/) package for DuckieTV this way it could gain exposure in the Software Center, it would make it easier to install and available to more distros?
https://pusher.com/sessions/meetup/london-node-user-group/automatically-build-and-publish-node-and-electron-applications-for-linux
https://github.com/electron-userland/electron-builder
P.S: I'm just a user, I'm not involved with Canonical, it's just that I have to check everytime to see if a new version of DuckieTV is out and download the deb again and again
A snap or flatpak could be usefull for non-deb distros too.
DuckieTV has no auto-update mechanism, I prefer a snap version over the deb for this reason.
Snaps are pretty bad atm. Like alpha quality software or worse, they are slow, buggy and theming doesn't work a lot of the time (even the default theme, you use a dialog or filepicker and the whole thing is all deformed). Flatpak seems to be the best choice.
There's https://github.com/flatpak/flatpak-docs/blob/master/docs/electron.rst but I couldn't find an example for nwjs.
You can also improvise https://github.com/flathub/com.spotify.Client/blob/master/com.spotify.Client.json#L117
Needs https://github.com/flathub/shared-modules
{
"app-id": "tv.duckie.DuckieTV",
"runtime": "org.freedesktop.Platform",
"runtime-version": "18.08",
"sdk": "org.freedesktop.Sdk",
"command": "DuckieTV",
"finish-args": [
"--device=dri",
"--share=network",
"--share=ipc",
"--socket=x11",
"--socket=wayland",
"--socket=pulseaudio",
"--filesystem=xdg-config/DuckieTV-Standalone"
],
"modules": [
"shared-modules/glu/glu-9.0.0.json",
"shared-modules/udev/udev-175.json",
{
"name": "DuckieTV",
"buildsystem": "simple",
"build-commands": [
"tar xvf DuckieTV*.tar.gz",
"rm DuckieTV-201811280130-linux-x64.tar.gz",
"mv DuckieTV/* /app/bin",
"chmod 0755 /app/bin/DuckieTV"
],
"sources": [
{
"type": "file",
"url": "https://github.com/DuckieTV/Nightlies/releases/download/nightly-201811280130/DuckieTV-201811280130-linux-x64.tar.gz",
"sha256": "2c2ae3724f11ae99eecd568e0495f5942be5cff6bf567272857a784a7afc88b9"
}
]
}
]
}
If the sandbox gives any trouble
"sed -i 's/\"chromium-args\": \"\"/\"chromium-args\": \"--no-sandbox --disable-setuid-sandbox\"/g' /app/bin/package.json"
I'm not a dev but I think it would work just fine. I have no idea how to configure the shortcuts and icons but I did what I could to help
I've ended up writing the snapcraft.yaml file by myself, seems to work well, but I'll have to try various torrent clients to see if those works and see if it's generally stable.
name: duckietv
version: 1.1.7
grade: stable
summary: 'DuckieTV track your favorite tv-shows with semi-automagic torrent integration'
description: "DuckieTV is an application that takes care of TV-Show addicts by providing a personalized TV-Show calendar.\n"
confinement: strict
base: core18
parts:
duckietv2:
plugin: dump
source: 'https://github.com/SchizoDuckie/DuckieTV.git'
after:
- desktop-gnome-platform
stage-packages:
- libatomic1
- libasound2
- libavahi-client3
- libavahi-common3
- libcom-err2
- libcups2
- libdatrie1
- libdbus-1-3
- libepoxy0
- libexpat1
- libffi6
- libgcrypt20
- libgmp10
- libgnutls30
- libgpg-error0
- libgraphite2-3
- libgssapi-krb5-2
- libgtk-3-0
- libharfbuzz0b
- libhogweed4
- libidn2-0
- libk5crypto3
- libkeyutils1
- libkrb5-3
- libkrb5support0
- liblz4-1
- liblzma5
- libmount1
- libnettle6
- libnspr4
- libnss3
- libp11-kit0
- libpcre3
- libpixman-1-0
- libpng16-16
- libtasn1-6
- libthai0
- libunistring2
- libwayland-client0
- libwayland-cursor0
- libwayland-egl1
- libx11-6
- libx11-xcb1
- libxau6
- libxcb1
- libxcb-render0
- libxcb-shm0
- libxcomposite1
- libxcursor1
- libxdamage1
- libxdmcp6
- libxext6
- libxfixes3
- libxi6
- libxinerama1
- libxkbcommon0
- libxrender1
- libxss1
- libxtst6
- zlib1g
nwjs:
plugin: dump
source: 'https://dl.nwjs.io/v0.43.6/nwjs-v0.43.6-linux-x64.tar.gz'
desktop-gnome-platform:
source: 'https://github.com/ubuntu/snapcraft-desktop-helpers.git'
source-subdir: gtk
plugin: make
make-parameters:
- FLAVOR=gtk3
build-packages:
- build-essential
- libgtk-3-dev
override-build: "snapcraftctl build\nmkdir -pv $SNAPCRAFT_PART_INSTALL/gnome-platform\n"
apps:
duckietv:
command: desktop-launch $SNAP/nw --no-sandbox
#desktop: usr/share/applications/duckietv.desktop
environment:
TMPDIR: $XDG_RUNTIME_DIR
XDG_CURRENT_DESKTOP: Unity
DISABLE_WAYLAND: 1
plugs:
- desktop
- desktop-legacy
- opengl
- mount-observe
- x11
- wayland
- network
- network-bind
- gsettings
- browser-support
- password-manager-service
plugs:
gnome-3-28-1804:
interface: content
target: gnome-platform
default-provider: 'gnome-3-28-1804:gnome-3-28-1804'
gtk-3-themes:
interface: content
target: $SNAP/data-dir/themes
default-provider: gtk-common-themes
icon-themes:
interface: content
target: $SNAP/data-dir/icons
default-provider: gtk-common-themes