From a464833a790f44f061f9de42a88f64e49156d422 Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Tue, 30 Aug 2016 09:51:05 -0700 Subject: [PATCH] LinGui: Add flatpak support (#231) * LinGui: add --flatpak configure option For building a linux flatpak bundle * LinGui: add rules to build flatpak repo and bundles * LinGui: add flatpak compatible icon * LinGui: add flatpak compatible desktop file * LinGui: add flatpak appdata xml * pkg: disable building LinGui when creating cli flatpak * pkg: clean flatpak build cache when updating source package * pkg: fix source package build dependencies Fixes errors when the git ref being packaged changes and you have not manually deleted stage and pkg build directories. --- gtk/configure.ac | 11 +- gtk/src/Makefile.am | 16 +- gtk/src/callbacks.c | 8 +- gtk/src/fr.handbrake.ghb.appdata.xml | 79 + gtk/src/fr.handbrake.ghb.desktop | 10 + gtk/src/fr.handbrake.ghb.svg | 38849 ++++++++++++++++ make/configure.py | 4 + make/include/main.defs | 11 + .../flatpak/fr.handbrake.HandBrakeCLI.json | 35 + pkg/linux/flatpak/fr.handbrake.ghb.json | 42 + pkg/linux/module.defs | 15 + pkg/linux/module.rules | 34 + pkg/module.defs | 5 +- pkg/module.rules | 10 +- test/module.defs | 4 + 15 files changed, 39118 insertions(+), 15 deletions(-) create mode 100644 gtk/src/fr.handbrake.ghb.appdata.xml create mode 100644 gtk/src/fr.handbrake.ghb.desktop create mode 100644 gtk/src/fr.handbrake.ghb.svg create mode 100644 pkg/linux/flatpak/fr.handbrake.HandBrakeCLI.json create mode 100644 pkg/linux/flatpak/fr.handbrake.ghb.json diff --git a/gtk/configure.ac b/gtk/configure.ac index 42a4ed581..3b690b21f 100644 --- a/gtk/configure.ac +++ b/gtk/configure.ac @@ -107,10 +107,9 @@ case $host in *) case "$host_os" in linux*) - pkg_gudev="gudev-1.0" ;; esac - GHB_PACKAGES="gthread-2.0 gio-2.0 libnotify dbus-glib-1 gmodule-2.0 $pkg_gudev" + GHB_PACKAGES="gthread-2.0 gio-2.0 libnotify dbus-glib-1 gmodule-2.0" mingw_flag=no ;; esac @@ -120,6 +119,14 @@ GHB_PACKAGES="gtk+-3.0 $GHB_PACKAGES" GST1_MODULES="gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 gstreamer-pbutils-1.0" +pkg_gudev="gudev-1.0" +PKG_CHECK_MODULES(Gudev, [$pkg_gudev], have_gudev=yes, have_gudev=no) +if test "x$have_gudev" = "xyes" ; then + GHB_PACKAGES="$GHB_PACKAGES $pkg_gudev" + CXXFLAGS="$CXXFLAGS -D_HAVE_GUDEV" + CFLAGS="$CFLAGS -D_HAVE_GUDEV" +fi + if test "x$gst_disable" = "xno" ; then PKG_CHECK_MODULES(GStreamer1, [$GST1_MODULES], use_gst1=yes, use_gst1=no) if test "x$use_gst1" = "xyes" ; then diff --git a/gtk/src/Makefile.am b/gtk/src/Makefile.am index d87fc40e1..cd873b0c7 100644 --- a/gtk/src/Makefile.am +++ b/gtk/src/Makefile.am @@ -3,6 +3,8 @@ icons = \ hb-icon.svg +flatpak_icon = fr.handbrake.ghb.svg + icons_dep = \ hb-icon.svg \ hb-start.svg \ @@ -18,6 +20,9 @@ icons_dep = \ hb-complete.svg hb_menu = ghb.desktop +flatpak_menu = fr.handbrake.ghb.desktop + +flatpak_appdata = fr.handbrake.ghb.appdata.xml AM_CPPFLAGS = \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @@ -156,6 +161,7 @@ uninstall-local: fi; \ rm -f $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/$$FILE; \ done + rm -f $(DESTDIR)/$(datadir)/icons/hicolor/scalable/apps/$(flatpak_icon) @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ @@ -163,7 +169,9 @@ uninstall-local: echo "*** Icon cache not updated. After install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi - rm -f $(DESTDIR)/$(datadir)/applications/$(hb_menu) + rm -f $(DESTDIR)/$(datadir)/applications/$(hb_menu); \ + rm -f $(DESTDIR)/$(datadir)/applications/$(flatpak_menu) \ + rm -f $(DESTDIR)/$(datadir)/appdata/$(flatpak_appdata) install-data-local: for icon in $(icons); do \ @@ -178,6 +186,7 @@ install-data-local: mkdir -p $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/; \ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/$$FILE; \ done + $(INSTALL_DATA) $(srcdir)/$(flatpak_icon) $(DESTDIR)/$(datadir)/icons/hicolor/scalable/apps/$(flatpak_icon) @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ @@ -186,4 +195,7 @@ install-data-local: echo "*** $(gtk_update_icon_cache)"; \ fi mkdir -p $(DESTDIR)/$(datadir)/applications/; \ - $(INSTALL_DATA) $(srcdir)/$(hb_menu) $(DESTDIR)/$(datadir)/applications/$(hb_menu) + mkdir -p $(DESTDIR)/$(datadir)/appdata/; \ + $(INSTALL_DATA) $(srcdir)/$(hb_menu) $(DESTDIR)/$(datadir)/applications/$(hb_menu); \ + $(INSTALL_DATA) $(srcdir)/$(flatpak_menu) $(DESTDIR)/$(datadir)/applications/$(flatpak_menu); \ + $(INSTALL_DATA) $(srcdir)/$(flatpak_appdata) $(DESTDIR)/$(datadir)/appdata/$(flatpak_appdata) diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index fb43db137..e70d57f15 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -40,7 +40,7 @@ #if !defined(_WIN32) #include #define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1 -#if defined(__linux__) +#if defined(__linux__) && defined(_HAVE_GUDEV) #include #endif #include @@ -4406,14 +4406,14 @@ dvd_device_list() return dvd_devices; } -#if defined(__linux__) +#if defined(__linux__) && defined(_HAVE_GUDEV) static GUdevClient *udev_ctx = NULL; #endif gboolean ghb_is_cd(GDrive *gd) { -#if defined(__linux__) +#if defined(__linux__) && defined(_HAVE_GUDEV) gchar *device; GUdevDevice *udd; @@ -4448,7 +4448,7 @@ ghb_is_cd(GDrive *gd) void ghb_udev_init() { -#if defined(__linux__) +#if defined(__linux__) && defined(_HAVE_GUDEV) udev_ctx = g_udev_client_new(NULL); #endif } diff --git a/gtk/src/fr.handbrake.ghb.appdata.xml b/gtk/src/fr.handbrake.ghb.appdata.xml new file mode 100644 index 000000000..3c18d648e --- /dev/null +++ b/gtk/src/fr.handbrake.ghb.appdata.xml @@ -0,0 +1,79 @@ + + + + fr.handbrake.ghb.desktop + CC0 + GPL-2.0+ + HandBrake + Video Transcoder + + +

+ HandBrake is a tool for converting video from nearly any format to a + selection of modern, widely supported codecs. +

+

Reasons you'll love Handbrake:

+
    +
  • Convert video from nearly any format
  • +
  • Free and Open Source
  • +
  • Multi-Platform (Windows, Mac and Linux)
  • +
+
+ + https://handbrake.fr/ + https://handbrake.fr/docs/en/latest/table-of-contents.html + https://github.com/HandBrake/HandBrake/issues + + application/ogg + application/x-extension-mp4 + application/x-flac + application/x-matroska + application/x-ogg + audio/ac3 + audio/mp4 + audio/mpeg + audio/ogg + audio/x-flac + audio/x-matroska + audio/x-mp3 + audio/x-mpeg + audio/x-vorbis + video/mp4 + video/mp4v-es + video/mpeg + video/msvideo + video/quicktime + video/vnd.divx + video/x-avi + video/x-m4v + video/x-matroska + video/x-mpeg + video/ogg + video/x-ogm+ogg + video/x-theora+ogg + x-content/video-dvd + x-content/video-vcd + x-content/video-svcd + + + + + https://handbrake.fr/img/slides/slide1_lin.jpg + Main window and settings summary + + + https://handbrake.fr/img/slides/slide2_lin.jpg + Video encoder settings + + + https://handbrake.fr/img/slides/slide3_lin.jpg + Audio track selection and settings + + + + + ghb + + +
+ diff --git a/gtk/src/fr.handbrake.ghb.desktop b/gtk/src/fr.handbrake.ghb.desktop new file mode 100644 index 000000000..6d25f5cfc --- /dev/null +++ b/gtk/src/fr.handbrake.ghb.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=HandBrake +GenericName=Media Transcoder +Comment=Transcodes DVD, Bluray, and other media +Exec=ghb %f +Icon=fr.handbrake.ghb.svg +Terminal=false +Type=Application +Categories=GTK;AudioVideo;Video; +MimeType=application/ogg;application/x-extension-mp4;application/x-flac;application/x-matroska;application/x-ogg;audio/ac3;audio/mp4;audio/mpeg;audio/ogg;audio/x-flac;audio/x-matroska;audio/x-mp3;audio/x-mpeg;audio/x-vorbis;video/mp4;video/mp4v-es;video/mpeg;video/msvideo;video/quicktime;video/vnd.divx;video/x-avi;video/x-m4v;video/x-matroska;video/x-mpeg;video/ogg;video/x-ogm+ogg;video/x-theora+ogg;x-content/video-dvd;x-content/video-vcd;x-content/video-svcd; diff --git a/gtk/src/fr.handbrake.ghb.svg b/gtk/src/fr.handbrake.ghb.svg new file mode 100644 index 000000000..bec39896c --- /dev/null +++ b/gtk/src/fr.handbrake.ghb.svg @@ -0,0 +1,38849 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/make/configure.py b/make/configure.py index 3efb6848b..5952b22ac 100644 --- a/make/configure.py +++ b/make/configure.py @@ -1346,8 +1346,11 @@ def createCLI(): h = IfHost( 'Build and use local pkg-config', '*-*-darwin*', none=optparse.SUPPRESS_HELP ).value grp.add_option( '--enable-local-pkgconfig', default=False, action='store_true', help=h ) + if host.match( '*-*-linux*' ): + grp.add_option( '--flatpak', default=False, action='store_true', help='Build extra contribs for flatpak' ) cli.add_option_group( grp ) + ## add Xcode options if host.match( '*-*-darwin*' ): grp = OptionGroup( cli, 'Xcode Options' ) @@ -1838,6 +1841,7 @@ int main() doc.add( 'FEATURE.local_cmake', int( options.enable_local_cmake )) doc.add( 'FEATURE.local_pkgconfig', int( options.enable_local_pkgconfig )) doc.add( 'FEATURE.asm', 'disabled' ) + doc.add( 'FEATURE.flatpak', int( options.flatpak )) doc.add( 'FEATURE.gtk', int( not options.disable_gtk )) doc.add( 'FEATURE.gtk.update.checks', int( not options.disable_gtk_update_checks )) doc.add( 'FEATURE.gtk.mingw', int( options.enable_gtk_mingw )) diff --git a/make/include/main.defs b/make/include/main.defs index 8253f002a..b95227908 100644 --- a/make/include/main.defs +++ b/make/include/main.defs @@ -57,6 +57,17 @@ ifneq (,$(filter $(BUILD.system),darwin cygwin mingw)) MODULES += contrib/jansson endif +ifeq (1,$(FEATURE.flatpak)) + MODULES += contrib/lame + MODULES += contrib/jansson + MODULES += contrib/x264 + MODULES += contrib/harfbuzz + MODULES += contrib/fribidi + MODULES += contrib/freetype + MODULES += contrib/libass + MODULES += contrib/yasm +endif + ifeq (1,$(FEATURE.fdk_aac)) MODULES += contrib/fdk-aac endif diff --git a/pkg/linux/flatpak/fr.handbrake.HandBrakeCLI.json b/pkg/linux/flatpak/fr.handbrake.HandBrakeCLI.json new file mode 100644 index 000000000..c006549b7 --- /dev/null +++ b/pkg/linux/flatpak/fr.handbrake.HandBrakeCLI.json @@ -0,0 +1,35 @@ +{ + "app-id": "fr.handbrake.HandBrakeCLI", + "runtime": "org.gnome.Platform", + "runtime-version": "3.20", + "sdk": "org.gnome.Sdk", + "command": "HandBrakeCLI", + "finish-args": [ + /* Needs video */ + "--filesystem=xdg-videos", + /* Home */ + "--filesystem=home" + ], + "modules": [ + { + "name": "handbrake", + "no-autogen": true, + "config-opts": ["--flatpak", "--disable-gtk"], + "builddir": true, + "post-install": ["rm -rf /app/share"], + "sources": [ + { + "type": "archive", + "path": "handbrake.tar.bz2", + "strip-components": 1 + }, + { + "type": "archive", + "path": "download.tgz", + "strip-components": 0 + } + ] + } + ] +} + diff --git a/pkg/linux/flatpak/fr.handbrake.ghb.json b/pkg/linux/flatpak/fr.handbrake.ghb.json new file mode 100644 index 000000000..34f578350 --- /dev/null +++ b/pkg/linux/flatpak/fr.handbrake.ghb.json @@ -0,0 +1,42 @@ +{ + "app-id": "fr.handbrake.ghb", + "runtime": "org.gnome.Platform", + "runtime-version": "3.20", + "sdk": "org.gnome.Sdk", + "command": "ghb", + "finish-args": [ + /* X11 + XShm access */ + "--share=ipc", "--socket=x11", + /* Wayland access */ + "--socket=wayland", + /* Needed for dconf to work */ + "--filesystem=xdg-run/dconf", "--filesystem=~/.config/dconf:ro", + "--talk-name=ca.desrt.dconf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf", + /* Needs video */ + "--filesystem=xdg-videos", + /* Home */ + "--filesystem=home" + ], + "modules": [ + { + "name": "handbrake", + "no-autogen": true, + "config-opts": ["--flatpak"], + "builddir": true, + "post-install": ["rm /app/bin/HandBrakeCLI"], + "sources": [ + { + "type": "archive", + "path": "handbrake.tar.bz2", + "strip-components": 1 + }, + { + "type": "archive", + "path": "download.tgz", + "strip-components": 0 + } + ] + } + ] +} + diff --git a/pkg/linux/module.defs b/pkg/linux/module.defs index 2eea7feb9..16a1baebc 100644 --- a/pkg/linux/module.defs +++ b/pkg/linux/module.defs @@ -28,6 +28,7 @@ PKG.rpm.src.tar.bz2 = $(STAGE.out.src/)rpm/$(PKG.rpm.basename).tar.bz2 STAGE.out.rpm.src/ = $(STAGE.out.src/)rpm/ PKG.debian = $(PKG.in/)linux/debian +PKG.flatpak/ = $(PKG.in/)linux/flatpak/ PKG.cli.deb = $(PKG.out/)$(HB.name)-$(HB.debversion)-Ubuntu_CLI_$(BUILD.machine).deb PKG.gui.deb = $(PKG.out/)$(HB.name)-$(HB.debversion)-Ubuntu_GUI_$(BUILD.machine).deb PKG.deb.basename = $(HB.name.lower)-$(HB.debversion) @@ -41,6 +42,18 @@ PKG.gui.tmp.deb = $(PKG.out/)$(HB.name.lower)-gtk_$(HB.debversion)_$(PKG.deb.mac PKG.native.rpm.stamp = $(RPM.out/).rpm.stamp PKG.rpm.stamp = $(PKG.out/).rpm.stamp +PKG.out.flatpak/ = $(PKG.out/)flatpak/ +STAGE.out.flatpak/ = $(STAGE.out/)flatpak/ +PKG.src.flatpak = $(STAGE.out.flatpak/)handbrake.tar.bz2 +PKG.contrib.flatpak = $(STAGE.out.flatpak/)download.tgz +PKG.gui.manifest.flatpak = $(PKG.flatpak/)fr.handbrake.ghb.json +PKG.cli.manifest.flatpak = $(PKG.flatpak/)fr.handbrake.HandBrakeCLI.json +PKG.gui.build.flatpak = $(STAGE.out.flatpak/)$(HB.name)-Flatpak_GUI_$(BUILD.machine).build +PKG.cli.build.flatpak = $(STAGE.out.flatpak/)$(HB.name)-Flatpak_CLI_$(BUILD.machine).build +PKG.repo.flatpak = $(PKG.out.flatpak/)$(HB.name)-Flatpak.repo +PKG.cli.flatpak = $(PKG.out.flatpak/)$(HB.name)-$(HB.version)-Flatpak_CLI_$(BUILD.machine).flatpak +PKG.gui.flatpak = $(PKG.out.flatpak/)$(HB.name)-$(HB.version)-Flatpak_GUI_$(BUILD.machine).flatpak + PKG.gui.native.rpm = $(RPM.out/)RPMS/$(PKG.rpm.machine)/$(HB.name.lower)-gui-$(PKG.rpm.hb.version)-$(PKG.release)$(PKG.rpm.dist).$(PKG.rpm.machine).rpm PKG.cli.native.rpm = $(RPM.out/)RPMS/$(PKG.rpm.machine)/$(HB.name.lower)-cli-$(PKG.rpm.hb.version)-$(PKG.release)$(PKG.rpm.dist).$(PKG.rpm.machine).rpm @@ -54,6 +67,8 @@ RPMROOT.out/ = $(PWD)/$(STAGE.out/)rpmroot/ ############################################################################### BUILD.out += $(PKG.src.tar) +BUILD.out += $(PKG.cli.flatpak) +BUILD.out += $(PKG.gui.flatpak) BUILD.out += $(PKG.cli.deb) BUILD.out += $(PKG.gui.deb) BUILD.out += $(PKG.cli.rpm) diff --git a/pkg/linux/module.rules b/pkg/linux/module.rules index 7054dee6e..e43906a9a 100644 --- a/pkg/linux/module.rules +++ b/pkg/linux/module.rules @@ -1,3 +1,4 @@ +pkg.create.flatpak:: $(PKG.gui.flatpak) $(PKG.cli.flatpak) pkg.create.deb:: $(PKG.gui.deb) $(PKG.cli.deb) pkg.create.rpm:: $(PKG.rpm.stamp) pkg.create.src.deb:: $(PKG.src.deb.stamp) @@ -55,6 +56,38 @@ $(PKG.rpm.stamp): $(PKG.native.rpm.stamp) $(CP.exe) $(PKG.cli.native.rpm) $(PKG.cli.rpm) $(TOUCH.exe) $(PKG.rpm.stamp) +# +# Flatpak binary package rules +# +$(PKG.src.flatpak): $(PKG.src.tar.bz2) + $(MKDIR.exe) -p $(STAGE.out.flatpak/) + -$(RM.exe) -rf $(STAGE.out.flatpak/).flatpak-builder + $(CP.exe) $(PKG.src.tar.bz2) $(PKG.src.flatpak) + +$(PKG.contrib.flatpak): + $(MKDIR.exe) -p $(STAGE.out.flatpak/) + $(TAR.exe) -C $(SRC/) -czf $(PWD)/$(PKG.contrib.flatpak) download + +$(PKG.gui.flatpak): GNUmakefile $(PKG.src.flatpak) $(PKG.contrib.flatpak) + make contrib.fetch + $(MKDIR.exe) -p $(PKG.out.flatpak/) + # Relative paths in the manifest are relative to the location + # of the manifest. So put it where we have staged the files that + # it needs. + $(CP.exe) $(PKG.gui.manifest.flatpak) $(STAGE.out.flatpak/)fr.handbrake.gui.json + flatpak-builder --force-clean --gpg-sign=608AD8F6 --repo=$(PKG.repo.flatpak) $(PKG.gui.build.flatpak) $(STAGE.out.flatpak/)fr.handbrake.gui.json + flatpak build-bundle $(PKG.repo.flatpak) $(PKG.gui.flatpak) fr.handbrake.ghb + +$(PKG.cli.flatpak): GNUmakefile $(PKG.src.flatpak) $(PKG.contrib.flatpak) + make contrib.fetch + $(MKDIR.exe) -p $(PKG.out.flatpak/) + # Relative paths in the manifest are relative to the location + # of the manifest. So put it where we have staged the files that + # it needs. + $(CP.exe) $(PKG.cli.manifest.flatpak) $(STAGE.out.flatpak/)fr.handbrake.HandBrakeCLI.json + flatpak-builder --force-clean --gpg-sign=608AD8F6 --repo=$(PKG.repo.flatpak) $(PKG.cli.build.flatpak) $(STAGE.out.flatpak/)fr.handbrake.HandBrakeCLI.json + flatpak build-bundle $(PKG.repo.flatpak) $(PKG.cli.flatpak) fr.handbrake.HandBrakeCLI + # # Debian binary package rules # @@ -67,6 +100,7 @@ $(PKG.gui.tmp.deb): GNUmakefile echo $(PKG.out/) fakeroot $(MAKE) FORCEVERSION="-- -v$(HB.debversion)" BUILDDIR=$(PWD)/$(BUILD) CONFIGURE=configure PKGDESTDIR=$(PWD)/$(PKG.out/) -C $(SRC/) -f debian/rules binary + $(PKG.gui.deb): | $(dir $(PKG.gui.deb)) $(PKG.gui.deb): $(PKG.gui.tmp.deb) $(MV.exe) $(PKG.gui.tmp.deb) $(PKG.gui.deb) diff --git a/pkg/module.defs b/pkg/module.defs index 67e2b14a3..9ab47ac0c 100644 --- a/pkg/module.defs +++ b/pkg/module.defs @@ -7,8 +7,9 @@ PKG.basename = $(HB.name)-$(HB.version) PKG.src.tar.bz2 = $(PKG.out/)$(PKG.basename)-source.tar.bz2 PKG.src-contrib.tar.bz2 = $(PKG.out/)$(PKG.basename)-contrib.tar.bz2 -STAGE.out/ = $(BUILD/)stage/ -STAGE.out.src/ = $(STAGE.out/)src/ +STAGE.out/ = $(BUILD/)stage/ +STAGE.out.src/ = $(STAGE.out/)src/ +STAGE.out.src.dist/ = $(STAGE.out.src/)$(PKG.basename) ############################################################################### diff --git a/pkg/module.rules b/pkg/module.rules index 5ec109fd3..8bb7a81e5 100644 --- a/pkg/module.rules +++ b/pkg/module.rules @@ -13,13 +13,13 @@ pkg.clean: $(RM.exe) -fr $(PKG.out/) $(PKG.src.tar.bz2): | $(dir $(PKG.src.tar.bz2)) -$(PKG.src.tar.bz2): | $(STAGE.out.src/) +$(PKG.src.tar.bz2): $(STAGE.out.src.dist/) $(TAR.exe) cjf $@ -C $(STAGE.out.src/) $(PKG.basename) -$(STAGE.out.src/): - $(MKDIR.exe) -p $@ - $(GIT.exe) -C $(SRC/) archive --format=tar --prefix=$(PKG.basename)/ $(HB.repo.shorthash) | $(TAR.exe) -xC $@ - $(SRC/)scripts/repo-info.sh $(SRC/) $(GIT.exe) > $@/$(PKG.basename)/version.txt +$(STAGE.out.src.dist/): + $(MKDIR.exe) -p $(STAGE.out.src/) + $(GIT.exe) -C $(SRC/) archive --format=tar --prefix=$(PKG.basename)/ $(HB.repo.shorthash) | $(TAR.exe) -xC $(STAGE.out.src/) + $(SRC/)scripts/repo-info.sh $(SRC/) $(GIT.exe) > $@/version.txt $(PKG.src-contrib.tar.bz2): $(TAR.exe) cjf $@ -C $(CONTRIB.download/) \ diff --git a/test/module.defs b/test/module.defs index 3de5761c4..904a2e0f5 100644 --- a/test/module.defs +++ b/test/module.defs @@ -30,6 +30,10 @@ ifeq (1,$(FEATURE.x265)) TEST.GCC.D += USE_X265 endif +ifeq (1,$(FEATURE.flatpak)) + TEST.GCC.l += glib-2.0 +endif + TEST.GCC.l += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs)) TEST.install.exe = $(DESTDIR)$(PREFIX/)bin/$(notdir $(TEST.exe)) -- 2.40.0