From 2b359b279d49b1860eeb0a2a03e0b7d45c3938bc Mon Sep 17 00:00:00 2001 From: Alexander Koskovich Date: Sun, 29 Sep 2024 11:44:25 -0400 Subject: [PATCH 1/3] Move libayatana-appindicator to shared-modules --- com.spotify.Client.json | 119 ++-------------------------------------- shared-modules | 2 +- 2 files changed, 7 insertions(+), 114 deletions(-) diff --git a/com.spotify.Client.json b/com.spotify.Client.json index 7ebfce7..c6515bb 100644 --- a/com.spotify.Client.json +++ b/com.spotify.Client.json @@ -23,124 +23,17 @@ "--env=LD_LIBRARY_PATH=/app/lib", "--env=TMPDIR=/tmp" ], - "cleanup": [ - "/include", - "/lib/pkgconfig", - "/share/pkgconfig", - "/share/aclocal", - "/man", - "/share/man", - "/share/gtk-doc", - "/share/doc", - "*.la", - "*.a" - ], "modules": [ + "shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json", "shared-modules/lzo/lzo.json", "shared-modules/squashfs-tools/squashfs-tools.json", - { - "name": "libayatana-appindicator", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DENABLE_BINDINGS_MONO=NO", - "-DENABLE_BINDINGS_VALA=NO", - "-DENABLE_GTKDOC=NO" - ], - "modules": [ - "shared-modules/intltool/intltool-0.51.json", - { - "name": "libdbusmenu-gtk3", - "buildsystem": "autotools", - "build-options": { - "cflags": "-Wno-error", - "env": { - "HAVE_VALGRIND_FALSE": "#", - "HAVE_VALGRIND_TRUE": "" - } - }, - "config-opts": [ - "--with-gtk=3", - "--disable-dumper", - "--disable-static", - "--disable-tests", - "--disable-gtk-doc", - "--enable-introspection=no", - "--disable-vala" - ], - "sources": [ - { - "type": "archive", - "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", - "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" - } - ], - "cleanup": [ - "/include", - "/libexec", - "/lib/pkgconfig", - "/lib/*.la", - "/share/doc", - "/share/libdbusmenu", - "/share/gtk-doc", - "/share/gir-1.0" - ] - }, - { - "name": "ayatana-ido", - "buildsystem": "cmake-ninja", - "sources": [ - { - "type": "git", - "url": "https://github.com/AyatanaIndicators/ayatana-ido.git", - "tag": "0.10.4", - "commit": "f968079b09e2310fefc3fc307359025f1c74b3eb", - "x-checker-data": { - "type": "git", - "tag-pattern": "^([\\d.]+)$" - } - }, - { - "type": "shell", - "//": "Remove unused Vala/GIR files", - "commands": [ - "sed -i 's/Vala REQUIRED/Vala /' src/CMakeLists.txt", - "sed -i '/install.*AyatanaIdo3-0.4.*/d' src/CMakeLists.txt" - ] - } - ] - }, - { - "name": "libayatana-indicator", - "buildsystem": "cmake-ninja", - "sources": [ - { - "type": "git", - "url": "https://github.com/AyatanaIndicators/libayatana-indicator.git", - "tag": "0.9.4", - "commit": "611bb384b73fa6311777ba4c41381a06f5b99dad", - "x-checker-data": { - "type": "git", - "tag-pattern": "^([\\d.]+)$" - } - } - ] - } - ], - "sources": [ - { - "type": "git", - "url": "https://github.com/AyatanaIndicators/libayatana-appindicator.git", - "tag": "0.5.93", - "commit": "238c8b02718fa5b4af95ede72beeed762094f4cc", - "x-checker-data": { - "type": "git", - "tag-pattern": "^([\\d.]+)$" - } - } - ] - }, { "name": "ffmpeg-4.4", + "cleanup": [ + "/include", + "/lib/pkgconfig", + "/share" + ], "config-opts": [ "--enable-shared", "--disable-static", diff --git a/shared-modules b/shared-modules index 88c7813..9a5230d 160000 --- a/shared-modules +++ b/shared-modules @@ -1 +1 @@ -Subproject commit 88c7813518bd360ccd0b12babcce5848476f59dc +Subproject commit 9a5230d7a90761d214e1e074530489c3de0b3b5d From 946a47a6af3140d7a0cb599129bd9b1fad4bbb30 Mon Sep 17 00:00:00 2001 From: Alexander Koskovich Date: Mon, 30 Sep 2024 03:42:09 -0400 Subject: [PATCH 2/3] Convert package definition to YAML --- com.spotify.Client.json | 166 ---------------------------------------- com.spotify.Client.yaml | 121 +++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 166 deletions(-) delete mode 100644 com.spotify.Client.json create mode 100644 com.spotify.Client.yaml diff --git a/com.spotify.Client.json b/com.spotify.Client.json deleted file mode 100644 index c6515bb..0000000 --- a/com.spotify.Client.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "app-id": "com.spotify.Client", - "runtime": "org.freedesktop.Platform", - "runtime-version": "24.08", - "sdk": "org.freedesktop.Sdk", - "command": "spotify", - "separate-locales": false, - "tags": [ - "proprietary" - ], - "finish-args": [ - "--share=ipc", - "--socket=x11", - "--socket=pulseaudio", - "--share=network", - "--device=dri", - "--talk-name=org.gnome.SettingsDaemon.MediaKeys", - "--talk-name=org.gnome.SessionManager", - "--talk-name=org.kde.StatusNotifierWatcher", - "--own-name=org.mpris.MediaPlayer2.spotify", - "--filesystem=xdg-music:ro", - "--filesystem=xdg-pictures:ro", - "--env=LD_LIBRARY_PATH=/app/lib", - "--env=TMPDIR=/tmp" - ], - "modules": [ - "shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json", - "shared-modules/lzo/lzo.json", - "shared-modules/squashfs-tools/squashfs-tools.json", - { - "name": "ffmpeg-4.4", - "cleanup": [ - "/include", - "/lib/pkgconfig", - "/share" - ], - "config-opts": [ - "--enable-shared", - "--disable-static", - "--enable-gnutls", - "--disable-doc", - "--disable-avdevice", - "--disable-avfilter", - "--disable-programs", - "--disable-encoders", - "--disable-hwaccels", - "--disable-devices", - "--disable-filters", - "--disable-bsfs", - "--disable-muxers", - "--disable-protocols", - "--enable-protocol=file", - "--disable-decoders", - "--enable-decoder=aac", - "--enable-decoder=aac_latm", - "--enable-decoder=ac3", - "--enable-decoder=flac", - "--enable-decoder=als", - "--enable-decoder=mp1", - "--enable-decoder=mp2", - "--enable-decoder=mp3", - "--enable-decoder=mp3adu", - "--enable-decoder=opus", - "--enable-decoder=vorbis" - ], - "sources": [ - { - "type": "archive", - "url": "https://ffmpeg.org/releases/ffmpeg-4.4.5.tar.xz", - "sha256": "f9514e0d3515aee5a271283df71636e1d1ff7274b15853bcd84e144be416ab07", - "x-checker-data": { - "type": "anitya", - "project-id": 5405, - "stable-only": true, - "versions": { - "<": "5" - }, - "url-template": "https://ffmpeg.org/releases/ffmpeg-$version.tar.xz" - } - } - ] - }, - { - "name": "spotify-preload", - "buildsystem": "simple", - "build-commands": [ - "cc spotify-preload.c -o spotify-preload.so -fPIC -shared -ldl", - "install -Dm644 spotify-preload.so /app/lib/spotify-preload.so" - ], - "sources": [ - { - "type": "file", - "path": "spotify-preload.c" - } - ] - }, - { - "name": "spotify", - "buildsystem": "simple", - "build-commands": [ - "install apply_extra /app/bin", - "install get-scale-factor.py xsettings.py /app/bin", - "install spotify-bin /app/bin/spotify", - "install -Dm644 com.spotify.Client.appdata.xml /app/share/appdata/com.spotify.Client.appdata.xml", - "install -Dm644 com.spotify.Client.svg /app/share/icons/hicolor/scalable/apps/com.spotify.Client.svg", - "install -Dm644 com.spotify.Client-symbolic.svg /app/share/icons/hicolor/symbolic/apps/com.spotify.Client-symbolic.svg", - "install -Dm644 com.spotify.Client.desktop /app/share/applications/com.spotify.Client.desktop" - ], - "sources": [ - { - "type": "script", - "dest-filename": "apply_extra", - "commands": [ - "unsquashfs -quiet -no-progress spotify.snap usr/bin usr/share/spotify", - "mv squashfs-root/usr/* .", - "rm -r spotify.snap squashfs-root share/spotify/apt-keys share/spotify/spotify.desktop" - ] - }, - { - "type": "file", - "path": "com.spotify.Client.desktop" - }, - { - "type": "file", - "path": "com.spotify.Client.appdata.xml" - }, - { - "type": "file", - "path": "com.spotify.Client.svg" - }, - { - "type": "file", - "path": "com.spotify.Client-symbolic.svg" - }, - { - "type": "file", - "path": "spotify-bin" - }, - { - "type": "file", - "path": "xsettings.py" - }, - { - "type": "file", - "path": "get-scale-factor.py" - }, - { - "type": "extra-data", - "filename": "spotify.snap", - "only-arches": [ - "x86_64" - ], - "url": "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_79.snap", - "sha256": "7f0ffdb73d0875f5dd9bb5a17fffc02945ed49a19f373cdf6b8d624c991a77c0", - "size": 191000576, - "x-checker-data": { - "type": "snapcraft", - "name": "spotify", - "channel": "stable", - "is-main-source": true - } - } - ] - } - ] -} diff --git a/com.spotify.Client.yaml b/com.spotify.Client.yaml new file mode 100644 index 0000000..ce34774 --- /dev/null +++ b/com.spotify.Client.yaml @@ -0,0 +1,121 @@ +app-id: com.spotify.Client +runtime: org.freedesktop.Platform +runtime-version: '24.08' +sdk: org.freedesktop.Sdk +command: spotify +separate-locales: false +finish-args: + - --device=dri + - --env=LD_LIBRARY_PATH=/app/lib + - --env=TMPDIR=/tmp + - --filesystem=xdg-music:ro + - --filesystem=xdg-pictures:ro + - --own-name=org.mpris.MediaPlayer2.spotify + - --share=ipc + - --share=network + - --socket=pulseaudio + - --socket=x11 + - --talk-name=org.gnome.SessionManager + - --talk-name=org.gnome.SettingsDaemon.MediaKeys + - --talk-name=org.kde.StatusNotifierWatcher +modules: + - shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json + - shared-modules/lzo/lzo.json + - shared-modules/squashfs-tools/squashfs-tools.json + + - name: ffmpeg + buildsystem: autotools + cleanup: + - /include + - /lib/pkgconfig + - /share + config-opts: + - --disable-avdevice + - --disable-avfilter + - --disable-bsfs + - --disable-decoders + - --disable-devices + - --disable-doc + - --disable-encoders + - --disable-filters + - --disable-hwaccels + - --disable-muxers + - --disable-programs + - --disable-protocols + - --disable-static + - --enable-decoder=aac + - --enable-decoder=aac_latm + - --enable-decoder=ac3 + - --enable-decoder=als + - --enable-decoder=flac + - --enable-decoder=mp1 + - --enable-decoder=mp2 + - --enable-decoder=mp3 + - --enable-decoder=mp3adu + - --enable-decoder=opus + - --enable-decoder=vorbis + - --enable-gnutls + - --enable-protocol=file + - --enable-shared + sources: + - type: archive + url: https://ffmpeg.org/releases/ffmpeg-4.4.5.tar.xz + sha256: f9514e0d3515aee5a271283df71636e1d1ff7274b15853bcd84e144be416ab07 + x-checker-data: + project-id: 5405 + stable-only: true + type: anitya + url-template: https://ffmpeg.org/releases/ffmpeg-$version.tar.xz + versions: + <: '5' + + - name: spotify-preload + buildsystem: simple + build-commands: + - cc spotify-preload.c -o spotify-preload.so -fPIC -shared -ldl + - install -Dm644 spotify-preload.so /app/lib/spotify-preload.so + sources: + - type: file + path: spotify-preload.c + + - name: spotify + buildsystem: simple + build-commands: + - install -Dm755 apply_extra /app/bin + - install -Dm755 get-scale-factor.py xsettings.py /app/bin + - install -Dm755 spotify-bin /app/bin/spotify + - install -Dm644 com.spotify.Client.appdata.xml /app/share/appdata/com.spotify.Client.appdata.xml + - install -Dm644 com.spotify.Client.svg /app/share/icons/hicolor/scalable/apps/com.spotify.Client.svg + - install -Dm644 com.spotify.Client-symbolic.svg /app/share/icons/hicolor/symbolic/apps/com.spotify.Client-symbolic.svg + - install -Dm644 com.spotify.Client.desktop /app/share/applications/com.spotify.Client.desktop + sources: + - type: extra-data + filename: spotify.snap + only-arches: [x86_64] + url: https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_79.snap + sha256: 7f0ffdb73d0875f5dd9bb5a17fffc02945ed49a19f373cdf6b8d624c991a77c0 + size: 191000576 + x-checker-data: + type: snapcraft + name: spotify + channel: stable + - type: file + path: com.spotify.Client-symbolic.svg + - type: file + path: com.spotify.Client.appdata.xml + - type: file + path: com.spotify.Client.desktop + - type: file + path: com.spotify.Client.svg + - type: file + path: get-scale-factor.py + - type: file + path: spotify-bin + - type: file + path: xsettings.py + - type: script + dest-filename: apply_extra + commands: + - unsquashfs -quiet -no-progress spotify.snap usr/bin usr/share/spotify + - mv squashfs-root/usr/* . + - rm -r spotify.snap squashfs-root share/spotify/apt-keys share/spotify/spotify.desktop From eb4357e627a27dc6711f2df8f03b32d813224501 Mon Sep 17 00:00:00 2001 From: Alexander Koskovich Date: Mon, 30 Sep 2024 03:55:09 -0400 Subject: [PATCH 3/3] Use ${FLATPAK_ID} & ${FLATPAK_DEST} where applicable --- com.spotify.Client.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/com.spotify.Client.yaml b/com.spotify.Client.yaml index ce34774..23015d8 100644 --- a/com.spotify.Client.yaml +++ b/com.spotify.Client.yaml @@ -73,7 +73,7 @@ modules: buildsystem: simple build-commands: - cc spotify-preload.c -o spotify-preload.so -fPIC -shared -ldl - - install -Dm644 spotify-preload.so /app/lib/spotify-preload.so + - install -Dm644 spotify-preload.so ${FLATPAK_DEST}/lib/spotify-preload.so sources: - type: file path: spotify-preload.c @@ -81,13 +81,13 @@ modules: - name: spotify buildsystem: simple build-commands: - - install -Dm755 apply_extra /app/bin - - install -Dm755 get-scale-factor.py xsettings.py /app/bin - - install -Dm755 spotify-bin /app/bin/spotify - - install -Dm644 com.spotify.Client.appdata.xml /app/share/appdata/com.spotify.Client.appdata.xml - - install -Dm644 com.spotify.Client.svg /app/share/icons/hicolor/scalable/apps/com.spotify.Client.svg - - install -Dm644 com.spotify.Client-symbolic.svg /app/share/icons/hicolor/symbolic/apps/com.spotify.Client-symbolic.svg - - install -Dm644 com.spotify.Client.desktop /app/share/applications/com.spotify.Client.desktop + - install -Dm755 apply_extra ${FLATPAK_DEST}/bin + - install -Dm755 get-scale-factor.py xsettings.py ${FLATPAK_DEST}/bin + - install -Dm755 spotify-bin ${FLATPAK_DEST}/bin/spotify + - install -Dm644 ${FLATPAK_ID}.appdata.xml ${FLATPAK_DEST}/share/appdata/${FLATPAK_ID}.appdata.xml + - install -Dm644 ${FLATPAK_ID}.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg + - install -Dm644 ${FLATPAK_ID}-symbolic.svg ${FLATPAK_DEST}/share/icons/hicolor/symbolic/apps/${FLATPAK_ID}-symbolic.svg + - install -Dm644 ${FLATPAK_ID}.desktop ${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop sources: - type: extra-data filename: spotify.snap