diff --git a/snap/bavarder.patch b/snap/bavarder.patch new file mode 100644 index 0000000..fb67a45 --- /dev/null +++ b/snap/bavarder.patch @@ -0,0 +1,23 @@ +diff -Naur a/data/io.github.Bavarder.Bavarder.appdata.xml.in b/data/io.github.Bavarder.Bavarder.appdata.xml.in +--- a/data/io.github.Bavarder.Bavarder.appdata.xml.in 2023-06-09 11:17:01.939402268 +0530 ++++ b/data/io.github.Bavarder.Bavarder.appdata.xml.in 2023-06-09 11:17:25.235254967 +0530 +@@ -1,6 +1,7 @@ + + + io.github.Bavarder.Bavarder ++ snap.bavarder.io.github.Bavarder.Bavarder + Bavarder + Chit-chat with an AI + 0xMRTT +diff -Naur a/data/io.github.Bavarder.Bavarder.desktop.in b/data/io.github.Bavarder.Bavarder.desktop.in +--- a/data/io.github.Bavarder.Bavarder.desktop.in 2023-06-09 11:09:08.652098824 +0530 ++++ b/data/io.github.Bavarder.Bavarder.desktop.in 2023-06-09 11:17:37.047177451 +0530 +@@ -1,7 +1,7 @@ + [Desktop Entry] + Name=Bavarder + Exec=bavarder +-Icon=io.github.Bavarder.Bavarder ++Icon=snap.bavarder.io.github.Bavarder.Bavarder + Terminal=false + Type=Application + Categories=GTK; diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000..d421a1b --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,94 @@ +name: bavarder # you probably want to 'snapcraft register ' +base: core22 # the base snap is the execution environment for this snap +adopt-info: bavarder +grade: stable # must be 'stable' to release into candidate/stable channels +confinement: strict # use 'strict' once you have the right plugs and slots + +layout: + /usr/lib/x86_64-linux-gnu/webkitgtk-6.0: + bind: $SNAP/webkitgtk-platform/usr/lib/x86_64-linux-gnu/webkitgtk-6.0 + +parts: + blueprint-compiler: + source: https://gitlab.gnome.org/jwestman/blueprint-compiler.git + source-tag: 'v0.8.1' + plugin: meson + meson-parameters: + - --prefix=/usr + override-prime: | + echo 'Skip' + + bavarder: + after: [blueprint-compiler] + # See 'snapcraft plugins' + plugin: meson + source: https://github.com/Bavarder/Bavarder.git + source-tag: '0.2.3' + meson-parameters: + - --prefix=/snap/bavarder/current/usr + - -Dbuildtype=release + build-snaps: + - webkitgtk-6-gnome-2204-sdk/latest/stable + build-environment: + - LD_LIBRARY_PATH: /snap/webkitgtk-sdk/current/usr/lib:/snap/webkitgtk-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET:/snap/webkitgtk-sdk/current/usr/lib/webkitgtk-6.0:/snap/webkitgtk-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:$LD_LIBRARY_PATH + - PYTHONPATH: $CRAFT_STAGE/usr/lib/python3/dist-packages:$CRAFT_PART_INSTALL/usr/local/lib/python3.10/dist-packages:$PYTHONPATH + - GI_TYPELIB_PATH: /snap/gnome-42-2204-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:/snap/gnome-42-2204-sdk/current/usr/lib/girepository-1.0:/snap/webkitgtk-6-gnome-2204-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0 + override-pull: | + craftctl default + patch -p1 < $CRAFT_PROJECT_DIR/snap/bavarder.patch + pip install --prefix=$CRAFT_PART_INSTALL/usr baichat-py==0.2.1 googlebardpy==0.1.0 openai==0.27.7 pymdown-extensions==10.0.1 requests==2.30.0 text-generation==0.5.2 gradio-client==0.2.5 lxml + override-build: | + craftctl default + mkdir -p $CRAFT_PART_INSTALL/meta/gui + cp -r $CRAFT_PART_INSTALL/snap/bavarder/current/usr/share/icons $CRAFT_PART_INSTALL/meta/gui/ + find $CRAFT_PART_INSTALL/meta/gui/icons -type f -not -name 'io.github.Bavarder.Bavarder*' -exec rm {} + -o -type d -empty -exec rmdir {} + + for i in `find $CRAFT_PART_INSTALL/meta/gui/icons -name "*.svg" -o -name "*.png"`; do + mv $i "`dirname $i`/snap.$CRAFT_PROJECT_NAME.`basename $i`" + done + sed -e '1c#!/usr/bin/python3' -i $CRAFT_PART_INSTALL/usr/local/bin/* + sed -e '1c#!/usr/bin/env python3' -i $CRAFT_PART_INSTALL/snap/bavarder/current/usr/bin/bavarder + chmod +x $CRAFT_PART_INSTALL/snap/bavarder/current/usr/bin/bavarder + parse-info: [usr/share/appdata/io.github.Bavarder.Bavarder.appdata.xml] + organize: + snap/bavarder/current: . + usr/local: usr + prime: + - -snap/bavarder + gst: + after: [ bavarder ] + plugin: nil + stage-packages: + - gir1.2-gstreamer-1.0 + prime: + - usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/Gst-1.0.typelib + - usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstBase-1.0.typelib + - usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstCheck-1.0.typelib + - usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstController-1.0.typelib + - usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstNet-1.0.typelib + +plugs: + webkitgtk-6-gnome-2204: + interface: content + target: $SNAP/webkitgtk-platform + default-provider: webkitgtk-6-gnome-2204 + +slots: + bavarder: + interface: dbus + bus: session + name: io.github.Bavarder.Bavarder + +apps: + bavarder: + command: usr/bin/bavarder + extensions: [gnome] + common-id: io.github.Bavarder.Bavarder + environment: + PYTHONPATH: $SNAP/usr/lib/python3.10/dist-packages:$PYTHONPATH + GI_TYPELIB_PATH: $SNAP/webkitgtk-platform/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:$GI_TYPELIB_PATH + LD_LIBRARY_PATH: $SNAP/webkitgtk-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/webkitgtk-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkitgtk-6.0:$LD_LIBRARY_PATH + plugs: + - network + - network-status + - network-bind + - unity7