{ "app-id": "org.gnome.EvolutionEws.Devel", "runtime": "org.gnome.Platform", "runtime-version": "master", "sdk": "org.gnome.Sdk", "command": "evolution", "rename-icon": "evolution", "copy-icon": true, "branch": "master", "desktop-file-name-suffix": " (Nightly)", "tags": [ "devel" ], "cleanup": [ "*.la", "*.a" ], "finish-args": [ "--share=ipc", "--share=network", "--socket=fallback-x11", "--socket=wayland", "--socket=pulseaudio", "--socket=pcsc", "--device=dri", "--filesystem=~/.gnupg:rw", "--filesystem=xdg-config/gnupg:rw", "--filesystem=~/.pki:rw", "--filesystem=xdg-config/pki:rw", "--filesystem=xdg-run/gvfsd:rw", "--filesystem=/run/.heim_org.h5l.kcm-socket", "--metadata=X-DConf=migrate-path=/org/gnome/evolution/", "--talk-name=org.freedesktop.Notifications", "--talk-name=org.freedesktop.secrets", "--talk-name=org.gnome.keyring.SystemPrompter", "--talk-name=org.gnome.OnlineAccounts" ], "add-extensions": { "org.gnome.Evolution.Extension": { "directory": "evolution/extensions", "add-ld-path": "lib", "merge-dirs": "lib;share", "subdirectories": true, "no-autodownload": true, "autodelete": true } }, "modules": [ { "name": "libcanberra", "config-opts": [ "--disable-gtk", "--disable-oss", "--enable-alsa", "--enable-gtk3", "--enable-null", "--without-systemdsystemunitdir", "--with-builtin=dso", "--disable-gtk-doc", "--disable-gtk-doc-html" ], "cleanup": [ "/bin", "/share/gtk-doc", "/share/gdm", "/share/gnome", "/share/vala" ], "sources": [ { "type": "archive", "url": "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz", "sha256": "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72" }, { "type": "script", "dest-filename": "libcanberra-x11-check.patch", "commands": [ "From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001", "Subject: gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland", "", "diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c", "index 67791f0..c1532ab 100644", "--- a/src/canberra-gtk-module.c", "+++ b/src/canberra-gtk-module.c", "@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {", " guchar *data = NULL;", " gint ret = -1;", " ", "+#ifdef GDK_IS_X11_DISPLAY", "+ if (!GDK_IS_X11_DISPLAY(d))", "+ return 0;", "+#endif", "+", " if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),", " gdk_x11_get_xatom_by_name_for_display(d, \"_NET_WM_DESKTOP\"),", " 0, G_MAXLONG, False, XA_CARDINAL, &type_return,", "@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) {", " guchar *data = NULL;", " gint ret = -1;", " ", "+#ifdef GDK_IS_X11_DISPLAY", "+ if (!GDK_IS_X11_DISPLAY(d))", "+ return 0;", "+#endif", "+", " if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),", " gdk_x11_get_xatom_by_name_for_display(d, \"_NET_CURRENT_DESKTOP\"),", " 0, G_MAXLONG, False, XA_CARDINAL, &type_return,", "@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {", " gboolean ret = FALSE;", " Atom xembed;", " ", "+#ifdef GDK_IS_X11_DISPLAY", "+ if (!GDK_IS_X11_DISPLAY(d))", "+ return FALSE;", "+#endif", "+", " /* Gnome Panel applets are XEMBED windows. We need to make sure we", " * ignore them */", " ", "diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c", "index 34446f5..08cb668 100644", "--- a/src/canberra-gtk.c", "+++ b/src/canberra-gtk.c", "@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {", " guchar *data = NULL;", " gint ret = -1;", " ", "+#ifdef GDK_IS_X11_DISPLAY", "+ if (!GDK_IS_X11_DISPLAY(d))", "+ return 0;", "+#endif", "+", " if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),", " gdk_x11_get_xatom_by_name_for_display(d, \"_NET_WM_DESKTOP\"),", " 0, G_MAXLONG, False, XA_CARDINAL, &type_return,", "" ] }, { "type": "shell", "commands": [ "patch -p1 doc/Makefile.am && autoreconf -fi && ./configure --prefix=/app --disable-rpath --with-database=sqlite3 && make && make install" ], "cleanup": [ "/etc" ], "sources": [ { "type": "git", "url": "https://git.code.sf.net/p/bogofilter/git", "branch": "main" } ] }, { "name": "cmark", "buildsystem": "cmake-ninja", "builddir": true, "cleanup": [ "/bin", "/lib/cmake", "/share" ], "sources": [ { "type": "archive", "url": "https://github.com/commonmark/cmark/archive/refs/tags/0.31.0.tar.gz", "sha256": "bbcb8f8c03b5af33fcfcf11a74e9499f20a9043200b8552f78a6e8ba76e04d11" } ] }, { "name": "libmspack", "cleanup": [ "/bin" ], "sources": [ { "type": "archive", "url": "https://www.cabextract.org.uk/libmspack/libmspack-0.10.1alpha.tar.gz", "sha256": "bac862dee6e0fc10d92c70212441d9f8ad9b0222edc9a708c3ead4adb1b24a8e" } ] }, { "name": "evolution-data-server", "buildsystem": "cmake-ninja", "cleanup": [ "/etc/xdg", "/share/GConf" ], "config-opts": [ "-DDBUS_SERVICES_PREFIX=org.gnome.EvolutionEws.Devel", "-DEXTENSIONS_DIR=/app/evolution/extensions", "-DENABLE_FILE_LOCKING=fcntl", "-DENABLE_DOT_LOCKING=OFF", "-DENABLE_GTK=ON", "-DENABLE_GTK4=OFF", "-DENABLE_GOA=ON", "-DENABLE_EXAMPLES=OFF", "-DENABLE_INTROSPECTION=OFF", "-DENABLE_VALA_BINDINGS=OFF", "-DENABLE_INSTALLED_TESTS=OFF", "-DENABLE_GTK_DOC=OFF", "-DWITH_LIBDB=OFF", "-DWITH_PRIVATE_DOCS=OFF", "-DWITH_PHONENUMBER=OFF", "-DWITH_SYSTEMDUSERUNITDIR=OFF" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/evolution-data-server.git", "branch": "master" } ] }, { "name": "evolution", "buildsystem": "cmake-ninja", "build-options" : { "cflags": "-DTEMP_HOME=1 -Wno-deprecated-declarations" }, "config-opts": [ "-DOVERRIDE_APPLICATION_ID=org.gnome.EvolutionEws.Devel", "-DENABLE_AUTOAR=OFF", "-DENABLE_CONTACT_MAPS=OFF", "-DENABLE_GNOME_DESKTOP=OFF", "-DENABLE_GTK_DOC=OFF", "-DENABLE_INSTALLED_TESTS=OFF", "-DENABLE_PST_IMPORT=OFF", "-DENABLE_TEXT_HIGHLIGHT=OFF", "-DENABLE_YTNEF=OFF", "-DWITH_BOGOFILTER=/app/bin/bogofilter", "-DWITH_GLADE_CATALOG=OFF", "-DWITH_HELP=OFF" ], "cleanup": [ "/etc/xdg", "/share/GConf", "/share/man" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/evolution.git", "branch": "master" }, { "type": "shell", "commands": [ "cp config.h.in config.h.in.orig", "cat config.h.in.orig | sed -e \"s|\\@VERSION_SUBSTRING\\@| \\(flatpak git$(git log --pretty=format:%h --max-count=1)\\)|\" >config.h.in", "cp data/org.gnome.Evolution.appdata.xml.in.in data/org.gnome.Evolution.appdata.xml.in.in.orig", "cat data/org.gnome.Evolution.appdata.xml.in.in.orig | sed -e \"s|\\@APPDATA_RELEASES\\@|APPDATA_RELEASES|\" >data/org.gnome.Evolution.appdata.xml.in.in" ] } ], "post-install": [ "mv /app/share/applications/org.gnome.Evolution.desktop /app/share/applications/org.gnome.EvolutionEws.Devel.desktop" ] }, { "name": "flatpak-evolution-wrapper", "buildsystem": "simple", "sources": [ { "type": "script", "commands": [ "if [ \"$1\" = \"--quit\" -o \"$1\" = \"--force-shutdown\" ]; then", " /app/bin/evolution.bin \"$@\"", "else", " export BOGOFILTER_DIR=\"${XDG_DATA_HOME}/bogofilter/\"", " export GIO_USE_NETWORK_MONITOR=base", " export WEBKIT_FORCE_SANDBOX=0", " gsettings reset org.gnome.evolution-data-server network-monitor-gio-name", "", " gpg-agent --homedir ~/.gnupg --daemon --pinentry-program=/app/bin/pinentry", "", " LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @SOURCES_SERVICE@ | wc -l)", " if [ \"${LINES}\" = \"0\" ]; then", " /app/libexec/evolution-source-registry &", " gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@", " fi", "", " LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @ADDRESSBOOK_SERVICE@ | wc -l)", " if [ \"${LINES}\" = \"0\" ]; then", " /app/libexec/evolution-addressbook-factory -r &", " gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@", " fi", "", " LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @CALENDAR_SERVICE@ | wc -l)", " if [ \"${LINES}\" = \"0\" ]; then", " /app/libexec/evolution-calendar-factory -r &", " gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@", " fi", "", " /app/bin/evolution.bin \"$@\"", "", " pkill -TERM gpg-agent", "fi" ], "dest-filename": "flatpak-evolution-wrapper.sh.in" }, { "type": "script", "commands": [ "# see https://gitlab.gnome.org/GNOME/glib/issues/1737", "# previous versions used milliseconds instead of seconds as the timeout argument", "(`pkg-config --atleast-version 2.60.1 gio-2.0` || `pkg-config --atleast-version 2.61.0 gio-2.0`) && TIMEOUTMULT= || TIMEOUTMULT=000", "", "sed -e \"s|\\@SOURCES_SERVICE\\@|$(pkg-config --variable=sourcesdbusservicename evolution-data-server-1.2)|\" \\", " -e \"s|\\@ADDRESSBOOK_SERVICE\\@|$(pkg-config --variable=addressbookdbusservicename evolution-data-server-1.2)|\" \\", " -e \"s|\\@CALENDAR_SERVICE\\@|$(pkg-config --variable=calendardbusservicename evolution-data-server-1.2)|\" \\", " -e \"s|\\@TIMEOUTMULT\\@|${TIMEOUTMULT}|\"" ], "dest-filename": "flatpak-evolution-fix-service-names.sh" } ], "build-commands": [ "./flatpak-evolution-fix-service-names.sh flatpak-evolution-wrapper.sh", "chmod a+x flatpak-evolution-wrapper.sh", "mv /app/bin/evolution /app/bin/evolution.bin", "cp flatpak-evolution-wrapper.sh /app/bin/evolution" ] }, { "name": "evolution-ews", "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/evolution-ews.git", "branch": "master" } ] } ] }