summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2017-04-27 11:04:51 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2017-08-31 10:18:33 +0200
commitec9e5ed06256ad92c818474cdb490dc0d3a0d0a3 (patch)
treee16d2a838f4561d5538928a58f805e5f1373225a
parent6775acb048dabd624c5c8197b683aba45ed91569 (diff)
downloadmeta-openembedded-ec9e5ed06256ad92c818474cdb490dc0d3a0d0a3.tar.gz
recipes: remove blacklisted recipes
* as PNBLACKLIST message says, these recipes are blacklisted for long time and nobody showed any interest to fix them * remove all unused .patch and .inc files as well Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--meta-efl/conf/distro/include/efl-from-svn-recipes.inc43
-rw-r--r--meta-efl/recipes-devtools/python/python-edbus.inc46
-rw-r--r--meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb8
-rw-r--r--meta-efl/recipes-devtools/python/python-efl.inc71
-rw-r--r--meta-efl/recipes-devtools/python/python-efl_1.15.0.bb6
-rw-r--r--meta-efl/recipes-devtools/python/python-efl_git.bb11
-rw-r--r--meta-efl/recipes-efl/e17/cpu/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/cpu_svn.bb12
-rw-r--r--meta-efl/recipes-efl/e17/diskio_svn.bb10
-rw-r--r--meta-efl/recipes-efl/e17/e-module.inc19
-rw-r--r--meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch204
-rw-r--r--meta-efl/recipes-efl/e17/e-tasks_git.bb34
-rw-r--r--meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb37
-rw-r--r--meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE25
-rw-r--r--meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb39
-rw-r--r--meta-efl/recipes-efl/e17/e-wm.inc200
-rw-r--r--meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch28
-rw-r--r--meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch29
-rw-r--r--meta-efl/recipes-efl/e17/e-wm/applications.menu105
-rw-r--r--meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe9
-rw-r--r--meta-efl/recipes-efl/e17/e-wm_0.18.8.bb17
-rw-r--r--meta-efl/recipes-efl/e17/e-wm_0.19.10.bb21
-rw-r--r--meta-efl/recipes-efl/e17/e-wm_git.bb16
-rw-r--r--meta-efl/recipes-efl/e17/edje-viewer_svn.bb18
-rw-r--r--meta-efl/recipes-efl/e17/elbow_git.bb26
-rw-r--r--meta-efl/recipes-efl/e17/elfe_git.bb17
-rw-r--r--meta-efl/recipes-efl/e17/elmdentica/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/elmdentica_svn.bb23
-rw-r--r--meta-efl/recipes-efl/e17/emprint_svn.bb14
-rw-r--r--meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch133
-rw-r--r--meta-efl/recipes-efl/e17/enjoy/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/enjoy_git.bb50
-rw-r--r--meta-efl/recipes-efl/e17/ephoto/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/ephoto_svn.bb21
-rw-r--r--meta-efl/recipes-efl/e17/exalt-client/configure.patch28
-rw-r--r--meta-efl/recipes-efl/e17/exalt-client_svn.bb26
-rw-r--r--meta-efl/recipes-efl/e17/exalt_svn.bb36
-rw-r--r--meta-efl/recipes-efl/e17/exquisite-theme-illume.bb41
-rw-r--r--meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE25
-rw-r--r--meta-efl/recipes-efl/e17/exquisite/exquisite-init40
-rw-r--r--meta-efl/recipes-efl/e17/exquisite/splashfuncs29
-rw-r--r--meta-efl/recipes-efl/e17/exquisite_svn.bb43
-rw-r--r--meta-efl/recipes-efl/e17/flame/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/flame_svn.bb17
-rw-r--r--meta-efl/recipes-efl/e17/forecasts/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/forecasts_svn.bb12
-rw-r--r--meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch23
-rw-r--r--meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE25
-rw-r--r--meta-efl/recipes-efl/e17/news_svn.bb14
-rw-r--r--meta-efl/recipes-efl/e17/places/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/places_svn.bb18
-rw-r--r--meta-efl/recipes-efl/e17/rage_svn.bb15
-rw-r--r--meta-efl/recipes-efl/e17/rain/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/rain_svn.bb18
-rw-r--r--meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch23
-rw-r--r--meta-efl/recipes-efl/e17/screenshot_svn.bb16
-rw-r--r--meta-efl/recipes-efl/e17/terminology.inc22
-rw-r--r--meta-efl/recipes-efl/e17/terminology_0.9.1.bb10
-rw-r--r--meta-efl/recipes-efl/e17/uptime/configure.patch13
-rw-r--r--meta-efl/recipes-efl/e17/uptime_svn.bb12
-rw-r--r--meta-efl/recipes-efl/efl/azy_svn.bb37
-rw-r--r--meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch41
-rw-r--r--meta-efl/recipes-efl/efl/edbus.inc29
-rw-r--r--meta-efl/recipes-efl/efl/edbus_1.7.9.bb16
-rw-r--r--meta-efl/recipes-efl/efl/edje-fpu.inc6
-rw-r--r--meta-efl/recipes-efl/efl/efl.inc290
-rw-r--r--meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch27
-rw-r--r--meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch51
-rw-r--r--meta-efl/recipes-efl/efl/efl_1.15.1.bb29
-rw-r--r--meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE25
-rw-r--r--meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb44
-rw-r--r--meta-efl/recipes-efl/efl/elementary.inc89
-rw-r--r--meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch29
-rw-r--r--meta-efl/recipes-efl/efl/elementary_1.15.1.bb18
-rw-r--r--meta-efl/recipes-efl/efl/emotion-generic-players.inc14
-rw-r--r--meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb14
-rw-r--r--meta-efl/recipes-efl/efl/engrave_svn.bb15
-rw-r--r--meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch26
-rw-r--r--meta-efl/recipes-efl/efl/entrance/entrance.service8
-rw-r--r--meta-efl/recipes-efl/efl/entrance_svn.bb43
-rw-r--r--meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch132
-rw-r--r--meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch45
-rw-r--r--meta-efl/recipes-efl/efl/epdf_svn.bb35
-rw-r--r--meta-efl/recipes-efl/efl/evas-generic-loaders.inc73
-rw-r--r--meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb14
-rw-r--r--meta-efl/recipes-efl/efl/expedite.inc25
-rw-r--r--meta-efl/recipes-efl/efl/expedite_1.7.9.bb28
-rw-r--r--meta-efl/recipes-efl/efl/expedite_git.bb31
-rw-r--r--meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch44
-rw-r--r--meta-efl/recipes-efl/efl/libeflvala_svn.bb23
-rw-r--r--meta-efl/recipes-efl/efl/libeweather_svn.bb48
-rw-r--r--meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb19
-rw-r--r--meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc12
-rw-r--r--meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb19
-rw-r--r--meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb30
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl.inc69
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch46
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch45
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch35
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch146
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch104
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch30
-rw-r--r--meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb12
-rw-r--r--meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb19
-rw-r--r--meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb33
-rw-r--r--meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch37
-rw-r--r--meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch205
-rw-r--r--meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb26
-rw-r--r--meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch17
-rw-r--r--meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch19
-rw-r--r--meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch17
-rw-r--r--meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch43
-rw-r--r--meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb25
-rw-r--r--meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb18
-rw-r--r--meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb32
-rw-r--r--meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb25
-rw-r--r--meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb20
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch2281
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch34
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch37
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb108
-rw-r--r--meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb21
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb35
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb28
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch74
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch49
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch27
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch34
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch37
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb45
-rw-r--r--meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb30
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Add-gnome-doc-utils.make.patch730
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch35
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch36
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch22
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb51
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb48
-rw-r--r--meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch37
-rw-r--r--meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch35
-rw-r--r--meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb54
-rw-r--r--meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch61
-rw-r--r--meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb32
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch81
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb43
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch101
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch49
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch30
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb35
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch28
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb22
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb25
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch37
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch30
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch11
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch38
-rw-r--r--meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb28
-rw-r--r--meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch84
-rw-r--r--meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch15
-rw-r--r--meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb49
-rw-r--r--meta-gnome/recipes-gnome/gthumb/files/0001-Drop-help-directory-from-build.patch25
-rw-r--r--meta-gnome/recipes-gnome/gthumb/files/parallel.patch158
-rw-r--r--meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb35
-rw-r--r--meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb28
-rw-r--r--meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb24
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch7
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch44
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb54
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb43
-rw-r--r--meta-gnome/recipes-gnome/pimlico/contacts.inc28
-rw-r--r--meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch37
-rw-r--r--meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch16
-rw-r--r--meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb20
-rw-r--r--meta-gnome/recipes-gnome/pimlico/contacts_git.bb19
-rw-r--r--meta-gnome/recipes-gnome/pimlico/tasks.inc10
-rw-r--r--meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb16
-rw-r--r--meta-gnome/recipes-gnome/pimlico/tasks_git.bb12
-rw-r--r--meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch41
-rw-r--r--meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb54
-rw-r--r--meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch39
-rw-r--r--meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb21
-rw-r--r--meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch33
-rw-r--r--meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch41
-rw-r--r--meta-gnome/recipes-support/goffice/goffice_0.10.1.bb51
-rw-r--r--meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch13
-rw-r--r--meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch30
-rw-r--r--meta-gnome/recipes-support/tracker/tracker-0.14.2/giflib5-support.patch126
-rw-r--r--meta-gnome/recipes-support/tracker/tracker_0.14.2.bb88
-rw-r--r--meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch28
-rw-r--r--meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch42
-rw-r--r--meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb24
-rw-r--r--meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch11
-rw-r--r--meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch11
-rw-r--r--meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb25
-rw-r--r--meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch11
-rw-r--r--meta-gpe/recipes-graphics/minilite/minilite_0.50.bb18
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch22
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-cflags-fribidi.patch11
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-return-code-gcc6.patch11
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch20
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb46
-rw-r--r--meta-gpe/recipes-support/fbreader/fbreader_git.bb45
-rw-r--r--meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch40
-rw-r--r--meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb136
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Fix-checks-for-sse2-mmx.patch40
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Makefile-Ignore-warning-about-wrong-includes.patch31
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-disable-varargs-warning-on-clang.patch32
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-dvr-Use-labs-instead-of-abs.patch37
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch40
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb43
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts/0001-Update-to-p8-platform.patch427
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts_git.bb57
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-platform/0001-fix-cross-compile-badness.patch40
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-platform/kodi-platform-02_no-multi-lib.patch12
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-platform_git.bb39
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-startup.bb24
-rw-r--r--meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb57
-rw-r--r--meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch17
-rwxr-xr-xmeta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch34
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch30
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch61
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch40
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch81
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch69
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch36
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch145
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch39
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch87
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch61
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch45
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch34
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch44
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch30
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch58
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch36
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch183
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch51
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch68
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch22
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch100
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch64
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch38
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch38
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch56
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch36
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch59
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch41
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch57
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch9304
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch21
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch19
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb103
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer/files/display.patch60
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb17
-rw-r--r--meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb41
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch224
-rw-r--r--meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch33
-rw-r--r--meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch97
-rw-r--r--meta-networking/recipes-kernel/netmap/netmap-modules_git.bb92
-rw-r--r--meta-networking/recipes-kernel/netmap/netmap.inc17
-rw-r--r--meta-networking/recipes-kernel/netmap/netmap_git.bb37
-rw-r--r--meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb45
-rw-r--r--meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch47
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch16
-rw-r--r--meta-networking/recipes-support/nis/ypbind-mt_2.2.bb53
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch75
-rw-r--r--meta-oe/recipes-benchmark/pmbw/pmbw_git.bb30
-rw-r--r--meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch14
-rw-r--r--meta-oe/recipes-connectivity/bluez/bluez4.inc47
-rw-r--r--meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb36
-rw-r--r--meta-oe/recipes-connectivity/soft66/files/fix-ar.patch13
-rw-r--r--meta-oe/recipes-connectivity/soft66/soft66_git.bb20
-rw-r--r--meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch18
-rw-r--r--meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch15
-rw-r--r--meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb26
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch76
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb53
-rw-r--r--meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch292
-rw-r--r--meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb87
-rw-r--r--meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb15
-rw-r--r--meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb30
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb49
-rw-r--r--meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch23
-rw-r--r--meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch29
-rw-r--r--meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb118
-rw-r--r--meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch29
-rw-r--r--meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch92
-rw-r--r--meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch18
-rw-r--r--meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch48
-rw-r--r--meta-oe/recipes-devtools/dt/dt_18.32.bb49
-rw-r--r--meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch31
-rw-r--r--meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb97
-rw-r--r--meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch166
-rw-r--r--meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch13
-rw-r--r--meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch422
-rw-r--r--meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb65
-rw-r--r--meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc16
-rw-r--r--meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch34
-rw-r--r--meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb6
-rw-r--r--meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb20
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch31
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb32
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch26
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch31
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb56
-rw-r--r--meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb34
-rw-r--r--meta-oe/recipes-extended/subsurface/subsurface_git.bb21
-rw-r--r--meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch12
-rw-r--r--meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb19
-rw-r--r--meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch32
-rw-r--r--meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb41
-rw-r--r--meta-oe/recipes-graphics/clutter/clutter-box2d.inc15
-rw-r--r--meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb19
-rw-r--r--meta-oe/recipes-graphics/fim/files/cross_cc.patch29
-rw-r--r--meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb52
-rw-r--r--meta-oe/recipes-graphics/libsexy/libsexy.inc15
-rw-r--r--meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch15
-rw-r--r--meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb8
-rw-r--r--meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch21
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch343
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch37
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch50
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch30
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch32
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch47
-rw-r--r--meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch161
-rw-r--r--meta-oe/recipes-graphics/slim/slim_1.3.2.bb82
-rwxr-xr-xmeta-oe/recipes-graphics/wayland/wayland-fits_git.bb35
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch153
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb22
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch41
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch29
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch48
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch35
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch279
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch29
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb25
-rw-r--r--meta-oe/recipes-kernel/ktap/ktap-module_git.bb22
-rw-r--r--meta-oe/recipes-kernel/ktap/ktap.inc26
-rw-r--r--meta-oe/recipes-kernel/ktap/ktap_git.bb19
-rw-r--r--meta-oe/recipes-multimedia/minidlna/minidlna.inc39
-rw-r--r--meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb6
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch26
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch136
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb159
-rw-r--r--meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb114
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb56
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch52
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb24
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb20
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch53
-rw-r--r--meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb20
-rw-r--r--meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch11
-rw-r--r--meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb33
-rw-r--r--meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb42
-rw-r--r--meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch16
-rw-r--r--meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch104
-rw-r--r--meta-oe/recipes-support/emacs/emacs.inc147
-rw-r--r--meta-oe/recipes-support/emacs/emacs_23.4.bb12
-rw-r--r--meta-oe/recipes-support/farsight/farsight2_0.0.22.bb34
-rw-r--r--meta-oe/recipes-support/fftw/benchfft_3.1.bb21
-rw-r--r--meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch12
-rw-r--r--meta-oe/recipes-support/flite/flite-alsa_1.3.bb21
-rw-r--r--meta-oe/recipes-support/flite/flite.inc33
-rw-r--r--meta-oe/recipes-support/iksemel/iksemel_1.4.bb19
-rw-r--r--meta-oe/recipes-support/libdbi/libdbi-drivers.inc51
-rw-r--r--meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb8
-rw-r--r--meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch12
-rw-r--r--meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch11
-rw-r--r--meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch16
-rw-r--r--meta-oe/recipes-support/libetpan/libetpan_0.57.bb30
-rw-r--r--meta-oe/recipes-support/ode/ode/configure.patch13
-rw-r--r--meta-oe/recipes-support/ode/ode_0.13.bb31
-rw-r--r--meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb21
-rw-r--r--meta-oe/recipes-support/opencv/opencv-samples_2.4.bb41
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch49
-rw-r--r--meta-oe/recipes-support/opencv/opencv_2.4.bb106
-rw-r--r--meta-oe/recipes-support/openmotif/openmotif/configure.patch15
-rw-r--r--meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb48
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb115
-rw-r--r--meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch26
-rw-r--r--meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch148
-rw-r--r--meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch118
-rw-r--r--meta-oe/recipes-support/psqlodbc/psqlodbc.inc50
-rw-r--r--meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb16
-rw-r--r--meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb20
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb72
-rw-r--r--meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch11
-rw-r--r--meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch78
-rw-r--r--meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch44
-rw-r--r--meta-oe/recipes-support/xchat/xchat_2.8.8.bb39
-rw-r--r--meta-python/recipes-extended/python-meh/files/tweak-native-language-support.patch44
-rw-r--r--meta-ruby/recipes-devtools/ruby/bundler_git.bb33
410 files changed, 0 insertions, 30810 deletions
diff --git a/meta-efl/conf/distro/include/efl-from-svn-recipes.inc b/meta-efl/conf/distro/include/efl-from-svn-recipes.inc
deleted file mode 100644
index 23a8eaeca..000000000
--- a/meta-efl/conf/distro/include/efl-from-svn-recipes.inc
+++ /dev/null
@@ -1,43 +0,0 @@
1EFL_PREFERRED_VERSION ?= "1.7.4+svn%"
2EFL_PREFERRED_PYTHON_VERSION ?= "1.7.0+svn%"
3
4PREFERRED_VERSION_e-wm ?= "0.17.0+svnr%"
5
6PREFERRED_VERSION_ecore ?= "${EFL_PREFERRED_VERSION}"
7PREFERRED_VERSION_ecore-native ?= "${EFL_PREFERRED_VERSION}"
8PREFERRED_VERSION_edbus ?= "${EFL_PREFERRED_VERSION}"
9PREFERRED_VERSION_edbus-native ?= "${EFL_PREFERRED_VERSION}"
10PREFERRED_VERSION_edje ?= "${EFL_PREFERRED_VERSION}"
11PREFERRED_VERSION_edje-native ?= "${EFL_PREFERRED_VERSION}"
12PREFERRED_VERSION_edje-nativesdk ?= "${EFL_PREFERRED_VERSION}"
13PREFERRED_VERSION_eeze ?= "${EFL_PREFERRED_VERSION}"
14PREFERRED_VERSION_eeze-native ?= "${EFL_PREFERRED_VERSION}"
15PREFERRED_VERSION_efreet ?= "${EFL_PREFERRED_VERSION}"
16PREFERRED_VERSION_efreet-native ?= "${EFL_PREFERRED_VERSION}"
17PREFERRED_VERSION_eina ?= "${EFL_PREFERRED_VERSION}"
18PREFERRED_VERSION_eina-native ?= "${EFL_PREFERRED_VERSION}"
19PREFERRED_VERSION_embryo ?= "${EFL_PREFERRED_VERSION}"
20PREFERRED_VERSION_embryo-native ?= "${EFL_PREFERRED_VERSION}"
21PREFERRED_VERSION_evas ?= "${EFL_PREFERRED_VERSION}"
22PREFERRED_VERSION_evas-generic-loaders ?= "${EFL_PREFERRED_VERSION}"
23PREFERRED_VERSION_evas-native ?= "${EFL_PREFERRED_VERSION}"
24PREFERRED_VERSION_expedite ?= "${EFL_PREFERRED_VERSION}"
25PREFERRED_VERSION_expedite-native ?= "${EFL_PREFERRED_VERSION}"
26
27PREFERRED_VERSION_eet ?= "${EFL_PREFERRED_VERSION}"
28PREFERRED_VERSION_eet-native ?= "${EFL_PREFERRED_VERSION}"
29
30PREFERRED_VERSION_eio ?= "${EFL_PREFERRED_VERSION}"
31PREFERRED_VERSION_eio-native ?= "${EFL_PREFERRED_VERSION}"
32PREFERRED_VERSION_emotion ?= "${EFL_PREFERRED_VERSION}"
33PREFERRED_VERSION_ethumb ?= "${EFL_PREFERRED_VERSION}"
34PREFERRED_VERSION_elementary ?= "${EFL_PREFERRED_VERSION}"
35
36PREFERRED_VERSION_python-elementary ?= "${EFL_PREFERRED_PYTHON_VERSION}"
37PREFERRED_VERSION_python-ecore ?= "${EFL_PREFERRED_PYTHON_VERSION}"
38PREFERRED_VERSION_python-edbus ?= "${EFL_PREFERRED_PYTHON_VERSION}"
39PREFERRED_VERSION_python-edje ?= "${EFL_PREFERRED_PYTHON_VERSION}"
40PREFERRED_VERSION_python-emotion ?= "${EFL_PREFERRED_PYTHON_VERSION}"
41PREFERRED_VERSION_python-evas ?= "${EFL_PREFERRED_PYTHON_VERSION}"
42
43PREFERRED_VERSION_terminology ?= "0.2.0+svn%"
diff --git a/meta-efl/recipes-devtools/python/python-edbus.inc b/meta-efl/recipes-devtools/python/python-edbus.inc
deleted file mode 100644
index cc6008387..000000000
--- a/meta-efl/recipes-devtools/python/python-edbus.inc
+++ /dev/null
@@ -1,46 +0,0 @@
1DESCRIPTION = "${PN} bindings"
2LICENSE = "LGPLv2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
4AUTHOR = "Gustavo Sverzut Barbieri <barbieri@gmail.com>"
5# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython,
6# we need to build pyrex otherwise cython doesn't get called to build
7# the extension modules.
8DEPENDS = "python-cython-native python-pyrex-native python-numeric eina edbus python-dbus"
9RDEPENDS_${PN} += "python-lang python-dbus"
10
11inherit e-base autotools pkgconfig distutils-base
12
13SRCNAME = "python-e_dbus"
14SRCVER = "${PV}"
15
16SRC_URI = "\
17 ${E_MIRROR}/BINDINGS/python/${SRCNAME}-${SRCVER}.tar.bz2 \
18"
19S = "${WORKDIR}/${SRCNAME}-${SRCVER}"
20
21
22do_configure_prepend() {
23 # prefix CYTHON_.*_INCLUDEDIR with path to STAGING_DIR_HOST also use $PKG_CONFIG instead of pkg-config directly
24 sed -i "s#=\`\$PKG_CONFIG --variable=includedir \"python-evas#=${STAGING_DIR_HOST}\`\$PKG_CONFIG --variable=includedir \"python-evas#g" ${S}/configure.ac
25}
26
27do_install_append() {
28 if [ -e examples ]; then
29 for i in `find examples -name "*.edc"`; do
30 cd ${S}/`dirname $i`
31 echo "Generating .edj file for $i..."
32 edje_cc `basename $i`
33 echo "Removing sources in this directory..."
34 rm -f *.edc *.png *.ttf *.jpeg
35 done
36 cd ${S}
37 install -d ${D}${datadir}/${PN}/
38 cp -R --no-dereference --preserve=mode,links -v examples ${D}${datadir}/${PN}/
39 find ${D}${datadir}/${PN}/examples -name ".svn" | xargs rm -rf
40 fi
41}
42
43FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug"
44
45PACKAGES += "${PN}-examples"
46FILES_${PN}-examples = "${datadir}/${PN}/examples"
diff --git a/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb b/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb
deleted file mode 100644
index bfacf897f..000000000
--- a/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
1require ${BPN}.inc
2
3PR = "r1"
4
5SRC_URI[md5sum] = "40b479444bb06147429a276127981890"
6SRC_URI[sha256sum] = "78e5ca334ee25185748660b4e612f984f4d3bced018f062278701429868f117b"
7
8PNBLACKLIST[python-edbus] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130600/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-devtools/python/python-efl.inc b/meta-efl/recipes-devtools/python/python-efl.inc
deleted file mode 100644
index 6837dab9f..000000000
--- a/meta-efl/recipes-devtools/python/python-efl.inc
+++ /dev/null
@@ -1,71 +0,0 @@
1DESCRIPTION = "${PN} bindings"
2
3LICENSE = "LGPL-3.0"
4LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
5# there is also GPLv3.0 in COPYING;md5=d32239bcb673463ab874e80d47fae504 but no file seems to use that
6
7AUTHOR = "Gustavo Sverzut Barbieri <barbieri@gmail.com>"
8# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython,
9# we need to build pyrex otherwise cython doesn't get called to build
10# the extension modules.
11DEPENDS = "python-cython-native python-pyrex-native python-numeric python-dbus lua efl elementary"
12RDEPENDS_${PN} += "python-lang"
13
14PROVIDES = "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas"
15
16inherit e-base distutils pkgconfig
17
18SRCVER = "${PV}"
19
20SRC_URI = "\
21 ${E_RELEASES}/bindings/python/${SRCNAME}-${SRCVER}.tar.gz \
22"
23S = "${WORKDIR}/${SRCNAME}-${SRCVER}"
24
25do_install_append() {
26 # drop all .pyo, pyc files
27 find ${D}${libdir}/${PYTHON_DIR}/site-packages -name \*.pyo -o -name \*.pyc | xargs rm -f
28}
29
30PACKAGES += "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas python-ethumb ${PN}-examples"
31
32FILES_${PN} = " \
33 ${libdir}/${PYTHON_DIR}/site-packages/python_efl*egg-info \
34 ${libdir}/${PYTHON_DIR}/site-packages/efl/eo.so \
35 ${libdir}/${PYTHON_DIR}/site-packages/efl/utils \
36 ${libdir}/${PYTHON_DIR}/site-packages/efl/__init__.py \
37"
38FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug"
39FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/*/*.la"
40
41FILES_${PN}-examples = "${datadir}/${PN}/examples"
42
43FILES_python-ecore = " \
44 ${libdir}/${PYTHON_DIR}/site-packages/ecore/ \
45 ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore*.so \
46 ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore \
47"
48FILES_python-eldbus = " \
49 ${libdir}/${PYTHON_DIR}/site-packages/e_dbus/ \
50 ${libdir}/${PYTHON_DIR}/site-packages/efl/dbus_mainloop.so \
51"
52FILES_python-edje = " \
53 ${libdir}/${PYTHON_DIR}/site-packages/edje/ \
54 ${libdir}/${PYTHON_DIR}/site-packages/efl/edje*.so \
55"
56FILES_python-elementary = " \
57 ${libdir}/${PYTHON_DIR}/site-packages/elementary/ \
58 ${libdir}/${PYTHON_DIR}/site-packages/efl/elementary/ \
59"
60FILES_python-emotion = " \
61 ${libdir}/${PYTHON_DIR}/site-packages/emotion/ \
62 ${libdir}/${PYTHON_DIR}/site-packages/efl/emotion.so \
63"
64FILES_python-evas = " \
65 ${libdir}/${PYTHON_DIR}/site-packages/evas/ \
66 ${libdir}/${PYTHON_DIR}/site-packages/efl/evas.so \
67"
68FILES_python-ethumb = " \
69 ${libdir}/${PYTHON_DIR}/site-packages/ethumb/ \
70 ${libdir}/${PYTHON_DIR}/site-packages/efl/ethumb*so \
71"
diff --git a/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb b/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb
deleted file mode 100644
index e9a79b252..000000000
--- a/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI[md5sum] = "f7c5d557336ea9df69bcca09c420711a"
4SRC_URI[sha256sum] = "11e607b465cb66dafe05c66e02d61e09335b370fe9fd2a74d88282b3ee597bcc"
5
6PNBLACKLIST[python-efl] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-devtools/python/python-efl_git.bb b/meta-efl/recipes-devtools/python/python-efl_git.bb
deleted file mode 100644
index 292b9eb87..000000000
--- a/meta-efl/recipes-devtools/python/python-efl_git.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require ${BPN}.inc
2
3SRCREV = "71ed20ebf662a7b72e60913df94ce6933236bf09"
4PV = "1.12.0+git${SRCPV}"
5DEFAULT_PREFERENCE = "-1"
6
7SRC_URI = "git://git.enlightenment.org/bindings/python/${BPN}.git;branch=python-efl-1.12"
8
9S = "${WORKDIR}/git"
10
11PNBLACKLIST[python-efl] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/cpu/configure.patch b/meta-efl/recipes-efl/e17/cpu/configure.patch
deleted file mode 100644
index 87c85de9f..000000000
--- a/meta-efl/recipes-efl/e17/cpu/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: cpu/configure.ac
2===================================================================
3--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000
4+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/cpu_svn.bb b/meta-efl/recipes-efl/e17/cpu_svn.bb
deleted file mode 100644
index 3ffb9889f..000000000
--- a/meta-efl/recipes-efl/e17/cpu_svn.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
3 file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e"
4
5PV = "0.0.1+svnr${SRCREV}"
6PR = "${INC_PR}.0"
7
8require e-module.inc
9
10SRC_URI += "file://configure.patch"
11
12PNBLACKLIST[cpu] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/diskio_svn.bb b/meta-efl/recipes-efl/e17/diskio_svn.bb
deleted file mode 100644
index 4f778d6e1..000000000
--- a/meta-efl/recipes-efl/e17/diskio_svn.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
3 file://COPYING-PLAIN;md5=68be76d8126face2fbbecdf1bcbe2b10"
4
5PV = "0.0.1+svnr${SRCPV}"
6PR = "${INC_PR}.0"
7
8PNBLACKLIST[diskio] ?= "broken: switch to https://git.enlightenment.org/enlightenment/modules/diskio.git/ and fix 0.0.1+svnr82070-r0.0/E-MODULES-EXTRA/diskio/e-module-diskio.edc:58. invalid state name: 'off'. "default" state must always be first. - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9
10require e-module.inc
diff --git a/meta-efl/recipes-efl/e17/e-module.inc b/meta-efl/recipes-efl/e17/e-module.inc
deleted file mode 100644
index 770f794aa..000000000
--- a/meta-efl/recipes-efl/e17/e-module.inc
+++ /dev/null
@@ -1,19 +0,0 @@
1DESCRIPTION = "E17 ${PN} module"
2SECTION = "x11/multimedia"
3DEPENDS = "e-wm"
4
5SRCREV = "${EFL_SRCREV}"
6INC_PR = "r0"
7
8SRCNAME = "E-MODULES-EXTRA/${BPN}"
9
10inherit e gettext
11SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
12S = "${WORKDIR}/${SRCNAME}"
13
14EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
15
16FILES_${PN} += "${libdir}/enlightenment/modules/${PN}"
17FILES_${PN}-dbg += "${libdir}/enlightenment/modules/${PN}/*/.debug"
18FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/${PN}/*/*.a"
19
diff --git a/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch b/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch
deleted file mode 100644
index f92a772fe..000000000
--- a/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch
+++ /dev/null
@@ -1,204 +0,0 @@
1From 37223289b3d85ea8876e7ba7c9ff97ec428073ba Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 22 Feb 2014 14:36:38 +0100
4Subject: [PATCH] dbus-stuff: Convert to eldbus
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 configure.ac | 2 +-
9 src/Makefile.am | 2 +-
10 src/dbus-stuff.c | 95 ++++++++++++++++++++++++++++++++------------------------
11 src/dbus-stuff.h | 13 ++------
12 src/main.c | 2 +-
13 5 files changed, 61 insertions(+), 53 deletions(-)
14
15diff --git a/configure.ac b/configure.ac
16index b3e4d12..4ace32a 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -15,7 +15,7 @@ AC_HEADER_STDC
20
21 AM_PROG_LIBTOOL
22
23-PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 edbus sqlite3])
24+PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 eldbus sqlite3])
25
26 AC_OUTPUT([
27 Makefile
28diff --git a/src/Makefile.am b/src/Makefile.am
29index 2143dc9..31d5253 100644
30--- a/src/Makefile.am
31+++ b/src/Makefile.am
32@@ -8,7 +8,7 @@ AM_CPPFLAGS = \
33 $(TASKS_CFLAGS)
34
35 AM_CFLAGS =\
36- $(EDBUS_CFLAGS) \
37+ $(ELDBUS_CFLAGS) \
38 -Wall\
39 -g
40
41diff --git a/src/dbus-stuff.c b/src/dbus-stuff.c
42index 50809bc..9f02ef3 100644
43--- a/src/dbus-stuff.c
44+++ b/src/dbus-stuff.c
45@@ -1,8 +1,7 @@
46 /***************************************************************************
47 * dbus-stuff.c
48 *
49- * Copyright 2009 cchandel
50- * <cchandel@yahoo.com>
51+ * Copyright 2009 cchandel <cchandel@yahoo.com>
52 ****************************************************************************/
53
54 /*
55@@ -21,51 +20,67 @@
56 * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
57 */
58 #include "dbus-stuff.h"
59-#include <string.h>
60-#include <E_DBus.h>
61-#include <Elementary.h>
62+#include "Eldbus.h"
63
64-void occupy_cpu(void)
65+void on_usage_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
66+{
67+ const char *errname, *errmsg;
68+ if (eldbus_message_error_get(msg, &errname, &errmsg))
69+ fprintf(stderr, "Error: %s %s\n", errname, errmsg);
70+}
71+
72+int ousaged_resource(const char *resource, int used)
73 {
74- e_dbus_init();
75- conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
76-
77- DBusMessage *msg;
78- msg = dbus_message_new_method_call(
79- "org.freesmartphone.ousaged",
80- "/org/freesmartphone/Usage",
81- "org.freesmartphone.Usage",
82- "RequestResource"
83- );
84-
85- const char *resource = "CPU";
86- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID);
87+ eldbus_init();
88+ const char *REQUEST = "RequestResource";
89+ const char *RELEASE = "ReleaseResource";
90+ const int PREQUEST = 1;
91
92- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL);
93- dbus_message_unref(msg);
94-}
95+ Eldbus_Connection *conn;
96+ Eldbus_Object *obj;
97+ Eldbus_Proxy *usage;
98+ Eldbus_Pending *pending;
99+ conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM);
100+ if (!conn)
101+ {
102+ fprintf(stderr, "Error: could not get system bus\n");
103+ return EXIT_FAILURE;
104+ }
105
106-void release_cpu(void)
107-{
108- DBusMessage *msg;
109- msg = dbus_message_new_method_call(
110- "org.freesmartphone.ousaged",
111- "/org/freesmartphone/Usage",
112- "org.freesmartphone.Usage",
113- "ReleaseResource"
114- );
115-
116- const char *resource = "CPU";
117- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID);
118+ obj = eldbus_object_get(conn, "org.freesmartphone.ousaged", "/org/freesmartphone/Usage");
119+ if (!obj)
120+ {
121+ fprintf(stderr, "Error: could not get object\n");
122+ return EXIT_FAILURE;
123+ }
124
125- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL);
126- dbus_message_unref(msg);
127+ usage = eldbus_proxy_get(obj, "org.freesmartphone.Usage");
128+ if (!usage)
129+ {
130+ fprintf(stderr, "Error: could not get proxy\n");
131+ return EXIT_FAILURE;
132+ }
133+
134+ pending = eldbus_proxy_call(usage, used == PREQUEST ? REQUEST : RELEASE, on_usage_cb, NULL, -1, "ss", resource);
135+ if (!pending)
136+ {
137+ fprintf(stderr, "Error: could not call\n");
138+ return EXIT_FAILURE;
139+ }
140+ eldbus_proxy_unref(usage);
141+ eldbus_object_unref(obj);
142+ eldbus_connection_unref(conn);
143+
144+ eldbus_shutdown();
145+ return EXIT_SUCCESS;
146 }
147
148-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error)
149+int request_cpu(void)
150 {
151- if (dbus_error_is_set(error)) {
152- printf("Error: %s - %s\n", error->name, error->message);
153- }
154+ return ousaged_resource("CPU", 1);
155 }
156
157+int release_cpu(void)
158+{
159+ return ousaged_resource("CPU" , 0);
160+}
161diff --git a/src/dbus-stuff.h b/src/dbus-stuff.h
162index 83d4778..a3c72cb 100644
163--- a/src/dbus-stuff.h
164+++ b/src/dbus-stuff.h
165@@ -2,8 +2,7 @@
166 * dbus.h
167 *
168 * Fri Mar 6 12:32:57 2009
169- * Copyright 2009 nidhin
170- * <nidhin@nids-laptop.home>
171+ * Copyright 2009 nidhin <nidhin@nids-laptop.home>
172 ****************************************************************************/
173
174 /*
175@@ -22,11 +21,5 @@
176 * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
177 */
178
179-#include <E_DBus.h>
180-#include <Elementary.h>
181-
182-void occupy_cpu(void);
183-void release_cpu(void);
184-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error);
185-
186-E_DBus_Connection *conn;
187+int request_cpu(void);
188+int release_cpu(void);
189diff --git a/src/main.c b/src/main.c
190index 92d21de..4e4bbe2 100644
191--- a/src/main.c
192+++ b/src/main.c
193@@ -76,7 +76,7 @@ elm_main(int argc, char **argv)
194 //restore state
195 restore_state();
196
197- occupy_cpu();
198+ request_cpu();
199
200 elm_run();
201 //clean up stuff
202--
2031.8.5.3
204
diff --git a/meta-efl/recipes-efl/e17/e-tasks_git.bb b/meta-efl/recipes-efl/e17/e-tasks_git.bb
deleted file mode 100644
index 7eab6d0f0..000000000
--- a/meta-efl/recipes-efl/e17/e-tasks_git.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1SUMMARY = "e-tasks is a todo program for Openmoko phones"
2HOMEPAGE = "http://code.google.com/p/e-tasks/"
3AUTHOR = "cchandel"
4LICENSE = "GPLv3"
5LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
6SECTION = "e/apps"
7DEPENDS = "elementary eina eldbus sqlite3"
8
9inherit autotools
10
11SRCREV = "890f5ee37d1a5fd1ceb2495950d15151d4cf756b"
12PV = "0.0.2+gitr${SRCPV}"
13
14SRC_URI = "git://github.com/shr-project/e-tasks.git"
15SRC_URI += "file://0001-dbus-stuff-Convert-to-eldbus.patch"
16
17S = "${WORKDIR}/git"
18
19do_install_append() {
20 install -d "${D}/${datadir}/pixmaps"
21 install -m 0644 "${S}/resources/e-tasks.png" "${D}/${datadir}/pixmaps"
22 install -d "${D}/${datadir}/applications"
23 install -m 0644 "${S}/resources/e-tasks.desktop" "${D}/${datadir}/applications"
24 install -d "${D}/${datadir}/e-tasks"
25 for ico in "${S}/resources/"*.png; do
26 if [ "$(basename $ico)" != "e-tasks.png" ]; then
27 install -m 0644 $ico "${D}/${datadir}/e-tasks"
28 fi
29 done
30}
31
32FILES_${PN} += "/usr/share/e-tasks/* /usr/share/applications/* /usr/share/pixmaps/*"
33
34PNBLACKLIST[e-tasks] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb b/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb
deleted file mode 100644
index 9e6e9f24e..000000000
--- a/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb
+++ /dev/null
@@ -1,37 +0,0 @@
1DESCRIPTION = "b-and-w theme was default E17 theme before alpha3 and some people still prefers it."
2SECTION = "e/utils"
3DEPENDS = "edje-native"
4RDEPENDS_${PN} = "e-wm"
5LICENSE = "MIT & BSD"
6# upstream was asked to include license infor in THEME dir
7LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
8
9inherit allarch
10
11SRCREV = "${EFL_SRCREV}"
12PV = "0.0+svnr${SRCPV}"
13
14inherit e-base
15
16SRCNAME = "b_and_w"
17SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http"
18S = "${WORKDIR}/${SRCNAME}/e"
19
20do_compile() {
21 # unfortunately hardcoded edje_cc in Makefile
22 sed -i "s#\tedje_cc#\t${STAGING_BINDIR_NATIVE}/edje_cc#g" Makefile
23 make
24}
25
26do_install() {
27 install -d ${D}${datadir}/enlightenment/data/themes/
28 install -m 0644 ${S}/b_and_w.edj ${D}${datadir}/enlightenment/data/themes/
29}
30
31FILES_${PN} = "${datadir}/enlightenment/data/themes/"
32
33PNBLACKLIST[e-wm-theme-b-and-w] ?= "Runtime depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
34
35PNBLACKLIST[e-wm-theme-b-and-w] ?= "Runtime depends on blacklisted e-wm-theme-b-and-w - the recipe will be removed on 2017-09-01 unless the issue is fixed"
36
37PNBLACKLIST[e-wm-theme-b-and-w] ?= "Runtime depends on blacklisted e-wm-theme-b-and-w-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE b/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE
deleted file mode 100644
index 61bb2f603..000000000
--- a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
1Copyright notice for Enlightenment:
2
3Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb b/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb
deleted file mode 100644
index 521213475..000000000
--- a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb
+++ /dev/null
@@ -1,39 +0,0 @@
1DESCRIPTION = "efenniht illume theme - Efenniht was devised to be clean \
2and neutral. Its name (which means equinox) comes from the chromatic duality \
3that was decided at the very beginning, with a dark theme (black and orange) \
4and a bright one (white and blue) to be developed so that more people feel \
5comfortable using it. Efenniht uses few animations, discrete contrasts between \
6shades of gray and fine lines (colored) that outline the selected elements."
7SECTION = "e/utils"
8HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht"
9DEPENDS = "edje-native"
10RDEPENDS_${PN} = "e-wm"
11RSUGGESTS_${PN} = "elementary-theme-efenniht"
12LICENSE = "MIT & BSD"
13LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2"
14
15SRCREV = "${EFL_SRCREV}"
16PV = "0.0+svnr${SRCPV}"
17
18inherit e-base allarch
19
20SRCNAME = "efenniht"
21SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \
22 file://LICENSE \
23"
24S = "${WORKDIR}/${SRCNAME}"
25
26do_compile() {
27 ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images ${S}/efenniht.edc -o ${S}/efenniht.edj
28}
29
30do_install() {
31 install -d ${D}${datadir}/enlightenment/data/themes/
32 install -m 0644 ${S}/efenniht.edj ${D}${datadir}/enlightenment/data/themes/
33}
34
35FILES_${PN} = "${datadir}/enlightenment/data/themes/"
36
37PNBLACKLIST[e-wm-theme-illume-efenniht] ?= "Runtime depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
38
39PNBLACKLIST[e-wm-theme-illume-efenniht] ?= "Runtime depends on blacklisted e-wm-theme-illume-efenniht - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/e-wm.inc b/meta-efl/recipes-efl/e17/e-wm.inc
deleted file mode 100644
index a6e964b55..000000000
--- a/meta-efl/recipes-efl/e17/e-wm.inc
+++ /dev/null
@@ -1,200 +0,0 @@
1DESCRIPTION = "The Enlightenment Window Manager Version 17"
2DEPENDS = "eet evas eina ecore edje efreet edbus eeze eio elementary libxcb xcb-util-keysyms"
3LICENSE = "MIT & BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d"
5SRCNAME = "e"
6
7inherit e update-alternatives gettext pkgconfig
8S = "${WORKDIR}/${SRCNAME}"
9
10PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
11PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
12PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
13
14EXTRA_OECONF = "\
15 --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
16 --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \
17 --x-includes=${STAGING_INCDIR}/X11 \
18 --x-libraries=${STAGING_LIBDIR} \
19 --enable-simple-x11 \
20"
21
22do_configure_prepend() {
23 autopoint || true
24 sed '/^ *EFL_PKG_CHECK_VAR/ s/systemduserunitdir/systemdsystemunitdir/g' -i ${S}/configure.ac
25}
26
27do_install_append() {
28 # customising - should rather make this simple upstream
29 install -m 755 ${WORKDIR}/enlightenment_start.oe ${D}/${bindir}
30
31 # security reasons, e-wm checks that in runtime
32 # xinit[418]: ERROR: CONFIGURATION FILE HAS BAD PERMISSIONS
33 chmod 600 ${D}/${sysconfdir}/enlightenment/sysactions.conf
34
35 install -d ${D}/${sysconfdir}/xdg/menus
36 install -m 644 ${WORKDIR}/applications.menu ${D}/${sysconfdir}/xdg/menus/
37 for I in `find ${D}/${libdir}/enlightenment -name "*.a" -print`; do rm -f $I; done
38 for I in `find ${D}/${libdir}/enlightenment -name "*.la" -print`; do rm -f $I; done
39
40 # work around for issue caused in r78978, more infor in:
41 # http://sourceforge.net/mailarchive/forum.php?thread_name=20121118194904.GA3438%40jama.jama.net&forum_name=enlightenment-devel
42 mv ${D}/${libdir}/enlightenment/modules/policies ${D}/${libdir}/enlightenment/modules/illume2/ \
43 || echo "illume2 policies are in correct place now"
44 mv ${D}/${libdir}/enlightenment/modules/keyboards ${D}/${libdir}/enlightenment/modules/illume2/ \
45 || echo "illume2 keyboards are in correct place now"
46}
47
48RDEPENDS_${PN} += "\
49 shared-mime-info \
50 mime-support \
51 setxkbmap \
52 edje-utils \
53 ${PN}-utils \
54 dbus-x11 \
55"
56
57# Uclibc build don't have 'glibc-utils'
58RDEPENDS_${PN}_append_libc-glibc = " glibc-utils "
59
60# The systray module used to be external, but is part of e-wm now
61RREPLACES_${PN} = "systray"
62
63RREPLACES_${PN}-config-mobile = "${PN}-config-illume2"
64RCONFLICTS_${PN}-config-mobile = "${PN}-config-illume2"
65RPROVIDES_${PN}-config-mobile = "${PN}-config-illume2"
66
67PACKAGES =+ "\
68 ${PN}-config-default \
69 ${PN}-config-mobile \
70 ${PN}-config-minimalist \
71 ${PN}-config-netbook \
72 ${PN}-config-scaleable \
73 ${PN}-config-standard \
74 ${PN}-config-tiling \
75 ${PN}-theme-default \
76 ${PN}-background-dark-gradient \
77 ${PN}-background-light-gradient \
78 ${PN}-backgrounds \
79 ${PN}-images \
80 ${PN}-icons \
81 ${PN}-other \
82 ${PN}-input-methods \
83 ${PN}-sysactions \
84 ${PN}-utils \
85 ${PN}-menu \
86 efm-desktop-icon \
87 illume-keyboard-default-alpha \
88 illume-keyboard-default-numeric \
89 illume-keyboard-default-terminal \
90"
91
92ESYSACTIONS ?= "${PN}-sysactions"
93
94RRECOMMENDS_${PN} = "\
95 ${PN}-config-default \
96 ${PN}-images \
97 ${PN}-icons \
98 ${PN}-other \
99 ${PN}-input-methods \
100 ${ESYSACTIONS} \
101 efreet \
102 evas-generic-loader-svg \
103"
104
105FILES_${PN} = "\
106 ${bindir}/* \
107 ${libdir}/enlightenment/utils/* \
108 ${libdir}/enlightenment/modules/*/*.* \
109 ${libdir}/enlightenment/modules/*/*/* \
110 ${libdir}/enlightenment/modules/*/*/.order \
111 ${libdir}/enlightenment/modules/keyboards/ignore_built_in_keyboards \
112 ${libdir}/enlightenment/*plugins/*/*/* \
113 ${libdir}/enlightenment/preload/e_precache.so \
114 ${datadir}/enlightenment/data/icons \
115 ${datadir}/enlightenment/data/favorites \
116 ${datadir}/enlightenment/data/input_methods \
117 ${datadir}/enlightenment/data/config/profile.cfg \
118 ${datadir}/enlightenment/AUTHORS \
119 ${datadir}/enlightenment/COPYING \
120 ${datadir}/xsessions/enlightenment.desktop \
121 ${sysconfdir}/xdg \
122 ${systemd_unitdir} \
123"
124
125FILES_${PN}-config-default = "${datadir}/enlightenment/data/config/default"
126FILES_${PN}-config-mobile = "${datadir}/enlightenment/data/config/mobile"
127FILES_${PN}-config-minimalist = "${datadir}/enlightenment/data/config/minimalist"
128FILES_${PN}-config-netbook = "${datadir}/enlightenment/data/config/netbook"
129FILES_${PN}-config-scaleable = "${datadir}/enlightenment/data/config/scaleable"
130FILES_${PN}-config-standard = "${datadir}/enlightenment/data/config/standard"
131FILES_${PN}-config-tiling = "${datadir}/enlightenment/data/config/tiling"
132FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj"
133FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj"
134FILES_${PN}-background-dark-gradient = "${datadir}/enlightenment/data/backgrounds/Dark_Gradient.edj"
135FILES_${PN}-background-light-gradient = "${datadir}/enlightenment/data/backgrounds/Light_Gradient.edj"
136FILES_${PN}-backgrounds = "${datadir}/enlightenment/data/backgrounds/*.edj"
137FILES_${PN}-images = "${datadir}/enlightenment/data/images ${datadir}/enlightenment/data/flags"
138FILES_${PN}-icons = "${datadir}/enlightenment/data/icons"
139FILES_${PN}-other = "${datadir}/enlightenment/data/other"
140FILES_${PN}-input-methods = "${datadir}/enlightenment/data/input_methods"
141FILES_${PN}-sysactions = "${sysconfdir}/enlightenment/sysactions.conf"
142FILES_${PN}-utils = "${libdir}/enlightenment/utils/*"
143FILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu"
144
145FILES_efm-desktop-icon = "\
146 ${datadir}/applications/efm.desktop \
147 ${datadir}/applications/enlightenment_filemanager.desktop \
148 ${datadir}/icons/e-module-fileman.png \
149"
150
151KEYBOARDS_DIR="${libdir}/enlightenment/modules/illume-keyboard/keyboards"
152FILES_illume-keyboard-default-alpha = "\
153 ${KEYBOARDS_DIR}/Default.kbd \
154 ${KEYBOARDS_DIR}/alpha.png \
155"
156FILES_illume-keyboard-default-numeric = "\
157 ${KEYBOARDS_DIR}/Numbers.kbd \
158 ${KEYBOARDS_DIR}/numeric.png \
159"
160FILES_illume-keyboard-default-terminal = "\
161 ${KEYBOARDS_DIR}/Terminal.kbd \
162 ${KEYBOARDS_DIR}/qwerty.png \
163"
164
165RRECOMMENDS_${PN}-config-default = "${PN}-theme-default"
166RRECOMMENDS_${PN}-config-mobile = "\
167 illume-keyboard-default-alpha \
168 illume-keyboard-default-numeric \
169 illume-keyboard-default-terminal \
170"
171
172RRECOMMENDS_${PN}-config-minimalist = "\
173 ${PN}-background-light-gradient \
174 ${PN}-theme-default \
175"
176RRECOMMENDS_${PN}-config-netbook = "\
177 ${PN}-background-dark-gradient \
178 ${PN}-theme-default \
179"
180RRECOMMENDS_${PN}-config-scaleable = "${PN}-theme-default"
181RRECOMMENDS_${PN}-config-standard = "${PN}-theme-default"
182
183FILES_${PN}-dbg += "\
184 ${libdir}/enlightenment/modules/*/*/.debug/ \
185 ${libdir}/enlightenment/modules/policies/.debug/ \
186 ${libdir}/enlightenment/preload/.debug/ \
187 ${libdir}/enlightenment/utils/.debug/ \
188 ${libdir}/enlightenment/*plugins/*/*/.debug \
189"
190
191FILES_${PN}-doc += "\
192 ${datadir}/enlightenment/doc \
193"
194
195CONFFILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu"
196CONFFILES_${PN}-sysactions = "/etc/enlightenment/sysactions.conf"
197
198ALTERNATIVE_${PN} = "x-window-manager"
199ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/enlightenment_start.oe"
200ALTERNATIVE_PRIORITY[x-window-manager] = "16"
diff --git a/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch b/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch
deleted file mode 100644
index e718ef3db..000000000
--- a/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 0aef43c9cd1656413cf2eb3dc7c19b355ee7ed52 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sun, 1 Jun 2014 14:45:49 +0200
4Subject: [PATCH] Fix incorrect message type
5
6Upstream-Status: Pending
7
8Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
9---
10 src/bin/e_desk.c | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c
14index b156e19..77d7520 100644
15--- a/src/bin/e_desk.c
16+++ b/src/bin/e_desk.c
17@@ -221,7 +221,7 @@ e_desk_show(E_Desk *desk)
18 E_Event_Desk_Show *ev;
19 E_Event_Desk_Before_Show *eev;
20 E_Event_Desk_After_Show *eeev;
21- Edje_Message_Float_Set *msg;
22+ Edje_Message_Int_Set *msg;
23 Eina_List *l;
24 E_Shelf *es;
25 int was_zone = 0, x, y, dx = 0, dy = 0;
26--
271.8.3.2
28
diff --git a/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch b/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch
deleted file mode 100644
index c7a574c90..000000000
--- a/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 19e59b6e8148388e7a17f10d4390176a50e2917f Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 25 Aug 2014 16:06:03 +0200
4Subject: [PATCH] configure.ac: add foreign
5
6* fixes:
7 | configure.ac:312: error: required file './ABOUT-NLS' not found
8
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 configure.ac | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/configure.ac b/configure.ac
15index 51ad0ba..cd77739 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -34,7 +34,7 @@ AH_BOTTOM([
19 #endif /* EFL_CONFIG_H__ */
20 ])
21
22-AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability])
23+AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability foreign])
24 AM_SILENT_RULES([yes])
25
26 AC_USE_SYSTEM_EXTENSIONS
27--
282.3.0
29
diff --git a/meta-efl/recipes-efl/e17/e-wm/applications.menu b/meta-efl/recipes-efl/e17/e-wm/applications.menu
deleted file mode 100644
index ed9b90662..000000000
--- a/meta-efl/recipes-efl/e17/e-wm/applications.menu
+++ /dev/null
@@ -1,105 +0,0 @@
1<?xml version="1.0"?>
2<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://standards.freedesktop.org/menu-spec/menu-1.0.dtd">
3<Menu>
4 <Name>Applications</Name>
5 <!-- <Directory>Applications.directory</Directory> -->
6
7 <!-- Read standard .directory and .desktop file locations -->
8 <DefaultAppDirs>/usr/share/applications</DefaultAppDirs>
9 <DefaultDirectoryDirs/>
10
11 <Menu>
12 <Name>Office</Name>
13 <Directory>Office.directory</Directory>
14 <Include>
15 <And>
16 <Category>Office</Category>
17 </And>
18 </Include>
19 </Menu>
20
21 <Menu>
22 <Name>Multimedia</Name>
23 <Directory>Multimedia.directory</Directory>
24 <Include>
25 <And>
26 <Category>AudioVideo</Category>
27 </And>
28 </Include>
29 </Menu>
30
31 <Menu>
32 <Name>Graphics</Name>
33 <Directory>Graphics.directory</Directory>
34 <Include>
35 <And>
36 <Category>Graphics</Category>
37 </And>
38 </Include>
39 </Menu>
40
41 <Menu>
42 <Name>Games</Name>
43 <Directory>Games.directory</Directory>
44 <Include>
45 <And>
46 <Or>
47 <Category>Game</Category>
48 <Category>Games</Category>
49 </Or>
50 </And>
51 </Include>
52 </Menu>
53
54 <Menu>
55 <Name>Internet</Name>
56 <Directory>Internet.directory</Directory>
57 <Include>
58 <And>
59 <Or>
60 <Category>Internet</Category>
61 <Category>Network</Category>
62 </Or>
63 </And>
64 </Include>
65 </Menu>
66
67 <Menu>
68 <Name>Settings</Name>
69 <Directory>Settings.directory</Directory>
70 <Include>
71 <And>
72 <Or>
73 <Category>SystemSettings</Category>
74 <Category>Settings</Category>
75 </Or>
76 <Not>
77 <Category>System</Category>
78 </Not>
79 </And>
80 </Include>
81 </Menu>
82
83 <Menu>
84 <Name>Accessories</Name>
85 <Directory>Accessories.directory</Directory>
86 <Include>
87 <And>
88 <Or>
89 <Category>Applications</Category>
90 <Category>Utility</Category>
91 </Or>
92 <Not>
93 <Category>System</Category>
94 <Category>Office</Category>
95 <Category>Internet</Category>
96 <Category>AudioVideo</Category>
97 <Category>Graphics</Category>
98 <Category>Games</Category>
99 </Not>
100 </And>
101 </Include>
102 </Menu>
103
104</Menu>
105
diff --git a/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe b/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe
deleted file mode 100644
index ff8617275..000000000
--- a/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe
+++ /dev/null
@@ -1,9 +0,0 @@
1#!/bin/sh
2
3E_PROFILE=""
4if [ -r /etc/enlightenment/default_profile ]; then
5 . /etc/enlightenment/default_profile
6fi
7
8renice -2 -p $$
9exec enlightenment_start $E_PROFILE
diff --git a/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb b/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb
deleted file mode 100644
index ac18b59bb..000000000
--- a/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1require ${BPN}.inc
2
3SRCNAME = "enlightenment"
4
5S = "${WORKDIR}/${SRCNAME}-${PV}"
6
7SRC_URI = "\
8 ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
9 file://enlightenment_start.oe \
10 file://applications.menu \
11 file://0001-Fix-incorrect-message-type.patch \
12"
13
14SRC_URI[md5sum] = "79c9f524e1d0510061c62c4b038a8ece"
15SRC_URI[sha256sum] = "14c9bde4334d2f8b0776c6113d02b923ab159eea1cbf7013489e4f3bf37a51bb"
16
17PNBLACKLIST[e-wm] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb b/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb
deleted file mode 100644
index aa6a7b8d7..000000000
--- a/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1require ${BPN}.inc
2
3SRCNAME = "enlightenment"
4
5S = "${WORKDIR}/${SRCNAME}-${PV}"
6
7# couple of modules needed for illume2 (mobile) profile were removed in
8# http://git.enlightenment.org/core/enlightenment.git/commit/src/modules/Makefile.mk?id=1be76d599ca27f820b58b8186c5f73d9844c67ca
9# and replacements aren't included yet, if you want to use e-wm on device with small screen, better stay with 0.18 release
10DEFAULT_PREFERENCE = "-1"
11
12SRC_URI = "\
13 ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
14 file://enlightenment_start.oe \
15 file://applications.menu \
16"
17
18SRC_URI[md5sum] = "9063617760329445ada8635270a4e627"
19SRC_URI[sha256sum] = "484d305bcf403303b18c46a3a498445b93689cd325010ae8d0601551926469d8"
20
21PNBLACKLIST[e-wm] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/e-wm_git.bb b/meta-efl/recipes-efl/e17/e-wm_git.bb
deleted file mode 100644
index 0f25fd592..000000000
--- a/meta-efl/recipes-efl/e17/e-wm_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require ${BPN}.inc
2
3PV = "0.19.4+git${SRCPV}"
4DEFAULT_PREFERENCE = "-2"
5
6SRC_URI = " \
7 git://git.enlightenment.org/core/enlightenment.git;branch=enlightenment-0.19 \
8 file://0001-configure.ac-add-foreign.patch \
9 file://enlightenment_start.oe \
10 file://applications.menu \
11"
12S = "${WORKDIR}/git"
13
14SRCREV = "4545d4a70031e0b2565b8d83d5f756bff1a584d0"
15
16PNBLACKLIST[e-wm] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/edje-viewer_svn.bb b/meta-efl/recipes-efl/e17/edje-viewer_svn.bb
deleted file mode 100644
index 6d3efda51..000000000
--- a/meta-efl/recipes-efl/e17/edje-viewer_svn.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1SUMMARY = "Edje_Viewer is just that"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
4 file://COPYING-PLAIN;md5=e01359041001e8bf24c09acca556e792"
5
6DEPENDS = "elementary"
7PV = "0.0.0+svnr${SRCPV}"
8SRCREV = "${EFL_SRCREV}"
9
10inherit e
11
12SRCNAME = "edje_viewer"
13SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
14S = "${WORKDIR}/${SRCNAME}"
15
16FILES_${PN} += "${datadir}"
17
18PNBLACKLIST[edje-viewer] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/elbow_git.bb b/meta-efl/recipes-efl/e17/elbow_git.bb
deleted file mode 100644
index d2a853989..000000000
--- a/meta-efl/recipes-efl/e17/elbow_git.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1SUMMARY = "EFL based browser"
2LICENSE = "GPLv3"
3LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
4DEPENDS = "evas ecore edje eina elementary webkit-efl sqlite3"
5
6PV = "0.0.1+gitr${SRCPV}"
7SRCREV = "b41fd0bc9514ff61bb2a50d957efe4155fa3e6a8"
8
9# webkit-efl isn't available for < armv7a
10COMPATIBLE_MACHINE = "(-)"
11COMPATIBLE_MACHINE_x86 = "(.*)"
12COMPATIBLE_MACHINE_x86-64 = "(.*)"
13COMPATIBLE_MACHINE_armv7a = "(.*)"
14
15inherit e gettext cmake
16
17EXTRA_OECMAKE = "-DDATA_INSTALL_DIR=${datadir}"
18
19SRC_URI = " \
20 git://github.com/bunhere/elbow.git;protocol=https \
21"
22S = "${WORKDIR}/git"
23
24FILES_${PN} += "${datadir}/themes"
25
26PNBLACKLIST[elbow] ?= "Depends on blacklisted webkit-efl - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/elfe_git.bb b/meta-efl/recipes-efl/e17/elfe_git.bb
deleted file mode 100644
index e9f7f9e89..000000000
--- a/meta-efl/recipes-efl/e17/elfe_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
3PV = "0.0.1+gitr${SRCPV}"
4PE = "1"
5
6require e-module.inc
7
8SRC_URI = " \
9 git://git.enlightenment.org/enlightenment/modules/${BPN}.git \
10"
11S = "${WORKDIR}/git"
12
13SRCREV = "1ec0e7713c3ca901014811ff78277d9e2aaac981"
14
15DEPENDS += "elementary"
16
17PNBLACKLIST[elfe] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/elmdentica/configure.patch b/meta-efl/recipes-efl/e17/elmdentica/configure.patch
deleted file mode 100644
index 79a981b47..000000000
--- a/meta-efl/recipes-efl/e17/elmdentica/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: elmdentica/configure.ac
2===================================================================
3--- elmdentica.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000
4+++ elmdentica/configure.ac 2014-07-17 21:51:34.960574935 +0000
5@@ -3,7 +3,7 @@
6 AM_CONFIG_HEADER(config.h)
7 AC_CONFIG_MACRO_DIR([m4])
8
9-AM_INIT_AUTOMAKE
10+AM_INIT_AUTOMAKE([foreign])
11
12 AC_PROG_CC
13 AC_GNU_SOURCE
diff --git a/meta-efl/recipes-efl/e17/elmdentica_svn.bb b/meta-efl/recipes-efl/e17/elmdentica_svn.bb
deleted file mode 100644
index b17121721..000000000
--- a/meta-efl/recipes-efl/e17/elmdentica_svn.bb
+++ /dev/null
@@ -1,23 +0,0 @@
1SUMMARY = "A indenti.ca client for E"
2DEPENDS = "glib-2.0 gconf curl elementary sqlite3-native azy"
3LICENSE = "GPLv3+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
5
6SECTION = "e/apps"
7HOMEPAGE = "http://elmdentica.googlecode.com"
8AUTHOR = "seabra"
9
10inherit e gettext
11SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
12S = "${WORKDIR}/${SRCNAME}"
13
14EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
15
16PV = "0.9.9+svnr${SRCPV}"
17SRCREV = "${EFL_SRCREV}"
18
19RDEPENDS_${PN} = "${PN}-themes"
20
21SRC_URI += "file://configure.patch"
22
23PNBLACKLIST[elmdentica] ?= "OLD and depends on broken azy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/emprint_svn.bb b/meta-efl/recipes-efl/e17/emprint_svn.bb
deleted file mode 100644
index 115dc7cf5..000000000
--- a/meta-efl/recipes-efl/e17/emprint_svn.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1DESCRIPTION = "Emprint is a utility for taking screenshots of the entire screen, a specific window, or a specific region."
2LICENSE = "MIT & BSD"
3DEPENDS = "imlib2 virtual/libx11 ecore evas edje eina"
4PV = "0.0.1+svnr${SRCPV}"
5LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
6SRCREV = "${EFL_SRCREV}"
7
8inherit e
9SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
10S = "${WORKDIR}/${SRCNAME}"
11
12FILES_${PN}-dbg += "${libdir}/${PN}/modules/.debug"
13
14PNBLACKLIST[emprint] ?= "if you want to use these modules with E18, then you need to update it to git recipe fetching newer sources from http://git.enlightenment.org/apps/emprint.git/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch b/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch
deleted file mode 100644
index 09624503b..000000000
--- a/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch
+++ /dev/null
@@ -1,133 +0,0 @@
1From 751505501e0db31cf766ec0ae95a6968b4d1eb93 Mon Sep 17 00:00:00 2001
2From: Alban Browaeys <prahal@yahoo.com>
3Date: Wed, 5 Sep 2012 02:58:26 +0000
4Subject: [PATCH] always use position as percent and define a 1 seconds
5 tolerance.
6
7Fix "reverb" effect: ie loop between setting the slider to match
8the position and handling slider to position (seek).
9---
10 data/themes/default.edc | 8 +++-----
11 src/bin/win.c | 28 ++++++++++++++++++++++------
12 2 files changed, 25 insertions(+), 11 deletions(-)
13
14diff --git a/data/themes/default.edc b/data/themes/default.edc
15index ebf8ba4..7a906b1 100644
16--- a/data/themes/default.edc
17+++ b/data/themes/default.edc
18@@ -186,7 +186,6 @@ collections {
19 group {
20 name: "nowplaying";
21 script {
22- public cur_length;
23 public mute;
24
25 public get_time_str(Float:time, time_str[6])
26@@ -201,16 +200,15 @@ collections {
27 new Float:position = getfarg(2);
28 new Float:length = getfarg(3);
29 if (length > 0)
30- external_param_set_float(PART:"progress.slider", "value", position / length * 100);
31+ external_param_set_float(PART:"progress.slider", "value", position * 100);
32 else
33 external_param_set_float(PART:"progress.slider", "value", 0);
34
35 new time_str[6];
36- get_time_str(position, time_str);
37+ get_time_str(position * length, time_str);
38 set_text(PART:"ejy.text.current_time", time_str);
39 get_time_str(length, time_str);
40 set_text(PART:"ejy.text.total_time", time_str);
41- set_float(cur_length, length);
42 } else if (type == MSG_INT && id == MSG_SHUFFLE) {
43 external_param_set_bool(PART:"buttons.shuffle", "state", getarg(2));
44 } else if (type == MSG_INT && id == MSG_LOOP) {
45@@ -689,7 +687,7 @@ collections {
46 source: "progress.slider";
47 signal: "changed";
48 script {
49- send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") * get_float(cur_length) / 100));
50+ send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") / 100));
51 }
52 }
53 program {
54diff --git a/src/bin/win.c b/src/bin/win.c
55index 2f65953..428e268 100644
56--- a/src/bin/win.c
57+++ b/src/bin/win.c
58@@ -194,8 +194,8 @@ _win_play_eval(Win *w)
59 {
60 Edje_Message_Float_Set *mf;
61
62- w->play.position = emotion_object_position_get(w->emotion);
63 w->play.length = emotion_object_play_length_get(w->emotion);
64+ w->play.position = emotion_object_position_get(w->emotion) / w->play.length;
65
66 if ((w->song) && (w->song->length != (int)w->play.length))
67 db_song_length_set(w->db, w->song, w->play.length);
68@@ -542,8 +542,14 @@ _win_edje_msg(void *data, Evas_Object *o __UNUSED__, Edje_Message_Type type, int
69 else
70 {
71 Edje_Message_Float *m = msg;
72+
73+ if ((((m->val - w->play.position) * w->play.length) < 1.0)
74+ && (((w->play.position - m->val) * w->play.length) < 1.0))
75+ return;
76+
77 w->play.position = m->val;
78- emotion_object_position_set(w->emotion, w->play.position);
79+ emotion_object_position_set(w->emotion, w->play.position
80+ * w->play.length);
81 ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL);
82 }
83 break;
84@@ -617,16 +623,21 @@ enjoy_control_seek(uint64_t position)
85 {
86 Win *w = &_win;
87 double seek_to;
88+ double new_pos = w->play.length / ((double)position / 1e6);
89
90 if (!w->db) return;
91- seek_to = w->play.position + w->play.length / ((double)position / 1e6);
92+
93+ if ((((new_pos - w->play.position) * w->play.length) < 1.0)
94+ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return;
95+
96+ seek_to = w->play.position + new_pos;
97 if (seek_to <= 0.0)
98 seek_to = 0.0;
99 else if (seek_to >= 1.0)
100 seek_to = 1.0;
101
102 w->play.position = seek_to;
103- emotion_object_position_set(w->emotion, w->play.position);
104+ emotion_object_position_set(w->emotion, w->play.position * w->play.length);
105 ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL);
106 }
107
108@@ -692,15 +703,20 @@ EAPI void
109 enjoy_position_set(int32_t position)
110 {
111 Win *w = &_win;
112+ double new_pos = w->play.length / ((double)position / 1e6);
113
114 if (!w->db) return;
115- w->play.position = w->play.length / ((double)position / 1e6);
116+
117+ if ((((new_pos - w->play.position) * w->play.length) < 1.0)
118+ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return;
119+
120+ w->play.position = new_pos;
121 if (w->play.position < 0.0)
122 w->play.position = 0.0;
123 else if (w->play.position > 1.0)
124 w->play.position = 1.0;
125
126- emotion_object_position_set(w->emotion, w->play.position);
127+ emotion_object_position_set(w->emotion, w->play.position * w->play.length);
128 ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL);
129 }
130
131--
1321.8.5.2
133
diff --git a/meta-efl/recipes-efl/e17/enjoy/configure.patch b/meta-efl/recipes-efl/e17/enjoy/configure.patch
deleted file mode 100644
index 6e0ed7461..000000000
--- a/meta-efl/recipes-efl/e17/enjoy/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: git/configure.ac
2===================================================================
3--- git.orig/configure.ac 2014-07-17 21:48:51.284570474 +0000
4+++ git/configure.ac 2014-07-17 21:53:39.104578318 +0000
5@@ -26,7 +26,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6 dist-bzip2)
10+AM_INIT_AUTOMAKE([dist-bzip2 foreign])
11 AC_CONFIG_HEADERS(config.h)
12 _XTERM_COLORS
13 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/meta-efl/recipes-efl/e17/enjoy_git.bb b/meta-efl/recipes-efl/e17/enjoy_git.bb
deleted file mode 100644
index 716d73ed1..000000000
--- a/meta-efl/recipes-efl/e17/enjoy_git.bb
+++ /dev/null
@@ -1,50 +0,0 @@
1SUMMARY = "Enjoy music player"
2LICENSE = "LGPLv3"
3LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
4DEPENDS = "evas ecore edje elementary emotion lightmediascanner eldbus gst-plugins-good"
5
6SRCREV = "aa8fec69e885eec048a849c2b34059ec58404e02"
7PV = "0.1.0+gitr${SRCPV}"
8
9#1st needed for all formats
10#2nd needed for mp3 playback
11#3d needed for ogg playback
12#4th needed for flac playback
13#5th needed binary to create db
14RDEPENDS_${PN} += "\
15 gst-plugins-base-typefindfunctions gst-plugins-base-playbin gst-plugins-base-volume gst-plugins-base-decodebin2 gst-plugins-good-autodetect \
16 gst-plugins-base-ogg gst-plugins-base-ivorbisdec \
17 gst-plugins-good-flac \
18 lightmediascanner-test \
19"
20
21inherit e gettext
22SRC_URI = " \
23 git://git.enlightenment.org/apps/enjoy.git \
24 file://0001-always-use-position-as-percent-and-define-a-1-second.patch \
25 file://configure.patch \
26"
27S = "${WORKDIR}/git"
28
29FILES_${PN} += "${datadir}/icons/"
30
31EXTRA_OECONF = "\
32 --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
33"
34
35PACKAGECONFIG[mad] = ",,gst-plugins-ugly,gst-plugins-ugly-mad"
36PACKAGECONFIG[id3demux] = ",,,gst-plugins-good-id3demux"
37
38do_configure_prepend() {
39 autopoint || touch config.rpath
40}
41
42pkg_postinst_${PN} () {
43 echo "enjoy: SCAN and LIBRARY MANAGER are not implemeted yet!"
44 echo "enjoy: Meanwhile please run:"
45 echo "enjoy: test-lms -m mono -p id3 -i 5000 -s /path/to/your/music/dir /home/root/.config/enjoy/media.db"
46 echo "enjoy:"
47 echo "enjoy: Use test-lms -P to see available formats that can be scanned"
48}
49
50PNBLACKLIST[enjoy] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/ephoto/configure.patch b/meta-efl/recipes-efl/e17/ephoto/configure.patch
deleted file mode 100644
index 59466f8af..000000000
--- a/meta-efl/recipes-efl/e17/ephoto/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: ephoto/configure.ac
2===================================================================
3--- ephoto.orig/configure.ac 2014-07-17 21:48:51.028570467 +0000
4+++ ephoto/configure.ac 2014-07-17 21:52:56.120577146 +0000
5@@ -27,7 +27,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6 dist-bzip2)
10+AM_INIT_AUTOMAKE([dist-bzip2 foreign])
11 AM_CONFIG_HEADER(src/bin/config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/ephoto_svn.bb b/meta-efl/recipes-efl/e17/ephoto_svn.bb
deleted file mode 100644
index f86ffe16f..000000000
--- a/meta-efl/recipes-efl/e17/ephoto_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1LICENSE = "MIT & GPL-3.0"
2PV = "0.1.0+svnr${SRCREV}"
3PR = "${INC_PR}.0"
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=fdffcddb366d0cc78e0e46c4ea70c8d9 \
6 file://COPYING.icons;md5=8f0e2cd40e05189ec81232da84bd6e1a"
7
8require e-module.inc
9
10inherit gettext
11
12DEPENDS += "elementary ethumb ecore eio"
13
14SRCNAME = "${PN}"
15
16# autotools-brokensep
17B = "${S}"
18
19SRC_URI += "file://configure.patch"
20
21PNBLACKLIST[ephoto] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/exalt-client/configure.patch b/meta-efl/recipes-efl/e17/exalt-client/configure.patch
deleted file mode 100644
index d4ff801ce..000000000
--- a/meta-efl/recipes-efl/e17/exalt-client/configure.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1Index: exalt-client/configure.ac
2===================================================================
3--- exalt-client.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000
4+++ exalt-client/configure.ac 2014-07-17 21:47:56.880568991 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.8)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12
13 AC_PROG_CC
14@@ -29,7 +29,6 @@
15
16 m4_ifdef([AM_GNU_GETTEXT], [
17 AM_GNU_GETTEXT([external])
18-po_makefile_in=po/Makefile.in
19 AM_CONDITIONAL([HAVE_PO], [true])
20 ],[
21 AM_CONDITIONAL([HAVE_PO], [false])
22@@ -101,6 +100,5 @@
23 src/Makefile
24 module.desktop
25 e_modules-exalt-client.spec
26-$po_makefile_in
27 ], [
28 ])
diff --git a/meta-efl/recipes-efl/e17/exalt-client_svn.bb b/meta-efl/recipes-efl/e17/exalt-client_svn.bb
deleted file mode 100644
index cb78a2e3a..000000000
--- a/meta-efl/recipes-efl/e17/exalt-client_svn.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1LICENSE = "LGPL-2.0"
2LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
3
4PV = "0.0.1+svnr${SRCPV}"
5
6require e-module.inc
7
8DEPENDS += "elementary exalt edje-native"
9
10CFLAGS += " -I${STAGING_INCDIR}/exalt -I${STAGING_INCDIR}/exalt_dbus"
11
12do_configure_prepend() {
13 sed -i -e /po/d ${S}/configure.ac
14 sed -i -e s:\ po::g ${S}/Makefile.am
15}
16
17FILES_${PN} += "${libdir}/enlightenment/modules/*/*.desktop \
18 ${libdir}/enlightenment/modules/*/*.edj \
19 ${libdir}/enlightenment/modules/*/*/*.so"
20
21FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/*/*/*.a"
22FILES_${PN}-dev += "${libdir}/enlightenment/modules/*/*/*.la"
23FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug"
24
25SRC_URI += "file://configure.patch"
26PNBLACKLIST[exalt-client] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/exalt_svn.bb b/meta-efl/recipes-efl/e17/exalt_svn.bb
deleted file mode 100644
index 9e63f1bc2..000000000
--- a/meta-efl/recipes-efl/e17/exalt_svn.bb
+++ /dev/null
@@ -1,36 +0,0 @@
1SUMMARY = "Exalt is a network manager for the windows manager Enlightenment DR17"
2HOMEPAGE = "http://watchwolf.fr/wiki/doku.php?id=exalt"
3
4LICENSE = "LGPLv2.1"
5LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
6
7DEPENDS = "elementary vpnc wpa-supplicant ecore eet edbus"
8RDEPENDS_${PN} = "vpnc wpa-supplicant"
9
10PV = "0.9+svnr${SRCPV}"
11SRCREV = "${EFL_SRCREV}"
12
13inherit e
14SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
15S = "${WORKDIR}/${SRCNAME}"
16
17EXTRA_OECONF = " \
18--with-wpa_supplicant=${sbindir}/wpa_supplicant \
19--with-vpnc=${sbindir}/vpnc \
20--with-vpnc-disconnect=${sbindir}/vpnc-disconnect \
21"
22
23do_install_append() {
24 # install dbus config file
25 install -d ${D}${sysconfdir}/dbus-1/system.d/
26 install -m 0644 ${S}/data/daemon/dbus/exalt.conf ${D}${sysconfdir}/dbus-1/system.d/exalt.conf
27
28 # install dbus service file
29 install -d ${D}${datadir}/dbus-1/system-services/
30 install -m 0644 ${B}/org.e.Exalt.service ${D}${datadir}/dbus-1/system-services/
31}
32
33FILES_${PN} += "${datadir}/dbus-1"
34
35
36PNBLACKLIST[exalt] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb b/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb
deleted file mode 100644
index c9063bc44..000000000
--- a/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb
+++ /dev/null
@@ -1,41 +0,0 @@
1DDESCRIPTION = "A theme for exquisite"
2LICENSE = "MIT & BSD"
3LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2"
4SECTION = "x11"
5DEPENDS = "edje-native"
6PV = "1.0+svnr${SRCPV}"
7SRCREV = "${EFL_SRCREV}"
8
9inherit e-base update-alternatives allarch
10
11ALTERNATIVE_NAME = "exquisite-config"
12ALTERNATIVE_LINK = "${sysconfdir}/exquisite/config"
13ALTERNATIVE_PATH = "${sysconfdir}/exquisite/config-illume"
14ALTERNATIVE_PRIORITY = "10"
15
16SRCNAME = "b_and_w"
17
18SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \
19 file://LICENSE \
20"
21S = "${WORKDIR}/${SRCNAME}"
22
23do_compile() {
24 ${STAGING_BINDIR_NATIVE}/edje_cc exquisite.edc illume.edj
25}
26
27do_install() {
28 install -d ${D}${sysconfdir}/exquisite
29 install -d ${D}${datadir}/exquisite/data/themes
30 install -m 0644 ${S}/illume.edj ${D}${datadir}/exquisite/data/themes/
31 echo 'THEME="-t illume"' > ${D}${sysconfdir}/exquisite/config-illume
32}
33
34CONFFILES_${PN} = "${sysconfdir}/exquisite/config-illume"
35FILES_${PN} = "${sysconfdir}/exquisite ${datadir}/exquisite/data/themes"
36
37PNBLACKLIST[exquisite-theme-illume] ?= "Depends on blacklisted edje-native - the recipe will be removed on 2017-09-01 unless the issue is fixed"
38
39PNBLACKLIST[exquisite-theme-illume] ?= "Runtime depends on blacklisted exquisite-theme-illume - the recipe will be removed on 2017-09-01 unless the issue is fixed"
40
41PNBLACKLIST[exquisite-theme-illume] ?= "Runtime depends on blacklisted exquisite-theme-illume-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE b/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE
deleted file mode 100644
index 61bb2f603..000000000
--- a/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
1Copyright notice for Enlightenment:
2
3Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-efl/recipes-efl/e17/exquisite/exquisite-init b/meta-efl/recipes-efl/e17/exquisite/exquisite-init
deleted file mode 100644
index 2de6774ff..000000000
--- a/meta-efl/recipes-efl/e17/exquisite/exquisite-init
+++ /dev/null
@@ -1,40 +0,0 @@
1#!/bin/sh
2
3for x in $(cat /proc/cmdline); do
4 case $x in
5 splash=false)
6 echo "Splash Disabled"
7 exit 0;
8 ;;
9 esac
10done
11
12. /etc/init.d/functions
13
14### Default config here - gets overriden later
15THEME="-t default"
16FPS="-fps 30"
17### Override config - if there is a config file - load it.
18if test -f /etc/exquisite/config; then
19 . /etc/exquisite/config
20fi
21
22args=''
23case `machine_id` in
24 "hp_ipaq_h3100"|"hp_ipaq_h3800")
25 args='-rot 90' ;;
26 "hp_ipaq_3600"|"hp_ipaq_3700"|"hp_ipaq_h3900"|"htc_universal"|*collie|*poodle|*akita|*spitz|*borzoi)
27 args='-rot 270' ;;
28esac
29args=$args" $FPS $THEME"
30
31export EXDIR=/mnt/.splash
32export EXQUISITE_IPC=$EXDIR/exquisite
33mount tmpfs -t tmpfs $EXDIR -o,size=40k
34exquisite -fb -fs $args &
35
36exquisite-write -wait 120
37exquisite-write "PULSATE"
38setterm -blank 0
39setterm -powersave off
40setterm -powerdown 0
diff --git a/meta-efl/recipes-efl/e17/exquisite/splashfuncs b/meta-efl/recipes-efl/e17/exquisite/splashfuncs
deleted file mode 100644
index ada2a96dd..000000000
--- a/meta-efl/recipes-efl/e17/exquisite/splashfuncs
+++ /dev/null
@@ -1,29 +0,0 @@
1status() {
2 if type splash-write >/dev/null 2>&1; then
3 (TMPDIR="/mnt/.splash" EXQUISITE_IPC="$TMPDIR/exquisite" splash-write "$1" || true) &
4 fi
5}
6
7status_position() {
8 status "PROGRESS $1"
9}
10
11status_title() {
12 status "TITLE $1"
13}
14
15status_text() {
16 if test -n "$1"; then
17 status "MSG $1"
18 else
19 status "CLEAR"
20 fi
21}
22
23status_pulse() {
24 status "PULSATE"
25}
26
27status_tick() {
28 status "TICK"
29}
diff --git a/meta-efl/recipes-efl/e17/exquisite_svn.bb b/meta-efl/recipes-efl/e17/exquisite_svn.bb
deleted file mode 100644
index 826cd444e..000000000
--- a/meta-efl/recipes-efl/e17/exquisite_svn.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "A psplash replacement for display"
2LICENSE = "MIT & BSD"
3LIC_FILES_CHKSUM = "file://COPYING;md5=14defa372a91118e755133bc8e6aff83"
4DEPENDS = "eet evas ecore embryo edje"
5PV = "0.0.1+svnr${SRCPV}"
6SRCREV = "${EFL_SRCREV}"
7RRECOMMENDS_${PN} = "exquisite-themes"
8RCONFLICTS_${PN} = "psplash virtual-psplash"
9
10SRCNAME = "exquisite"
11
12inherit e
13SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
14S = "${WORKDIR}/${SRCNAME}"
15
16EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
17
18SRC_URI += "file://exquisite-init"
19SRC_URI += "file://splashfuncs"
20
21inherit update-rc.d
22
23do_install_prepend() {
24 install -d ${D}/mnt/.splash/
25 install -d ${D}${sysconfdir}/init.d
26 install -m 0755 ${WORKDIR}/exquisite-init ${D}${sysconfdir}/init.d/exquisite
27 install -d ${D}${sysconfdir}/default
28 install -m 0755 ${WORKDIR}/splashfuncs ${D}${sysconfdir}/default/splashfuncs
29 install -d ${D}${bindir}
30 ln -s exquisite-write ${D}${bindir}/splash-write
31}
32
33
34do_install_append() {
35 rm -rf ${D}${datadir}/exquisite/data/fonts/*
36}
37
38INITSCRIPT_NAME = "exquisite"
39INITSCRIPT_PARAMS = "start 01 S . stop 20 0 1 6 ."
40
41FILES_${PN} += "/mnt/.splash/"
42
43PNBLACKLIST[exquisite] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130619/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/flame/configure.patch b/meta-efl/recipes-efl/e17/flame/configure.patch
deleted file mode 100644
index 87c85de9f..000000000
--- a/meta-efl/recipes-efl/e17/flame/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: cpu/configure.ac
2===================================================================
3--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000
4+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/flame_svn.bb b/meta-efl/recipes-efl/e17/flame_svn.bb
deleted file mode 100644
index 6583d2724..000000000
--- a/meta-efl/recipes-efl/e17/flame_svn.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
3 file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e"
4
5PV = "0.0.3+svnr${SRCPV}"
6PR = "${INC_PR}.0"
7
8require e-module.inc
9
10do_configure_prepend() {
11 sed -i -e /po/d ${S}/configure.ac
12 sed -i -e s:\ po::g ${S}/Makefile.am
13}
14
15SRC_URI += "file://configure.patch"
16
17PNBLACKLIST[flame] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/forecasts/configure.patch b/meta-efl/recipes-efl/e17/forecasts/configure.patch
deleted file mode 100644
index 87c85de9f..000000000
--- a/meta-efl/recipes-efl/e17/forecasts/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: cpu/configure.ac
2===================================================================
3--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000
4+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/forecasts_svn.bb b/meta-efl/recipes-efl/e17/forecasts_svn.bb
deleted file mode 100644
index 495f314fc..000000000
--- a/meta-efl/recipes-efl/e17/forecasts_svn.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
3 file://COPYING-PLAIN;md5=51328cfb73bfec3eed7cfd3dbed73988"
4
5PV = "0.2.0+svnr${SRCREV}"
6PR = "${INC_PR}.0"
7
8require e-module.inc
9
10SRC_URI += "file://configure.patch"
11
12PNBLACKLIST[forecasts] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch b/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch
deleted file mode 100644
index b18a69b0b..000000000
--- a/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1From 9316e3973c44b981e73b953b2861060c6902de47 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 23 Aug 2010 12:54:05 +0200
4Subject: [PATCH] Makefile: update KEYBOARDS_DIR for new illume2
5
6---
7 Makefile | 2 +-
8 1 files changed, 1 insertions(+), 1 deletions(-)
9
10diff --git a/Makefile b/Makefile
11index 46e9420..3d8757c 100644
12--- a/Makefile
13+++ b/Makefile
14@@ -1,5 +1,5 @@
15
16-INSTBASE = /usr/lib/enlightenment/modules/illume/keyboards
17+INSTBASE = /usr/lib/enlightenment/modules/illume-keyboard/keyboards
18
19 FILES-arabic = Arabic.kbd Arabic.png
20 FILES-persian = Persian.kbd Persian.png
21--
221.7.2
23
diff --git a/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE b/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE
deleted file mode 100644
index 61bb2f603..000000000
--- a/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
1Copyright notice for Enlightenment:
2
3Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-efl/recipes-efl/e17/news_svn.bb b/meta-efl/recipes-efl/e17/news_svn.bb
deleted file mode 100644
index 4349e0445..000000000
--- a/meta-efl/recipes-efl/e17/news_svn.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1LICENSE = "GPL-2.0"
2LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
3
4PV = "0.1.0+svnr${SRCPV}"
5PR = "${INC_PR}.0"
6
7require e-module.inc
8
9do_configure_prepend() {
10 sed -i -e /po/d configure.ac
11 sed -i -e s:\ po::g Makefile.am
12}
13
14PNBLACKLIST[news] ?= "if you want to use these modules with E18, then you need to update it to git recipe fetching newer sources from http://git.enlightenment.org/enlightenment/modules/news.git/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/places/configure.patch b/meta-efl/recipes-efl/e17/places/configure.patch
deleted file mode 100644
index f8f48345c..000000000
--- a/meta-efl/recipes-efl/e17/places/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: places/configure.ac
2===================================================================
3--- places.orig/configure.ac 2014-07-17 21:51:01.276574017 +0000
4+++ places/configure.ac 2014-07-17 21:52:07.096575810 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.8)
10+AM_INIT_AUTOMAKE([foreign])
11 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
12 AM_CONFIG_HEADER(config.h)
13
diff --git a/meta-efl/recipes-efl/e17/places_svn.bb b/meta-efl/recipes-efl/e17/places_svn.bb
deleted file mode 100644
index b184f84c3..000000000
--- a/meta-efl/recipes-efl/e17/places_svn.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1LICENSE = "BSD"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
3
4PV = "0.1.0+svnr${SRCPV}"
5PR = "${INC_PR}.0"
6
7require e-module.inc
8
9do_configure_prepend() {
10 autopoint || touch config.rpath
11}
12
13# Calls /usr/bin/eject for media
14RRECOMMENDS_${PN} += "eject"
15
16SRC_URI += "file://configure.patch"
17
18PNBLACKLIST[places] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/rage_svn.bb b/meta-efl/recipes-efl/e17/rage_svn.bb
deleted file mode 100644
index 0a90fe3cd..000000000
--- a/meta-efl/recipes-efl/e17/rage_svn.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1SUMMARY = "Rage is a media center application based on EFL"
2AUTHOR = "Carsten 'The Rasterman' Haitzler"
3HOMEPAGE = "http://www.rasterman.com"
4LICENSE = "MIT & BSD"
5LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
6DEPENDS = "emotion evas ecore edje"
7SECTION = "x11/multimedia"
8PV = "0.3.0.042+svnr${SRCPV}"
9SRCREV = "${EFL_SRCREV}"
10
11inherit e
12SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep"
13S = "${WORKDIR}/${SRCNAME}"
14
15PNBLACKLIST[rage] ?= "if you want to use these modules with E18, then you need to update it to git recipe fetching newer sources from http://git.enlightenment.org/apps/rage.git/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/rain/configure.patch b/meta-efl/recipes-efl/e17/rain/configure.patch
deleted file mode 100644
index 87c85de9f..000000000
--- a/meta-efl/recipes-efl/e17/rain/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: cpu/configure.ac
2===================================================================
3--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000
4+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/rain_svn.bb b/meta-efl/recipes-efl/e17/rain_svn.bb
deleted file mode 100644
index 14aa2ed38..000000000
--- a/meta-efl/recipes-efl/e17/rain_svn.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1LICENSE = "MIT"
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
4 file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e"
5
6PV = "0.0.3+svnr${SRCPV}"
7PR = "${INC_PR}.0"
8
9require e-module.inc
10
11do_configure_prepend() {
12 sed -i -e /po/d ${S}/configure.ac
13 sed -i -e s:\ po::g ${S}/Makefile.am
14}
15
16SRC_URI += "file://configure.patch"
17
18PNBLACKLIST[rain] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch b/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch
deleted file mode 100644
index 14f1141f1..000000000
--- a/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2Subject: fix screenshot po/ building
3Upstream-Status: Pending
4
5Somehow configure doesn't substitute @MKINSTALLDIRS@ by default anymore,
6however this substitution is required for po/Makefile
7
8Fix that by calling AM_MKINSTALLDIRS from configure.ac
9
10Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
11
12Index: E-MODULES-EXTRA/screenshot/configure.ac
13===================================================================
14--- E-MODULES-EXTRA.orig/screenshot/configure.ac 2011-08-17 15:49:22.000000000 +0400
15+++ E-MODULES-EXTRA/screenshot/configure.ac 2011-08-17 15:49:34.000000000 +0400
16@@ -24,6 +24,7 @@
17 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
18 AC_PROG_LIBTOOL
19
20+AM_MKINSTALLDIRS
21 m4_ifdef([AM_GNU_GETTEXT_VERSION], [
22 AM_GNU_GETTEXT_VERSION([0.14])
23 ])
diff --git a/meta-efl/recipes-efl/e17/screenshot_svn.bb b/meta-efl/recipes-efl/e17/screenshot_svn.bb
deleted file mode 100644
index 233f7777f..000000000
--- a/meta-efl/recipes-efl/e17/screenshot_svn.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1LICENSE = "MIT"
2PV = "0.3.0+svnr${SRCREV}"
3PR = "${INC_PR}.0"
4LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
5SRC_URI += "file://screenshot-fix-mkinstalldirs.patch"
6
7require e-module.inc
8
9DEPENDS += "emprint"
10RDEPENDS_${PN} += "emprint"
11
12do_configure_prepend() {
13 sed -i -e 's:AC_MSG_ERROR(emprint not found):echo foo:g' ${S}/configure.ac
14}
15
16PNBLACKLIST[screenshot] ?= "depends on blacklisted emprint - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/terminology.inc b/meta-efl/recipes-efl/e17/terminology.inc
deleted file mode 100644
index 24f789f59..000000000
--- a/meta-efl/recipes-efl/e17/terminology.inc
+++ /dev/null
@@ -1,22 +0,0 @@
1DESCRIPTION = "Enlightenment Terminal Emulator"
2LICENSE = "MIT & BSD-2-Clause"
3LIC_FILES_CHKSUM = "file://COPYING;md5=4efac6b05b3256ba7da66301ac1ee6c6"
4DEPENDS = "evas ecore edje elementary eina eet emotion"
5
6inherit e gettext
7
8# Because latest release we have is 0.1.0 which sorts lower then 0.1.0+svnr${SRCPV} already in feeds
9PE = "2"
10
11EXTRA_OECONF = "\
12 --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
13"
14
15FILES_${PN} += "\
16 ${datadir}/icons/terminology.png \
17"
18
19# doesn't start without own theme
20# ERR<770>:terminology utils.c:26 theme_apply() Could not load any theme for group=terminology/background: No Error
21# CRI<770>:terminology main.c:448 elm_main() Couldn't find terminology theme! Forgot 'make install'?
22RDEPENDS_${PN} += "${PN}-themes"
diff --git a/meta-efl/recipes-efl/e17/terminology_0.9.1.bb b/meta-efl/recipes-efl/e17/terminology_0.9.1.bb
deleted file mode 100644
index 77dd223fd..000000000
--- a/meta-efl/recipes-efl/e17/terminology_0.9.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7SRC_URI[md5sum] = "c7ce2e8ebc5f311d3d3f59ecfdf18f61"
8SRC_URI[sha256sum] = "7fb864a14202490e9181c5f254a7e772019216a3aa75c3952d0f12cd32113896"
9
10PNBLACKLIST[terminology] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/e17/uptime/configure.patch b/meta-efl/recipes-efl/e17/uptime/configure.patch
deleted file mode 100644
index 87c85de9f..000000000
--- a/meta-efl/recipes-efl/e17/uptime/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: cpu/configure.ac
2===================================================================
3--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000
4+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000
5@@ -10,7 +10,7 @@
6 AC_CANONICAL_HOST
7 AC_ISC_POSIX
8
9-AM_INIT_AUTOMAKE(1.6)
10+AM_INIT_AUTOMAKE([foreign])
11 AM_CONFIG_HEADER(config.h)
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
diff --git a/meta-efl/recipes-efl/e17/uptime_svn.bb b/meta-efl/recipes-efl/e17/uptime_svn.bb
deleted file mode 100644
index 60d48a2ca..000000000
--- a/meta-efl/recipes-efl/e17/uptime_svn.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \
3 file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e"
4
5PV = "0.0.2+svnr${SRCREV}"
6PR = "${INC_PR}.0"
7
8require e-module.inc
9
10SRC_URI += "file://configure.patch"
11
12PNBLACKLIST[uptime] ?= "Depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/azy_svn.bb b/meta-efl/recipes-efl/efl/azy_svn.bb
deleted file mode 100644
index d3bc200f5..000000000
--- a/meta-efl/recipes-efl/efl/azy_svn.bb
+++ /dev/null
@@ -1,37 +0,0 @@
1DESCRIPTION = "Azy is a library meant for implementing rpc clients and servers in a simple manner."
2DEPENDS = "pkgconfig zlib openssl eina gnutls ecore libxml2 re2c-native mysql5 azy-native glib-2.0"
3DEPENDS_class-native = "pkgconfig-native zlib-native openssl-native eina-native gnutls-native ecore-native libxml2-native re2c-native mysql5-native glib-2.0-native"
4LICENSE = "LGPLv2.1+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
6
7PV = "1.0.0+svnr${SRCPV}"
8PR = "r2"
9
10SRCREV = "${EFL_SRCREV}"
11
12# to provide native lemon binary
13BBCLASSEXTEND = "native"
14
15EXTRA_OECONF += " --disable-mysql-tests"
16
17do_configure_prepend_class-target() {
18 sed -i "s#\./lemon#${STAGING_BINDIR_NATIVE}/azy_lemon#g" ${S}/src/bin/Makefile.am
19 sed -i "s#\$(top_builddir)/src/bin/azy_parser -H -p -o#${STAGING_BINDIR_NATIVE}/azy_parser -H -p -o#g" ${S}/src/tests/Makefile.am
20 sed -i "s#\$(top_builddir)/src/bin/azy_parser -eHn -m#${STAGING_BINDIR_NATIVE}/azy_parser -eHn -m#g" ${S}/src/tests/identi.ca/Makefile.am
21}
22
23do_install_append_class-native() {
24 install -d ${D}/${bindir}
25 install -m 0755 ${B}/src/bin/lemon ${D}/${bindir}/azy_lemon
26}
27
28inherit efl
29
30SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep"
31S = "${WORKDIR}/${SRCNAME}"
32
33# azy/2_1.0.0+svnr82070-r2/azy/src/lib/extras/pugixml.cpp:33:
34# sysroots/qemuarm/usr/include/c++/5.2.0/bits/basic_string.h:4780:5: error: reference to 'basic_string' is ambiguous
35# basic_string<_CharT, _Traits, _Alloc>
36# ^
37PNBLACKLIST[azy] ?= "OLD and doesn't build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch b/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch
deleted file mode 100644
index 55773a3b9..000000000
--- a/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 657571197c9d369e12ae31b6777a1929fe3680ef Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 29 Oct 2011 00:16:55 +0200
4Subject: [PATCH] ecore-fb: fix ts init
5
6Upstream-Status: Pending
7
8The whole ecore-fb init logic is somewhat flawed; with this patch we
9get at least a working touchscreen w/ tslib again.
10
11Signed-off-by: Michael 'Mickey' Lauer <mlauer@vanille-media.de>
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 ecore/src/lib/ecore_fb/ecore_fb.c | 4 ++++
15 1 files changed, 4 insertions(+), 0 deletions(-)
16
17diff --git a/src/lib/ecore_fb/ecore_fb.c b/src/lib/ecore_fb/ecore_fb.c
18index 5b2b84b..a1904b3 100644
19--- a/src/lib/ecore_fb/ecore_fb.c
20+++ b/src/lib/ecore_fb/ecore_fb.c
21@@ -46,6 +46,9 @@ ecore_fb_init(const char *name __UNUSED__)
22 if (!ecore_fb_vt_init())
23 return --_ecore_fb_init_count;
24
25+ if (!ecore_fb_ts_init())
26+ return --_ecore_fb_init_count;
27+
28 if (!oldhand)
29 {
30 oldhand = signal(SIGINT, nosigint);
31@@ -77,6 +80,7 @@ ecore_fb_shutdown(void)
32 oldhand = NULL;
33 }
34
35+ ecore_fb_ts_shutdown();
36 ecore_fb_vt_shutdown();
37
38 return _ecore_fb_init_count;
39--
401.7.8.6
41
diff --git a/meta-efl/recipes-efl/efl/edbus.inc b/meta-efl/recipes-efl/efl/edbus.inc
deleted file mode 100644
index 03d0ee58d..000000000
--- a/meta-efl/recipes-efl/efl/edbus.inc
+++ /dev/null
@@ -1,29 +0,0 @@
1DESCRIPTION = "DBus and HAL convenience wrappers for EFL"
2DEPENDS = "dbus ecore eina"
3LICENSE = "MIT & BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=550b8cea13dacc4bf00508a8cce1074c"
5
6inherit efl
7
8# -dev and -dbg packages wants ${PN} which is empty here
9ALLOW_EMPTY_${PN} = "1"
10
11BBCLASSEXTEND = "native"
12INC_PR = "r0"
13
14SRCNAME = "e_dbus"
15
16# it needs to be disabled, because creates circular dependency on elementary
17EXTRA_OECONF += "--disable-edbus-performance-test"
18
19PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal ${PN}-econnman ${PN}-eofono ${PN}-eukit ${PN}-ebluez"
20FILES_${PN}-enotify = "${libdir}/libenotify.so.* ${bindir}/e-notify-send"
21FILES_${PN}-edbus = "${libdir}/libedbus.so.*"
22FILES_${PN}-enm = "${libdir}/libenm.so.*"
23FILES_${PN}-ehal = "${libdir}/libehal.so.*"
24FILES_${PN}-econnman = "${libdir}/libeconnman.so.* ${libdir}/libeconnman0_7x.so.*"
25FILES_${PN}-eofono = "${libdir}/libeofono.so.*"
26FILES_${PN}-eukit = "${libdir}/libeukit.so.*"
27FILES_${PN}-ebluez = "${libdir}/libebluez.so.*"
28FILES_${PN} += "${datadir}/e_dbus/logo.png"
29
diff --git a/meta-efl/recipes-efl/efl/edbus_1.7.9.bb b/meta-efl/recipes-efl/efl/edbus_1.7.9.bb
deleted file mode 100644
index a8033ac59..000000000
--- a/meta-efl/recipes-efl/efl/edbus_1.7.9.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7SRC_URI[md5sum] = "8f72da14e5664aad8c45eeeca0e3ff5f"
8SRC_URI[sha256sum] = "c328c4cf1424629cb67c83689ccc1f95967abcb4c03dffd437e93b799ff151c1"
9
10PNBLACKLIST[edbus] ?= "Depends on blacklisted ecore - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12PNBLACKLIST[edbus] ?= "Depends on blacklisted eina - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14PNBLACKLIST[edbus] ?= "Runtime depends on blacklisted edbus - the recipe will be removed on 2017-09-01 unless the issue is fixed"
15
16PNBLACKLIST[edbus] ?= "Runtime depends on blacklisted edbus-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/edje-fpu.inc b/meta-efl/recipes-efl/efl/edje-fpu.inc
deleted file mode 100644
index 32a6daf7d..000000000
--- a/meta-efl/recipes-efl/efl/edje-fpu.inc
+++ /dev/null
@@ -1,6 +0,0 @@
1
2def get_edje_fpu_setting(bb, d):
3 if d.getVar('TARGET_FPU') in [ 'soft' ]:
4 return "--enable-fixed-point"
5 return ""
6
diff --git a/meta-efl/recipes-efl/efl/efl.inc b/meta-efl/recipes-efl/efl/efl.inc
deleted file mode 100644
index 4cd21bfd0..000000000
--- a/meta-efl/recipes-efl/efl/efl.inc
+++ /dev/null
@@ -1,290 +0,0 @@
1SUMMARY = "EFL"
2LICENSE = "MIT & BSD & LGPL-2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=ca7873210523dcfd32694b94286dca60"
4
5DEPENDS_class-native = "freetype-native libxext-native libpng-native jpeg-native tiff-native libfribidi-native glib-2.0-native dbus-native openssl-native"
6DEPENDS = "virtual/libiconv tslib curl glib-2.0 gnutls pkgconfig zlib jpeg openssl libsndfile1 dbus libexif librsvg freetype libpng tiff libxext virtual/libx11 libxdamage libxrender fontconfig libfribidi giflib udev libxcursor libxcomposite libxinerama libxrandr libxtst libxscrnsaver efl-native util-linux libunwind"
7
8inherit efl gettext pkgconfig
9
10BBCLASSEXTEND = "native"
11
12PROVIDES += "ecore edje eet eeze efreet eina eio embryo emotion ethumb evas eldbus"
13
14# we don't have bullet for physics
15# You have chosen to disable physics support. This disables lots of
16# core functionality and is effectively never tested. You are going
17# to find features that suddenly don't work and as a result cause
18# a series of breakages. This is simply not tested so you are on
19# your own in terms of ensuring everything works if you do this
20EXTRA_OECONF = " \
21 --disable-physics \
22 --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba \
23"
24EXTRA_OECONF_append_class-target = " \
25 --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
26 --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \
27 --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \
28 --with-elua=${STAGING_BINDIR_NATIVE}/elua \
29"
30EXTRA_OECONF_append_class-native = " \
31 --disable-fontconfig \
32 --disable-audio \
33 --disable-physics \
34 --disable-multisense \
35 --disable-cserve \
36 --disable-libeeze \
37 --with-x11=none \
38 --disable-image-loader-bmp \
39 --disable-image-loader-eet \
40 --disable-image-loader-generic \
41 --disable-image-loader-gif \
42 --disable-image-loader-ico \
43 --disable-image-loader-jp2k \
44 --disable-image-loader-pmaps \
45 --disable-image-loader-psd \
46 --disable-image-loader-tga \
47 --disable-image-loader-wbmp \
48 --disable-image-loader-webp \
49 --disable-image-loader-xpm \
50 --disable-image-loader-tgv \
51 --disable-image-loader-dds \
52"
53
54PACKAGECONFIG ?= "egl opengl-es gstreamer1 pulseaudio luajit ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
55PACKAGECONFIG_class-native = "luajit"
56
57PACKAGECONFIG[wayland] = "--enable-wayland --enable-wayland-ivi-shell,--disable-wayland --disable-wayland-ivi-shell,wayland"
58PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
59# sort of tri-state
60PACKAGECONFIG[opengl-full] = "--with-opengl=full,,virtual/libgl"
61PACKAGECONFIG[opengl-es] = "--with-opengl=es,,virtual/libgles2"
62PACKAGECONFIG[opengl-none] = "--with-opengl=none,,"
63# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make
64# sure that all your builders have g++ which supports -std=gnu++11
65PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings"
66PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer"
67PACKAGECONFIG[gstreamer1] = "--enable-gstreamer1,--disable-gstreamer1,gstreamer1.0 gstreamer1.0-plugins-base"
68PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
69PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
70PACKAGECONFIG[luajit] = "--disable-lua-old,--enable-lua-old,luajit"
71PACKAGECONFIG[lua-old] = "--enable-lua-old,--disable-lua-old,lua"
72PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
73# currently we don't provide doxygen-native
74PACKAGECONFIG[doc] = "--enable-doc,--disable-doc,doxygen-native"
75
76do_install_append() {
77 # don't ship precompiled lua files
78 rm -f ${datadir}/elua/*/*.luac
79}
80
81PACKAGES =+ "edje-utils embryo-utils embryo-tests efreet-trash efreet-mime libeet libefreet ecore-audio ecore-input-evas ecore-input ecore-imf-evas ecore-imf ecore-file ecore-con ecore-ipc ecore-x ecore-evas libemotion eo ecore edje eet eeze efreet eina eio embryo emotion ethumb evas eldbus elua"
82
83# upgrade path from 1.7
84DEBIAN_NOAUTONAME_ecore-audio = "1"
85DEBIAN_NOAUTONAME_ecore-input-evas = "1"
86DEBIAN_NOAUTONAME_ecore-input = "1"
87DEBIAN_NOAUTONAME_ecore-imf-evas = "1"
88DEBIAN_NOAUTONAME_ecore-imf = "1"
89DEBIAN_NOAUTONAME_ecore-file = "1"
90DEBIAN_NOAUTONAME_ecore-con = "1"
91DEBIAN_NOAUTONAME_ecore-ipc = "1"
92DEBIAN_NOAUTONAME_ecore-x = "1"
93DEBIAN_NOAUTONAME_ecore-evas = "1"
94DEBIAN_NOAUTONAME_embryo = "1"
95
96ALLOW_EMPTY_ecore = "1"
97RDEPENDS_ecore = "ecore-audio ecore-input-evas ecore-input ecore-imf-evas ecore-imf ecore-file ecore-con ecore-ipc ecore-x ecore-evas"
98
99python populate_packages_prepend () {
100 for plugin_type in "engines loaders savers".split():
101 bb.note( "splitting packages for evas %s..." % plugin_type )
102 basedir = d.expand( '${libdir}/evas/modules/%s' % plugin_type)
103
104 do_split_packages(d, basedir, '^(.*)',
105 output_pattern = 'evas-' + plugin_type[:-1] + "-%s",
106 description = 'Evas module %s',
107 allow_dirs=True, recursive=False, extra_depends="" )
108
109 plugin_type = "cserve2"
110 bb.note( "splitting packages for evas %s..." % plugin_type )
111 basedir = d.expand( '${libdir}/evas/%s/loaders' % plugin_type)
112
113 do_split_packages(d, basedir, '^(.*)',
114 output_pattern = 'evas-' + plugin_type + "-%s",
115 description = 'Evas csever2 loader module %s',
116 allow_dirs=True, recursive=False, extra_depends="" )
117}
118
119PACKAGES += "evas-loader-png evas-engine-software-generic evas-engine-fb"
120PACKAGES_DYNAMIC += "^evas-engine-.* ^evas-loader-.* ^evas-saver-.* ^evas-cserve2-.*"
121
122# PACKAGES_DYNAMIC + do_split_packages isn't used for all libe libs,
123# because PACKAGES_DYNAMIC would be catching too many patterns
124# (or need to list all possible prefixes) and not all original packages
125# were splitted like that, so it would need RCONFLICTS/RPROVIDES/RREPLACES
126# combos at least in few places for upgrade path.
127
128FILES_efreet-trash = " \
129 ${libdir}/libefreet_trash${SOLIBS} \
130"
131FILES_efreet-mime = " \
132 ${libdir}/libefreet_mime${SOLIBS} \
133"
134FILES_libeet = " \
135 ${libdir}/libeet${SOLIBS} \
136"
137FILES_libefreet = " \
138 ${libdir}/libefreet${SOLIBS} \
139"
140FILES_ecore-audio = "\
141 ${libdir}/libecore_audio${SOLIBS} \
142"
143FILES_ecore-input-evas = "\
144 ${libdir}/libecore_input_evas${SOLIBS} \
145"
146FILES_ecore-input = "\
147 ${libdir}/libecore_input${SOLIBS} \
148"
149FILES_ecore-imf-evas = "\
150 ${libdir}/libecore_imf_evas${SOLIBS} \
151 ${libdir}/ecore-imf/modules/*/*/module.so \
152"
153FILES_ecore-imf = "\
154 ${libdir}/libecore_imf${SOLIBS} \
155"
156
157FILES_ecore-file = "\
158 ${libdir}/libecore_file${SOLIBS} \
159"
160FILES_ecore-con = "\
161 ${libdir}/libecore_con${SOLIBS} \
162"
163FILES_ecore-ipc = "\
164 ${libdir}/libecore_ipc${SOLIBS} \
165"
166FILES_ecore-x = "\
167 ${libdir}/libecore_x${SOLIBS} \
168 ${libdir}/ecore_x/bin/v-*/ecore_x_vsync \
169"
170FILES_ecore-evas = "\
171 ${libdir}/libecore_evas${SOLIBS} \
172 ${libdir}/ecore-evas/engines/*/*/module.so \
173"
174FILES_eio = "\
175 ${libdir}/libeio${SOLIBS} \
176"
177FILES_eina = "\
178 ${libdir}/libeina${SOLIBS} \
179 ${bindir}/eina-bench-cmp \
180"
181FILES_edje-utils = "\
182 ${bindir}/edje_* \
183 ${datadir}/edje/include/edje.inc \
184"
185FILES_eldbus = "\
186 ${libdir}/libeldbus${SOLIBS} \
187"
188FILES_eo = "\
189 ${libdir}/libeo${SOLIBS} \
190"
191FILES_libemotion = "\
192 ${libdir}/libemotion${SOLIBS} \
193"
194FILES_efreet = " \
195 ${datadir}/dbus-1/services/*Efreet* \
196 ${libdir}/efreet/*/efreet*create \
197 ${bindir}/efreetd \
198 ${datadir}/efreet \
199"
200FILES_eet = " \
201 ${bindir}/eet \
202 ${bindir}/eetpack \
203 ${bindir}/vieet \
204 ${bindir}/diffeet \
205 ${libdir}/libeet${SOLIBS} \
206"
207FILES_emotion = " \
208 ${datadir}/emotion \
209 ${libdir}/emotion/modules/gstreamer1/*/module.so \
210"
211FILES_embryo-tests = " \
212 ${datadir}/embryo/ \
213"
214FILES_embryo-utils = " \
215 ${binddir}/embryo_* \
216"
217FILES_embryo = " \
218 ${libdir}/libembryo${SOLIBS} \
219"
220FILES_ethumb = " \
221 ${datadir}/dbus-1/services/*Ethumb* \
222 ${libdir}/libethumb${SOLIBS} \
223 ${libdir}/libethumb_client${SOLIBS} \
224 ${bindir}/ethumbd \
225 ${bindir}/ethumbd_client \
226 ${bindir}/ethumb \
227 ${libdir}/ethumb/*/*/*/module.so \
228 ${libdir}/ethumb/*/*/*/*.edj \
229 ${libdir}/ethumb_client/utils/*/ethumbd_slave \
230 ${datadir}/ethumb* \
231"
232FILES_ecore = " \
233 ${libdir}/libecore${SOLIBS} \
234 ${libdir}/ecore*/*/*/*/module.so \
235 ${datadir}/ecore* \
236"
237FILES_evas = " \
238 ${libdir}/libevas${SOLIBS} \
239 ${libdir}/evas*/*/*/*/*/module.so \
240 ${libdir}/evas*/*/*/*/*/*.edj \
241 ${libdir}/evas/cserve2/bin/*/evas_cserve2* \
242 ${datadir}/evas* \
243 ${bindir}/evas_cserve2_* \
244"
245
246FILES_eeze = " \
247 ${libdir}/libeeze${SOLIBS} \
248 ${libdir}/eeze*/*/*/*/*/module.so \
249 ${datadir}/eeze \
250 ${bindir}/eeze_* \
251"
252FILES_edje = " \
253 ${libdir}/libedje${SOLIBS} \
254 ${libdir}/edje*/*/*/*/module.so \
255 ${libdir}/edje/utils/*/epp \
256 ${datadir}/edje \
257 ${datadir}/mime \
258"
259FILES_elua = " \
260 ${bindir}/elua \
261 ${datadir}/elua \
262"
263FILES_${PN}-dbg += " \
264 ${libdir}/efreet/*/.debug \
265 ${libdir}/ecore*/*/*/*/.debug \
266 ${libdir}/ecore*/*/*/.debug \
267 ${libdir}/evas*/*/*/*/*/.debug \
268 ${libdir}/evas/cserve2/bin/*/.debug \
269 ${libdir}/eeze*/*/*/*/*/.debug \
270 ${libdir}/edje*/*/*/*/.debug \
271 ${libdir}/edje/utils/*/.debug \
272 ${libdir}/ethumb/*/*/*/.debug \
273 ${libdir}/ethumb_client/utils/*/.debug \
274 ${libdir}/emotion/modules/gstreamer1/*/.debug \
275"
276FILES_${PN}-dev += " \
277 ${libdir}/cmake \
278 ${libdir}/ecore*/*/*/*/module.la \
279 ${libdir}/evas*/*/*/*/*/module.la \
280 ${libdir}/ethumb*/*/*/*/module.la \
281 ${libdir}/eeze*/*/*/*/*/module.la \
282 ${libdir}/edje*/*/*/*/module.la \
283 ${libdir}/emotion/modules/gstreamer1/*/module.la \
284 ${datadir}/gdb/auto-load \
285 ${datadir}/eo/gdb \
286 ${bindir}/eldbus-codegen \
287"
288
289PNBLACKLIST[efl] ?= "Depends on broken efl-native - the recipe will be removed on 2017-09-01 unless the issue is fixed"
290PNBLACKLIST[efl-native] ?= "Broken: fails to build with http://errors.yoctoproject.org/Errors/Details/138240/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch b/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch
deleted file mode 100644
index fa85f817e..000000000
--- a/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 27aedcdcdafbf079dc022bab72ec309cf7db3172 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Fri, 10 Jan 2014 17:07:13 +0100
4Subject: [PATCH 1/3] configure.ac: Don't check for Xprint extension
5
6* it's long gone
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 configure.ac | 1 -
11 1 file changed, 1 deletion(-)
12
13diff --git a/configure.ac b/configure.ac
14index c108b1b..f019bfc 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -3474,7 +3474,6 @@ if test "x${want_x11_xlib}" = "xyes" ; then
18 ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xext], [DPMSQueryExtension])
19 ECORE_CHECK_X_EXTENSION([Xfixes], [Xfixes.h], [Xfixes], [XFixesExpandRegion])
20 ECORE_CHECK_X_EXTENSION([Xinerama], [Xinerama.h], [Xinerama], [XineramaQueryScreens])
21- ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens])
22 ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRGetScreenResourcesCurrent])
23 ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat])
24 ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
25--
262.3.0
27
diff --git a/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch b/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch
deleted file mode 100644
index d0f26c7dd..000000000
--- a/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From 2e50fd2dfc68b77e7acddc79550f22987778a897 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Tue, 2 Dec 2014 12:21:10 +0100
4Subject: [PATCH] evas_3d: Add Eet.h includes
5
6* with some very restrictive options like we use in efl-native, the build is complaining
7 about missing symbols from Eet.h, add include where needed
8
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 src/lib/evas/canvas/evas_canvas3d_eet.c | 1 +
12 src/modules/evas/model_loaders/eet/evas_model_load_eet.c | 1 +
13 src/modules/evas/model_savers/eet/evas_model_save_eet.c | 1 +
14 3 files changed, 3 insertions(+)
15
16diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c b/src/lib/evas/canvas/evas_canvas3d_eet.c
17index 281f69d..a604076 100644
18--- a/src/lib/evas/canvas/evas_canvas3d_eet.c
19+++ b/src/lib/evas/canvas/evas_canvas3d_eet.c
20@@ -1,3 +1,4 @@
21+#include <Eet.h>
22 #include <stdio.h>
23 #include "evas_common_private.h"
24 #include "evas_private.h"
25diff --git a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
26index 803846d..7ebaf8e 100644
27--- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
28+++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
29@@ -3,6 +3,7 @@
30 #endif
31
32 #include <Eo.h>
33+#include <Eet.h>
34 #include <stdio.h>
35 #include "evas_common_private.h"
36 #include "evas_private.h"
37diff --git a/src/modules/evas/model_savers/eet/evas_model_save_eet.c b/src/modules/evas/model_savers/eet/evas_model_save_eet.c
38index 71e094a..4d56977 100644
39--- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c
40+++ b/src/modules/evas/model_savers/eet/evas_model_save_eet.c
41@@ -2,6 +2,7 @@
42 #include "config.h"
43 #endif
44
45+#include <Eet.h>
46 #include <stdio.h>
47 #include "evas_common_private.h"
48 #include "evas_private.h"
49--
502.5.0
51
diff --git a/meta-efl/recipes-efl/efl/efl_1.15.1.bb b/meta-efl/recipes-efl/efl/efl_1.15.1.bb
deleted file mode 100644
index 9f18531de..000000000
--- a/meta-efl/recipes-efl/efl/efl_1.15.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
5 file://0001-configure.ac-Don-t-check-for-Xprint-extension.patch \
6 file://0001-evas_3d-Add-Eet.h-includes.patch \
7"
8
9SRC_URI[md5sum] = "dc91bcab73275f678e1748a2dea8d88a"
10SRC_URI[sha256sum] = "2a6d0ab28020b4741be20b32ad0ffeb8f97f766c5c32175bacc2f2d0dc52f98c"
11
12# Temporary disable until error like the one following are fixed
13# efl-native/2_1.8.4-r0/efl-1.8.4/src/lib/eet/.libs/libeet.so: file not recognized: File truncated
14# collect2: error: ld returned 1 exit status
15# x86_64-linux-libtool: install: error: relink `modules/evas/savers/tiff/module.la' with the above command before installing it
16# Makefile:11031: recipe for target 'install-savertiffpkgLTLIBRARIES' failed
17PARALLEL_MAKE_class-native = ""
18
19#EFL_RUN_IN_TREE=1 ../src/bin/eolian/eolian_gen --eo --legacy -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/eo -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/evas/canvas -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/edje -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/ecore_audio --gc -o lib/evas/canvas/evas_line.eo.c /OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/evas/canvas/evas_line.eo
20#ERR<32439>:eolian_gen /OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/bin/eolian/main.c:103 _generate_c_file() Couldnt open file lib/evas/canvas/evas_line.eo.c for writing
21#Makefile:30738: recipe for target 'lib/evas/canvas/evas_line.eo.c' failed
22#make[2]: *** [lib/evas/canvas/evas_line.eo.c] Error 1
23#Makefile:2163: recipe for target 'all-recursive' failed
24# autotools-brokensep
25B = "${S}"
26
27#ld: error: modules/evas/image_loaders/png/bin_evas_evas_cserve2_slave-evas_image_load_png.o: requires unsupported dynamic reloc R_ARM_MOVW_ABS_NC; recompile with -fPIC
28#ld: error: modules/evas/image_loaders/png/bin_evas_evas_cserve2_slave-evas_image_load_png.o: requires unsupported dynamic reloc R_ARM_MOVW_ABS_NC; recompile with -fPIC
29CFLAGS += "-fPIC"
diff --git a/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE b/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE
deleted file mode 100644
index 61bb2f603..000000000
--- a/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
1Copyright notice for Enlightenment:
2
3Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb b/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb
deleted file mode 100644
index 783d12304..000000000
--- a/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1DESCRIPTION = "efenniht elementary theme - Efenniht was devised to be clean \
2and neutral. Its name (which means equinox) comes from the chromatic duality \
3that was decided at the very beginning, with a dark theme (black and orange) \
4and a bright one (white and blue) to be developed so that more people feel \
5comfortable using it. Efenniht uses few animations, discrete contrasts between \
6shades of gray and fine lines (colored) that outline the selected elements."
7SECTION = "e/utils"
8HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht"
9DEPENDS = "edje-native"
10RSUGGESTS_${PN} = "e-wm-theme-illume-efenniht"
11LICENSE = "MIT & BSD"
12LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2"
13
14SRCREV_THM_REV ?= "${EFL_SRCREV}"
15SRCREV_ELM_REV ?= "${EFL_SRCREV}"
16
17SRCREV_FORMAT = "THM_REV"
18PV = "0.0+svnr${SRCPV}"
19PR = "r1"
20
21inherit e-base allarch
22
23SRCNAME = "efenniht"
24SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http;name=THM_REV"
25SRC_URI += "${E_SVN}/trunk/elementary/data;module=themes;protocol=http;name=ELM_REV"
26SRC_URI += "file://LICENSE"
27S = "${WORKDIR}/${SRCNAME}"
28
29do_compile() {
30 ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images -id ${WORKDIR}/themes/images ${S}/elm-efenniht.edc -o ${S}/elm-efenniht.edj
31}
32
33do_install() {
34 install -d ${D}${datadir}/elementary/themes/
35 install -m 0644 ${S}/elm-efenniht.edj ${D}${datadir}/elementary/themes/
36}
37
38FILES_${PN} = "${datadir}/elementary/themes/"
39
40PNBLACKLIST[elementary-theme-efenniht] ?= "Depends on blacklisted edje-native - the recipe will be removed on 2017-09-01 unless the issue is fixed"
41
42PNBLACKLIST[elementary-theme-efenniht] ?= "Runtime depends on blacklisted elementary-theme-efenniht - the recipe will be removed on 2017-09-01 unless the issue is fixed"
43
44PNBLACKLIST[elementary-theme-efenniht] ?= "Runtime depends on blacklisted elementary-theme-efenniht-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/elementary.inc b/meta-efl/recipes-efl/efl/elementary.inc
deleted file mode 100644
index cec67aa72..000000000
--- a/meta-efl/recipes-efl/efl/elementary.inc
+++ /dev/null
@@ -1,89 +0,0 @@
1DESCRIPTION = "EFL based widget set for mobile devices"
2LICENSE = "LGPLv2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=a173054a93896e933df53e3382d472c2"
4DEPENDS = "eet-native edje-native elementary-native efreet evas ecore edje eet eldbus ethumb eio"
5DEPENDS_class-native = "efl-native"
6
7inherit efl gettext
8
9EXTRA_OECONF_append_class-target = "\
10 --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
11 --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \
12 --with-elementary-codegen=${STAGING_BINDIR_NATIVE}/elementary_codegen \
13 --with-elm-prefs-cc=${STAGING_BINDIR_NATIVE}/elm_prefs_cc \
14 --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \
15 --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \
16"
17
18BBCLASSEXTEND = "native"
19
20PACKAGECONFIG[eweather] = "--enable-eweather,--disable-eweather,libeweather"
21PACKAGECONFIG[ewebkit] = "--with-elementary-web-backend=ewebkit,--with-elementary-web-backend=none,webkit-efl"
22# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make
23# sure that all your builders have g++ which supports -std=gnu++11
24PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings"
25
26do_configure_prepend() {
27 # prefix returned eolian paths with STAGING_DIR_HOST
28 sed -i 's%^\(DEPS_EOLIAN_FLAGS=`.*\)`$%\1 | sed "s#-I\\${prefix}#-I\\${STAGING_DIR_HOST}\\${prefix}#g"`%g' ${S}/configure.ac
29}
30
31do_compile_append_class-target() {
32 sed -i -e s:${STAGING_DIR_TARGET}::g \
33 -e s:/${TARGET_SYS}::g \
34 elementary.pc
35}
36
37PACKAGES += "${PN}-configs ${PN}-accessibility"
38
39RDEPENDS_${PN}_class-native = ""
40
41RDEPENDS_${PN} = "\
42 ${PN}-themes \
43 ${PN}-configs \
44"
45RSUGGESTS_${PN} = "${PN}-tests ${PN}-accessibility"
46
47FILES_${PN} += "\
48 ${libdir}/edje/modules/elm \
49 ${libdir}/elementary/modules/datetime_input_ctxpopup/*/module.so \
50 ${libdir}/elementary/modules/prefs/*/module.so \
51 ${libdir}/elementary/modules/prefs/*/*.edj \
52"
53
54FILES_${PN}-dev += "\
55 ${bindir}/elm_prefs_cc \
56 ${libdir}/elementary/modules/*/*/module.la \
57 ${libdir}/cmake \
58"
59
60FILES_${PN}-themes = "\
61 ${datadir}/elementary/themes \
62"
63
64FILES_${PN}-configs = "\
65 ${datadir}/elementary/config \
66"
67
68FILES_${PN}-dbg += "\
69 ${libdir}/elementary/modules/*/*/.debug \
70 ${libdir}/edje/modules/elm/*/.debug \
71"
72
73FILES_${PN}-tests = "\
74 ${bindir}/elementary* \
75 ${datadir}/elementary/images \
76 ${datadir}/elementary/objects \
77 ${datadir}/elementary/examples \
78 ${datadir}/applications/* \
79 ${datadir}/icons/* \
80 ${libdir}/elementary/modules/test_entry/* \
81 ${libdir}/elementary/modules/test_map/* \
82"
83
84FILES_${PN}-accessibility = "\
85 ${libdir}/elementary/modules/access_output/* \
86"
87
88# Some upgrade path tweaking, as in evas
89AUTO_LIBNAME_PKGS = ""
diff --git a/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch b/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch
deleted file mode 100644
index 9524c70d7..000000000
--- a/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 75d104d105aa03dd9d446fa7d84fa95e0f566cf9 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 11 Jan 2014 12:55:59 +0100
4Subject: [PATCH] Makefile: Use elementary_codegen defined in configure
5
6* using binaries from top_buildir doesn't work when cross-compiling elementary
7 where we need to pass native binaries in configure params
8
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 src/examples/Makefile.am | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am
15index fc35c75..1e10b0b 100644
16--- a/src/examples/Makefile.am
17+++ b/src/examples/Makefile.am
18@@ -29,7 +29,7 @@ LDADD = \
19 @ELEMENTARY_X_LIBS@ \
20 $(top_builddir)/src/lib/libelementary.la
21
22-ELEMENTARY_CODEGEN = $(top_builddir)/src/bin/@ELEMENTARY_CODEGEN_PRG@
23+ELEMENTARY_CODEGEN = @elementary_codegen@
24 ELEMENTARY_CODEGEN_FLAGS = --prefix=codegen_example
25
26 SRCS = \
27--
281.9.0
29
diff --git a/meta-efl/recipes-efl/efl/elementary_1.15.1.bb b/meta-efl/recipes-efl/efl/elementary_1.15.1.bb
deleted file mode 100644
index 40dd8ad27..000000000
--- a/meta-efl/recipes-efl/efl/elementary_1.15.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7# only for target, because configure doesn't default to sane default when
8# these paths aren't passed in -native build
9SRC_URI_append_class-target = " file://0001-Makefile-Use-elementary_codegen-defined-in-configure.patch"
10
11SRC_URI[md5sum] = "bde4d85fa10ee8a7c0aeb74e69d7cd06"
12SRC_URI[sha256sum] = "ae5540c2103fcdc69fd7469277ce25a8a00a0f701fc2c20771dc0108401e53a0"
13
14# autotools-brokensep - configure updates Elementary.h correctly in ${B}, but then build is using Elementary.h from ${S}
15# which includes #define ELM_EMAP (instead of #undef ELM_EMAP) and building fails
16B = "${S}"
17
18PNBLACKLIST[elementary] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130584/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/emotion-generic-players.inc b/meta-efl/recipes-efl/efl/emotion-generic-players.inc
deleted file mode 100644
index 4ab89ae32..000000000
--- a/meta-efl/recipes-efl/efl/emotion-generic-players.inc
+++ /dev/null
@@ -1,14 +0,0 @@
1DESCRIPTION = "Emotion generic players"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=a0f11eedf8706bf6d4d6639fb67eb8ae"
4
5DEPENDS = "emotion"
6
7inherit efl
8
9SRCNAME = "emotion_generic_players"
10
11# creates empty packages until you get vlc-2 and enable it here
12PACKAGECONFIG ?= ""
13# needs eina and ecore from efl and vlc-2 (currently we have 1.11)
14PACKAGECONFIG[vlc] = "--with-vlc,--without-vlc,vlc efl"
diff --git a/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb b/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb
deleted file mode 100644
index ffdd26982..000000000
--- a/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7SRC_URI[md5sum] = "68627c1aabf5b7fe084299adcc0b73c1"
8SRC_URI[sha256sum] = "10bad633480a691585b0ba470c573b14da0a010008d9d59d0792cea8c621d423"
9
10PNBLACKLIST[emotion-generic-players] ?= "Depends on blacklisted emotion - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12PNBLACKLIST[emotion-generic-players] ?= "Runtime depends on blacklisted emotion-generic-players - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14PNBLACKLIST[emotion-generic-players] ?= "Runtime depends on blacklisted emotion-generic-players-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/engrave_svn.bb b/meta-efl/recipes-efl/efl/engrave_svn.bb
deleted file mode 100644
index f950938c9..000000000
--- a/meta-efl/recipes-efl/efl/engrave_svn.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1SUMMARY = "Engrave is an Edje Editing Library"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://COPYING;md5=edf2d968b9eb026bfa82cccbd0e6f9f5"
4# also requires yacc and lex on host
5DEPENDS = "evas ecore flex"
6PV = "0.0.0+svnr${SRCPV}"
7SRCREV = "${EFL_SRCREV}"
8
9inherit efl autotools-brokensep
10SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep"
11S = "${WORKDIR}/${SRCNAME}"
12
13# engrave.l:5:35: fatal error: libengrave_la-engrave.h: No such file or directory
14# http://errors.yoctoproject.org/Errors/Details/56597/
15PNBLACKLIST[engrave] ?= "BROKEN: fails to build with latest oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch b/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch
deleted file mode 100644
index a82d1ed3c..000000000
--- a/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 14396c52a2556b1ab778a310a318ec19c2829735 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 24 Nov 2011 13:25:33 +0100
4Subject: [PATCH] pam: use common-auth instead of system-auth
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 PROTO/entrance/data/entrance | 8 ++++----
9 1 files changed, 4 insertions(+), 4 deletions(-)
10
11diff --git a/data/entrance b/data/entrance
12index 872c83d..2b98c3a 100644
13--- a/data/entrance
14+++ b/data/entrance
15@@ -1,4 +1,4 @@
16-auth include system-auth
17-account include system-auth
18-password include system-auth
19-session include system-auth
20+auth include common-auth
21+account include common-account
22+password include common-password
23+session include common-session
24--
251.7.8.6
26
diff --git a/meta-efl/recipes-efl/efl/entrance/entrance.service b/meta-efl/recipes-efl/efl/entrance/entrance.service
deleted file mode 100644
index 482868695..000000000
--- a/meta-efl/recipes-efl/efl/entrance/entrance.service
+++ /dev/null
@@ -1,8 +0,0 @@
1[Unit]
2Description=Login manager for Enlightenment
3
4[Service]
5ExecStart=/usr/sbin/entrance
6
7[Install]
8Alias=display-manager.service
diff --git a/meta-efl/recipes-efl/efl/entrance_svn.bb b/meta-efl/recipes-efl/efl/entrance_svn.bb
deleted file mode 100644
index b1e580dbe..000000000
--- a/meta-efl/recipes-efl/efl/entrance_svn.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "Login manager for Enlightenment"
2DEPENDS = "efreet eina eet ecore elementary"
3LICENSE = "GPLv3+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
5SECTION = "e/apps"
6
7inherit e gettext systemd
8SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \
9 file://0001-pam-use-common-auth-instead-of-system-auth.patch \
10 file://entrance.service \
11"
12S = "${WORKDIR}/${SRCNAME}"
13
14PNBLACKLIST[entrance] ?= "broken: switch to https://git.enlightenment.org/misc/entrance.git and fix 0.0.4+svnr82070-r7/entrance/data/themes/old/default.edc:678. invalid state name: 'defaault'. "default" state must always be first. - the recipe will be removed on 2017-09-01 unless the issue is fixed"
15
16PACKAGECONFIG ??= ""
17PACKAGECONFIG[consolekit] = "--enable-consolekit,--disable-consolekit,consolekit"
18
19EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-pam', d)}"
20
21PR = "r7"
22PV = "0.0.4+svnr${SRCPV}"
23SRCREV = "${EFL_SRCREV}"
24
25RDEPENDS_${PN} += "${PN}-themes sessreg xauth"
26CONFFILES_${PN} += "${sysconfdir}/entrance.conf"
27
28RCONFLICTS_${PN} += "xserver-nodm-init"
29RREPLACES_${PN} += "xserver-nodm-init"
30
31RCONFLICTS_${PN} += "xserver-nodm-init-systemd"
32RREPLACES_${PN} += "xserver-nodm-init-systemd"
33
34RPROVIDES_${PN} += "${PN}-systemd"
35RREPLACES_${PN} += "${PN}-systemd"
36RCONFLICTS_${PN} += "${PN}-systemd"
37
38SYSTEMD_SERVICE_${PN} = "entrance.service"
39
40do_install_append() {
41 install -d ${D}${systemd_unitdir}/system
42 install -m 0644 ${WORKDIR}/entrance.service ${D}${systemd_unitdir}/system
43}
diff --git a/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch b/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch
deleted file mode 100644
index 728ffa6e3..000000000
--- a/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch
+++ /dev/null
@@ -1,132 +0,0 @@
1From 6691ac5fcbac0e766d4410ae649a13957ae85289 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 22 Oct 2015 16:27:52 +0200
4Subject: [PATCH 1/2] remove antialias functions - poppler has dropped them in
5 the API
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10The functions removed were not used.
11
12Upstream-Status: pending
13
14Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
15---
16 src/lib/epdf_main.h | 45 -----------------------------------
17 src/lib/mupdf/epdf_mupdf_main.c | 18 --------------
18 src/lib/poppler/epdf_poppler_main.cpp | 21 ----------------
19 3 files changed, 84 deletions(-)
20
21diff --git a/src/lib/epdf_main.h b/src/lib/epdf_main.h
22index 54a57ca..0a79bad 100644
23--- a/src/lib/epdf_main.h
24+++ b/src/lib/epdf_main.h
25@@ -29,49 +29,4 @@ EAPI int epdf_shutdown();
26 */
27 EAPI const char *epdf_backend_version_get (void);
28
29-/**
30- * @brief Return the state of fonts antialiasing in Poppler
31- *
32- * @return EINA_TRUE if fonts antialiasing enabled, EINA_FALSE otherwise.
33- *
34- * Return EINA_TRUE if the state of fonts antialiasing is enabled in
35- * Poppler, EINA_FALSE otherwise.
36- *
37- * @ingroup Epdf_Main
38- */
39-EAPI Eina_Bool epdf_fonts_antialias_get (void);
40-
41-/**
42- * @brief Sets fonts antialiasing mode in Poppler
43- *
44- * @param on EINA_TRUE to enable fonts antialiasing, EINA_FALSE to disable
45- *
46- * Set @p on to EINA_TRUE to enable fonts antialiasing in Poppler,
47- * EINA_FALSE to disable it.
48- */
49-EAPI void epdf_fonts_antialias_set (Eina_Bool on);
50-
51-/**
52- * @brief Return the state of lines antialiasing in Poppler
53- *
54- * @return EINA_TRUE if lines antialiasing enabled, EINA_FALSE otherwise.
55- *
56- * Return EINA_TRUE if the state of lines antialiasing is enabled in
57- * Poppler, EINA_FALSE otherwise.
58- *
59- * @ingroup Epdf_Main
60- */
61-EAPI Eina_Bool epdf_lines_antialias_get (void);
62-
63-/**
64- * @brief Sets lines antialiasing mode in Poppler
65- *
66- * @param on EINA_TRUE to enable lines antialiasing, EINA_FALSE to disable
67- *
68- * Set @p on to EINA_TRUE to enable lines antialiasing in Poppler,
69- * EINA_FALSE to disable it.
70- */
71-EAPI void epdf_lines_antialias_set (Eina_Bool on);
72-
73-
74 #endif /* __EPDF_MAIN_H__ */
75diff --git a/src/lib/mupdf/epdf_mupdf_main.c b/src/lib/mupdf/epdf_mupdf_main.c
76index 17bb830..27c6de2 100644
77--- a/src/lib/mupdf/epdf_mupdf_main.c
78+++ b/src/lib/mupdf/epdf_mupdf_main.c
79@@ -37,21 +37,3 @@ epdf_backend_version_get (void)
80 {
81 return "0.5";
82 }
83-
84-Eina_Bool epdf_fonts_antialias_get(void)
85-{
86- return EINA_TRUE;
87-}
88-
89-void epdf_fonts_antialias_set(Eina_Bool on)
90-{
91-}
92-
93-Eina_Bool epdf_lines_antialias_get(void)
94-{
95- return EINA_TRUE;
96-}
97-
98-void epdf_lines_antialias_set(Eina_Bool on)
99-{
100-}
101diff --git a/src/lib/poppler/epdf_poppler_main.cpp b/src/lib/poppler/epdf_poppler_main.cpp
102index 9841987..9efdbe8 100644
103--- a/src/lib/poppler/epdf_poppler_main.cpp
104+++ b/src/lib/poppler/epdf_poppler_main.cpp
105@@ -46,24 +46,3 @@ epdf_backend_version_get (void)
106 {
107 return POPPLER_VERSION;
108 }
109-
110-Eina_Bool epdf_fonts_antialias_get (void)
111-{
112- return globalParams->getAntialias();
113-}
114-
115-void epdf_fonts_antialias_set (Eina_Bool on)
116-{
117- /* Nice API */
118- globalParams->setAntialias((char*)(on ? "yes" : "no"));
119-}
120-
121-Eina_Bool epdf_lines_antialias_get (void)
122-{
123- return globalParams->getVectorAntialias();
124-}
125-
126-void epdf_lines_antialias_set (Eina_Bool on)
127-{
128- globalParams->setVectorAntialias((char*)(on ? "yes" : "no"));
129-}
130--
1312.1.0
132
diff --git a/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch b/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch
deleted file mode 100644
index c9adaa731..000000000
--- a/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1From a84c16fdc606f22b993f870b1cea56dd060a35e6 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 22 Oct 2015 16:55:30 +0200
4Subject: [PATCH 2/2] epdf_poppler_postscript.cpp: fix build for poppler API
5 change
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10Poppler API was changed in [1]. The patch not only shows the change but also
11inspires how to fix.
12
13[1] http://cgit.freedesktop.org/poppler/poppler/commit/?id=9caf7525409d699c16896653528486451123b485
14
15Upstream-Status: Pending
16
17Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
18---
19 src/lib/poppler/epdf_poppler_postscript.cpp | 7 +++++--
20 1 file changed, 5 insertions(+), 2 deletions(-)
21
22diff --git a/src/lib/poppler/epdf_poppler_postscript.cpp b/src/lib/poppler/epdf_poppler_postscript.cpp
23index 0c2836b..656193b 100644
24--- a/src/lib/poppler/epdf_poppler_postscript.cpp
25+++ b/src/lib/poppler/epdf_poppler_postscript.cpp
26@@ -82,11 +82,14 @@ epdf_postscript_print (const Epdf_Postscript *postscript)
27
28 // FIXME: fix postscript title
29 #ifdef HAVE_POPPLER_0_20
30+ std::vector<int> pages;
31+ for (int i = postscript->first_page; i <= postscript->last_page; ++i) {
32+ pages.push_back(i);
33+ }
34 PSOutputDev ps_dev(postscript->filename,
35 postscript->pdfdoc,
36 (char *)"PS title",
37- postscript->first_page,
38- postscript->last_page,
39+ pages,
40 psModePS,
41 (int)postscript->width,
42 (int)postscript->height,
43--
442.1.0
45
diff --git a/meta-efl/recipes-efl/efl/epdf_svn.bb b/meta-efl/recipes-efl/efl/epdf_svn.bb
deleted file mode 100644
index d664bad78..000000000
--- a/meta-efl/recipes-efl/efl/epdf_svn.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "Epdf is the glue between EFL and libpoppler"
2
3DEPENDS = "poppler evas ecore"
4PV = "0.1.0+svnr${SRCPV}"
5SRCREV = "${EFL_SRCREV}"
6
7inherit efl
8
9LICENSE = "GPLv2 & LGPLv3"
10LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
11 file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \
12"
13
14SRC_URI = " \
15 ${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \
16 file://0001-remove-antialias-functions-poppler-has-dropped-them-.patch \
17 file://0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch \
18"
19S = "${WORKDIR}/${SRCNAME}"
20
21EXTRA_OECONF = "\
22 --enable-poppler \
23 --disable-mupdf \
24"
25
26# Some upgrade path tweaking, as in evas
27AUTO_LIBNAME_PKGS = ""
28
29PNBLACKLIST[epdf] ?= "Depends on blacklisted ecore - the recipe will be removed on 2017-09-01 unless the issue is fixed"
30
31PNBLACKLIST[epdf] ?= "Depends on blacklisted evas - the recipe will be removed on 2017-09-01 unless the issue is fixed"
32
33PNBLACKLIST[epdf] ?= "Runtime depends on blacklisted epdf-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
34
35PNBLACKLIST[epdf] ?= "Runtime depends on blacklisted epdf - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/evas-generic-loaders.inc b/meta-efl/recipes-efl/efl/evas-generic-loaders.inc
deleted file mode 100644
index d277c1167..000000000
--- a/meta-efl/recipes-efl/efl/evas-generic-loaders.inc
+++ /dev/null
@@ -1,73 +0,0 @@
1DESCRIPTION = "Evas generic loaders"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=a87563ed30add2b0e3460272d3138a00"
4DEPENDS = "eina librsvg cairo"
5
6inherit efl
7
8SRCNAME = "evas_generic_loaders"
9
10EXTRA_OECONF = " \
11 --enable-svg \
12 --disable-gstreamer \
13 --disable-libraw \
14 --disable-spectre \
15"
16
17PACKAGECONFIG ??= ""
18PACKAGECONFIG[poppler] = "--enable-poppler,--disable-poppler,poppler"
19
20PACKAGESPLITFUNCS_prepend = "split_evas_loader_packages "
21
22python split_evas_loader_packages () {
23 bb.note( "splitting packages for evas generic loaders" )
24 basedir = d.expand( '${libdir}/evas/utils')
25
26 do_split_packages(d, basedir, 'evas_image_loader\.(.*)$',
27 output_pattern = "evas-generic-loader-%s",
28 description = 'Evas generic loaders - module %s',
29 allow_dirs=True, recursive=False, extra_depends="" )
30
31 do_split_packages(d, basedir, 'evas_generic_pdf_loader\.(.*)$',
32 output_pattern = "evas-generic-pdf-loader-%s",
33 description = 'Evas generic pdf loaders - module %s',
34 allow_dirs=True, recursive=False, extra_depends="" )
35}
36
37# add symlinks for different format (it doesn't make much sense to package them in separate packages)
38FILES_evas-generic-loader-xcf += " \
39 ${libdir}/evas/utils/evas_image_loader.xcf.gz \
40"
41FILES_evas-generic-loader-svg += " \
42 ${libdir}/evas/utils/evas_image_loader.svg.gz \
43 ${libdir}/evas/utils/evas_image_loader.svgz \
44"
45FILES_evas-generic-loader-pdf += " \
46 ${libdir}/evas/utils/evas_image_loader.doc \
47 ${libdir}/evas/utils/evas_image_loader.docx \
48 ${libdir}/evas/utils/evas_image_loader.odp \
49 ${libdir}/evas/utils/evas_image_loader.ods \
50 ${libdir}/evas/utils/evas_image_loader.odt \
51 ${libdir}/evas/utils/evas_image_loader.ppt \
52 ${libdir}/evas/utils/evas_image_loader.pptx \
53 ${libdir}/evas/utils/evas_image_loader.rtf \
54 ${libdir}/evas/utils/evas_image_loader.xls \
55 ${libdir}/evas/utils/evas_image_loader.xlsx \
56"
57FILES_evas-generic-pdf-loader-libreoffice += " \
58 ${libdir}/evas/utils/evas_generic_pdf_loader.doc \
59 ${libdir}/evas/utils/evas_generic_pdf_loader.docx \
60 ${libdir}/evas/utils/evas_generic_pdf_loader.odp \
61 ${libdir}/evas/utils/evas_generic_pdf_loader.ods \
62 ${libdir}/evas/utils/evas_generic_pdf_loader.odt \
63 ${libdir}/evas/utils/evas_generic_pdf_loader.ppt \
64 ${libdir}/evas/utils/evas_generic_pdf_loader.pptx \
65 ${libdir}/evas/utils/evas_generic_pdf_loader.rtf \
66 ${libdir}/evas/utils/evas_generic_pdf_loader.xls \
67 ${libdir}/evas/utils/evas_generic_pdf_loader.xlsx \
68"
69
70FILES_${PN}-dbg += "${libdir}/evas/utils/.debug"
71
72PACKAGES += "evas-generic-loader-svg"
73PACKAGES_DYNAMIC += "^evas-generic-loader-.* ^evas-generic-pdf-loader-.*"
diff --git a/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb b/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb
deleted file mode 100644
index ecdbcee1f..000000000
--- a/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7SRC_URI[md5sum] = "3ca8443b8cbf177845595c5e02fbc49c"
8SRC_URI[sha256sum] = "caa22c9ba1ae9629c16a3fe809ea927f60b8f0d80cdb7f145159b997b9ae2bcd"
9
10PNBLACKLIST[evas-generic-loaders] ?= "Depends on blacklisted eina - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12PNBLACKLIST[evas-generic-loaders] ?= "Runtime depends on blacklisted evas-generic-loaders - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14PNBLACKLIST[evas-generic-loaders] ?= "Runtime depends on blacklisted evas-generic-loaders-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/expedite.inc b/meta-efl/recipes-efl/efl/expedite.inc
deleted file mode 100644
index 60e85974c..000000000
--- a/meta-efl/recipes-efl/efl/expedite.inc
+++ /dev/null
@@ -1,25 +0,0 @@
1DESCRIPTION = "Expedite is a comprehensive benchmarking suite for Evas"
2DEPENDS = "eet evas libsdl"
3LICENSE = "MIT & BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d70bc65d46237e4ef386beebe7d0fe5b"
5
6INC_PR = "r0"
7
8inherit e
9
10EXTRA_OECONF = "\
11 --x-includes=${STAGING_INCDIR}/X11 \
12 --x-libraries=${STAGING_LIBDIR} \
13 --enable-simple-x11 \
14\
15 --enable-software-x11 \
16 --enable-xrender-x11 \
17 --enable-software-16-x11 \
18 --enable-opengl-x11 \
19 --enable-fb \
20 --disable-software-ddraw \
21 --disable-direct3d \
22"
23
24FILES_${PN} += "${datadir}"
25RDEPENDS_${PN} = "expedite-themes evas-engine-fb evas-engine-software-generic evas-engine-software-x11 evas-engine-gl-x11 evas-loader-png"
diff --git a/meta-efl/recipes-efl/efl/expedite_1.7.9.bb b/meta-efl/recipes-efl/efl/expedite_1.7.9.bb
deleted file mode 100644
index 832cd00a5..000000000
--- a/meta-efl/recipes-efl/efl/expedite_1.7.9.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI = "\
4 ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \
5"
6
7SRC_URI[md5sum] = "954fe8e40fec6a561190ff0fb75b6bdd"
8SRC_URI[sha256sum] = "a05be096c911e0d66d4bdc497ebb935a04ad23696de9084aed9959b5172a593e"
9
10PNBLACKLIST[expedite] ?= "Depends on blacklisted eet - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12PNBLACKLIST[expedite] ?= "Depends on blacklisted evas - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-loader-png - the recipe will be removed on 2017-09-01 unless the issue is fixed"
15
16PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite - the recipe will be removed on 2017-09-01 unless the issue is fixed"
17
18PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite-themes - the recipe will be removed on 2017-09-01 unless the issue is fixed"
19
20PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-gl-x11 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
21
22PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-software-generic - the recipe will be removed on 2017-09-01 unless the issue is fixed"
23
24PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
25
26PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-software-x11 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
27
28PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-fb - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/expedite_git.bb b/meta-efl/recipes-efl/efl/expedite_git.bb
deleted file mode 100644
index 65c2d4a49..000000000
--- a/meta-efl/recipes-efl/efl/expedite_git.bb
+++ /dev/null
@@ -1,31 +0,0 @@
1require ${BPN}.inc
2
3SRCREV = "a5e6af917af52877b378090811cf836c16d0bfbb"
4PV = "1.7.99+gitr${SRCPV}"
5
6DEFAULT_PREFERENCE = "-1"
7
8SRC_URI = "\
9 git://git.enlightenment.org/tools/${BPN}.git \
10"
11S = "${WORKDIR}/${SRCNAME}"
12
13PNBLACKLIST[expedite] ?= "Depends on blacklisted eet - the recipe will be removed on 2017-09-01 unless the issue is fixed"
14
15PNBLACKLIST[expedite] ?= "Depends on blacklisted evas - the recipe will be removed on 2017-09-01 unless the issue is fixed"
16
17PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-loader-png - the recipe will be removed on 2017-09-01 unless the issue is fixed"
18
19PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite - the recipe will be removed on 2017-09-01 unless the issue is fixed"
20
21PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-software-generic - the recipe will be removed on 2017-09-01 unless the issue is fixed"
22
23PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-fb - the recipe will be removed on 2017-09-01 unless the issue is fixed"
24
25PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-software-x11 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
26
27PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted evas-engine-gl-x11 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
28
29PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
30
31PNBLACKLIST[expedite] ?= "Runtime depends on blacklisted expedite-themes - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch b/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch
deleted file mode 100644
index 84be133f6..000000000
--- a/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1It causes testeina.c build to fail linking to internal eina_.*_{init,shutdown} symbols
2as reported in:
3http://lists.alioth.debian.org/pipermail/pkg-fso-maint/2010-May/003056.html
4
5Upstream-Status: Pending
6
7Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
8
9diff -uNr vala/tests/testeina.vala ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala
10--- vala/tests/testeina.vala 2014-01-13 16:16:53.984999035 +0100
11+++ ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala 2010-02-26 09:02:06.000000000 +0100
12@@ -153,22 +153,22 @@
13
14 void test_eina_benchmark()
15 {
16- assert( Eina.Module.init() );
17- assert( Eina.List.init() );
18- assert( Eina.Array.init() );
19- assert( Eina.Benchmark.init() );
20- assert( Eina.Mempool.init() );
21+// assert( Eina.Module.init() );
22+// assert( Eina.List.init() );
23+// assert( Eina.Array.init() );
24+// assert( Eina.Benchmark.init() );
25+// assert( Eina.Mempool.init() );
26 var b = new Eina.Benchmark( "test", "test");
27 assert( b.register( "bogus", spec_one, 0, 100, 5 ) );
28 unowned Eina.Array<string> result = b.run();
29 assert( result.count_get() == 2 );
30 result = null;
31 b = null;
32- assert( Eina.Mempool.shutdown() );
33- assert( Eina.Benchmark.shutdown() );
34- assert( Eina.Array.shutdown() );
35- assert( Eina.List.shutdown() );
36- assert( Eina.Module.shutdown() );
37+// assert( Eina.Mempool.shutdown() );
38+// assert( Eina.Benchmark.shutdown() );
39+// assert( Eina.Array.shutdown() );
40+// assert( Eina.List.shutdown() );
41+// assert( Eina.Module.shutdown() );
42 }
43
44 //===========================================================================
diff --git a/meta-efl/recipes-efl/efl/libeflvala_svn.bb b/meta-efl/recipes-efl/efl/libeflvala_svn.bb
deleted file mode 100644
index eaf4893f7..000000000
--- a/meta-efl/recipes-efl/efl/libeflvala_svn.bb
+++ /dev/null
@@ -1,23 +0,0 @@
1SUMMARY = "Vala meets the Enlightenment Foundation Libraries"
2AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5SECTION = "devel"
6DEPENDS = "vala-native glib-2.0 dbus dbus-glib eina eet evas ecore edje elementary tiff"
7PV = "2011.01.13.1+svnr${SRCPV}"
8PE = "1"
9PR = "r2"
10SRCREV = "${EFL_SRCREV}"
11SRCNAME = "vala"
12
13inherit e-base autotools-brokensep pkgconfig vala
14
15SRC_URI = "${E_SVN}/trunk/BINDINGS;module=${SRCNAME};protocol=http \
16 file://disable.eina.test.patch \
17"
18S = "${WORKDIR}/${SRCNAME}"
19
20PACKAGES =+ "${PN}-examples"
21FILES_${PN}-examples = "${datadir}/libeflvala ${bindir}/*"
22
23PNBLACKLIST[libeflvala] ?= "Depends on blacklisted elementary - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/efl/libeweather_svn.bb b/meta-efl/recipes-efl/efl/libeweather_svn.bb
deleted file mode 100644
index 53988b0d1..000000000
--- a/meta-efl/recipes-efl/efl/libeweather_svn.bb
+++ /dev/null
@@ -1,48 +0,0 @@
1SUMMARY = "EFL-based weather widget library"
2LICENSE = "LGPL-2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
4 file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e"
5
6DEPENDS = "ecore edje"
7PV = "0.0.0+svnr${SRCPV}"
8SRCREV = "${EFL_SRCREV}"
9
10inherit efl
11SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep"
12S = "${WORKDIR}/${SRCNAME}"
13
14EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
15
16RSUGGESTS_${PN} = "elementary-tests"
17
18do_compile_append() {
19 sed -i -e s:${STAGING_DIR_TARGET}::g \
20 -e s:/${TARGET_SYS}::g \
21 eweather.pc
22}
23
24PACKAGES += "${PN}-plugins"
25
26FILES_${PN}-themes = "\
27 ${datadir} \
28"
29
30FILES_${PN}-plugins = "\
31 ${libdir}/eweather/plugins/*.so \
32"
33
34FILES_${PN}-dbg += "\
35 ${libdir}/eweather/plugins/.debug \
36"
37
38FILES_${PN}-dev += "\
39 ${libdir}/eweather/plugins/*.a \
40 ${libdir}/eweather/plugins/*.la \
41"
42
43RRECOMMENDS_${PN} = "\
44 ${PN}-themes \
45 ${PN}-plugins \
46"
47
48PNBLACKLIST[libeweather] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130649/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb
deleted file mode 100644
index ee4e2c414..000000000
--- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1SUMMARY = "Efl Software Development Kit"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5
6ALLOW_EMPTY_${PN} = "1"
7
8PR = "r1"
9
10require packagegroup-efl-sdk.inc
11
12PACKAGES = "${PN}"
13
14RDEPENDS_${PN} = "\
15 packagegroup-core-sdk \
16 ${SDK-EFL} \
17 ${SDK-EXTRAS}"
18
19PNBLACKLIST[packagegroup-efl-sdk] ?= "Runtime depends on blacklisted elementary-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc
deleted file mode 100644
index f2b0456d4..000000000
--- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc
+++ /dev/null
@@ -1,12 +0,0 @@
1SDK-EFL = " \
2 efl-dev \
3 elementary-dev \
4 edbus-dev \
5 luajit-dev \
6"
7
8SDK-EXTRAS ?= ""
9SDK-EXTRAS_qemux86 ?= " valgrind lttng-ust-dev"
10SDK-EXTRAS_qemux86-64 ?= " lttng-ust-dev"
11SDK-EXTRAS_qemuppc ?= " lttng-ust-dev"
12SDK-EXTRAS_qemuarm ?= " lttng-ust-dev"
diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb
deleted file mode 100644
index 2d9dde649..000000000
--- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1SUMMARY = "Efl Software Development Kit"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5
6ALLOW_EMPTY_${PN} = "1"
7
8PR = "r1"
9
10require packagegroup-efl-sdk.inc
11
12PACKAGES = "${PN} ${PN}-dbg"
13
14RDEPENDS_${PN} = "\
15 packagegroup-core-standalone-sdk-target \
16 ${SDK-EFL} \
17 ${SDK-EXTRAS}"
18
19PNBLACKLIST[packagegroup-efl-standalone-sdk-target] ?= "Runtime depends on blacklisted elementary-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb
deleted file mode 100644
index 95ebcabf3..000000000
--- a/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1DESCRIPTION = "The Illume Windowing Environment -- install this task to get the Enlightenment Window Manager + the Illume environment."
2SECTION = "x11/wm"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://${TOPDIR}/meta-openembedded/meta-efl/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PV = "1.0"
6PR = "r5"
7
8inherit packagegroup allarch
9
10# Default theme and config
11ETHEME ?= "e-wm-theme-default"
12ECONFIG ?= "e-wm-config-mobile"
13
14RRECOMMENDS_${PN} = "\
15 ${ETHEME} \
16"
17
18RDEPENDS_${PN} = "\
19 packagegroup-core-x11-xserver \
20 packagegroup-core-x11-utils \
21 \
22 e-wm \
23 ${ECONFIG} \
24"
25
26PNBLACKLIST[packagegroup-x11-illume] ?= "Runtime depends on blacklisted e-wm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
27
28PNBLACKLIST[packagegroup-x11-illume] ?= "Runtime depends on blacklisted e-wm-config-mobile - the recipe will be removed on 2017-09-01 unless the issue is fixed"
29
30PNBLACKLIST[packagegroup-x11-illume] ?= "Runtime depends on blacklisted e-wm-theme-default - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl.inc b/meta-efl/recipes-efl/webkit/webkit-efl.inc
deleted file mode 100644
index f49f2ee02..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl.inc
+++ /dev/null
@@ -1,69 +0,0 @@
1DESCRIPTION = "Webkit browser engine, EFL edition"
2LICENSE = "GPLv2+ & LGPL-2.1"
3LIC_FILES_CHKSUM = " \
4 file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
5 file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
6 file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
7 file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
8"
9
10# you need harfbuzz with icu enabled, you can add this to your config:
11# PACKAGECONFIG_append_pn-harfbuzz = " icu"
12DEPENDS = "icu libxslt sqlite3 gperf-native bison-native flex-native jpeg \
13 libpng libxt fontconfig cairo freetype glib-2.0 libsoup-2.4 \
14 libxml2 pango eina ecore evas edje eldbus harfbuzz enchant \
15 ruby-native elementary"
16
17PE = "1"
18
19SRCVER ?= "${PV}"
20SRC_URI = "\
21 ${E_RELEASES}/libs/webkit-efl/ewebkit-${SRCVER}.tar.xz \
22"
23S = "${WORKDIR}/ewebkit"
24
25inherit cmake lib_package pkgconfig perlnative pythonnative
26
27ARM_INSTRUCTION_SET = "arm"
28
29EXTRA_OECMAKE = " \
30 -DPORT=Efl \
31 -DSHARED_CORE=On \
32 -DENABLE_DRAG_SUPPORT=On \
33 -DENABLE_WEB_AUDIO=Off \
34 -DENABLE_VIDEO=Off \
35 -DENABLE_VIDEO_TRACK=Off \
36 -DENABLE_ACCESSIBILITY=Off \
37 -DENABLE_BATTERY_STATUS=Off \
38"
39# generated ASM code isn't compatible with armv[45]
40# it was removed from macro assembler in upstream commit 121885
41# https://bugs.webkit.org/show_bug.cgi?id=90198
42EXTRA_OECMAKE_append_armv4 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off"
43EXTRA_OECMAKE_append_armv5 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off"
44
45# hack it in OptionsEfl.cmake because that overrules -DENABLE_LLINT=Off
46do_configure_prepend_armv4() {
47 sed -i 's/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT OFF)/g' ${S}/Source/cmake/OptionsEfl.cmake
48}
49do_configure_prepend_armv5() {
50 sed -i 's/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT OFF)/g' ${S}/Source/cmake/OptionsEfl.cmake
51}
52
53# and disabled LLINT currently isn't supported, so restrict to armv7a and x86*
54COMPATIBLE_MACHINE = "(-)"
55COMPATIBLE_MACHINE_x86 = "(.*)"
56COMPATIBLE_MACHINE_x86-64 = "(.*)"
57COMPATIBLE_MACHINE_armv7a = "(.*)"
58
59LEAD_SONAME = "libewebkit.so"
60PACKAGES =+ "${PN}launcher-dbg ${PN}launcher ${PN}-inspector"
61
62FILES_${PN} += "${datadir}/ewebkit2-1/themes/default.edj"
63FILES_${PN}-dev += "${libdir}/cmake"
64FILES_${PN}launcher = "${bindir}/EWebLauncher"
65FILES_${PN}launcher-dbg = "${bindir}/.debug/EWebLauncher"
66FILES_${PN}-inspector += "${datadir}/ewebkit2-1/inspector"
67
68# http://errors.yoctoproject.org/Errors/Details/40659/
69PNBLACKLIST[webkit-efl] ?= "Old and unmaintaned fork with many security issues - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch
deleted file mode 100644
index 19b7bb88d..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch
+++ /dev/null
@@ -1,46 +0,0 @@
1From e6caaf6e80b9c80dc2b860b471a8f05e825f6dfa Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 14 Aug 2014 01:00:21 +0200
4Subject: [PATCH 1/3] OptionsCommon.cmake: don't mix CXX_FLAGS into C_FLAGS
5
6* it was added in https://bugs.webkit.org/show_bug.cgi?id=130261
7* causes build failures in udis86 which explicitly asks for gcc but then
8 gets g++ flags from CMAKE_CXX_FLAGS.
9
10cc1: error: command line option '-fvisibility-inlines-hidden' is valid
11for C++/ObjC++ but not for C [-Werror]
12cc1: error: command line option '-fpermissive' is valid for C++/ObjC++
13but not for C [-Werror]
14cc1: all warnings being treated as errors
15Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:11182:
16recipe for target
17'Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o'
18failed
19make[2]: ***
20[Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o]
21Error 1
22make[2]: *** Waiting for unfinished jobs....
23make[2]: Leaving directory
24'/OE/build/oe-core/tmp-eglibc/work/core2-64-oe-linux/webkit-efl/1_1.10.0+1.11.0-beta1-r0/build'
25
26Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
27---
28 Source/cmake/OptionsCommon.cmake | 2 +-
29 1 file changed, 1 insertion(+), 1 deletion(-)
30
31diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake
32index e304a99..045c614 100644
33--- a/Source/cmake/OptionsCommon.cmake
34+++ b/Source/cmake/OptionsCommon.cmake
35@@ -25,7 +25,7 @@ endif ()
36 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
37
38 if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
39- set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing")
40+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing")
41 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-exceptions -fno-strict-aliasing -fno-rtti")
42 endif ()
43
44--
452.1.3
46
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch
deleted file mode 100644
index 627a9e82b..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1From de93951f89e851b6689718022eebb4b8b1d14c06 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 13 Jan 2014 17:21:25 +0100
4Subject: [PATCH 2/3] WebKitHelpers.cmake: Add
5 -Wno-error=deprecated-declarations -Wno-error=cast-align
6 -Wno-error=type-limits
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 Source/cmake/WebKitHelpers.cmake | 10 ++++++++++
11 1 file changed, 10 insertions(+)
12
13diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake
14index 227b9ee..ae52ef6 100644
15--- a/Source/cmake/WebKitHelpers.cmake
16+++ b/Source/cmake/WebKitHelpers.cmake
17@@ -40,6 +40,25 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
18 # FIXME: When we use -fno-tree-dce to support the jsCStack branch merge, build error occurs due to the uninitialization. Temporarily we set
19 # uninitialized as build warning in order to support the jsCStack merge. https://bugs.webkit.org/show_bug.cgi?id=127777.
20 set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized -Wno-error=literal-suffix ${OLD_COMPILE_FLAGS}")
21+ # libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:13:84: error: 'GType soup_proxy_uri_resolver_get_type()' is deprecated (declared at /OE/build/oe-core/tmp-eglibc/sysroots/qemux86-64/usr/include/libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:48) [-Werror=deprecated-declarations]
22+ set(OLD_COMPILE_FLAGS "-Wno-error=deprecated-declarations ${OLD_COMPILE_FLAGS}")
23+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WTF/wtf/text/StringImpl.h:742:87: error: cast from 'uint8_t* {aka unsigned char*}' to 'WTF::StringImpl**' increases required alignment of target type [-Werror=cast-align]
24+ set(OLD_COMPILE_FLAGS "-Wno-error=cast-align ${OLD_COMPILE_FLAGS}")
25+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp:70:16: error: comparison is always false due to limited range of data type [-Werror=type-limits]
26+ set(OLD_COMPILE_FLAGS "-Wno-error=type-limits ${OLD_COMPILE_FLAGS}")
27+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WebKit2/UIProcess/API/efl/EwkView.cpp:832:5: error: missing initializer for member '_Evas_GL_Config::gles_version' [-Werror=missing-field-initializers]
28+ # this one is new with efl-1.12
29+ set(OLD_COMPILE_FLAGS "-Wno-error=missing-field-initializers ${OLD_COMPILE_FLAGS}")
30+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WTF/wtf/dtoa/bignum.cc:105:10: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
31+ # this one is new with gcc-5.2
32+ set(OLD_COMPILE_FLAGS "-Wno-error=strict-overflow ${OLD_COMPILE_FLAGS}")
33+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WTF/wtf/SaturatedArithmetic.h:46:26: error: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Werror=parentheses]
34+ # this one is new with gcc-5.2
35+ set(OLD_COMPILE_FLAGS "-Wno-error=parentheses ${OLD_COMPILE_FLAGS}")
36+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WebCore/loader/cache/CachedScript.cpp:103:108: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
37+ # this one is new with gcc-5.2
38+ set(OLD_COMPILE_FLAGS "-Wno-error=logical-not-parentheses ${OLD_COMPILE_FLAGS}")
39+
40 endif ()
41
42 set_target_properties(${_target} PROPERTIES
43--
442.1.3
45
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch
deleted file mode 100644
index e718ee1c1..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From a076d76b8e8862bd641cd991190e82cfd478cc66 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 20 Aug 2014 00:52:03 +0200
4Subject: [PATCH 3/3] FEBlendNEON.h: fix missing semicolon
5
6* Otherwise fails with:
7In file included from ewebkit/Source/WebCore/platform/graphics/filters/FEBlend.cpp:29:0:
8ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h: In member function 'virtual void WebCore::FEBlend::platformApplySoftware()':
9ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected primary-expression before '}' token
10 }
11 ^
12ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: return-statement with a value, in function returning 'void' [-fpermissive]
13ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected ';' before '}' token
14
15Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
16---
17 Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
21index 1c50765..f4b6f46 100644
22--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
23+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
24@@ -126,7 +126,7 @@ void FEBlend::platformApplySoftware()
25
26 if (pixelArrayLength >= 8) {
27 platformApplyNEON(srcPixelArrayA->data(), srcPixelArrayB->data(), dstPixelArray->data(), pixelArrayLength);
28- return
29+ return;
30 }
31 // If there is just one pixel we expand it to two.
32 ASSERT(pixelArrayLength > 0);
33--
342.1.3
35
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch
deleted file mode 100644
index bfa3052b1..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch
+++ /dev/null
@@ -1,146 +0,0 @@
1From baebc004111289ef658c78a42f8332f3dceef41e Mon Sep 17 00:00:00 2001
2From: "ryuan.choi@navercorp.com" <ryuan.choi@navercorp.com>
3Date: Thu, 13 Nov 2014 07:07:16 +0000
4Subject: [PATCH 4/4] Fix the build with EFL 1.12
5 https://bugs.webkit.org/show_bug.cgi?id=138245
6
7Reviewed by Gyuyoung Kim.
8
9Source/WebKit2:
10
11* UIProcess/API/efl/EwkView.cpp:
12First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because
13Evas_GL.h can't be included in UniquePtrEfl.h
14It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL.
15Second, provided the version of GLES in Evas_GL_Config not to break build with
16EFL 1.12
17(EwkView::EwkView):
18(EwkView::~EwkView):
19(EwkView::displayTimerFired):
20(EwkView::createGLSurface):
21* UIProcess/API/efl/EwkView.h:
22
23Source/WTF:
24
25* wtf/efl/UniquePtrEfl.h:
26Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because
27it should not be included with official GL headers.
28
29git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
30---
31 Source/WTF/wtf/efl/UniquePtrEfl.h | 2 --
32 Source/WebKit2/UIProcess/API/efl/EwkView.cpp | 24 ++++++++++++++++--------
33 Source/WebKit2/UIProcess/API/efl/EwkView.h | 3 ++-
34 3 files changed, 18 insertions(+), 11 deletions(-)
35
36diff --git a/Source/WTF/wtf/efl/UniquePtrEfl.h b/Source/WTF/wtf/efl/UniquePtrEfl.h
37index ba0110a..038d3fb 100644
38--- a/Source/WTF/wtf/efl/UniquePtrEfl.h
39+++ b/Source/WTF/wtf/efl/UniquePtrEfl.h
40@@ -33,7 +33,6 @@
41 #include <Ecore_IMF.h>
42 #include <Eina.h>
43 #include <Evas.h>
44-#include <Evas_GL.h>
45
46 namespace WTF {
47
48@@ -51,7 +50,6 @@ using EflUniquePtr = std::unique_ptr<T, EflPtrDeleter<T>>;
49 macro(Eina_Hash, eina_hash_free) \
50 macro(Eina_Module, eina_module_free) \
51 macro(Evas_Object, evas_object_del) \
52- macro(Evas_GL, evas_gl_free)
53
54 #define WTF_DEFINE_EFLPTR_DELETER(typeName, deleterFunc) \
55 template<> struct EflPtrDeleter<typeName> \
56diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
57index 50d34ed..6ff3394 100755
58--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
59+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
60@@ -299,9 +299,11 @@ EwkView::EwkView(WKViewRef view, Evas_Object* evasObject)
61
62 // FIXME: Remove when possible.
63 static_cast<WebViewEfl*>(webView())->setEwkView(this);
64- m_evasGL = EflUniquePtr<Evas_GL>(evas_gl_new(evas_object_evas_get(m_evasObject)));
65+
66+ // FIXME: Consider it to move into EvasGLContext.
67+ m_evasGL = evas_gl_new(evas_object_evas_get(m_evasObject));
68 if (m_evasGL)
69- m_evasGLContext = EvasGLContext::create(m_evasGL.get());
70+ m_evasGLContext = EvasGLContext::create(m_evasGL);
71
72 if (!m_evasGLContext) {
73 WARN("Failed to create Evas_GL, falling back to software mode.");
74@@ -333,6 +335,9 @@ EwkView::~EwkView()
75 {
76 ASSERT(wkPageToEvasObjectMap().get(wkPage()) == m_evasObject);
77 wkPageToEvasObjectMap().remove(wkPage());
78+
79+ if (m_evasGL)
80+ evas_gl_free(m_evasGL);
81 }
82
83 EwkView* EwkView::create(WKViewRef webView, Evas* canvas, Evas_Smart* smart)
84@@ -587,7 +592,7 @@ void EwkView::displayTimerFired(Timer<EwkView>*)
85 return;
86 }
87
88- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context());
89+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context());
90
91 WKViewPaintToCurrentGLContext(wkView());
92
93@@ -828,21 +833,24 @@ bool EwkView::createGLSurface()
94 EVAS_GL_DEPTH_BIT_8,
95 EVAS_GL_STENCIL_NONE,
96 EVAS_GL_OPTIONS_NONE,
97- EVAS_GL_MULTISAMPLE_NONE
98+ EVAS_GL_MULTISAMPLE_NONE,
99+#if defined(EVAS_GL_API_VERSION) && EVAS_GL_API_VERSION >= 2
100+ EVAS_GL_GLES_2_X
101+#endif
102 };
103
104 // Recreate to current size: Replaces if non-null, and frees existing surface after (OwnPtr).
105- m_evasGLSurface = EvasGLSurface::create(m_evasGL.get(), &evasGLConfig, deviceSize());
106+ m_evasGLSurface = EvasGLSurface::create(m_evasGL, &evasGLConfig, deviceSize());
107 if (!m_evasGLSurface)
108 return false;
109
110 Evas_Native_Surface nativeSurface;
111- evas_gl_native_surface_get(m_evasGL.get(), m_evasGLSurface->surface(), &nativeSurface);
112+ evas_gl_native_surface_get(m_evasGL, m_evasGLSurface->surface(), &nativeSurface);
113 evas_object_image_native_surface_set(smartData()->image, &nativeSurface);
114
115- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context());
116+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context());
117
118- Evas_GL_API* gl = evas_gl_api_get(m_evasGL.get());
119+ Evas_GL_API* gl = evas_gl_api_get(m_evasGL);
120
121 WKPoint boundsEnd = WKViewUserViewportToScene(wkView(), WKPointMake(deviceSize().width(), deviceSize().height()));
122 gl->glViewport(0, 0, boundsEnd.x, boundsEnd.y);
123diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.h b/Source/WebKit2/UIProcess/API/efl/EwkView.h
124index 1c482cf..68dab87 100644
125--- a/Source/WebKit2/UIProcess/API/efl/EwkView.h
126+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.h
127@@ -39,6 +39,7 @@
128 #endif
129
130 typedef struct _cairo_surface cairo_surface_t;
131+typedef struct _Evas_GL Evas_GL;
132
133 namespace WebKit {
134 class ContextMenuClientEfl;
135@@ -241,7 +242,7 @@ private:
136 Evas_Object* m_evasObject;
137 RefPtr<EwkContext> m_context;
138 RefPtr<EwkPageGroup> m_pageGroup;
139- EflUniquePtr<Evas_GL> m_evasGL;
140+ Evas_GL* m_evasGL;
141 std::unique_ptr<WebCore::EvasGLContext> m_evasGLContext;
142 std::unique_ptr<WebCore::EvasGLSurface> m_evasGLSurface;
143 bool m_pendingSurfaceResize;
144--
1452.1.3
146
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch
deleted file mode 100644
index 7e8e295c7..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
1From a00a7097b85567ae6eb7a00b3ce7ef021841203c Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 24 Sep 2015 18:03:52 +0200
4Subject: [PATCH 5/5] Fix the build with cmake 3
5
6* the same issue as in GTK port:
7 https://bugs.webkit.org/show_bug.cgi?id=141796
8 http://trac.webkit.org/changeset/180502
9
10* otherwise linking fails with couple undefined symbols
11| CMakeFiles/WebKit2.dir/PluginProcess/unix/PluginProcessMainUnix.cpp.o: In function `WebKit::webkitXError(_XDisplay*, XErrorEvent*)':
12| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:63: undefined reference to `XGetErrorText'
13| CMakeFiles/WebKit2.dir/PluginProcess/unix/PluginProcessMainUnix.cpp.o: In function `WebKit::PluginProcessMain::parseCommandLine(int, char**)':
14| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:102: undefined reference to `XSetErrorHandler'
15| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:102: undefined reference to `XSetErrorHandler'
16| CMakeFiles/WebKit2.dir/WebProcess/efl/WebProcessMainEfl.cpp.o: In function `WebKit::WebProcessMain::platformInitialize()':
17| ewebkit/Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:67: undefined reference to `XSetExtensionErrorHandler'
18| ewebkit/Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:67: undefined reference to `XSetExtensionErrorHandler'
19| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPostInitializeWindowed(bool, unsigned long)':
20| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:170: undefined reference to `XFlush'
21| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPostInitializeWindowless()':
22| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:195: undefined reference to `XGetVisualInfo'
23| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:199: undefined reference to `XFree'
24| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:202: undefined reference to `XCreateColormap'
25| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformDestroy()':
26| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:251: undefined reference to `XFreeColormap'
27| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:255: undefined reference to `XFreePixmap'
28| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformGeometryDidChange()':
29| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:293: undefined reference to `XCreatePixmap'
30| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:286: undefined reference to `XFreePixmap'
31| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:295: undefined reference to `XSync'
32| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPaint(WebCore::GraphicsContext*, WebCore::IntRect const&, bool)':
33| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:343: undefined reference to `XSync'
34| collect2: error: ld returned 1 exit status
35| Source/WebKit2/CMakeFiles/WebKit2.dir/build.make:16145: recipe for target 'lib/libewebkit2.so.1.11.0' failed
36| make[2]: *** [lib/libewebkit2.so.1.11.0] Error 1
37
38Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
39---
40 Source/WebCore/PlatformEfl.cmake | 1 +
41 Source/WebKit2/PlatformEfl.cmake | 3 +++
42 Source/cmake/OptionsEfl.cmake | 1 +
43 Tools/WebKitTestRunner/PlatformEfl.cmake | 1 +
44 4 files changed, 6 insertions(+)
45
46diff --git a/Source/WebCore/PlatformEfl.cmake b/Source/WebCore/PlatformEfl.cmake
47index 41ffc15..63b7861 100644
48--- a/Source/WebCore/PlatformEfl.cmake
49+++ b/Source/WebCore/PlatformEfl.cmake
50@@ -404,6 +404,7 @@ if (WTF_USE_3D_GRAPHICS)
51 )
52 endif ()
53
54+ find_package(X11 REQUIRED)
55 list(APPEND WebCore_LIBRARIES
56 ${X11_X11_LIB}
57 )
58diff --git a/Source/WebKit2/PlatformEfl.cmake b/Source/WebKit2/PlatformEfl.cmake
59index 8c66d1b..d96f0bd 100644
60--- a/Source/WebKit2/PlatformEfl.cmake
61+++ b/Source/WebKit2/PlatformEfl.cmake
62@@ -331,12 +331,15 @@ if (ENABLE_SECCOMP_FILTERS)
63 endif ()
64
65 if (ENABLE_ECORE_X)
66+ find_package(X11 REQUIRED)
67 list(APPEND WebProcess_LIBRARIES
68 ${ECORE_X_LIBRARIES}
69 ${X11_Xext_LIB}
70 )
71 list(APPEND WebKit2_LIBRARIES
72 ${ECORE_X_LIBRARIES}
73+ ${X11_X11_LIB}
74+ ${X11_Xext_LIB}
75 )
76 endif ()
77
78diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake
79index 8585f19..1aa9002 100644
80--- a/Source/cmake/OptionsEfl.cmake
81+++ b/Source/cmake/OptionsEfl.cmake
82@@ -181,6 +181,7 @@ endif ()
83
84 if (WTF_OS_UNIX)
85 set(ENABLE_X11_TARGET ON)
86+ find_package(X11 REQUIRED)
87 add_definitions(-DXP_UNIX)
88 endif (WTF_OS_UNIX)
89
90diff --git a/Tools/WebKitTestRunner/PlatformEfl.cmake b/Tools/WebKitTestRunner/PlatformEfl.cmake
91index 1873279..a905f2a 100644
92--- a/Tools/WebKitTestRunner/PlatformEfl.cmake
93+++ b/Tools/WebKitTestRunner/PlatformEfl.cmake
94@@ -53,6 +53,7 @@ list(APPEND WebKitTestRunnerInjectedBundle_LIBRARIES
95 )
96
97 if (ENABLE_ECORE_X)
98+ find_package(X11 REQUIRED)
99 list(APPEND WebKitTestRunner_INCLUDE_DIRECTORIES
100 ${ECORE_X_INCLUDE_DIRS}
101 )
102--
1032.6.0
104
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch
deleted file mode 100644
index 05626349b..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 993882f81fe991b8baf1099392703337cc13fac0 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 27 Jan 2016 18:40:23 +0100
4Subject: [PATCH] OptionsEfl.cmake: Fix build with newer CMake 3.4
5
6* otherwise it fails with:
7 | CMake Error at Source/cmake/OptionsEfl.cmake:251 (CHECK_INCLUDE_FILES):
8 | Unknown CMake command "CHECK_INCLUDE_FILES".
9* https://bugs.webkit.org/show_bug.cgi?id=150117
10
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 Source/cmake/OptionsEfl.cmake | 1 +
14 1 file changed, 1 insertion(+)
15
16diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake
17index 1aa9002..05216d0 100644
18--- a/Source/cmake/OptionsEfl.cmake
19+++ b/Source/cmake/OptionsEfl.cmake
20@@ -253,6 +253,7 @@ if (ENABLE_WEBGL OR WTF_USE_TILED_BACKING_STORE)
21 set(WTF_USE_EGL 1)
22 add_definitions(-DWTF_USE_EGL=1)
23 else ()
24+ include(CheckIncludeFiles)
25 CHECK_INCLUDE_FILES("GL/glx.h" OPENGLX_FOUND)
26 add_definitions(-DWTF_USE_GLX=1)
27 endif ()
28--
292.7.0
30
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb b/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb
deleted file mode 100644
index 96ad83029..000000000
--- a/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI += "\
4 file://0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch \
5 file://0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch \
6 file://0003-FEBlendNEON.h-fix-missing-semicolon.patch \
7 file://0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch \
8 file://0005-Fix-the-build-with-cmake-3.patch \
9 file://0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch \
10"
11SRC_URI[md5sum] = "90fa970ebf8646319d292c2bb5bff5db"
12SRC_URI[sha256sum] = "d8d21e27f4a21cd77c41914548c184ddb98693ba23851aa66c8e51c0be4b90b7"
diff --git a/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb b/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb
deleted file mode 100644
index 040e006ab..000000000
--- a/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1SUMMARY = "Free GPS navigation for car and outdoor with OpenStreetMap maps"
2HOMEPAGE = "http://www.gps-routes.info/index.php?name=Content&pa=showpage&pid=1"
3LICENSE = "GPLv3"
4LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
5DEPENDS = "ecore evas imlib2 gpsd edje edje-native mysql5 intltool-native"
6
7SRC_URI = "http://www.gps-routes.info/debian/pool/main/m/mcnavi/mcnavi_${PV}.tar.gz"
8SRC_URI[md5sum] = "6860cde5c02a9f93c829da4b10e5a226"
9SRC_URI[sha256sum] = "ee7f65155e91386175875fc4f72f4bc94e4e9cdb8258112632da94520ef2c349"
10
11S = "${WORKDIR}/${PN}"
12
13inherit autotools
14
15PNBLACKLIST[mcnavi] ?= "BROKEN: latest version 0.3.4 is 3 years old and now broken with more strict ejde_cc from efl-1.13 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
16# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/main.edc:126. invalid state name: 'none'. "default" state must always be first.
17# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/itinerary.edc:84. invalid state name: 'none'. "default" state must always be first.
18# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/text.edc:1129. invalid state name: 'none'. "default" state must always be first.
19# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/fileopen.edc:78. invalid state name: 'off'. "default" state must always be first.
diff --git a/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb b/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb
deleted file mode 100644
index 632f79d46..000000000
--- a/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb
+++ /dev/null
@@ -1,33 +0,0 @@
1SUMMARY = "Library functions to get attribute bits"
2DESCRIPTION = "The Data Management API (DMAPI/XDSM) allows implementation \
3 of hierarchical storage management software with no kernel \
4 modifications as well as high-performance dump programs \
5 without requiring "raw" access to the disk and knowledge \
6 of filesystem structures.This interface is implemented by \
7 the libdm library."
8
9HOMEPAGE = "http://oss.sgi.com/projects/xfs"
10SECTION = "base"
11LICENSE = "LGPLv2.1"
12LIC_FILES_CHKSUM = "file://doc/COPYING;md5=1678edfe8de9be9564d23761ae2fa794"
13DEPENDS = "xfsprogs"
14
15SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/dmapi-${PV}.tar.gz \
16 file://remove-install-as-user.patch \
17 file://dmapi_aarch64_configure_support.patch \
18 "
19SRC_URI[md5sum] = "cd825d4e141c16011367e0a0dd98c9c5"
20SRC_URI[sha256sum] = "b18e34f47374f6adf7c164993c26df36986a009b86aa004ef9444102653aea69"
21
22inherit autotools-brokensep
23
24PARALLEL_MAKE = ""
25EXTRA_OEMAKE += "LIBTOOL="${HOST_SYS}-libtool --tag=CC" V=1"
26
27do_install () {
28 export DIST_ROOT=${D}
29 install -d ${D}${libdir}
30 oe_runmake install install-dev PKG_DEVLIB_DIR=${libdir}
31}
32
33PNBLACKLIST[dmapi] ?= "Depends on broken xfsprogs - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch b/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch
deleted file mode 100644
index 98753b742..000000000
--- a/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Add config support to cross compile dmapi for
2aarch64 architecture
3
4Upstream-Status: Pending
5
6Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
7
8--- dmapi-2.2.12_org/config.sub 2012-12-12 23:03:05.000000000 +0530
9+++ dmapi-2.2.12/config.sub 2014-03-24 16:49:56.771993523 +0530
10@@ -246,6 +246,7 @@ case $basic_machine in
11 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
12 | am33_2.0 \
13 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
14+ | aarch64 | aarch64be \
15 | bfin \
16 | c4x | clipper \
17 | d10v | d30v | dlx | dsp16xx \
18@@ -326,6 +327,7 @@ case $basic_machine in
19 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
20 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
21 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
22+ | aarch64-* | aarch64be-* \
23 | avr-* | avr32-* \
24 | bfin-* | bs2000-* \
25 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
26--- dmapi-2.2.12_org/config.guess 2012-12-12 23:03:05.000000000 +0530
27+++ dmapi-2.2.12/config.guess 2014-03-24 16:49:56.771993523 +0530
28@@ -864,6 +864,9 @@ EOF
29 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
30 fi
31 exit ;;
32+ aarch64*:Linux:*:*)
33+ echo ${UNAME_MACHINE}-unknown-linux-gnu
34+ exit;;
35 avr32*:Linux:*:*)
36 echo ${UNAME_MACHINE}-unknown-linux-gnu
37 exit ;;
diff --git a/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch b/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch
deleted file mode 100644
index e761db371..000000000
--- a/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch
+++ /dev/null
@@ -1,205 +0,0 @@
1remove install as user
2
3Upstream-Status: Inappropriate [configuration]
4
5Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
6---
7 include/buildmacros | 2 +-
8 include/install-sh | 95 ++++++++---------------------------------------------
9 2 files changed, 14 insertions(+), 83 deletions(-)
10
11diff --git a/include/buildmacros b/include/buildmacros
12index 7a01880..0840d55 100644
13--- a/include/buildmacros
14+++ b/include/buildmacros
15@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \
16 $(LFILES:.l=.o) \
17 $(YFILES:%.y=%.tab.o)
18
19-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
20+INSTALL = $(TOPDIR)/install-sh
21
22 IMAGES_DIR = $(TOPDIR)/all-images
23 DIST_DIR = $(TOPDIR)/dist
24diff --git a/include/install-sh b/include/install-sh
25index c952a71..b9d66f7 100755
26--- a/include/install-sh
27+++ b/include/install-sh
28@@ -24,11 +24,11 @@
29 # set set | yes yes
30 #
31 _usage() {
32- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
33- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
34- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
35+ echo "Usage: $prog [-m mode] -d directory"
36+ echo "or $prog [-m mode] file directory/file"
37+ echo "or $prog [-m mode] file [file ...] directory"
38 echo "or $prog -S file target (creates \"target\" symlink)"
39- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory"
40+ echo "or $prog -T lt_arg [-m mode] libtool.lai directory"
41 echo ""
42 echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
43 echo "behaviour of this command - see comments in the script."
44@@ -38,32 +38,6 @@ _usage() {
45 exit 1
46 }
47
48-_chown ()
49-{
50- _st=255
51- if [ $# -eq 3 ] ; then
52- chown $1:$2 $3
53- _st=$?
54- if [ $_st -ne 0 ] ; then
55- if [ $REAL_UID != '0' ] ; then
56- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then
57- echo '==============================================='
58- echo Ownership of files under ${DIST_ROOT:-/}
59- echo cannot be changed
60- echo '==============================================='
61- if [ -n "$DIST_ROOT" ] ; then
62- touch $DIST_ROOT/.chown.quiet
63- fi
64- fi
65- _st=0
66- fi
67- fi
68- fi
69-
70- return $_st
71-}
72-
73-
74 _manifest ()
75 {
76 echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
77@@ -77,9 +51,6 @@ Sflag=false
78 Tflag=false
79 DIRMODE=755
80 FILEMODE=644
81-OWNER=`id -u`
82-GROUP=`id -g`
83-REAL_UID=$OWNER
84
85 # default is to install and don't append manifest
86 INSTALL=true
87@@ -94,24 +65,16 @@ MANIFEST=:
88
89 if $INSTALL
90 then
91- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
92+ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod;
93 else
94- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
95+ CP=true; LN=true; MKDIR=true; CHMOD=true;
96 fi
97
98-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
99-
100-while getopts "Dcm:d:S:o:g:T:" c $*
101+while getopts "Dcm:d:S:T:" c $*
102 do
103 case $c in
104 c)
105 ;;
106- g)
107- GROUP=$OPTARG
108- ;;
109- o)
110- OWNER=$OPTARG
111- ;;
112 m)
113 DIRMODE=`expr $OPTARG`
114 FILEMODE=$DIRMODE
115@@ -146,18 +109,7 @@ then
116 # first usage
117 #
118 $MKDIR -p $dir
119- status=$?
120- if [ $status -eq 0 ]
121- then
122- $CHMOD $DIRMODE $dir
123- status=$?
124- fi
125- if [ $status -eq 0 ]
126- then
127- $CHOWN $OWNER $GROUP $dir
128- status=$?
129- fi
130- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
131+ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT}
132 elif $Sflag
133 then
134 #
135@@ -203,7 +155,7 @@ then
136 install_name=$target/$solib
137 $CP $solib $install_name
138 status=$?
139- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT}
140+ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT}
141 break
142 fi
143 done
144@@ -254,7 +206,7 @@ then
145 install_name=$target/$old_library
146 $CP $old_library $install_name
147 status=$?
148- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT}
149+ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT}
150 ;;
151 *)
152 echo "$prog: -T $lt_install invalid"
153@@ -267,7 +219,6 @@ then
154 if [ $status -eq 0 ]
155 then
156 $CHMOD $FILEMODE $install_name
157- $CHOWN $OWNER $GROUP $install_name
158 fi
159 ;;
160 esac
161@@ -292,23 +243,10 @@ else
162 then
163 if [ -f $dir/$f ]
164 then
165- $CHMOD $FILEMODE $dir/$f
166- status=$?
167- if [ $status -eq 0 ]
168- then
169- $CHOWN $OWNER $GROUP $dir/$f
170- status=$?
171- fi
172- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
173+ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f
174 else
175 $CHMOD $FILEMODE $dir
176- status=$?
177- if [ $status -eq 0 ]
178- then
179- $CHOWN $OWNER $GROUP $dir
180- status=$?
181- fi
182- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
183+ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT}
184 fi
185 fi
186 else
187@@ -334,14 +272,7 @@ else
188 status=$?
189 if [ $status -eq 0 ]
190 then
191- $CHMOD $FILEMODE $dir/$f
192- status=$?
193- if [ $status -eq 0 ]
194- then
195- $CHOWN $OWNER $GROUP $dir/$f
196- status=$?
197- fi
198- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
199+ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f
200 fi
201 [ $status -ne 0 ] && break
202 done
203--
2041.8.1.2
205
diff --git a/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb b/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb
deleted file mode 100644
index 3f5a5b124..000000000
--- a/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1SUMMARY = "Take photos and videos with your webcam, with fun graphical effects"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
4
5DEPENDS = "gtk+ gstreamer gst-plugins-base libcanberra udev librsvg gnome-desktop evolution-data-server intltool-native"
6
7PR = "r2"
8
9inherit gnome
10
11SRC_URI[archive.md5sum] = "1599fded8a1797ea51fb010af4e6c45b"
12SRC_URI[archive.sha256sum] = "48f03470c6f527caa0e3b269d3afcff86ae0939a74f66ce030d4eed3bc3cbd9a"
13GNOME_COMPRESS_TYPE="bz2"
14
15FILES_${PN} += "${datadir}/dbus-1"
16RRECOMMENDS_${PN} = "gst-plugins-good-meta gst-plugins-base-meta"
17
18EXTRA_OECONF += "--disable-scrollkeeper"
19
20do_configure_prepend() {
21 sed -i -e "s: help : :g" ${S}/Makefile.am
22}
23
24PNBLACKLIST[cheese] ?= "Depends on blacklisted gstreamer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
25
26PNBLACKLIST[cheese] ?= "Depends on blacklisted gnome-desktop - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch b/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch
deleted file mode 100644
index 75e45e0ab..000000000
--- a/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1Imported from Debian 0.1.8-3
2
3Upstream-Status: Pending
4
5diff --git a/src/Config.cxx b/src/Config.cxx
6index 28f37ab..bc58819 100644
7--- a/src/Config.cxx
8+++ b/src/Config.cxx
9@@ -22,7 +22,7 @@
10 using namespace ePDFView;
11
12 // Constants
13-static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "firefox %s";
14+static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "x-www-browser %s";
15 static const gchar *DEFAULT_OPEN_FILE_FOLDER = NULL;
16 static const gchar *DEFAULT_SAVE_FILE_FOLDER = NULL;
17 static const gboolean DEFAULT_SHOW_STATUSBAR = TRUE;
diff --git a/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch b/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch
deleted file mode 100644
index 8ad5b97ca..000000000
--- a/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Imported from Debian 0.1.8-3
2
3Upstream-Status: Pending
4
5diff --git a/src/gtk/MainView.cxx b/src/gtk/MainView.cxx
6index b983bff..f87de28 100644
7--- a/src/gtk/MainView.cxx
8+++ b/src/gtk/MainView.cxx
9@@ -634,8 +634,9 @@ MainView::showErrorMessage (const gchar *title, const gchar *body)
10 GTK_DIALOG_DESTROY_WITH_PARENT,
11 GTK_MESSAGE_ERROR,
12 GTK_BUTTONS_OK,
13+ "%s",
14 title);
15- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog),
16+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), "%s",
17 body);
18 gtk_dialog_run (GTK_DIALOG (errorDialog));
19 gtk_widget_destroy (errorDialog);
diff --git a/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch b/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch
deleted file mode 100644
index 84a491386..000000000
--- a/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1Imported from Debian 0.1.8-3
2
3Upstream-Status: Pending
4
5diff --git a/src/gtk/StockIcons.h b/src/gtk/StockIcons.h
6index c142a7a..58fcf2e 100644
7--- a/src/gtk/StockIcons.h
8+++ b/src/gtk/StockIcons.h
9@@ -18,7 +18,7 @@
10 #if !defined (__STOCK_ICONS_H__)
11 #define __STOCK_ICONS_H__
12
13-#include <glib/gmacros.h>
14+#include <glib.h>
15
16 G_BEGIN_DECLS
17
diff --git a/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch b/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch
deleted file mode 100644
index 282bfb184..000000000
--- a/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Imported from Debian 0.1.8-3
2
3Upstream-Status: Pending
4
5Index: trunk/src/PDFDocument.cxx
6===================================================================
7--- trunk/src/PDFDocument.cxx (revision 361)
8+++ trunk/src/PDFDocument.cxx (revision 367)
9@@ -21,4 +21,5 @@
10 #include <poppler.h>
11 #include <unistd.h>
12+#include <algorithm>
13 #include "epdfview.h"
14
15@@ -33,4 +34,22 @@
16 static PageMode convertPageMode (gint pageMode);
17 static gchar *getAbsoluteFileName (const gchar *fileName);
18+
19+namespace
20+{
21+ void
22+ convert_bgra_to_rgba (guint8 *data, int width, int height)
23+ {
24+ using std::swap;
25+
26+ for (int y = 0; y < height; y++)
27+ {
28+ for (int x = 0; x < width; x++)
29+ {
30+ swap(data[0], data[2]);
31+ data += 4;
32+ }
33+ }
34+ }
35+}
36
37 ///
38@@ -651,4 +670,5 @@
39 cairo_destroy(context);
40 cairo_surface_destroy (surface);
41+ convert_bgra_to_rgba(renderedPage->getData (), width, height);
42 #else // !HAVE_POPPLER_0_17_0
43 // Create the pixbuf from the data and render to it.
diff --git a/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb b/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb
deleted file mode 100644
index 5e11a95de..000000000
--- a/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1SUMMARY = "A lightweight PDF viewer based on gtk and poppler"
2HOMEPAGE = "http://www.emma-soft.com/projects/epdfview/"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5SECTION = "x11/applications"
6DEPENDS = "gtk+ poppler"
7
8PR = "r3"
9
10EXTRA_OECONF += "--without-cups"
11
12inherit autotools gettext
13
14SRC_URI = "http://www.emma-soft.com/projects/${BPN}/chrome/site/releases/${BP}.tar.bz2 \
15 file://browser_command.patch \
16 file://fix-format.patch \
17 file://glib-single-include.patch \
18 file://swap-colors.patch \
19"
20SRC_URI[md5sum] = "e50285b01612169b2594fea375f53ae4"
21SRC_URI[sha256sum] = "948648ae7c9d7b3b408d738bd4f48d87375b1196cae1129d6b846a8de0f2f8f0"
22
23PNBLACKLIST[epdfview] ?= "BROKEN: images are not displayed anymore - the recipe will be removed on 2017-09-01 unless the issue is fixed"
24# There will be no further development / upstream is gone [1]
25# [1] https://bugzilla.redhat.com/show_bug.cgi?id=906121
diff --git a/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb b/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb
deleted file mode 100644
index f6d737c81..000000000
--- a/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1SUMMARY = "GTK+ widget and function libraries for gnome-mplayer"
2HOMEPAGE = "http://code.google.com/p/gmtk"
3SECTION = "libs"
4
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
7
8DEPENDS = "gtk+ alsa-lib glib-2.0 virtual/libx11 intltool-native pulseaudio gtk+3"
9
10SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz"
11SRC_URI[md5sum] = "e06e9ca8d61d74910343bb3ef4348f7f"
12SRC_URI[sha256sum] = "a07130d62719e8c1244f8405dd97445798df5204fc0f3f2f2b669b125114b468"
13
14EXTRA_OECONF = "--disable-gconf --with-gio --with-alsa --enable-keystore"
15
16inherit gettext pkgconfig autotools gconf
17
18PNBLACKLIST[gmtk] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130661/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb b/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb
deleted file mode 100644
index 629b830dd..000000000
--- a/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb
+++ /dev/null
@@ -1,32 +0,0 @@
1SUMMARY = "A GTK+ interface to MPlayer"
2HOMEPAGE = "http://code.google.com/p/gnome-mplayer"
3SECTION = "multimedia"
4
5LICENSE = "GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
7
8PNBLACKLIST[gnome-mplayer] ?= "rdepends on blacklisted mplayer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9PR = "r2"
10
11DEPENDS = "gmtk gtk+ alsa-lib libnotify glib-2.0 dbus-glib virtual/libx11 libxscrnsaver"
12
13SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz"
14SRC_URI[md5sum] = "1d3ab24c5501b5528e357931ca4dc6da"
15SRC_URI[sha256sum] = "ac3c179345baecb4ca5237782aa33e83253a87bf8b42ce6eb3a9207a340f61b2"
16
17EXTRA_OECONF = "--with-gio --with-alsa --with-dbus --with-libnotify"
18
19FILES_${PN} += "${datadir}/gnome-control-center/default-apps/${PN}.xml"
20PACKAGES =+ "${PN}-nautilus-extension"
21FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so \
22 ${libdir}/nautilus/extensions-3.0/*.so"
23FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \
24 ${libdir}/nautilus/extensions-3.0/*.la"
25FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \
26 ${libdir}/nautilus/extensions-3.0/*.a"
27FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug \
28 ${libdir}/nautilus/extensions-3.0/.debug"
29
30inherit gettext pkgconfig mime gtk-icon-cache autotools
31
32RDEPENDS_${PN} = "mplayer"
diff --git a/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb b/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb
deleted file mode 100644
index c419d0f44..000000000
--- a/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1SUMMARY = "GTK+ Theme benchmark program"
2DEPENDS = "gtk+"
3HOMEPAGE = "http://wiki.laptop.org/go/GTK_for_OLPC"
4SECTION = "devel"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://appwindow.c;endline=13;md5=8c09920de460c7ea1f64ee56986aabd9"
7
8SRCREV = "99962ae39bb5aadb31929b25c58e1a053f9c9545"
9PV = "0.0.0+git${SRCPV}"
10
11SRC_URI = "git://dev.laptop.org/projects/soc-gtk/"
12S = "${WORKDIR}/git/gtk-theme-torturer"
13
14CFLAGS += "-Wl,-rpath-link,${STAGING_LIBDIR}"
15
16inherit distro_features_check
17ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
18
19do_install() {
20 install -d ${D}${bindir}
21 install -m 0755 torturer ${D}${bindir}
22}
23
24# http://errors.yoctoproject.org/Errors/Details/35132/
25PNBLACKLIST[gtk-theme-torturer] ?= "BROKEN: gmacros.h:182:53: error: size of array '_GStaticAssertCompileTimeAssertion_2' is negative - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb b/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb
deleted file mode 100644
index 6028f2d1a..000000000
--- a/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "gcalctool is a powerful calculator"
2SECTION = "x11"
3DEPENDS = "gtk+ gnome-doc-utils"
4
5LICENSE = "GPL-2.0"
6LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
7
8SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
9SRC_URI = "http://download.gnome.org/sources/${BPN}/${SHRT_VER}/${BP}.tar.gz"
10
11SRC_URI[md5sum] = "48db927c6e7ee1d5395f953a8c184c98"
12SRC_URI[sha256sum] = "346f645c0fdef900642f6e9a2c18e7ba9a7ca9bc62fe2b08eb418f065a425c89"
13
14inherit autotools pkgconfig gsettings
15
16do_configure_prepend() {
17 sed -i -e "s: help: :g" ${S}/Makefile.am
18}
19
20PNBLACKLIST[gcalctool] ?= "broken at least since April 2013 http://permalink.gmane.org/gmane.comp.handhelds.openembedded/57920 and nobody complained, it's also replaced by gnome calculator - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch b/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch
deleted file mode 100644
index 75aff5d7c..000000000
--- a/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch
+++ /dev/null
@@ -1,2281 +0,0 @@
1From 0a4fe802edbd2e8a016161f08283e4b467c6762e Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Tue, 21 Jun 2011 12:48:39 +0200
4Subject: [PATCH] Remove user switch applet
5
6This hasn't been updated to work with gnome-panel > 2.30.0, so just drop it
7
8Upstream-Status: unacceptable, backport
9
10Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
11---
12 configure.ac | 8 -
13 gui/Makefile.am | 2 -
14 .../GNOME_FastUserSwitchApplet.server.in.in | 38 -
15 .../GNOME_FastUserSwitchApplet.xml | 20 -
16 gui/user-switch-applet/Makefile.am | 67 -
17 gui/user-switch-applet/applet.c | 1662 --------------------
18 gui/user-switch-applet/gdm-entry-menu-item.c | 304 ----
19 gui/user-switch-applet/gdm-entry-menu-item.h | 51 -
20 po/POTFILES.in | 4 -
21 po/POTFILES.skip | 1 -
22 10 files changed, 0 insertions(+), 2157 deletions(-)
23 delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
24 delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
25 delete mode 100644 gui/user-switch-applet/Makefile.am
26 delete mode 100644 gui/user-switch-applet/applet.c
27 delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.c
28 delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.h
29
30diff --git a/configure.ac b/configure.ac
31index 841efe0..a834110 100644
32--- a/configure.ac
33+++ b/configure.ac
34@@ -149,13 +149,6 @@ PKG_CHECK_MODULES(SIMPLE_CHOOSER,
35 AC_SUBST(SIMPLE_CHOOSER_CFLAGS)
36 AC_SUBST(SIMPLE_CHOOSER_LIBS)
37
38-PKG_CHECK_MODULES(APPLET,
39- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
40- gtk+-2.0 >= $GTK_REQUIRED_VERSION
41- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION)
42-AC_SUBST(APPLET_CFLAGS)
43-AC_SUBST(APPLET_LIBS)
44-
45 PLUGIN_LIBTOOL_FLAGS="-export_dynamic -module -avoid-version"
46 AC_SUBST(PLUGIN_LIBTOOL_FLAGS)
47
48@@ -1340,7 +1333,6 @@ gui/Makefile
49 gui/simple-greeter/Makefile
50 gui/simple-greeter/libnotificationarea/Makefile
51 gui/simple-chooser/Makefile
52-gui/user-switch-applet/Makefile
53 utils/Makefile
54 data/gdm.conf
55 data/Makefile
56diff --git a/gui/Makefile.am b/gui/Makefile.am
57index 326239f..bda3f7a 100644
58--- a/gui/Makefile.am
59+++ b/gui/Makefile.am
60@@ -2,7 +2,6 @@ NULL =
61
62 SUBDIRS = \
63 simple-greeter \
64- user-switch-applet \
65 $(NULL)
66
67 if XDMCP_SUPPORT
68@@ -12,5 +11,4 @@ endif
69 DIST_SUBDIRS = \
70 simple-chooser \
71 simple-greeter \
72- user-switch-applet \
73 $(NULL)
74diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
75deleted file mode 100644
76index a9b775f..0000000
77--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
78+++ /dev/null
79@@ -1,38 +0,0 @@
80-<oaf_info>
81- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet_Factory" type="exe"
82- location="@LIBEXECDIR@/gdm-user-switch-applet">
83-
84- <oaf_attribute name="repo_ids" type="stringv">
85- <item value="IDL:Bonobo/GenericFactory:1.0"/>
86- <item value="IDL:Bonobo/Unknown:1.0"/>
87- </oaf_attribute>
88- <oaf_attribute name="name" type="string" _value="User Switcher Applet Factory"/>
89- <oaf_attribute name="description" type="string" _value="User Switcher Applet Factory"/>
90- <oaf_attribute name="bonobo:environment" type="stringv">
91- <item value="DBUS_SESSION_BUS_ADDRESS"/>
92- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
93- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
94- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
95- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
96- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
97- </oaf_attribute>
98- </oaf_server>
99-
100- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet" type="factory"
101- location="OAFIID:GNOME_FastUserSwitchApplet_Factory">
102-
103- <oaf_attribute name="repo_ids" type="stringv">
104- <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
105- <item value="IDL:Bonobo/Control:1.0"/>
106- <item value="IDL:Bonobo/Unknown:1.0"/>
107- </oaf_attribute>
108- <oaf_attribute name="name" type="string" _value="User Switcher"/>
109- <oaf_attribute name="description" type="string" _value="A menu to quickly switch between users"/>
110- <oaf_attribute name="panel:icon" type="string" value="stock_people"/>
111- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
112- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
113- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
114- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
115- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
116- </oaf_server>
117-</oaf_info>
118diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
119deleted file mode 100644
120index e1845c8..0000000
121--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
122+++ /dev/null
123@@ -1,20 +0,0 @@
124-<Root>
125- <popups>
126- <popup name="button3">
127- <menuitem
128- name="About Me Item"
129- verb="GdmAboutMe"
130- _label="Edit Personal _Information"/>
131- <menuitem
132- name="Users and Groups Admin Item"
133- verb="GdmUsersGroupsAdmin"
134- _label="_Edit Users and Groups"/>
135- <menuitem
136- name="About Item"
137- verb="GdmAbout"
138- _label="_About"
139- pixtype="stock"
140- pixname="gtk-about"/>
141- </popup>
142- </popups>
143-</Root>
144diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am
145deleted file mode 100644
146index 2d2cdc0..0000000
147--- a/gui/user-switch-applet/Makefile.am
148+++ /dev/null
149@@ -1,67 +0,0 @@
150-NULL =
151-
152-AM_CPPFLAGS = \
153- -I$(top_srcdir)/gui/simple-greeter \
154- -I$(top_srcdir)/common \
155- -DPREFIX=\""$(prefix)"\" \
156- -DLIBDIR=\""$(libdir)"\" \
157- -DDATADIR=\""$(datadir)"\" \
158- -DSYSCONFDIR=\""$(sysconfdir)"\" \
159- -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \
160- -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
161- -DGLADEDIR=\""$(pkgdatadir)"\" \
162- -DLIBEXECDIR=\""$(libexecdir)"\" \
163- -DSBINDIR=\""$(sbindir)"\" \
164- -DGDMCONFDIR=\"$(gdmconfdir)\" \
165- $(GTK_CFLAGS) \
166- $(APPLET_CFLAGS) \
167- $(NULL)
168-
169-libexec_PROGRAMS = \
170- gdm-user-switch-applet \
171- $(NULL)
172-
173-gdm_user_switch_applet_SOURCES = \
174- applet.c \
175- gdm-entry-menu-item.h \
176- gdm-entry-menu-item.c \
177- $(NULL)
178-
179-gdm_user_switch_applet_LDADD = \
180- $(top_builddir)/gui/simple-greeter/libgdmuser.la \
181- $(top_builddir)/common/libgdmcommon.la \
182- $(COMMON_LIBS) \
183- $(APPLET_LIBS) \
184- $(NULL)
185-
186-# Bonobo UI
187-uidir = $(datadir)/gnome-2.0/ui
188-ui_DATA = \
189- GNOME_FastUserSwitchApplet.xml \
190- $(NULL)
191-
192-# Bonobo .server
193-serverdir = $(libdir)/bonobo/servers
194-server_in_files = \
195- GNOME_FastUserSwitchApplet.server.in \
196- $(NULL)
197-server_DATA = $(server_in_files:.server.in=.server)
198-
199-$(server_in_files): $(server_in_files:.server.in=.server.in.in)
200- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
201-
202-@INTLTOOL_SERVER_RULE@
203-
204-EXTRA_DIST = \
205- $(ui_DATA) \
206- GNOME_FastUserSwitchApplet.server.in.in \
207- $(NULL)
208-
209-DISTCLEANFILES = \
210- $(server_in_files) \
211- $(server_DATA) \
212- $(NULL)
213-
214-MAINTAINERCLEANFILES = \
215- *~ \
216- Makefile.in
217diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
218deleted file mode 100644
219index b4f944c..0000000
220--- a/gui/user-switch-applet/applet.c
221+++ /dev/null
222@@ -1,1662 +0,0 @@
223-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
224- *
225- * Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
226- * Copyright (C) 2008 Red Hat, Inc.
227- *
228- * This program is free software; you can redistribute it and/or modify
229- * it under the terms of the GNU General Public License as published by
230- * the Free Software Foundation; either version 2 of the License, or
231- * (at your option) any later version.
232- *
233- * This program is distributed in the hope that it will be useful,
234- * but WITHOUT ANY WARRANTY; without even the implied warranty of
235- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
236- * GNU General Public License for more details.
237- *
238- * You should have received a copy of the GNU General Public License
239- * along with this program; if not, write to the Free Software
240- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
241- */
242-
243-#include "config.h"
244-
245-#include <string.h>
246-#include <unistd.h>
247-#include <stdlib.h>
248-#include <sys/types.h>
249-
250-#include <glib/gi18n.h>
251-#include <gdk/gdkkeysyms.h>
252-#include <gtk/gtk.h>
253-
254-#include <gconf/gconf.h>
255-#include <gconf/gconf-client.h>
256-
257-#include <dbus/dbus-glib.h>
258-
259-#include <bonobo/bonobo-main.h>
260-#include <bonobo/bonobo-ui-util.h>
261-
262-#include <panel-applet.h>
263-#include <panel-applet-gconf.h>
264-
265-#include "gdm-user-manager.h"
266-#include "gdm-entry-menu-item.h"
267-#include "gdm-settings-client.h"
268-
269-#define LOCKDOWN_DIR "/desktop/gnome/lockdown"
270-#define LOCKDOWN_USER_SWITCHING_KEY LOCKDOWN_DIR "/disable_user_switching"
271-#define LOCKDOWN_LOCK_SCREEN_KEY LOCKDOWN_DIR "/disable_lock_screen"
272-#define LOCKDOWN_COMMAND_LINE_KEY LOCKDOWN_DIR "/disable_command_line"
273-
274-typedef enum {
275- GSM_PRESENCE_STATUS_AVAILABLE = 0,
276- GSM_PRESENCE_STATUS_INVISIBLE,
277- GSM_PRESENCE_STATUS_BUSY,
278- GSM_PRESENCE_STATUS_IDLE,
279-} GsmPresenceStatus;
280-
281-typedef struct _GdmAppletData
282-{
283- PanelApplet *applet;
284-
285- GConfClient *client;
286- GdmUserManager *manager;
287- GdmUser *user;
288-
289- GtkWidget *menubar;
290- GtkWidget *menuitem;
291- GtkWidget *menu;
292-#ifdef BUILD_PRESENSE_STUFF
293- GtkWidget *user_item;
294-#endif
295- GtkWidget *control_panel_item;
296- GtkWidget *account_item;
297- GtkWidget *lock_screen_item;
298- GtkWidget *login_screen_item;
299- GtkWidget *quit_session_item;
300-
301- guint client_notify_lockdown_id;
302-
303- guint current_status;
304- guint user_loaded_notify_id;
305- guint user_changed_notify_id;
306- gint8 pixel_size;
307- gint panel_size;
308- GtkIconSize icon_size;
309-#ifdef BUILD_PRESENSE_STUFF
310- DBusGProxy *presence_proxy;
311-#endif
312-} GdmAppletData;
313-
314-typedef struct _SelectorResponseData
315-{
316- GdmAppletData *adata;
317- GtkRadioButton *radio;
318-} SelectorResponseData;
319-
320-static void reset_icon (GdmAppletData *adata);
321-static void update_label (GdmAppletData *adata);
322-
323-static gboolean applet_factory (PanelApplet *applet,
324- const char *iid,
325- gpointer data);
326-
327-PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory",
328- PANEL_TYPE_APPLET,
329- "gdm-user-switch-applet", "0",
330- (PanelAppletFactoryCallback)applet_factory,
331- NULL)
332-
333-static void
334-about_me_cb (BonoboUIComponent *ui_container,
335- gpointer data,
336- const char *cname)
337-{
338- GError *err;
339-
340- err = NULL;
341- if (! g_spawn_command_line_async ("gnome-about-me", &err)) {
342- g_critical ("Could not run `gnome-about-me': %s",
343- err->message);
344- g_error_free (err);
345- bonobo_ui_component_set_prop (ui_container,
346- "/commands/GdmAboutMe",
347- "hidden", "1",
348- NULL);
349- }
350-}
351-
352-/*
353- * gnome-panel/applets/wncklet/window-menu.c:window_filter_button_press()
354- *
355- * Copyright (C) 2005 James M. Cape.
356- * Copyright (C) 2003 Sun Microsystems, Inc.
357- * Copyright (C) 2001 Free Software Foundation, Inc.
358- * Copyright (C) 2000 Helix Code, Inc.
359- */
360-static gboolean
361-menubar_button_press_event_cb (GtkWidget *menubar,
362- GdkEventButton *event,
363- GdmAppletData *adata)
364-{
365- if (event->button != 1) {
366- g_signal_stop_emission_by_name (menubar, "button-press-event");
367- /* Reset the login window item */
368- }
369-
370- return FALSE;
371-}
372-
373-static void
374-about_cb (BonoboUIComponent *ui_container,
375- gpointer data,
376- const char *cname)
377-{
378- static const char *authors[] = {
379- "James M. Cape <jcape@ignore-your.tv>",
380- "Thomas Thurman <thomas@thurman.org.uk>",
381- "William Jon McCann <jmccann@redhat.com>",
382- NULL
383- };
384- static char *license[] = {
385- N_("The User Switch Applet is free software; you can redistribute it and/or modify "
386- "it under the terms of the GNU General Public License as published by "
387- "the Free Software Foundation; either version 2 of the License, or "
388- "(at your option) any later version."),
389- N_("This program is distributed in the hope that it will be useful, "
390- "but WITHOUT ANY WARRANTY; without even the implied warranty of "
391- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
392- "GNU General Public License for more details."),
393- N_("You should have received a copy of the GNU General Public License "
394- "along with this program; if not, write to the Free Software "
395- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA "),
396- NULL
397- };
398- char *license_i18n;
399-
400- license_i18n = g_strconcat (_(license[0]), "\n\n", _(license[1]), "\n\n", _(license[2]), NULL);
401-
402- gtk_show_about_dialog (NULL,
403- "version", VERSION,
404- "copyright", "Copyright \xc2\xa9 2004-2005 James M. Cape.\n"
405- "Copyright \xc2\xa9 2006 Thomas Thurman.\n"
406- "Copyright \xc2\xa9 2008 Red Hat, Inc.",
407- "comments", _("A menu to quickly switch between users."),
408- "authors", authors,
409- "license", license_i18n,
410- "wrap-license", TRUE,
411- "translator-credits", _("translator-credits"),
412- "logo-icon-name", "stock_people",
413- NULL);
414-
415- g_free (license_i18n);
416-}
417-
418-
419-static void
420-admin_cb (BonoboUIComponent *ui_container,
421- gpointer data,
422- const char *cname)
423-{
424-#ifdef USERS_ADMIN
425- char **args;
426- gboolean res;
427- GError *err;
428-
429- err = NULL;
430- if (!g_shell_parse_argv (USERS_ADMIN, NULL, &args, &err)) {
431- g_critical ("Could not parse users and groups management command line `%s': %s",
432- USERS_ADMIN, err->message);
433- return;
434- }
435-
436- res = g_spawn_async (g_get_home_dir (),
437- args,
438- NULL,
439- (G_SPAWN_STDOUT_TO_DEV_NULL |
440- G_SPAWN_STDERR_TO_DEV_NULL |
441- G_SPAWN_SEARCH_PATH),
442- NULL,
443- NULL,
444- NULL,
445- &err);
446- if (! res) {
447- g_critical ("Could not run `%s' to manage users and groups: %s",
448- USERS_ADMIN, err->message);
449- g_error_free (err);
450- }
451- g_strfreev (args);
452-#endif /* USERS_ADMIN */
453-}
454-
455-static void
456-set_menuitem_icon (BonoboUIComponent *component,
457- const char *item_path,
458- GtkIconTheme *theme,
459- const char *icon_name,
460- gint icon_size)
461-{
462- GdkPixbuf *pixbuf;
463- int width;
464- int height;
465-
466- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL);
467- if (pixbuf == NULL) {
468- return;
469- }
470-
471- width = gdk_pixbuf_get_width (pixbuf);
472- height = gdk_pixbuf_get_height (pixbuf);
473- if (width > icon_size + 4 || height > icon_size + 4) {
474- GdkPixbuf *tmp;
475- if (height > width) {
476- width *= (gdouble) icon_size / (gdouble) height;
477- height = icon_size;
478- } else {
479- height *= (gdouble) icon_size / (gdouble) width;
480- width = icon_size;
481- }
482- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
483- g_object_unref (pixbuf);
484- pixbuf = tmp;
485- }
486-
487- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL);
488- g_object_unref (pixbuf);
489-}
490-
491-static void
492-applet_style_set_cb (GtkWidget *widget,
493- GtkStyle *old_style,
494- gpointer data)
495-{
496- BonoboUIComponent *component;
497- GdkScreen *screen;
498- GtkIconTheme *theme;
499- int width;
500- int height;
501- int icon_size;
502-
503- if (gtk_widget_has_screen (widget)) {
504- screen = gtk_widget_get_screen (widget);
505- } else {
506- screen = gdk_screen_get_default ();
507- }
508-
509- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
510- GTK_ICON_SIZE_MENU, &width, &height)) {
511- icon_size = MAX (width, height);
512- } else {
513- icon_size = 16;
514- }
515-
516- theme = gtk_icon_theme_get_for_screen (screen);
517- component = panel_applet_get_popup_component (PANEL_APPLET (widget));
518-
519- set_menuitem_icon (component,
520- "/commands/GdmAboutMe",
521- theme,
522- "user-info",
523- icon_size);
524- set_menuitem_icon (component,
525- "/commands/GdmUsersGroupsAdmin",
526- theme,
527- "stock_people",
528- icon_size);
529-}
530-
531-static void
532-applet_change_background_cb (PanelApplet *applet,
533- PanelAppletBackgroundType type,
534- GdkColor *color,
535- GdkPixmap *pixmap,
536- GdmAppletData *adata)
537-{
538- GtkRcStyle *rc_style;
539- GtkStyle *style;
540-
541- gtk_widget_set_style (adata->menubar, NULL);
542- rc_style = gtk_rc_style_new ();
543- gtk_widget_modify_style (GTK_WIDGET (adata->menubar), rc_style);
544- g_object_unref (rc_style);
545-
546- switch (type) {
547- case PANEL_NO_BACKGROUND:
548- break;
549- case PANEL_COLOR_BACKGROUND:
550- gtk_widget_modify_bg (adata->menubar, GTK_STATE_NORMAL, color);
551- break;
552- case PANEL_PIXMAP_BACKGROUND:
553- style = gtk_style_copy (gtk_widget_get_style (adata->menubar));
554- if (style->bg_pixmap[GTK_STATE_NORMAL]) {
555- g_object_unref (style->bg_pixmap[GTK_STATE_NORMAL]);
556- }
557-
558- style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref (pixmap);
559- gtk_widget_set_style (adata->menubar, style);
560- g_object_unref (style);
561- break;
562- }
563-}
564-
565-/*
566- * gnome-panel/applets/wncklet/window-menu.c:window_menu_key_press_event()
567- *
568- * Copyright (C) 2003 Sun Microsystems, Inc.
569- * Copyright (C) 2001 Free Software Foundation, Inc.
570- * Copyright (C) 2000 Helix Code, Inc.
571- */
572-static gboolean
573-applet_key_press_event_cb (GtkWidget *widget,
574- GdkEventKey *event,
575- GdmAppletData *adata)
576-{
577- GtkMenuShell *menu_shell;
578-
579- switch (event->keyval) {
580- case GDK_KP_Enter:
581- case GDK_ISO_Enter:
582- case GDK_3270_Enter:
583- case GDK_Return:
584- case GDK_space:
585- case GDK_KP_Space:
586- menu_shell = GTK_MENU_SHELL (adata->menubar);
587- /*
588- * We need to call _gtk_menu_shell_activate() here as is done in
589- * window_key_press_handler in gtkmenubar.c which pops up menu
590- * when F10 is pressed.
591- *
592- * As that function is private its code is replicated here.
593- */
594- if (!menu_shell->active) {
595- gtk_grab_add (GTK_WIDGET (menu_shell));
596- menu_shell->have_grab = TRUE;
597- menu_shell->active = TRUE;
598- }
599-
600- gtk_menu_shell_select_first (menu_shell, FALSE);
601- return TRUE;
602- default:
603- break;
604- }
605-
606- return FALSE;
607-}
608-
609-static void
610-set_item_text_angle_and_alignment (GtkWidget *item,
611- double text_angle,
612- float xalign,
613- float yalign)
614-{
615- GtkWidget *label;
616-
617- label = gtk_bin_get_child (GTK_BIN (item));
618-
619- gtk_label_set_angle (GTK_LABEL (label), text_angle);
620-
621- gtk_misc_set_alignment (GTK_MISC (label), xalign, yalign);
622-}
623-
624-/*
625- * gnome-panel/applets/wncklet/window-menu.c:window_menu_size_allocate()
626- *
627- * Copyright (C) 2003 Sun Microsystems, Inc.
628- * Copyright (C) 2001 Free Software Foundation, Inc.
629- * Copyright (C) 2000 Helix Code, Inc.
630- */
631-static void
632-applet_size_allocate_cb (GtkWidget *widget,
633- GtkAllocation *allocation,
634- GdmAppletData *adata)
635-{
636- GList *children;
637- GtkWidget *top_item;
638- PanelAppletOrient orient;
639- gint pixel_size;
640- gdouble text_angle;
641- GtkPackDirection pack_direction;
642- float text_xalign;
643- float text_yalign;
644-
645- pack_direction = GTK_PACK_DIRECTION_LTR;
646- text_angle = 0.0;
647- text_xalign = 0.0;
648- text_yalign = 0.5;
649-
650- children = gtk_container_get_children (GTK_CONTAINER (adata->menubar));
651- top_item = GTK_WIDGET (children->data);
652- g_list_free (children);
653-
654- orient = panel_applet_get_orient (PANEL_APPLET (widget));
655-
656- switch (orient) {
657- case PANEL_APPLET_ORIENT_UP:
658- case PANEL_APPLET_ORIENT_DOWN:
659- gtk_widget_set_size_request (top_item, -1, allocation->height);
660- pixel_size = allocation->height - gtk_widget_get_style (top_item)->ythickness * 2;
661- break;
662- case PANEL_APPLET_ORIENT_LEFT:
663- gtk_widget_set_size_request (top_item, allocation->width, -1);
664- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2;
665- pack_direction = GTK_PACK_DIRECTION_TTB;
666- text_angle = 270.0;
667- text_xalign = 0.5;
668- text_yalign = 0.0;
669- break;
670- case PANEL_APPLET_ORIENT_RIGHT:
671- gtk_widget_set_size_request (top_item, allocation->width, -1);
672- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2;
673- pack_direction = GTK_PACK_DIRECTION_BTT;
674- text_angle = 90.0;
675- text_xalign = 0.5;
676- text_yalign = 0.0;
677- break;
678- default:
679- g_assert_not_reached ();
680- break;
681- }
682-
683- gtk_menu_bar_set_pack_direction (GTK_MENU_BAR (adata->menubar),
684- pack_direction);
685- gtk_menu_bar_set_child_pack_direction (GTK_MENU_BAR (adata->menubar),
686- pack_direction);
687-
688- set_item_text_angle_and_alignment (adata->menuitem,
689- text_angle,
690- text_xalign,
691- text_yalign);
692-
693- if (adata->panel_size != pixel_size) {
694- adata->panel_size = pixel_size;
695- reset_icon (adata);
696- }
697-}
698-
699-
700-static void
701-gdm_applet_data_free (GdmAppletData *adata)
702-{
703- gconf_client_notify_remove (adata->client, adata->client_notify_lockdown_id);
704-
705- if (adata->user_loaded_notify_id != 0) {
706- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id);
707- }
708-
709- if (adata->user_changed_notify_id != 0) {
710- g_signal_handler_disconnect (adata->user, adata->user_changed_notify_id);
711- }
712-
713-#ifdef BUILD_PRESENSE_STUFF
714- if (adata->presence_proxy != NULL) {
715- g_object_unref (adata->presence_proxy);
716- }
717-#endif
718-
719- if (adata->user != NULL) {
720- g_object_unref (adata->user);
721- }
722- g_object_unref (adata->client);
723- g_object_unref (adata->manager);
724-
725- g_free (adata);
726-}
727-
728-
729-/*
730- * gnome-panel/applets/wncklet/window-menu.c:window_menu_on_expose()
731- *
732- * Copyright (C) 2003 Sun Microsystems, Inc.
733- * Copyright (C) 2001 Free Software Foundation, Inc.
734- * Copyright (C) 2000 Helix Code, Inc.
735- */
736-static gboolean
737-menubar_expose_event_cb (GtkWidget *widget,
738- GdkEventExpose *event,
739- GdmAppletData *adata)
740-{
741- if (gtk_widget_has_focus (GTK_WIDGET (adata->applet)))
742- gtk_paint_focus (gtk_widget_get_style (widget),
743- gtk_widget_get_window (widget),
744- gtk_widget_get_state (widget),
745- NULL, widget, "menu-applet", 0, 0, -1, -1);
746-
747- return FALSE;
748-}
749-
750-static void
751-menu_style_set_cb (GtkWidget *menu,
752- GtkStyle *old_style,
753- GdmAppletData *adata)
754-{
755- GtkSettings *settings;
756- int width;
757- int height;
758-
759- adata->icon_size = gtk_icon_size_from_name ("panel-menu");
760-
761- if (adata->icon_size == GTK_ICON_SIZE_INVALID) {
762- adata->icon_size = gtk_icon_size_register ("panel-menu", 24, 24);
763- }
764-
765- if (gtk_widget_has_screen (menu)) {
766- settings = gtk_settings_get_for_screen (gtk_widget_get_screen (menu));
767- } else {
768- settings = gtk_settings_get_default ();
769- }
770-
771- if (!gtk_icon_size_lookup_for_settings (settings, adata->icon_size,
772- &width, &height)) {
773- adata->pixel_size = -1;
774- } else {
775- adata->pixel_size = MAX (width, height);
776- }
777-}
778-
779-static void
780-menuitem_style_set_cb (GtkWidget *menuitem,
781- GtkStyle *old_style,
782- GdmAppletData *adata)
783-{
784- GtkWidget *image;
785-
786- if (GDM_IS_ENTRY_MENU_ITEM (menuitem)) {
787- } else {
788- const char *icon_name;
789-
790- if (menuitem == adata->login_screen_item) {
791- icon_name = "system-users";
792- } else if (menuitem == adata->lock_screen_item) {
793- icon_name = "system-lock-screen";
794- } else if (menuitem == adata->quit_session_item) {
795- icon_name = "system-log-out";
796- } else if (menuitem == adata->account_item) {
797- icon_name = "user-info";
798- } else if (menuitem == adata->control_panel_item) {
799- icon_name = "preferences-desktop";
800- } else {
801- icon_name = GTK_STOCK_MISSING_IMAGE;
802- }
803-
804- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menuitem));
805- gtk_image_set_pixel_size (GTK_IMAGE (image), adata->pixel_size);
806- gtk_image_set_from_icon_name (GTK_IMAGE (image), icon_name,
807- adata->icon_size);
808- }
809-}
810-
811-static void
812-on_user_changed (GdmUser *user,
813- GdmAppletData *adata)
814-{
815- g_debug ("user changed");
816- update_label (adata);
817- reset_icon (adata);
818-}
819-
820-/* Called every time the menu is displayed (and also for some reason
821- * immediately it's created, which does no harm). All we have to do
822- * here is kick off a request to GDM to let us know which users are
823- * logged in, so we can display check marks next to their names.
824- */
825-static gboolean
826-menu_expose_cb (GtkWidget *menu,
827- gpointer data)
828-{
829- char *program;
830- GdmAppletData *adata = data;
831-
832- program = g_find_program_in_path ("gnome-control-center");
833- if (program != NULL) {
834- gtk_widget_show (adata->control_panel_item);
835- } else {
836- gtk_widget_hide (adata->control_panel_item);
837- }
838- g_free (program);
839- return FALSE;
840-}
841-
842-static void
843-maybe_lock_screen (GdmAppletData *adata)
844-{
845- char *args[3];
846- GError *err;
847- GdkScreen *screen;
848- gboolean use_gscreensaver = TRUE;
849- gboolean res;
850-
851- g_debug ("Attempting to lock screen");
852-
853- args[0] = g_find_program_in_path ("gnome-screensaver-command");
854- if (args[0] == NULL) {
855- args[0] = g_find_program_in_path ("xscreensaver-command");
856- use_gscreensaver = FALSE;
857- }
858-
859- if (args[0] == NULL) {
860- return;
861- }
862-
863- if (use_gscreensaver) {
864- args[1] = "--lock";
865- } else {
866- args[1] = "-lock";
867- }
868- args[2] = NULL;
869-
870- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) {
871- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet));
872- } else {
873- screen = gdk_screen_get_default ();
874- }
875-
876- err = NULL;
877- res = gdk_spawn_on_screen (screen,
878- g_get_home_dir (),
879- args,
880- NULL,
881- 0,
882- NULL,
883- NULL,
884- NULL,
885- &err);
886- if (! res) {
887- g_warning (_("Can't lock screen: %s"), err->message);
888- g_error_free (err);
889- }
890-
891- if (use_gscreensaver) {
892- args[1] = "--throttle";
893- } else {
894- args[1] = "-throttle";
895- }
896-
897- err = NULL;
898- res = gdk_spawn_on_screen (screen,
899- g_get_home_dir (),
900- args,
901- NULL,
902- (G_SPAWN_STDERR_TO_DEV_NULL
903- | G_SPAWN_STDOUT_TO_DEV_NULL),
904- NULL,
905- NULL,
906- NULL,
907- &err);
908- if (! res) {
909- g_warning (_("Can't temporarily set screensaver to blank screen: %s"),
910- err->message);
911- g_error_free (err);
912- }
913-
914- g_free (args[0]);
915-}
916-
917-static void
918-do_switch (GdmAppletData *adata,
919- GdmUser *user)
920-{
921- guint num_sessions;
922-
923- g_debug ("Do user switch");
924-
925- if (user == NULL) {
926- gdm_user_manager_goto_login_session (adata->manager);
927- goto out;
928- }
929-
930- num_sessions = gdm_user_get_num_sessions (user);
931- if (num_sessions > 0) {
932- gdm_user_manager_activate_user_session (adata->manager, user);
933- } else {
934- gdm_user_manager_goto_login_session (adata->manager);
935- }
936- out:
937- maybe_lock_screen (adata);
938-}
939-
940-static void
941-update_switch_user (GdmAppletData *adata)
942-{
943- gboolean can_switch;
944- gboolean has_other_users;
945-
946- can_switch = gdm_user_manager_can_switch (adata->manager);
947- g_object_get (adata->manager,
948- "has-multiple-users", &has_other_users,
949- NULL);
950-
951- if (can_switch && has_other_users) {
952- gtk_widget_show (adata->login_screen_item);
953- } else {
954-
955- gtk_widget_hide (adata->login_screen_item);
956- }
957-}
958-
959-static void
960-on_manager_is_loaded_changed (GdmUserManager *manager,
961- GParamSpec *pspec,
962- GdmAppletData *adata)
963-{
964- update_switch_user (adata);
965-}
966-
967-static void
968-on_manager_has_multiple_users_changed (GdmUserManager *manager,
969- GParamSpec *pspec,
970- GdmAppletData *adata)
971-{
972- update_switch_user (adata);
973-}
974-
975-#ifdef BUILD_PRESENSE_STUFF
976-static void
977-on_user_item_activate (GtkMenuItem *item,
978- GdmAppletData *adata)
979-{
980- g_signal_stop_emission_by_name (item, "activate");
981-}
982-#endif
983-
984-static void
985-on_control_panel_activate (GtkMenuItem *item,
986- GdmAppletData *adata)
987-{
988- char *args[2];
989- GError *error;
990- GdkScreen *screen;
991- gboolean res;
992-
993- args[0] = g_find_program_in_path ("gnome-control-center");
994- if (args[0] == NULL) {
995- return;
996- }
997- args[1] = NULL;
998-
999- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) {
1000- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet));
1001- } else {
1002- screen = gdk_screen_get_default ();
1003- }
1004-
1005- error = NULL;
1006- res = gdk_spawn_on_screen (screen,
1007- g_get_home_dir (),
1008- args,
1009- NULL,
1010- 0,
1011- NULL,
1012- NULL,
1013- NULL,
1014- &error);
1015- if (! res) {
1016- g_warning (_("Can't lock screen: %s"), error->message);
1017- g_error_free (error);
1018- }
1019-
1020- g_free (args[0]);
1021-}
1022-
1023-static void
1024-on_account_activate (GtkMenuItem *item,
1025- GdmAppletData *adata)
1026-{
1027- char *args[2];
1028- GError *error;
1029- GdkScreen *screen;
1030- gboolean res;
1031-
1032- args[0] = g_find_program_in_path ("accounts-dialog");
1033- if (args[0] == NULL) {
1034- args[0] = g_find_program_in_path ("gnome-about-me");
1035- if (args[0] == NULL) {
1036- return;
1037- }
1038- }
1039- args[1] = NULL;
1040-
1041- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) {
1042- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet));
1043- } else {
1044- screen = gdk_screen_get_default ();
1045- }
1046-
1047- error = NULL;
1048- res = gdk_spawn_on_screen (screen,
1049- g_get_home_dir (),
1050- args,
1051- NULL,
1052- 0,
1053- NULL,
1054- NULL,
1055- NULL,
1056- &error);
1057- if (! res) {
1058- g_warning (_("Can't lock screen: %s"), error->message);
1059- g_error_free (error);
1060- }
1061-
1062- g_free (args[0]);
1063-}
1064-
1065-static void
1066-on_lock_screen_activate (GtkMenuItem *item,
1067- GdmAppletData *adata)
1068-{
1069- maybe_lock_screen (adata);
1070-}
1071-
1072-static void
1073-on_login_screen_activate (GtkMenuItem *item,
1074- GdmAppletData *adata)
1075-{
1076- GdmUser *user;
1077-
1078- user = NULL;
1079-
1080- do_switch (adata, user);
1081-}
1082-
1083-static void
1084-on_quit_session_activate (GtkMenuItem *item,
1085- GdmAppletData *adata)
1086-{
1087- char *args[3];
1088- GError *error;
1089- GdkScreen *screen;
1090- gboolean res;
1091-
1092- args[0] = g_find_program_in_path ("gnome-session-save");
1093- if (args[0] == NULL) {
1094- return;
1095- }
1096-
1097- args[1] = "--logout-dialog";
1098- args[2] = NULL;
1099-
1100- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) {
1101- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet));
1102- } else {
1103- screen = gdk_screen_get_default ();
1104- }
1105-
1106- error = NULL;
1107- res = gdk_spawn_on_screen (screen,
1108- g_get_home_dir (),
1109- args,
1110- NULL,
1111- 0,
1112- NULL,
1113- NULL,
1114- NULL,
1115- &error);
1116- if (! res) {
1117- g_warning (_("Can't log out: %s"), error->message);
1118- g_error_free (error);
1119- }
1120-
1121- g_free (args[0]);
1122-}
1123-
1124-#ifdef BUILD_PRESENSE_STUFF
1125-static gboolean
1126-on_menu_key_press_event (GtkWidget *widget,
1127- GdkEventKey *event,
1128- GdmAppletData *adata)
1129-{
1130- GtkWidget *entry;
1131-
1132- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item));
1133-
1134- if (GTK_WIDGET_HAS_FOCUS (entry)) {
1135- gtk_widget_event (entry, (GdkEvent *)event);
1136- return TRUE;
1137- } else {
1138- return FALSE;
1139- }
1140-}
1141-
1142-static void
1143-save_status (GdmAppletData *adata,
1144- guint status)
1145-{
1146- if (adata->current_status != status) {
1147- GError *error;
1148-
1149- adata->current_status = status;
1150-
1151- g_debug ("Saving status: %u", status);
1152- error = NULL;
1153- dbus_g_proxy_call (adata->presence_proxy,
1154- "SetStatus",
1155- &error,
1156- G_TYPE_UINT, status,
1157- G_TYPE_INVALID,
1158- G_TYPE_INVALID);
1159-
1160- if (error != NULL) {
1161- g_warning ("Couldn't save presence status: %s", error->message);
1162- g_error_free (error);
1163- }
1164- }
1165-}
1166-
1167-static void
1168-on_status_available_activate (GtkWidget *widget,
1169- GdmAppletData *adata)
1170-{
1171-
1172- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) {
1173- save_status (adata, GSM_PRESENCE_STATUS_AVAILABLE);
1174- }
1175-}
1176-
1177-static void
1178-on_status_busy_activate (GtkWidget *widget,
1179- GdmAppletData *adata)
1180-{
1181- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) {
1182- save_status (adata, GSM_PRESENCE_STATUS_BUSY);
1183- }
1184-}
1185-
1186-static void
1187-on_status_invisible_activate (GtkWidget *widget,
1188- GdmAppletData *adata)
1189-{
1190- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) {
1191- save_status (adata, GSM_PRESENCE_STATUS_INVISIBLE);
1192- }
1193-}
1194-
1195-static struct {
1196- char *icon_name;
1197- char *display_name;
1198- void *menu_callback;
1199- GtkWidget *widget;
1200-} statuses[] = {
1201- { "user-online", N_("Available"), on_status_available_activate, NULL },
1202- { "user-invisible", N_("Invisible"), on_status_invisible_activate, NULL },
1203- { "user-busy", N_("Busy"), on_status_busy_activate, NULL },
1204- { "user-away", N_("Away"), NULL, NULL },
1205-};
1206-#endif
1207-
1208-static void
1209-update_label (GdmAppletData *adata)
1210-{
1211- GtkWidget *label;
1212- char *markup;
1213-
1214- label = gtk_bin_get_child (GTK_BIN (adata->menuitem));
1215-
1216-#ifdef BUILD_PRESENSE_STUFF
1217- markup = g_strdup_printf ("<b>%s</b> <small>(%s)</small>",
1218- gdm_user_get_real_name (GDM_USER (adata->user)),
1219- _(statuses[adata->current_status].display_name));
1220-#else
1221- markup = g_strdup_printf ("<b>%s</b>",
1222- gdm_user_get_real_name (GDM_USER (adata->user)));
1223-#endif
1224- gtk_label_set_markup (GTK_LABEL (label), markup);
1225- g_free (markup);
1226-}
1227-
1228-#ifdef BUILD_PRESENSE_STUFF
1229-static void
1230-save_status_text (GdmAppletData *adata)
1231-{
1232- GtkWidget *entry;
1233- GtkTextBuffer *buffer;
1234- char *escaped_text;
1235- char *text;
1236- GtkTextIter start, end;
1237-
1238- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item));
1239- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
1240- gtk_text_buffer_get_bounds (buffer, &start, &end);
1241- text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
1242- escaped_text = g_markup_escape_text (text, -1);
1243-
1244- if (escaped_text != NULL) {
1245- GError *error;
1246-
1247- error = NULL;
1248- dbus_g_proxy_call (adata->presence_proxy,
1249- "SetStatusText",
1250- &error,
1251- G_TYPE_STRING, escaped_text,
1252- G_TYPE_INVALID,
1253- G_TYPE_INVALID);
1254-
1255- if (error != NULL) {
1256- g_warning ("Couldn't set presence status text: %s", error->message);
1257- g_error_free (error);
1258- }
1259- }
1260-
1261- g_free (text);
1262- g_free (escaped_text);
1263-}
1264-
1265-static void
1266-on_user_item_deselect (GtkWidget *item,
1267- GdmAppletData *adata)
1268-{
1269- save_status_text (adata);
1270-}
1271-#endif
1272-
1273-static void
1274-create_sub_menu (GdmAppletData *adata)
1275-{
1276- GtkWidget *item;
1277-#ifdef BUILD_PRESENSE_STUFF
1278- int i;
1279- GSList *radio_group;
1280-#endif
1281-
1282- adata->menu = gtk_menu_new ();
1283-#ifdef BUILD_PRESENSE_STUFF
1284- g_signal_connect (adata->menu,
1285- "key-press-event",
1286- G_CALLBACK (on_menu_key_press_event),
1287- adata);
1288-#endif
1289- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), adata->menu);
1290- g_signal_connect (adata->menu, "style-set",
1291- G_CALLBACK (menu_style_set_cb), adata);
1292- g_signal_connect (adata->menu, "show",
1293- G_CALLBACK (menu_expose_cb), adata);
1294-
1295-#ifdef BUILD_PRESENSE_STUFF
1296- adata->user_item = gdm_entry_menu_item_new ();
1297- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1298- adata->user_item);
1299- gtk_widget_show (adata->user_item);
1300- g_signal_connect (adata->user_item, "activate",
1301- G_CALLBACK (on_user_item_activate), adata);
1302- g_signal_connect (adata->user_item,
1303- "deselect",
1304- G_CALLBACK (on_user_item_deselect),
1305- adata);
1306-
1307- item = gtk_separator_menu_item_new ();
1308- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item);
1309- gtk_widget_show (item);
1310-
1311- radio_group = NULL;
1312- for (i = 0; i < G_N_ELEMENTS (statuses); i++) {
1313- GtkWidget *hbox;
1314- GtkWidget *label;
1315- GtkWidget *image;
1316- GtkWidget *item;
1317-
1318- if (statuses[i].menu_callback == NULL) {
1319- continue;
1320- }
1321-
1322- item = gtk_radio_menu_item_new (radio_group);
1323- radio_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item));
1324- hbox = gtk_hbox_new (FALSE, 3);
1325- label = gtk_label_new (_(statuses[i].display_name));
1326- gtk_label_set_justify (GTK_LABEL(label), GTK_JUSTIFY_LEFT);
1327- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
1328- gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
1329- gtk_widget_show (label);
1330- image = gtk_image_new_from_icon_name (statuses[i].icon_name, GTK_ICON_SIZE_MENU);
1331- gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0);
1332- gtk_widget_show (image);
1333- gtk_widget_show (hbox);
1334- gtk_container_add (GTK_CONTAINER (item), hbox);
1335-
1336- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1337- item);
1338- g_signal_connect (item, "activate",
1339- G_CALLBACK (statuses[i].menu_callback), adata);
1340- gtk_widget_show (item);
1341-
1342- statuses[i].widget = item;
1343- }
1344-
1345- item = gtk_separator_menu_item_new ();
1346- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item);
1347- gtk_widget_show (item);
1348-#endif
1349-
1350- adata->account_item = gtk_image_menu_item_new_with_label (_("Account Information"));
1351- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->account_item),
1352- gtk_image_new ());
1353- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1354- adata->account_item);
1355- g_signal_connect (adata->account_item, "style-set",
1356- G_CALLBACK (menuitem_style_set_cb), adata);
1357- g_signal_connect (adata->account_item, "activate",
1358- G_CALLBACK (on_account_activate), adata);
1359- gtk_widget_show (adata->account_item);
1360-
1361-
1362- adata->control_panel_item = gtk_image_menu_item_new_with_label (_("System Preferences"));
1363- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->control_panel_item),
1364- gtk_image_new ());
1365- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1366- adata->control_panel_item);
1367- g_signal_connect (adata->control_panel_item, "style-set",
1368- G_CALLBACK (menuitem_style_set_cb), adata);
1369- g_signal_connect (adata->control_panel_item, "activate",
1370- G_CALLBACK (on_control_panel_activate), adata);
1371-
1372- item = gtk_separator_menu_item_new ();
1373- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item);
1374- gtk_widget_show (item);
1375-
1376- adata->lock_screen_item = gtk_image_menu_item_new_with_label (_("Lock Screen"));
1377- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->lock_screen_item),
1378- gtk_image_new ());
1379- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1380- adata->lock_screen_item);
1381- g_signal_connect (adata->lock_screen_item, "style-set",
1382- G_CALLBACK (menuitem_style_set_cb), adata);
1383- g_signal_connect (adata->lock_screen_item, "activate",
1384- G_CALLBACK (on_lock_screen_activate), adata);
1385- /* Only show if not locked down */
1386-
1387- adata->login_screen_item = gtk_image_menu_item_new_with_label (_("Switch User"));
1388- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->login_screen_item),
1389- gtk_image_new ());
1390- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1391- adata->login_screen_item);
1392- g_signal_connect (adata->login_screen_item, "style-set",
1393- G_CALLBACK (menuitem_style_set_cb), adata);
1394- g_signal_connect (adata->login_screen_item, "activate",
1395- G_CALLBACK (on_login_screen_activate), adata);
1396- /* Only show switch user if there are other users */
1397-
1398- adata->quit_session_item = gtk_image_menu_item_new_with_label (_("Quit…"));
1399- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->quit_session_item),
1400- gtk_image_new ());
1401- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
1402- adata->quit_session_item);
1403- g_signal_connect (adata->quit_session_item, "style-set",
1404- G_CALLBACK (menuitem_style_set_cb), adata);
1405- g_signal_connect (adata->quit_session_item, "activate",
1406- G_CALLBACK (on_quit_session_activate), adata);
1407- gtk_widget_show (adata->quit_session_item);
1408- gtk_widget_show (adata->menu);
1409-}
1410-
1411-static void
1412-destroy_sub_menu (GdmAppletData *adata)
1413-{
1414- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), NULL);
1415-}
1416-
1417-static void
1418-set_menu_visibility (GdmAppletData *adata,
1419- gboolean visible)
1420-{
1421-
1422- if (visible) {
1423- create_sub_menu (adata);
1424- } else {
1425- destroy_sub_menu (adata);
1426- }
1427-}
1428-
1429-static void
1430-client_notify_lockdown_func (GConfClient *client,
1431- guint cnxn_id,
1432- GConfEntry *entry,
1433- GdmAppletData *adata)
1434-{
1435- GConfValue *value;
1436- const char *key;
1437-
1438- value = gconf_entry_get_value (entry);
1439- key = gconf_entry_get_key (entry);
1440-
1441- if (value == NULL || key == NULL) {
1442- return;
1443- }
1444-
1445- if (strcmp (key, LOCKDOWN_USER_SWITCHING_KEY) == 0) {
1446- if (gconf_value_get_bool (value)) {
1447- set_menu_visibility (adata, FALSE);
1448- } else {
1449- set_menu_visibility (adata, TRUE);
1450- }
1451- } else if (strcmp (key, LOCKDOWN_LOCK_SCREEN_KEY) == 0) {
1452- if (gconf_value_get_bool (value)) {
1453- gtk_widget_hide (adata->lock_screen_item);
1454- } else {
1455- gtk_widget_show (adata->lock_screen_item);
1456- }
1457- }
1458-}
1459-
1460-static void
1461-reset_icon (GdmAppletData *adata)
1462-{
1463- GdkPixbuf *pixbuf;
1464- GtkWidget *image;
1465-
1466- if (adata->user == NULL || !gtk_widget_has_screen (GTK_WIDGET (adata->menuitem))) {
1467- return;
1468- }
1469-
1470-#ifdef BUILD_PRESENSE_STUFF
1471- if (adata->user_item != NULL) {
1472- image = gdm_entry_menu_item_get_image (GDM_ENTRY_MENU_ITEM (adata->user_item));
1473- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size * 3);
1474- if (pixbuf == NULL) {
1475- return;
1476- }
1477-
1478- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf);
1479- g_object_unref (pixbuf);
1480- }
1481-#else
1482- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size);
1483-
1484- if (pixbuf == NULL) {
1485- return;
1486- }
1487-
1488- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (adata->menuitem));
1489- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf);
1490- g_object_unref (pixbuf);
1491-#endif
1492-}
1493-
1494-static void
1495-setup_current_user_now (GdmAppletData *adata)
1496-{
1497- g_assert (adata->user != NULL);
1498-
1499- if (adata->user_loaded_notify_id != 0) {
1500- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id);
1501- }
1502- adata->user_loaded_notify_id = 0;
1503-
1504- update_label (adata);
1505- reset_icon (adata);
1506- adata->user_changed_notify_id =
1507- g_signal_connect (adata->user,
1508- "changed",
1509- G_CALLBACK (on_user_changed),
1510- adata);
1511-}
1512-
1513-static void
1514-on_current_user_loaded (GdmUser *user,
1515- GParamSpec *pspec,
1516- GdmAppletData *adata)
1517-{
1518- if (!gdm_user_is_loaded (user)) {
1519- return;
1520- }
1521-
1522- setup_current_user_now (adata);
1523-}
1524-
1525-static void
1526-setup_current_user (GdmAppletData *adata)
1527-{
1528- adata->user = gdm_user_manager_get_user_by_uid (adata->manager, getuid ());
1529-
1530- if (adata->user == NULL) {
1531- g_warning ("Could not setup current user");
1532- return;
1533- }
1534-
1535- g_object_ref (adata->user);
1536-
1537- adata->menuitem = gtk_image_menu_item_new_with_label ("");
1538-#ifndef BUILD_PRESENSE_STUFF
1539- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->menuitem),
1540- gtk_image_new ());
1541-#endif
1542- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menubar), adata->menuitem);
1543- gtk_widget_show (adata->menuitem);
1544-
1545- if (gdm_user_is_loaded (adata->user)) {
1546- setup_current_user_now (adata);
1547- return;
1548- }
1549-
1550- adata->user_loaded_notify_id = g_signal_connect (adata->user,
1551- "notify::is-loaded",
1552- G_CALLBACK (on_current_user_loaded),
1553- adata);
1554-}
1555-
1556-#ifdef BUILD_PRESENSE_STUFF
1557-static void
1558-set_status (GdmAppletData *adata,
1559- guint status)
1560-{
1561- int i;
1562-
1563- g_debug ("Setting current status: %u", status);
1564- adata->current_status = status;
1565- for (i = 0; i < G_N_ELEMENTS (statuses); i++) {
1566- if (statuses[i].widget == NULL) {
1567- continue;
1568- }
1569- if (i == status) {
1570- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (statuses[i].widget),
1571- TRUE);
1572- }
1573- }
1574-
1575- update_label (adata);
1576-}
1577-
1578-static void
1579-on_presence_status_changed (DBusGProxy *presence_proxy,
1580- guint status,
1581- GdmAppletData *adata)
1582-{
1583- g_debug ("Status changed: %u", status);
1584-
1585- set_status (adata, status);
1586-}
1587-
1588-static void
1589-set_status_text (GdmAppletData *adata,
1590- const char *status_text)
1591-{
1592- GtkWidget *entry;
1593- GtkTextBuffer *buffer;
1594-
1595- g_debug ("Status text changed: %s", status_text);
1596-
1597- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item));
1598- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
1599- gtk_text_buffer_set_text (buffer, status_text, -1);
1600-}
1601-
1602-static void
1603-on_presence_status_text_changed (DBusGProxy *presence_proxy,
1604- const char *status_text,
1605- GdmAppletData *adata)
1606-{
1607- set_status_text (adata, status_text);
1608-}
1609-#endif
1610-
1611-static gboolean
1612-fill_applet (PanelApplet *applet)
1613-{
1614- static const BonoboUIVerb menu_verbs[] = {
1615- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb),
1616- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb),
1617- BONOBO_UI_VERB ("GdmAbout", about_cb),
1618- BONOBO_UI_VERB_END
1619- };
1620- static gboolean first_time = FALSE;
1621- char *tmp;
1622- BonoboUIComponent *popup_component;
1623- GdmAppletData *adata;
1624- GError *error;
1625- DBusGConnection *bus;
1626-
1627- if (!first_time) {
1628- first_time = TRUE;
1629-
1630- /* Do this here so it's only done once. */
1631- gtk_rc_parse_string ("style \"gdm-user-switch-menubar-style\"\n"
1632- "{\n"
1633- "GtkMenuBar::shadow-type = none\n"
1634- "GtkMenuBar::internal-padding = 0\n"
1635- "}\n"
1636- "style \"gdm-user-switch-applet-style\"\n"
1637- "{\n"
1638- "GtkWidget::focus-line-width = 0\n"
1639- "GtkWidget::focus-padding = 0\n"
1640- "}\n"
1641- "widget \"*.gdm-user-switch-menubar\" style \"gdm-user-switch-menubar-style\"\n"
1642- "widget \"*.gdm-user-switch-applet\" style \"gdm-user-switch-applet-style\"\n");
1643- gtk_window_set_default_icon_name ("stock_people");
1644- g_set_application_name (_("User Switch Applet"));
1645-
1646- if (! gdm_settings_client_init (DATADIR "/gdm/gdm.schemas", "/")) {
1647- g_critical ("Unable to initialize settings client");
1648- exit (1);
1649- }
1650-
1651- }
1652-
1653- adata = g_new0 (GdmAppletData, 1);
1654- adata->applet = applet;
1655- adata->panel_size = 24;
1656-
1657- adata->client = gconf_client_get_default ();
1658-
1659- gtk_widget_set_tooltip_text (GTK_WIDGET (applet), _("Change account settings and status"));
1660- gtk_container_set_border_width (GTK_CONTAINER (applet), 0);
1661- gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet");
1662- panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
1663- panel_applet_setup_menu_from_file (applet, NULL,
1664- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml",
1665- NULL, menu_verbs, adata);
1666-
1667- popup_component = panel_applet_get_popup_component (applet);
1668-
1669- /* Hide the admin context menu items if locked down or no cmd-line */
1670- if (gconf_client_get_bool (adata->client,
1671- LOCKDOWN_COMMAND_LINE_KEY,
1672- NULL) ||
1673- panel_applet_get_locked_down (applet)) {
1674- bonobo_ui_component_set_prop (popup_component,
1675- "/popups/button3/GdmSeparator",
1676- "hidden", "1", NULL);
1677- bonobo_ui_component_set_prop (popup_component,
1678- "/commands/GdmUsersGroupsAdmin",
1679- "hidden", "1", NULL);
1680- } else {
1681-#ifndef USERS_ADMIN
1682-# ifdef GDM_SETUP
1683- bonobo_ui_component_set_prop (popup_component,
1684- "/popups/button3/GdmSeparator",
1685- "hidden", "1",
1686- NULL);
1687-# endif /* !GDM_SETUP */
1688- bonobo_ui_component_set_prop (popup_component,
1689- "/commands/GdmUsersGroupsAdmin",
1690- "hidden", "1",
1691- NULL);
1692-#endif /* !USERS_ADMIN */
1693- }
1694-
1695- /* Hide the gdmphotosetup item if it can't be found in the path. */
1696- tmp = g_find_program_in_path ("gnome-about-me");
1697- if (!tmp) {
1698- bonobo_ui_component_set_prop (popup_component,
1699- "/commands/GdmAboutMe",
1700- "hidden", "1",
1701- NULL);
1702- } else {
1703- g_free (tmp);
1704- }
1705-
1706- g_signal_connect (adata->applet,
1707- "style-set",
1708- G_CALLBACK (applet_style_set_cb), adata);
1709- g_signal_connect (applet,
1710- "change-background",
1711- G_CALLBACK (applet_change_background_cb), adata);
1712- g_signal_connect (applet,
1713- "size-allocate",
1714- G_CALLBACK (applet_size_allocate_cb), adata);
1715- g_signal_connect (applet,
1716- "key-press-event",
1717- G_CALLBACK (applet_key_press_event_cb), adata);
1718- g_signal_connect_after (applet,
1719- "focus-in-event",
1720- G_CALLBACK (gtk_widget_queue_draw), NULL);
1721- g_signal_connect_after (applet,
1722- "focus-out-event",
1723- G_CALLBACK (gtk_widget_queue_draw), NULL);
1724- g_object_set_data_full (G_OBJECT (applet),
1725- "gdm-applet-data",
1726- adata,
1727- (GDestroyNotify) gdm_applet_data_free);
1728-
1729- adata->menubar = gtk_menu_bar_new ();
1730- gtk_widget_set_name (adata->menubar, "gdm-user-switch-menubar");
1731- gtk_widget_set_can_focus (adata->menubar, TRUE);
1732- g_signal_connect (adata->menubar, "button-press-event",
1733- G_CALLBACK (menubar_button_press_event_cb), adata);
1734- g_signal_connect_after (adata->menubar, "expose-event",
1735- G_CALLBACK (menubar_expose_event_cb), adata);
1736- gtk_container_add (GTK_CONTAINER (applet), adata->menubar);
1737- gtk_widget_show (adata->menubar);
1738-
1739- adata->manager = gdm_user_manager_ref_default ();
1740- g_object_set (adata->manager, "include-all", TRUE, NULL);
1741- g_signal_connect (adata->manager,
1742- "notify::is-loaded",
1743- G_CALLBACK (on_manager_is_loaded_changed),
1744- adata);
1745- g_signal_connect (adata->manager,
1746- "notify::has-multiple-users",
1747- G_CALLBACK (on_manager_has_multiple_users_changed),
1748- adata);
1749-
1750- gdm_user_manager_queue_load (adata->manager);
1751- setup_current_user (adata);
1752-
1753- gconf_client_add_dir (adata->client,
1754- LOCKDOWN_DIR,
1755- GCONF_CLIENT_PRELOAD_ONELEVEL,
1756- NULL);
1757-
1758- adata->client_notify_lockdown_id = gconf_client_notify_add (adata->client,
1759- LOCKDOWN_DIR,
1760- (GConfClientNotifyFunc)client_notify_lockdown_func,
1761- adata,
1762- NULL,
1763- NULL);
1764-
1765- if (gconf_client_get_bool (adata->client, LOCKDOWN_USER_SWITCHING_KEY, NULL)) {
1766- set_menu_visibility (adata, FALSE);
1767- } else {
1768- set_menu_visibility (adata, TRUE);
1769- }
1770- if (gconf_client_get_bool (adata->client, LOCKDOWN_LOCK_SCREEN_KEY, NULL)) {
1771- gtk_widget_hide (adata->lock_screen_item);
1772- } else {
1773- gtk_widget_show (adata->lock_screen_item);
1774- }
1775-
1776- error = NULL;
1777- bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
1778- if (bus == NULL) {
1779- g_warning ("Unable to get session bus: %s", error->message);
1780- g_error_free (error);
1781- goto done;
1782- }
1783-
1784-#ifdef BUILD_PRESENSE_STUFF
1785- adata->presence_proxy = dbus_g_proxy_new_for_name (bus,
1786- "org.gnome.SessionManager",
1787- "/org/gnome/SessionManager/Presence",
1788- "org.gnome.SessionManager.Presence");
1789- if (adata->presence_proxy != NULL) {
1790- DBusGProxy *proxy;
1791-
1792- dbus_g_proxy_add_signal (adata->presence_proxy,
1793- "StatusChanged",
1794- G_TYPE_UINT,
1795- G_TYPE_INVALID);
1796- dbus_g_proxy_connect_signal (adata->presence_proxy,
1797- "StatusChanged",
1798- G_CALLBACK (on_presence_status_changed),
1799- adata,
1800- NULL);
1801- dbus_g_proxy_add_signal (adata->presence_proxy,
1802- "StatusTextChanged",
1803- G_TYPE_STRING,
1804- G_TYPE_INVALID);
1805- dbus_g_proxy_connect_signal (adata->presence_proxy,
1806- "StatusTextChanged",
1807- G_CALLBACK (on_presence_status_text_changed),
1808- adata,
1809- NULL);
1810-
1811-
1812- proxy = dbus_g_proxy_new_from_proxy (adata->presence_proxy,
1813- "org.freedesktop.DBus.Properties",
1814- "/org/gnome/SessionManager/Presence");
1815- if (proxy != NULL) {
1816- guint status;
1817- const char *status_text;
1818- GValue value = { 0, };
1819-
1820- status = 0;
1821- status_text = NULL;
1822-
1823- error = NULL;
1824- dbus_g_proxy_call (proxy,
1825- "Get",
1826- &error,
1827- G_TYPE_STRING, "org.gnome.SessionManager.Presence",
1828- G_TYPE_STRING, "status",
1829- G_TYPE_INVALID,
1830- G_TYPE_VALUE, &value,
1831- G_TYPE_INVALID);
1832-
1833- if (error != NULL) {
1834- g_warning ("Couldn't get presence status: %s", error->message);
1835- g_error_free (error);
1836- } else {
1837- status = g_value_get_uint (&value);
1838- }
1839-
1840- g_value_unset (&value);
1841-
1842- error = NULL;
1843- dbus_g_proxy_call (proxy,
1844- "Get",
1845- &error,
1846- G_TYPE_STRING, "org.gnome.SessionManager.Presence",
1847- G_TYPE_STRING, "status-text",
1848- G_TYPE_INVALID,
1849- G_TYPE_VALUE, &value,
1850- G_TYPE_INVALID);
1851-
1852- if (error != NULL) {
1853- g_warning ("Couldn't get presence status text: %s", error->message);
1854- g_error_free (error);
1855- } else {
1856- status_text = g_value_get_string (&value);
1857- }
1858-
1859- set_status (adata, status);
1860- set_status_text (adata, status_text);
1861- }
1862- } else {
1863- g_warning ("Failed to get session presence proxy");
1864- }
1865-#endif
1866-
1867- done:
1868- gtk_widget_show (GTK_WIDGET (adata->applet));
1869-
1870- return TRUE;
1871-}
1872-
1873-static gboolean
1874-applet_factory (PanelApplet *applet,
1875- const char *iid,
1876- gpointer data)
1877-{
1878- gboolean ret;
1879- ret = FALSE;
1880- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) {
1881- ret = fill_applet (applet);
1882- }
1883- return ret;
1884-}
1885diff --git a/gui/user-switch-applet/gdm-entry-menu-item.c b/gui/user-switch-applet/gdm-entry-menu-item.c
1886deleted file mode 100644
1887index d657e7a..0000000
1888--- a/gui/user-switch-applet/gdm-entry-menu-item.c
1889+++ /dev/null
1890@@ -1,304 +0,0 @@
1891-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
1892- *
1893- * Copyright (C) 2008 Red Hat, Inc.
1894- *
1895- * This program is free software; you can redistribute it and/or modify
1896- * it under the terms of the GNU General Public License as published by
1897- * the Free Software Foundation; either version 2 of the License, or
1898- * (at your option) any later version.
1899- *
1900- * This program is distributed in the hope that it will be useful,
1901- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1902- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1903- * GNU General Public License for more details.
1904- *
1905- * You should have received a copy of the GNU General Public License
1906- * along with this program; if not, write to the Free Software
1907- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1908- */
1909-
1910-#include "config.h"
1911-
1912-#include <unistd.h>
1913-#include <sys/types.h>
1914-
1915-#include <string.h>
1916-
1917-#include <glib/gi18n.h>
1918-#include <gtk/gtk.h>
1919-
1920-#include "gdm-entry-menu-item.h"
1921-
1922-/* same as twitter */
1923-#define TEXT_BUFFER_MAX_CHARS 64
1924-
1925-enum
1926-{
1927- PROP_0,
1928-};
1929-
1930-struct _GdmEntryMenuItem
1931-{
1932- GtkMenuItem parent;
1933-
1934- GtkWidget *hbox;
1935- GtkWidget *image;
1936- GtkWidget *entry;
1937-};
1938-
1939-struct _GdmEntryMenuItemClass
1940-{
1941- GtkMenuItemClass parent_class;
1942-};
1943-
1944-G_DEFINE_TYPE (GdmEntryMenuItem, gdm_entry_menu_item, GTK_TYPE_MENU_ITEM)
1945-
1946-static void
1947-gdm_entry_menu_item_set_property (GObject *object,
1948- guint param_id,
1949- const GValue *value,
1950- GParamSpec *pspec)
1951-{
1952- GdmEntryMenuItem *item;
1953-
1954- item = GDM_ENTRY_MENU_ITEM (object);
1955-
1956- switch (param_id) {
1957- default:
1958- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
1959- break;
1960- }
1961-}
1962-
1963-static void
1964-gdm_entry_menu_item_get_property (GObject *object,
1965- guint param_id,
1966- GValue *value,
1967- GParamSpec *pspec)
1968-{
1969- GdmEntryMenuItem *item;
1970-
1971- item = GDM_ENTRY_MENU_ITEM (object);
1972-
1973- switch (param_id) {
1974- default:
1975- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
1976- break;
1977- }
1978-}
1979-
1980-static void
1981-gdm_entry_menu_item_dispose (GObject *object)
1982-{
1983-
1984- (*G_OBJECT_CLASS (gdm_entry_menu_item_parent_class)->dispose) (object);
1985-}
1986-
1987-static gboolean
1988-gdm_entry_menu_item_button_release (GtkWidget *widget,
1989- GdkEventButton *event)
1990-{
1991- return TRUE;
1992-}
1993-
1994-/* Cut and paste from gtkwindow.c */
1995-static void
1996-send_focus_change (GtkWidget *widget,
1997- gboolean in)
1998-{
1999- GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE);
2000-
2001- g_object_ref (widget);
2002-
2003- gtk_widget_set_can_focus (widget, in);
2004-
2005- fevent->focus_change.type = GDK_FOCUS_CHANGE;
2006- fevent->focus_change.window = g_object_ref (gtk_widget_get_window (widget));
2007- fevent->focus_change.in = in;
2008-
2009- gtk_widget_event (widget, fevent);
2010-
2011- g_object_notify (G_OBJECT (widget), "has-focus");
2012-
2013- g_object_unref (widget);
2014- gdk_event_free (fevent);
2015-}
2016-
2017-static gboolean
2018-gdm_entry_menu_item_button_press (GtkWidget *widget,
2019- GdkEventButton *event)
2020-{
2021- GtkWidget *entry;
2022-
2023- entry = GDM_ENTRY_MENU_ITEM (widget)->entry;
2024-
2025- if (gtk_widget_get_window (entry) != NULL) {
2026- gdk_window_raise (gtk_widget_get_window (entry));
2027- }
2028-
2029- if (!gtk_widget_has_focus (entry)) {
2030- gtk_widget_grab_focus (entry);
2031- }
2032-
2033- return FALSE;
2034-}
2035-
2036-static void
2037-gdm_entry_menu_item_realize (GtkWidget *widget)
2038-{
2039- if (GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize) {
2040- GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize (widget);
2041- }
2042-}
2043-
2044-static void
2045-gdm_entry_menu_item_select (GtkItem *item)
2046-{
2047- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item));
2048- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), TRUE);
2049-}
2050-
2051-static void
2052-gdm_entry_menu_item_deselect (GtkItem *item)
2053-{
2054- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item));
2055-
2056- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE);
2057-}
2058-
2059-static void
2060-gdm_entry_menu_item_class_init (GdmEntryMenuItemClass *klass)
2061-{
2062- GObjectClass *gobject_class;
2063- GtkWidgetClass *widget_class;
2064- GtkMenuItemClass *menu_item_class;
2065- GtkItemClass *item_class;
2066-
2067- gobject_class = G_OBJECT_CLASS (klass);
2068- widget_class = GTK_WIDGET_CLASS (klass);
2069- menu_item_class = GTK_MENU_ITEM_CLASS (klass);
2070- item_class = GTK_ITEM_CLASS (klass);
2071-
2072- gobject_class->set_property = gdm_entry_menu_item_set_property;
2073- gobject_class->get_property = gdm_entry_menu_item_get_property;
2074- gobject_class->dispose = gdm_entry_menu_item_dispose;
2075-
2076- widget_class->button_release_event = gdm_entry_menu_item_button_release;
2077- widget_class->button_press_event = gdm_entry_menu_item_button_press;
2078- widget_class->realize = gdm_entry_menu_item_realize;
2079-
2080- item_class->select = gdm_entry_menu_item_select;
2081- item_class->deselect = gdm_entry_menu_item_deselect;
2082-
2083- menu_item_class->hide_on_activate = FALSE;
2084-}
2085-
2086-static void
2087-on_entry_show (GtkWidget *widget,
2088- GdmEntryMenuItem *item)
2089-{
2090- if (gtk_widget_get_window (widget) != NULL) {
2091- gdk_window_raise (gtk_widget_get_window (widget));
2092- }
2093- send_focus_change (widget, TRUE);
2094-}
2095-
2096-static void
2097-on_text_buffer_changed (GtkTextBuffer *buffer,
2098- GdmEntryMenuItem *item)
2099-{
2100- int len;
2101-
2102- len = gtk_text_buffer_get_char_count (buffer);
2103- if (len > TEXT_BUFFER_MAX_CHARS) {
2104- gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (item)));
2105- }
2106-}
2107-
2108-static void
2109-on_entry_move_focus (GtkWidget *widget,
2110- GtkDirectionType direction,
2111- GdmEntryMenuItem *item)
2112-{
2113- g_debug ("focus move");
2114- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE);
2115- g_signal_emit_by_name (item,
2116- "move-focus",
2117- GTK_DIR_TAB_FORWARD);
2118-}
2119-
2120-static void
2121-gdm_entry_menu_item_init (GdmEntryMenuItem *item)
2122-{
2123- PangoFontDescription *fontdesc;
2124- PangoFontMetrics *metrics;
2125- PangoContext *context;
2126- PangoLanguage *lang;
2127- int ascent;
2128- GtkTextBuffer *buffer;
2129-
2130- item->hbox = gtk_hbox_new (FALSE, 6);
2131- gtk_container_add (GTK_CONTAINER (item), item->hbox);
2132-
2133- item->image = gtk_image_new ();
2134- gtk_box_pack_start (GTK_BOX (item->hbox), item->image, FALSE, FALSE, 0);
2135-
2136- item->entry = gtk_text_view_new ();
2137- gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (item->entry), FALSE);
2138- gtk_text_view_set_editable (GTK_TEXT_VIEW (item->entry), TRUE);
2139- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (item->entry),
2140- GTK_WRAP_WORD);
2141- g_signal_connect (item->entry,
2142- "show",
2143- G_CALLBACK (on_entry_show),
2144- item);
2145- g_signal_connect (item->entry,
2146- "move-focus",
2147- G_CALLBACK (on_entry_move_focus),
2148- item);
2149-
2150- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (item->entry));
2151- g_signal_connect (buffer,
2152- "changed",
2153- G_CALLBACK (on_text_buffer_changed),
2154- item);
2155-
2156- /* get the font ascent for the current font and language */
2157- context = gtk_widget_get_pango_context (item->entry);
2158- fontdesc = pango_context_get_font_description (context);
2159- lang = pango_context_get_language (context);
2160- metrics = pango_context_get_metrics (context, fontdesc, lang);
2161- ascent = pango_font_metrics_get_ascent (metrics) * 1.5 / PANGO_SCALE;
2162- pango_font_metrics_unref (metrics);
2163-
2164- /* size our progress bar to be five ascents long */
2165- gtk_widget_set_size_request (item->entry, ascent * 5, -1);
2166-
2167- gtk_box_pack_start (GTK_BOX (item->hbox), item->entry, TRUE, TRUE, 0);
2168-
2169- gtk_widget_show (item->hbox);
2170- gtk_widget_show (item->image);
2171- gtk_widget_show (item->entry);
2172-}
2173-
2174-GtkWidget *
2175-gdm_entry_menu_item_new (void)
2176-{
2177- return g_object_new (GDM_TYPE_ENTRY_MENU_ITEM, NULL);
2178-}
2179-
2180-GtkWidget *
2181-gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item)
2182-{
2183- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL);
2184-
2185- return item->entry;
2186-}
2187-
2188-GtkWidget *
2189-gdm_entry_menu_item_get_image (GdmEntryMenuItem *item)
2190-{
2191- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL);
2192-
2193- return item->image;
2194-}
2195diff --git a/gui/user-switch-applet/gdm-entry-menu-item.h b/gui/user-switch-applet/gdm-entry-menu-item.h
2196deleted file mode 100644
2197index 3031609..0000000
2198--- a/gui/user-switch-applet/gdm-entry-menu-item.h
2199+++ /dev/null
2200@@ -1,51 +0,0 @@
2201-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
2202- *
2203- * Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
2204- *
2205- * This program is free software; you can redistribute it and/or modify
2206- * it under the terms of the GNU General Public License as published by
2207- * the Free Software Foundation; either version 2 of the License, or
2208- * (at your option) any later version.
2209- *
2210- * This program is distributed in the hope that it will be useful,
2211- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2212- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2213- * GNU General Public License for more details.
2214- *
2215- * You should have received a copy of the GNU General Public License
2216- * along with this program; if not, write to the Free Software
2217- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2218- */
2219-
2220-#ifndef __GDM_ENTRY_MENU_ITEM__
2221-#define __GDM_ENTRY_MENU_ITEM__
2222-
2223-#include <gtk/gtk.h>
2224-
2225-G_BEGIN_DECLS
2226-
2227-#define GDM_TYPE_ENTRY_MENU_ITEM \
2228- (gdm_entry_menu_item_get_type ())
2229-#define GDM_ENTRY_MENU_ITEM(object) \
2230- (G_TYPE_CHECK_INSTANCE_CAST ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItem))
2231-#define GDM_ENTRY_MENU_ITEM_CLASS(klass) \
2232- (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass))
2233-#define GDM_IS_ENTRY_MENU_ITEM(object) \
2234- (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDM_TYPE_ENTRY_MENU_ITEM))
2235-#define GDM_IS_ENTRY_MENU_ITEM_CLASS(klass) \
2236- (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_ENTRY_MENU_ITEM))
2237-#define GDM_ENTRY_MENU_ITEM_GET_CLASS(object) \
2238- (G_TYPE_INSTANCE_GET_CLASS ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass))
2239-
2240-typedef struct _GdmEntryMenuItem GdmEntryMenuItem;
2241-typedef struct _GdmEntryMenuItemClass GdmEntryMenuItemClass;
2242-
2243-GType gdm_entry_menu_item_get_type (void) G_GNUC_CONST;
2244-
2245-GtkWidget *gdm_entry_menu_item_new (void);
2246-GtkWidget *gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item);
2247-GtkWidget *gdm_entry_menu_item_get_image (GdmEntryMenuItem *item);
2248-
2249-G_END_DECLS
2250-
2251-#endif /* __GDM_ENTRY_MENU_ITEM__ */
2252diff --git a/po/POTFILES.in b/po/POTFILES.in
2253index 1fccb90..cc1a3fd 100644
2254--- a/po/POTFILES.in
2255+++ b/po/POTFILES.in
2256@@ -84,10 +84,6 @@ gui/simple-greeter/gdm-timer.c
2257 gui/simple-greeter/gdm-user.c
2258 gui/simple-greeter/gdm-user-chooser-widget.c
2259 gui/simple-greeter/greeter-main.c
2260-gui/user-switch-applet/applet.c
2261-gui/user-switch-applet/gdm-entry-menu-item.c
2262-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
2263-gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
2264 utils/gdmflexiserver.c
2265 utils/gdm-screenshot.c
2266
2267diff --git a/po/POTFILES.skip b/po/POTFILES.skip
2268index 0269a0f..ee3d753 100644
2269--- a/po/POTFILES.skip
2270+++ b/po/POTFILES.skip
2271@@ -7,7 +7,6 @@
2272 # remove these unless you fix "make distcheck" a different way.
2273 #
2274 data/gdm.schemas.in
2275-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in
2276 data/greeter-autostart/at-spi-registryd-wrapper.desktop.in
2277 data/greeter-autostart/gdm-simple-greeter.desktop.in
2278 data/greeter-autostart/gnome-power-manager.desktop.in
2279--
22801.6.6.1
2281
diff --git a/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch b/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch
deleted file mode 100644
index ad21073a0..000000000
--- a/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From 43e59f3deadb3914a1cc931ae18d4023874cdeca Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Fri, 26 Apr 2013 17:15:48 +0200
4Subject: [PATCH] gdm-user-manager.c: avoid displaying system users in
5 greeter's list
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10yocto environment system users have UID below 1000
11
12Upstream-Status: Inappropriate [configuration]
13
14Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
15---
16 gui/simple-greeter/gdm-user-manager.c | 2 +-
17 1 files changed, 1 insertions(+), 1 deletions(-)
18
19diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c
20index c631989..f18e478 100644
21--- a/gui/simple-greeter/gdm-user-manager.c
22+++ b/gui/simple-greeter/gdm-user-manager.c
23@@ -63,7 +63,7 @@
24 #ifdef __sun
25 #define FALLBACK_MINIMAL_UID 100
26 #else
27-#define FALLBACK_MINIMAL_UID 500
28+#define FALLBACK_MINIMAL_UID 1000
29 #endif
30
31 #ifndef _PATH_SHELLS
32--
331.7.4.4
34
diff --git a/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch
deleted file mode 100644
index 1f9fa2ac2..000000000
--- a/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1In cross environment we have to prepend the sysroot to the path found by
2pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
3it ends up using the files from host system. Now usually people have gnome installed
4so the build succeeds but if you dont have gnome installed on build host then
5it wont find the files on host system and packages using gnome-doc-utils wont
6compile.
7
8This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
9will be empty
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15Index: gdm-2.32.2/gnome-doc-utils.make
16===================================================================
17--- gdm-2.32.2.orig/gnome-doc-utils.make 2011-05-31 08:06:59.000000000 -0700
18+++ gdm-2.32.2/gnome-doc-utils.make 2011-09-25 15:32:39.540992521 -0700
19@@ -133,12 +133,12 @@
20 _xml2po ?= `which xml2po`
21 _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
22
23-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
24-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
25-_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
26-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
27-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
28-_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
29+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
30+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
31+_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils`
32+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
33+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
34+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
35
36 if ENABLE_SK
37 _ENABLE_SK = true
diff --git a/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb b/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb
deleted file mode 100644
index 64785ca1c..000000000
--- a/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb
+++ /dev/null
@@ -1,108 +0,0 @@
1SUMMARY = "Graphical login manager"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
4
5DEPENDS = "xinput gnome-panel tcp-wrappers libcanberra libxklavier grep consolekit libpam gnome-doc-utils gtk+ xrdb"
6
7PR = "r18"
8
9inherit gnome update-rc.d systemd useradd
10
11SRC_URI += " \
12 file://cross-xdetection.diff \
13 file://0001-Remove-user-switch-applet.patch \
14 file://0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch \
15 file://sysrooted-pkg-config.patch \
16 file://%gconf-tree.xml \
17 file://gdm \
18 file://gdm.conf \
19 file://gdm-pam \
20 file://Default \
21 file://gdm.service.in \
22"
23
24SRC_URI[archive.md5sum] = "dbe5187a2e17881cc454e313e0ae8d1e"
25SRC_URI[archive.sha256sum] = "034d23af0ea18d86e5543e707212d9297ec7d83f221808968af266dbebc0e703"
26GNOME_COMPRESS_TYPE="bz2"
27
28EXTRA_OECONF = " \
29 --enable-authentication-scheme=shadow \
30 --enable-debug=yes \
31 --with-console-kit \
32 --disable-scrollkeeper \
33"
34
35do_configure_prepend() {
36 sed -i -e "s:\bdocs::g" ${S}/Makefile.am
37 rm -f ${S}/m4/gnome-doc-utils.m4
38}
39
40do_install_prepend() {
41 install -d ${D}/${localstatedir}/lib/gdm/.gconf.mandatory
42 install ${WORKDIR}/%gconf-tree.xml ${D}/${localstatedir}/lib/gdm/.gconf.mandatory/
43}
44
45do_install_append() {
46 install -d ${D}/${sysconfdir}/init.d
47 install -m 0755 ${WORKDIR}/gdm ${D}/${sysconfdir}/init.d/
48
49 install -d ${D}/${sysconfdir}/gdm
50 install -m 0644 ${WORKDIR}/gdm.conf ${D}/${sysconfdir}/gdm/
51
52 install -d ${D}/${sysconfdir}/pam.d
53 install -m 0755 ${WORKDIR}/gdm-pam ${D}/${sysconfdir}/pam.d/gdm
54 rm -f ${D}/${sysconfdir}/pam.d/gdm-autologin
55
56 install -d ${D}/${sysconfdir}/gdm/Init
57 install -m 0755 ${WORKDIR}/Default ${D}/${sysconfdir}/gdm/Init
58
59 install -d ${D}${systemd_unitdir}/system
60 sed -e 's,%sbindir%,${sbindir},g' \
61 < ${WORKDIR}/gdm.service.in \
62 > ${D}${systemd_unitdir}/system/gdm.service
63
64 chown -R gdm:gdm ${D}${localstatedir}/lib/gdm
65 chmod 0750 ${D}${localstatedir}/lib/gdm
66
67 rm -rf "${D}${localstatedir}/run"
68 rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
69
70 rm -f ${D}${datadir}/gdm/autostart/LoginWindow/at-spi-registryd-wrapper.desktop
71 rm -f ${D}${datadir}/gdm/autostart/LoginWindow/orca-screen-reader.desktop
72 rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gnome-mag.desktop
73 rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gok.desktop
74 rm -f ${D}${datadir}/gdm/autostart/LoginWindow/metacity.desktop
75}
76
77FILES_${PN} += "${datadir}/icon* \
78 ${datadir}/xsession* \
79"
80
81RDEPENDS_${PN} += "grep dbus-x11 shadow"
82# "libpam-base-files"
83CONFFILES_${PN} += "${sysconfdir}/gdm/gdm.conf ${sysconfdir}/init.d/gdm"
84RRECOMMENDS_${PN} += "openssh-misc desktop-file-utils glib-2.0-utils metacity gnome-session polkit-gnome consolekit"
85
86RREPLACES_${PN} += "${PN}-systemd"
87RCONFLICTS_${PN} += "${PN}-systemd"
88SYSTEMD_SERVICE_${PN} = "gdm.service"
89
90INITSCRIPT_NAME = "gdm"
91INITSCRIPT_PARAMS = "start 99 5 . stop 20 0 1 2 3 6 ."
92
93USERADD_PACKAGES = "${PN}"
94USERADD_PARAM_${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm"
95
96pkg_postinst_${PN} () {
97# Register up as default dm
98mkdir -p $D${sysconfdir}/X11/
99echo "${bindir}/gdm" > $D${sysconfdir}/X11/default-display-manager
100}
101
102pkg_postrm_${PN} () {
103 deluser gdm || true
104 delgroup gdm || true
105 sed -i /gdm/d ${sysconfdir}/X11/default-display-manager || true
106}
107
108PNBLACKLIST[gdm] ?= "Depends on broken gnome-panel - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb
deleted file mode 100644
index 235b02a2f..000000000
--- a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "Gnome background images"
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
5
6SECTION = "x11/gnome"
7
8# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT
9# intltool-native for IT_PROG_INTLTOOL(0.35.0)
10DEPENDS = "glib-2.0 intltool-native"
11
12inherit gnomebase
13
14SRC_URI[archive.md5sum] = "3df26626483b02e51adefc6ab5945a8d"
15SRC_URI[archive.sha256sum] = "4d7b60b5ba768bf8834b5fa3a3471cd9a9e14b5884bc210dc2d3cdbf1faddcef"
16GNOME_COMPRESS_TYPE="bz2"
17
18FILES_${PN} += "${datadir}/gnome-background-properties"
19
20
21PNBLACKLIST[gnome-backgrounds] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130647/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb
deleted file mode 100644
index 201783e91..000000000
--- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "GNOME control center"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
4
5DEPENDS = "desktop-file-utils-native gnome-menus libunique dbus-glib gnome-desktop libxml2 metacity gconf gnome-settings-daemon librsvg pango libgnomekbd libxklavier libcanberra libgtop libxscrnsaver"
6
7PR = "r1"
8
9inherit gnome
10
11SRC_URI[archive.md5sum] = "b4e8ab5c7556ae07addbfcfb4fa2f761"
12SRC_URI[archive.sha256sum] = "7c568b57358e5c08f4d8dd76dbac7df2539135ad081872b60514b7a8ac797e66"
13GNOME_COMPRESS_TYPE="bz2"
14
15LDFLAGS += "-lgthread-2.0 -lxml2"
16
17do_configure_prepend() {
18 sed -i s:help::g ${S}/Makefile.am
19 rm -f ${S}/m4/gnome-doc-utils.m4
20}
21do_install_append() {
22 rm -rf ${D}${datadir}/mime
23}
24
25FILES_${PN} += "${datadir}/icon* \
26 ${datadir}/xsession* \
27 ${libdir}/window-manager-settings/*.so \
28 ${datadir}/gnome \
29 ${datadir}/desktop-directories \
30"
31FILES_${PN}-dbg += "${libdir}/window-manager-settings/.debug"
32FILES_${PN}-dev += "${libdir}/window-manager-settings/*.la"
33FILES_${PN}-staticdev += "${libdir}/window-manager-settings/*.a"
34
35PNBLACKLIST[gnome-control-center] ?= "Depends on broken gnome-menus - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb
deleted file mode 100644
index f1dafad2e..000000000
--- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1SUMMARY = "GNOME library for reading .desktop files"
2SECTION = "x11/gnome"
3LICENSE = "GPLv2 & LGPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
6
7PR = "r6"
8
9inherit gnome pkgconfig
10
11SRC_URI[archive.md5sum] = "5c80d628a240eb9d9ff78913b31f2f67"
12SRC_URI[archive.sha256sum] = "55cbecf67efe1fa1e57ac966520a7c46d799c8ba3c652a1219f60cafccb3739d"
13GNOME_COMPRESS_TYPE="bz2"
14
15DEPENDS += "gconf libxrandr virtual/libx11 gtk+ glib-2.0 gnome-doc-utils startup-notification intltool-native gnome-common-native"
16
17EXTRA_OECONF = "--disable-scrollkeeper --disable-desktop-docs --disable-gnome-about"
18
19do_configure_prepend () {
20 sed -i -e s:^#!@PYTHON@:#!${bindir}/python: ${S}/gnome-about/gnome-about.in
21 rm -f ${S}/m4/gnome-doc-utils.m4
22}
23
24PACKAGES =+ "libgnome-desktop"
25FILES_libgnome-desktop = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop/pnp.ids"
26FILES_${PN} += "${datadir}/gnome-about"
27
28PNBLACKLIST[gnome-desktop] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130595/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch
deleted file mode 100644
index 805e93776..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From 7dde5bc75a1d96be9510ce1e98d28f9d33520919 Mon Sep 17 00:00:00 2001
2From: David Zeuthen <davidz@redhat.com>
3Date: Fri, 8 Jul 2011 11:03:52 -0400
4Subject: [PATCH] Add support for DeviceAutomountHint
5
6Based on the patch in https://bugzilla.gnome.org/show_bug.cgi?id=653184
7
8Upstream-Status: Applied [1]
9
10[1] https://mail.gnome.org/archives/commits-list/2011-July/msg03207.html
11
12Signed-off-by: David Zeuthen <davidz@redhat.com>
13---
14 src/gdu/gdu-device.c | 10 ++++++++++
15 src/gdu/gdu-device.h | 1 +
16 2 files changed, 11 insertions(+), 0 deletions(-)
17
18diff --git a/src/gdu/gdu-device.c b/src/gdu/gdu-device.c
19index 6a5afad..4be39cf 100644
20--- a/src/gdu/gdu-device.c
21+++ b/src/gdu/gdu-device.c
22@@ -82,6 +82,7 @@ typedef struct
23 gboolean device_presentation_nopolicy;
24 char *device_presentation_name;
25 char *device_presentation_icon_name;
26+ char *device_automount_hint;
27 guint64 device_size;
28 guint64 device_block_size;
29
30@@ -279,6 +280,8 @@ collect_props (const char *key,
31 props->device_presentation_name = g_strdup (g_value_get_string (value));
32 else if (strcmp (key, "DevicePresentationIconName") == 0)
33 props->device_presentation_icon_name = g_strdup (g_value_get_string (value));
34+ else if (strcmp (key, "DeviceAutomountHint") == 0)
35+ props->device_automount_hint = g_strdup (g_value_get_string (value));
36 else if (strcmp (key, "DeviceSize") == 0)
37 props->device_size = g_value_get_uint64 (value);
38 else if (strcmp (key, "DeviceBlockSize") == 0)
39@@ -549,6 +552,7 @@ device_properties_free (DeviceProperties *props)
40 g_strfreev (props->device_mount_paths);
41 g_free (props->device_presentation_name);
42 g_free (props->device_presentation_icon_name);
43+ g_free (props->device_automount_hint);
44 g_free (props->job_id);
45 g_free (props->id_usage);
46 g_free (props->id_type);
47@@ -1294,6 +1298,12 @@ gdu_device_drive_get_media_compatibility (GduDevice *device)
48 }
49
50 const char *
51+gdu_device_get_automount_hint (GduDevice *device)
52+{
53+ return device->priv->props->device_automount_hint;
54+}
55+
56+const char *
57 gdu_device_drive_get_media (GduDevice *device)
58 {
59 return device->priv->props->drive_media;
60diff --git a/src/gdu/gdu-device.h b/src/gdu/gdu-device.h
61index 4c1302b..8cfd7a9 100644
62--- a/src/gdu/gdu-device.h
63+++ b/src/gdu/gdu-device.h
64@@ -143,6 +143,7 @@ const char *gdu_device_drive_get_wwn (GduDevice *device);
65 const char *gdu_device_drive_get_connection_interface (GduDevice *device);
66 guint64 gdu_device_drive_get_connection_speed (GduDevice *device);
67 char **gdu_device_drive_get_media_compatibility (GduDevice *device);
68+const gchar *gdu_device_get_automount_hint(GduDevice *device);
69 const char *gdu_device_drive_get_media (GduDevice *device);
70 gboolean gdu_device_drive_get_is_media_ejectable (GduDevice *device);
71 gboolean gdu_device_drive_get_requires_eject (GduDevice *device);
72--
731.7.6.5
74
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch
deleted file mode 100644
index 0bc9707c2..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From f8dea8dd411cba10a54ec083c3d5c9d641ec36c0 Mon Sep 17 00:00:00 2001
2From: William Jon McCann <jmccann@redhat.com>
3Date: Tue, 12 Oct 2010 00:12:49 -0400
4Subject: [PATCH] Require libnotify 0.6.1
5
6https://bugzilla.gnome.org/show_bug.cgi?id=631940
7
8Upstream-Status: Backport [1]
9
10[1] https://git.gnome.org/browse/gnome-disk-utility/commit/?id=f8dea8dd411cba10a54ec083c3d5c9d641ec36c0
11
12Signed-off-by: David Zeuthen <davidz@redhat.com>
13---
14 configure.ac | 2 +-
15 src/notification/notification-main.c | 5 +----
16 2 files changed, 2 insertions(+), 5 deletions(-)
17
18diff --git a/configure.ac b/configure.ac
19index c61212e..3790fcf 100644
20--- a/configure.ac
21+++ b/configure.ac
22@@ -128,7 +128,7 @@ DBUS_GLIB_REQUIRED=0.74
23 GNOME_KEYRING_REQUIRED=2.22
24 GTK2_REQUIRED=2.20.0
25 UNIQUE_REQUIRED=1.0
26-LIBNOTIFY_REQUIRED=0.3.0
27+LIBNOTIFY_REQUIRED=0.6.1
28 NAUTILUS_REQUIRED=2.24.0
29 AVAHI_UI_REQUIRED=0.6.25
30
31diff --git a/src/notification/notification-main.c b/src/notification/notification-main.c
32index 18e9672..b6a713f 100644
33--- a/src/notification/notification-main.c
34+++ b/src/notification/notification-main.c
35@@ -535,10 +535,7 @@ update_status_icon (NotificationData *data)
36 _("A hard disk may be failing"),
37 /* Translators: This is used as the text of the notification*/
38 _("One or more hard disks report health problems. Click the icon to get more information."),
39- "gtk-dialog-warning",
40- NULL);
41- notify_notification_attach_to_status_icon (data->ata_smart_notification,
42- data->status_icon);
43+ "gtk-dialog-warning");
44 notify_notification_set_urgency (data->ata_smart_notification, NOTIFY_URGENCY_CRITICAL);
45 notify_notification_set_timeout (data->ata_smart_notification, NOTIFY_EXPIRES_NEVER);
46 show_notification (data);
47--
482.1.0
49
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch
deleted file mode 100644
index f36942d19..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2Subject: Disable scrollkeeper-config not found message
3Upstream-Status: Not-Applicable
4
5If scrollkeeper-config isn't found, configure fails with an error.
6Fix that by commenting out the check.
7
8Signed-Off-By: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
9
10
11Index: gnome-disk-utility-2.32.0/configure.ac
12===================================================================
13--- gnome-disk-utility-2.32.0.orig/configure.ac 2010-09-15 19:07:25.000000000 +0400
14+++ gnome-disk-utility-2.32.0/configure.ac 2011-08-20 01:29:48.000000000 +0400
15@@ -188,9 +188,9 @@
16 # *************
17
18 AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no)
19-if test x$SCROLLKEEPER_CONFIG = xno; then
20- AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package)
21-fi
22+dnl if test x$SCROLLKEEPER_CONFIG = xno; then
23+dnl AC_MSG_ERROR([Couldn't find scrollkeeper-config, please install the scrollkeeper package])
24+dnl fi
25
26 # ********************
27 # Internationalization
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch
deleted file mode 100644
index 6ba397955..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1Index: gnome-disk-utility-2.32.0/src/gdu/Makefile.am
2===================================================================
3--- gnome-disk-utility-2.32.0.orig/src/gdu/Makefile.am 2011-08-20 01:59:16.000000000 +0400
4+++ gnome-disk-utility-2.32.0/src/gdu/Makefile.am 2011-08-20 02:08:18.000000000 +0400
5@@ -14,20 +14,20 @@
6 gdu-marshal.c: gdu-marshal.list
7 echo "#include \"gdu-marshal.h\"" > $@ && glib-genmarshal $< --prefix=gdu_marshal --body >> $@
8
9-udisks-daemon-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am
10- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-daemon-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml
11+udisks-daemon-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am
12+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-daemon-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml
13
14-udisks-device-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am
15- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-device-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml
16+udisks-device-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am
17+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-device-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml
18
19-udisks-adapter-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am
20- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-adapter-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml
21+udisks-adapter-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am
22+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-adapter-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml
23
24-udisks-expander-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am
25- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-expander-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml
26+udisks-expander-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am
27+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-expander-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml
28
29-udisks-port-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am
30- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-port-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml
31+udisks-port-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am
32+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-port-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml
33
34 lib_LTLIBRARIES=libgdu.la
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch
deleted file mode 100644
index 48e63b1ea..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1In cross environment we have to prepend the sysroot to the path found by
2pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
3it ends up using the files from host system. Now usually people have gnome installed
4so the build succeeds but if you dont have gnome installed on build host then
5it wont find the files on host system and packages using gnome-doc-utils wont
6compile.
7
8This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
9will be empty
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15Index: gnome-disk-utility-2.32.0/gnome-doc-utils.make
16===================================================================
17--- gnome-disk-utility-2.32.0.orig/gnome-doc-utils.make 2010-09-15 08:27:46.000000000 -0700
18+++ gnome-disk-utility-2.32.0/gnome-doc-utils.make 2011-09-25 16:04:30.693795591 -0700
19@@ -133,12 +133,12 @@
20 _xml2po ?= `which xml2po`
21 _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
22
23-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
24-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
25-_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
26-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
27-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
28-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
29+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
30+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
31+_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils`
32+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
33+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
34+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
35
36 if ENABLE_SK
37 _ENABLE_SK = true
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb
deleted file mode 100644
index 55a589c3f..000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb
+++ /dev/null
@@ -1,45 +0,0 @@
1SUMMARY = "GNOME disk utility"
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=e9115d11797a5e6b746b4e9b90194564"
5
6DEPENDS = "glib-2.0 gtk+ libnotify libunique udisks avahi-ui \
7 virtual/libx11 libatasmart gnome-doc-utils intltool-native \
8 gnome-common-native libgnome-keyring dbus-glib-native \
9"
10
11PR = "r4"
12
13inherit gnomebase gtk-icon-cache distro_features_check
14
15REQUIRED_DISTRO_FEATURES = "x11"
16
17SRC_URI[archive.md5sum] = "f0366c8baebca0404d190b2d78f3582d"
18SRC_URI[archive.sha256sum] = "03e461b6bda7f773f8018d25fa3213d3073d4dc83a76e6b39d962652f4de6a98"
19GNOME_COMPRESS_TYPE="bz2"
20
21SRC_URI += "\
22 file://disable-scrollkeeper.patch \
23 file://fix-dbus-interfaces.patch \
24 file://sysrooted-pkg-config.patch \
25 file://0001-Add-support-for-DeviceAutomountHint.patch \
26 file://0002-Require-libnotify-0.6.1.patch \
27"
28
29EXTRA_OECONF += "--disable-scrollkeeper"
30
31PACKAGECONFIG ??= ""
32PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
33
34do_configure_prepend() {
35 sed -i -e "s: help : :g" ${S}/Makefile.am
36}
37
38PACKAGES =+ "${PN}-nautilus-extension ${PN}-libs"
39FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so"
40FILES_${PN}-libs += "${libdir}/libgdu*.so.*"
41FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la"
42FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a"
43FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug"
44
45PNBLACKLIST[gnome-disk-utility] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/132824/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb
deleted file mode 100644
index d1c9e4d8f..000000000
--- a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "GNOME menus"
2SECTION = "x11/gnome"
3LICENSE = "GPLv2 & LGPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
6PR = "r1"
7
8DEPENDS = "python libxml2 gconf popt gtk+ intltool-native"
9
10inherit gnomebase pkgconfig python-dir pythonnative gobject-introspection
11
12SRC_URI[archive.md5sum] = "caa6772e63ed5870cf43dc3d354e0624"
13SRC_URI[archive.sha256sum] = "6dcc565006d6e8c2025ae83ab1f82edf6bd04d61c804c0dc9bf5ea50629c4caa"
14GNOME_COMPRESS_TYPE="bz2"
15
16do_configure_append () {
17
18 # this expands to native-pthon which we don't want.
19 sed -i 's:\@PYTHON\@:/usr/bin/env python:' ${S}/simple-editor/gmenu-simple-editor.in
20
21}
22PACKAGES += "${PN}-python ${PN}-python-staticdev"
23FILES_${PN} += "${datadir}/desktop-directories/"
24FILES_${PN}-python-staticdev = "${PYTHON_SITEPACKAGES_DIR}/gmenu.a ${PYTHON_SITEPACKAGES_DIR}/gmenu.la"
25FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/gmenu.so ${PYTHON_SITEPACKAGES_DIR}/GMenuSimpleEditor "
26FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug \
27 ${PYTHON_SITEPACKAGES_DIR}/.debug"
28
29# http://errors.yoctoproject.org/Errors/Details/81001/
30PNBLACKLIST[gnome-menus] ?= "BROKEN: fails to build because of python + conflicts with gnome-menu3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Add-gnome-doc-utils.make.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Add-gnome-doc-utils.make.patch
deleted file mode 100644
index fdcccb9d7..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Add-gnome-doc-utils.make.patch
+++ /dev/null
@@ -1,730 +0,0 @@
1From 7345730ac882ee5a493254e5cf9162c96c648ef2 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 17 May 2016 14:40:33 +0300
4Subject: [PATCH] Add gnome-doc-utils.make
5
6Since the sources are taken from git, the file is absent
7(and is installed by tools from gnome-doc-utils which
8are no longer provided).
9
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 gnome-doc-utils.make | 706 +++++++++++++++++++++++++++++++++++++++++++++++++++
13 1 file changed, 706 insertions(+)
14 create mode 100644 gnome-doc-utils.make
15
16diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
17new file mode 100644
18index 0000000..b2e0fa1
19--- /dev/null
20+++ b/gnome-doc-utils.make
21@@ -0,0 +1,706 @@
22+# gnome-doc-utils.make - make magic for building documentation
23+# Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org>
24+#
25+# This program is free software; you can redistribute it and/or modify
26+# it under the terms of the GNU General Public License as published by
27+# the Free Software Foundation; either version 2 of the License, or
28+# (at your option) any later version.
29+#
30+# This program is distributed in the hope that it will be useful,
31+# but WITHOUT ANY WARRANTY; without even the implied warranty of
32+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33+# GNU General Public License for more details.
34+#
35+# You should have received a copy of the GNU General Public License
36+# along with this program; if not, write to the Free Software Foundation,
37+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
38+#
39+# As a special exception to the GNU General Public License, if you
40+# distribute this file as part of a program that contains a
41+# configuration script generated by Autoconf, you may include it under
42+# the same distribution terms that you use for the rest of that program.
43+
44+################################################################################
45+## @@ Generating Header Files
46+
47+## @ DOC_H_FILE
48+## The name of the header file to generate
49+DOC_H_FILE ?=
50+
51+## @ DOC_H_DOCS
52+## The input DocBook files for generating the header file
53+DOC_H_DOCS ?=
54+
55+$(DOC_H_FILE): $(DOC_H_DOCS);
56+ @rm -f $@.tmp; touch $@.tmp;
57+ echo 'const gchar* documentation_credits[] = {' >> $@.tmp
58+ list='$(DOC_H_DOCS)'; for doc in $$list; do \
59+ xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
60+ if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
61+ xsltproc -nonet --path "$$xmlpath" $(_credits) $$doc; \
62+ done | sort | uniq \
63+ | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
64+ | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
65+ echo ' NULL' >> $@.tmp
66+ echo '};' >> $@.tmp
67+ echo >> $@.tmp
68+ list='$(DOC_H_DOCS)'; for doc in $$list; do \
69+ xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
70+ if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
71+ docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
72+ | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
73+ echo $$xmlpath; \
74+ ids=`xsltproc -nonet --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
75+ for id in $$ids; do \
76+ echo '#define HELP_'`echo $$docid`'_'`echo $$id \
77+ | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
78+ done; \
79+ echo >> $@.tmp; \
80+ done;
81+ cp $@.tmp $@ && rm -f $@.tmp
82+
83+dist-check-gdu:
84+if !HAVE_GNOME_DOC_UTILS
85+ @echo "*** GNOME Doc Utils must be installed in order to make dist"
86+ @false
87+endif
88+
89+.PHONY: dist-doc-header
90+dist-doc-header: $(DOC_H_FILE)
91+ @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
92+ echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
93+ $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
94+
95+doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
96+
97+.PHONY: clean-doc-header
98+_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
99+clean-local: $(_clean_doc_header)
100+distclean-local: $(_clean_doc_header)
101+mostlyclean-local: $(_clean_doc_header)
102+maintainer-clean-local: $(_clean_doc_header)
103+clean-doc-header:
104+ rm -f $(DOC_H_FILE)
105+
106+all: $(DOC_H_FILE)
107+
108+
109+################################################################################
110+## @@ Generating Documentation Files
111+
112+## @ DOC_MODULE
113+## The name of the document being built
114+DOC_MODULE ?=
115+
116+## @ DOC_ID
117+## The unique identifier for a Mallard document
118+DOC_ID ?=
119+
120+## @ DOC_PAGES
121+## Page files in a Mallard document
122+DOC_PAGES ?=
123+
124+## @ DOC_ENTITIES
125+## Files included with a SYSTEM entity
126+DOC_ENTITIES ?=
127+
128+## @ DOC_INCLUDES
129+## Files included with XInclude
130+DOC_INCLUDES ?=
131+
132+## @ DOC_FIGURES
133+## Figures and other external data
134+DOC_FIGURES ?=
135+
136+## @ DOC_FORMATS
137+## The default formats to be built and installed
138+DOC_FORMATS ?= docbook
139+_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
140+
141+## @ DOC_LINGUAS
142+## The languages this document is translated into
143+DOC_LINGUAS ?=
144+_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \
145+ $(filter $(LINGUAS),$(DOC_LINGUAS)), \
146+ $(DOC_LINGUAS))
147+
148+_DOC_ABS_SRCDIR = @abs_srcdir@
149+
150+
151+################################################################################
152+## Variables for Bootstrapping
153+
154+_xml2po ?= `which xml2po`
155+_xml2po_mode = $(if $(DOC_ID),mallard,docbook)
156+
157+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
158+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
159+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
160+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
161+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
162+
163+if ENABLE_SK
164+_ENABLE_SK = true
165+_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
166+_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
167+_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
168+endif
169+
170+
171+################################################################################
172+## Support for automake silent-rules
173+GDU_V_XML2PO=$(GDU__v_XML2PO_$(V))
174+GDU__v_XML2PO_=$(GDU__v_XML2PO_$(AM_DEFAULT_VERBOSITY))
175+GDU__v_XML2PO_0=@echo " XML2PO" $@;
176+
177+GDU_V_MSGFMT=$(GDU__v_MSGFMT_$(V))
178+GDU__v_MSGFMT_=$(GDU__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
179+GDU__v_MSGFMT_0=@echo " MSGFMT" $@;
180+
181+GDU_V_DB2OMF=$(GDU__v_DB2OMF_$(V))
182+GDU__v_DB2OMF_=$(GDU__v_DB2OMF_$(AM_DEFAULT_VERBOSITY))
183+GDU__v_DB2OMF_0=@echo " DB2OMF" $@;
184+
185+GDU_V_DB2HTM=$(GDU__v_DB2HTM_$(V))
186+GDU__v_DB2HTM_=$(GDU__v_DB2HTM_$(AM_DEFAULT_VERBOSITY))
187+GDU__v_DB2HTM_0=@echo " DB2HTM" $@;
188+
189+################################################################################
190+## @@ Rules for OMF Files
191+
192+db2omf_args = \
193+ --stringparam db2omf.basename $(DOC_MODULE) \
194+ --stringparam db2omf.format $(3) \
195+ --stringparam db2omf.dtd \
196+ $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \
197+ | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \
198+ --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \
199+ --stringparam db2omf.omf_dir "$(OMF_DIR)" \
200+ --stringparam db2omf.help_dir "$(HELP_DIR)" \
201+ --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \
202+ $(if $(_ENABLE_SK), \
203+ --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \
204+ $(_db2omf) $(2)
205+
206+## @ _DOC_OMF_IN
207+## The OMF input file
208+_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
209+
210+## @ _DOC_OMF_DB
211+## The OMF files for DocBook output
212+_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \
213+ $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
214+
215+$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
216+$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
217+ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
218+ echo "The file '$(_skcontentslist)' does not exist." >&2; \
219+ echo "Please check your ScrollKeeper installation." >&2; \
220+ exit 1; }
221+ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
222+
223+## @ _DOC_OMF_HTML
224+## The OMF files for HTML output
225+_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \
226+ $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
227+
228+$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
229+$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
230+if ENABLE_SK
231+ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
232+ echo "The file '$(_skcontentslist)' does not exist" >&2; \
233+ echo "Please check your ScrollKeeper installation." >&2; \
234+ exit 1; }
235+endif
236+ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
237+
238+## @ _DOC_OMF_ALL
239+## All OMF output files to be built
240+# FIXME
241+_DOC_OMF_ALL = \
242+ $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \
243+ $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
244+
245+.PHONY: omf
246+omf: $(_DOC_OMF_ALL)
247+
248+
249+################################################################################
250+## @@ C Locale Documents
251+
252+## @ _DOC_C_MODULE
253+## The top-level documentation file in the C locale
254+_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
255+
256+## @ _DOC_C_PAGES
257+## Page files in a Mallard document in the C locale
258+_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
259+
260+## @ _DOC_C_ENTITIES
261+## Files included with a SYSTEM entity in the C locale
262+_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
263+
264+## @ _DOC_C_XINCLUDES
265+## Files included with XInclude in the C locale
266+_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
267+
268+## @ _DOC_C_DOCS
269+## All documentation files in the C locale
270+_DOC_C_DOCS = \
271+ $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \
272+ $(_DOC_C_PAGES) $(_DOC_C_MODULE)
273+
274+## @ _DOC_C_DOCS_NOENT
275+## All documentation files in the C locale,
276+## except files included with a SYSTEM entity
277+_DOC_C_DOCS_NOENT = \
278+ $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \
279+ $(_DOC_C_PAGES)
280+
281+## @ _DOC_C_FIGURES
282+## All figures and other external data in the C locale
283+_DOC_C_FIGURES = $(if $(DOC_FIGURES), \
284+ $(foreach fig,$(DOC_FIGURES),C/$(fig)), \
285+ $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
286+
287+## @ _DOC_C_HTML
288+## All HTML documentation in the C locale
289+# FIXME: probably have to shell escape to determine the file names
290+_DOC_C_HTML = $(foreach f, \
291+ $(shell xsltproc -nonet --xinclude \
292+ --stringparam db.chunk.basename "$(DOC_MODULE)" \
293+ $(_chunks) "C/$(DOC_MODULE).xml"), \
294+ C/$(f).xhtml)
295+
296+###############################################################################
297+## @@ Other Locale Documentation
298+
299+## @ _DOC_POFILES
300+## The .po files used for translating the document
301+_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \
302+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
303+
304+.PHONY: po
305+po: $(_DOC_POFILES)
306+
307+## @ _DOC_MOFILES
308+## The .mo files used for translating the document
309+_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
310+
311+.PHONY: mo
312+mo: $(_DOC_MOFILES)
313+
314+## @ _DOC_LC_MODULES
315+## The top-level documentation files in all other locales
316+_DOC_LC_MODULES = $(if $(DOC_MODULE), \
317+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
318+
319+## @ _DOC_LC_PAGES
320+## Page files in a Mallard document in all other locales
321+_DOC_LC_PAGES = \
322+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \
323+ $(lc)/$(notdir $(page)) ))
324+
325+## @ _DOC_LC_XINCLUDES
326+## Files included with XInclude in all other locales
327+_DOC_LC_INCLUDES = \
328+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \
329+ $(lc)/$(notdir $(inc)) ))
330+
331+## @ _DOC_LC_HTML
332+## All HTML documentation in all other locales
333+# FIXME: probably have to shell escape to determine the file names
334+_DOC_LC_HTML = \
335+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \
336+ $(lc)/$(notdir $(doc)) ))
337+
338+## @ _DOC_LC_DOCS
339+## All documentation files in all other locales
340+_DOC_LC_DOCS = \
341+ $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \
342+ $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
343+
344+## @ _DOC_LC_FIGURES
345+## All figures and other external data in all other locales
346+_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \
347+ $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
348+
349+_DOC_SRC_FIGURES = \
350+ $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \
351+ $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
352+
353+$(_DOC_POFILES):
354+ @if ! test -d $(dir $@); then \
355+ echo "mkdir $(dir $@)"; \
356+ mkdir "$(dir $@)"; \
357+ fi
358+ @if test ! -f $@ -a -f $(srcdir)/$@; then \
359+ echo "cp $(srcdir)/$@ $@"; \
360+ cp "$(srcdir)/$@" "$@"; \
361+ fi;
362+ @docs=; \
363+ list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
364+ docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
365+ done; \
366+ if ! test -f $@; then \
367+ echo "(cd $(dir $@) && \
368+ $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
369+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
370+ (cd $(dir $@) && \
371+ $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
372+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
373+ else \
374+ echo "(cd $(dir $@) && \
375+ $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
376+ (cd $(dir $@) && \
377+ $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
378+ fi
379+
380+$(_DOC_MOFILES): %.mo: %.po
381+ $(AM_V_at)if ! test -d $(dir $@); then mkdir "$(dir $@)"; fi
382+ $(GDU_V_MSGFMT)msgfmt -o $@ $<
383+
384+# FIXME: fix the dependancy
385+# FIXME: hook xml2po up
386+$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
387+$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
388+ $(AM_V_at)if ! test -d $(dir $@); then mkdir $(dir $@); fi
389+ $(GDU_V_XML2PO)if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
390+ mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
391+ if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
392+ (cd $(dir $@) && \
393+ $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
394+ "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
395+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
396+
397+## @ _DOC_POT
398+## A pot file
399+_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
400+.PHONY: pot
401+pot: $(_DOC_POT)
402+$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
403+ $(GDU_V_XML2PO)$(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
404+
405+
406+################################################################################
407+## @@ All Documentation
408+
409+## @ _DOC_HTML_ALL
410+## All HTML documentation, only if it's built
411+_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
412+ $(_DOC_C_HTML) $(_DOC_LC_HTML))
413+
414+_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
415+
416+$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
417+ $(GDU_V_DB2HTM)xsltproc -nonet -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
418+
419+
420+################################################################################
421+## All
422+
423+all: \
424+ $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \
425+ $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \
426+ $(_DOC_HTML_ALL) $(_DOC_POFILES)
427+
428+
429+################################################################################
430+## Clean
431+
432+.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
433+
434+clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
435+clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
436+clean-doc-lc:
437+ rm -f $(_DOC_LC_DOCS)
438+ rm -f $(_DOC_MOFILES)
439+ @list='$(_DOC_POFILES)'; for po in $$list; do \
440+ if ! test "$$po" -ef "$(srcdir)/$$po"; then \
441+ echo "rm -f $$po"; \
442+ rm -f "$$po"; \
443+ fi; \
444+ done
445+# .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
446+ @for lc in C $(_DOC_REAL_LINGUAS); do \
447+ if test -f "$$lc/.xml2po.mo"; then \
448+ echo "rm -f $$lc/.xml2po.mo"; \
449+ rm -f "$$lc/.xml2po.mo"; \
450+ fi; \
451+ done
452+clean-doc-dir: clean-doc-lc
453+ @for lc in C $(_DOC_REAL_LINGUAS); do \
454+ for dir in `find $$lc -depth -type d`; do \
455+ if ! test $$dir -ef $(srcdir)/$$dir; then \
456+ echo "rmdir $$dir"; \
457+ rmdir "$$dir"; \
458+ fi; \
459+ done; \
460+ done
461+
462+_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
463+_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
464+_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
465+_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
466+
467+clean-local: \
468+ $(_clean_omf) $(_clean_dsk) \
469+ $(_clean_lc) $(_clean_dir)
470+distclean-local: \
471+ $(_clean_omf) $(_clean_dsk) \
472+ $(_clean_lc) $(_clean_dir)
473+mostlyclean-local: \
474+ $(_clean_omf) $(_clean_dsk) \
475+ $(_clean_lc) $(_clean_dir)
476+maintainer-clean-local: \
477+ $(_clean_omf) $(_clean_dsk) \
478+ $(_clean_lc) $(_clean_dir)
479+
480+
481+
482+################################################################################
483+## Dist
484+
485+.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
486+doc-dist-hook: \
487+ $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \
488+ $(if $(_DOC_C_FIGURES),dist-doc-figs) \
489+ $(if $(_DOC_OMF_IN),dist-doc-omf)
490+# $(if $(_DOC_DSK_IN),dist-doc-dsk)
491+
492+dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
493+ @for lc in C $(_DOC_REAL_LINGUAS); do \
494+ echo " $(mkinstalldirs) $(distdir)/$$lc"; \
495+ $(mkinstalldirs) "$(distdir)/$$lc"; \
496+ done
497+ @list='$(_DOC_C_DOCS)'; \
498+ for doc in $$list; do \
499+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
500+ docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
501+ if ! test -d "$(distdir)/$$docdir"; then \
502+ echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
503+ $(mkinstalldirs) "$(distdir)/$$docdir"; \
504+ fi; \
505+ echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
506+ $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
507+ done
508+ @list='$(_DOC_LC_DOCS)'; \
509+ for doc in $$list; do \
510+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
511+ docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
512+ if ! test -d "$(distdir)/$$docdir"; then \
513+ echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
514+ $(mkinstalldirs) "$(distdir)/$$docdir"; \
515+ fi; \
516+ echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
517+ $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
518+ done
519+ @list='$(_DOC_POFILES)'; \
520+ for doc in $$list; do \
521+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
522+ docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
523+ if ! test -d "$(distdir)/$$docdir"; then \
524+ echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
525+ $(mkinstalldirs) "$(distdir)/$$docdir"; \
526+ fi; \
527+ echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
528+ $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
529+ done
530+
531+dist-doc-figs: $(_DOC_SRC_FIGURES)
532+ @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
533+ for fig in $$list; do \
534+ if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
535+ if test -f "$$d$$fig"; then \
536+ figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
537+ if ! test -d "$(distdir)/$$figdir"; then \
538+ echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
539+ $(mkinstalldirs) "$(distdir)/$$figdir"; \
540+ fi; \
541+ echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
542+ $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
543+ fi; \
544+ done;
545+
546+dist-doc-omf:
547+ @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
548+ echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
549+ $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
550+
551+dist-doc-dsk:
552+ @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
553+ echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
554+ $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
555+
556+
557+
558+################################################################################
559+## Check
560+
561+.PHONY: check-doc-docs check-doc-omf
562+check: \
563+ $(if $(DOC_MODULE),check-doc-docs) \
564+ $(if $(DOC_ID),check-doc-pages) \
565+ $(if $(_DOC_OMF_IN),check-doc-omf)
566+
567+check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
568+ @for lc in C $(_DOC_REAL_LINGUAS); do \
569+ if test -f "$$lc"; \
570+ then d=; \
571+ xmlpath="$$lc"; \
572+ else \
573+ d="$(srcdir)/"; \
574+ xmlpath="$$lc:$(srcdir)/$$lc"; \
575+ fi; \
576+ echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
577+ xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
578+ done
579+
580+check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
581+ for lc in C $(_DOC_REAL_LINGUAS); do \
582+ if test -f "$$lc"; \
583+ then d=; \
584+ xmlpath="$$lc"; \
585+ else \
586+ d="$(srcdir)/"; \
587+ xmlpath="$$lc:$(srcdir)/$$lc"; \
588+ fi; \
589+ for page in $(DOC_PAGES); do \
590+ echo "xmllint --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \
591+ xmllint --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \
592+ done; \
593+ done
594+
595+check-doc-omf: $(_DOC_OMF_ALL)
596+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
597+ echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
598+ xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
599+ done
600+
601+
602+
603+################################################################################
604+## Install
605+
606+.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
607+
608+_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
609+
610+install-data-local: \
611+ $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \
612+ $(if $(_DOC_HTML_ALL),install-doc-html) \
613+ $(if $(_DOC_C_FIGURES),install-doc-figs) \
614+ $(if $(_DOC_OMF_IN),install-doc-omf)
615+# $(if $(_DOC_DSK_IN),install-doc-dsk)
616+
617+install-doc-docs:
618+ @for lc in C $(_DOC_REAL_LINGUAS); do \
619+ echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
620+ $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
621+ done
622+ @list='$(_DOC_C_DOCS)'; for doc in $$list; do \
623+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
624+ docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
625+ docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
626+ if ! test -d "$$docdir"; then \
627+ echo "$(mkinstalldirs) $$docdir"; \
628+ $(mkinstalldirs) "$$docdir"; \
629+ fi; \
630+ echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
631+ $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
632+ done
633+ @list='$(_DOC_LC_DOCS)'; for doc in $$list; do \
634+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
635+ docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
636+ docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
637+ if ! test -d "$$docdir"; then \
638+ echo "$(mkinstalldirs) $$docdir"; \
639+ $(mkinstalldirs) "$$docdir"; \
640+ fi; \
641+ echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
642+ $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
643+ done
644+
645+install-doc-figs:
646+ @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
647+ for lc in C $(_DOC_REAL_LINGUAS); do \
648+ figsymlink=false; \
649+ if test -f "$$lc/$$fig"; then \
650+ figfile="$$lc/$$fig"; \
651+ elif test -f "$(srcdir)/$$lc/$$fig"; then \
652+ figfile="$(srcdir)/$$lc/$$fig"; \
653+ else \
654+ figsymlink=true; \
655+ fi; \
656+ figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
657+ figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
658+ if ! test -d "$$figdir"; then \
659+ echo "$(mkinstalldirs) $$figdir"; \
660+ $(mkinstalldirs) "$$figdir"; \
661+ fi; \
662+ figbase=`echo $$fig | sed -e 's/^.*\///'`; \
663+ if $$figsymlink; then \
664+ echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
665+ ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
666+ else \
667+ echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
668+ $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
669+ fi; \
670+ done; \
671+ done
672+
673+install-doc-html:
674+ echo install-html
675+
676+install-doc-omf:
677+ $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
678+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
679+ echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
680+ $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
681+ done
682+ @if test "x$(_ENABLE_SK)" = "xtrue"; then \
683+ echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
684+ scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
685+ fi;
686+
687+install-doc-dsk:
688+ echo install-dsk
689+
690+
691+
692+################################################################################
693+## Uninstall
694+
695+.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
696+uninstall-local: \
697+ $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \
698+ $(if $(_DOC_HTML_ALL),uninstall-doc-html) \
699+ $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \
700+ $(if $(_DOC_OMF_IN),uninstall-doc-omf)
701+# $(if $(_DOC_DSK_IN),uninstall-doc-dsk)
702+
703+uninstall-doc-docs:
704+ @list='$(_DOC_C_DOCS)'; for doc in $$list; do \
705+ echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
706+ rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
707+ done
708+ @list='$(_DOC_LC_DOCS)'; for doc in $$list; do \
709+ echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
710+ rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
711+ done
712+
713+uninstall-doc-figs:
714+ @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
715+ echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
716+ rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
717+ done;
718+
719+uninstall-doc-omf:
720+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
721+ if test "x$(_ENABLE_SK)" = "xtrue"; then \
722+ echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
723+ scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
724+ fi; \
725+ echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
726+ rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
727+ done
728--
7292.8.1
730
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch
deleted file mode 100644
index 6b7fc5bec..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 20810fcf329c6e0b48b8e7602565ccc70c7ce62b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 10 May 2015 02:10:59 -0700
4Subject: [PATCH] Fix build with gcc 5
5
6cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or
7directory [-Werror=missing-include-dirs]
8cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or
9directory [-Werror=missing-include-dirs]
10cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or
11directory [-Werror=missing-include-dirs]
12cc1: some warnings being treated as errors
13
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15---
16Upstream-Status: Pending
17
18 gnome-panel/libpanel-applet-private/Makefile.am | 1 -
19 1 file changed, 1 deletion(-)
20
21diff --git a/gnome-panel/libpanel-applet-private/Makefile.am b/gnome-panel/libpanel-applet-private/Makefile.am
22index f12dee8..d556f12 100644
23--- a/gnome-panel/libpanel-applet-private/Makefile.am
24+++ b/gnome-panel/libpanel-applet-private/Makefile.am
25@@ -8,7 +8,6 @@ AM_CPPFLAGS = \
26 -I$(srcdir) \
27 -I$(top_srcdir)/gnome-panel \
28 -I$(top_builddir)/gnome-panel \
29- -I$(top_builddir)/gnome-panel/libpanel-applets-private \
30 -I$(top_builddir)/gnome-panel/libpanel-util \
31 -DDATADIR=\""$(datadir)"\" \
32 -DPANEL_APPLETS_DIR=\"$(appletsdir)\" \
33--
342.1.4
35
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch
deleted file mode 100644
index 378e3e405..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From c65f1ae3472cfd4cd96fd376b7bbd95fba5eef0a Mon Sep 17 00:00:00 2001
2From: Vincent Untz <vuntz@gnome.org>
3Date: Fri, 27 May 2011 17:00:14 +0000
4Subject: build: Fix build with --as-needed
5
6upstream-status: backport
7
8---
9diff --git a/applets/notification_area/Makefile.am b/applets/notification_area/Makefile.am
10index 0afc6c5..9734536 100644
11--- a/applets/notification_area/Makefile.am
12+++ b/applets/notification_area/Makefile.am
13@@ -29,17 +29,17 @@ libtray_la_SOURCES = \
14 NOTIFICATION_AREA_SOURCES = main.c main.h
15
16 NOTIFICATION_AREA_LDADD = \
17+ libtray.la \
18 ../../libpanel-applet/libpanel-applet-4.la \
19 $(X_LIBS) \
20 $(NOTIFICATION_AREA_LIBS) \
21- $(LIBPANEL_APPLET_LIBS) \
22- libtray.la
23+ $(LIBPANEL_APPLET_LIBS)
24
25 testtray_SOURCES = testtray.c
26 testtray_LDADD = \
27+ libtray.la \
28 $(X_LIBS) \
29- $(NOTIFICATION_AREA_LIBS) \
30- libtray.la
31+ $(NOTIFICATION_AREA_LIBS)
32
33 if NOTIFICATION_AREA_INPROCESS
34 APPLET_IN_PROCESS = true
35--
36cgit v0.9
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch
deleted file mode 100644
index de4cd8486..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1--- /tmp/Makefile.am 2009-10-26 16:53:20.000000000 +0100
2+++ gnome-panel-2.28.0/gnome-panel/Makefile.am 2009-10-26 16:53:51.000000000 +0100
3@@ -43,7 +43,7 @@
4 $(NULL)
5
6 $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL)
7- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl
8+ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl
9
10 BUILT_SOURCES = \
11 $(CORBA_SRCLIST) \
12--- /tmp/Makefile.am 2009-10-26 16:54:17.000000000 +0100
13+++ gnome-panel-2.28.0/libpanel-applet/Makefile.am 2009-10-26 16:54:34.000000000 +0100
14@@ -45,7 +45,7 @@
15 GNOME_Panel.h
16
17 $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL)
18- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl
19+ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl
20
21 noinst_PROGRAMS = test-bonobo-applet
22
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb
deleted file mode 100644
index d1cfab8fb..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb
+++ /dev/null
@@ -1,51 +0,0 @@
1SUMMARY = "GNOME panel"
2LICENSE = "GPLv2 & LGPLv2 & GFDL-1.1"
3
4BPN = "gnome-panel"
5PR = "r1"
6
7PNBLACKLIST[gnome-panel3] ?= "CONFLICT: depends on libgweather3 which conflicts with libgweather - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9# conflicts with gnome-panel, because they provide the same package
10# http://patches.openembedded.org/patch/43105/
11EXCLUDE_FROM_WORLD = "1"
12DEFAULT_PREFERENCE = "-1"
13
14LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
15 file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \
16 file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
17
18SECTION = "x11/gnome"
19
20DEPENDS = "gnome-doc-utils-native gtk+3 dconf gconf glib-2.0 gnome-desktop3 gtk+ pango libwnck3 gnome-menus cairo libgweather3 dbus-glib librsvg libcanberra"
21
22inherit gtk-doc gnome gettext pkgconfig
23
24SRC_URI += "file://as-needed.patch "
25
26SRC_URI[archive.md5sum] = "0f2f644dc4081b72f6df7a65282af7c6"
27SRC_URI[archive.sha256sum] = "25db8ec026c4bf47f0ef5cc7e2712f2aad175bd7fb8e4952ef5f8b200f17f196"
28
29EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none"
30
31do_configure_prepend() {
32 gnome-doc-prepare --automake
33 sed -i -e s:help:: ${S}/Makefile.am
34}
35
36pkg_postinst_${PN}_append () {
37 gconftool-2 --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults \
38 --direct --load /etc/gconf/schemas/panel-default-setup.entries
39}
40
41PACKAGES =+ "libpanel-applet"
42FILES_libpanel-applet = "${libdir}/libpanel-applet-3.so.*"
43
44FILES_${PN} =+ "${datadir}/gnome* \
45 ${datadir}/dbus-1 \
46 ${datadir}/icons \
47 ${datadir}/PolicyKit \
48 ${libdir}/bonobo \
49"
50
51PNBLACKLIST[gnome-panel3] ?= "Depends on broken gnome-menus - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb
deleted file mode 100644
index 7cb8b9ddf..000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb
+++ /dev/null
@@ -1,48 +0,0 @@
1SUMMARY = "GNOME panel"
2LICENSE = "GPL-2.0 & LGPL-2.0 & GFDL-1.1"
3
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \
6 file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
7
8SECTION = "x11/gnome"
9
10PR = "r7"
11
12DEPENDS = "gnome-doc-utils gconf glib-2.0 gnome-desktop gtk+ \
13 pango libwnck gnome-menus cairo libgweather dbus dbus-glib \
14 librsvg libcanberra \
15"
16RDEPENDS_${PN} = "python"
17
18inherit gtk-doc gnome autotools-brokensep gettext pkgconfig gconf gobject-introspection
19
20SRCREV = "8292bd2b8a36df7eed3c760899400790cde68590"
21SRC_URI = "git://git.gnome.org/gnome-panel;branch=gnome-2-32 \
22 file://0001-Fix-build-with-gcc-5.patch \
23 file://0001-Add-gnome-doc-utils.make.patch \
24"
25
26S = "${WORKDIR}/git"
27
28EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none"
29
30PACKAGECONFIG ??= ""
31PACKAGECONFIG[networkmanager] = "--enable-network-manager,--disable-network-manager,networkmanager"
32
33do_configure_prepend() {
34 sed -i -e s:help:: ${S}/Makefile.am
35 sed -i -e s:^#!@PYTHON@:#!/usr/bin/python: ${S}/gnome-panel/gnome-panel-add.in
36}
37
38PACKAGES =+ "libpanel-applet"
39FILES_libpanel-applet = "${libdir}/libpanel-applet-*.so.*"
40
41FILES_${PN} =+ "${datadir}/gnome* \
42 ${datadir}/dbus-1 \
43 ${datadir}/icons \
44 ${datadir}/PolicyKit \
45 ${libdir}/bonobo \
46"
47
48PNBLACKLIST[gnome-panel] ?= "Depends on broken libgweather - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch
deleted file mode 100644
index d6d49bbda..000000000
--- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 3ed15a3c6ae4ab94c7e3af306644bb5d7f3fd1fa Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Mon, 29 Apr 2013 13:08:10 +0200
4Subject: [PATCH] Makefile.am: don't build help/man
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9help crashes with:
10
11| xsltproc -o gnome-power-manager-C.omf --stringparam db2omf.basename gnome-power-manager --stringparam db2omf.format 'docbook' --stringparam db2omf.dtd "-//OASIS//DTD DocBook XML V4.3//EN" --stringparam db2omf.lang C --stringparam db2omf.omf_dir "/usr/share/omf" --stringparam db2omf.help_dir "/usr/share/gnome/help" --stringparam db2omf.omf_in "/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gnome-power-manager/2.32.0-r2/gnome-power-manager-2.32.0/help/gnome-power-manager.omf.in" /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm`/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/pkg-config --variable db2omf gnome-doc-utils` C/gnome-power-manager.xml || { rm -f "gnome-power-manager-C.omf"; exit 1; }
12| unable to parse fr/gnome-power-manager.xml
13
14Upstream-Status: Inappropriate [configuration]
15
16Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
17---
18 Makefile.am | 2 --
19 1 files changed, 0 insertions(+), 2 deletions(-)
20
21diff --git a/Makefile.am b/Makefile.am
22index 005b8a0..5b9e318 100644
23--- a/Makefile.am
24+++ b/Makefile.am
25@@ -5,9 +5,7 @@ SUBDIRS = \
26 src \
27 po \
28 docs \
29- man \
30 data \
31- help \
32 policy \
33 tools
34
35--
361.7.6.5
37
diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch
deleted file mode 100644
index f3db7ab6e..000000000
--- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1In cross environment we have to prepend the sysroot to the path found by
2pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
3it ends up using the files from host system. Now usually people have gnome installed
4so the build succeeds but if you dont have gnome installed on build host then
5it wont find the files on host system and packages using gnome-doc-utils wont
6compile.
7
8This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
9will be empty
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15Index: gnome-power-manager-2.32.0/gnome-doc-utils.make
16===================================================================
17--- gnome-power-manager-2.32.0.orig/gnome-doc-utils.make 2010-01-27 08:28:31.000000000 -0800
18+++ gnome-power-manager-2.32.0/gnome-doc-utils.make 2011-09-25 16:16:04.914813800 -0700
19@@ -124,11 +124,11 @@
20
21 _xml2po ?= `which xml2po`
22
23-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
24-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
25-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
26-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
27-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
28+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
29+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
30+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
31+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
32+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
33
34 if ENABLE_SK
35 _ENABLE_SK = true
diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb
deleted file mode 100644
index ec2110785..000000000
--- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb
+++ /dev/null
@@ -1,54 +0,0 @@
1SUMMARY = "Power management daemon"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
4
5PR = "r4"
6
7DEPENDS = "glib-2.0 gtk+ gconf libgnome-keyring dbus dbus-glib libnotify libwnck cairo libunique xrandr virtual/libx11 libxrender libcanberra upower gnome-doc-utils"
8RRECOMMENDS_${PN} += "gnome-keyring"
9
10inherit gnome
11
12SRC_URI += " \
13 file://sysrooted-pkg-config.patch \
14 file://0001-Makefile.am-don-t-build-help-man.patch \
15"
16
17SRC_URI[archive.md5sum] = "9a08e85dce3ffb90775f15e3bda4adda"
18SRC_URI[archive.sha256sum] = "17fa301bf7e133285c0e054ae3be2b0f690c48f59b09f67e04d6ed339b330476"
19GNOME_COMPRESS_TYPE="bz2"
20
21EXTRA_OECONF = " --disable-scrollkeeper \
22 --disable-applets \
23 --x-includes=${STAGING_INCDIR} \
24 --x-libraries=${STAGING_LIBDIR} \
25 --enable-compile-warnings=no \
26 ac_cv_header_X11_extensions_dpms_h=yes \
27"
28
29do_configure_append() {
30 # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror
31 for i in $(find ${B} -name "Makefile") ; do
32 sed -i -e s:-Werror::g $i
33 done
34 sed -e "s/libtool --/${TARGET_SYS}-libtool --/" -i ${B}/src/Makefile
35}
36
37PACKAGES =+ "${PN}-applets"
38
39FILES_${PN}-applets = "${bindir}/*applet* \
40 ${libdir}/bonobo/servers \
41 ${datadir}/gnome-2.0/ui \
42"
43
44FILES_${PN} += "${datadir}/icons \
45 ${datadir}/dbus-1 \
46 ${datadir}/gnome/autostart \
47"
48
49FILES_${PN}-doc += "${datadir}/omf \
50 ${datadir}/gnome/help \
51"
52
53# gnome-power-manager-2.32.0/src/gpm-manager.c:488:18: error: too many arguments to function 'notify_notification_new'
54PNBLACKLIST[gnome-power-manager] ?= "BROKEN: not compatible with current libnotify - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch b/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch
deleted file mode 100644
index b09f8d200..000000000
--- a/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1This patch fixes the build errors when building gnome-session for 64bit target using gcc 4.8
2
3| gs-idle-monitor.c: In function 'handle_alarm_notify_event':
4| gs-idle-monitor.c:196:9: error: format '%lld' expects argument of type 'long long int', but argument 5 has type 'gint64' [-Werror=format=]
5| g_debug ("Watch %d fired, idle time = %lld",
6| ^
7| gs-idle-monitor.c: In function '_xsync_alarm_set':
8| gs-idle-monitor.c:453:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=]
9| g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld",
10| ^
11| gs-idle-monitor.c:457:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=]
12| g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld",
13| ^
14| gs-idle-monitor.c:464:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=]
15| g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld",
16| ^
17| gs-idle-monitor.c:468:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=]
18
19Upstream-Status: Unknown
20
21Signed-off-by: Khem Raj <raj.khem@gmail.com>
22Index: gnome-session-2.32.1/gnome-session/gs-idle-monitor.c
23===================================================================
24--- gnome-session-2.32.1.orig/gnome-session/gs-idle-monitor.c 2010-11-17 03:17:04.000000000 -0800
25+++ gnome-session-2.32.1/gnome-session/gs-idle-monitor.c 2013-06-11 23:33:12.239960082 -0700
26@@ -193,7 +193,7 @@
27 return;
28 }
29
30- g_debug ("Watch %d fired, idle time = %lld",
31+ g_debug ("Watch %d fired, idle time = %" G_GINT64_FORMAT "",
32 watch->id,
33 _xsyncvalue_to_int64 (alarm_event->counter_value));
34
35@@ -450,22 +450,22 @@
36
37 attr.trigger.test_type = XSyncPositiveTransition;
38 if (watch->xalarm_positive != None) {
39- g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld",
40+ g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%" G_GINT64_FORMAT "",
41 _xsyncvalue_to_int64 (attr.trigger.wait_value));
42 XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_positive, flags, &attr);
43 } else {
44- g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld",
45+ g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%" G_GINT64_FORMAT "",
46 _xsyncvalue_to_int64 (attr.trigger.wait_value));
47 watch->xalarm_positive = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr);
48 }
49
50 attr.trigger.test_type = XSyncNegativeTransition;
51 if (watch->xalarm_negative != None) {
52- g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld",
53+ g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%" G_GINT64_FORMAT "",
54 _xsyncvalue_to_int64 (attr.trigger.wait_value));
55 XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_negative, flags, &attr);
56 } else {
57- g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%lld",
58+ g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%" G_GINT64_FORMAT "",
59 _xsyncvalue_to_int64 (attr.trigger.wait_value));
60 watch->xalarm_negative = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr);
61 }
diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb
deleted file mode 100644
index c49f2d3fb..000000000
--- a/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
1SUMMARY = "Gnome session manager"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
4
5PR = "r3"
6
7SECTION = "x11/gnome"
8DEPENDS = "libxtst gtk+ glib-2.0 upower dbus-glib gconf pango gdk-pixbuf-native startup-notification"
9
10inherit gnome
11
12SRC_URI += "file://use_G_GINT64_FORMAT.patch"
13
14SRC_URI[archive.md5sum] = "222bad6b446cb19a6b9028ea24538002"
15SRC_URI[archive.sha256sum] = "22d93ce433fcf9c7ce6b5f36dd81f64e692ea0e41faaa0f61159ddac28c3686a"
16GNOME_COMPRESS_TYPE="bz2"
17
18EXTRA_OECONF = " --with-gtk=2.0 ac_cv_path_GCONF_SANITY_CHECK=set --disable-docbook-docs"
19
20do_configure_append() {
21 for i in $(find ${S} -name "Makefile") ; do
22 sed -i -e s:"GCONFTOOL = .*/usr/bin/gconftool-2":"GCONFTOOL = /usr/bin/gconftool-2":g $i
23 sed -i -e s:"GCONF_SANITY_CHECK = set":"GCONF_SANITY_CHECK = /usr/libexec/gconf-sanity-check-2":g $i
24 done
25}
26
27RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-ck-connector', '', d)}"
28FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${datadir}/gnome ${libdir}/gnome-session/helpers"
29FILES_${PN}-dbg += "${libexecdir}/gnome-session/helpers/.debug"
30
31# http://errors.yoctoproject.org/Errors/Details/68621/
32PNBLACKLIST[gnome-session] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch b/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch
deleted file mode 100644
index 6dd33f351..000000000
--- a/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch
+++ /dev/null
@@ -1,81 +0,0 @@
1From e1ab570b0dce479ba235e5542ea07d1b5bafc4c9 Mon Sep 17 00:00:00 2001
2From: William Jon McCann <jmccann@redhat.com>
3Date: Mon, 11 Oct 2010 23:35:45 -0400
4Subject: [PATCH] Require libnotify 0.6.0
5
6Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
7
8Upstream-Status: Backport
9
10---
11 configure.ac | 2 +-
12 plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c | 8 ++------
13 plugins/xrandr/gsd-xrandr-manager.c | 13 +++----------
14 3 files changed, 6 insertions(+), 17 deletions(-)
15
16diff --git a/configure.ac b/configure.ac
17index 8a90053..8624b2a 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -54,7 +54,7 @@ GTK_REQUIRED_VERSION=2.91.0
21 GCONF_REQUIRED_VERSION=2.6.1
22 GIO_REQUIRED_VERSION=2.17.3
23 GNOME_DESKTOP_REQUIRED_VERSION=2.29.92
24-LIBNOTIFY_REQUIRED_VERSION=0.4.3
25+LIBNOTIFY_REQUIRED_VERSION=0.6.1
26
27 EXTRA_COMPILE_WARNINGS(yes)
28
29diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
30index 9ca820a..f5964b9 100644
31--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
32+++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
33@@ -608,9 +608,7 @@ ax_slowkeys_warning_post_bubble (GsdA11yKeyboardManager *manager,
34 gsd_a11y_keyboard_manager_ensure_status_icon (manager);
35 manager->priv->notification = notify_notification_new (title,
36 message,
37- "preferences-desktop-accessibility",
38- NULL);
39- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
40+ "preferences-desktop-accessibility");
41 notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
42
43 notify_notification_add_action (manager->priv->notification,
44@@ -747,9 +745,7 @@ ax_stickykeys_warning_post_bubble (GsdA11yKeyboardManager *manager,
45 gsd_a11y_keyboard_manager_ensure_status_icon (manager);
46 manager->priv->notification = notify_notification_new (title,
47 message,
48- "preferences-desktop-accessibility",
49- NULL);
50- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
51+ "preferences-desktop-accessibility");
52 notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
53
54 notify_notification_add_action (manager->priv->notification,
55diff --git a/plugins/xrandr/gsd-xrandr-manager.c b/plugins/xrandr/gsd-xrandr-manager.c
56index 02536a3..ef57d5b 100644
57--- a/plugins/xrandr/gsd-xrandr-manager.c
58+++ b/plugins/xrandr/gsd-xrandr-manager.c
59@@ -1084,16 +1084,9 @@ error_message (GsdXrandrManager *mgr, const char *primary_text, GError *error_to
60
61 g_assert (error_to_display == NULL || secondary_text == NULL);
62
63- if (priv->status_icon)
64- notification = notify_notification_new_with_status_icon (primary_text,
65- error_to_display ? error_to_display->message : secondary_text,
66- GSD_XRANDR_ICON_NAME,
67- priv->status_icon);
68- else
69- notification = notify_notification_new (primary_text,
70- error_to_display ? error_to_display->message : secondary_text,
71- GSD_XRANDR_ICON_NAME,
72- NULL);
73+ notification = notify_notification_new (primary_text,
74+ error_to_display ? error_to_display->message : secondary_text,
75+ GSD_XRANDR_ICON_NAME);
76
77 notify_notification_show (notification, NULL); /* NULL-GError */
78 #else
79--
802.1.0
81
diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb
deleted file mode 100644
index 9a1897240..000000000
--- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "GNOME settings daemon"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
4
5PR = "r7"
6
7DEPENDS = "intltool libxxf86misc libsndfile1 libxtst glib-2.0 polkit gtk+ gconf dbus-glib libnotify libgnomekbd libxklavier gnome-doc-utils gnome-desktop"
8
9inherit gnome
10
11SRC_URI = " \
12 git://git.gnome.org/gnome-settings-daemon;branch=gnome-2-32 \
13 file://0001-Require-libnotify-0.6.0.patch \
14"
15SRCREV = "0160f6725cfb872e017f3958f108792c3b882872"
16
17S = "${WORKDIR}/git"
18
19PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
20PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio glib-2.0 libcanberra"
21PACKAGECONFIG[smartcard] = "--enable-smartcard-support,--disable-smartcard-support,nss"
22
23EXTRA_OECONF = " \
24 --x-includes=${STAGING_INCDIR} \
25 --x-libraries=${STAGING_LIBDIR} \
26 --enable-polkit \
27"
28
29do_configure_prepend() {
30 sed -i -e 's:-L$libdir::g' -e 's:-I$includedir::g' ${S}/configure.ac
31}
32
33FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \
34 ${datadir}/dbus-1/ \
35 ${datadir}/icon* \
36 ${datadir}/gnome-control-center \
37 ${datadir}/xsession*"
38
39FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug"
40FILES_${PN}-dev += "${libdir}/gnome-settings-daemon-2.0/*.la"
41FILES_${PN}-staticdev += "${libdir}/gnome-settings-daemon-2.0/*.a"
42
43PNBLACKLIST[gnome-settings-daemon] ?= "Depends on blacklisted gnome-desktop - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch
deleted file mode 100644
index ace1b0076..000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch
+++ /dev/null
@@ -1,101 +0,0 @@
1From 8587e35af52f7773f62361be2e72ddf286a59185 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Tue, 15 May 2012 13:02:02 +0200
4Subject: [PATCH] Fix glib includes
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8Upstream-Status: unknown
9
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12---
13 src/interface.h | 2 +-
14 src/load-graph.h | 2 +-
15 src/lsof.h | 2 +-
16 src/openfiles.h | 2 +-
17 src/procman_gnomesu.h | 2 +-
18 src/util.cpp | 2 +-
19 6 files changed, 6 insertions(+), 6 deletions(-)
20
21diff --git a/src/interface.h b/src/interface.h
22index 4bda35a..b26b670 100644
23--- a/src/interface.h
24+++ b/src/interface.h
25@@ -20,7 +20,7 @@
26 #ifndef _PROCMAN_INTERFACE_H_
27 #define _PROCMAN_INTERFACE_H_
28
29-#include <glib/gtypes.h>
30+#include <glib.h>
31 #include <gtk/gtk.h>
32 #include "procman.h"
33
34diff --git a/src/load-graph.h b/src/load-graph.h
35index 6111c78..6e7a599 100644
36--- a/src/load-graph.h
37+++ b/src/load-graph.h
38@@ -1,7 +1,7 @@
39 #ifndef _PROCMAN_LOAD_GRAPH_H_
40 #define _PROCMAN_LOAD_GRAPH_H_
41
42-#include <glib/gtypes.h>
43+#include <glib.h>
44 #include <glibtop/cpu.h>
45
46 enum
47diff --git a/src/lsof.h b/src/lsof.h
48index ad7f111..da420e2 100644
49--- a/src/lsof.h
50+++ b/src/lsof.h
51@@ -1,7 +1,7 @@
52 #ifndef H_PROCMAN_LSOF_1161179202
53 #define H_PROCMAN_LSOF_1161179202
54
55-#include <glib/gmacros.h>
56+#include <glib.h>
57 #include "procman.h"
58
59 void procman_lsof(ProcData *data);
60diff --git a/src/openfiles.h b/src/openfiles.h
61index 38b1cc8..a8b7b05 100644
62--- a/src/openfiles.h
63+++ b/src/openfiles.h
64@@ -1,7 +1,7 @@
65 #ifndef _OPENFILES_H_
66 #define _OPENFILES_H_
67
68-#include <glib/gtypes.h>
69+#include <glib.h>
70
71 #include "procman.h"
72
73diff --git a/src/procman_gnomesu.h b/src/procman_gnomesu.h
74index fec2650..474ca9a 100644
75--- a/src/procman_gnomesu.h
76+++ b/src/procman_gnomesu.h
77@@ -1,7 +1,7 @@
78 #ifndef H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917
79 #define H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917
80
81-#include <glib/gtypes.h>
82+#include <glib.h>
83
84 gboolean
85 procman_gnomesu_create_root_password_dialog(const char * message);
86diff --git a/src/util.cpp b/src/util.cpp
87index 9b1c9f5..90073fe 100644
88--- a/src/util.cpp
89+++ b/src/util.cpp
90@@ -1,7 +1,7 @@
91 #include <config.h>
92
93 #include <glib/gi18n.h>
94-#include <glib/gstring.h>
95+#include <glib.h>
96 #include <gtk/gtk.h>
97
98 #include <glibtop/proctime.h>
99--
1001.7.6.5
101
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch
deleted file mode 100644
index 7b6728102..000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From acff719983aa1294148dc4a367c48957f5510eff Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Fri, 17 May 2013 18:25:56 +0200
4Subject: [PATCH] src/procman.cpp: include main gtkmm.h
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9after update of gtkmm build failed with:
10
11In file included from /home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gtkmm-2.4/gtkmm/main.h:33:0,
12 from procman.cpp:26:
13/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:7: error: 'Value' is not a template
14/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected template-name before '<' token
15/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected '{' before '<' token
16/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected unqualified-id before '<' token
17/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:7: error: 'Value' is not a template
18/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:30: error: 'Glib::Value' is not a template type
19/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:58: error: expected template-name before '<' token
20/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:7: error: 'Value' is not a template
21/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:24: error: 'Glib::Value' is not a template type
22/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:51: error: expected template-name before '<' token
23/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:274:7: error: 'Value' is not a template
24/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:274:32: error: 'Glib::Value' is not a template type
25<...>
26
27Upstream-Status: Backport
28
29Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
30---
31 src/procman.cpp | 2 +-
32 1 files changed, 1 insertions(+), 1 deletions(-)
33
34diff --git a/src/procman.cpp b/src/procman.cpp
35index b5c0d0a..d9b4b3f 100644
36--- a/src/procman.cpp
37+++ b/src/procman.cpp
38@@ -23,7 +23,7 @@
39
40 #include <locale.h>
41
42-#include <gtkmm/main.h>
43+#include <gtkmm.h>
44 #include <giomm/volumemonitor.h>
45 #include <giomm/init.h>
46 #include <glib.h>
47--
481.7.4.4
49
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch
deleted file mode 100644
index 3c5169e78..000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 36fd2aa23e712f05f0cce4a1be3453fcf405d026 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 15 Sep 2015 16:28:18 +0300
4Subject: [PATCH] Remove pkg-config check for gnome-icon-theme
5
6Theme is not required for building, and the icons are provided by
7adwaita-icon-theme anyway
8
9Upstream-Status: Inappropriate [Fixed in current versions]
10Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
11---
12 configure.in | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/configure.in b/configure.in
16index 3600823..42262f2 100644
17--- a/configure.in
18+++ b/configure.in
19@@ -37,7 +37,7 @@ LIBXML_REQUIRED=2.0
20 RSVG_REQUIRED=2.12
21 DBUS_REQUIRED=0.7
22
23-PKG_CHECK_MODULES(PROCMAN, glib-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgtop-2.0 >= $LIBGTOP_REQUIRED libwnck-1.0 >= $LIBWNCK_REQUIRED gtk+-2.0 >= $GTK_REQUIRED gnome-icon-theme >= $GNOME_ICON_THEME_REQUIRED gtkmm-2.4 >= $GTKMM_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED librsvg-2.0 >= $RSVG_REQUIRED glibmm-2.4 >= $GLIBMM_REQUIRED giomm-2.4 >= $GIOMM_REQUIRED dbus-glib-1 >= $DBUS_REQUIRED)
24+PKG_CHECK_MODULES(PROCMAN, glib-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgtop-2.0 >= $LIBGTOP_REQUIRED libwnck-1.0 >= $LIBWNCK_REQUIRED gtk+-2.0 >= $GTK_REQUIRED gtkmm-2.4 >= $GTKMM_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED librsvg-2.0 >= $RSVG_REQUIRED glibmm-2.4 >= $GLIBMM_REQUIRED giomm-2.4 >= $GIOMM_REQUIRED dbus-glib-1 >= $DBUS_REQUIRED)
25
26
27 AC_ARG_ENABLE(more-warnings,
28--
292.1.4
30
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb
deleted file mode 100644
index 4b397bf83..000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "Gnome system monitor"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
4SECTION = "x11/gnome"
5PR = "r2"
6
7DEPENDS = "libgtop gtkmm glibmm gnome-doc-utils libwnck gtk+ dbus-glib librsvg intltool-native gnome-common-native"
8
9inherit gnome
10SRC_URI[archive.md5sum] = "3f0bca9b0ebc7a365466851cd580d167"
11SRC_URI[archive.sha256sum] = "b628edfd39e3a6b374ce133f367d3568475eb4e981a367f4f9d62a9784e5ae59"
12GNOME_COMPRESS_TYPE="bz2"
13SRC_URI += " \
14 file://0001-Fix-glib-includes.patch \
15 file://0002-src-procman.cpp-include-main-gtkmm.h.patch \
16 file://Remove-pkg-config-check-for-gnome-icon-theme.patch \
17"
18
19do_configure_prepend() {
20 sed -i -e s:help::g ${S}/Makefile.am
21}
22
23CXXFLAGS += "--std=c++11"
24
25RRECOMMENDS_${PN} = "adwaita-icon-theme"
26
27FILES_${PN} += "${datadir}/icons \
28 ${datadir}/dbus-1 \
29 ${datadir}/gnome/autostart \
30"
31
32FILES_${PN}-doc += "${datadir}/omf \
33 ${datadir}/gnome/help "
34
35PNBLACKLIST[gnome-system-monitor] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/131635/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch b/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch
deleted file mode 100644
index d7874e492..000000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From d2549d3ef08536be6d141524e3382fef07fea8bf Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Tue, 30 Apr 2013 19:48:27 +0200
4Subject: [PATCH] Makefile.am: do not build help
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Inappropriate [configuration]
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12---
13 Makefile.am | 2 +-
14 1 files changed, 1 insertions(+), 1 deletions(-)
15
16diff --git a/Makefile.am b/Makefile.am
17index 89f7ee4..31e11ab 100644
18--- a/Makefile.am
19+++ b/Makefile.am
20@@ -1,4 +1,4 @@
21-SUBDIRS = src po help
22+SUBDIRS = src po
23
24 NULL =
25
26--
271.7.6.5
28
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb b/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb
deleted file mode 100644
index 6b3bf7654..000000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb
+++ /dev/null
@@ -1,22 +0,0 @@
1SUMMARY = "GNOME Terminal"
2LICENSE = "GPL-2.0"
3LIC_FILES_CHKSUM = "file://COPYING;md5=5b51eba4ba4cafe64073227530c061ed"
4DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte9 gnome-doc-utils intltool-native"
5PR = "r1"
6
7inherit gnome
8
9SRC_URI += " \
10 file://0001-Makefile.am-do-not-build-help.patch \
11"
12
13EXTRA_OECONF += "--disable-scrollkeeper"
14
15SRC_URI[archive.md5sum] = "74c4528f00067072c2bd867d1f8fe844"
16SRC_URI[archive.sha256sum] = "2c7af2250698b9f9f53c6eaa93211c1118cf2c7e29cbbacfd1e8a6a10069e07a"
17GNOME_COMPRESS_TYPE="bz2"
18
19RRECOMMENDS_${PN} += "gnome-common-schemas"
20
21# http://errors.yoctoproject.org/Errors/Details/68636/
22PNBLACKLIST[gnome-terminal] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb b/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb
deleted file mode 100644
index 3480712b5..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1DESCRIPTION="Gnome Cups Manager"
2LICENSE="GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
4
5DEPENDS="glib-2.0 gtk+ pango cups intltool libgnomeui"
6
7PR = "r2"
8
9inherit gnomebase pkgconfig
10
11do_compile_append () {
12 cp libgnomecups-1.0.pc libgnomecups-1.0.pc.old
13 sed 's:${STAGING_DIR_HOST}::' < libgnomecups-1.0.pc.old > libgnomecups-1.0.pc
14}
15
16SRC_URI += "\
17 file://libgnomecups-0.2.3-glib.h.patch \
18 file://libgnomecups-0.2.3-cups-1.6.patch \
19"
20
21SRC_URI[archive.md5sum] = "dc4920c15c9f886f73ea74fbff0ae48b"
22SRC_URI[archive.sha256sum] = "e130e80942b386de19a288a4c194ff3dbe9140315b31e982058c8bffbb6a1d29"
23GNOME_COMPRESS_TYPE="bz2"
24
25PNBLACKLIST[libgnomecups] ?= "Depends on blacklisted libgnomeui - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch
deleted file mode 100644
index 174985a7e..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From ed31fd89f4c77d89390774d29427898a85b25ab1 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Fri, 1 Aug 2014 13:58:36 +0200
4Subject: [PATCH] configure: use pkgconfig for freetype
5
6Upstream-status: Pending
7Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
8---
9 configure.in | 12 +++++-------
10 1 file changed, 5 insertions(+), 7 deletions(-)
11
12diff --git a/configure.in b/configure.in
13index 729278d..e569429 100644
14--- a/configure.in
15+++ b/configure.in
16@@ -164,13 +164,11 @@ dnl Checking for freetype2
17 dnl =================================
18 FREETYPE_LIBS=
19 FREETYPE_CFLAGS=
20-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
21-if test "x$FREETYPE_CONFIG" = "xno" ; then
22- AC_MSG_ERROR(You need FreeType2 (freetype-devel v 2.x package) for this version of libgnomeprint)
23-else
24- FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
25- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
26-fi
27+PKG_CHECK_MODULES(FREETYPE2, freetype2,
28+ FREETYPE_CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
29+ FREETYPE_LIBS="$LIBS $FREETYPE2_LIBS",
30+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
31+)
32
33 libgnomeprint_save_ldflags=$LDFLAGS
34 LDFLAGS="$LDFLAGS $FREETYPE_LIBS"
35--
361.9.0
37
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch
deleted file mode 100644
index 29d410a0a..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1Index: libgnomeprint-2.18.8/libgnomeprint/grammar.y
2===================================================================
3--- libgnomeprint-2.18.8.orig/libgnomeprint/grammar.y
4+++ libgnomeprint-2.18.8/libgnomeprint/grammar.y
5@@ -99,7 +99,7 @@ gnome_print_filter_parse_prop (GnomePrin
6 }
7
8 static int yylex (void *lvalp);
9-static int yyerror (const char *s);
10+static int yyerror (graph_t *g, const char *s);
11 %}
12
13 %union {
14@@ -117,6 +117,7 @@ static int yyerror (const char *s);
15 %type <p> pool
16
17 %pure_parser
18+%parse-param { graph_t *graph }
19
20 %start graph
21 %%
22@@ -185,7 +186,7 @@ graph: filter {
23 %%
24
25 static int
26-yyerror (const char *s)
27+yyerror (graph_t *g, const char *s)
28 {
29 return -1;
30 }
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch
deleted file mode 100644
index 53235a12d..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1diff -uNr libgnomeprint-2.18.7.orig/libgnomeprint/modules/cups/gnome-print-cups-transport.c libgnomeprint-2.18.7/libgnomeprint/modules/cups/gnome-print-cups-transport.c
2--- libgnomeprint-2.18.7.orig/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2009-04-19 19:45:36.000000000 +0200
3+++ libgnomeprint-2.18.7/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2012-12-23 12:34:52.058643537 +0100
4@@ -35,6 +35,7 @@
5 #include <sys/stat.h>
6 #include <fcntl.h>
7 #include <unistd.h>
8+#include <stdio.h>
9 #include <locale.h>
10
11 #include <cups/cups.h>
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch
deleted file mode 100644
index 7a27ecd23..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1Use proper method to include freetype headers
2
3FreeType wants to use these special macros to include its APIs
4so be it.
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7Upstream-Status: Pending
8
9Index: libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c
10===================================================================
11--- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-font-face.c
12+++ libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c
13@@ -36,7 +36,9 @@
14 #include <stdarg.h>
15 #include <locale.h>
16
17-#include <freetype/ftoutln.h>
18+#include <ft2build.h>
19+#include FT_FREETYPE_H
20+
21
22 #include <libgnomeprint/gnome-print-private.h>
23 #include <libgnomeprint/gnome-font-private.h>
24Index: libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c
25===================================================================
26--- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-rfont.c
27+++ libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c
28@@ -28,8 +28,8 @@
29
30 #include <ft2build.h>
31 #include FT_FREETYPE_H
32-#include <freetype/ftglyph.h>
33-#include <freetype/ftbbox.h>
34+#include FT_GLYPH_H
35+#include FT_BBOX_H
36 #include <libart_lgpl/art_misc.h>
37 #include <libart_lgpl/art_affine.h>
38 #include <libart_lgpl/art_vpath.h>
diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb b/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb
deleted file mode 100644
index a462a4b9e..000000000
--- a/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1LICENSE = "GPLv2"
2SECTION = "x11/gnome/libs"
3
4DEPENDS = "bison-native flex-native libxml2 libgnomecups glib-2.0 pango libart-lgpl fontconfig popt gnome-common freetype"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
7
8inherit gnomebase
9
10SRC_URI += "file://fix.includes.patch \
11 file://freetype.patch \
12 file://0001-configure-use-pkgconfig-for-freetype.patch \
13 file://bison3-support.patch \
14 "
15SRC_URI[archive.md5sum] = "63b05ffb5386e131487c6af30f4c56ac"
16SRC_URI[archive.sha256sum] = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691"
17GNOME_COMPRESS_TYPE="bz2"
18
19FILES_${PN}-dbg += "\
20 ${libdir}/${PN}/${PV}/modules/.debug \
21 ${libdir}/${PN}/${PV}/modules/*/.debug \
22"
23FILES_${PN}-staticdev += "\
24 ${libdir}/${PN}/${PV}/modules/*.a \
25 ${libdir}/${PN}/${PV}/modules/*/*.a \
26"
27
28PNBLACKLIST[libgnomeprint] ?= "Depends on broken libgnomecups - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch b/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch
deleted file mode 100644
index 914d2ccf9..000000000
--- a/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch
+++ /dev/null
@@ -1,84 +0,0 @@
1From de5f0a535d6ea1932d2c7de53bd33510c8682ee7 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 22 Feb 2016 16:34:03 +0200
4Subject: [PATCH] configure.in: drop introspection macros, replace them with a
5 standard one
6
7Upstream-Status: Pending
8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
9---
10 configure.in | 57 +--------------------------------------------------------
11 1 file changed, 1 insertion(+), 56 deletions(-)
12
13diff --git a/configure.in b/configure.in
14index 8e1aa37..3086503 100644
15--- a/configure.in
16+++ b/configure.in
17@@ -934,63 +934,8 @@ AC_SUBST(MONO_CFLAGS)
18 AC_SUBST(MONO_LIBS)
19 ])
20
21-# GObject Introspection
22-GIR_REQ=1.0.0
23-AC_ARG_ENABLE(introspection,
24- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
25- [Enable introspection for this build]),,
26- [enable_introspection=no])
27-
28-AC_MSG_CHECKING([for gobject-introspection])
29-
30-dnl presence/version checking
31-AS_CASE([$enable_introspection],
32-[no], [
33- found_introspection="no (disabled, use --enable-introspection to enable)"
34-],
35-[yes],[
36- PKG_CHECK_EXISTS([gobject-introspection-1.0],,
37- AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
38- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ],
39- found_introspection=yes,
40- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
41-],
42-[auto],[
43- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], found_introspection=yes, found_introspection=no)
44-dnl Canonicalize enable_introspection
45-enable_introspection=$found_introspection
46-],
47-[
48- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
49-])
50+GOBJECT_INTROSPECTION_CHECK([1.46.0])
51
52-AC_MSG_RESULT([$found_introspection])
53-
54-INTROSPECTION_SCANNER=
55-INTROSPECTION_COMPILER=
56-INTROSPECTION_GENERATE=
57-INTROSPECTION_GIRDIR=
58-INTROSPECTION_TYPELIBDIR=
59-if test "x$found_introspection" = "xyes"; then
60- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
61- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
62- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
63- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
64- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
65- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
66- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
67- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
68-fi
69-AC_SUBST(INTROSPECTION_SCANNER)
70-AC_SUBST(INTROSPECTION_COMPILER)
71-AC_SUBST(INTROSPECTION_GENERATE)
72-AC_SUBST(INTROSPECTION_GIRDIR)
73-AC_SUBST(INTROSPECTION_TYPELIBDIR)
74-AC_SUBST(INTROSPECTION_CFLAGS)
75-AC_SUBST(INTROSPECTION_LIBS)
76-AC_SUBST(INTROSPECTION_MAKEFILE)
77-
78-AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
79 dnl we need to change the install directories for distcheck
80 AC_ARG_WITH([gir-dir],
81 AS_HELP_STRING(
82--
832.7.0
84
diff --git a/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch b/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch
deleted file mode 100644
index cc81b1fc0..000000000
--- a/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Index: gnumeric-1.12.0/test/Makefile.am
2===================================================================
3--- gnumeric-1.12.0.orig/test/Makefile.am 2011-05-17 17:54:24.000000000 -0700
4+++ gnumeric-1.12.0/test/Makefile.am 2013-10-17 20:28:19.920618596 -0700
5@@ -25,7 +25,9 @@
6 #
7 # 90xx: Misc stuff.
8
9-TESTS = $(sort $(wildcard $(srcdir)/t[0-9][0-9][0-9][0-9]-*.pl))
10+TESTS_EXTENSIONS=.pl
11+TESTS = @auto_find_tests@
12+
13 SUPPS = common.supp commondots.supp gui.supp t8003-valgrind-pdf.supp
14
15 import-db:
diff --git a/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb b/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb
deleted file mode 100644
index 49d0fe9d4..000000000
--- a/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
1LICENSE = "GPLv2 | GPLv3"
2LIC_FILES_CHKSUM = "file://COPYING;md5=be0de417af78dd340558810d1ced52e6"
3SECTION = "x11/utils"
4S = "${WORKDIR}/gnumeric-${PV}"
5DEPENDS = "gdk-pixbuf libgsf gtk+3 libxml2 libglade libart-lgpl intltool-native libgnomecanvas libgnomeprint libbonoboui orbit2-native goffice"
6SUMMARY = "Gnumeric spreadsheet for GNOME"
7
8GNOME_COMPRESS_TYPE = "xz"
9
10inherit gnome pythonnative gobject-introspection
11
12SRC_URI += "file://do-not-use-srcdir.patch \
13 file://0001-configure.in-drop-introspection-macros-replace-them-.patch"
14
15SRC_URI[archive.md5sum] = "3fd87cca95334b5d8ac922989670fe27"
16SRC_URI[archive.sha256sum] = "037b53d909e5d1454b2afda8c4fb1e7838e260343e36d4e36245f4a5d0e04111"
17
18
19EXTRA_OECONF=" --without-perl "
20
21PACKAGES_DYNAMIC += "gnumeric-plugin-*"
22PACKAGES += "libspreadsheet libspreadsheet-dev gnumeric-goffice gnumeric-goffice-dbg"
23
24FILES_${PN}-dbg += "${libdir}/gnumeric/${PV}/plugins/*/.debug"
25FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
26FILES_${PN}-staticdev = "${libdir}/libspreadsheet.la"
27FILES_libspreadsheet = "${libdir}/libspreadsheet-${PV}.so"
28FILES_libspreadsheet-dev = "${libdir}/libspreadsheet.so"
29FILES_gnumeric-goffice-dbg += "${libdir}/goffice/*/plugins/gnumeric/.debug"
30FILES_gnumeric-goffice = "${libdir}/goffice/*/plugins/gnumeric/*"
31
32# This hack works around the problem mentioned here:
33# https://mail.gnome.org/archives/gnumeric-list/2010-February/msg00006.html
34do_install_prepend() {
35 sed -i ${B}/doc/C/Makefile -e 's/\tfor file in $(omffile); do/\t-for file in $(omffile); do/'
36}
37
38python populate_packages_prepend () {
39 gnumeric_libdir = bb.data.expand('${libdir}/gnumeric/${PV}/plugins', d)
40
41 do_split_packages(d, gnumeric_libdir, '^(.*)/.*$',
42 output_pattern='gnumeric-plugin-%s',
43 description='Gnumeric plugin %s',
44 extra_depends='',
45 recursive=True,
46 prepend=True)
47}
48
49PNBLACKLIST[gnumeric] ?= "Depends on broken libgnomeprint - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gthumb/files/0001-Drop-help-directory-from-build.patch b/meta-gnome/recipes-gnome/gthumb/files/0001-Drop-help-directory-from-build.patch
deleted file mode 100644
index d116968a6..000000000
--- a/meta-gnome/recipes-gnome/gthumb/files/0001-Drop-help-directory-from-build.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From 48cb878cb724e7a509260f014db6365510b8b541 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 17 May 2016 14:05:29 +0300
4Subject: [PATCH] Drop help directory from build
5
6It hardcodes the use of xml2po tool form gnome-doc-utils
7
8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
9---
10 Makefile.am | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/Makefile.am b/Makefile.am
14index d056875..3fc4a41 100644
15--- a/Makefile.am
16+++ b/Makefile.am
17@@ -1,4 +1,4 @@
18-SUBDIRS = m4 copy-n-paste data po gthumb extensions tests help
19+SUBDIRS = m4 copy-n-paste data po gthumb extensions tests
20
21 ACLOCAL_AMFLAGS = -I m4
22 AMCFLAGS = -fPIC -DPIC
23--
242.8.1
25
diff --git a/meta-gnome/recipes-gnome/gthumb/files/parallel.patch b/meta-gnome/recipes-gnome/gthumb/files/parallel.patch
deleted file mode 100644
index 20ce5c5aa..000000000
--- a/meta-gnome/recipes-gnome/gthumb/files/parallel.patch
+++ /dev/null
@@ -1,158 +0,0 @@
1From 34969cde1dcb7740b4a7c3b6e3d04d481e5980b5 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Tue, 31 Jul 2012 17:26:27 +0100
4Subject: [PATCH] build: Fix parallel build problems with enum generation
5
6This is a backport from a patch against master.
7
8Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=680925]
9---
10 extensions/file_tools/Makefile.am | 10 ++++------
11 extensions/importer/Makefile.am | 10 ++++------
12 extensions/pixbuf_savers/Makefile.am | 10 ++++------
13 gthumb/Makefile.am | 10 ++++------
14 4 files changed, 16 insertions(+), 24 deletions(-)
15
16diff --git a/extensions/file_tools/Makefile.am b/extensions/file_tools/Makefile.am
17index 7785eff..d70a8a5 100644
18--- a/extensions/file_tools/Makefile.am
19+++ b/extensions/file_tools/Makefile.am
20@@ -24,17 +24,16 @@ HEADER_FILES = \
21 gth-file-tool-undo.h \
22 preferences.h
23
24-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS)
25+enum-types.h: $(HEADER_FILES)
26 $(AM_V_GEN)( $(GLIB_MKENUMS) \
27 --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
28 --fprod "/* enumerations from \"@filename@\" */\n" \
29 --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
30 --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \
31 $^> xgen-$(@F) \
32- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \
33- && rm -f xgen-$(@F) )
34+ && mv -f xgen-$(@F) enum-types.h )
35
36-enum-types.c: $(HEADER_FILES) enum-types.h
37+enum-types.c: $(HEADER_FILES)
38 $(AM_V_GEN)( $(GLIB_MKENUMS) \
39 --fhead "#include <glib-object.h>\n" \
40 --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \
41@@ -42,8 +41,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h
42 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
43 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
44 $^> xgen-$(@F) \
45- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \
46- && rm -f xgen-$(@F) )
47+ && mv -f xgen-$(@F) enum-types.c )
48
49 libfile_tools_la_SOURCES = \
50 $(ENUM_TYPES) \
51diff --git a/extensions/importer/Makefile.am b/extensions/importer/Makefile.am
52index 29e7f2c..07c1eba 100644
53--- a/extensions/importer/Makefile.am
54+++ b/extensions/importer/Makefile.am
55@@ -14,17 +14,16 @@ HEADER_FILES = \
56 preferences.h \
57 utils.h
58
59-gth-import-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS)
60+gth-import-enum-types.h: $(HEADER_FILES)
61 $(AM_V_GEN)( $(GLIB_MKENUMS) \
62 --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
63 --fprod "/* enumerations from \"@filename@\" */\n" \
64 --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
65 --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \
66 $^> xgen-$(@F) \
67- && (cmp -s xgen-$(@F) gth-import-enum-types.h || cp xgen-$(@F) gth-import-enum-types.h ) \
68- && rm -f xgen-$(@F) )
69+ && mv -f xgen-$(@F) gth-import-enum-types.h )
70
71-gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h
72+gth-import-enum-types.c: $(HEADER_FILES)
73 $(AM_V_GEN)( $(GLIB_MKENUMS) \
74 --fhead "#include <glib-object.h>\n" \
75 --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \
76@@ -32,8 +31,7 @@ gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h
77 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
78 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
79 $^> xgen-$(@F) \
80- && (cmp -s xgen-$(@F) gth-import-enum-types.c || cp xgen-$(@F) gth-import-enum-types.c ) \
81- && rm -f xgen-$(@F) )
82+ && mv -f xgen-$(@F) gth-import-enum-types.c )
83
84 libimporter_la_SOURCES = \
85 $(ENUM_TYPES) \
86diff --git a/extensions/pixbuf_savers/Makefile.am b/extensions/pixbuf_savers/Makefile.am
87index bfe9f34..4764c32 100644
88--- a/extensions/pixbuf_savers/Makefile.am
89+++ b/extensions/pixbuf_savers/Makefile.am
90@@ -10,17 +10,16 @@ ENUM_TYPES = \
91 HEADER_FILES = \
92 preferences.h
93
94-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS)
95+enum-types.h: $(HEADER_FILES)
96 $(AM_V_GEN)( $(GLIB_MKENUMS) \
97 --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
98 --fprod "/* enumerations from \"@filename@\" */\n" \
99 --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
100 --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \
101 $^> xgen-$(@F) \
102- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \
103- && rm -f xgen-$(@F) )
104+ && mv -f xgen-$(@F) enum-types.h )
105
106-enum-types.c: $(HEADER_FILES) enum-types.h
107+enum-types.c: $(HEADER_FILES)
108 $(AM_V_GEN)( $(GLIB_MKENUMS) \
109 --fhead "#include <glib-object.h>\n" \
110 --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \
111@@ -28,8 +27,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h
112 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
113 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
114 $^> xgen-$(@F) \
115- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \
116- && rm -f xgen-$(@F) )
117+ && mv -f xgen-$(@F) enum-types.c )
118
119 libpixbuf_savers_la_SOURCES = \
120 $(ENUM_TYPES) \
121diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am
122index e9e385e..2f14e03 100644
123--- a/gthumb/Makefile.am
124+++ b/gthumb/Makefile.am
125@@ -296,17 +296,16 @@ gthumb_CFLAGS = \
126 -DGTHUMB_EXTENSIONS_DIR=\"$(extensions_dir)\" \
127 $(NULL)
128
129-gth-enum-types.h: $(PUBLIC_HEADER_FILES) $(GLIB_MKENUMS)
130+gth-enum-types.h: $(PUBLIC_HEADER_FILES)
131 $(AM_V_GEN)( $(GLIB_MKENUMS) \
132 --fhead "#ifndef GTH_ENUM_TYPES_H\n#define GTH_ENUM_TYPES_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
133 --fprod "/* enumerations from \"@filename@\" */\n" \
134 --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
135 --ftail "G_END_DECLS\n\n#endif /* GTH_ENUM_TYPES_H */" \
136 $^> xgen-$(@F) \
137- && (cmp -s xgen-$(@F) gth-enum-types.h || cp xgen-$(@F) gth-enum-types.h ) \
138- && rm -f xgen-$(@F) )
139+ && mv -f xgen-$(@F) gth-enum-types.h )
140
141-gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h
142+gth-enum-types.c: $(PUBLIC_HEADER_FILES)
143 $(AM_V_GEN)( $(GLIB_MKENUMS) \
144 --fhead "#include <glib-object.h>\n" \
145 --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \
146@@ -314,8 +313,7 @@ gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h
147 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
148 --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
149 $^> xgen-$(@F) \
150- && (cmp -s xgen-$(@F) gth-enum-types.c || cp xgen-$(@F) gth-enum-types.c ) \
151- && rm -f xgen-$(@F) )
152+ && mv -f xgen-$(@F) gth-enum-types.c )
153
154 gth-marshal.h: gth-marshal.list $(GLIB_GENMARSHAL)
155 $(AM_V_GEN)( $(GLIB_GENMARSHAL) $(srcdir)/gth-marshal.list --header --prefix=gth_marshal > $@ )
156--
1571.7.10.4
158
diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb
deleted file mode 100644
index 62d3df98e..000000000
--- a/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "gThumb is an image viewer and browser for the GNOME Desktop"
2SECTION = "x11/gnome"
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5DEPENDS = "gnome-common-native glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf libpng gstreamer jpeg tiff gst-plugins-base intltool-native gconf-native"
6
7PR = "r4"
8
9EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup --disable-exiv2 --disable-clutter"
10
11inherit gnome pkgconfig
12
13SRC_URI[archive.md5sum] = "97fc13221b0c5d80c27a2e25a3a3ac6f"
14SRC_URI[archive.sha256sum] = "cf809695230ab8892a078be454a42ade865754c72ec1da7c3d74d4310de54f1d"
15GNOME_COMPRESS_TYPE="bz2"
16
17SRC_URI += "file://parallel.patch \
18 file://0001-Drop-help-directory-from-build.patch"
19
20do_configure_prepend () {
21 rm -f ${S}/m4/gnome-doc-utils.m4
22}
23
24do_install_append () {
25 rm -f ${D}${libdir}/${BPN}/extensions/*.a
26}
27
28FILES_${PN} += "${datadir}/icons"
29FILES_${PN} += "${libdir}/${BPN}/extensions/*.so \
30 ${libdir}/${BPN}/extensions/*.extension"
31FILES_${PN}-dev += "${libdir}/${BPN}/extensions/*.la"
32FILES_${PN}-dbg += "${libdir}/${BPN}/extensions/.debug/"
33
34
35PNBLACKLIST[gthumb] ?= "Depends on blacklisted gstreamer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb b/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb
deleted file mode 100644
index 6920f0aa2..000000000
--- a/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1LICENSE = "GPLv2"
2LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
3
4SECTION = "x11/gnome/libs"
5DEPENDS = "libxml2 gconf libsoup-2.4 gtk+3"
6
7PNBLACKLIST[libgweather3] ?= "CONFLICT: 876 files are conflicting with libgweather - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8# e.g. sysroots/qemux86-64/usr/share/libgweather/locations.dtd
9# sysroots/qemux86-64/usr/share/libgweather/Locations.zh_TW.xml
10
11BPN = "libgweather"
12
13inherit gnome
14SRC_URI[archive.md5sum] = "f1a96c6f19c9a0bc6b4e12acc9a8a85d"
15SRC_URI[archive.sha256sum] = "9041526fa0466b99dae5cf06c2cc70376f25531eec5d58b1e1378acfb302410c"
16
17do_configure_prepend() {
18 sed -i -e 's: doc : :g' ${S}/Makefile.am
19}
20
21FILES_${PN} += "${datadir}/gnome* \
22 ${datadir}/icons"
23
24PACKAGES =+ "${PN}-locationdata"
25FILES_${PN}-locationdata = "${datadir}/libgweather/*ocations*"
26
27
28
diff --git a/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb b/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb
deleted file mode 100644
index 8b69f1fe7..000000000
--- a/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1LICENSE = "GPLv2"
2LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
3
4SECTION = "x11/gnome/libs"
5DEPENDS = "libxml2 gconf libsoup-2.4 gtk+ libgnome-keyring"
6
7inherit gnome
8
9SRC_URI[archive.md5sum] = "bf6a0a05051341ecb250f332e3edfb88"
10SRC_URI[archive.sha256sum] = "b835374661423f37c46aa8e37368ae24a68856f117b7c21e475a21efdba5264c"
11GNOME_COMPRESS_TYPE="bz2"
12
13do_configure_prepend() {
14 sed -i -e 's: doc : :g' ${S}/Makefile.am
15}
16
17FILES_${PN} += "${datadir}/gnome* \
18 ${datadir}/icons"
19
20PACKAGES =+ "${PN}-locationdata"
21FILES_${PN}-locationdata = "${datadir}/libgweather/Locations*"
22
23# http://errors.yoctoproject.org/Errors/Details/68608/
24PNBLACKLIST[libgweather] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch
deleted file mode 100644
index 0062cfb11..000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch
+++ /dev/null
@@ -1,7 +0,0 @@
1Index: nautilus-2.24.2/add-include-prefix
2===================================================================
3--- nautilus-2.24.2.orig/add-include-prefix 2008-10-06 17:22:21.000000000 +0000
4+++ nautilus-2.24.2/add-include-prefix 2009-04-09 16:00:05.000000000 +0000
5@@ -1 +1 @@
6-sed -e 's/^/ /' -e 's/ */ /g' -e 's/ / -I /g' -e 's/ -I $//'
7+sed -e 's:^: :' -e 's: *: :g' -e 's: : -I '"$SYSROOT"':g' -e 's: -I '"$SYSROOT"'$::'
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch
deleted file mode 100644
index 43a6152d8..000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From e7233d98c114b03c7c8b96d1f41770452da14aa7 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmx.de>
3Date: Mon, 17 Oct 2011 00:59:01 +0200
4Subject: [PATCH] nautilus build fails for newer glib versions
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9build with glib-2.0 v2.30.0 run into errors for at least G_CONST_RETURN missing
10
11Signed-off-by: Andreas Müller <schnitzeltony@gmx.de>
12---
13 configure.in | 2 +-
14 eel/Makefile.am | 1 -
15 2 files changed, 1 insertions(+), 2 deletions(-)
16
17diff --git a/configure.in b/configure.in
18index 97e171e..859a097 100644
19--- a/configure.in
20+++ b/configure.in
21@@ -342,7 +342,7 @@ AC_SUBST(CORE_CFLAGS)
22 CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $x_libs"
23 AC_SUBST(CORE_LIBS)
24
25-DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED"
26+DISABLE_DEPRECATED_CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED"
27 AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
28
29 dnl Multimedia keys
30diff --git a/eel/Makefile.am b/eel/Makefile.am
31index b1fe356..c1d56cd 100644
32--- a/eel/Makefile.am
33+++ b/eel/Makefile.am
34@@ -10,7 +10,6 @@ INCLUDES = \
35 -DDATADIR=\""$(datadir)"\" \
36 -DSOURCE_DATADIR=\""$(top_srcdir)/data"\" \
37 -DGNOMELOCALEDIR=\""$(prefix)/${DATADIRNAME}/locale"\" \
38- -DG_DISABLE_DEPRECATED \
39 -DGDK_PIXBUF_DISABLE_DEPRECATED \
40 -DGMENU_I_KNOW_THIS_IS_UNSTABLE \
41 $(NULL)
42--
431.7.4.4
44
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb b/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb
deleted file mode 100644
index 5580f93a5..000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb
+++ /dev/null
@@ -1,54 +0,0 @@
1# nautilus OE build file
2# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
3# Released under the MIT license (see packages/COPYING)
4
5LICENSE="GPLv2 & LGPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426 \
7 file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
8
9PR = "r4"
10
11DEPENDS = "libnotify gtk+3 libunique gvfs librsvg libexif gnome-desktop3"
12# optional: tracker
13
14# to include nautilus3/no-try-run-strftime.diff before the rest
15FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
16BPN = "nautilus"
17inherit gnome
18
19SRC_URI += "file://no-try-run-strftime.diff"
20SRC_URI[archive.md5sum] = "12314328b59aa1dfd83619f718b81bd5"
21SRC_URI[archive.sha256sum] = "c482d6e7babcc238304cf55586cdf7e2b2806025214a143ed355f0d89b33b154"
22
23EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb --enable-nst-extension"
24export SYSROOT = "${STAGING_DIR_HOST}"
25
26do_configure() {
27 sed -i -e /docs/d ${S}/Makefile.am
28 autotools_do_configure
29}
30
31RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-2.0-utils"
32FILES_${PN} += "${datadir}/icons \
33 /usr/libexec/ \
34 ${datadir}/nautilus* \
35 ${datadir}/dbus-1 \
36 ${libdir}/nautilus/extensions*/*.so \
37"
38FILES_${PN}-dbg += "/usr/libexec/.debug \
39 ${libdir}/nautilus/extensions*/.debug"
40
41# Don't make nautils drag us in
42PRIVATE_LIBS = "libnautilus-extension.so.1"
43
44pkg_postinst_${PN} () {
45if [ -n "$D" ]; then
46 exit 1
47fi
48
49glib-compile-schemas ${datadir}/glib-2.0/schemas
50}
51
52# 3.2.1-r4/nautilus-3.2.1/eel/eel-gnome-extensions.c:34:50: fatal error: libgnome-desktop/gnome-desktop-utils.h: No such file or directory
53# 3.2.1-r4/nautilus-3.2.1/eel/eel-editable-label.c:3105:55: error: 'GTK_STOCK_CUT' undeclared (first use in this function)
54PNBLACKLIST[nautilus3] ?= "BROKEN: fails to build, maybe missing dependency on gnome-desktop-utils.h provider - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb
deleted file mode 100644
index caf7f57b1..000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1# nautilus OE build file
2# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
3# Released under the MIT license (see packages/COPYING)
4
5LICENSE="GPLv2 & LGPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=7c0048536e43642a1f3a724c2909872b \
7 file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
8
9PR = "r6"
10
11DEPENDS = "gdk-pixbuf gtk+ libunique gvfs librsvg libexif esound gnome-desktop orbit2-native"
12# optional: tracker
13
14inherit gnome gobject-introspection
15
16SRC_URI[archive.md5sum] = "51565aa10d1625dff56e381228346911"
17SRC_URI[archive.sha256sum] = "2d4ff28c7a7aa5d40eb2468149954a564c257a305183773057584d22d15347a2"
18GNOME_COMPRESS_TYPE="bz2"
19
20SRC_URI += "file://idl-sysroot.patch \
21 file://no-try-run-strftime.diff \
22 file://no-G_DISABLE_DEPRECATED.patch \
23"
24
25
26EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb "
27export SYSROOT = "${STAGING_DIR_HOST}"
28
29do_configure() {
30 sed -i -e /docs/d ${S}/Makefile.am
31 autotools_do_configure
32 # We need native orbit-idl with target idl files. No way to say it in a clean way:
33 find ${B} -name Makefile -exec sed -i '/\/usr\/bin\/orbit-idl-2/{s:/usr/bin:${STAGING_BINDIR_NATIVE}:;s:/usr/share:${STAGING_DATADIR}:g}' {} \;
34}
35
36RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-networking"
37FILES_${PN} += "${datadir}/icons"
38
39# Don't make nautils3 drag us in
40PRIVATE_LIBS = "libnautilus-extension.so.1"
41
42
43PNBLACKLIST[nautilus] ?= "Depends on blacklisted gnome-desktop - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/pimlico/contacts.inc b/meta-gnome/recipes-gnome/pimlico/contacts.inc
deleted file mode 100644
index fedd22332..000000000
--- a/meta-gnome/recipes-gnome/pimlico/contacts.inc
+++ /dev/null
@@ -1,28 +0,0 @@
1DESCRIPTION = "Address-book application."
2HOMEPAGE = "http://pimlico-project.org/contacts.html"
3BUGTRACKER = "https://bugzilla.gnome.org/"
4
5LICENSE = "GPLv2 & GPLv2+ & GPLv3+ "
6SECTION = "x11"
7DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native"
8RDEPENDS_${PN} = "libedata-book"
9
10inherit autotools pkgconfig gconf
11
12EXTRA_OECONF += "--disable-gnome-vfs"
13EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1"
14
15do_install_append () {
16 install -d ${D}/${datadir}/pixmaps
17 install -m 0644 ${WORKDIR}/stock_contact.png ${D}/${datadir}/pixmaps
18 install -m 0644 ${WORKDIR}/stock_person.png ${D}/${datadir}/pixmaps
19}
20
21FILES_${PN} += "${datadir}/pixmaps/stock_contact.png \
22 ${datadir}/pixmaps/stock_person.png \
23 ${datadir}/icons/hicolor"
24
25SRC_URI = "file://stock_contact.png \
26 file://stock_person.png \
27 file://contacts-conditionally-install-schema.patch \
28"
diff --git a/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch b/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch
deleted file mode 100644
index 2ab7882c8..000000000
--- a/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Install schema should respect to GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
2
3If GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, the schema should not
4be installed.
5
6Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
7
8Upstream-Status: Pending
9---
10 data/Makefile.am | 7 ++++---
11 1 files changed, 4 insertions(+), 3 deletions(-)
12
13diff --git a/data/Makefile.am b/data/Makefile.am
14index f790823..b6fd643 100644
15--- a/data/Makefile.am
16+++ b/data/Makefile.am
17@@ -14,13 +14,14 @@ dist_man1_MANS = contacts.1
18
19 if HAVE_GCONF
20 install-data-local:
21- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
22+ if [ "$(GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL)" != "1" ]; then \
23+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
24 $(GCONFTOOL) --makefile-install-rule $(schema_DATA) || \
25 (echo ;\
26 echo "*****************************************************"; \
27 echo "Installation of schemas failed, install them manually"; \
28- echo "*****************************************************";)
29- @true
30+ echo "*****************************************************";); \
31+ fi
32 endif
33
34 CLEANFILES = $(desktop_DATA)
35--
361.7.7.6
37
diff --git a/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch b/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch
deleted file mode 100644
index a7cfee3a0..000000000
--- a/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Fix for stricter parser in make 3.82. This fix has been pushed to upstream git.
2
3JL - 15/12/10
4
5Upstream-Status: Accepted
6
7Index: git/Makefile.am
8===================================================================
9--- git.orig/Makefile.am
10+++ git/Makefile.am
11@@ -11,4 +11,4 @@ DISTCLEANFILES = $(INTLTOOL_BUILT)
12 MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp $(INTLTOOL_BUILT:=.in) install-sh ltmain.sh mkinstalldirs Makefile.in missing
13
14 snapshot:
15- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
16+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
diff --git a/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb b/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb
deleted file mode 100644
index 516cf93e4..000000000
--- a/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1require contacts.inc
2
3PR = "r8"
4
5SRC_URI =+ "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz"
6
7SRC_URI[md5sum] = "aab5affbf93d6fa7b978b323a8d44de0"
8SRC_URI[sha256sum] = "9cacec98f8123993033aaa255f3f4c04c86a1be65e487dd21f0aaa54384a6f6d"
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
11 file://src/contacts-main.h;endline=18;md5=0371af46fbc72e33575e0072dca5fb19 \
12 file://src/contacts-dbus.c;endline=18;md5=e4da9ac1a0539fafc7df431010904fd5 \
13 file://src/contacts-gtk.c;endline=21;md5=1c2e3f55b215635eff4ba76f7696f8ee"
14
15do_configure_prepend () {
16 # It used 8 spaces to instead of a tab, but it doesn't work for us
17 sed -i 's/^ $(MAKE) dist distdir=/\t$(MAKE) dist distdir/' Makefile.am
18}
19
20PNBLACKLIST[contacts] ?= "Fails to fetch, pimlico-project.org is gone http://errors.yoctoproject.org/Errors/Details/132854/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/pimlico/contacts_git.bb b/meta-gnome/recipes-gnome/pimlico/contacts_git.bb
deleted file mode 100644
index b46e9d9db..000000000
--- a/meta-gnome/recipes-gnome/pimlico/contacts_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1require contacts.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
4 file://src/contacts-main.h;endline=20;md5=9dc3531c914fb6d6d4a8d1aee4519fef \
5 file://src/contacts-dbus.c;endline=20;md5=95e02d77f155fbd07a14dba3348b9b03 \
6 file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e"
7
8SRCREV = "19853893fdb595de6aa59db0d9dc2f9451ed2933"
9PV = "0.12+git${SRCPV}"
10PR = "r4"
11
12S = "${WORKDIR}/git"
13
14SRC_URI =+ "git://git.gnome.org/${BPN} \
15 file://make-382.patch"
16
17S = "${WORKDIR}/git"
18
19PNBLACKLIST[contacts] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/132826/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/pimlico/tasks.inc b/meta-gnome/recipes-gnome/pimlico/tasks.inc
deleted file mode 100644
index f8217dc3a..000000000
--- a/meta-gnome/recipes-gnome/pimlico/tasks.inc
+++ /dev/null
@@ -1,10 +0,0 @@
1DESCRIPTION = "Task list application"
2HOMEPAGE = "http://pimlico-project.org/tasks.html"
3BUGTRACKER = "https://bugzilla.gnome.org/"
4
5LICENSE = "GPLv2 & GPLv2+"
6
7SECTION = "x11"
8DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native"
9
10inherit autotools pkgconfig gtk-icon-cache
diff --git a/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb b/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb
deleted file mode 100644
index 42c20c47e..000000000
--- a/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require tasks.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
4 file://src/gtk/main.c;endline=19;md5=8659d0b7fd68a2ad6ac30c6539ea5b82 \
5 file://src/omoko/openmoko-tasks.c;endline=20;md5=04d56a46863c9f4247694f40257a836a \
6 file://src/hildon/hildon-tasks.c;endline=21;md5=488ddf31dc14b2196dec7cc736211b52"
7
8SRC_URI = "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz"
9
10SRC_URI[md5sum] = "0afd969758561599fd782e1effb39c08"
11SRC_URI[sha256sum] = "1a7fdc5f95a2193a1a25fdb13f071867fb7e42245ce19ccee4bcccb69e557f2e"
12
13PR = "r3"
14
15# tasks-0.19/libkoto/koto-utils.c:81:3: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
16PNBLACKLIST[tasks] ?= "Fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/pimlico/tasks_git.bb b/meta-gnome/recipes-gnome/pimlico/tasks_git.bb
deleted file mode 100644
index b71f1dc5b..000000000
--- a/meta-gnome/recipes-gnome/pimlico/tasks_git.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require tasks.inc
2
3SRC_URI = "git://git.gnome.org/${BPN}"
4
5SRCREV = "ea52d46d691c5fce4473ea4e24a35411381f3a65"
6PV = "0.13+git${SRCPV}"
7PR = "r3"
8
9S = "${WORKDIR}/git"
10
11# ../../git/libkoto/koto-utils.c:81:3: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
12PNBLACKLIST[tasks] ?= "Fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch b/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch
deleted file mode 100644
index cb03fd86e..000000000
--- a/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From b5084616a3bc2a0d485f43aeae69c6025f3f857e Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Fri, 10 Jun 2011 18:44:21 +0200
4Subject: [PATCH] add support for the angstrom distribtion
5
6Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
7---
8 Utils/Platform.pm | 3 +++
9 1 files changed, 3 insertions(+), 0 deletions(-)
10
11diff --git a/Utils/Platform.pm b/Utils/Platform.pm
12index fc76360..8b8c770 100644
13--- a/Utils/Platform.pm
14+++ b/Utils/Platform.pm
15@@ -92,6 +92,7 @@ my $PLATFORM_INFO = {
16 "nexenta-1.0" => [ "Nexenta GNU/Solaris", "1.0", "Ellate" ],
17 "yellowdog-4.1" => [ "Yellow Dog Linux", "4.1", "Sagitta" ],
18 "guadalinex-v4" => [ "Guadalinex", "v4", "Toro" ],
19+ "angstrom" => [ "Angstrom", "", "" ],
20 };
21
22 sub get_platform_info
23@@ -143,6 +144,7 @@ sub ensure_distro_map
24 "vine-3.1" => "vine-3.0",
25 "vlos-1.2" => "gentoo",
26 "nexenta-1.0" => "solaris-2.11",
27+ "angstrom" => "debian",
28 );
29
30 return $metamap{$distro} if ($metamap{$distro});
31@@ -375,6 +377,7 @@ sub guess
32 [ \&check_ark ],
33 [ \&check_yoper ],
34 [ \&check_distro_file, "/etc/yellowdog-release", "yellowdog", "^Yellow Dog Linux release (\\S+)" ],
35+ [ \&check_file_exists, "/etc/angstrom-version", "angstrom" ],
36 ],
37 "FreeBSD" => [[ \&check_freebsd ]],
38 "SunOS" => [[ \&check_solaris ]]
39--
401.6.6.1
41
diff --git a/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb b/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb
deleted file mode 100644
index 862c0ea30..000000000
--- a/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
1SUMMARY = "gnome system tools backends"
2LICENSE = "GPLv3"
3LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
4
5DEPENDS = "dbus dbus-glib glib-2.0 polkit"
6
7inherit gnome pkgconfig update-rc.d gettext
8
9SRC_URI[archive.md5sum] = "edae148b31342aecae035051adc70c74"
10SRC_URI[archive.sha256sum] = "1dbe5177df46a9c7250735e05e77129fe7ec04840771accfa87690111ca2c670"
11
12SRC_URI += " \
13 file://system-tools-backends \
14"
15
16# This needs to move to meta-angstrom
17SRC_URI_append_angstrom = " \
18 file://add-angstrom-distro.patch \
19"
20
21EXTRA_OECONF = " --with-net-dbus=${libdir}/perl5 "
22
23do_configure() {
24 rm missing || true
25 automake --add-missing
26 sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.am
27 sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.in
28 libtoolize --force --install
29 aclocal
30 gnu-configize
31 oe_runconf
32 cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}
33}
34
35do_install_append () {
36 install -d ${D}/${sysconfdir}/init.d
37 install -m 0755 ${WORKDIR}/system-tools-backends ${D}/${sysconfdir}/init.d/
38}
39
40INITSCRIPT_NAME = "system-tools-backends"
41INITSCRIPT_PARAMS = "start 50 2 3 4 5 . stop 70 1 ."
42
43# Shadow added so there is a full adduser/deluser
44# (Gnome images tend to pull in shadow anyway)
45RDEPENDS_${PN} = "shadow"
46
47FILES_${PN} += " ${sysconfdir}/dbus-1/system.d"
48FILES_${PN} += " ${libdir}/pkgconfig"
49FILES_${PN} += " ${datadir}/dbus-1/system-services"
50FILES_${PN} += " ${datadir}/system-tools-backends-2.0/files"
51FILES_${PN} += " ${datadir}/system-tools-backends-2.0/scripts"
52FILES_${PN} += " ${datadir}/polkit*"
53
54PNBLACKLIST[system-tools-backends] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch b/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch
deleted file mode 100644
index 50c9cb99f..000000000
--- a/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 17e5606f8c4c8ff26ba18489aad4c484cf8e2949 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Mon, 29 Apr 2013 11:34:27 +0200
4Subject: [PATCH] Makefile.am: don't build help
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9it crashes with:
10
11| warning: failed to load external entity "/usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl"
12| cannot parse /usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl
13| make[2]: *** [zenity-bg.omf] Error 1
14| make[2]: Leaving directory `/home/andreas/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/zenity/2.32.1-r2/zenity-2.32.1/help'
15
16Upstream-Status: Inappropriate [configuration]
17
18Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
19---
20 Makefile.am | 3 +--
21 1 files changed, 1 insertions(+), 2 deletions(-)
22
23diff --git a/Makefile.am b/Makefile.am
24index 03accc1..caec7f0 100644
25--- a/Makefile.am
26+++ b/Makefile.am
27@@ -1,8 +1,7 @@
28 SUBDIRS = \
29 src \
30 po \
31- data \
32- help
33+ data
34
35 EXTRA_DIST = \
36 autogen.sh \
37--
381.7.6.5
39
diff --git a/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb b/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb
deleted file mode 100644
index bd9f7a0ab..000000000
--- a/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "Display dialog boxes from the commandline and shell scripts"
2LICENSE = "LGPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
4
5PR = "r2"
6
7PNBLACKLIST[zenity] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9DEPENDS = "gtk+ glib-2.0 libnotify gnome-doc-utils"
10
11inherit gnomebase
12SRC_URI += "file://0001-Makefile.am-don-t-build-help.patch"
13SRC_URI[archive.md5sum] = "aa66ec35451b16e424519b4973082170"
14SRC_URI[archive.sha256sum] = "8838be041a07364b62a4281c971392e4a09bb01bb3237a836ec0457ec0ea18ac"
15
16EXTRA_OECONF += "--disable-scrollkeeper"
17# remove -I/usr/include from zenity_CPPFLAGS
18do_configure_prepend() {
19 sed -i -e '/-I$(includedir)/d' src/Makefile.am
20}
21
diff --git a/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch b/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch
deleted file mode 100644
index 83e598e6a..000000000
--- a/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From c8419ef05ff92ffa3de2e626eb6acd5d2df3baa1 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Tue, 15 May 2012 13:40:05 +0200
4Subject: [PATCH] Fix glib includes
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8Upstream-Status: unknown
9
10Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
11---
12 src/trace.c | 5 +----
13 1 files changed, 1 insertions(+), 4 deletions(-)
14
15diff --git a/src/trace.c b/src/trace.c
16index 5ea5c13..774c56d 100644
17--- a/src/trace.c
18+++ b/src/trace.c
19@@ -21,10 +21,7 @@
20
21 #include "trace.h"
22 #include "system.h"
23-#include <glib/gprintf.h>
24-#include <glib/gutils.h>
25-#include <glib/gslist.h>
26-#include <glib/gstrfuncs.h>
27+#include <glib.h>
28 #include <stdio.h>
29 #include <stdarg.h>
30
31--
321.7.6.5
33
diff --git a/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch b/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch
deleted file mode 100644
index a645978d9..000000000
--- a/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 8e158c16cd15fff08b42ed86edc55816d3387837 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 19 Feb 2016 16:04:24 +0200
4Subject: [PATCH] configure.ac: fix paths to introspection tools
5
6They need to be prefixed with $PKG_CONFIG_SYSROOT_DIR
7
8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
9---
10 configure.ac | 8 ++++----
11 1 file changed, 4 insertions(+), 4 deletions(-)
12
13diff --git a/configure.ac b/configure.ac
14index 6d2b747..3b28463 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -706,9 +706,9 @@ if test "x$found_introspection" = "xyes"; then
18 dnl python where to find libgoffice, so you might also need to set
19 dnl LD_LIBRARY_PATH.
20
21- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
22- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
23- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
24+ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
25+ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
26+ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
27 if test "x$INTROSPECTION_GIRDIR" = x; then
28 INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
29 fi
30@@ -717,7 +717,7 @@ if test "x$found_introspection" = "xyes"; then
31 fi
32 INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
33 INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
34- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
35+ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
36 else
37 INTROSPECTION_SCANNER=
38 INTROSPECTION_COMPILER=
39--
402.7.0
41
diff --git a/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb b/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb
deleted file mode 100644
index 6a2080d4c..000000000
--- a/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb
+++ /dev/null
@@ -1,51 +0,0 @@
1DESCRIPTION="Gnome Office Library"
2
3LICENSE="GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=6dc33ff21e1ba1ac1a2a1069d361e29e"
5
6DEPENDS = "libxml-parser-perl-native glib-2.0 gtk+3 pango cairo libgsf libpcre libxml2 libart-lgpl librsvg intltool"
7
8inherit gnomebase pkgconfig perlnative gobject-introspection
9
10GNOME_COMPRESS_TYPE = "xz"
11
12SRC_URI += "file://0001-configure.ac-fix-paths-to-introspection-tools.patch"
13
14SRC_URI[archive.md5sum] = "90fd17c6fe205b779571e00d9b0b4727"
15SRC_URI[archive.sha256sum] = "5c38f4e81e874cc8e89481b080f77c47c72bfd6fe2526f4fc2ef87c17f96cad0"
16
17FILES_${PN}-dbg += "${libdir}/goffice/${PV}/plugins/*/.debug"
18
19RRECOMMENDS_${PN} = " \
20 goffice-plugin-plot-barcol \
21 goffice-plugin-plot-distrib \
22 goffice-plugin-plot-pie \
23 goffice-plugin-plot-radar \
24 goffice-plugin-plot-surface \
25 goffice-plugin-plot-xy \
26 goffice-plugin-reg-linear \
27 goffice-plugin-reg-logfit \
28 goffice-plugin-smoothing \
29"
30
31FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
32 ${sysconfdir} ${sharedstatedir} ${localstatedir} \
33 ${base_bindir}/* ${base_sbindir}/* \
34 ${base_libdir}/*${SOLIBS} \
35 ${datadir}/${PN} \
36 ${datadir}/pixmaps ${datadir}/applications \
37 ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
38 ${libdir}/bonobo/servers"
39
40FILES_${PN}-locale = "${libdir}/locale"
41
42PACKAGES_DYNAMIC += "^goffice-plugin-.*"
43
44python populate_packages_prepend () {
45 goffice_libdir = d.expand('${libdir}/goffice/${PV}/plugins/')
46
47 do_split_packages(d, goffice_libdir, '(.*)', 'goffice-plugin-%s', 'Goffice plugin for %s', allow_dirs=True)
48}
49
50# | ../../goffice-0.10.1/goffice/math/go-complex.c:75:3: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
51PNBLACKLIST[goffice] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch
deleted file mode 100644
index 5dadda2a2..000000000
--- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: tracker-0.10.17/m4/sqlite-threadsafe.m4
2===================================================================
3--- tracker-0.10.17.orig/m4/sqlite-threadsafe.m4
4+++ tracker-0.10.17/m4/sqlite-threadsafe.m4
5@@ -45,7 +45,7 @@ int main ()
6 ]])],
7 [ax_cv_sqlite_threadsafe=yes],
8 [ax_cv_sqlite_threadsafe=no],
9- [ax_cv_sqlite_threadsafe=no])])
10+ [ax_cv_sqlite_threadsafe=yes])])
11
12 LIBS="$save_LIBS"
13 ])
diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch
deleted file mode 100644
index 6c3d9de10..000000000
--- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1Index: tracker-0.14.2/src/libtracker-miner/tracker-storage.c
2===================================================================
3--- tracker-0.14.2.orig/src/libtracker-miner/tracker-storage.c 2011-08-03 13:53:16.000000000 +0100
4+++ tracker-0.14.2/src/libtracker-miner/tracker-storage.c 2012-09-10 08:25:18.322215126 +0100
5@@ -20,6 +20,7 @@
6 #include "config.h"
7
8 #include <string.h>
9+#include <sys/stat.h>
10
11 #include <gio/gio.h>
12 #include <gio/gunixmounts.h>
13@@ -646,6 +647,17 @@
14 gchar *content_type;
15 gboolean is_multimedia;
16 gboolean is_blank;
17+ struct stat st;
18+
19+ /*
20+ * Consider all files under /media to be
21+ * removable unless the file .this-is-root is
22+ * present.
23+ */
24+ if (!strncmp (mount_path, "/media/",
25+ strlen ("/media/")) &&
26+ stat ("/media/.this-is-root", &st))
27+ is_removable = TRUE;
28
29 content_type = mount_guess_content_type (mount, &is_optical, &is_multimedia, &is_blank);
30
diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/giflib5-support.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/giflib5-support.patch
deleted file mode 100644
index fab3371f0..000000000
--- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/giflib5-support.patch
+++ /dev/null
@@ -1,126 +0,0 @@
1 src/tracker-extract/tracker-extract-gif.c | 36 +++++++++++++++++++++++++++++
2 1 file changed, 36 insertions(+)
3--- a/src/tracker-extract/tracker-extract-gif.c
4+++ a/src/tracker-extract/tracker-extract-gif.c
5@@ -75,6 +75,39 @@
6 return (GIF_OK);
7 }
8
9+#if GIFLIB_MAJOR >= 5
10+static inline void
11+gif_error (const gchar *action, int err)
12+{
13+ const char *str = GifErrorString (err);
14+ if (str != NULL) {
15+ g_message ("%s, error: '%s'", action, str);
16+ } else {
17+ g_message ("%s, undefined error %d", action, err);
18+ }
19+}
20+#else /* GIFLIB_MAJOR >= 5 */
21+static inline void print_gif_error()
22+{
23+#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
24+ const char *str = GifErrorString ();
25+ if (str != NULL) {
26+ g_message ("GIF, error: '%s'", str);
27+ } else {
28+ g_message ("GIF, undefined error");
29+ }
30+#else
31+ PrintGifError();
32+#endif
33+}
34+#endif /* GIFLIB_MAJOR >= 5 */
35+
36+/* giflib 5.1 changed the API of DGifCloseFile to take two arguments */
37+#if !defined(GIFLIB_MAJOR) || \
38+ !(GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1))
39+#define DGifCloseFile(a, b) DGifCloseFile(a)
40+#endif
41+
42 static void
43 read_metadata (TrackerSparqlBuilder *preupdate,
44 TrackerSparqlBuilder *metadata,
45@@ -100,14 +133,22 @@
46 ExtBlock extBlock;
47
48 if (DGifGetRecordType(gifFile, &RecordType) == GIF_ERROR) {
49- PrintGifError();
50+#if GIFLIB_MAJOR < 5
51+ print_gif_error ();
52+#else /* GIFLIB_MAJOR < 5 */
53+ gif_error ("Could not read next GIF record type", gifFile->Error);
54+#endif /* GIFLIB_MAJOR < 5 */
55 return;
56 }
57
58 switch (RecordType) {
59 case IMAGE_DESC_RECORD_TYPE:
60 if (DGifGetImageDesc(gifFile) == GIF_ERROR) {
61- PrintGifError();
62+#if GIFLIB_MAJOR < 5
63+ print_gif_error();
64+#else /* GIFLIB_MAJOR < 5 */
65+ gif_error ("Could not get GIF record information", gifFile->Error);
66+#endif /* GIFLIB_MAJOR < 5 */
67 return;
68 }
69
70@@ -117,7 +158,11 @@
71 framedata = g_malloc (framewidth*frameheight);
72
73 if (DGifGetLine(gifFile, framedata, framewidth*frameheight)==GIF_ERROR) {
74- PrintGifError();
75+#if GIFLIB_MAJOR < 5
76+ print_gif_error();
77+#else /* GIFLIB_MAJOR < 5 */
78+ gif_error ("Could not load a block of GIF pixes", gifFile->Error);
79+#endif /* GIFLIB_MAJOR < 5 */
80 return;
81 }
82
83@@ -593,6 +638,9 @@
84 gchar *filename, *uri;
85 GFile *file;
86 int fd;
87+#if GIFLIB_MAJOR >= 5
88+ int err;
89+#endif
90
91 preupdate = tracker_extract_info_get_preupdate_builder (info);
92 metadata = tracker_extract_info_get_metadata_builder (info);
93@@ -617,8 +665,14 @@
94 return FALSE;
95 }
96
97+#if GIFLIB_MAJOR < 5
98 if ((gifFile = DGifOpenFileHandle (fd)) == NULL) {
99- PrintGifError ();
100+ print_gif_error ();
101+#else /* GIFLIB_MAJOR < 5 */
102+ if ((gifFile = DGifOpenFileHandle (fd, &err)) == NULL) {
103+ gif_error ("Could not open GIF file with handle", err);
104+#endif /* GIFLIB_MAJOR < 5 */
105+ g_free (filename);
106 close (fd);
107 return FALSE;
108 }
109@@ -637,10 +691,15 @@
110 g_string_free (where, TRUE);
111
112 g_free (uri);
113-
114+#if GIFLIB_MAJOR < 5
115 if (DGifCloseFile (gifFile) != GIF_OK) {
116- PrintGifError ();
117+ print_gif_error ();
118+ }
119+#else /* GIFLIB_MAJOR < 5 */
120+ if (DGifCloseFile (gifFile, NULL) != GIF_OK) {
121+ gif_error ("Could not close GIF file", gifFile->Error);
122 }
123+#endif /* GIFLIB_MAJOR < 5 */
124
125 return TRUE;
126 }
diff --git a/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb b/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb
deleted file mode 100644
index eb36a120f..000000000
--- a/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb
+++ /dev/null
@@ -1,88 +0,0 @@
1DESCRIPTION = "Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly."
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=ee31012bf90e7b8c108c69f197f3e3a4"
4DEPENDS = "file gstreamer dbus libexif gettext sqlite3 icu gst-plugins-base libgnome-keyring poppler tiff enca libgsf libunistring giflib taglib bzip2 upower gtk+3 libgee networkmanager intltool-native"
5
6RDEPENDS_${PN} += " gvfs gsettings-desktop-schemas"
7
8RDEPENDS_${PN}-nautilus-extension += "nautilus"
9HOMEPAGE = "http://projects.gnome.org/tracker/"
10
11PR = "r7"
12
13inherit autotools pkgconfig gnomebase gettext gsettings systemd gobject-introspection
14
15VER_DIR = "${@gnome_verdir("${PV}")}"
16SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/tracker/${VER_DIR}/tracker-${PV}.tar.xz \
17 file://enable-sqlite-crosscompile.patch \
18 file://fix-removable-media-detection.patch \
19 file://giflib5-support.patch \
20 file://90tracker \
21 file://tracker-store.service \
22 file://tracker-miner-fs.service \
23 file://tracker-dbus.service \
24 "
25
26SYSTEMD_SERVICE_${PN} = " tracker-store.service tracker-miner-fs.service tracker-dbus.service "
27SYSTEMD_AUTO_ENABLE = "disable"
28
29EXTRA_OECONF += " tracker_cv_have_ioprio=yes"
30
31PACKAGECONFIG ?= "nautilus"
32PACKAGECONFIG[nautilus] = "--enable-nautilus-extension,--disable-nautilus-extension,nautilus"
33
34# Disable the desktop-centric miners
35EXTRA_OECONF += "--disable-miner-thunderbird --disable-miner-firefox \
36 --disable-miner-evolution --disable-miner-flickr"
37
38LEAD_SONAME = "libtrackerclient.so.0"
39
40do_compile_prepend() {
41 export GIR_EXTRA_LIBS_PATH="${B}/src/libtracker-sparql-backend/.libs:${B}/src/libtracker-data/.libs:${B}/src/libtracker-common/.libs"
42}
43
44do_install_append() {
45 cp -PpR ${D}${STAGING_DATADIR}/* ${D}${datadir}/ || true
46# install -d ${D}/${sysconfdir}/X11/Xsession.d/
47# install -m 0755 ${WORKDIR}/90tracker ${D}/${sysconfdir}/X11/Xsession.d/
48
49 install -d ${D}${systemd_unitdir}/system
50 install -m 0644 ${WORKDIR}/tracker-store.service ${D}${systemd_unitdir}/system
51 install -m 0644 ${WORKDIR}/tracker-miner-fs.service ${D}${systemd_unitdir}/system
52 install -m 0644 ${WORKDIR}/tracker-dbus.service ${D}${systemd_unitdir}/system
53 sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \
54 -e 's,@BASE_BINDIR@,${base_bindir},g' \
55 ${D}${systemd_unitdir}/system/*.service
56}
57
58PACKAGES =+ "${PN}-tests ${PN}-vala ${PN}-nautilus-extension"
59
60FILES_${PN} += "${datadir}/dbus-1/ \
61 ${libdir}/tracker-${VER_DIR}/*.so.* \
62 ${libdir}/tracker-${VER_DIR}/extract-modules/*.so \
63 ${libdir}/tracker-${VER_DIR}/writeback-modules/*.so \
64 ${datadir}/icons/hicolor/*/apps/tracker.* \
65 ${libdir}/nautilus/extensions-2.0/*.la \
66 ${datadir}/glib-2.0/schemas/* \
67 ${systemd_unitdir}/system/tracker-store.service \
68 ${systemd_unitdir}/system/tracker-miner-fs.service \
69 ${systemd_unitdir}/system/tracker-dbus.service \
70"
71
72FILES_${PN}-dev += "${libdir}/tracker-${VER_DIR}/*.la \
73 ${libdir}/tracker-${VER_DIR}/*.so \
74 ${libdir}/tracker-${VER_DIR}/*/*.la \
75 ${libdir}/tracker-${VER_DIR}/extract-modules/*.la"
76
77FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a"
78FILES_${PN}-dbg += "${libdir}/*/*/.debug \
79 ${libdir}/*/.debug"
80FILES_${PN}-tests = "${datadir}/tracker-tests/"
81FILES_${PN}-vala = "${datadir}/vala/"
82FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so"
83
84SRC_URI[md5sum] = "f3a871beeebf86fd752863ebd22af9ac"
85SRC_URI[sha256sum] = "9b59330aa2e9e09feee587ded895e9247f71fc25f46b023d616d9969314bc7f1"
86
87# http://errors.yoctoproject.org/Errors/Details/81007/
88PNBLACKLIST[tracker] ?= "BROKEN: fails to build with new binutils-2.27 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch
deleted file mode 100644
index c976ff470..000000000
--- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From c551dece6768f67b74b508e9c0133320205ef2df Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Mon, 23 May 2011 15:03:29 +0200
4Subject: [PATCH] Fix the ordering of LDADD options to fix a compilation failure.
5
6"invalid DSO for symbol `XUngrabServer' definition "
7
8Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
9---
10 src/Makefile.am | 2 +-
11 1 files changed, 1 insertions(+), 1 deletions(-)
12
13diff --git a/src/Makefile.am b/src/Makefile.am
14index 2fddc98..45bd850 100644
15--- a/src/Makefile.am
16+++ b/src/Makefile.am
17@@ -6,7 +6,7 @@ INCLUDES = -DPKGDATADIR=\"$(pkgdatadir)\" \
18 $(GLADE_CFLAGS) \
19 -D_GNU_SOURCE
20
21-LIBS = $(GTK_LIBS) $(GLADE_LIBS) $(XSHAPE_LIBS)
22+LIBS = -lX11 $(XSHAPE_LIBS) $(GLADE_LIBS) $(GTK_LIBS)
23
24 bin_PROGRAMS = gpe-scap
25 gpe_scap_SOURCES = scr-i18n.h \
26--
271.6.6.1
28
diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch
deleted file mode 100644
index 3cfe5d724..000000000
--- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1diff -uNr gpe-scap-1.4.orig/configure.ac gpe-scap-1.4/configure.ac
2--- gpe-scap-1.4.orig/configure.ac 2009-03-05 18:53:53.000000000 +0100
3+++ gpe-scap-1.4/configure.ac 2012-05-06 10:18:29.348308322 +0200
4@@ -24,7 +24,7 @@
5 AC_SUBST(LDFLAGS)
6
7 dnl libraries
8-GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.2"
9+GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.4"
10 PKG_CHECK_MODULES(GTK, $GTK_MODULES)
11 AC_SUBST(GTK_CFLAGS)
12 AC_SUBST(GTK_LIBS)
13diff -uNr gpe-scap-1.4.orig/src/scr-shot-common.c gpe-scap-1.4/src/scr-shot-common.c
14--- gpe-scap-1.4.orig/src/scr-shot-common.c 2009-03-05 12:13:20.000000000 +0100
15+++ gpe-scap-1.4/src/scr-shot-common.c 2012-05-06 10:30:52.299371576 +0200
16@@ -182,12 +182,12 @@
17 /* create session and message */
18 session = soup_session_sync_new ();
19 message = soup_message_new ("POST", url);
20- soup_message_add_header (message->request_headers, "User-Agent", "gpe-scap/" VERSION);
21- soup_message_add_header (message->request_headers, "Accept",
22+ soup_message_headers_append (message->request_headers, "User-Agent", "gpe-scap/" VERSION);
23+ soup_message_headers_append (message->request_headers, "Accept",
24 "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
25-/* soup_message_add_header (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7");
26- soup_message_add_header (message->request_headers, "Keep-Alive", "100");
27- soup_message_add_header (message->request_headers, "Connection", "keep-alive");
28+/* soup_message_headers_append (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7");
29+ soup_message_headers_append (message->request_headers, "Keep-Alive", "100");
30+ soup_message_headers_append (message->request_headers, "Connection", "keep-alive");
31 soup_message_wire add_header (message->request_headers, "Accept-Encoding", "gzip,deflate");
32 */
33 /* build message body */
34@@ -207,7 +207,7 @@
35 memcpy (body + strlen (cmd) + len, tail, strlen (tail));
36
37 soup_message_set_request (message, "multipart/form-data; boundary="SEP,
38- SOUP_BUFFER_SYSTEM_OWNED, body, content_len);
39+ SOUP_MEMORY_TAKE, body, content_len);
40
41 soup_session_send_message (session, message);
42
diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb
deleted file mode 100644
index db50e38e3..000000000
--- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1SUMMARY = "A GPE application that allows you to take screenshots"
2SECTION = "gpe"
3
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
6
7DEPENDS = "glib-2.0 gtk+ libgpewidget libglade libsoup-2.4"
8
9PR = "r3"
10
11SRC_URI[md5sum] = "eaf545561b0ad981c9d01833f30fcf95"
12SRC_URI[sha256sum] = "762778421fae7c62d5ec6a9d27986166c0dbbe2ff51fc10bb9b8baff5c367534"
13
14GPE_TARBALL_SUFFIX = "bz2"
15
16inherit gpe autotools pkgconfig
17
18SRC_URI += "file://0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch \
19 file://use.libsoup-2.4.patch \
20"
21
22RREPLACES_${PN} = "gpe-screenshot"
23
24PNBLACKLIST[gpe-scap] ?= "Depends on blacklisted libgpewidget - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch
deleted file mode 100644
index f590caa46..000000000
--- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1diff -uNr libgpewidget-0.117.orig/gpehelp.c libgpewidget-0.117/gpehelp.c
2--- libgpewidget-0.117.orig/gpehelp.c 2006-10-12 12:20:33.000000000 +0200
3+++ libgpewidget-0.117/gpehelp.c 2012-04-30 07:45:57.813293792 +0200
4@@ -33,7 +33,6 @@
5 #include <gdk-pixbuf/gdk-pixbuf.h>
6 #include <gdk/gdk.h>
7 #include <glib.h>
8-#include <glib/gkeyfile.h>
9
10
11 /* helper function definitions*/
diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch
deleted file mode 100644
index 317e01a9b..000000000
--- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- configure.ac.orig 2006-02-04 17:37:55.000000000 +0100
2+++ configure.ac 2006-02-06 00:56:28.000000000 +0100
3@@ -36,7 +36,7 @@
4 ENABLE_CAIRO=$enableval
5 ],
6 [
7- PKG_CHECK_EXISTS(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no])
8+ PKG_CHECK_MODULES(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no])
9 ])
10
11 ENABLE_HILDON=false
diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb
deleted file mode 100644
index 31e247eb1..000000000
--- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
2SECTION = "gpe/libs"
3
4LICENSE = "LGPLv2.1"
5LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499"
6
7DEPENDS = "gtk+ cairo libxinerama libxcomposite libxrender"
8PR = "r5"
9
10inherit gpe pkgconfig autotools gtk-doc
11
12SRC_URI += "file://pkgconfig.patch;striplevel=0 \
13 file://glib-2.32.patch \
14"
15SRC_URI[md5sum] = "b85a839264a35d0faf9a1a38c486e189"
16SRC_URI[sha256sum] = "f96d30c09b0395ea4e146730fd52d9ea303b619bb139051d9f12d3f868a9e18c"
17
18GPE_TARBALL_SUFFIX = "bz2"
19
20EXTRA_OECONF = "--enable-cairo --disable-gtk-doc"
21LDFLAGS += " -L${STAGING_LIBDIR}"
22
23PACKAGES =+ "${PN}-bin"
24
25PNBLACKLIST[libgpewidget] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130594/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch b/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch
deleted file mode 100644
index 1be6ceaa8..000000000
--- a/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- /tmp/Makefile.old 2006-01-16 22:51:34.000000000 +0100
2+++ minilite-050/Makefile 2009-05-01 16:36:32.000000000 +0200
3@@ -45,7 +45,7 @@
4
5 install-program: all
6 mkdir -p $(DESTDIR)$(PREFIX)/bin
7- $(INSTALL) -s $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE)
8+ $(INSTALL) $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE)
9 mkdir -p $(DESTDIR)$(PREFIX)/share/applications
10 $(INSTALL) -m 644 $(PACKAGE).desktop $(DESTDIR)$(PREFIX)/share/applications/$(PACKAGE).desktop
11 mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps/
diff --git a/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb b/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb
deleted file mode 100644
index 8e064fdc6..000000000
--- a/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1SUMMARY = "GPE Screen light control dockapp"
2SECTION = "gpe"
3
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://minilite.c;beginline=8;endline=11;md5=fe9332aaecbce9f74ce2bfeb91680ed1"
6
7DEPENDS = "libgpewidget"
8
9inherit gpe
10
11SRC_URI = "${GPE_MIRROR}/${BP}.tar.gz \
12 file://makefile-fix.patch"
13SRC_URI[md5sum] = "d81cecf269ad7bab0da960e6e7228332"
14SRC_URI[sha256sum] = "2b299425203246090a4949e034f1d0efb3ff99cd1591d0e16c57370a530b361e"
15
16export CVSBUILD="no"
17
18PNBLACKLIST[minilite] ?= "Depends on blacklisted libgpewidget - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch
deleted file mode 100644
index 0e498c712..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1diff -uri fbreader-0.12.1.orig/fbreader/Makefile fbreader-0.12.1/fbreader/Makefile
2--- fbreader-0.12.1.orig/fbreader/Makefile 2009-12-13 09:03:11.000000000 +0100
3+++ fbreader-0.12.1/fbreader/Makefile 2009-12-14 17:18:47.548638783 +0100
4@@ -37,7 +37,6 @@
5 @install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader
6 @install -d $(FBSHAREDIR)
7 @install -d $(FBSHAREDIR)/help
8- @./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help
9 @install -d $(FBSHAREDIR)/network
10 @install -m 0644 $(wildcard data/network/*.xml) $(FBSHAREDIR)/network
11 @install -d $(FBSHAREDIR)/network/certificates
12@@ -58,8 +57,8 @@
13 @install -d $(FBSHAREDIR)/resources
14 @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources
15 @install -d $(DESTDIR)$(APPIMAGEDIR_REAL)
16- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
17- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
18+ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
19+ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
20 @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
21 @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install
22
diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-cflags-fribidi.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-cflags-fribidi.patch
deleted file mode 100644
index e72fa8cf2..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-cflags-fribidi.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- fbreader-0.12.10/makefiles/config.mk.orig 2016-05-03 11:11:07.259734561 -0400
2+++ fbreader-0.12.10/makefiles/config.mk 2016-05-03 11:11:37.447735786 -0400
3@@ -38,7 +38,7 @@
4 LDFLAGS += -pg
5 endif
6
7-ZINCLUDE = -I $(ROOTDIR)/zlibrary/core/include -I $(ROOTDIR)/zlibrary/text/include
8+ZINCLUDE = $(shell pkg-config --cflags fribidi) -I $(ROOTDIR)/zlibrary/core/include -I $(ROOTDIR)/zlibrary/text/include
9
10 ZLSHARED ?= yes
11
diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-return-code-gcc6.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-return-code-gcc6.patch
deleted file mode 100644
index 97ab4d315..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/fix-return-code-gcc6.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- fbreader-0.12.10/fbreader/src/database/booksdb/BooksDB.cpp.orig 2016-06-08 14:54:04.206196501 -0400
2+++ fbreader-0.12.10/fbreader/src/database/booksdb/BooksDB.cpp 2016-06-08 14:54:17.686196322 -0400
3@@ -145,7 +145,7 @@
4
5 myFindFileId->setFileName(fileName);
6 if (!myFindFileId->run()) {
7- return false;
8+ return 0;
9 }
10 ((DBIntValue&)*myLoadBook->parameter("@file_id").value()) = myFindFileId->fileId();
11 shared_ptr<DBDataReader> reader = myLoadBook->executeReader();
diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch
deleted file mode 100644
index 00cba1023..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1 Fix compilation with gcc 4.5
2
3 [FBreader Ticket #340] -- http://old.fbreader.org/mantis/view.php?id=340
4
5 Without that patch we have:
6 Compiling Library.o ...Library.cpp:42:1: error: 'Library::Library' names the constructor, not the type
7
8 Upstream-Status: Accepted [Fixed in Version 0.14.0]
9
10--- fbreader-0.12.10-orig/fbreader/src/library/Library.cpp 2010-04-01 15:14:24.000000000 +0200
11+++ fbreader-0.12.10/fbreader/src/library/Library.cpp 2010-04-13 13:34:06.000000000 +0200
12@@ -39,7 +39,7 @@
13 shared_ptr<Library> Library::ourInstance;
14 const size_t Library::MaxRecentListSize = 10;
15
16-Library::Library &Library::Instance() {
17+Library &Library::Instance() {
18 if (ourInstance.isNull()) {
19 ourInstance = new Library();
20 }
diff --git a/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb b/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb
deleted file mode 100644
index 2dbcef402..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb
+++ /dev/null
@@ -1,46 +0,0 @@
1SUMMARY = "FBreader is an ebook reader"
2HOMEPAGE = "http://www.fbreader.org"
3SECTION = "x11/utils"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
6DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3"
7
8PR = "r1"
9
10SRC_URI = "http://www.fbreader.org/fbreader-sources-${PV}.tgz \
11file://Makefile.patch \
12file://gcc45.patch \
13file://fix-cflags-fribidi.patch \
14file://fix-return-code-gcc6.patch"
15
16# Set the defaults
17READER_RESOLUTION ?= "1024x600"
18READER_ARCH ?= "desktop"
19READER_UI ?= "gtk"
20READER_STATUS ?= "release"
21
22FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary"
23FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/"
24
25CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}"
26EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' LDFLAGS='${LDFLAGS}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'"
27
28inherit pkgconfig
29
30do_configure() {
31 cd ${WORKDIR}/${PN}-${PV}
32 mv makefiles/target.mk makefiles/target.mk.orig
33
34 echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk
35 echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk
36 echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk
37}
38
39do_install() {
40 oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION}
41}
42
43SRC_URI[md5sum] = "da9ec4721efdb0ec0aaa182bff16ad82"
44SRC_URI[sha256sum] = "328aec454db80e225aa0b5c31adef74bf62a14357482947e87e9731686b3c624"
45
46PNBLACKLIST[fbreader] ?= "Depends on blacklisted libgpewidget - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-support/fbreader/fbreader_git.bb b/meta-gpe/recipes-support/fbreader/fbreader_git.bb
deleted file mode 100644
index b3e7946b5..000000000
--- a/meta-gpe/recipes-support/fbreader/fbreader_git.bb
+++ /dev/null
@@ -1,45 +0,0 @@
1SUMMARY = "FBreader is an ebook reader"
2HOMEPAGE = "http://www.fbreader.org"
3SECTION = "x11/utils"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
6DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3"
7SRCREV = "2cf1ec0e306e1122dbed850bfa005cd59a6168ee"
8PV = "0.99.5+gitr${SRCPV}"
9
10PR = "r1"
11
12DEFAULT_PREFERENCE = "-1"
13
14SRC_URI = "git://github.com/geometer/FBReader.git;protocol=http;branch=master \
15 file://0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch"
16
17# Set the defaults
18READER_RESOLUTION ?= "1024x600"
19READER_ARCH ?= "desktop"
20READER_UI ?= "gtk"
21READER_STATUS ?= "release"
22
23FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary"
24FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/"
25
26CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}"
27EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'"
28inherit pkgconfig
29
30S = "${WORKDIR}/git"
31
32do_configure() {
33 cd "${S}"
34
35 echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk
36 echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk
37 echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk
38}
39
40do_install() {
41 oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION}
42}
43
44# http://errors.yoctoproject.org/Errors/Details/68618/
45PNBLACKLIST[fbreader] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch b/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch
deleted file mode 100644
index f6e12023b..000000000
--- a/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From da4170b61bb41eff0af170d1d77bfd90f9ebe5dd Mon Sep 17 00:00:00 2001
2From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
3Date: Fri, 20 Jan 2012 11:34:42 +0100
4Subject: [PATCH] Fix installation of the icons when RESOLUTION is set
5
6When resolution is set, the following code(in fbreader/Makefile) is executed:
7 VARIANT = $(TARGET_ARCH)
8 ifneq "$(RESOLUTION)" ""
9 VARIANT = $(TARGET_ARCH)_$(RESOLUTION)
10 endif
11
12This fix is based on a patch from the openembedded project,
13 which can be found here:
14 http://cgit.openembedded.org/openembedded/tree/recipes/fbreader/fbreader-0.12.1/Makefile.patch
15
16Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
17---
18 Submitted trough github to git://github.com/geometer/FBReader.git as a pull request
19
20 fbreader/Makefile | 4 ++--
21 1 files changed, 2 insertions(+), 2 deletions(-)
22
23diff --git a/fbreader/Makefile b/fbreader/Makefile
24index bfa9242..03e6cc3 100644
25--- a/fbreader/Makefile
26+++ b/fbreader/Makefile
27@@ -60,8 +60,8 @@ do_install:
28 @install -d $(FBSHAREDIR)/resources
29 @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources
30 @install -d $(DESTDIR)$(APPIMAGEDIR_REAL)
31- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
32- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
33+ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
34+ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
35 @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
36 @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install
37
38--
391.7.4.1
40
diff --git a/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb b/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb
deleted file mode 100644
index 4a7ed9a6e..000000000
--- a/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb
+++ /dev/null
@@ -1,136 +0,0 @@
1HOMEPAGE = "http://www.linuxtv.org"
2SUMMARY = "Linux DVB API applications and utilities"
3
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
6
7DEPENDS = "v4l-utils-native"
8
9SRC_URI = " \
10 hg://linuxtv.org/hg;module=dvb-apps;protocol=http;name=apps \
11 git://linuxtv.org/git/dtv-scan-tables.git;protocol=http;destsuffix=dvb-apps/initial-scan-tables;name=scantables \
12 "
13SRCREV_apps = "3d43b280298c"
14SRCREV_scantables = "ceb11833b35f05813b1f0397a60e0f3b99430aab"
15SRCREV_FORMAT = "apps_scantables"
16
17S = "${WORKDIR}/${BPN}"
18
19TARGET_CC_ARCH += "${LDFLAGS}"
20EXTRA_OEMAKE = "VERSION_FILE='${STAGING_INCDIR}/linux/dvb/version.h'"
21
22do_configure() {
23 sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh
24}
25
26do_compile_append() {
27# dvb-apps only support DVBAPI v3, so generate them from the DVBAPI v5 downloaded files
28 make -C initial-scan-tables clean
29 make -C initial-scan-tables dvbv3
30}
31
32do_install() {
33 make DESTDIR=${D} install
34# dvb-apps only support DVBAPI v3, so only install the generated DVBAPI v3 files
35 make -C initial-scan-tables DATADIR=${D}/${datadir} DVBV3DIR=dvb install_v3
36
37 install -d ${D}/${bindir}
38 install -d ${D}/${docdir}/dvb-apps
39 install -d ${D}/${docdir}/dvb-apps/szap
40 chmod a+rx ${D}/${libdir}/*.so*
41
42 # Install tests
43 install -m 0755 ${S}/test/setvoltage ${D}${bindir}/test_setvoltage
44 install -m 0755 ${S}/test/set22k ${D}${bindir}/test_set22k
45 install -m 0755 ${S}/test/sendburst ${D}${bindir}/test_sendburst
46 install -m 0755 ${S}/test/diseqc ${D}${bindir}/test_diseqc
47 install -m 0755 ${S}/test/test_sections ${D}${bindir}/
48 install -m 0755 ${S}/test/test_av_play ${D}${bindir}/
49 install -m 0755 ${S}/test/test_stillimage ${D}${bindir}/
50 install -m 0755 ${S}/test/test_dvr_play ${D}${bindir}/
51 install -m 0755 ${S}/test/test_tt ${D}${bindir}/
52 install -m 0755 ${S}/test/test_sec_ne ${D}${bindir}/
53 install -m 0755 ${S}/test/test_stc ${D}${bindir}/
54 install -m 0755 ${S}/test/test_av ${D}${bindir}/
55 install -m 0755 ${S}/test/test_vevent ${D}${bindir}/
56 install -m 0755 ${S}/test/test_pes ${D}${bindir}/
57 install -m 0755 ${S}/test/test_dvr ${D}${bindir}/
58
59 cp -pPR ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/
60 cp -pPR ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/
61}
62
63python populate_packages_prepend () {
64 dvb_libdir = bb.data.expand('${libdir}', d)
65 do_split_packages(d, dvb_libdir, '^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True)
66 do_split_packages(d, dvb_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
67 do_split_packages(d, dvb_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
68 do_split_packages(d, dvb_libdir, '^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True)
69}
70
71PACKAGES =+ "dvb-evtest dvb-evtest-dbg \
72 dvbapp-tests dvbapp-tests-dbg \
73 dvbdate dvbdate-dbg \
74 dvbtraffic dvbtraffic-dbg \
75 dvbnet dvbnet-dbg \
76 dvb-scan dvb-scan-dbg dvb-scan-data \
77 dvb-azap dvb-azap-dbg \
78 dvb-czap dvb-czap-dbg \
79 dvb-szap dvb-szap-dbg \
80 dvb-tzap dvb-tzap-dbg \
81 dvb-femon dvb-femon-dbg \
82 dvb-zap-data"
83
84# Expose the packages from the above spitting
85PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \
86 libesg libucsi libdvbsec"
87
88FILES_${PN} = "${bindir} ${datadir}/dvb"
89FILES_${PN}-doc = ""
90FILES_${PN}-dev = "${includedir}"
91
92FILES_dvb-evtest = "${bindir}/evtest"
93FILES_dvb-evtest-dbg = "${bindir}/.debug/evtest"
94RCONFLICTS_dvb-evtest = "evtest"
95
96FILES_dvbapp-tests = "${bindir}/*test* "
97FILES_dvbapp-tests-dbg = "${bindir}/.debug/*test*"
98
99FILES_dvbdate = "${bindir}/dvbdate"
100FILES_dvbdate-dbg = "${bindir}/.debug/dvbdate"
101
102FILES_dvbtraffic = "${bindir}/dvbtraffic"
103FILES_dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic"
104
105FILES_dvbnet = "${bindir}/dvbnet"
106FILES_dvbnet-dbg = "${bindir}/.debug/dvbnet"
107
108FILES_dvb-scan = "${bindir}/*scan "
109FILES_dvb-scan-dbg = "${bindir}/.debug/*scan"
110FILES_dvb-scan-data = "${datadir}/dvb"
111
112FILES_dvb-azap = "${bindir}/azap"
113FILES_dvb-azap-dbg = "${bindir}/.debug/azap"
114
115FILES_dvb-czap = "${bindir}/czap"
116FILES_dvb-czap-dbg = "${bindir}/.debug/czap"
117
118FILES_dvb-szap = "${bindir}/szap"
119FILES_dvb-szap-dbg = "${bindir}/.debug/szap"
120
121FILES_dvb-tzap = "${bindir}/tzap"
122FILES_dvb-tzap-dbg = "${bindir}/.debug/tzap"
123
124FILES_dvb-femon = "${bindir}/femon"
125FILES_dvb-femon-dbg = "${bindir}/.debug/femon"
126
127FILES_dvb-zap-data = "${docdir}/dvb-apps/szap"
128
129RDEPENDS_dvbdate =+ "libdvbapi libucsi"
130RDEPENDS_dvbtraffic =+ "libdvbapi"
131RDEPENDS_dvb-scan =+ "libdvbapi libdvbcfg libdvbsec"
132RDEPENDS_dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi"
133RDEPENDS_dvb-femon =+ "libdvbapi"
134RDEPENDS_dvbnet =+ "libdvbapi"
135
136PNBLACKLIST[dvb-apps] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130603/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Fix-checks-for-sse2-mmx.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Fix-checks-for-sse2-mmx.patch
deleted file mode 100644
index 3283a5b6a..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Fix-checks-for-sse2-mmx.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From f0dab6d6fe4b0aae4394eee93be86e9747c6ed5c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 22 Nov 2016 05:07:38 +0000
4Subject: [PATCH] Fix checks for sse2/mmx
5
6Just checking for cmdline options is not enough
7its better to check for builtin defines to be
8sure, clang does not error out on sse2 options on
9arm e.g. and it ends up doing SSE2 stuff for arm
10which is not desired
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 configure | 10 ++++++++--
15 1 file changed, 8 insertions(+), 2 deletions(-)
16
17diff --git a/configure b/configure
18index 47d2cf2..4be000c 100755
19--- a/configure
20+++ b/configure
21@@ -118,8 +118,14 @@ fi
22 # Valiate compiler
23 check_cc || die 'No C compiler found'
24 check_cc_header execinfo
25-check_cc_option mmx
26-check_cc_option sse2
27+check_cc_snippet mmx '#ifndef __MMX__
28+error "MMX not supported"
29+#endif
30+'
31+check_cc_snippet sse2 '#ifndef __SSE2__
32+error "SSE2 not supported"
33+#endif
34+'
35
36 if check_cc '
37 #if !defined(__clang__)
38--
391.9.1
40
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Makefile-Ignore-warning-about-wrong-includes.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Makefile-Ignore-warning-about-wrong-includes.patch
deleted file mode 100644
index 248a5e6a8..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Makefile-Ignore-warning-about-wrong-includes.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 7d672305c7ad2f716dfe1c487b525a1a92954d4a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 22 Nov 2016 06:22:36 +0000
4Subject: [PATCH] Makefile: Ignore warning about wrong includes
5
6It happens on musl especially
7usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
8| #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
9| ^
10| In file included from src/avahi.c:48:
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 Makefile | 1 +
15 1 file changed, 1 insertion(+)
16
17diff --git a/Makefile b/Makefile
18index f41ef1a..cc7b249 100644
19--- a/Makefile
20+++ b/Makefile
21@@ -54,6 +54,7 @@ CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function
22 CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare
23 CFLAGS += -Wno-parentheses-equality -Wno-incompatible-pointer-types
24 CFLAGS += -Wno-error=varargs
25+CFLAGS += -Wno-error=\#warnings
26 endif
27
28 ifeq ($(CONFIG_LIBFFMPEG_STATIC),yes)
29--
301.8.3.1
31
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-disable-varargs-warning-on-clang.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-disable-varargs-warning-on-clang.patch
deleted file mode 100644
index a4c4c4d0f..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-disable-varargs-warning-on-clang.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 906d95695af95970bf551ea55b6c3e70332c6b97 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 22 Nov 2016 05:22:32 +0000
4Subject: [PATCH] disable varargs warning on clang
5
6The issue is that 'len' is an unsigned char and we violate the promotion rules
7for passing the value to va_start.
8
9passing an object that undergoes defau
10lt argument promotion to 'va_start' has undefined behavior [-Wvarargs]
11| va_start(ap, len);
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 Makefile | 1 +
16 1 file changed, 1 insertion(+)
17
18diff --git a/Makefile b/Makefile
19index 8c5e380..f41ef1a 100644
20--- a/Makefile
21+++ b/Makefile
22@@ -53,6 +53,7 @@ ifeq ($(COMPILER), clang)
23 CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function
24 CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare
25 CFLAGS += -Wno-parentheses-equality -Wno-incompatible-pointer-types
26+CFLAGS += -Wno-error=varargs
27 endif
28
29 ifeq ($(CONFIG_LIBFFMPEG_STATIC),yes)
30--
311.9.1
32
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-dvr-Use-labs-instead-of-abs.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-dvr-Use-labs-instead-of-abs.patch
deleted file mode 100644
index ea34cdb62..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-dvr-Use-labs-instead-of-abs.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From a715671eadcbf989fdaf05f62e71b93ac1749615 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 22 Nov 2016 06:08:31 +0000
4Subject: [PATCH] dvr: Use labs() instead of abs()
5
6Makes clang happy
7
8dvr/dvr_db.c:853:10: error: absolute value function
9'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Werror,-Wabsolute-value]
10if ((abs(de->de_start - e->start) < 600) && (abs(de->de_stop - e->stop) < 600)) {
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/dvr/dvr_db.c | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c
18index 165caa6..5656569 100644
19--- a/src/dvr/dvr_db.c
20+++ b/src/dvr/dvr_db.c
21@@ -414,11 +414,11 @@ dvr_entry_fuzzy_match(dvr_entry_t *de, epg_broadcast_t *e)
22 /* Wrong length (+/-20%) */
23 t1 = de->de_stop - de->de_start;
24 t2 = e->stop - e->start;
25- if ( abs(t2 - t1) > (t1 / 5) )
26+ if ( labs(t2 - t1) > (t1 / 5) )
27 return 0;
28
29 /* Outside of window */
30- if (abs(e->start - de->de_start) > de->de_config->dvr_update_window)
31+ if (labs(e->start - de->de_start) > de->de_config->dvr_update_window)
32 return 0;
33
34 /* Title match (or contains?) */
35--
361.9.1
37
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch
deleted file mode 100644
index 484e723d9..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From c3767e189e90965407937b6178adbbd8cdafe31d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 22 Nov 2016 05:59:10 +0000
4Subject: [PATCH] hdhomerun: Override forced overrdiing og CC/STRIP and CFLAGS
5
6This is required for cross compiling otherwise it ends up
7using build host gcc
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 Makefile.hdhomerun | 6 ++++--
12 1 file changed, 4 insertions(+), 2 deletions(-)
13
14diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun
15index 943ffec..8bd14ff 100644
16--- a/Makefile.hdhomerun
17+++ b/Makefile.hdhomerun
18@@ -18,8 +18,8 @@
19
20 include $(dir $(lastword $(MAKEFILE_LIST))).config.mk
21
22-unexport CFLAGS
23-unexport LDFLAGS
24+#unexport CFLAGS
25+#unexport LDFLAGS
26
27 define DOWNLOAD
28 @mkdir -p $(LIBHDHRDIR)/build
29@@ -75,6 +75,8 @@ $(LIBHDHRDIR)/$(LIBHDHR)/.tvh_download:
30 $(call DOWNLOAD,$(LIBHDHR_URL),$(LIBHDHRDIR)/$(LIBHDHR_TB),$(LIBHDHR_SHA1))
31 $(call UNTAR,$(LIBHDHR_TB),z)
32 ln -sf libhdhomerun $(LIBHDHRDIR)/$(LIBHDHR)
33+ @sed -i -e "s/CC.*:=/CC ?=/" $(LIBHDHRDIR)/$(LIBHDHR)/Makefile
34+ @sed -i -e "s/STRIP.*:=/STRIP ?=/" $(LIBHDHRDIR)/$(LIBHDHR)/Makefile
35 @touch $@
36
37 $(LIBHDHRDIR)/$(LIBHDHR)/.tvh_build: \
38--
391.9.1
40
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
deleted file mode 100644
index 3b73549d2..000000000
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "Tvheadend TV streaming server"
2HOMEPAGE = "https://www.lonelycoder.com/redmine/projects/tvheadend"
3
4DEPENDS = "avahi zlib openssl python-native dvb-apps"
5
6LICENSE = "GPLv3+"
7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
8
9SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=release/4.0 \
10 file://0001-Fix-checks-for-sse2-mmx.patch \
11 file://0001-disable-varargs-warning-on-clang.patch \
12 file://0001-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch \
13 file://0001-dvr-Use-labs-instead-of-abs.patch \
14 file://0001-Makefile-Ignore-warning-about-wrong-includes.patch \
15"
16SRCREV = "64fec8120158de585e18be705055259484518d94"
17PV = "4.0.9+git${SRCREV}"
18
19S = "${WORKDIR}/git"
20
21PACKAGECONFIG ?= ""
22PACKAGECONFIG[uriparser] = "--enable-uriparser,--disable-uriparser,uriparser"
23
24do_configure() {
25 ./configure ${PACKAGECONFIG_CONFARGS} \
26 --prefix=${prefix} \
27 --libdir=${libdir} \
28 --bindir=${bindir} \
29 --datadir=${datadir} \
30 --arch=${TARGET_ARCH} \
31 --disable-dvbscan \
32 --disable-bundle
33}
34
35do_install() {
36 oe_runmake install DESTDIR=${D}
37}
38
39FILES_${PN} += "${datadir}/${BPN}"
40
41RDEPENDS_${PN} += "libdvben50221 libucsi libdvbapi"
42
43PNBLACKLIST[tvheadend] ?= "Depends on blacklisted dvb-apps - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts/0001-Update-to-p8-platform.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts/0001-Update-to-p8-platform.patch
deleted file mode 100644
index c4a6ae731..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts/0001-Update-to-p8-platform.patch
+++ /dev/null
@@ -1,427 +0,0 @@
1From 06a8224c99282ac1a606edd9e8ea3f591112942d Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Thu, 18 Feb 2016 14:04:31 +0100
4Subject: [PATCH] Update to p8-platform
5
6---
7 CMakeLists.txt | 6 +++---
8 pvr.hts/changelog.txt | 4 ++--
9 src/AutoRecordings.cpp | 2 +-
10 src/HTSPConnection.cpp | 8 +++----
11 src/HTSPDemuxer.cpp | 2 +-
12 src/HTSPVFS.cpp | 6 +++---
13 src/TimeRecordings.cpp | 2 +-
14 src/Tvheadend.cpp | 4 ++--
15 src/Tvheadend.h | 38 +++++++++++++++++-----------------
16 src/client.cpp | 4 ++--
17 src/client.h | 4 ++--
18 src/tvheadend/Subscription.cpp | 2 +-
19 src/tvheadend/Subscription.h | 4 ++--
20 src/tvheadend/utilities/AsyncState.cpp | 4 ++--
21 src/tvheadend/utilities/AsyncState.h | 6 +++---
22 15 files changed, 48 insertions(+), 48 deletions(-)
23
24diff --git a/CMakeLists.txt b/CMakeLists.txt
25index 0842682..cb04942 100644
26--- a/CMakeLists.txt
27+++ b/CMakeLists.txt
28@@ -6,10 +6,10 @@ enable_language(CXX)
29
30 find_package(kodi REQUIRED)
31 find_package(kodiplatform REQUIRED)
32-find_package(platform REQUIRED)
33+find_package(p8-platform REQUIRED)
34
35 include_directories(${kodiplatform_INCLUDE_DIRS}
36- ${platform_INCLUDE_DIRS}
37+ ${p8-platform_INCLUDE_DIRS}
38 ${KODI_INCLUDE_DIR}
39 ${PROJECT_SOURCE_DIR}/lib)
40
41@@ -95,7 +95,7 @@ list(APPEND HTS_SOURCES
42
43 add_subdirectory(lib/libhts)
44
45-set(DEPLIBS ${platform_LIBRARIES} hts)
46+set(DEPLIBS ${p8-platform_LIBRARIES} hts)
47 if(WIN32)
48 list(APPEND DEPLIBS ws2_32)
49 endif()
50diff --git a/pvr.hts/changelog.txt b/pvr.hts/changelog.txt
51index 9ffa33c..1e7fe30 100644
52--- a/pvr.hts/changelog.txt
53+++ b/pvr.hts/changelog.txt
54@@ -49,7 +49,7 @@
55 - fixed: Autorec: Start and stop time handling.
56 - fixed: LocaltimeToUTC conversion (timer settings clock display incorrect).
57 - fixed: Several issues with predictive tuning.
58-- added: build: Automatically fill in platform and library name.
59+- added: build: Automatically fill in p8-platform and library name.
60 - fixed: Use epg data only for creation of epg-based timers.
61 - improved: Do not try to reconnect to tvh while suspending or not fully awake again.
62
63@@ -97,7 +97,7 @@
64 - added: support for creating repeating timers, aka time schedules
65 - fixed: conditions for addon restart after settings changes
66 - internal: fixed build system regressions introduced with move to cmake
67-- internal: updated to use libplatform
68+- internal: updated to use libp8-platform
69
70 2.1.7
71 - added: support for radio channel groups
72diff --git a/src/AutoRecordings.cpp b/src/AutoRecordings.cpp
73index 5fa60a0..d9e5e1d 100644
74--- a/src/AutoRecordings.cpp
75+++ b/src/AutoRecordings.cpp
76@@ -26,7 +26,7 @@
77 #include "tvheadend/utilities/Utilities.h"
78 #include "tvheadend/utilities/Logger.h"
79
80-using namespace PLATFORM;
81+using namespace P8PLATFORM;
82 using namespace tvheadend;
83 using namespace tvheadend::entity;
84 using namespace tvheadend::utilities;
85diff --git a/src/HTSPConnection.cpp b/src/HTSPConnection.cpp
86index aec1296..86f5004 100644
87--- a/src/HTSPConnection.cpp
88+++ b/src/HTSPConnection.cpp
89@@ -19,9 +19,9 @@
90 *
91 */
92
93-#include "platform/threads/mutex.h"
94-#include "platform/util/StringUtils.h"
95-#include "platform/sockets/tcp.h"
96+#include "p8-platform/threads/mutex.h"
97+#include "p8-platform/util/StringUtils.h"
98+#include "p8-platform/sockets/tcp.h"
99
100 extern "C" {
101 #include "libhts/htsmsg_binary.h"
102@@ -33,7 +33,7 @@ extern "C" {
103
104 using namespace std;
105 using namespace ADDON;
106-using namespace PLATFORM;
107+using namespace P8PLATFORM;
108 using namespace tvheadend;
109 using namespace tvheadend::utilities;
110
111diff --git a/src/HTSPDemuxer.cpp b/src/HTSPDemuxer.cpp
112index a6e1f12..7f45345 100644
113--- a/src/HTSPDemuxer.cpp
114+++ b/src/HTSPDemuxer.cpp
115@@ -27,7 +27,7 @@
116
117 using namespace std;
118 using namespace ADDON;
119-using namespace PLATFORM;
120+using namespace P8PLATFORM;
121 using namespace tvheadend;
122 using namespace tvheadend::utilities;
123
124diff --git a/src/HTSPVFS.cpp b/src/HTSPVFS.cpp
125index 0463f56..0404bab 100644
126--- a/src/HTSPVFS.cpp
127+++ b/src/HTSPVFS.cpp
128@@ -19,8 +19,8 @@
129 *
130 */
131
132-#include "platform/threads/mutex.h"
133-#include "platform/util/StringUtils.h"
134+#include "p8-platform/threads/mutex.h"
135+#include "p8-platform/util/StringUtils.h"
136 #include "tvheadend/utilities/Logger.h"
137
138 extern "C" {
139@@ -30,7 +30,7 @@ extern "C" {
140 #include "Tvheadend.h"
141
142 using namespace std;
143-using namespace PLATFORM;
144+using namespace P8PLATFORM;
145 using namespace tvheadend::utilities;
146
147 /*
148diff --git a/src/TimeRecordings.cpp b/src/TimeRecordings.cpp
149index 5d34938..97aae09 100644
150--- a/src/TimeRecordings.cpp
151+++ b/src/TimeRecordings.cpp
152@@ -25,7 +25,7 @@
153 #include "tvheadend/utilities/Utilities.h"
154 #include "tvheadend/utilities/Logger.h"
155
156-using namespace PLATFORM;
157+using namespace P8PLATFORM;
158 using namespace tvheadend;
159 using namespace tvheadend::entity;
160 using namespace tvheadend::utilities;
161diff --git a/src/Tvheadend.cpp b/src/Tvheadend.cpp
162index 2057241..14c3bd4 100644
163--- a/src/Tvheadend.cpp
164+++ b/src/Tvheadend.cpp
165@@ -23,7 +23,7 @@
166 #include <ctime>
167 #include <memory>
168
169-#include "platform/util/StringUtils.h"
170+#include "p8-platform/util/StringUtils.h"
171
172 #include "Tvheadend.h"
173 #include "tvheadend/utilities/Utilities.h"
174@@ -31,7 +31,7 @@
175
176 using namespace std;
177 using namespace ADDON;
178-using namespace PLATFORM;
179+using namespace P8PLATFORM;
180 using namespace tvheadend;
181 using namespace tvheadend::entity;
182 using namespace tvheadend::utilities;
183diff --git a/src/Tvheadend.h b/src/Tvheadend.h
184index 2ce4552..e794716 100644
185--- a/src/Tvheadend.h
186+++ b/src/Tvheadend.h
187@@ -22,10 +22,10 @@
188 */
189
190 #include "client.h"
191-#include "platform/sockets/tcp.h"
192-#include "platform/threads/threads.h"
193-#include "platform/threads/mutex.h"
194-#include "platform/util/buffer.h"
195+#include "p8-platform/sockets/tcp.h"
196+#include "p8-platform/threads/threads.h"
197+#include "p8-platform/threads/mutex.h"
198+#include "p8-platform/util/buffer.h"
199 #include "kodi/xbmc_codec_types.h"
200 #include "kodi/xbmc_stream_utils.hpp"
201 #include "kodi/libXBMC_addon.h"
202@@ -88,7 +88,7 @@ class CHTSPMessage;
203
204 /* Typedefs */
205 typedef std::map<uint32_t,CHTSPResponse*> CHTSPResponseList;
206-typedef PLATFORM::SyncedBuffer<CHTSPMessage> CHTSPMessageQueue;
207+typedef P8PLATFORM::SyncedBuffer<CHTSPMessage> CHTSPMessageQueue;
208
209 /*
210 * HTSP Response handler
211@@ -98,10 +98,10 @@ class CHTSPResponse
212 public:
213 CHTSPResponse();
214 ~CHTSPResponse();
215- htsmsg_t *Get ( PLATFORM::CMutex &mutex, uint32_t timeout );
216+ htsmsg_t *Get ( P8PLATFORM::CMutex &mutex, uint32_t timeout );
217 void Set ( htsmsg_t *m );
218 private:
219- PLATFORM::CCondition<volatile bool> m_cond;
220+ P8PLATFORM::CCondition<volatile bool> m_cond;
221 bool m_flag;
222 htsmsg_t *m_msg;
223 };
224@@ -146,7 +146,7 @@ public:
225 * HTSP Connection registration thread
226 */
227 class CHTSPRegister
228- : public PLATFORM::CThread
229+ : public P8PLATFORM::CThread
230 {
231 friend class CHTSPConnection;
232
233@@ -163,7 +163,7 @@ private:
234 * HTSP Connection
235 */
236 class CHTSPConnection
237- : public PLATFORM::CThread
238+ : public P8PLATFORM::CThread
239 {
240 friend class CHTSPRegister;
241
242@@ -190,7 +190,7 @@ public:
243 inline bool IsConnected ( void ) const { return m_ready; }
244 bool WaitForConnection ( void );
245
246- inline PLATFORM::CMutex& Mutex ( void ) { return m_mutex; }
247+ inline P8PLATFORM::CMutex& Mutex ( void ) { return m_mutex; }
248
249 void OnSleep ( void );
250 void OnWake ( void );
251@@ -202,10 +202,10 @@ private:
252 bool SendHello ( void );
253 bool SendAuth ( const std::string &u, const std::string &p );
254
255- PLATFORM::CTcpSocket *m_socket;
256- PLATFORM::CMutex m_mutex;
257+ P8PLATFORM::CTcpSocket *m_socket;
258+ P8PLATFORM::CMutex m_mutex;
259 CHTSPRegister m_regThread;
260- PLATFORM::CCondition<volatile bool> m_regCond;
261+ P8PLATFORM::CCondition<volatile bool> m_regCond;
262 bool m_ready;
263 uint32_t m_seq;
264 std::string m_serverName;
265@@ -273,13 +273,13 @@ public:
266 void SetStreamingProfile(const std::string &profile);
267
268 private:
269- PLATFORM::CMutex m_mutex;
270+ P8PLATFORM::CMutex m_mutex;
271 CHTSPConnection &m_conn;
272- PLATFORM::SyncedBuffer<DemuxPacket*> m_pktBuffer;
273+ P8PLATFORM::SyncedBuffer<DemuxPacket*> m_pktBuffer;
274 ADDON::XbmcStreamProperties m_streams;
275 std::map<int,int> m_streamStat;
276 int64_t m_seekTime;
277- PLATFORM::CCondition<volatile int64_t> m_seekCond;
278+ P8PLATFORM::CCondition<volatile int64_t> m_seekCond;
279 bool m_seeking;
280 bool m_speedChange;
281 tvheadend::status::SourceInfo m_sourceInfo;
282@@ -350,7 +350,7 @@ private:
283 * Root object for Tvheadend connection
284 */
285 class CTvheadend
286- : public PLATFORM::CThread
287+ : public P8PLATFORM::CThread
288 {
289 public:
290 CTvheadend();
291@@ -422,7 +422,7 @@ private:
292 */
293 tvheadend::Profiles m_profiles;
294
295- PLATFORM::CMutex m_mutex;
296+ P8PLATFORM::CMutex m_mutex;
297
298 CHTSPConnection m_conn;
299
300@@ -519,7 +519,7 @@ public:
301 */
302 bool WaitForConnection ( void )
303 {
304- PLATFORM::CLockObject lock(m_conn.Mutex());
305+ P8PLATFORM::CLockObject lock(m_conn.Mutex());
306 return m_conn.WaitForConnection();
307 }
308 std::string GetServerName ( void )
309diff --git a/src/client.cpp b/src/client.cpp
310index 94d2db9..3295914 100644
311--- a/src/client.cpp
312+++ b/src/client.cpp
313@@ -22,14 +22,14 @@
314 #include "client.h"
315 #include "kodi/xbmc_pvr_dll.h"
316 #include "kodi/libKODI_guilib.h"
317-#include "platform/util/util.h"
318+#include "p8-platform/util/util.h"
319 #include "Tvheadend.h"
320 #include "tvheadend/Settings.h"
321 #include "tvheadend/utilities/Logger.h"
322
323 using namespace std;
324 using namespace ADDON;
325-using namespace PLATFORM;
326+using namespace P8PLATFORM;
327 using namespace tvheadend;
328 using namespace tvheadend::utilities;
329
330diff --git a/src/client.h b/src/client.h
331index 3a5f950..a10659b 100644
332--- a/src/client.h
333+++ b/src/client.h
334@@ -20,8 +20,8 @@
335 *
336 */
337
338-#include "platform/os.h"
339-#include "platform/threads/mutex.h"
340+#include "p8-platform/os.h"
341+#include "p8-platform/threads/mutex.h"
342 #include "kodi/libXBMC_addon.h"
343 #include "kodi/libXBMC_pvr.h"
344 #include "kodi/libXBMC_codec.h"
345diff --git a/src/tvheadend/Subscription.cpp b/src/tvheadend/Subscription.cpp
346index 182ca7f..e18af1e 100644
347--- a/src/tvheadend/Subscription.cpp
348+++ b/src/tvheadend/Subscription.cpp
349@@ -23,7 +23,7 @@
350 #include "utilities/Logger.h"
351 #include "../Tvheadend.h"
352
353-using namespace PLATFORM;
354+using namespace P8PLATFORM;
355 using namespace tvheadend;
356 using namespace tvheadend::utilities;
357
358diff --git a/src/tvheadend/Subscription.h b/src/tvheadend/Subscription.h
359index b03bcce..363e5ef 100644
360--- a/src/tvheadend/Subscription.h
361+++ b/src/tvheadend/Subscription.h
362@@ -22,7 +22,7 @@
363 */
364
365 #include <string>
366-#include "platform/threads/mutex.h"
367+#include "p8-platform/threads/mutex.h"
368
369 extern "C"
370 {
371@@ -146,6 +146,6 @@ namespace tvheadend
372 std::string m_profile;
373 CHTSPConnection &m_conn;
374
375- mutable PLATFORM::CMutex m_mutex;
376+ mutable P8PLATFORM::CMutex m_mutex;
377 };
378 }
379diff --git a/src/tvheadend/utilities/AsyncState.cpp b/src/tvheadend/utilities/AsyncState.cpp
380index 0c30a93..1f4fdf3 100644
381--- a/src/tvheadend/utilities/AsyncState.cpp
382+++ b/src/tvheadend/utilities/AsyncState.cpp
383@@ -22,7 +22,7 @@
384 #include "AsyncState.h"
385
386 using namespace tvheadend::utilities;
387-using namespace PLATFORM;
388+using namespace P8PLATFORM;
389
390 struct Param {
391 eAsyncState state;
392@@ -37,7 +37,7 @@ AsyncState::AsyncState(int timeout)
393
394 eAsyncState AsyncState::GetState()
395 {
396- PLATFORM::CLockObject lock(m_mutex);
397+ P8PLATFORM::CLockObject lock(m_mutex);
398 return m_state;
399 }
400
401diff --git a/src/tvheadend/utilities/AsyncState.h b/src/tvheadend/utilities/AsyncState.h
402index 1d672da..0819cd8 100644
403--- a/src/tvheadend/utilities/AsyncState.h
404+++ b/src/tvheadend/utilities/AsyncState.h
405@@ -22,7 +22,7 @@
406 #ifndef ASYNCSTATE_H
407 #define ASYNCSTATE_H
408
409-#include "platform/threads/mutex.h"
410+#include "p8-platform/threads/mutex.h"
411
412 namespace tvheadend {
413 namespace utilities {
414@@ -75,8 +75,8 @@ namespace tvheadend {
415 static bool PredicateCallback ( void *param );
416
417 eAsyncState m_state;
418- PLATFORM::CMutex m_mutex;
419- PLATFORM::CCondition<bool> m_condition;
420+ P8PLATFORM::CMutex m_mutex;
421+ P8PLATFORM::CCondition<bool> m_condition;
422 int m_timeout;
423
424 };
425--
4262.0.1
427
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts_git.bb b/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts_git.bb
deleted file mode 100644
index 7cafebfa2..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-addon-pvr-hts_git.bb
+++ /dev/null
@@ -1,57 +0,0 @@
1SUMMARY = "Kodi Media Center PVR plugins"
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://src/client.cpp;md5=c8f6b73c5bc1048a3d6506700a7a91d2"
5
6DEPENDS = " \
7 zip-native \
8 p8platform \
9 kodi-platform \
10 "
11
12SRCREV_pvrhts = "7f75b70527922aef953123ff97ebaa22d9fb7cb4"
13
14SRCREV_FORMAT = "pvrhts"
15
16PV = "2.2.13+gitr${SRCPV}"
17SRC_URI = "git://github.com/kodi-pvr/pvr.hts.git;branch=Jarvis;destsuffix=pvr.hts;name=pvrhts \
18 file://0001-Update-to-p8-platform.patch \
19 "
20
21inherit cmake pkgconfig gettext
22
23S = "${WORKDIR}/pvr.hts"
24
25EXTRA_OECMAKE = " \
26 -DADDONS_TO_BUILD=pvr.hts \
27 -DADDON_SRC_PREFIX=${WORKDIR}/git \
28 -DCMAKE_BUILD_TYPE=Debug \
29 -DCMAKE_INSTALL_PREFIX=${datadir}/kodi/addons \
30 -DCMAKE_MODULE_PATH=${STAGING_DIR_HOST}${libdir}/kodi \
31 -DCMAKE_PREFIX_PATH=${STAGING_DIR_HOST}${prefix} \
32 -DPACKAGE_ZIP=1 \
33 "
34
35do_compile_prepend() {
36 sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' \
37 -e 's:-pipe:${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -pipe:g' \
38 ${B}/CMakeFiles/*/flags.make
39 sed -i -e 's:-pipe:${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -pipe:g'\
40 ${B}/CMakeFiles/*/link.txt
41}
42
43# Make zip package for manual installation
44do_install_append() {
45 install -d ${D}${datadir}/kodi/addons/packages/
46 ( cd ${D}${datadir}/kodi/addons
47 zip -r ${D}${datadir}/kodi/addons/packages/pvr.hts-${PV}.zip pvr.hts -x '*.debug*' )
48}
49
50# Doesn't get added automagically, dlopen()?
51RDEPENDS_${PN} = "libkodiplatform"
52
53INSANE_SKIP_${PN} = "dev-so"
54FILES_${PN} += "${datadir}/kodi"
55FILES_${PN}-dbg += "${datadir}/kodi/addons/*/.debug/"
56
57PNBLACKLIST[kodi-addon-pvr-hts] ?= "Depends on blacklisted kodi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/0001-fix-cross-compile-badness.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/0001-fix-cross-compile-badness.patch
deleted file mode 100644
index 27e9d217c..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/0001-fix-cross-compile-badness.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From 3136317f096ea7fda4fb907e775a01952c4aae3d Mon Sep 17 00:00:00 2001
2From: Stefan Saraev <stefan@saraev.ca>
3Date: Fri, 19 Feb 2016 10:33:00 +0100
4Subject: [PATCH] fix cross compile badness
5
6From https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/mediacenter/kodi-platform/patches/kodi-platform-01_crosscompile-badness.patch
7---
8 CMakeLists.txt | 2 +-
9 kodiplatform-config.cmake.in | 2 +-
10 2 files changed, 2 insertions(+), 2 deletions(-)
11
12diff --git a/CMakeLists.txt b/CMakeLists.txt
13index bf6b659..9abe773 100644
14--- a/CMakeLists.txt
15+++ b/CMakeLists.txt
16@@ -22,7 +22,7 @@ if(NOT WIN32)
17 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
18 endif()
19
20-set(kodiplatform_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR} "${CMAKE_INSTALL_PREFIX}/include/kodi")
21+set(kodiplatform_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR} "${CMAKE_INSTALL_PREFIX_TOOLCHAIN}/include/kodi")
22 IF(WIN32)
23 LIST(APPEND kodiplatform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/kodi/windows")
24 ENDIF(WIN32)
25diff --git a/kodiplatform-config.cmake.in b/kodiplatform-config.cmake.in
26index 3fc5273..60bdf1b 100644
27--- a/kodiplatform-config.cmake.in
28+++ b/kodiplatform-config.cmake.in
29@@ -10,7 +10,7 @@
30 #
31 # propagate these properties from one build system to the other
32 set (kodiplatform_VERSION "@kodiplatform_VERSION_MAJOR@.@kodiplatform_VERSION_MINOR@")
33-set (kodiplatform_INCLUDE_DIRS @kodiplatform_INCLUDE_DIRS@ @CMAKE_INSTALL_PREFIX@/include)
34+set (kodiplatform_INCLUDE_DIRS @kodiplatform_INCLUDE_DIRS@ @CMAKE_INSTALL_PREFIX_TOOLCHAIN@/include)
35 set (kodiplatform_LIBRARY_DIRS "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
36 set (kodiplatform_LINKER_FLAGS "@kodiplatform_LINKER_FLAGS@")
37 set (kodiplatform_CONFIG_VARS "@kodiplatform_CONFIG_VARS@")
38--
392.0.1
40
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/kodi-platform-02_no-multi-lib.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/kodi-platform-02_no-multi-lib.patch
deleted file mode 100644
index a13c53be1..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform/kodi-platform-02_no-multi-lib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1diff --git a/CMakeLists.txt b/CMakeLists.txt
2index 9abe773..ae433fc 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5@@ -9,7 +9,6 @@ find_package(kodi REQUIRED)
6 find_package(TinyXML REQUIRED)
7 find_package(Threads REQUIRED)
8 find_package(p8-platform REQUIRED)
9-include(UseMultiArch.cmake)
10 include(CheckAtomic.cmake)
11
12 set(kodiplatform_NAME kodiplatform)
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform_git.bb b/meta-multimedia/recipes-mediacenter/kodi/kodi-platform_git.bb
deleted file mode 100644
index 0b554ef6a..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-platform_git.bb
+++ /dev/null
@@ -1,39 +0,0 @@
1SUMMARY = "Platform support library used by libCEC and binary add-ons for Kodi"
2HOMEPAGE = "http://libcec.pulse-eight.com/"
3
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://src/util/XMLUtils.cpp;beginline=2;endline=18;md5=dae8e846500e70dd8ecee55f3f018c30"
6
7DEPENDS = "libtinyxml kodi"
8
9PV = "16.0.0"
10
11SRCREV = "c8188d82678fec6b784597db69a68e74ff4986b5"
12SRC_URI = "git://github.com/xbmc/kodi-platform.git \
13 file://0001-fix-cross-compile-badness.patch \
14 file://kodi-platform-02_no-multi-lib.patch \
15 "
16
17S = "${WORKDIR}/git"
18
19inherit cmake pkgconfig
20
21EXTRA_OECMAKE = " -DCMAKE_INSTALL_PREFIX_TOOLCHAIN=${STAGING_DIR_TARGET} \
22 -DCMAKE_INSTALL_LIBDIR=${libdir} \
23 -DCMAKE_INSTALL_LIBDIR_NOARCH=${libdir} \
24 -DKODI_INCLUDE_DIR=${STAGING_LIBDIR}/kodi \
25 -DKODI_INCLUDE_DIR=${STAGING_INCDIR}/kodi \
26 "
27
28do_compile_prepend() {
29 sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' \
30 -e 's:-pipe:${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -pipe:g' \
31 ${B}/CMakeFiles/kodiplatform.dir/flags.make
32 sed -i -e 's:-pipe:${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -pipe:g'\
33 ${B}/CMakeFiles/kodiplatform.dir/link.txt
34}
35
36RPROVIDES_${PN} += "libkodiplatform"
37FILES_${PN}-dev += "${libdir}/*platform"
38
39PNBLACKLIST[kodi-platform] ?= "Depends on blacklisted kodi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-startup.bb b/meta-multimedia/recipes-mediacenter/kodi/kodi-startup.bb
deleted file mode 100644
index 47e8f38e9..000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-startup.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1SUMMARY = "Systemd service for kodi startup"
2
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
5
6PV = "1.0"
7
8SRC_URI = "file://kodi.service"
9
10inherit systemd
11
12do_install() {
13 install -d ${D}/lib/systemd/system
14 install -m 0644 ${WORKDIR}/kodi.service ${D}/lib/systemd/system/
15}
16
17SYSTEMD_PACKAGES = "${PN}"
18SYSTEMD_SERVICE_${PN} = "kodi.service"
19
20RDEPENDS_${PN} += "xinit kodi"
21
22PNBLACKLIST[kodi-startup] ?= "Runtime depends on blacklisted kodi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
23
24PNBLACKLIST[kodi-startup] ?= "Runtime depends on blacklisted kodi-startup-dev - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb b/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb
deleted file mode 100644
index 8a142645c..000000000
--- a/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb
+++ /dev/null
@@ -1,57 +0,0 @@
1SUMMARY = "MKVToolNix -- Cross-platform tools for Matroska"
2HOMEPAGE = "http://www.bunkus.org/videotools/mkvtoolnix/source.html"
3
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6
7DEPENDS = "curl boost expat zlib libebml libmatroska libogg libvorbis bzip2 lzo file ruby-native"
8
9PV = "8.4.0+git${SRCPV}"
10SRCREV_mkvtoolnix = "7f63ea48ee474754a95838f37aba8f6118c94a65"
11SRCREV_libebml = "04b34b0dbded40e0cec93cafa6a4f4c8e90c3206"
12SRCREV_libmatroska = "db5d627b5bf48516c9e0b540254c0d36595760c3"
13SRCREV_FORMAT = "mkvtoolnix"
14SRC_URI = " \
15 git://github.com/mbunkus/mkvtoolnix.git;name=mkvtoolnix \
16 git://github.com/Matroska-Org/libebml.git;name=libebml;destsuffix=git/lib/libebml \
17 git://github.com/Matroska-Org/libmatroska.git;name=libmatroska;destsuffix=git/lib/libmatroska \
18 "
19
20S = "${WORKDIR}/git"
21
22inherit autotools-brokensep gettext
23
24# make sure rb files are used from sysroot, not from host
25# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/`
26# we need to replace it too (a bit longer version without importing re)
27RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }"
28export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}"
29
30PACKAGECONFIG ??= "flac ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
31PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac"
32PACKAGECONFIG[qt5] = "--enable-qt --with-moc=${STAGING_BINDIR_NATIVE}/qt5/moc --with-uic=${STAGING_BINDIR_NATIVE}/qt5/uic --with-rcc=${STAGING_BINDIR_NATIVE}/qt5/rcc,--disable-qt,qtbase"
33
34EXTRA_OECONF = " --with-boost-libdir=${STAGING_LIBDIR} \
35"
36
37FILES_${PN} += "${datadir}"
38
39# remove some hardcoded searchpaths
40do_configure_prepend() {
41 sed -i -e s:/usr/local/lib:${STAGING_LIBDIR}:g -e s:/usr/local/include:${STAGING_INCDIR}:g ${S}/ac/qt5.m4
42}
43
44# Yeah, no makefile
45do_compile() {
46 LC_ALL="en_US.UTF-8" ${S}/drake ${PARALLEL_MAKE}
47}
48
49do_install() {
50 LC_ALL="en_US.UTF-8" ${S}/drake install DESTDIR=${D}
51}
52
53# | In file included from src/common/utf8_codecvt_facet.cpp:22:0:
54# | src/common/../../lib/boost/utf8_codecvt_facet/utf8_codecvt_facet.cpp:174:5: error: 'int mtx::utf8_codecvt_facet::do_length' is not a static data member of 'struct mtx::utf8_codecvt_facet'
55# | BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &,
56# | ^
57PNBLACKLIST[mkvtoolnix] ?= "BROKEN: Failx to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch b/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch
deleted file mode 100644
index 49350fe18..000000000
--- a/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1In a cross compile environment adding paths like /usr are not correct.
2With this patch we make it so that its relative to sysroot if the compiler
3defines one.
4
5Upstream-Status: Pending
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7Index: a/src/Makefile.am
8===================================================================
9--- a/src/Makefile.am 2013-02-08 22:35:08.000000000 -0800
10+++ b/src/Makefile.am 2013-10-13 01:31:38.812869080 -0700
11@@ -33,5 +33,5 @@
12 video_encode.c video_encode.h \
13 subtitles.c subtitles.h
14
15-coriander_LDADD = -L/usr/X11R6/lib/ @PACKAGE_LIBS@ $(INTLLIBS) $(LIBTIFF_LIBS) $(FTPLIB_LIBS) $(SDLLIB_LIBS) $(LIBDC_LIBS) $(LIBRAW_LIBS) $(XV_LIBS) $(COR_LFS_LDFLAGS) -lgthread-2.0 $(FFMPEG_LIBS) $(X11_LIBS)
16+coriander_LDADD = -L=/usr/X11R6/lib/ @PACKAGE_LIBS@ $(INTLLIBS) $(LIBTIFF_LIBS) $(FTPLIB_LIBS) $(SDLLIB_LIBS) $(LIBDC_LIBS) $(LIBRAW_LIBS) $(XV_LIBS) $(COR_LFS_LDFLAGS) -lgthread-2.0 $(FFMPEG_LIBS) $(X11_LIBS)
17
diff --git a/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb b/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb
deleted file mode 100755
index 1ddd9aab6..000000000
--- a/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1SUMMARY = "Control and capture GUI for IIDC compliant cameras"
2HOMEPAGE = "http://damien.douxchamps.net/ieee1394/coriander/"
3SECTION = "applications"
4LICENSE = "GPL-3.0"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
6DEPENDS = "gtk+ libgnomeui libraw1394 libdc1394 libxv tiff"
7
8PNBLACKLIST[coriander] ?= "BROKEN: fails to use SDL probably because libsdl-config was removed, error: unknown type name 'SDL_Overlay' - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9
10SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/coriander-2/${PV}/${BP}.tar.gz \
11 file://cross-compile.patch \
12 "
13
14SRC_URI[md5sum] = "431d98fb013217681f97ade168201fb8"
15SRC_URI[sha256sum] = "5c7fd31cb58d398e2742352bf1ffbd2ca22e06686c6668ecfd437735c2b79123"
16
17inherit autotools gettext
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch
deleted file mode 100644
index 7da0e1452..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1gst-ffmpeg: aacdec: check channel count
2
3Prevent out of array accesses
4
5Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
6Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7(cherry picked from commit 96f452ac647dae33c53c242ef3266b65a9beafb6)
8
9Upstream-Status: Backport
10
11Signed-off-by: Yue Tao <yue.tao@windriver.com>
12---
13 libavcodec/aacdec.c | 5 +++++
14 1 files changed, 5 insertions(+), 0 deletions(-)
15
16diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
17index 239153a..6c17c33 100644
18--- a/gst-libs/ext/libav/libavcodec/aacdec.c
19+++ b/gst-libs/ext/libav/libavcodec/aacdec.c
20@@ -914,6 +914,11 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
21 }
22 }
23
24+ if (avctx->channels > MAX_CHANNELS) {
25+ av_log(avctx, AV_LOG_ERROR, "Too many channels\n");
26+ return AVERROR_INVALIDDATA;
27+ }
28+
29 AAC_INIT_VLC_STATIC( 0, 304);
30 AAC_INIT_VLC_STATIC( 1, 270);
31 AAC_INIT_VLC_STATIC( 2, 550);
32--
331.7.5.4
34
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch
deleted file mode 100644
index 10ce0f332..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From e0884eadf6a15e93142131b695f48776f9a0ac31 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Sat, 10 Nov 2012 17:14:04 +0100
4Subject: [PATCH] alac: fix nb_samples < order case
5
6Upstream-Status: Backport
7
8Commit e0884eadf6a15e93142131b695f48776f9a0ac31 release/1.0
9
10Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12(cherry picked from commit fd4f4923cce6a2cbf4f48640b4ac706e614a1594)
13---
14 libavcodec/alac.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/libavcodec/alac.c b/libavcodec/alac.c
18index 9cd1737..e8e844a 100644
19--- a/gst-libs/ext/libav/libavcodec/alac.c
20+++ b/gst-libs/ext/libav/libavcodec/alac.c
21@@ -278,7 +278,7 @@ static void predictor_decompress_fir_ada
22
23 /* read warm-up samples */
24 if (predictor_coef_num > 0)
25- for (i = 0; i < predictor_coef_num; i++) {
26+ for (i = 0; i < predictor_coef_num && i < output_size; i++) {
27 int32_t val;
28
29 val = buffer_out[i] + error_buffer[i+1];
30--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch
deleted file mode 100644
index 73980f426..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 6df0d3e2916c223dbe4262bf1b876dff1cb3f980 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Wed, 12 Dec 2012 12:28:45 +0100
4Subject: [PATCH] alsdec: check block length
5
6Upstream-Status: Backport
7
8Commit 6df0d3e2916c223dbe4262bf1b876dff1cb3f980 release/1.0
9
10Fix writing over the end
11
12Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
13Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14(cherry picked from commit 0ceca269b66ec12a23bf0907bd2c220513cdbf16)
15
16Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
17---
18 libavcodec/alsdec.c | 10 ++++++++--
19 1 file changed, 8 insertions(+), 2 deletions(-)
20
21diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c
22index 46dd0b4..1095b01 100644
23--- a/gst-libs/ext/libav/libavcodec/alsdec.c
24+++ b/gst-libs/ext/libav/libavcodec/alsdec.c
25@@ -552,12 +552,15 @@ static void get_block_sizes(ALSDecContext *ctx, unsigned int *div_blocks,
26
27 /** Read the block data for a constant block
28 */
29-static void read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd)
30+static int read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd)
31 {
32 ALSSpecificConfig *sconf = &ctx->sconf;
33 AVCodecContext *avctx = ctx->avctx;
34 GetBitContext *gb = &ctx->gb;
35
36+ if (bd->block_length <= 0)
37+ return -1;
38+
39 *bd->raw_samples = 0;
40 *bd->const_block = get_bits1(gb); // 1 = constant value, 0 = zero block (silence)
41 bd->js_blocks = get_bits1(gb);
42@@ -572,6 +575,8 @@ static void read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd)
43
44 // ensure constant block decoding by reusing this field
45 *bd->const_block = 1;
46+
47+ return 0;
48 }
49
50
51@@ -971,7 +976,8 @@ static int read_block(ALSDecContext *ctx, ALSBlockData *bd)
52 if (read_var_block_data(ctx, bd))
53 return -1;
54 } else {
55- read_const_block_data(ctx, bd);
56+ if (read_const_block_data(ctx, bd) < 0)
57+ return -1;
58 }
59
60 return 0;
61--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch
deleted file mode 100644
index 42cb5f40b..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 2502914c5f8eb77659d7c0868396862557a63245 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 9 Nov 2012 13:26:20 +0100
4Subject: [PATCH] atrac3dec: Check coding mode against channels.
5
6Upstream-Status: Backport
7
8Commit 2502914c5f8eb77659d7c0868396862557a63245 release/1.0
9
10Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12(cherry picked from commit 13451f5520ce6b0afde861b2285dda659f8d4fb4)
13
14Conflicts:
15
16 libavcodec/atrac3.c
17---
18 libavcodec/atrac3.c | 5 +++++
19 1 file changed, 5 insertions(+)
20
21diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
22index 7d076be..1da4c78 100644
23--- a/gst-libs/ext/libav/libavcodec/atrac3.c
24+++ b/gst-libs/ext/libav/libavcodec/atrac3.c
25@@ -955,6 +955,11 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx)
26 }
27 /* Check the extradata. */
28
29+ if (q->codingMode == JOINT_STEREO && avctx->channels < 2) {
30+ av_log(avctx, AV_LOG_ERROR, "Invalid coding mode\n");
31+ return AVERROR_INVALIDDATA;
32+ }
33+
34 if (q->atrac3version != 4) {
35 av_log(avctx,AV_LOG_ERROR,"Version %d != 4.\n",q->atrac3version);
36 return AVERROR_INVALIDDATA;
37--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch
deleted file mode 100644
index 31fa51a3e..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From a99aff4e4bbef8e64b51f267cd1769214e1b4e80 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 30 Aug 2013 23:40:47 +0200
4Subject: [PATCH] avcodec/dsputil: fix signedness in sizeof() comparissions
5
6Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7(cherry picked from commit 454a11a1c9c686c78aa97954306fb63453299760)
8
9Upstream-Status: Backport
10
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12---
13 libavcodec/dsputil.c | 4 ++--
14 1 files changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
17index 53dc2eb..6264832 100644
18--- a/gst-libs/ext/libav/libavcodec/dsputil.c
19+++ b/gst-libs/ext/libav/libavcodec/dsputil.c
20@@ -1912,7 +1912,7 @@ void ff_set_cmp(DSPContext* c, me_cmp_func *cmp, int type){
21
22 static void add_bytes_c(uint8_t *dst, uint8_t *src, int w){
23 long i;
24- for(i=0; i<=w-sizeof(long); i+=sizeof(long)){
25+ for(i=0; i<=w-(int)sizeof(long); i+=sizeof(long)){
26 long a = *(long*)(src+i);
27 long b = *(long*)(dst+i);
28 *(long*)(dst+i) = ((a&pb_7f) + (b&pb_7f)) ^ ((a^b)&pb_80);
29@@ -1937,7 +1937,7 @@ static void diff_bytes_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w){
30 }
31 }else
32 #endif
33- for(i=0; i<=w-sizeof(long); i+=sizeof(long)){
34+ for(i=0; i<=w-(int)sizeof(long); i+=sizeof(long)){
35 long a = *(long*)(src1+i);
36 long b = *(long*)(src2+i);
37 *(long*)(dst+i) = ((a|pb_80) - (b&pb_7f)) ^ ((a^b^pb_80)&pb_80);
38--
391.7.5.4
40
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch
deleted file mode 100644
index b0a3fb10c..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From 573d5fdedae72bf59d8c0b0766fdee171063d36f Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Sun, 16 Feb 2014 23:08:52 +0100
4Subject: [PATCH] avcodec/msrle: use av_image_get_linesize() to calculate the
5 linesize
6
7Upstream-Status: Backport
8
9Commit 573d5fdedae72bf59d8c0b0766fdee171063d36f release/0.9
10
11Fixes out of array access
12Fixes: 14a74a0a2dc67ede543f0e35d834fbbe-asan_heap-oob_49572c_556_cov_215466444_44_001_engine_room.mov
13Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
14Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
15(cherry picked from commit c919e1ca2ecfc47d796382973ba0e48b8f6f92a2)
16
17Conflicts:
18
19 libavcodec/msrle.c
20(cherry picked from commit bc1c8ec5e65098fd2ccd8456f667151dfc9cda42)
21
22Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
23---
24 libavcodec/msrle.c | 3 ++-
25 1 files changed, 2 insertions(+), 1 deletions(-)
26
27diff --git a/libavcodec/msrle.c b/libavcodec/msrle.c
28index 30159bb..c39ae7b 100644
29--- a/gst-libs/ext/libav/libavcodec/msrle.c
30+++ b/gst-libs/ext/libav/libavcodec/msrle.c
31@@ -35,6 +35,7 @@
32 #include "avcodec.h"
33 #include "dsputil.h"
34 #include "msrledec.h"
35+#include "libavutil/imgutils.h"
36
37 typedef struct MsrleContext {
38 AVCodecContext *avctx;
39@@ -107,7 +108,7 @@ static int msrle_decode_frame(AVCodecContext *avctx,
40
41 /* FIXME how to correctly detect RLE ??? */
42 if (avctx->height * istride == avpkt->size) { /* assume uncompressed */
43- int linesize = avctx->width * avctx->bits_per_coded_sample / 8;
44+ int linesize = av_image_get_linesize(avctx->pix_fmt, avctx->width, 0);
45 uint8_t *ptr = s->frame.data[0];
46 uint8_t *buf = avpkt->data + (avctx->height-1)*istride;
47 int i, j;
48--
491.7.5.4
50
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch
deleted file mode 100644
index 5ff65834e..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1gst-ffmpeg: avcodec/parser: reset indexes on realloc failure
2
3Fixes Ticket2982
4
5Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
6(cherry picked from commit f31011e9abfb2ae75bb32bc44e2c34194c8dc40a)
7
8Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
9
10Upstream-Status: Backport
11
12Signed-off-by: Yue Tao <yue.tao@windriver.com>
13
14---
15 libavcodec/parser.c | 10 +++++++---
16 1 files changed, 7 insertions(+), 3 deletions(-)
17
18diff --git a/libavcodec/parser.c b/libavcodec/parser.c
19index 2c6de6e..66eca06 100644
20--- a/gst-libs/ext/libav/libavcodec/parser.c
21+++ b/gst-libs/ext/libav/libavcodec/parser.c
22@@ -241,8 +241,10 @@ int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_s
23 if(next == END_NOT_FOUND){
24 void* new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, (*buf_size) + pc->index + FF_INPUT_BUFFER_PADDING_SIZE);
25
26- if(!new_buffer)
27+ if(!new_buffer) {
28+ pc->index = 0;
29 return AVERROR(ENOMEM);
30+ }
31 pc->buffer = new_buffer;
32 memcpy(&pc->buffer[pc->index], *buf, *buf_size);
33 pc->index += *buf_size;
34@@ -255,9 +257,11 @@ int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_s
35 /* append to buffer */
36 if(pc->index){
37 void* new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, next + pc->index + FF_INPUT_BUFFER_PADDING_SIZE);
38-
39- if(!new_buffer)
40+ if(!new_buffer) {
41+ pc->overread_index =
42+ pc->index = 0;
43 return AVERROR(ENOMEM);
44+ }
45 pc->buffer = new_buffer;
46 if (next > -FF_INPUT_BUFFER_PADDING_SIZE)
47 memcpy(&pc->buffer[pc->index], *buf,
48--
491.7.5.4
50
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch
deleted file mode 100644
index 7f6eb4888..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch
+++ /dev/null
@@ -1,81 +0,0 @@
1gst-ffmpeg: avcodec/rpza: Perform pointer advance and checks before
2 using the pointers
3
4Fixes out of array accesses
5Fixes Ticket2850
6
7Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
8(cherry picked from commit 3819db745da2ac7fb3faacb116788c32f4753f34)
9
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11
12Upstream-Status: Backport
13
14Singed-off-by: Yue Tao <yue.tao@windriver.com>
15
16---
17 libavcodec/rpza.c | 8 ++++----
18 1 files changed, 4 insertions(+), 4 deletions(-)
19
20diff --git a/libavcodec/rpza.c b/libavcodec/rpza.c
21index 635b406..f291a95 100644
22--- a/gst-libs/ext/libav/libavcodec/rpza.c
23+++ b/gst-libs/ext/libav/libavcodec/rpza.c
24@@ -83,7 +83,7 @@ static void rpza_decode_stream(RpzaContext *s)
25 unsigned short *pixels = (unsigned short *)s->frame.data[0];
26
27 int row_ptr = 0;
28- int pixel_ptr = 0;
29+ int pixel_ptr = -4;
30 int block_ptr;
31 int pixel_x, pixel_y;
32 int total_blocks;
33@@ -139,6 +139,7 @@ static void rpza_decode_stream(RpzaContext *s)
34 colorA = AV_RB16 (&s->buf[stream_ptr]);
35 stream_ptr += 2;
36 while (n_blocks--) {
37+ ADVANCE_BLOCK()
38 block_ptr = row_ptr + pixel_ptr;
39 for (pixel_y = 0; pixel_y < 4; pixel_y++) {
40 for (pixel_x = 0; pixel_x < 4; pixel_x++){
41@@ -147,7 +148,6 @@ static void rpza_decode_stream(RpzaContext *s)
42 }
43 block_ptr += row_inc;
44 }
45- ADVANCE_BLOCK();
46 }
47 break;
48
49@@ -184,6 +184,7 @@ static void rpza_decode_stream(RpzaContext *s)
50 color4[2] |= ((21 * ta + 11 * tb) >> 5);
51
52 while (n_blocks--) {
53+ ADVANCE_BLOCK();
54 block_ptr = row_ptr + pixel_ptr;
55 for (pixel_y = 0; pixel_y < 4; pixel_y++) {
56 index = s->buf[stream_ptr++];
57@@ -194,12 +195,12 @@ static void rpza_decode_stream(RpzaContext *s)
58 }
59 block_ptr += row_inc;
60 }
61- ADVANCE_BLOCK();
62 }
63 break;
64
65 /* Fill block with 16 colors */
66 case 0x00:
67+ ADVANCE_BLOCK();
68 block_ptr = row_ptr + pixel_ptr;
69 for (pixel_y = 0; pixel_y < 4; pixel_y++) {
70 for (pixel_x = 0; pixel_x < 4; pixel_x++){
71@@ -213,7 +214,6 @@ static void rpza_decode_stream(RpzaContext *s)
72 }
73 block_ptr += row_inc;
74 }
75- ADVANCE_BLOCK();
76 break;
77
78 /* Unknown opcode */
79--
801.7.5.4
81
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch
deleted file mode 100644
index 3ca6fc4dc..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From c17a0ad1df15a94d0b1239adc2afb593bdf0a153 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 22:50:45 +0200
4Subject: [PATCH 1/2] avcodec/smc: fix off by 1 error
5
6Upstream-Status: Backport
7
8Fixes out of array access
9Fixes: asan_heap-oob_1685bf0_5_asan_heap-oob_1f35116_430_smc.mov
10
11Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
12Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13---
14 libavcodec/smc.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/gst-libs/ext/libav/libavcodec/smc.c b/gst-libs/ext/libav/libavcodec/smc.c
18index 3cd5e53..dec9f71 100644
19--- a/gst-libs/ext/libav/libavcodec/smc.c
20+++ b/gst-libs/ext/libav/libavcodec/smc.c
21@@ -69,7 +69,7 @@ typedef struct SmcContext {
22 row_ptr += stride * 4; \
23 } \
24 total_blocks--; \
25- if (total_blocks < 0) \
26+ if (total_blocks < 0 + !!n_blocks) \
27 { \
28 av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went negative (this should not happen)\n"); \
29 return; \
30--
312.1.0
32
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch
deleted file mode 100644
index 68bb66e4e..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch
+++ /dev/null
@@ -1,69 +0,0 @@
1From 12770701856a05b6b3cd706f708f8e9a4e8a1336 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Thu, 13 Feb 2014 13:59:51 +0100
4Subject: [PATCH] avformat/mpegtsenc: Check data array size in
5 mpegts_write_pmt()
6
7Upstream-Status: Backport
8
9COmmit 12770701856a05b6b3cd706f708f8e9a4e8a1336 release/0.11
10
11Prevents out of array writes
12
13Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14(cherry picked from commit 842b6c14bcfc1c5da1a2d288fd65386eb8c158ad)
15
16Conflicts:
17
18 libavformat/mpegtsenc.c
19(cherry picked from commit e87de3f50b765134588d0b048c32ed4b8acc16fb)
20
21Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
22---
23 libavformat/mpegtsenc.c | 9 +++++++--
24 1 files changed, 7 insertions(+), 2 deletions(-)
25
26diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
27index 793e205..a12d19f 100644
28--- a/gst-libs/ext/libav/libavformat/mpegtsenc.c
29+++ b/gst-libs/ext/libav/libavformat/mpegtsenc.c
30@@ -240,7 +240,7 @@ static void mpegts_write_pat(AVFormatContext *s)
31 data, q - data);
32 }
33
34-static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
35+static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
36 {
37 // MpegTSWrite *ts = s->priv_data;
38 uint8_t data[1012], *q, *desc_length_ptr, *program_info_length_ptr;
39@@ -293,6 +293,10 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
40 stream_type = STREAM_TYPE_PRIVATE_DATA;
41 break;
42 }
43+
44+ if (q - data > sizeof(data) - 32)
45+ return AVERROR(EINVAL);
46+
47 *q++ = stream_type;
48 put16(&q, 0xe000 | ts_st->pid);
49 desc_length_ptr = q;
50@@ -324,7 +328,7 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
51 len_ptr = q++;
52 *len_ptr = 0;
53
54- for (p = lang->value; next && *len_ptr < 255 / 4 * 4; p = next + 1) {
55+ for (p = lang->value; next && *len_ptr < 255 / 4 * 4 && q - data < sizeof(data) - 4; p = next + 1) {
56 next = strchr(p, ',');
57 if (strlen(p) != 3 && (!next || next != p + 3))
58 continue; /* not a 3-letter code */
59@@ -386,6 +390,7 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
60 }
61 mpegts_write_section1(&service->pmt, PMT_TID, service->sid, 0, 0, 0,
62 data, q - data);
63+ return 0;
64 }
65
66 /* NOTE: str == NULL is accepted for an empty string */
67--
681.7.5.4
69
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch
deleted file mode 100644
index f45e3fd59..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 63ac64864c6e0e84355aa3caa5b92208997a9a8d Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Sat, 17 Nov 2012 16:26:55 +0100
4Subject: [PATCH] eamad: fix out of array accesses
5
6Upstream-Status: Backport
7
8Commit 63ac64864c6e0e84355aa3caa5b92208997a9a8d release/1.1
9
10Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12---
13 libavcodec/eamad.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/libavcodec/eamad.c b/libavcodec/eamad.c
17index 2805195..e38650e 100644
18--- a/gst-libs/ext/libav/libavcodec/eamad.c
19+++ b/gst-libs/ext/libav/libavcodec/eamad.c
20@@ -237,7 +237,7 @@ static int decode_frame(AVCodecContext *avctx,
21 int chunk_type;
22 int inter;
23
24- if (buf_size < 17) {
25+ if (buf_size < 26) {
26 av_log(avctx, AV_LOG_ERROR, "Input buffer too small\n");
27 *data_size = 0;
28 return -1;
29--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch
deleted file mode 100644
index e0e4239c2..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1gst-ffmpeg: error concealment: initialize block index.
2
3Fixes CVE-2011-3941 (out of bounds write)
4
5Upstream-Status: Backport
6
7Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
8Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
9---
10 libavcodec/error_resilience.c | 3 +++
11 1 files changed, 3 insertions(+), 0 deletions(-)
12
13diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
14index 8bb5d0c..d55c000 100644
15--- a/gst-libs/ext/libav/libavcodec/error_resilience.c
16+++ b/gst-libs/ext/libav/libavcodec/error_resilience.c
17@@ -45,6 +45,9 @@ static void decode_mb(MpegEncContext *s, int ref){
18 s->dest[1] = s->current_picture.data[1] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
19 s->dest[2] = s->current_picture.data[2] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
20
21+ ff_init_block_index(s);
22+ ff_update_block_index(s);
23+
24 if(CONFIG_H264_DECODER && s->codec_id == CODEC_ID_H264){
25 H264Context *h= (void*)s;
26 h->mb_xy= s->mb_x + s->mb_y*s->mb_stride;
27--
281.7.5.4
29
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch
deleted file mode 100644
index 8eef6e99c..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1gst-ffmpeg: error_concealment: Check that the picture is not in a half
2
3Fixes state becoming inconsistent
4Fixes a null pointer dereference
5
6Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
8(cherry picked from commit 23318a57358358e7a4dc551e830e4503f0638cfe)
9
10Upstream-Status: Backport
11
12Signed-off-by: Yue Tao <yue.tao@windriver.com>
13
14---
15 libavcodec/error_resilience.c | 6 ++++++
16 1 files changed, 6 insertions(+), 0 deletions(-)
17
18diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
19index 01f7424..2b6bc42 100644
20--- a/gst-libs/ext/libav/libavcodec/error_resilience.c
21+++ b/gst-libs/ext/libav/libavcodec/error_resilience.c
22@@ -793,6 +793,12 @@ void ff_er_frame_end(MpegEncContext *s){
23 s->picture_structure != PICT_FRAME || // we dont support ER of field pictures yet, though it should not crash if enabled
24 s->error_count==3*s->mb_width*(s->avctx->skip_top + s->avctx->skip_bottom)) return;
25
26+ if ( s->picture_structure == PICT_FRAME
27+ && s->current_picture.linesize[0] != s->current_picture_ptr->linesize[0]) {
28+ av_log(s->avctx, AV_LOG_ERROR, "Error concealment not possible, frame not fully initialized\n");
29+ return;
30+ }
31+
32 if(s->current_picture.motion_val[0] == NULL){
33 av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n");
34
35--
361.7.5.4
37
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch
deleted file mode 100644
index 80325db4d..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1gst-ffmpeg: ffserver: set oformat
2
3Fix Ticket1986
4
5Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
6(cherry picked from commit cbe43e62c9ac7d4aefdc13476f6f691bd626525f)
7
8Upstream-Status: Backport
9
10---
11 ffserver.c | 4 +++-
12 1 files changed, 3 insertions(+), 1 deletions(-)
13
14diff --git a/ffserver.c b/ffserver.c
15index 4044d0f..8740140 100644
16--- a/gst-libs/ext/libav/ffserver.c
17+++ b/gst-libs/ext/libav/ffserver.c
18@@ -2937,12 +2937,14 @@ static int prepare_sdp_description(FFStream *stream, uint8_t **pbuffer,
19 {
20 AVFormatContext *avc;
21 AVStream *avs = NULL;
22+ AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
23 int i;
24
25 avc = avformat_alloc_context();
26- if (avc == NULL) {
27+ if (avc == NULL || !rtp_format) {
28 return -1;
29 }
30+ avc->oformat = rtp_format;
31 av_dict_set(&avc->metadata, "title",
32 stream->title[0] ? stream->title : "No Title", 0);
33 avc->nb_streams = stream->nb_streams;
34--
351.7.5.4
36
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch
deleted file mode 100644
index d4f55b269..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From d6c184880ee2e09fd68c0ae217173832cee5afc1 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Sun, 18 Nov 2012 16:29:04 +0100
4Subject: [PATCH] h264: correct ref count check and limit, fix out of array
5 accesses.
6
7Upstream-Status: Backport
8
9Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11---
12 libavcodec/h264.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/libavcodec/h264.c b/libavcodec/h264.c
16index da43f1e..32cede5 100644
17--- a/gst-libs/ext/libav/libavcodec/h264.c
18+++ b/gst-libs/ext/libav/libavcodec/h264.c
19@@ -2870,6 +2870,9 @@ static int decode_slice_header(H264Conte
20 h->ref_count[0]= get_ue_golomb(&s->gb) + 1;
21 if(h->slice_type_nos==AV_PICTURE_TYPE_B)
22 h->ref_count[1]= get_ue_golomb(&s->gb) + 1;
23+ else
24+ // full range is spec-ok in this case, even for frames
25+ h->ref_count[1] = 1;
26
27 if(h->ref_count[0]-1 > 32-1 || h->ref_count[1]-1 > 32-1){
28 av_log(h->s.avctx, AV_LOG_ERROR, "reference overflow\n");
29--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch
deleted file mode 100644
index 05a9de333..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch
+++ /dev/null
@@ -1,145 +0,0 @@
1gst-ffmpeg: h264: set parameters from SPS whenever it changes
2
3Fixes a crash in the fuzzed sample sample_varPAR.avi_s26638 with
4alternating bit depths.
5
6Upstream-Status: Backport
7
8Signed-off-by: Yue Tao <yue.tao@windriver.com>
9
10diff --git a/gst-libs/ext/libav/libavcodec/h264.c.old b/gst-libs/ext/libav/libavcodec/h264.c
11index 3621f41..718906a 100644
12--- a/gst-libs/ext/libav/libavcodec/h264.c.old
13+++ b/gst-libs/ext/libav/libavcodec/h264.c
14@@ -2491,6 +2491,34 @@ int ff_h264_get_profile(SPS *sps)
15 return profile;
16 }
17
18+static int h264_set_parameter_from_sps(H264Context *h)
19+{
20+ MpegEncContext *s = &h->s;
21+ AVCodecContext * avctx= s->avctx;
22+
23+ if (s->flags& CODEC_FLAG_LOW_DELAY ||
24+ (h->sps.bitstream_restriction_flag && !h->sps.num_reorder_frames))
25+ s->low_delay=1;
26+
27+ if(avctx->has_b_frames < 2)
28+ avctx->has_b_frames= !s->low_delay;
29+
30+ if (avctx->bits_per_raw_sample != h->sps.bit_depth_luma) {
31+ if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10) {
32+ avctx->bits_per_raw_sample = h->sps.bit_depth_luma;
33+ h->pixel_shift = h->sps.bit_depth_luma > 8;
34+
35+ ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma);
36+ ff_h264_pred_init(&h->hpc, s->codec_id, h->sps.bit_depth_luma);
37+ dsputil_init(&s->dsp, s->avctx);
38+ } else {
39+ av_log(avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d\n", h->sps.bit_depth_luma);
40+ return -1;
41+ }
42+ }
43+ return 0;
44+}
45+
46 /**
47 * decodes a slice header.
48 * This will also call MPV_common_init() and frame_start() as needed.
49@@ -2505,7 +2533,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
50 MpegEncContext * const s0 = &h0->s;
51 unsigned int first_mb_in_slice;
52 unsigned int pps_id;
53- int num_ref_idx_active_override_flag;
54+ int num_ref_idx_active_override_flag, ret;
55 unsigned int slice_type, tmp, i, j;
56 int default_ref_list_done = 0;
57 int last_pic_structure;
58@@ -2569,7 +2597,17 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
59 av_log(h->s.avctx, AV_LOG_ERROR, "non-existing SPS %u referenced\n", h->pps.sps_id);
60 return -1;
61 }
62- h->sps = *h0->sps_buffers[h->pps.sps_id];
63+
64+ if (h->pps.sps_id != h->current_sps_id ||
65+ h0->sps_buffers[h->pps.sps_id]->new) {
66+ h0->sps_buffers[h->pps.sps_id]->new = 0;
67+
68+ h->current_sps_id = h->pps.sps_id;
69+ h->sps = *h0->sps_buffers[h->pps.sps_id];
70+
71+ if ((ret = h264_set_parameter_from_sps(h)) < 0)
72+ return ret;
73+ }
74
75 s->avctx->profile = ff_h264_get_profile(&h->sps);
76 s->avctx->level = h->sps.level_idc;
77@@ -3811,26 +3811,8 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
78 case NAL_SPS:
79 init_get_bits(&s->gb, ptr, bit_length);
80 ff_h264_decode_seq_parameter_set(h);
81-
82- if (s->flags& CODEC_FLAG_LOW_DELAY ||
83- (h->sps.bitstream_restriction_flag && !h->sps.num_reorder_frames))
84- s->low_delay=1;
85-
86- if(avctx->has_b_frames < 2)
87- avctx->has_b_frames= !s->low_delay;
88-
89- if (avctx->bits_per_raw_sample != h->sps.bit_depth_luma) {
90- if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10) {
91- avctx->bits_per_raw_sample = h->sps.bit_depth_luma;
92- h->pixel_shift = h->sps.bit_depth_luma > 8;
93-
94- ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma);
95- ff_h264_pred_init(&h->hpc, s->codec_id, h->sps.bit_depth_luma);
96- dsputil_init(&s->dsp, s->avctx);
97- } else {
98- av_log(avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d\n", h->sps.bit_depth_luma);
99- return -1;
100- }
101+ if (h264_set_parameter_from_sps(h) < 0) {
102+ return -1;
103 }
104 break;
105 case NAL_PPS:
106diff --git a/gst-libs/ext/libav/libavcodec/h264.h.old b/gst-libs/ext/libav/libavcodec/h264.h
107index e3cc815..b77ad98 100644
108--- a/gst-libs/ext/libav/libavcodec/h264.h.old
109+++ b/gst-libs/ext/libav/libavcodec/h264.h
110@@ -202,6 +202,7 @@ typedef struct SPS{
111 int bit_depth_chroma; ///< bit_depth_chroma_minus8 + 8
112 int residual_color_transform_flag; ///< residual_colour_transform_flag
113 int constraint_set_flags; ///< constraint_set[0-3]_flag
114+ int new; ///< flag to keep track if the decoder context needs re-init due to changed SPS
115 }SPS;
116
117 /**
118@@ -333,6 +334,7 @@ typedef struct H264Context{
119 int emu_edge_width;
120 int emu_edge_height;
121
122+ unsigned current_sps_id; ///< id of the current SPS
123 SPS sps; ///< current sps
124
125 /**
126diff --git a/gst-libs/ext/libav/libavcodec/h264_ps.c.old b/gst-libs/ext/libav/libavcodec/h264_ps.c
127index 7491807..0929098 100644
128--- a/gst-libs/ext/libav/libavcodec/h264_ps.c.old
129+++ b/gst-libs/ext/libav/libavcodec/h264_ps.c
130@@ -438,10 +438,13 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
131 sps->timing_info_present_flag ? sps->time_scale : 0
132 );
133 }
134+ sps->new = 1;
135
136 av_free(h->sps_buffers[sps_id]);
137- h->sps_buffers[sps_id]= sps;
138- h->sps = *sps;
139+ h->sps_buffers[sps_id] = sps;
140+ h->sps = *sps;
141+ h->current_sps_id = sps_id;
142+
143 return 0;
144 fail:
145 av_free(sps);
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch
deleted file mode 100644
index 5d45c1a96..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1gst-ffmpeg: h264: skip error concealment when SPS and slices are
2 mismatching
3
4Fixes out of array accesses
5
6Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
8(cherry picked from commit 695af8eed642ff0104834495652d1ee784a4c14d)
9
10Upstream-Status: Backport
11
12Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13Signed-off-by: Yue Tao <yue.tao@windriver.com>
14---
15 libavcodec/h264.c | 2 +-
16 1 files changed, 1 insertions(+), 1 deletions(-)
17
18diff --git a/libavcodec/h264.c b/libavcodec/h264.c
19index da144db..0aab4e7 100644
20--- a/gst-libs/ext/libav/libavcodec/h264.c
21+++ b/gst-libs/ext/libav/libavcodec/h264.c
22@@ -2351,7 +2351,7 @@ static int field_end(H264Context *h, int in_setup)
23 * past end by one (callers fault) and resync_mb_y != 0
24 * causes problems for the first MB line, too.
25 */
26- if (!FIELD_PICTURE)
27+ if (!FIELD_PICTURE && h->current_slice && !h->sps.new)
28 ff_er_frame_end(s);
29
30 ff_MPV_frame_end(s);
31--
321.7.5.4
33
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch
deleted file mode 100644
index 1e62b5036..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1gst-ffmpeg: h264_sei: Fix infinite loop.
2
3Fixsot yet fixed parts of CVE-2011-3946.
4
5Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
6Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7
8Upstream-Status: Backport
9
10Signed-off-by: Yue Tao <yue.tao@windriver.com>
11
12---
13 libavcodec/h264_sei.c | 4 ++++
14 1 files changed, 4 insertions(+), 0 deletions(-)
15
16
17diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c
18index 374e53d..80d70e5 100644
19--- a/gst-libs/ext/libav/libavcodec/h264_sei.c
20+++ b/gst-libs/ext/libav/libavcodec/h264_sei.c
21@@ -169,11 +169,15 @@ int ff_h264_decode_sei(H264Context *h){
22
23 type=0;
24 do{
25+ if (get_bits_left(&s->gb) < 8)
26+ return -1;
27 type+= show_bits(&s->gb, 8);
28 }while(get_bits(&s->gb, 8) == 255);
29
30 size=0;
31 do{
32+ if (get_bits_left(&s->gb) < 8)
33+ return -1;
34 size+= show_bits(&s->gb, 8);
35 }while(get_bits(&s->gb, 8) == 255);
36
37--
381.7.5.4
39
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch
deleted file mode 100644
index e859e443b..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch
+++ /dev/null
@@ -1,87 +0,0 @@
1From b666debffec1fcbb19ef377635a53b9a58bca8a4 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Tue, 29 Jan 2013 18:29:41 +0100
4Subject: [PATCH] huffyuvdec: Check init_vlc() return codes.
5
6Upstream-Status: Backport
7
8Commit b666debffec1fcbb19ef377635a53b9a58bca8a4 release/1.0
9
10Prevents out of array writes
11
12Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
13Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14(cherry picked from commit f67a0d115254461649470452058fa3c28c0df294)
15
16Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
17---
18 libavcodec/huffyuv.c | 14 ++++++++++----
19 1 file changed, 10 insertions(+), 4 deletions(-)
20
21diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c
22index 58da789..993e524 100644
23--- a/gst-libs/ext/libav/libavcodec/huffyuv.c
24+++ b/gst-libs/ext/libav/libavcodec/huffyuv.c
25@@ -33,6 +33,7 @@
26 #include "put_bits.h"
27 #include "dsputil.h"
28 #include "thread.h"
29+#include "libavutil/avassert.h"
30
31 #define VLC_BITS 11
32
33@@ -287,6 +287,7 @@ static void generate_joint_tables(HYuvCo
34 int len1 = s->len[p][u];
35 if (len1 > limit || !len1)
36 continue;
37+ av_assert0(i < (1 << VLC_BITS));
38 len[i] = len0 + len1;
39 bits[i] = (s->bits[0][y] << len1) + s->bits[p][u];
40 symbols[i] = (y<<8) + u;
41@@ -320,6 +321,7 @@ static void generate_joint_tables(HYuvCo
42 int len2 = s->len[2][r&255];
43 if (len2 > limit1 || !len2)
44 continue;
45+ av_assert0(i < (1 << VLC_BITS));
46 len[i] = len0 + len1 + len2;
47 bits[i] = (code << len2) + s->bits[2][r&255];
48 if(s->decorrelate){
49@@ -343,6 +345,7 @@ static void generate_joint_tables(HYuvCo
50 static int read_huffman_tables(HYuvContext *s, const uint8_t *src, int length){
51 GetBitContext gb;
52 int i;
53+ int ret;
54
55 init_get_bits(&gb, src, length*8);
56
57@@ -353,7 +356,9 @@ static int read_huffman_tables(HYuvConte
58 return -1;
59 }
60 free_vlc(&s->vlc[i]);
61- init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, s->bits[i], 4, 4, 0);
62+ if ((ret = init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1,
63+ s->bits[i], 4, 4, 0)) < 0)
64+ return ret;
65 }
66
67 generate_joint_tables(s);
68@@ -365,6 +370,7 @@ static int read_old_huffman_tables(HYuvC
69 #if 1
70 GetBitContext gb;
71 int i;
72+ int ret;
73
74 init_get_bits(&gb, classic_shift_luma, sizeof(classic_shift_luma)*8);
75 if(read_len_table(s->len[0], &gb)<0)
76@@ -385,7 +391,9 @@ static int read_old_huffman_tables(HYuvC
77
78 for(i=0; i<3; i++){
79 free_vlc(&s->vlc[i]);
80- init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, s->bits[i], 4, 4, 0);
81+ if ((ret = init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1,
82+ s->bits[i], 4, 4, 0)) < 0)
83+ return ret;
84 }
85
86 generate_joint_tables(s);
87--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch
deleted file mode 100644
index 94bf4b6fb..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From db0f7f7394e1f994ed38db043f78ed0f10bde0da Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Tue, 29 Jan 2013 19:22:33 +0100
4Subject: [PATCH] huffyuvdec: Skip len==0 cases
5
6Upstream-Status: Backport
7
8Commit db0f7f7394e1f994ed38db043f78ed0f10bde0da release/1.0
9
10Fixes vlc decoding for hypothetical files that would contain such cases.
11
12Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13(cherry picked from commit 0dfc01c2bbf4b71bb56201bc4a393321e15d1b31)
14
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16---
17 libavcodec/huffyuv.c | 10 +++++-----
18 1 file changed, 5 insertions(+), 5 deletions(-)
19
20diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c
21index 993e524..72ed351 100644
22--- a/gst-libs/ext/libav/libavcodec/huffyuv.c
23+++ b/gst-libs/ext/libav/libavcodec/huffyuv.c
24@@ -281,11 +281,11 @@ static void generate_joint_tables(HYuvCo
25 for(i=y=0; y<256; y++){
26 int len0 = s->len[0][y];
27 int limit = VLC_BITS - len0;
28- if(limit <= 0)
29+ if(limit <= 0 || !len0)
30 continue;
31 for(u=0; u<256; u++){
32 int len1 = s->len[p][u];
33- if(len1 > limit)
34+ if (len1 > limit || !len1)
35 continue;
36 len[i] = len0 + len1;
37 bits[i] = (s->bits[0][y] << len1) + s->bits[p][u];
38@@ -308,17 +308,17 @@ static void generate_joint_tables(HYuvCo
39 for(i=0, g=-16; g<16; g++){
40 int len0 = s->len[p0][g&255];
41 int limit0 = VLC_BITS - len0;
42- if(limit0 < 2)
43+ if (limit0 < 2 || !len0)
44 continue;
45 for(b=-16; b<16; b++){
46 int len1 = s->len[p1][b&255];
47 int limit1 = limit0 - len1;
48- if(limit1 < 1)
49+ if (limit1 < 1 || !len1)
50 continue;
51 code = (s->bits[p0][g&255] << len1) + s->bits[p1][b&255];
52 for(r=-16; r<16; r++){
53 int len2 = s->len[2][r&255];
54- if(len2 > limit1)
55+ if (len2 > limit1 || !len2)
56 continue;
57 len[i] = len0 + len1 + len2;
58 bits[i] = (code << len2) + s->bits[2][r&255];
59--
601.8.5.2.233.g932f7e4
61
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch
deleted file mode 100644
index ea4aa222b..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1gst-ffmpeg: lavf: compute probe buffer size more reliably.
2
3The previous code computes the offset by reversing the growth
4of the allocated buffer size: it is complex and did lead to
5inconsistencies when the size limit is reached.
6
7Fix trac ticket #1991.
8(cherry picked from commit 03847eb8259291b4ff1bd840bd779d0699d71f96)
9
10Conflicts:
11 libavformat/utils.c
12
13Upstream-Status: Backport
14
15Signed-off-by: Yue Tao <yue.tao@windriver.com>
16
17---
18 libavformat/utils.c | 4 ++--
19 1 files changed, 2 insertions(+), 2 deletions(-)
20
21diff --git a/libavformat/utils.c b/libavformat/utils.c
22index 7940037..be73c4a 100644
23--- a/gst-libs/ext/libav/libavformat/utils.c
24+++ b/gst-libs/ext/libav/libavformat/utils.c
25@@ -459,7 +459,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
26 {
27 AVProbeData pd = { filename ? filename : "", NULL, -offset };
28 unsigned char *buf = NULL;
29- int ret = 0, probe_size;
30+ int ret = 0, probe_size, buf_offset = 0;
31
32 if (!max_probe_size) {
33 max_probe_size = PROBE_BUF_MAX;
34@@ -499,7 +499,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
35 score = 0;
36 ret = 0; /* error was end of file, nothing read */
37 }
38- pd.buf_size += ret;
39+ pd.buf_size = buf_offset += ret;
40 pd.buf = &buf[offset];
41
42 memset(pd.buf + pd.buf_size, 0, AVPROBE_PADDING_SIZE);
43--
441.7.5.4
45
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch
deleted file mode 100644
index d90bafac9..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 1f41cffe1e3e79620f587545bdfcbd7e6e68ed29 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Sun, 11 Nov 2012 00:01:24 +0100
4Subject: [PATCH] mjpegdec: check SE.
5
6Upstream-Status: Backport
7
8Commit 1f41cffe1e3e79620f587545bdfcbd7e6e68ed29 release/1.1
9
10Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12---
13 libavcodec/mjpegdec.c | 5 +++++
14 1 file changed, 5 insertions(+)
15
16diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
17index 6b5266d..0a71a6f 100644
18--- a/gst-libs/ext/libav/libavcodec/mjpegdec.c
19+++ b/gst-libs/ext/libav/libavcodec/mjpegdec.c
20@@ -905,6 +905,11 @@ static int mjpeg_decode_scan_progressive
21 int16_t *quant_matrix = s->quant_matrixes[ s->quant_index[c] ];
22 GetBitContext mb_bitmask_gb;
23
24+ if (se > 63) {
25+ av_log(s->avctx, AV_LOG_ERROR, "SE %d is too large\n", se);
26+ return AVERROR_INVALIDDATA;
27+ }
28+
29 if (mb_bitmask) {
30 init_get_bits(&mb_bitmask_gb, mb_bitmask, s->mb_width*s->mb_height);
31 }
32--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch
deleted file mode 100644
index 1041347c8..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From 28bf685bfc6d0c744369cdf367f61a78d80d0b01 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Thu, 15 Nov 2012 16:41:28 +0100
4Subject: [PATCH] pgssubdec: check RLE size before copying. Fix out of array
5 accesses
6
7Upstream-Status: Backport
8
9Commit 28bf685bfc6d0c744369cdf367f61a78d80d0b01 release/1.1
10
11Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
12Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13(cherry picked from commit c0d68be555f5858703383040e04fcd6529777061)
14---
15 libavcodec/pgssubdec.c | 5 +++++
16 1 file changed, 5 insertions(+)
17
18diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c
19index 728f178..26a3c2a 100644
20--- a/gst-libs/ext/libav/libavcodec/pgssubdec.c
21+++ b/gst-libs/ext/libav/libavcodec/pgssubdec.c
22@@ -202,6 +202,11 @@ static int parse_picture_segment(AVCodec
23 return -1;
24 }
25
26+ if (buf_size > rle_bitmap_len) {
27+ av_log(avctx, AV_LOG_ERROR, "too much RLE data\n");
28+ return AVERROR_INVALIDDATA;
29+ }
30+
31 ctx->picture.w = width;
32 ctx->picture.h = height;
33
34--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch
deleted file mode 100644
index 1e5fb7deb..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1gst-ffmpeg: pngdec/filter: dont access out of array elements at the end
2
3Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
4
5Upstream-Status: Backport
6
7Signed-off-by: Yue Tao <yue.tao@windriver.com>
8---
9 libavcodec/pngdec.c | 12 ++++--------
10 1 files changed, 4 insertions(+), 8 deletions(-)
11
12diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
13index 97c0ad1..193e35e 100644
14--- a/gst-libs/ext/libav/libavcodec/pngdec.c
15+++ b/gst-libs/ext/libav/libavcodec/pngdec.c
16@@ -190,7 +190,7 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w
17 if(bpp >= 2) g = dst[1];\
18 if(bpp >= 3) b = dst[2];\
19 if(bpp >= 4) a = dst[3];\
20- for(; i < size; i+=bpp) {\
21+ for(; i <= size - bpp; i+=bpp) {\
22 dst[i+0] = r = op(r, src[i+0], last[i+0]);\
23 if(bpp == 1) continue;\
24 dst[i+1] = g = op(g, src[i+1], last[i+1]);\
25@@ -206,13 +206,9 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w
26 else if(bpp == 2) UNROLL1(2, op)\
27 else if(bpp == 3) UNROLL1(3, op)\
28 else if(bpp == 4) UNROLL1(4, op)\
29- else {\
30- for (; i < size; i += bpp) {\
31- int j;\
32- for (j = 0; j < bpp; j++)\
33- dst[i+j] = op(dst[i+j-bpp], src[i+j], last[i+j]);\
34- }\
35- }
36+ for (; i < size; i++) {\
37+ dst[i] = op(dst[i-bpp], src[i], last[i]);\
38+ }\
39
40 /* NOTE: 'dst' can be equal to 'last' */
41 static void png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type,
42--
431.7.5.4
44
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch
deleted file mode 100644
index 8c94232d6..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1gst-ffmpeg: qdm2: check array index before use, fix out of array
2 accesses
3
4Upstream-Status: Backport
5
6Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
8---
9 libavcodec/qdm2.c | 5 +++++
10 1 files changed, 5 insertions(+), 0 deletions(-)
11
12diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
13index 4cf4b2f..1dfb8d5 100644
14--- a/gst-libs/ext/libav/libavcodec/qdm2.c
15+++ b/gst-libs/ext/libav/libavcodec/qdm2.c
16@@ -1257,6 +1257,11 @@ static void qdm2_decode_super_block (QDM2Context *q)
17 for (i = 0; packet_bytes > 0; i++) {
18 int j;
19
20+ if (i>=FF_ARRAY_ELEMS(q->sub_packet_list_A)) {
21+ SAMPLES_NEEDED_2("too many packet bytes");
22+ return;
23+ }
24+
25 q->sub_packet_list_A[i].next = NULL;
26
27 if (i > 0) {
28--
291.7.5.4
30
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch
deleted file mode 100644
index 43ffc03a6..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1gst-ffmpeg: qdm2dec: fix buffer overflow. Fixes NGS00144
2
3This also adds a few lines of code from master that are needed for this fix.
4
5Thanks to Phillip for suggestions to improve the patch.
6Found-by: Phillip Langlois
7
8Upstream-Status: Backport
9
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11---
12 libavcodec/qdm2.c | 9 +++++++--
13 1 files changed, 7 insertions(+), 2 deletions(-)
14
15diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
16index 3aa9e5b..e000df8 100644
17--- a/gst-libs/ext/libav/libavcodec/qdm2.c
18+++ b/gst-libs/ext/libav/libavcodec/qdm2.c
19@@ -76,6 +76,7 @@ do { \
20 #define SAMPLES_NEEDED_2(why) \
21 av_log (NULL,AV_LOG_INFO,"This file triggers some missing code. Please contact the developers.\nPosition: %s\n",why);
22
23+#define QDM2_MAX_FRAME_SIZE 512
24
25 typedef int8_t sb_int8_array[2][30][64];
26
27@@ -168,7 +169,7 @@ typedef struct {
28 /// I/O data
29 const uint8_t *compressed_data;
30 int compressed_size;
31- float output_buffer[1024];
32+ float output_buffer[QDM2_MAX_FRAME_SIZE * MPA_MAX_CHANNELS * 2];
33
34 /// Synthesis filter
35 MPADSPContext mpadsp;
36@@ -1819,6 +1820,9 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
37 s->group_order = av_log2(s->group_size) + 1;
38 s->frame_size = s->group_size / 16; // 16 iterations per super block
39
40+ if (s->frame_size > QDM2_MAX_FRAME_SIZE)
41+ return AVERROR_INVALIDDATA;
42+
43 s->sub_sampling = s->fft_order - 7;
44 s->frequency_range = 255 / (1 << (2 - s->sub_sampling));
45
46@@ -1887,6 +1891,9 @@ static int qdm2_decode (QDM2Context *q, const uint8_t *in, int16_t *out)
47 int ch, i;
48 const int frame_size = (q->frame_size * q->channels);
49
50+ if((unsigned)frame_size > FF_ARRAY_ELEMS(q->output_buffer)/2)
51+ return -1;
52+
53 /* select input buffer */
54 q->compressed_data = in;
55 q->compressed_size = q->checksum_size;
56--
571.7.5.4
58
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch
deleted file mode 100644
index 7e58afcf6..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 391e0fc6c90ced6656b74f50f3a487b6dc76ea63 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Thu, 29 Nov 2012 15:18:17 +0100
4Subject: [PATCH] roqvideodec: check dimensions validity
5
6Upstream-Status: Backport
7
8Commit 391e0fc6c90ced6656b74f50f3a487b6dc76ea63 release/0.7
9
10Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
11Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12(cherry picked from commit 3ae610451170cd5a28b33950006ff0bd23036845)
13
14Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
15---
16 libavcodec/roqvideodec.c | 6 ++++++
17 1 file changed, 6 insertions(+)
18
19diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c
20index f0977f6..4e34231 100644
21--- a/gst-libs/ext/libav/libavcodec/roqvideodec.c
22+++ b/gst-libs/ext/libav/libavcodec/roqvideodec.c
23@@ -157,6 +157,12 @@ static av_cold int roq_decode_init(AVCodecContext *avctx)
24 RoqContext *s = avctx->priv_data;
25
26 s->avctx = avctx;
27+
28+ if (avctx->width%16 || avctx->height%16) {
29+ av_log_ask_for_sample(avctx, "dimensions not being a multiple of 16 are unsupported\n");
30+ return AVERROR_PATCHWELCOME;
31+ }
32+
33 s->width = avctx->width;
34 s->height = avctx->height;
35 avcodec_get_frame_defaults(&s->frames[0]);
36--
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch
deleted file mode 100644
index 15b161469..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1gst-ffmpeg: smackerdec: Check that the last indexes are within the
2 table.
3
4Fixes CVE-2011-3944
5
6Upstream-Status: Backport
7
8Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
9Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10---
11 libavcodec/smacker.c | 5 +++++
12 1 files changed, 5 insertions(+), 0 deletions(-)
13
14diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
15index 30f99b4..2a8bae8 100644
16--- a/gst-libs/ext/libav/libavcodec/smacker.c
17+++ b/gst-libs/ext/libav/libavcodec/smacker.c
18@@ -259,6 +259,11 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int
19 if(ctx.last[0] == -1) ctx.last[0] = huff.current++;
20 if(ctx.last[1] == -1) ctx.last[1] = huff.current++;
21 if(ctx.last[2] == -1) ctx.last[2] = huff.current++;
22+ if(huff.current > huff.length){
23+ ctx.last[0] = ctx.last[1] = ctx.last[2] = 1;
24+ av_log(smk->avctx, AV_LOG_ERROR, "bigtree damaged\n");
25+ return -1;
26+ }
27
28 *recodes = huff.values;
29
30--
311.7.5.4
32
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch
deleted file mode 100644
index a1989cfea..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1gst-ffmpeg: vp3: Copy all 3 frames for thread updates.
2
3This fixes a double release of the current frame on deinit.
4Fixes CVE-2011-3934
5
6Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
8
9Upstream-Status: Backport
10
11Signed-off-by: Yue.Tao <yue.tao@windriver.com>
12
13---
14 libavcodec/vp3.c | 2 +-
15 1 files changed, 1 insertions(+), 1 deletions(-)
16
17diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
18index 738ae9f..b5daafc 100644
19--- a/gst-libs/ext/libav/libavcodec/vp3.c
20+++ b/gst-libs/ext/libav/libavcodec/vp3.c
21@@ -1859,7 +1859,7 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext *
22 ||s->width != s1->width
23 ||s->height!= s1->height) {
24 if (s != s1)
25- copy_fields(s, s1, golden_frame, current_frame);
26+ copy_fields(s, s1, golden_frame, keyframe);
27 return -1;
28 }
29
30--
311.7.5.4
32
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch
deleted file mode 100644
index e83d8f402..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch
+++ /dev/null
@@ -1,183 +0,0 @@
1gst-ffmpeg: vp3: fix oob read for negative tokens and memleaks on error.
2
3Upstream-Status: Backport
4
5Signed-off-by: Yue.Tao <yue.tao@windriver.com>
6
7---
8 libavcodec/vp3.c | 59 +++++++++++++++++++++++++++++++++++++++++------------
9 1 files changed, 45 insertions(+), 14 deletions(-)
10
11diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
12index 36715bb..ce14e63 100644
13--- a/gst-libs/ext/libav/libavcodec/vp3.c
14+++ b/gst-libs/ext/libav/libavcodec/vp3.c
15@@ -45,6 +45,7 @@
16 #define FRAGMENT_PIXELS 8
17
18 static av_cold int vp3_decode_end(AVCodecContext *avctx);
19+static void vp3_decode_flush(AVCodecContext *avctx);
20
21 //FIXME split things out into their own arrays
22 typedef struct Vp3Fragment {
23@@ -890,7 +891,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
24 /* decode a VLC into a token */
25 token = get_vlc2(gb, vlc_table, 11, 3);
26 /* use the token to get a zero run, a coefficient, and an eob run */
27- if (token <= 6) {
28+ if ((unsigned) token <= 6U) {
29 eob_run = eob_run_base[token];
30 if (eob_run_get_bits[token])
31 eob_run += get_bits(gb, eob_run_get_bits[token]);
32@@ -908,7 +909,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
33 coeff_i += eob_run;
34 eob_run = 0;
35 }
36- } else {
37+ } else if (token >= 0) {
38 bits_to_get = coeff_get_bits[token];
39 if (bits_to_get)
40 bits_to_get = get_bits(gb, bits_to_get);
41@@ -942,6 +943,10 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
42 for (i = coeff_index+1; i <= coeff_index+zero_run; i++)
43 s->num_coded_frags[plane][i]--;
44 coeff_i++;
45+ } else {
46+ av_log(s->avctx, AV_LOG_ERROR,
47+ "Invalid token %d\n", token);
48+ return -1;
49 }
50 }
51
52@@ -991,6 +996,8 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
53 /* unpack the Y plane DC coefficients */
54 residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_y_table], 0,
55 0, residual_eob_run);
56+ if (residual_eob_run < 0)
57+ return residual_eob_run;
58
59 /* reverse prediction of the Y-plane DC coefficients */
60 reverse_dc_prediction(s, 0, s->fragment_width[0], s->fragment_height[0]);
61@@ -998,8 +1005,12 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
62 /* unpack the C plane DC coefficients */
63 residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0,
64 1, residual_eob_run);
65+ if (residual_eob_run < 0)
66+ return residual_eob_run;
67 residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0,
68 2, residual_eob_run);
69+ if (residual_eob_run < 0)
70+ return residual_eob_run;
71
72 /* reverse prediction of the C-plane DC coefficients */
73 if (!(s->avctx->flags & CODEC_FLAG_GRAY))
74@@ -1036,11 +1047,17 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
75 for (i = 1; i <= 63; i++) {
76 residual_eob_run = unpack_vlcs(s, gb, y_tables[i], i,
77 0, residual_eob_run);
78+ if (residual_eob_run < 0)
79+ return residual_eob_run;
80
81 residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i,
82 1, residual_eob_run);
83+ if (residual_eob_run < 0)
84+ return residual_eob_run;
85 residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i,
86 2, residual_eob_run);
87+ if (residual_eob_run < 0)
88+ return residual_eob_run;
89 }
90
91 return 0;
92@@ -1777,10 +1794,15 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext *
93 Vp3DecodeContext *s = dst->priv_data, *s1 = src->priv_data;
94 int qps_changed = 0, i, err;
95
96+#define copy_fields(to, from, start_field, end_field) memcpy(&to->start_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field)
97+
98 if (!s1->current_frame.data[0]
99 ||s->width != s1->width
100- ||s->height!= s1->height)
101+ ||s->height!= s1->height) {
102+ if (s != s1)
103+ copy_fields(s, s1, golden_frame, current_frame);
104 return -1;
105+ }
106
107 if (s != s1) {
108 // init tables if the first frame hasn't been decoded
109@@ -1796,8 +1818,6 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext *
110 memcpy(s->motion_val[1], s1->motion_val[1], c_fragment_count * sizeof(*s->motion_val[1]));
111 }
112
113-#define copy_fields(to, from, start_field, end_field) memcpy(&to->start_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field)
114-
115 // copy previous frame data
116 copy_fields(s, s1, golden_frame, dsp);
117
118@@ -1987,9 +2007,6 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx)
119 Vp3DecodeContext *s = avctx->priv_data;
120 int i;
121
122- if (avctx->is_copy && !s->current_frame.data[0])
123- return 0;
124-
125 av_free(s->superblock_coding);
126 av_free(s->all_fragments);
127 av_free(s->coded_fragment_list[0]);
128@@ -2016,12 +2033,7 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx)
129 free_vlc(&s->motion_vector_vlc);
130
131 /* release all frames */
132- if (s->golden_frame.data[0])
133- ff_thread_release_buffer(avctx, &s->golden_frame);
134- if (s->last_frame.data[0] && s->last_frame.type != FF_BUFFER_TYPE_COPY)
135- ff_thread_release_buffer(avctx, &s->last_frame);
136- /* no need to release the current_frame since it will always be pointing
137- * to the same frame as either the golden or last frame */
138+ vp3_decode_flush(avctx);
139
140 return 0;
141 }
142@@ -2341,6 +2353,23 @@ static void vp3_decode_flush(AVCodecContext *avctx)
143 ff_thread_release_buffer(avctx, &s->current_frame);
144 }
145
146+static int vp3_init_thread_copy(AVCodecContext *avctx)
147+{
148+ Vp3DecodeContext *s = avctx->priv_data;
149+
150+ s->superblock_coding = NULL;
151+ s->all_fragments = NULL;
152+ s->coded_fragment_list[0] = NULL;
153+ s->dct_tokens_base = NULL;
154+ s->superblock_fragments = NULL;
155+ s->macroblock_coding = NULL;
156+ s->motion_val[0] = NULL;
157+ s->motion_val[1] = NULL;
158+ s->edge_emu_buffer = NULL;
159+
160+ return 0;
161+}
162+
163 AVCodec ff_theora_decoder = {
164 .name = "theora",
165 .type = AVMEDIA_TYPE_VIDEO,
166@@ -2352,6 +2381,7 @@ AVCodec ff_theora_decoder = {
167 .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
168 .flush = vp3_decode_flush,
169 .long_name = NULL_IF_CONFIG_SMALL("Theora"),
170+ .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy),
171 .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
172 };
173 #endif
174@@ -2367,5 +2397,6 @@ AVCodec ff_vp3_decoder = {
175 .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
176 .flush = vp3_decode_flush,
177 .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
178+ .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy),
179 .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
180 };
181--
1821.7.5.4
183
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch
deleted file mode 100644
index 7e4f68216..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From 2cac35086c9e103fa98960c546d5017e7363803a Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 25 Jan 2013 06:11:59 +0100
4Subject: [PATCH] vqavideo: check chunk sizes before reading chunks
5
6Upstream-Status: Backport
7
8Commit 2cac35086c9e103fa98960c546d5017e7363803a release/0.7
9
10Fixes out of array writes
11
12Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
13Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14(cherry picked from commit ab6c9332bfa1e20127a16392a0b85a4aa4840889)
15
16Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
17---
18 libavcodec/vqavideo.c | 10 ++++++++++
19 1 files changed, 10 insertions(+), 0 deletions(-)
20
21diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c
22index d1eab5b..6e1ce6c 100644
23--- a/gst-libs/ext/libav/libavcodec/vqavideo.c
24+++ b/gst-libs/ext/libav/libavcodec/vqavideo.c
25@@ -527,6 +527,11 @@ static void vqa_decode_chunk(VqaContext *s)
26 chunk_size = AV_RB32(&s->buf[cbp0_chunk + 4]);
27 cbp0_chunk += CHUNK_PREAMBLE_SIZE;
28
29+ if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) {
30+ av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (0x%X bytes)\n", chunk_size);
31+ return AVERROR_INVALIDDATA;
32+ }
33+
34 /* accumulate partial codebook */
35 memcpy(&s->next_codebook_buffer[s->next_codebook_buffer_index],
36 &s->buf[cbp0_chunk], chunk_size);
37@@ -550,6 +555,11 @@ static void vqa_decode_chunk(VqaContext *s)
38 chunk_size = AV_RB32(&s->buf[cbpz_chunk + 4]);
39 cbpz_chunk += CHUNK_PREAMBLE_SIZE;
40
41+ if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) {
42+ av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (0x%X bytes)\n", chunk_size);
43+ return AVERROR_INVALIDDATA;
44+ }
45+
46 /* accumulate partial codebook */
47 memcpy(&s->next_codebook_buffer[s->next_codebook_buffer_index],
48 &s->buf[cbpz_chunk], chunk_size);
49--
501.7.5.4
51
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch
deleted file mode 100644
index c8bafd570..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch
+++ /dev/null
@@ -1,68 +0,0 @@
1From 6043c431c97d55173f339fafbd033d3c0642e2e9 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 01:50:27 +0200
4Subject: [PATCH 2/2] avcodec/mjpegdec: check bits per pixel for changes
5 similar to dimensions
6
7Upstream-Status: Backport
8
9Fixes out of array accesses
10Fixes: asan_heap-oob_16668e9_2_asan_heap-oob_16668e9_346_miss_congeniality_pegasus_mjpg.avi
11
12Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
13Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
14
15Conflicts:
16 libavcodec/mjpegdec.c
17---
18 libavcodec/mjpegdec.c | 15 ++++++++-------
19 1 file changed, 8 insertions(+), 7 deletions(-)
20
21diff --git a/gst-libs/ext/libav/libavcodec/mjpegdec.c b/gst-libs/ext/libav/libavcodec/mjpegdec.c
22index 84343c0..c0137d8 100644
23--- a/gst-libs/ext/libav/libavcodec/mjpegdec.c
24+++ b/gst-libs/ext/libav/libavcodec/mjpegdec.c
25@@ -210,16 +210,16 @@ int ff_mjpeg_decode_dht(MJpegDecodeContext *s)
26
27 int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
28 {
29- int len, nb_components, i, width, height, pix_fmt_id;
30+ int len, nb_components, i, bits, width, height, pix_fmt_id;
31
32 /* XXX: verify len field validity */
33 len = get_bits(&s->gb, 16);
34- s->bits= get_bits(&s->gb, 8);
35+ bits= get_bits(&s->gb, 8);
36
37- if(s->pegasus_rct) s->bits=9;
38- if(s->bits==9 && !s->pegasus_rct) s->rct=1; //FIXME ugly
39+ if(s->pegasus_rct) bits=9;
40+ if(bits==9 && !s->pegasus_rct) s->rct=1; //FIXME ugly
41
42- if (s->bits != 8 && !s->lossless){
43+ if (bits != 8 && !s->lossless){
44 av_log(s->avctx, AV_LOG_ERROR, "only 8 bits/component accepted\n");
45 return -1;
46 }
47@@ -239,7 +239,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
48 if (nb_components <= 0 ||
49 nb_components > MAX_COMPONENTS)
50 return -1;
51- if (s->ls && !(s->bits <= 8 || nb_components == 1)){
52+ if (s->ls && !(bits <= 8 || nb_components == 1)){
53 av_log(s->avctx, AV_LOG_ERROR, "only <= 8 bits/component or 16-bit gray accepted for JPEG-LS\n");
54 return -1;
55 }
56@@ -272,10 +272,11 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
57
58 /* if different size, realloc/alloc picture */
59 /* XXX: also check h_count and v_count */
60- if (width != s->width || height != s->height) {
61+ if (width != s->width || height != s->height || bits != s->bits) {
62 av_freep(&s->qscale_table);
63
64 s->width = width;
65+ s->bits= bits;
66 s->height = height;
67 s->interlaced = 0;
68
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch
deleted file mode 100644
index 9ef6f7c4b..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1Disable yasm for libav when --disable-yasm
2
3Upstream-Status: Inappropriate [configuration]
4
5Signed-off-by: Shane Wang <shane.wang@intel.com>
6
7diff -r f2f8f74c6e30 configure.ac
8--- a/configure.ac Thu Dec 22 23:56:09 2011 +0800
9+++ b/configure.ac Thu Dec 22 23:57:37 2011 +0800
10@@ -325,6 +325,12 @@
11 --enable-gpl"
12 fi
13
14+ AC_ARG_ENABLE(yasm,
15+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
16+ if test "x$enable_yasm" = "xno"; then
17+ embffmpeg_configure_args="$embffmpeg_configure_args --disable-yasm"
18+ fi
19+
20 # if we are cross-compiling, tell ffmpeg so
21 target_os=`echo $host_os | sed 's/-gnu//'`
22 if test "x$cross_compiling" = xyes; then
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch
deleted file mode 100644
index 3c8d8e353..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch
+++ /dev/null
@@ -1,100 +0,0 @@
1gst-ffmpeg: Security Advisory - ffmpeg - CVE-2013-0855
2
3Upstream-Status: Backport
4
5Signed-off-by: Yue Tao <yue.tao@windriver.com>
6
7diff --git a/gst-libs/ext/libav/libavcodec/alac.c.old b/gst-libs/ext/libav/libavcodec/alac.c
8index 2a0df8c..bcbd56d 100644
9--- a/gst-libs/ext/libav/libavcodec/alac.c.old
10+++ b/gst-libs/ext/libav/libavcodec/alac.c
11@@ -87,18 +87,44 @@ typedef struct {
12 int wasted_bits;
13 } ALACContext;
14
15-static void allocate_buffers(ALACContext *alac)
16+static av_cold int alac_decode_close(AVCodecContext *avctx)
17+{
18+ ALACContext *alac = avctx->priv_data;
19+
20+ int chan;
21+ for (chan = 0; chan < MAX_CHANNELS; chan++) {
22+ av_freep(&alac->predicterror_buffer[chan]);
23+ av_freep(&alac->outputsamples_buffer[chan]);
24+ av_freep(&alac->wasted_bits_buffer[chan]);
25+ }
26+
27+ return 0;
28+}
29+
30+static int allocate_buffers(ALACContext *alac)
31 {
32 int chan;
33+ int buf_size;
34+
35+ if (alac->setinfo_max_samples_per_frame > INT_MAX / sizeof(int32_t))
36+ goto buf_alloc_fail;
37+ buf_size = alac->setinfo_max_samples_per_frame * sizeof(int32_t);
38+
39 for (chan = 0; chan < MAX_CHANNELS; chan++) {
40- alac->predicterror_buffer[chan] =
41- av_malloc(alac->setinfo_max_samples_per_frame * 4);
42
43- alac->outputsamples_buffer[chan] =
44- av_malloc(alac->setinfo_max_samples_per_frame * 4);
45+ FF_ALLOC_OR_GOTO(alac->avctx, alac->predicterror_buffer[chan],
46+ buf_size, buf_alloc_fail);
47
48- alac->wasted_bits_buffer[chan] = av_malloc(alac->setinfo_max_samples_per_frame * 4);
49+ FF_ALLOC_OR_GOTO(alac->avctx, alac->outputsamples_buffer[chan],
50+ buf_size, buf_alloc_fail);
51+
52+ FF_ALLOC_OR_GOTO(alac->avctx, alac->wasted_bits_buffer[chan],
53+ buf_size, buf_alloc_fail);
54 }
55+ return 0;
56+buf_alloc_fail:
57+ alac_decode_close(alac->avctx);
58+ return AVERROR(ENOMEM);
59 }
60
61 static int alac_set_info(ALACContext *alac)
62@@ -131,8 +157,6 @@ static int alac_set_info(ALACContext *alac)
63 bytestream_get_be32(&ptr); /* bitrate ? */
64 bytestream_get_be32(&ptr); /* samplerate */
65
66- allocate_buffers(alac);
67-
68 return 0;
69 }
70
71@@ -659,6 +683,7 @@ static int alac_decode_frame(AVCodecContext *avctx,
72
73 static av_cold int alac_decode_init(AVCodecContext * avctx)
74 {
75+ int ret;
76 ALACContext *alac = avctx->priv_data;
77 alac->avctx = avctx;
78 alac->numchannels = alac->avctx->channels;
79@@ -674,18 +699,9 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
80 return -1;
81 }
82
83- return 0;
84-}
85-
86-static av_cold int alac_decode_close(AVCodecContext *avctx)
87-{
88- ALACContext *alac = avctx->priv_data;
89-
90- int chan;
91- for (chan = 0; chan < MAX_CHANNELS; chan++) {
92- av_freep(&alac->predicterror_buffer[chan]);
93- av_freep(&alac->outputsamples_buffer[chan]);
94- av_freep(&alac->wasted_bits_buffer[chan]);
95+ if ((ret = allocate_buffers(alac)) < 0) {
96+ av_log(avctx, AV_LOG_ERROR, "Error allocating buffers\n");
97+ return ret;
98 }
99
100 return 0;
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
deleted file mode 100644
index aa385f54c..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1avcodec/cdgraphics: check buffer size before use
2
3Fixes out of array accesses
4
5Backported from:http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ad002e1a13a8df934bd6cb2c84175a4780ab8942
6
7Upstream-Status: Backport
8
9Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11Signed-off-by: Ming Liu <ming.liu@windriver.com>
12
13diff -urpN a/gst-libs/ext/libav/libavcodec/cdgraphics.c b/gst-libs/ext/libav/libavcodec/cdgraphics.c
14--- a/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:17:08.399876575 +0800
15+++ b/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:18:05.880502267 +0800
16@@ -291,7 +291,9 @@ static int cdg_decode_frame(AVCodecConte
17 inst = bytestream_get_byte(&buf);
18 inst &= CDG_MASK;
19 buf += 2; /// skipping 2 unneeded bytes
20- bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
21+
22+ if (buf_size > CDG_HEADER_SIZE)
23+ bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
24
25 if ((command & CDG_MASK) == CDG_COMMAND) {
26 switch (inst) {
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch
deleted file mode 100644
index 90f3fd031..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch
+++ /dev/null
@@ -1,64 +0,0 @@
1From 8b94df0f2047e9728cb872adc9e64557b7a5152f Mon Sep 17 00:00:00 2001
2From: Reinhard Tartler <siretart@tauware.de>
3Date: Sun, 4 Dec 2011 10:10:33 +0100
4Subject: [PATCH] vp3dec: Check coefficient index in vp3_dequant()
5
6Based on a patch by Michael Niedermayer <michaelni@gmx.at>
7
8Fixes NGS00145, CVE-2011-4352
9
10Found-by: Phillip Langlois
11Signed-off-by: Reinhard Tartler <siretart@tauware.de>
12
13
14Upstream-Status: Backport
15
16http://git.videolan.org/?p=ffmpeg.git;a=commit;h=8b94df0f2047e9728cb872adc9e64557b7a5152f
17
18Signed-off-by: Kai Kang <kai.kang@windriver.com>
19---
20 libavcodec/vp3.c | 14 ++++++++++++--
21 1 file changed, 12 insertions(+), 2 deletions(-)
22
23diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
24index 51ab048..f44d084 100644
25--- a/gst-libs/ext/libav/libavcodec/vp3.c
26+++ b/gst-libs/ext/libav/libavcodec/vp3.c
27@@ -1363,6 +1363,10 @@ static inline int vp3_dequant(Vp3DecodeContext *s, Vp3Fragment *frag,
28 case 1: // zero run
29 s->dct_tokens[plane][i]++;
30 i += (token >> 2) & 0x7f;
31+ if (i > 63) {
32+ av_log(s->avctx, AV_LOG_ERROR, "Coefficient index overflow\n");
33+ return i;
34+ }
35 block[perm[i]] = (token >> 9) * dequantizer[perm[i]];
36 i++;
37 break;
38@@ -1566,7 +1570,10 @@ static void render_slice(Vp3DecodeContext *s, int slice)
39 /* invert DCT and place (or add) in final output */
40
41 if (s->all_fragments[i].coding_method == MODE_INTRA) {
42- vp3_dequant(s, s->all_fragments + i, plane, 0, block);
43+ int index;
44+ index = vp3_dequant(s, s->all_fragments + i, plane, 0, block);
45+ if (index > 63)
46+ continue;
47 if(s->avctx->idct_algo!=FF_IDCT_VP3)
48 block[0] += 128<<3;
49 s->dsp.idct_put(
50@@ -1574,7 +1581,10 @@ static void render_slice(Vp3DecodeContext *s, int slice)
51 stride,
52 block);
53 } else {
54- if (vp3_dequant(s, s->all_fragments + i, plane, 1, block)) {
55+ int index = vp3_dequant(s, s->all_fragments + i, plane, 1, block);
56+ if (index > 63)
57+ continue;
58+ if (index > 0) {
59 s->dsp.idct_add(
60 output_plane + first_pixel,
61 stride,
62--
632.1.1
64
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch
deleted file mode 100644
index 3c537c77a..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 2266b8bc3370856d874334ba62b337ce4f1eb255 Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com>
3Date: Wed, 13 May 2015 16:46:06 +0800
4Subject: [PATCH 2/2] gst-ffmpeg: fix CVE-2014-7933
5
6Upstream-Status: Backport
7
8http://git.videolan.org/?p=ffmpeg.git;a=commit;h=33301f00
9
10Signed-off-by: Kai Kang <kai.kang@windriver.com>
11---
12 gst-libs/ext/libav/libavformat/matroskadec.c | 3 ++-
13 1 file changed, 2 insertions(+), 1 deletion(-)
14
15diff --git a/gst-libs/ext/libav/libavformat/matroskadec.c b/gst-libs/ext/libav/libavformat/matroskadec.c
16index 59dce4f..e5f5fc1 100644
17--- a/gst-libs/ext/libav/libavformat/matroskadec.c
18+++ b/gst-libs/ext/libav/libavformat/matroskadec.c
19@@ -1916,7 +1916,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
20 int64_t timestamp, int flags)
21 {
22 MatroskaDemuxContext *matroska = s->priv_data;
23- MatroskaTrack *tracks = matroska->tracks.elem;
24+ MatroskaTrack *tracks = NULL;
25 AVStream *st = s->streams[stream_index];
26 int i, index, index_sub, index_min;
27
28@@ -1939,6 +1939,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
29 return 0;
30
31 index_min = index;
32+ tracks = matroska->tracks.elem;
33 for (i=0; i < matroska->tracks.nb_elem; i++) {
34 tracks[i].audio.pkt_cnt = 0;
35 tracks[i].audio.sub_packet_cnt = 0;
36--
371.9.1
38
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch
deleted file mode 100644
index ca47c814c..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 105654e376a736d243aef4a1d121abebce912e6b Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 04:30:58 +0200
4Subject: [PATCH] avcodec/utils: Add case for jv to
5 avcodec_align_dimensions2()
6
7(Upstream commit 105654e376a736d243aef4a1d121abebce912e6b)
8
9Fixes out of array accesses
10Fixes: asan_heap-oob_12304aa_8_asan_heap-oob_4da4f3_300_intro.jv
11
12Upstream-Status: Backport
13
14Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16Signed-off-by: Yue Tao <yue.tao@windriver.com>
17---
18 libavcodec/utils.c | 4 ++++
19 1 file changed, 4 insertions(+)
20
21diff --git a/libavcodec/utils.c b/libavcodec/utils.c
22index d4f5532..c2c5579 100644
23--- a/gst-libs/ext/libav/libavcodec/utils.c
24+++ b/gst-libs/ext/libav/libavcodec/utils.c
25@@ -173,6 +173,10 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int l
26 w_align=4;
27 h_align=4;
28 }
29+ if (s->codec_id == CODEC_ID_JV){
30+ w_align = 8;
31+ h_align = 8;
32+ }
33 break;
34 case PIX_FMT_BGR24:
35 if((s->codec_id == CODEC_ID_MSZH) || (s->codec_id == CODEC_ID_ZLIB)){
36--
371.7.9.5
38
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch
deleted file mode 100644
index b65e55fc1..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 8b0e96e1f21b761ca15dbb470cd619a1ebf86c3e Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 14:45:04 +0200
4Subject: [PATCH] avcodec/mmvideo: Bounds check 2nd line of HHV Intra blocks
5
6(Upstream commit 8b0e96e1f21b761ca15dbb470cd619a1ebf86c3e)
7
8Fixes out of array access
9Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm
10
11Upstream-Status: Backport
12
13Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
14Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
15Signed-off-by: Yue Tao <yue.tao@windriver.com>
16---
17 libavcodec/mmvideo.c | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c
21index 026d463..9ff6393 100644
22--- a/gst-libs/ext/libav/libavcodec/mmvideo.c
23+++ b/gst-libs/ext/libav/libavcodec/mmvideo.c
24@@ -104,7 +104,7 @@ static void mm_decode_intra(MmContext * s, int half_horiz, int half_vert, const
25
26 if (color) {
27 memset(s->frame.data[0] + y*s->frame.linesize[0] + x, color, run_length);
28- if (half_vert)
29+ if (half_vert && y + half_vert < s->avctx->height)
30 memset(s->frame.data[0] + (y+1)*s->frame.linesize[0] + x, color, run_length);
31 }
32 x+= run_length;
33--
341.7.9.5
35
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch
deleted file mode 100644
index a124e3a12..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1From e1c0cfaa419aa5d320540d5a1b3f8fd9b82ab7e5 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 16:08:32 +0200
4Subject: [PATCH] avcodec/tiff: more completely check bpp/bppcount
5
6(Upstream commit e1c0cfaa419aa5d320540d5a1b3f8fd9b82ab7e5)
7
8Fixes pixel format selection
9Fixes out of array accesses
10Fixes: asan_heap-oob_1766029_6_asan_heap-oob_20aa045_332_cov_1823216757_m2-d1d366d7965db766c19a66c7a2ccbb6b.tif
11
12Upstream-Status: Backport
13
14Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16Signed-off-by: Yue Tao <yue.tao@windriver.com>
17---
18 libavcodec/tiff.c | 13 ++++++++++---
19 1 file changed, 10 insertions(+), 3 deletions(-)
20
21diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
22index 6e2096f..0870e31 100644
23--- a/gst-libs/ext/libav/libavcodec/tiff.c
24+++ b/gst-libs/ext/libav/libavcodec/tiff.c
25@@ -324,11 +324,11 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t *
26 s->height = value;
27 break;
28 case TIFF_BPP:
29- s->bppcount = count;
30- if(count > 4){
31- av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count);
32+ if(count > 4U){
33+ av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", value, count);
34 return -1;
35 }
36+ s->bppcount = count;
37 if(count == 1) s->bpp = value;
38 else{
39 switch(type){
40@@ -344,6 +344,13 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t *
41 s->bpp = -1;
42 }
43 }
44+ if (s->bpp > 64U) {
45+ av_log(s->avctx, AV_LOG_ERROR,
46+ "This format is not supported (bpp=%d, %d components)\n",
47+ s->bpp, count);
48+ s->bpp = 0;
49+ return AVERROR_INVALIDDATA;
50+ }
51 break;
52 case TIFF_SAMPLES_PER_PIXEL:
53 if (count != 1) {
54--
551.7.9.5
56
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch
deleted file mode 100644
index 29d5f776a..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 3e2b745020c2dbf0201fe7df3dad9e7e0b2e1bb6 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 17:35:58 +0200
4Subject: [PATCH] avcodec/pngdec: Check bits per pixel before setting
5 monoblack pixel format
6
7(Upstream commit 3e2b745020c2dbf0201fe7df3dad9e7e0b2e1bb6)
8
9Fixes out of array accesses
10Fixes: asan_heap-oob_14dbfcf_4_asan_heap-oob_1ce5767_179_add_method_small.png
11
12Upstream-Status: Backport
13
14Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16Signed-off-by: Yue Tao <yue.tao@windriver.com>
17---
18 libavcodec/pngdec.c | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
22index da91aab..f3603b3 100644
23--- a/gst-libs/ext/libav/libavcodec/pngdec.c
24+++ b/gst-libs/ext/libav/libavcodec/pngdec.c
25@@ -481,7 +481,7 @@ static int decode_frame(AVCodecContext *avctx,
26 } else if (s->bit_depth == 16 &&
27 s->color_type == PNG_COLOR_TYPE_RGB) {
28 avctx->pix_fmt = PIX_FMT_RGB48BE;
29- } else if (s->bit_depth == 1 &&
30+ } else if (s->bit_depth == 1 && s->bits_per_pixel == 1 &&
31 s->color_type == PNG_COLOR_TYPE_GRAY) {
32 avctx->pix_fmt = PIX_FMT_MONOBLACK;
33 } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) {
34--
351.7.9.5
36
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch
deleted file mode 100644
index d55d9ebe6..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From e7e5114c506957f40aafd794e06de1a7e341e9d5 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 19:33:01 +0200
4Subject: [PATCH] avcodec/cinepak: fix integer underflow
5
6(Upstream commit e7e5114c506957f40aafd794e06de1a7e341e9d5)
7
8Fixes out of array access
9Fixes: asan_heap-oob_4da0ba_6_asan_heap-oob_4da0ba_241_cvid_crash.avi
10
11Upstream-status: Backport
12
13Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
14Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
15Signed-off-by: Yue Tao <yue.tao@windriver.com>
16---
17 libavcodec/cinepak.c | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c
21index 4746289..f651c48 100644
22--- a/gst-libs/ext/libav/libavcodec/cinepak.c
23+++ b/gst-libs/ext/libav/libavcodec/cinepak.c
24@@ -125,7 +125,7 @@ static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip,
25 const uint8_t *eod = (data + size);
26 uint32_t flag, mask;
27 cvid_codebook *codebook;
28- unsigned int x, y;
29+ int x, y;
30 uint32_t iy[4];
31 uint32_t iu[2];
32 uint32_t iv[2];
33--
341.7.9.5
35
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch
deleted file mode 100644
index a8616fa55..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1From 8f1457864be8fb9653643519dea1c6492f1dde57 Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Fri, 3 Oct 2014 20:15:52 +0200
4Subject: [PATCH] avcodec/gifdec: factorize interleave end handling out
5
6(Upstream commit 8f1457864be8fb9653643519dea1c6492f1dde57)
7
8also change it to a loop
9Fixes out of array access
10Fixes: asan_heap-oob_ca5410_8_asan_heap-oob_ca5410_97_ID_LSD_Size_Less_Then_Data_Inter_3.gif
11
12Upstream-Status: Backport
13
14Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16Signed-off-by: Yue Tao <yue.tao@windriver.com>
17---
18 libavcodec/gifdec.c | 15 +++++----------
19 1 file changed, 5 insertions(+), 10 deletions(-)
20
21diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c
22index dee48f5..90de38b 100644
23--- a/gst-libs/ext/libav/libavcodec/gifdec.c
24+++ b/gst-libs/ext/libav/libavcodec/gifdec.c
25@@ -271,26 +271,21 @@ static int gif_read_image(GifState *s, AVFrame *frame)
26 case 1:
27 y1 += 8;
28 ptr += linesize * 8;
29- if (y1 >= height) {
30- y1 = pass ? 2 : 4;
31- ptr = ptr1 + linesize * y1;
32- pass++;
33- }
34 break;
35 case 2:
36 y1 += 4;
37 ptr += linesize * 4;
38- if (y1 >= height) {
39- y1 = 1;
40- ptr = ptr1 + linesize;
41- pass++;
42- }
43 break;
44 case 3:
45 y1 += 2;
46 ptr += linesize * 2;
47 break;
48 }
49+ while (y1 >= height) {
50+ y1 = 4 >> pass;
51+ ptr = ptr1 + linesize * y1;
52+ pass++;
53+ }
54 } else {
55 ptr += linesize;
56 }
57--
581.7.9.5
59
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch
deleted file mode 100644
index 0553ceefd..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 0d3a3b9f8907625b361420d48fe05716859620ff Mon Sep 17 00:00:00 2001
2From: Michael Niedermayer <michaelni@gmx.at>
3Date: Wed, 26 Nov 2014 18:56:39 +0100
4Subject: [PATCH] avcodec/rawdec: Check the return code of
5 avpicture_get_size()
6
7(Upstream commit 1d3a3b9f8907625b361420d48fe05716859620ff)
8
9Fixes out of array access
10Fixes: asan_heap-oob_22388d0_3435_cov_3297128910_small_roll5_FlashCine1.cine
11Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
12
13Upstream-Status: Backport
14
15Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
16Signed-off-by: Yue Tao <yue.tao@windriver.com>
17---
18 libavcodec/rawdec.c | 3 +++
19 1 file changed, 3 insertions(+)
20
21diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
22index 28792a1..647dfa9 100644
23--- a/gst-libs/ext/libav/libavcodec/rawdec.c
24+++ b/gst-libs/ext/libav/libavcodec/rawdec.c
25@@ -87,6 +87,9 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
26
27 ff_set_systematic_pal2(context->palette, avctx->pix_fmt);
28 context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
29+ if (context->length < 0)
30+ return context->length;
31+
32 if((avctx->bits_per_coded_sample == 4 || avctx->bits_per_coded_sample == 2) &&
33 avctx->pix_fmt==PIX_FMT_PAL8 &&
34 (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))){
35--
361.7.9.5
37
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch
deleted file mode 100644
index 5dda4cca2..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From dc68faf8339a885bc55fabe5b01f1de4f8f3782c Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com>
3Date: Wed, 13 May 2015 16:30:53 +0800
4Subject: [PATCH 1/2] gst-ffmpeg: fix CVE-2014-9603
5
6Upstream-Status: Backport
7
8Upstream is version 2.x and vmdav.c is splitted into 2 files vmdaudio.c
9and vmdvideo.c. Becuase source code changes, just partly backport commit which
10is applicable to version 0.10.13 to fix CVE-2014-9603.
11
12http://git.videolan.org/?p=ffmpeg.git;a=commit;h=3030fb7e0d41836f8add6399e9a7c7b740b48bfd
13
14Signed-off-by: Kai Kang <kai.kang@windriver.com>
15---
16 gst-libs/ext/libav/libavcodec/vmdav.c | 7 +++++--
17 1 file changed, 5 insertions(+), 2 deletions(-)
18
19diff --git a/gst-libs/ext/libav/libavcodec/vmdav.c b/gst-libs/ext/libav/libavcodec/vmdav.c
20index d258252..ba88ad8 100644
21--- a/gst-libs/ext/libav/libavcodec/vmdav.c
22+++ b/gst-libs/ext/libav/libavcodec/vmdav.c
23@@ -294,10 +294,13 @@ static void vmd_decode(VmdVideoContext *s)
24 len = *pb++;
25 if (len & 0x80) {
26 len = (len & 0x7F) + 1;
27- if (*pb++ == 0xFF)
28+ if (*pb++ == 0xFF) {
29 len = rle_unpack(pb, &dp[ofs], len, frame_width - ofs);
30- else
31+ } else {
32+ if (ofs + len > frame_width)
33+ return;
34 memcpy(&dp[ofs], pb, len);
35+ }
36 pb += len;
37 ofs += len;
38 } else {
39--
401.9.1
41
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
deleted file mode 100644
index ade24dc06..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
+++ /dev/null
@@ -1,57 +0,0 @@
1Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1
2
3Fixes these errors on x86
4
5libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
6libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
7libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
8libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
9libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
10libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
11libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
12libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
13make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
14
15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Upstream-Status: Backport
18Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
19===================================================================
20--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
21+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
22@@ -398,7 +398,7 @@
23 "2: \n\t"\
24 \
25 : "+a"(src), "+c"(dst)\
26- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
27+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
28 : "memory"\
29 );\
30 src += 4-(h+5)*srcStride;\
31@@ -446,7 +446,7 @@
32 QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
33 "2: \n\t"\
34 : "+a"(src)\
35- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
36+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
37 : "memory"\
38 );\
39 tmp += 4;\
40@@ -823,7 +823,7 @@
41 "2: \n\t"\
42 \
43 : "+a"(src), "+c"(dst)\
44- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
45+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
46 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
47 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
48 "memory"\
49@@ -878,7 +878,7 @@
50 QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
51 "2: \n\t"
52 : "+a"(src)
53- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
54+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
55 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
56 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
57 "memory"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch
deleted file mode 100644
index 186075220..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch
+++ /dev/null
@@ -1,9304 +0,0 @@
1Taken from gentoo patchset:
2http://dev.gentoo.org/~tetromino/distfiles/gst-plugins-ffmpeg/gst-ffmpeg-0.10.13_p2012.11-libav-9-patches.tar.xz
3
4Upstream-Status: Pending
5
6Contains following changes, rebased to apply on top of our changes
70002-Fix-includes-for-systemwide-build.patch
80003-libav-Switch-to-non-deprecated-symbols.patch
90005-av-Update-for-some-constant-changes.patch
100006-av-Remove-palette-support-for-now.patch
110007-av-Port-remaining-simple-bits.patch
120008-av-Use-av_codec_is_-en-de-coder-API-instead-of-priva.patch
130009-avprotocol-Port-from-the-URL-protocol-handler-to-san.patch
140010-avdec-don-t-wait-for-keyframe.patch
15
16Following changes were skipped:
170001-Partially-revert-commit-0300801b.patch
180004-av-update-to-use-AVOption-variants.patch
190011-av_get_bits_per_sample_format-was-removed-in-libav-9.patch
20
21Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
22
23diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.c
24--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.c 2011-10-31 11:14:03.000000000 +0100
25+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.c 2014-08-08 15:26:07.872857555 +0200
26@@ -151,9 +151,6 @@
27 #endif
28 gst_ffmpegaudioresample_register (plugin);
29
30- av_register_protocol2 (&gstreamer_protocol, sizeof (URLProtocol));
31- av_register_protocol2 (&gstpipe_protocol, sizeof (URLProtocol));
32-
33 /* Now we can return the pointer to the newly created Plugin object. */
34 return TRUE;
35 }
36diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.h gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.h
37--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.h 2011-05-17 10:53:16.000000000 +0200
38+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.h 2014-08-08 15:26:07.872857555 +0200
39@@ -58,10 +58,13 @@
40 int gst_ffmpeg_avcodec_close (AVCodecContext *avctx);
41 int gst_ffmpeg_av_find_stream_info(AVFormatContext *ic);
42
43-G_END_DECLS
44+int gst_ffmpegdata_open (GstPad * pad, int flags, AVIOContext ** context);
45+int gst_ffmpegdata_close (AVIOContext * h);
46+typedef struct _GstFFMpegPipe GstFFMpegPipe;
47+int gst_ffmpeg_pipe_open (GstFFMpegPipe *ffpipe, int flags, AVIOContext ** context);
48+int gst_ffmpeg_pipe_close (AVIOContext * h);
49
50-extern URLProtocol gstreamer_protocol;
51-extern URLProtocol gstpipe_protocol;
52+G_END_DECLS
53
54 /* use GST_FFMPEG URL_STREAMHEADER with URL_WRONLY if the first
55 * buffer should be used as streamheader property on the pad's caps. */
56diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcfg.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcfg.c
57--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcfg.c 2011-07-12 16:35:27.000000000 +0200
58+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcfg.c 2014-08-08 15:24:17.899853612 +0200
59@@ -147,7 +147,6 @@
60 {FF_DCT_FASTINT, "Fast Integer", "fastint"},
61 {FF_DCT_INT, "Accurate Integer", "int"},
62 {FF_DCT_MMX, "MMX", "mmx"},
63- {FF_DCT_MLIB, "MLIB", "mlib"},
64 {FF_DCT_ALTIVEC, "ALTIVEC", "altivec"},
65 {FF_DCT_FAAN, "FAAN", "faan"},
66 {0, NULL, NULL},
67@@ -173,8 +172,6 @@
68 {FF_IDCT_SIMPLE, "Simple", "simple"},
69 {FF_IDCT_SIMPLEMMX, "Simple MMX", "simplemmx"},
70 {FF_IDCT_LIBMPEG2MMX, "LIBMPEG2MMX", "libmpeg2mmx"},
71- {FF_IDCT_PS2, "PS2", "ps2"},
72- {FF_IDCT_MLIB, "MLIB", "mlib"},
73 {FF_IDCT_ARM, "ARM", "arm"},
74 {FF_IDCT_ALTIVEC, "ALTIVEC", "altivec"},
75 {FF_IDCT_SH4, "SH4", "sh4"},
76@@ -263,16 +260,11 @@
77
78 if (!ffmpeg_flags_type) {
79 static const GFlagsValue ffmpeg_flags[] = {
80- {CODEC_FLAG_OBMC, "Use overlapped block motion compensation (h263+)",
81- "obmc"},
82 {CODEC_FLAG_QSCALE, "Use fixed qscale", "qscale"},
83 {CODEC_FLAG_4MV, "Allow 4 MV per MB", "4mv"},
84- {CODEC_FLAG_H263P_AIV, "H.263 alternative inter VLC", "aiv"},
85 {CODEC_FLAG_QPEL, "Quartel Pel Motion Compensation", "qpel"},
86 {CODEC_FLAG_GMC, "GMC", "gmc"},
87 {CODEC_FLAG_MV0, "Always try a MB with MV (0,0)", "mv0"},
88- {CODEC_FLAG_PART,
89- "Store MV, DC and AC coefficients in seperate partitions", "part"},
90 {CODEC_FLAG_LOOP_FILTER, "Loop filter", "loop-filter"},
91 {CODEC_FLAG_GRAY, "Only decode/encode grayscale", "gray"},
92 {CODEC_FLAG_NORMALIZE_AQP,
93@@ -282,13 +274,9 @@
94 "global-headers"},
95 {CODEC_FLAG_AC_PRED, "H263 Advanced Intra Coding / MPEG4 AC prediction",
96 "aic"},
97- {CODEC_FLAG_H263P_UMV, "Unlimited Motion Vector", "umv"},
98 {CODEC_FLAG_CBP_RD, "Rate Distoration Optimization for CBP", "cbp-rd"},
99 {CODEC_FLAG_QP_RD, "Rate Distoration Optimization for QP selection",
100 "qp-rd"},
101- {CODEC_FLAG_H263P_SLICE_STRUCT, "H263 slice struct", "ss"},
102- {CODEC_FLAG_SVCD_SCAN_OFFSET,
103- "Reserve space for SVCD scan offset user data", "scanoffset"},
104 {CODEC_FLAG_CLOSED_GOP, "Closed GOP", "closedgop"},
105 {0, NULL, NULL},
106 };
107diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c
108--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c 2011-10-31 11:14:03.000000000 +0100
109+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c 2014-08-08 15:31:30.968869139 +0200
110@@ -25,8 +25,10 @@
111 #include <gst/gst.h>
112 #ifdef HAVE_FFMPEG_UNINSTALLED
113 #include <avcodec.h>
114+#include <channel_layout.h>
115 #else
116 #include <libavcodec/avcodec.h>
117+#include <libavutil/channel_layout.h>
118 #endif
119 #include <string.h>
120
121@@ -35,43 +37,6 @@
122
123 #include <gst/pbutils/codec-utils.h>
124
125-/*
126- * Read a palette from a caps.
127- */
128-
129-static void
130-gst_ffmpeg_get_palette (const GstCaps * caps, AVCodecContext * context)
131-{
132- GstStructure *str = gst_caps_get_structure (caps, 0);
133- const GValue *palette_v;
134- const GstBuffer *palette;
135-
136- /* do we have a palette? */
137- if ((palette_v = gst_structure_get_value (str, "palette_data")) && context) {
138- palette = gst_value_get_buffer (palette_v);
139- if (GST_BUFFER_SIZE (palette) >= AVPALETTE_SIZE) {
140- if (context->palctrl)
141- av_free (context->palctrl);
142- context->palctrl = av_malloc (sizeof (AVPaletteControl));
143- context->palctrl->palette_changed = 1;
144- memcpy (context->palctrl->palette, GST_BUFFER_DATA (palette),
145- AVPALETTE_SIZE);
146- }
147- }
148-}
149-
150-static void
151-gst_ffmpeg_set_palette (GstCaps * caps, AVCodecContext * context)
152-{
153- if (context->palctrl) {
154- GstBuffer *palette = gst_buffer_new_and_alloc (AVPALETTE_SIZE);
155-
156- memcpy (GST_BUFFER_DATA (palette), context->palctrl->palette,
157- AVPALETTE_SIZE);
158- gst_caps_set_simple (caps, "palette_data", GST_TYPE_BUFFER, palette, NULL);
159- }
160-}
161-
162 /* IMPORTANT: Keep this sorted by the ffmpeg channel masks */
163 static const struct
164 {
165@@ -79,26 +44,26 @@
166 GstAudioChannelPosition gst;
167 } _ff_to_gst_layout[] = {
168 {
169- CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
170- CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, {
171- CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, {
172- CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, {
173- CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, {
174- CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, {
175- CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, {
176- CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, {
177- CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, {
178- CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, {
179- CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, {
180- CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
181- CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
182- CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
183- CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
184- CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
185- CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
186- CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
187- CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
188- CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}
189+ AV_CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
190+ AV_CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, {
191+ AV_CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, {
192+ AV_CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, {
193+ AV_CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, {
194+ AV_CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, {
195+ AV_CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, {
196+ AV_CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, {
197+ AV_CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, {
198+ AV_CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, {
199+ AV_CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, {
200+ AV_CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
201+ AV_CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
202+ AV_CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
203+ AV_CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
204+ AV_CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
205+ AV_CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
206+ AV_CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
207+ AV_CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
208+ AV_CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}
209 };
210
211 static GstAudioChannelPosition *
212@@ -342,8 +307,8 @@
213
214 if (channel_layout == 0) {
215 const guint64 default_channel_set[] = {
216- 0, 0, CH_LAYOUT_SURROUND, CH_LAYOUT_QUAD, CH_LAYOUT_5POINT0,
217- CH_LAYOUT_5POINT1, 0, CH_LAYOUT_7POINT1
218+ 0, 0, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_5POINT0,
219+ AV_CH_LAYOUT_5POINT1, 0, AV_CH_LAYOUT_7POINT1
220 };
221
222 switch (codec_id) {
223@@ -1267,8 +1232,6 @@
224 case CODEC_ID_FLIC:
225 case CODEC_ID_VMDVIDEO:
226 case CODEC_ID_VMDAUDIO:
227- case CODEC_ID_SONIC:
228- case CODEC_ID_SONIC_LS:
229 case CODEC_ID_SNOW:
230 case CODEC_ID_VIXL:
231 case CODEC_ID_QPEG:
232@@ -1689,11 +1652,6 @@
233 gst_buffer_unref (data);
234 }
235
236- /* palette */
237- if (context) {
238- gst_ffmpeg_set_palette (caps, context);
239- }
240-
241 GST_LOG ("caps for codec_id=%d: %" GST_PTR_FORMAT, codec_id, caps);
242
243 } else {
244@@ -1830,9 +1788,6 @@
245 "bpp", G_TYPE_INT, bpp,
246 "depth", G_TYPE_INT, depth,
247 "endianness", G_TYPE_INT, endianness, NULL);
248- if (caps && context) {
249- gst_ffmpeg_set_palette (caps, context);
250- }
251 }
252 } else if (fmt) {
253 caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-yuv",
254@@ -1857,7 +1812,7 @@
255 */
256
257 static GstCaps *
258-gst_ffmpeg_smpfmt_to_caps (enum SampleFormat sample_fmt,
259+gst_ffmpeg_smpfmt_to_caps (enum AVSampleFormat sample_fmt,
260 AVCodecContext * context, enum CodecID codec_id)
261 {
262 GstCaps *caps = NULL;
263@@ -1867,22 +1822,22 @@
264 gboolean signedness = FALSE;
265
266 switch (sample_fmt) {
267- case SAMPLE_FMT_S16:
268+ case AV_SAMPLE_FMT_S16:
269 signedness = TRUE;
270 bpp = 16;
271 break;
272
273- case SAMPLE_FMT_S32:
274+ case AV_SAMPLE_FMT_S32:
275 signedness = TRUE;
276 bpp = 32;
277 break;
278
279- case SAMPLE_FMT_FLT:
280+ case AV_SAMPLE_FMT_FLT:
281 integer = FALSE;
282 bpp = 32;
283 break;
284
285- case SAMPLE_FMT_DBL:
286+ case AV_SAMPLE_FMT_DBL:
287 integer = FALSE;
288 bpp = 64;
289 break;
290@@ -1941,12 +1896,12 @@
291 }
292 } else {
293 GstCaps *temp;
294- enum SampleFormat i;
295+ enum AVSampleFormat i;
296 AVCodecContext ctx = { 0, };
297
298 ctx.channels = -1;
299 caps = gst_caps_new_empty ();
300- for (i = 0; i <= SAMPLE_FMT_DBL; i++) {
301+ for (i = 0; i <= AV_SAMPLE_FMT_DBL; i++) {
302 temp = gst_ffmpeg_smpfmt_to_caps (i, encode ? &ctx : NULL, codec_id);
303 if (temp != NULL) {
304 gst_caps_append (caps, temp);
305@@ -2049,9 +2004,9 @@
306 gst_structure_get_int (structure, "endianness", &endianness)) {
307 if (endianness == G_BYTE_ORDER) {
308 if (width == 32)
309- context->sample_fmt = SAMPLE_FMT_FLT;
310+ context->sample_fmt = AV_SAMPLE_FMT_FLT;
311 else if (width == 64)
312- context->sample_fmt = SAMPLE_FMT_DBL;
313+ context->sample_fmt = AV_SAMPLE_FMT_DBL;
314 }
315 }
316 } else {
317@@ -2062,9 +2017,9 @@
318 gst_structure_get_int (structure, "endianness", &endianness)) {
319 if ((endianness == G_BYTE_ORDER) && (signedness == TRUE)) {
320 if ((width == 16) && (depth == 16))
321- context->sample_fmt = SAMPLE_FMT_S16;
322+ context->sample_fmt = AV_SAMPLE_FMT_S16;
323 else if ((width == 32) && (depth == 32))
324- context->sample_fmt = SAMPLE_FMT_S32;
325+ context->sample_fmt = AV_SAMPLE_FMT_S32;
326 }
327 }
328 }
329@@ -2190,7 +2145,6 @@
330 } else {
331 if (bpp == 8) {
332 context->pix_fmt = PIX_FMT_PAL8;
333- gst_ffmpeg_get_palette (caps, context);
334 }
335 }
336 }
337@@ -2576,7 +2530,6 @@
338 switch (codec_type) {
339 case AVMEDIA_TYPE_VIDEO:
340 gst_ffmpeg_caps_to_pixfmt (caps, context, codec_id == CODEC_ID_RAWVIDEO);
341- gst_ffmpeg_get_palette (caps, context);
342 break;
343 case AVMEDIA_TYPE_AUDIO:
344 gst_ffmpeg_caps_to_smpfmt (caps, context, FALSE);
345diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.orig
346--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.orig 1970-01-01 01:00:00.000000000 +0100
347+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.orig 2014-08-08 15:30:34.006867097 +0200
348@@ -0,0 +1,3447 @@
349+/* GStreamer
350+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
351+ * This file:
352+ * Copyright (c) 2002-2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
353+ *
354+ * This library is free software; you can redistribute it and/or
355+ * modify it under the terms of the GNU Library General Public
356+ * License as published by the Free Software Foundation; either
357+ * version 2 of the License, or (at your option) any later version.
358+ *
359+ * This library is distributed in the hope that it will be useful,
360+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
361+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
362+ * Library General Public License for more details.
363+ *
364+ * You should have received a copy of the GNU Library General Public
365+ * License along with this library; if not, write to the
366+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
367+ * Boston, MA 02111-1307, USA.
368+ */
369+
370+#ifdef HAVE_CONFIG_H
371+#include "config.h"
372+#endif
373+#include <gst/gst.h>
374+#ifdef HAVE_FFMPEG_UNINSTALLED
375+#include <avcodec.h>
376+#include <channel_layout.h>>
377+#else
378+#include <libavcodec/avcodec.h>
379+#include <libavutil/channel_layout.h>
380+#endif
381+#include <string.h>
382+
383+#include "gstffmpeg.h"
384+#include "gstffmpegcodecmap.h"
385+
386+#include <gst/pbutils/codec-utils.h>
387+
388+/*
389+ * Read a palette from a caps.
390+ */
391+
392+static void
393+gst_ffmpeg_get_palette (const GstCaps * caps, AVCodecContext * context)
394+{
395+ GstStructure *str = gst_caps_get_structure (caps, 0);
396+ const GValue *palette_v;
397+ const GstBuffer *palette;
398+
399+ /* do we have a palette? */
400+ if ((palette_v = gst_structure_get_value (str, "palette_data")) && context) {
401+ palette = gst_value_get_buffer (palette_v);
402+ if (GST_BUFFER_SIZE (palette) >= AVPALETTE_SIZE) {
403+ if (context->palctrl)
404+ av_free (context->palctrl);
405+ context->palctrl = av_malloc (sizeof (AVPaletteControl));
406+ context->palctrl->palette_changed = 1;
407+ memcpy (context->palctrl->palette, GST_BUFFER_DATA (palette),
408+ AVPALETTE_SIZE);
409+ }
410+ }
411+}
412+
413+static void
414+gst_ffmpeg_set_palette (GstCaps * caps, AVCodecContext * context)
415+{
416+ if (context->palctrl) {
417+ GstBuffer *palette = gst_buffer_new_and_alloc (AVPALETTE_SIZE);
418+
419+ memcpy (GST_BUFFER_DATA (palette), context->palctrl->palette,
420+ AVPALETTE_SIZE);
421+ gst_caps_set_simple (caps, "palette_data", GST_TYPE_BUFFER, palette, NULL);
422+ }
423+}
424+
425+/* IMPORTANT: Keep this sorted by the ffmpeg channel masks */
426+static const struct
427+{
428+ guint64 ff;
429+ GstAudioChannelPosition gst;
430+} _ff_to_gst_layout[] = {
431+ {
432+ AV_CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
433+ AV_CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, {
434+ AV_CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, {
435+ AV_CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, {
436+ AV_CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, {
437+ AV_CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, {
438+ AV_CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, {
439+ AV_CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, {
440+ AV_CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, {
441+ AV_CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, {
442+ AV_CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, {
443+ AV_CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
444+ AV_CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
445+ AV_CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
446+ AV_CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
447+ AV_CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
448+ AV_CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, {
449+ AV_CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, {
450+ AV_CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, {
451+ AV_CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}
452+};
453+
454+static GstAudioChannelPosition *
455+gst_ff_channel_layout_to_gst (guint64 channel_layout, guint channels)
456+{
457+ guint nchannels = 0, i, j;
458+ GstAudioChannelPosition *pos = NULL;
459+ gboolean none_layout = FALSE;
460+
461+ for (i = 0; i < 64; i++) {
462+ if ((channel_layout & (G_GUINT64_CONSTANT (1) << i)) != 0) {
463+ nchannels++;
464+ }
465+ }
466+
467+ if (channel_layout == 0) {
468+ nchannels = channels;
469+ none_layout = TRUE;
470+ }
471+
472+ if (nchannels != channels) {
473+ GST_ERROR ("Number of channels is different (%u != %u)", channels,
474+ nchannels);
475+ return NULL;
476+ }
477+
478+ pos = g_new (GstAudioChannelPosition, nchannels);
479+
480+ for (i = 0, j = 0; i < G_N_ELEMENTS (_ff_to_gst_layout); i++) {
481+ if ((channel_layout & _ff_to_gst_layout[i].ff) != 0) {
482+ pos[j++] = _ff_to_gst_layout[i].gst;
483+
484+ if (_ff_to_gst_layout[i].gst == GST_AUDIO_CHANNEL_POSITION_NONE)
485+ none_layout = TRUE;
486+ }
487+ }
488+
489+ if (j != nchannels) {
490+ GST_WARNING ("Unknown channels in channel layout - assuming NONE layout");
491+ none_layout = TRUE;
492+ }
493+
494+ if (!none_layout && !gst_audio_check_channel_positions (pos, nchannels)) {
495+ GST_ERROR ("Invalid channel layout %" G_GUINT64_FORMAT
496+ " - assuming NONE layout", channel_layout);
497+ none_layout = TRUE;
498+ }
499+
500+ if (none_layout) {
501+ if (nchannels == 1) {
502+ pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO;
503+ } else if (nchannels == 2) {
504+ pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
505+ pos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
506+ } else if (channel_layout == 0) {
507+ g_free (pos);
508+ pos = NULL;
509+ } else {
510+ for (i = 0; i < nchannels; i++)
511+ pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
512+ }
513+ }
514+
515+ if (nchannels == 1 && pos[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER) {
516+ GST_DEBUG ("mono common case; won't set channel positions");
517+ g_free (pos);
518+ pos = NULL;
519+ } else if (nchannels == 2 && pos[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT
520+ && pos[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) {
521+ GST_DEBUG ("stereo common case; won't set channel positions");
522+ g_free (pos);
523+ pos = NULL;
524+ }
525+
526+ return pos;
527+}
528+
529+/* this macro makes a caps width fixed or unfixed width/height
530+ * properties depending on whether we've got a context.
531+ *
532+ * See below for why we use this.
533+ *
534+ * We should actually do this stuff at the end, like in riff-media.c,
535+ * but I'm too lazy today. Maybe later.
536+ */
537+static GstCaps *
538+gst_ff_vid_caps_new (AVCodecContext * context, enum CodecID codec_id,
539+ const char *mimetype, const char *fieldname, ...)
540+{
541+ GstStructure *structure = NULL;
542+ GstCaps *caps = NULL;
543+ va_list var_args;
544+ gint i;
545+
546+ GST_LOG ("context:%p, codec_id:%d, mimetype:%s", context, codec_id, mimetype);
547+
548+ /* fixed, non probing context */
549+ if (context != NULL && context->width != -1) {
550+ gint num, denom;
551+
552+ caps = gst_caps_new_simple (mimetype,
553+ "width", G_TYPE_INT, context->width,
554+ "height", G_TYPE_INT, context->height, NULL);
555+
556+ num = context->time_base.den / context->ticks_per_frame;
557+ denom = context->time_base.num;
558+
559+ if (!denom) {
560+ GST_LOG ("invalid framerate: %d/0, -> %d/1", num, num);
561+ denom = 1;
562+ }
563+ if (gst_util_fraction_compare (num, denom, 1000, 1) > 0) {
564+ GST_LOG ("excessive framerate: %d/%d, -> 0/1", num, denom);
565+ num = 0;
566+ denom = 1;
567+ }
568+ GST_LOG ("setting framerate: %d/%d", num, denom);
569+ gst_caps_set_simple (caps,
570+ "framerate", GST_TYPE_FRACTION, num, denom, NULL);
571+ } else {
572+ /* so we are after restricted caps in this case */
573+ switch (codec_id) {
574+ case CODEC_ID_H261:
575+ {
576+ caps = gst_caps_new_simple (mimetype,
577+ "width", G_TYPE_INT, 352,
578+ "height", G_TYPE_INT, 288,
579+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
580+ gst_caps_append (caps, gst_caps_new_simple (mimetype,
581+ "width", G_TYPE_INT, 176,
582+ "height", G_TYPE_INT, 144,
583+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL));
584+ break;
585+ }
586+ case CODEC_ID_H263:
587+ {
588+ /* 128x96, 176x144, 352x288, 704x576, and 1408x1152. slightly reordered
589+ * because we want automatic negotiation to go as close to 320x240 as
590+ * possible. */
591+ const static gint widths[] = { 352, 704, 176, 1408, 128 };
592+ const static gint heights[] = { 288, 576, 144, 1152, 96 };
593+ GstCaps *temp;
594+ gint n_sizes = G_N_ELEMENTS (widths);
595+
596+ caps = gst_caps_new_empty ();
597+ for (i = 0; i < n_sizes; i++) {
598+ temp = gst_caps_new_simple (mimetype,
599+ "width", G_TYPE_INT, widths[i],
600+ "height", G_TYPE_INT, heights[i],
601+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
602+
603+ gst_caps_append (caps, temp);
604+ }
605+ break;
606+ }
607+ case CODEC_ID_DVVIDEO:
608+ {
609+ static struct
610+ {
611+ guint32 csp;
612+ gint width, height;
613+ gint par_n, par_d;
614+ gint framerate_n, framerate_d;
615+ } profiles[] = {
616+ {
617+ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 480, 10, 11, 30000, 1001}, {
618+ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 480, 40, 33, 30000, 1001}, {
619+ GST_MAKE_FOURCC ('I', '4', '2', '0'), 720, 576, 59, 54, 25, 1}, {
620+ GST_MAKE_FOURCC ('I', '4', '2', '0'), 720, 576, 118, 81, 25, 1}, {
621+ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 576, 59, 54, 25, 1}, {
622+ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 576, 118, 81, 25, 1}
623+ };
624+ GstCaps *temp;
625+ gint n_sizes = G_N_ELEMENTS (profiles);
626+
627+ caps = gst_caps_new_empty ();
628+ for (i = 0; i < n_sizes; i++) {
629+ temp = gst_caps_new_simple (mimetype,
630+ "width", G_TYPE_INT, profiles[i].width,
631+ "height", G_TYPE_INT, profiles[i].height,
632+ "framerate", GST_TYPE_FRACTION, profiles[i].framerate_n,
633+ profiles[i].framerate_d, "pixel-aspect-ratio", GST_TYPE_FRACTION,
634+ profiles[i].par_n, profiles[i].par_d, NULL);
635+
636+ gst_caps_append (caps, temp);
637+ }
638+ break;
639+ }
640+ case CODEC_ID_DNXHD:
641+ {
642+ caps = gst_caps_new_simple (mimetype,
643+ "width", G_TYPE_INT, 1920,
644+ "height", G_TYPE_INT, 1080,
645+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
646+ gst_caps_append (caps, gst_caps_new_simple (mimetype,
647+ "width", G_TYPE_INT, 1280,
648+ "height", G_TYPE_INT, 720,
649+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL));
650+ break;
651+ }
652+ default:
653+ break;
654+ }
655+ }
656+
657+ /* no fixed caps or special restrictions applied;
658+ * default unfixed setting */
659+ if (!caps) {
660+ GST_DEBUG ("Creating default caps");
661+ caps = gst_caps_new_simple (mimetype,
662+ "width", GST_TYPE_INT_RANGE, 16, 4096,
663+ "height", GST_TYPE_INT_RANGE, 16, 4096,
664+ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
665+ }
666+
667+ for (i = 0; i < gst_caps_get_size (caps); i++) {
668+ va_start (var_args, fieldname);
669+ structure = gst_caps_get_structure (caps, i);
670+ gst_structure_set_valist (structure, fieldname, var_args);
671+ va_end (var_args);
672+ }
673+
674+ return caps;
675+}
676+
677+/* same for audio - now with channels/sample rate
678+ */
679+static GstCaps *
680+gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
681+ const char *mimetype, const char *fieldname, ...)
682+{
683+ GstCaps *caps = NULL;
684+ GstStructure *structure = NULL;
685+ gint i;
686+ va_list var_args;
687+
688+ /* fixed, non-probing context */
689+ if (context != NULL && context->channels != -1) {
690+ GstAudioChannelPosition *pos;
691+ guint64 channel_layout = context->channel_layout;
692+
693+ if (channel_layout == 0) {
694+ const guint64 default_channel_set[] = {
695+ 0, 0, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_5POINT0,
696+ AV_CH_LAYOUT_5POINT1, 0, AV_CH_LAYOUT_7POINT1
697+ };
698+
699+ switch (codec_id) {
700+ case CODEC_ID_EAC3:
701+ case CODEC_ID_AC3:
702+ case CODEC_ID_DTS:
703+ if (context->channels > 0
704+ && context->channels < G_N_ELEMENTS (default_channel_set))
705+ channel_layout = default_channel_set[context->channels - 1];
706+ break;
707+ default:
708+ break;
709+ }
710+ }
711+
712+ caps = gst_caps_new_simple (mimetype,
713+ "rate", G_TYPE_INT, context->sample_rate,
714+ "channels", G_TYPE_INT, context->channels, NULL);
715+
716+ pos = gst_ff_channel_layout_to_gst (channel_layout, context->channels);
717+ if (pos != NULL) {
718+ gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos);
719+ g_free (pos);
720+ }
721+ } else {
722+ gint maxchannels = 2;
723+ const gint *rates = NULL;
724+ gint n_rates = 0;
725+
726+ /* so we must be after restricted caps in this case */
727+ switch (codec_id) {
728+ case CODEC_ID_AAC:
729+ case CODEC_ID_AAC_LATM:
730+ case CODEC_ID_DTS:
731+ maxchannels = 6;
732+ break;
733+ case CODEC_ID_MP2:
734+ {
735+ const static gint l_rates[] =
736+ { 48000, 44100, 32000, 24000, 22050, 16000 };
737+ n_rates = G_N_ELEMENTS (l_rates);
738+ rates = l_rates;
739+ break;
740+ }
741+ case CODEC_ID_EAC3:
742+ case CODEC_ID_AC3:
743+ {
744+ const static gint l_rates[] = { 48000, 44100, 32000 };
745+ maxchannels = 6;
746+ n_rates = G_N_ELEMENTS (l_rates);
747+ rates = l_rates;
748+ break;
749+ }
750+ case CODEC_ID_ADPCM_G722:
751+ {
752+ const static gint l_rates[] = { 16000 };
753+ n_rates = G_N_ELEMENTS (l_rates);
754+ rates = l_rates;
755+ maxchannels = 1;
756+ break;
757+ }
758+ case CODEC_ID_ADPCM_G726:
759+ {
760+ const static gint l_rates[] = { 8000 };
761+ n_rates = G_N_ELEMENTS (l_rates);
762+ rates = l_rates;
763+ maxchannels = 1;
764+ break;
765+ }
766+ case CODEC_ID_ADPCM_SWF:
767+ {
768+ const static gint l_rates[] = { 11025, 22050, 44100 };
769+ n_rates = G_N_ELEMENTS (l_rates);
770+ rates = l_rates;
771+ break;
772+ }
773+ case CODEC_ID_ROQ_DPCM:
774+ {
775+ const static gint l_rates[] = { 22050 };
776+ n_rates = G_N_ELEMENTS (l_rates);
777+ rates = l_rates;
778+ break;
779+ }
780+ case CODEC_ID_AMR_NB:
781+ {
782+ const static gint l_rates[] = { 8000 };
783+ maxchannels = 1;
784+ n_rates = G_N_ELEMENTS (l_rates);
785+ rates = l_rates;
786+ break;
787+ }
788+ case CODEC_ID_AMR_WB:
789+ {
790+ const static gint l_rates[] = { 16000 };
791+ maxchannels = 1;
792+ n_rates = G_N_ELEMENTS (l_rates);
793+ rates = l_rates;
794+ break;
795+ }
796+ default:
797+ break;
798+ }
799+
800+ /* TODO: handle context->channel_layouts here to set
801+ * the list of channel layouts supported by the encoder.
802+ * Unfortunately no encoder uses this yet....
803+ */
804+ /* regardless of encode/decode, open up channels if applicable */
805+ /* Until decoders/encoders expose the maximum number of channels
806+ * they support, we whitelist them here. */
807+ switch (codec_id) {
808+ case CODEC_ID_WMAPRO:
809+ case CODEC_ID_TRUEHD:
810+ maxchannels = 8;
811+ break;
812+ default:
813+ break;
814+ }
815+
816+ if (maxchannels == 1)
817+ caps = gst_caps_new_simple (mimetype,
818+ "channels", G_TYPE_INT, maxchannels, NULL);
819+ else
820+ caps = gst_caps_new_simple (mimetype,
821+ "channels", GST_TYPE_INT_RANGE, 1, maxchannels, NULL);
822+ if (n_rates) {
823+ GValue list = { 0, };
824+ GstStructure *structure;
825+
826+ g_value_init (&list, GST_TYPE_LIST);
827+ for (i = 0; i < n_rates; i++) {
828+ GValue v = { 0, };
829+
830+ g_value_init (&v, G_TYPE_INT);
831+ g_value_set_int (&v, rates[i]);
832+ gst_value_list_append_value (&list, &v);
833+ g_value_unset (&v);
834+ }
835+ structure = gst_caps_get_structure (caps, 0);
836+ gst_structure_set_value (structure, "rate", &list);
837+ g_value_unset (&list);
838+ } else
839+ gst_caps_set_simple (caps, "rate", GST_TYPE_INT_RANGE, 4000, 96000, NULL);
840+ }
841+
842+ for (i = 0; i < gst_caps_get_size (caps); i++) {
843+ va_start (var_args, fieldname);
844+ structure = gst_caps_get_structure (caps, i);
845+ gst_structure_set_valist (structure, fieldname, var_args);
846+ va_end (var_args);
847+ }
848+
849+ return caps;
850+}
851+
852+/* Convert a FFMPEG codec ID and optional AVCodecContext
853+ * to a GstCaps. If the context is ommitted, no fixed values
854+ * for video/audio size will be included in the GstCaps
855+ *
856+ * CodecID is primarily meant for compressed data GstCaps!
857+ *
858+ * encode is a special parameter. gstffmpegdec will say
859+ * FALSE, gstffmpegenc will say TRUE. The output caps
860+ * depends on this, in such a way that it will be very
861+ * specific, defined, fixed and correct caps for encoders,
862+ * yet very wide, "forgiving" caps for decoders. Example
863+ * for mp3: decode: audio/mpeg,mpegversion=1,layer=[1-3]
864+ * but encode: audio/mpeg,mpegversion=1,layer=3,bitrate=x,
865+ * rate=x,channels=x.
866+ */
867+
868+GstCaps *
869+gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
870+ AVCodecContext * context, gboolean encode)
871+{
872+ GstCaps *caps = NULL;
873+ gboolean buildcaps = FALSE;
874+
875+ GST_LOG ("codec_id:%d, context:%p, encode:%d", codec_id, context, encode);
876+
877+ switch (codec_id) {
878+ case CODEC_ID_MPEG1VIDEO:
879+ /* FIXME: bitrate */
880+ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg",
881+ "mpegversion", G_TYPE_INT, 1,
882+ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
883+ break;
884+
885+ case CODEC_ID_MPEG2VIDEO:
886+ if (encode) {
887+ /* FIXME: bitrate */
888+ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg",
889+ "mpegversion", G_TYPE_INT, 2,
890+ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
891+ } else {
892+ /* decode both MPEG-1 and MPEG-2; width/height/fps are all in
893+ * the MPEG video stream headers, so may be omitted from caps. */
894+ caps = gst_caps_new_simple ("video/mpeg",
895+ "mpegversion", GST_TYPE_INT_RANGE, 1, 2,
896+ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
897+ }
898+ break;
899+
900+ case CODEC_ID_MPEG2VIDEO_XVMC:
901+ /* this is a special ID - don't need it in GStreamer, I think */
902+ break;
903+
904+ case CODEC_ID_H263:
905+ if (encode) {
906+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h263",
907+ "variant", G_TYPE_STRING, "itu",
908+ "h263version", G_TYPE_STRING, "h263", NULL);
909+ } else {
910+ /* don't pass codec_id, we can decode other variants with the H263
911+ * decoder that don't have specific size requirements
912+ */
913+ caps = gst_ff_vid_caps_new (context, CODEC_ID_NONE, "video/x-h263",
914+ "variant", G_TYPE_STRING, "itu", NULL);
915+ }
916+ break;
917+
918+ case CODEC_ID_H263P:
919+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h263",
920+ "variant", G_TYPE_STRING, "itu",
921+ "h263version", G_TYPE_STRING, "h263p", NULL);
922+ if (encode && context) {
923+
924+ gst_caps_set_simple (caps,
925+ "annex-f", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_4MV,
926+ "annex-j", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_LOOP_FILTER,
927+ "annex-i", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_AC_PRED,
928+ "annex-t", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_AC_PRED,
929+ NULL);
930+ }
931+ break;
932+
933+ case CODEC_ID_H263I:
934+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-intel-h263",
935+ "variant", G_TYPE_STRING, "intel", NULL);
936+ break;
937+
938+ case CODEC_ID_H261:
939+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h261", NULL);
940+ break;
941+
942+ case CODEC_ID_RV10:
943+ case CODEC_ID_RV20:
944+ case CODEC_ID_RV30:
945+ case CODEC_ID_RV40:
946+ {
947+ gint version;
948+
949+ switch (codec_id) {
950+ case CODEC_ID_RV40:
951+ version = 4;
952+ break;
953+ case CODEC_ID_RV30:
954+ version = 3;
955+ break;
956+ case CODEC_ID_RV20:
957+ version = 2;
958+ break;
959+ default:
960+ version = 1;
961+ break;
962+ }
963+
964+ /* FIXME: context->sub_id must be filled in during decoding */
965+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-pn-realvideo",
966+ "systemstream", G_TYPE_BOOLEAN, FALSE,
967+ "rmversion", G_TYPE_INT, version, NULL);
968+ if (context) {
969+ gst_caps_set_simple (caps, "format", G_TYPE_INT, context->sub_id, NULL);
970+ if (context->extradata_size >= 8) {
971+ gst_caps_set_simple (caps,
972+ "subformat", G_TYPE_INT, GST_READ_UINT32_BE (context->extradata),
973+ NULL);
974+ }
975+ }
976+ }
977+ break;
978+
979+ case CODEC_ID_MP1:
980+ /* FIXME: bitrate */
981+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
982+ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 1, NULL);
983+ break;
984+
985+ case CODEC_ID_MP2:
986+ /* FIXME: bitrate */
987+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
988+ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 2, NULL);
989+ break;
990+
991+ case CODEC_ID_MP3:
992+ if (encode) {
993+ /* FIXME: bitrate */
994+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
995+ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL);
996+ } else {
997+ /* Decodes MPEG-1 layer 1/2/3. Samplerate, channels et al are
998+ * in the MPEG audio header, so may be omitted from caps. */
999+ caps = gst_caps_new_simple ("audio/mpeg",
1000+ "mpegversion", G_TYPE_INT, 1,
1001+ "layer", GST_TYPE_INT_RANGE, 1, 3, NULL);
1002+ }
1003+ break;
1004+
1005+ case CODEC_ID_MUSEPACK7:
1006+ caps =
1007+ gst_ff_aud_caps_new (context, codec_id,
1008+ "audio/x-ffmpeg-parsed-musepack", "streamversion", G_TYPE_INT, 7,
1009+ NULL);
1010+ break;
1011+
1012+ case CODEC_ID_MUSEPACK8:
1013+ caps =
1014+ gst_ff_aud_caps_new (context, codec_id,
1015+ "audio/x-ffmpeg-parsed-musepack", "streamversion", G_TYPE_INT, 8,
1016+ NULL);
1017+ break;
1018+
1019+ case CODEC_ID_AC3:
1020+ /* FIXME: bitrate */
1021+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-ac3", NULL);
1022+ break;
1023+
1024+ case CODEC_ID_EAC3:
1025+ /* FIXME: bitrate */
1026+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-eac3", NULL);
1027+ break;
1028+
1029+ case CODEC_ID_TRUEHD:
1030+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-true-hd", NULL);
1031+ break;
1032+
1033+ case CODEC_ID_ATRAC1:
1034+ caps =
1035+ gst_ff_aud_caps_new (context, codec_id, "audio/x-vnd.sony.atrac1",
1036+ NULL);
1037+ break;
1038+
1039+ case CODEC_ID_ATRAC3:
1040+ caps =
1041+ gst_ff_aud_caps_new (context, codec_id, "audio/x-vnd.sony.atrac3",
1042+ NULL);
1043+ break;
1044+
1045+ case CODEC_ID_DTS:
1046+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dts", NULL);
1047+ break;
1048+
1049+ case CODEC_ID_APE:
1050+ caps =
1051+ gst_ff_aud_caps_new (context, codec_id, "audio/x-ffmpeg-parsed-ape",
1052+ NULL);
1053+ if (context) {
1054+ gst_caps_set_simple (caps,
1055+ "depth", G_TYPE_INT, context->bits_per_coded_sample, NULL);
1056+ }
1057+ break;
1058+
1059+ case CODEC_ID_MLP:
1060+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mlp", NULL);
1061+ break;
1062+
1063+ case CODEC_ID_IMC:
1064+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-imc", NULL);
1065+ break;
1066+
1067+ /* MJPEG is normal JPEG, Motion-JPEG and Quicktime MJPEG-A. MJPEGB
1068+ * is Quicktime's MJPEG-B. LJPEG is lossless JPEG. I don't know what
1069+ * sp5x is, but it's apparently something JPEG... We don't separate
1070+ * between those in GStreamer. Should we (at least between MJPEG,
1071+ * MJPEG-B and sp5x decoding...)? */
1072+ case CODEC_ID_MJPEG:
1073+ case CODEC_ID_LJPEG:
1074+ caps = gst_ff_vid_caps_new (context, codec_id, "image/jpeg", NULL);
1075+ break;
1076+
1077+ case CODEC_ID_SP5X:
1078+ caps = gst_ff_vid_caps_new (context, codec_id, "video/sp5x", NULL);
1079+ break;
1080+
1081+ case CODEC_ID_MJPEGB:
1082+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mjpeg-b", NULL);
1083+ break;
1084+
1085+ case CODEC_ID_MPEG4:
1086+ if (encode && context != NULL) {
1087+ /* I'm not exactly sure what ffmpeg outputs... ffmpeg itself uses
1088+ * the AVI fourcc 'DIVX', but 'mp4v' for Quicktime... */
1089+ switch (context->codec_tag) {
1090+ case GST_MAKE_FOURCC ('D', 'I', 'V', 'X'):
1091+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-divx",
1092+ "divxversion", G_TYPE_INT, 5, NULL);
1093+ break;
1094+ case GST_MAKE_FOURCC ('m', 'p', '4', 'v'):
1095+ default:
1096+ /* FIXME: bitrate */
1097+ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg",
1098+ "systemstream", G_TYPE_BOOLEAN, FALSE,
1099+ "mpegversion", G_TYPE_INT, 4, NULL);
1100+ break;
1101+ }
1102+ } else {
1103+ /* The trick here is to separate xvid, divx, mpeg4, 3ivx et al */
1104+ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg",
1105+ "mpegversion", G_TYPE_INT, 4,
1106+ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
1107+ if (encode) {
1108+ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id,
1109+ "video/x-divx", "divxversion", G_TYPE_INT, 5, NULL));
1110+ } else {
1111+ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id,
1112+ "video/x-divx", "divxversion", GST_TYPE_INT_RANGE, 4, 5,
1113+ NULL));
1114+ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id,
1115+ "video/x-xvid", NULL));
1116+ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id,
1117+ "video/x-3ivx", NULL));
1118+ }
1119+ }
1120+ break;
1121+
1122+ case CODEC_ID_RAWVIDEO:
1123+ caps =
1124+ gst_ffmpeg_codectype_to_caps (AVMEDIA_TYPE_VIDEO, context, codec_id,
1125+ encode);
1126+ break;
1127+
1128+ case CODEC_ID_MSMPEG4V1:
1129+ case CODEC_ID_MSMPEG4V2:
1130+ case CODEC_ID_MSMPEG4V3:
1131+ {
1132+ gint version = 41 + codec_id - CODEC_ID_MSMPEG4V1;
1133+
1134+ /* encode-FIXME: bitrate */
1135+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-msmpeg",
1136+ "msmpegversion", G_TYPE_INT, version, NULL);
1137+ if (!encode && codec_id == CODEC_ID_MSMPEG4V3) {
1138+ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id,
1139+ "video/x-divx", "divxversion", G_TYPE_INT, 3, NULL));
1140+ }
1141+ }
1142+ break;
1143+
1144+ case CODEC_ID_WMV1:
1145+ case CODEC_ID_WMV2:
1146+ {
1147+ gint version = (codec_id == CODEC_ID_WMV1) ? 1 : 2;
1148+
1149+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv",
1150+ "wmvversion", G_TYPE_INT, version, NULL);
1151+ }
1152+ break;
1153+
1154+ case CODEC_ID_FLV1:
1155+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-flash-video",
1156+ "flvversion", G_TYPE_INT, 1, NULL);
1157+ break;
1158+
1159+ case CODEC_ID_SVQ1:
1160+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-svq",
1161+ "svqversion", G_TYPE_INT, 1, NULL);
1162+ break;
1163+
1164+ case CODEC_ID_SVQ3:
1165+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-svq",
1166+ "svqversion", G_TYPE_INT, 3, NULL);
1167+ break;
1168+
1169+ case CODEC_ID_DVAUDIO:
1170+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dv", NULL);
1171+ break;
1172+
1173+ case CODEC_ID_DVVIDEO:
1174+ {
1175+ if (encode && context) {
1176+ guint32 fourcc;
1177+
1178+ switch (context->pix_fmt) {
1179+ case PIX_FMT_YUYV422:
1180+ fourcc = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2');
1181+ break;
1182+ case PIX_FMT_YUV420P:
1183+ fourcc = GST_MAKE_FOURCC ('I', '4', '2', '0');
1184+ break;
1185+ case PIX_FMT_YUVA420P:
1186+ fourcc = GST_MAKE_FOURCC ('A', '4', '2', '0');
1187+ break;
1188+ case PIX_FMT_YUV411P:
1189+ fourcc = GST_MAKE_FOURCC ('Y', '4', '1', 'B');
1190+ break;
1191+ case PIX_FMT_YUV422P:
1192+ fourcc = GST_MAKE_FOURCC ('Y', '4', '2', 'B');
1193+ break;
1194+ case PIX_FMT_YUV410P:
1195+ fourcc = GST_MAKE_FOURCC ('Y', 'U', 'V', '9');
1196+ break;
1197+ default:
1198+ GST_WARNING
1199+ ("Couldnt' find fourcc for pixfmt %d, defaulting to I420",
1200+ context->pix_fmt);
1201+ fourcc = GST_MAKE_FOURCC ('I', '4', '2', '0');
1202+ break;
1203+ }
1204+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dv",
1205+ "systemstream", G_TYPE_BOOLEAN, FALSE,
1206+ "format", GST_TYPE_FOURCC, fourcc, NULL);
1207+ } else {
1208+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dv",
1209+ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
1210+ }
1211+ }
1212+ break;
1213+
1214+ case CODEC_ID_WMAV1:
1215+ case CODEC_ID_WMAV2:
1216+ {
1217+ gint version = (codec_id == CODEC_ID_WMAV1) ? 1 : 2;
1218+
1219+ if (context) {
1220+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma",
1221+ "wmaversion", G_TYPE_INT, version,
1222+ "block_align", G_TYPE_INT, context->block_align,
1223+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1224+ } else {
1225+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma",
1226+ "wmaversion", G_TYPE_INT, version,
1227+ "block_align", GST_TYPE_INT_RANGE, 0, G_MAXINT,
1228+ "bitrate", GST_TYPE_INT_RANGE, 0, G_MAXINT, NULL);
1229+ }
1230+ }
1231+ break;
1232+ case CODEC_ID_WMAPRO:
1233+ {
1234+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma",
1235+ "wmaversion", G_TYPE_INT, 3, NULL);
1236+ break;
1237+ }
1238+
1239+ case CODEC_ID_WMAVOICE:
1240+ {
1241+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wms", NULL);
1242+ break;
1243+ }
1244+
1245+ case CODEC_ID_MACE3:
1246+ case CODEC_ID_MACE6:
1247+ {
1248+ gint version = (codec_id == CODEC_ID_MACE3) ? 3 : 6;
1249+
1250+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mace",
1251+ "maceversion", G_TYPE_INT, version, NULL);
1252+ }
1253+ break;
1254+
1255+ case CODEC_ID_HUFFYUV:
1256+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-huffyuv", NULL);
1257+ if (context) {
1258+ gst_caps_set_simple (caps,
1259+ "bpp", G_TYPE_INT, context->bits_per_coded_sample, NULL);
1260+ }
1261+ break;
1262+
1263+ case CODEC_ID_CYUV:
1264+ caps =
1265+ gst_ff_vid_caps_new (context, codec_id, "video/x-compressed-yuv",
1266+ NULL);
1267+ break;
1268+
1269+ case CODEC_ID_H264:
1270+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h264", NULL);
1271+ break;
1272+
1273+ case CODEC_ID_INDEO5:
1274+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo",
1275+ "indeoversion", G_TYPE_INT, 5, NULL);
1276+ break;
1277+
1278+ case CODEC_ID_INDEO3:
1279+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo",
1280+ "indeoversion", G_TYPE_INT, 3, NULL);
1281+ break;
1282+
1283+ case CODEC_ID_INDEO2:
1284+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo",
1285+ "indeoversion", G_TYPE_INT, 2, NULL);
1286+ break;
1287+
1288+ case CODEC_ID_FLASHSV:
1289+ caps =
1290+ gst_ff_vid_caps_new (context, codec_id, "video/x-flash-screen", NULL);
1291+ break;
1292+
1293+ case CODEC_ID_VP3:
1294+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp3", NULL);
1295+ break;
1296+
1297+ case CODEC_ID_VP5:
1298+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp5", NULL);
1299+ break;
1300+
1301+ case CODEC_ID_VP6:
1302+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6", NULL);
1303+ break;
1304+
1305+ case CODEC_ID_VP6F:
1306+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6-flash", NULL);
1307+ break;
1308+
1309+ case CODEC_ID_VP6A:
1310+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6-alpha", NULL);
1311+ break;
1312+
1313+ case CODEC_ID_VP8:
1314+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp8", NULL);
1315+ break;
1316+
1317+ case CODEC_ID_THEORA:
1318+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-theora", NULL);
1319+ break;
1320+
1321+ case CODEC_ID_AAC:
1322+ {
1323+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", NULL);
1324+
1325+ if (!encode) {
1326+ GValue arr = { 0, };
1327+ GValue item = { 0, };
1328+
1329+ g_value_init (&arr, GST_TYPE_LIST);
1330+ g_value_init (&item, G_TYPE_INT);
1331+ g_value_set_int (&item, 2);
1332+ gst_value_list_append_value (&arr, &item);
1333+ g_value_set_int (&item, 4);
1334+ gst_value_list_append_value (&arr, &item);
1335+ g_value_unset (&item);
1336+
1337+ gst_caps_set_value (caps, "mpegversion", &arr);
1338+ g_value_unset (&arr);
1339+
1340+ g_value_init (&arr, GST_TYPE_LIST);
1341+ g_value_init (&item, G_TYPE_STRING);
1342+ g_value_set_string (&item, "raw");
1343+ gst_value_list_append_value (&arr, &item);
1344+ g_value_set_string (&item, "adts");
1345+ gst_value_list_append_value (&arr, &item);
1346+ g_value_set_string (&item, "adif");
1347+ gst_value_list_append_value (&arr, &item);
1348+ g_value_unset (&item);
1349+
1350+ gst_caps_set_value (caps, "stream-format", &arr);
1351+ g_value_unset (&arr);
1352+ } else {
1353+ gst_caps_set_simple (caps, "mpegversion", G_TYPE_INT, 4,
1354+ "stream-format", G_TYPE_STRING, "raw",
1355+ "base-profile", G_TYPE_STRING, "lc", NULL);
1356+
1357+ if (context && context->extradata_size > 0)
1358+ gst_codec_utils_aac_caps_set_level_and_profile (caps,
1359+ context->extradata, context->extradata_size);
1360+ }
1361+
1362+ break;
1363+ }
1364+ case CODEC_ID_AAC_LATM: /* LATM/LOAS AAC syntax */
1365+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
1366+ "mpegversion", G_TYPE_INT, 4, "stream-format", G_TYPE_STRING, "loas",
1367+ NULL);
1368+ break;
1369+
1370+ case CODEC_ID_ASV1:
1371+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-asus",
1372+ "asusversion", G_TYPE_INT, 1, NULL);
1373+ break;
1374+ case CODEC_ID_ASV2:
1375+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-asus",
1376+ "asusversion", G_TYPE_INT, 2, NULL);
1377+ break;
1378+
1379+ case CODEC_ID_FFV1:
1380+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ffv",
1381+ "ffvversion", G_TYPE_INT, 1, NULL);
1382+ break;
1383+
1384+ case CODEC_ID_4XM:
1385+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-4xm", NULL);
1386+ break;
1387+
1388+ case CODEC_ID_XAN_WC3:
1389+ case CODEC_ID_XAN_WC4:
1390+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-xan",
1391+ "wcversion", G_TYPE_INT, 3 - CODEC_ID_XAN_WC3 + codec_id, NULL);
1392+ break;
1393+
1394+ case CODEC_ID_CLJR:
1395+ caps =
1396+ gst_ff_vid_caps_new (context, codec_id,
1397+ "video/x-cirrus-logic-accupak", NULL);
1398+ break;
1399+
1400+ case CODEC_ID_FRAPS:
1401+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-fraps", NULL);
1402+ break;
1403+
1404+ case CODEC_ID_MDEC:
1405+ case CODEC_ID_ROQ:
1406+ case CODEC_ID_INTERPLAY_VIDEO:
1407+ buildcaps = TRUE;
1408+ break;
1409+
1410+ case CODEC_ID_VCR1:
1411+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ati-vcr",
1412+ "vcrversion", G_TYPE_INT, 1, NULL);
1413+ break;
1414+
1415+ case CODEC_ID_RPZA:
1416+ caps =
1417+ gst_ff_vid_caps_new (context, codec_id, "video/x-apple-video", NULL);
1418+ break;
1419+
1420+ case CODEC_ID_CINEPAK:
1421+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-cinepak", NULL);
1422+ break;
1423+
1424+ /* WS_VQA belogns here (order) */
1425+
1426+ case CODEC_ID_MSRLE:
1427+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-rle",
1428+ "layout", G_TYPE_STRING, "microsoft", NULL);
1429+ if (context) {
1430+ gst_caps_set_simple (caps,
1431+ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
1432+ } else {
1433+ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL);
1434+ }
1435+ break;
1436+
1437+ case CODEC_ID_QTRLE:
1438+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-rle",
1439+ "layout", G_TYPE_STRING, "quicktime", NULL);
1440+ if (context) {
1441+ gst_caps_set_simple (caps,
1442+ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
1443+ } else {
1444+ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL);
1445+ }
1446+ break;
1447+
1448+ case CODEC_ID_MSVIDEO1:
1449+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-msvideocodec",
1450+ "msvideoversion", G_TYPE_INT, 1, NULL);
1451+ break;
1452+
1453+ case CODEC_ID_WMV3:
1454+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv",
1455+ "wmvversion", G_TYPE_INT, 3, NULL);
1456+ break;
1457+ case CODEC_ID_VC1:
1458+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv",
1459+ "wmvversion", G_TYPE_INT, 3, "format", GST_TYPE_FOURCC,
1460+ GST_MAKE_FOURCC ('W', 'V', 'C', '1'), NULL);
1461+ break;
1462+ case CODEC_ID_QDM2:
1463+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-qdm2", NULL);
1464+ break;
1465+
1466+ case CODEC_ID_MSZH:
1467+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mszh", NULL);
1468+ break;
1469+
1470+ case CODEC_ID_ZLIB:
1471+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-zlib", NULL);
1472+ break;
1473+
1474+ case CODEC_ID_TRUEMOTION1:
1475+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-truemotion",
1476+ "trueversion", G_TYPE_INT, 1, NULL);
1477+ break;
1478+ case CODEC_ID_TRUEMOTION2:
1479+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-truemotion",
1480+ "trueversion", G_TYPE_INT, 2, NULL);
1481+ break;
1482+
1483+ case CODEC_ID_ULTI:
1484+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ultimotion",
1485+ NULL);
1486+ break;
1487+
1488+ case CODEC_ID_TSCC:
1489+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-camtasia", NULL);
1490+ if (context) {
1491+ gst_caps_set_simple (caps,
1492+ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
1493+ } else {
1494+ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 8, 32, NULL);
1495+ }
1496+ break;
1497+
1498+ case CODEC_ID_KMVC:
1499+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-kmvc", NULL);
1500+ break;
1501+
1502+ case CODEC_ID_NUV:
1503+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-nuv", NULL);
1504+ break;
1505+
1506+ case CODEC_ID_GIF:
1507+ caps = gst_ff_vid_caps_new (context, codec_id, "image/gif", NULL);
1508+ break;
1509+
1510+ case CODEC_ID_PNG:
1511+ caps = gst_ff_vid_caps_new (context, codec_id, "image/png", NULL);
1512+ break;
1513+
1514+ case CODEC_ID_PPM:
1515+ caps = gst_ff_vid_caps_new (context, codec_id, "image/ppm", NULL);
1516+ break;
1517+
1518+ case CODEC_ID_PBM:
1519+ caps = gst_ff_vid_caps_new (context, codec_id, "image/pbm", NULL);
1520+ break;
1521+
1522+ case CODEC_ID_PAM:
1523+ caps =
1524+ gst_ff_vid_caps_new (context, codec_id, "image/x-portable-anymap",
1525+ NULL);
1526+ break;
1527+
1528+ case CODEC_ID_PGM:
1529+ caps =
1530+ gst_ff_vid_caps_new (context, codec_id, "image/x-portable-graymap",
1531+ NULL);
1532+ break;
1533+
1534+ case CODEC_ID_PCX:
1535+ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-pcx", NULL);
1536+ break;
1537+
1538+ case CODEC_ID_SGI:
1539+ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-sgi", NULL);
1540+ break;
1541+
1542+ case CODEC_ID_TARGA:
1543+ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-tga", NULL);
1544+ break;
1545+
1546+ case CODEC_ID_TIFF:
1547+ caps = gst_ff_vid_caps_new (context, codec_id, "image/tiff", NULL);
1548+ break;
1549+
1550+ case CODEC_ID_SUNRAST:
1551+ caps =
1552+ gst_ff_vid_caps_new (context, codec_id, "image/x-sun-raster", NULL);
1553+ break;
1554+
1555+ case CODEC_ID_SMC:
1556+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-smc", NULL);
1557+ break;
1558+
1559+ case CODEC_ID_QDRAW:
1560+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-qdrw", NULL);
1561+ break;
1562+
1563+ case CODEC_ID_DNXHD:
1564+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dnxhd", NULL);
1565+ break;
1566+
1567+ case CODEC_ID_MIMIC:
1568+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mimic", NULL);
1569+ break;
1570+
1571+ case CODEC_ID_VMNC:
1572+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vmnc", NULL);
1573+ break;
1574+
1575+ case CODEC_ID_TRUESPEECH:
1576+ caps =
1577+ gst_ff_aud_caps_new (context, codec_id, "audio/x-truespeech", NULL);
1578+ break;
1579+
1580+ case CODEC_ID_QCELP:
1581+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/qcelp", NULL);
1582+ break;
1583+
1584+ case CODEC_ID_AMV:
1585+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-amv", NULL);
1586+ break;
1587+
1588+ case CODEC_ID_AASC:
1589+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-aasc", NULL);
1590+ break;
1591+
1592+ case CODEC_ID_LOCO:
1593+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-loco", NULL);
1594+ break;
1595+
1596+ case CODEC_ID_ZMBV:
1597+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-zmbv", NULL);
1598+ break;
1599+
1600+ case CODEC_ID_LAGARITH:
1601+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-lagarith", NULL);
1602+ break;
1603+
1604+ case CODEC_ID_CSCD:
1605+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-camstudio", NULL);
1606+ if (context) {
1607+ gst_caps_set_simple (caps,
1608+ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
1609+ } else {
1610+ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 8, 32, NULL);
1611+ }
1612+ break;
1613+
1614+ case CODEC_ID_WS_VQA:
1615+ case CODEC_ID_IDCIN:
1616+ case CODEC_ID_8BPS:
1617+ case CODEC_ID_FLIC:
1618+ case CODEC_ID_VMDVIDEO:
1619+ case CODEC_ID_VMDAUDIO:
1620+ case CODEC_ID_SNOW:
1621+ case CODEC_ID_VIXL:
1622+ case CODEC_ID_QPEG:
1623+ case CODEC_ID_PGMYUV:
1624+ case CODEC_ID_FFVHUFF:
1625+ case CODEC_ID_WNV1:
1626+ case CODEC_ID_MP3ADU:
1627+ case CODEC_ID_MP3ON4:
1628+ case CODEC_ID_WESTWOOD_SND1:
1629+ case CODEC_ID_MMVIDEO:
1630+ case CODEC_ID_AVS:
1631+ case CODEC_ID_CAVS:
1632+ buildcaps = TRUE;
1633+ break;
1634+
1635+ /* weird quasi-codecs for the demuxers only */
1636+ case CODEC_ID_PCM_S16LE:
1637+ case CODEC_ID_PCM_S16BE:
1638+ case CODEC_ID_PCM_U16LE:
1639+ case CODEC_ID_PCM_U16BE:
1640+ case CODEC_ID_PCM_S8:
1641+ case CODEC_ID_PCM_U8:
1642+ {
1643+ gint width = 0, depth = 0, endianness = 0;
1644+ gboolean signedness = FALSE; /* blabla */
1645+
1646+ switch (codec_id) {
1647+ case CODEC_ID_PCM_S16LE:
1648+ width = 16;
1649+ depth = 16;
1650+ endianness = G_LITTLE_ENDIAN;
1651+ signedness = TRUE;
1652+ break;
1653+ case CODEC_ID_PCM_S16BE:
1654+ width = 16;
1655+ depth = 16;
1656+ endianness = G_BIG_ENDIAN;
1657+ signedness = TRUE;
1658+ break;
1659+ case CODEC_ID_PCM_U16LE:
1660+ width = 16;
1661+ depth = 16;
1662+ endianness = G_LITTLE_ENDIAN;
1663+ signedness = FALSE;
1664+ break;
1665+ case CODEC_ID_PCM_U16BE:
1666+ width = 16;
1667+ depth = 16;
1668+ endianness = G_BIG_ENDIAN;
1669+ signedness = FALSE;
1670+ break;
1671+ case CODEC_ID_PCM_S8:
1672+ width = 8;
1673+ depth = 8;
1674+ endianness = G_BYTE_ORDER;
1675+ signedness = TRUE;
1676+ break;
1677+ case CODEC_ID_PCM_U8:
1678+ width = 8;
1679+ depth = 8;
1680+ endianness = G_BYTE_ORDER;
1681+ signedness = FALSE;
1682+ break;
1683+ default:
1684+ g_assert (0); /* don't worry, we never get here */
1685+ break;
1686+ }
1687+
1688+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-int",
1689+ "width", G_TYPE_INT, width,
1690+ "depth", G_TYPE_INT, depth,
1691+ "endianness", G_TYPE_INT, endianness,
1692+ "signed", G_TYPE_BOOLEAN, signedness, NULL);
1693+ }
1694+ break;
1695+
1696+ case CODEC_ID_PCM_MULAW:
1697+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mulaw", NULL);
1698+ break;
1699+
1700+ case CODEC_ID_PCM_ALAW:
1701+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-alaw", NULL);
1702+ break;
1703+
1704+ case CODEC_ID_ADPCM_G722:
1705+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/G722", NULL);
1706+ if (context)
1707+ gst_caps_set_simple (caps,
1708+ "block_align", G_TYPE_INT, context->block_align,
1709+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1710+ break;
1711+
1712+ case CODEC_ID_ADPCM_G726:
1713+ {
1714+ /* the G726 decoder can also handle G721 */
1715+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-adpcm",
1716+ "layout", G_TYPE_STRING, "g726", NULL);
1717+ if (context)
1718+ gst_caps_set_simple (caps,
1719+ "block_align", G_TYPE_INT, context->block_align,
1720+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1721+
1722+ if (!encode) {
1723+ gst_caps_append (caps, gst_caps_new_simple ("audio/x-adpcm",
1724+ "layout", G_TYPE_STRING, "g721",
1725+ "channels", G_TYPE_INT, 1, "rate", G_TYPE_INT, 8000, NULL));
1726+ }
1727+ break;
1728+ }
1729+ case CODEC_ID_ADPCM_IMA_QT:
1730+ case CODEC_ID_ADPCM_IMA_WAV:
1731+ case CODEC_ID_ADPCM_IMA_DK3:
1732+ case CODEC_ID_ADPCM_IMA_DK4:
1733+ case CODEC_ID_ADPCM_IMA_WS:
1734+ case CODEC_ID_ADPCM_IMA_SMJPEG:
1735+ case CODEC_ID_ADPCM_IMA_AMV:
1736+ case CODEC_ID_ADPCM_IMA_ISS:
1737+ case CODEC_ID_ADPCM_IMA_EA_EACS:
1738+ case CODEC_ID_ADPCM_IMA_EA_SEAD:
1739+ case CODEC_ID_ADPCM_MS:
1740+ case CODEC_ID_ADPCM_4XM:
1741+ case CODEC_ID_ADPCM_XA:
1742+ case CODEC_ID_ADPCM_ADX:
1743+ case CODEC_ID_ADPCM_EA:
1744+ case CODEC_ID_ADPCM_CT:
1745+ case CODEC_ID_ADPCM_SWF:
1746+ case CODEC_ID_ADPCM_YAMAHA:
1747+ case CODEC_ID_ADPCM_SBPRO_2:
1748+ case CODEC_ID_ADPCM_SBPRO_3:
1749+ case CODEC_ID_ADPCM_SBPRO_4:
1750+ case CODEC_ID_ADPCM_EA_R1:
1751+ case CODEC_ID_ADPCM_EA_R2:
1752+ case CODEC_ID_ADPCM_EA_R3:
1753+ case CODEC_ID_ADPCM_EA_MAXIS_XA:
1754+ case CODEC_ID_ADPCM_EA_XAS:
1755+ case CODEC_ID_ADPCM_THP:
1756+ {
1757+ const gchar *layout = NULL;
1758+
1759+ switch (codec_id) {
1760+ case CODEC_ID_ADPCM_IMA_QT:
1761+ layout = "quicktime";
1762+ break;
1763+ case CODEC_ID_ADPCM_IMA_WAV:
1764+ layout = "dvi";
1765+ break;
1766+ case CODEC_ID_ADPCM_IMA_DK3:
1767+ layout = "dk3";
1768+ break;
1769+ case CODEC_ID_ADPCM_IMA_DK4:
1770+ layout = "dk4";
1771+ break;
1772+ case CODEC_ID_ADPCM_IMA_WS:
1773+ layout = "westwood";
1774+ break;
1775+ case CODEC_ID_ADPCM_IMA_SMJPEG:
1776+ layout = "smjpeg";
1777+ break;
1778+ case CODEC_ID_ADPCM_IMA_AMV:
1779+ layout = "amv";
1780+ break;
1781+ case CODEC_ID_ADPCM_IMA_ISS:
1782+ layout = "iss";
1783+ break;
1784+ case CODEC_ID_ADPCM_IMA_EA_EACS:
1785+ layout = "ea-eacs";
1786+ break;
1787+ case CODEC_ID_ADPCM_IMA_EA_SEAD:
1788+ layout = "ea-sead";
1789+ break;
1790+ case CODEC_ID_ADPCM_MS:
1791+ layout = "microsoft";
1792+ break;
1793+ case CODEC_ID_ADPCM_4XM:
1794+ layout = "4xm";
1795+ break;
1796+ case CODEC_ID_ADPCM_XA:
1797+ layout = "xa";
1798+ break;
1799+ case CODEC_ID_ADPCM_ADX:
1800+ layout = "adx";
1801+ break;
1802+ case CODEC_ID_ADPCM_EA:
1803+ layout = "ea";
1804+ break;
1805+ case CODEC_ID_ADPCM_CT:
1806+ layout = "ct";
1807+ break;
1808+ case CODEC_ID_ADPCM_SWF:
1809+ layout = "swf";
1810+ break;
1811+ case CODEC_ID_ADPCM_YAMAHA:
1812+ layout = "yamaha";
1813+ break;
1814+ case CODEC_ID_ADPCM_SBPRO_2:
1815+ layout = "sbpro2";
1816+ break;
1817+ case CODEC_ID_ADPCM_SBPRO_3:
1818+ layout = "sbpro3";
1819+ break;
1820+ case CODEC_ID_ADPCM_SBPRO_4:
1821+ layout = "sbpro4";
1822+ break;
1823+ case CODEC_ID_ADPCM_EA_R1:
1824+ layout = "ea-r1";
1825+ break;
1826+ case CODEC_ID_ADPCM_EA_R2:
1827+ layout = "ea-r3";
1828+ break;
1829+ case CODEC_ID_ADPCM_EA_R3:
1830+ layout = "ea-r3";
1831+ break;
1832+ case CODEC_ID_ADPCM_EA_MAXIS_XA:
1833+ layout = "ea-maxis-xa";
1834+ break;
1835+ case CODEC_ID_ADPCM_EA_XAS:
1836+ layout = "ea-xas";
1837+ break;
1838+ case CODEC_ID_ADPCM_THP:
1839+ layout = "thp";
1840+ break;
1841+ default:
1842+ g_assert (0); /* don't worry, we never get here */
1843+ break;
1844+ }
1845+
1846+ /* FIXME: someone please check whether we need additional properties
1847+ * in this caps definition. */
1848+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-adpcm",
1849+ "layout", G_TYPE_STRING, layout, NULL);
1850+ if (context)
1851+ gst_caps_set_simple (caps,
1852+ "block_align", G_TYPE_INT, context->block_align,
1853+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1854+ }
1855+ break;
1856+
1857+ case CODEC_ID_AMR_NB:
1858+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/AMR", NULL);
1859+ break;
1860+
1861+ case CODEC_ID_AMR_WB:
1862+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/AMR-WB", NULL);
1863+ break;
1864+
1865+ case CODEC_ID_GSM:
1866+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-gsm", NULL);
1867+ break;
1868+
1869+ case CODEC_ID_GSM_MS:
1870+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/ms-gsm", NULL);
1871+ break;
1872+
1873+ case CODEC_ID_NELLYMOSER:
1874+ caps =
1875+ gst_ff_aud_caps_new (context, codec_id, "audio/x-nellymoser", NULL);
1876+ break;
1877+
1878+ case CODEC_ID_SIPR:
1879+ {
1880+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-sipro", NULL);
1881+ if (context) {
1882+ gst_caps_set_simple (caps,
1883+ "leaf_size", G_TYPE_INT, context->block_align,
1884+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1885+ }
1886+ }
1887+ break;
1888+
1889+ case CODEC_ID_RA_144:
1890+ case CODEC_ID_RA_288:
1891+ case CODEC_ID_COOK:
1892+ {
1893+ gint version = 0;
1894+
1895+ switch (codec_id) {
1896+ case CODEC_ID_RA_144:
1897+ version = 1;
1898+ break;
1899+ case CODEC_ID_RA_288:
1900+ version = 2;
1901+ break;
1902+ case CODEC_ID_COOK:
1903+ version = 8;
1904+ break;
1905+ default:
1906+ break;
1907+ }
1908+
1909+ /* FIXME: properties? */
1910+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-pn-realaudio",
1911+ "raversion", G_TYPE_INT, version, NULL);
1912+ if (context) {
1913+ gst_caps_set_simple (caps,
1914+ "leaf_size", G_TYPE_INT, context->block_align,
1915+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1916+ }
1917+ }
1918+ break;
1919+
1920+ case CODEC_ID_ROQ_DPCM:
1921+ case CODEC_ID_INTERPLAY_DPCM:
1922+ case CODEC_ID_XAN_DPCM:
1923+ case CODEC_ID_SOL_DPCM:
1924+ {
1925+ const gchar *layout = NULL;
1926+
1927+ switch (codec_id) {
1928+ case CODEC_ID_ROQ_DPCM:
1929+ layout = "roq";
1930+ break;
1931+ case CODEC_ID_INTERPLAY_DPCM:
1932+ layout = "interplay";
1933+ break;
1934+ case CODEC_ID_XAN_DPCM:
1935+ layout = "xan";
1936+ break;
1937+ case CODEC_ID_SOL_DPCM:
1938+ layout = "sol";
1939+ break;
1940+ default:
1941+ g_assert (0); /* don't worry, we never get here */
1942+ break;
1943+ }
1944+
1945+ /* FIXME: someone please check whether we need additional properties
1946+ * in this caps definition. */
1947+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dpcm",
1948+ "layout", G_TYPE_STRING, layout, NULL);
1949+ if (context)
1950+ gst_caps_set_simple (caps,
1951+ "block_align", G_TYPE_INT, context->block_align,
1952+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
1953+ }
1954+ break;
1955+
1956+ case CODEC_ID_SHORTEN:
1957+ caps = gst_caps_new_simple ("audio/x-shorten", NULL);
1958+ break;
1959+
1960+ case CODEC_ID_ALAC:
1961+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-alac", NULL);
1962+ if (context) {
1963+ gst_caps_set_simple (caps,
1964+ "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL);
1965+ }
1966+ break;
1967+
1968+ case CODEC_ID_FLAC:
1969+ /* Note that ffmpeg has no encoder yet, but just for safety. In the
1970+ * encoder case, we want to add things like samplerate, channels... */
1971+ if (!encode) {
1972+ caps = gst_caps_new_simple ("audio/x-flac", NULL);
1973+ }
1974+ break;
1975+
1976+ case CODEC_ID_DVD_SUBTITLE:
1977+ case CODEC_ID_DVB_SUBTITLE:
1978+ caps = NULL;
1979+ break;
1980+ case CODEC_ID_BMP:
1981+ caps = gst_caps_new_simple ("image/bmp", NULL);
1982+ break;
1983+ case CODEC_ID_TTA:
1984+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-tta", NULL);
1985+ if (context) {
1986+ gst_caps_set_simple (caps,
1987+ "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL);
1988+ }
1989+ break;
1990+ case CODEC_ID_TWINVQ:
1991+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-twin-vq", NULL);
1992+ break;
1993+ default:
1994+ GST_DEBUG ("Unknown codec ID %d, please add mapping here", codec_id);
1995+ break;
1996+ }
1997+
1998+ if (buildcaps) {
1999+ AVCodec *codec;
2000+
2001+ if ((codec = avcodec_find_decoder (codec_id)) ||
2002+ (codec = avcodec_find_encoder (codec_id))) {
2003+ gchar *mime = NULL;
2004+
2005+ GST_LOG ("Could not create stream format caps for %s", codec->name);
2006+
2007+ switch (codec->type) {
2008+ case AVMEDIA_TYPE_VIDEO:
2009+ mime = g_strdup_printf ("video/x-gst_ff-%s", codec->name);
2010+ caps = gst_ff_vid_caps_new (context, codec_id, mime, NULL);
2011+ g_free (mime);
2012+ break;
2013+ case AVMEDIA_TYPE_AUDIO:
2014+ mime = g_strdup_printf ("audio/x-gst_ff-%s", codec->name);
2015+ caps = gst_ff_aud_caps_new (context, codec_id, mime, NULL);
2016+ if (context)
2017+ gst_caps_set_simple (caps,
2018+ "block_align", G_TYPE_INT, context->block_align,
2019+ "bitrate", G_TYPE_INT, context->bit_rate, NULL);
2020+ g_free (mime);
2021+ break;
2022+ default:
2023+ break;
2024+ }
2025+ }
2026+ }
2027+
2028+ if (caps != NULL) {
2029+
2030+ /* set private data */
2031+ if (context && context->extradata_size > 0) {
2032+ GstBuffer *data = gst_buffer_new_and_alloc (context->extradata_size);
2033+
2034+ memcpy (GST_BUFFER_DATA (data), context->extradata,
2035+ context->extradata_size);
2036+ gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, data, NULL);
2037+ gst_buffer_unref (data);
2038+ }
2039+
2040+ /* palette */
2041+ if (context) {
2042+ gst_ffmpeg_set_palette (caps, context);
2043+ }
2044+
2045+ GST_LOG ("caps for codec_id=%d: %" GST_PTR_FORMAT, codec_id, caps);
2046+
2047+ } else {
2048+ GST_LOG ("No caps found for codec_id=%d", codec_id);
2049+ }
2050+
2051+ return caps;
2052+}
2053+
2054+/* Convert a FFMPEG Pixel Format and optional AVCodecContext
2055+ * to a GstCaps. If the context is ommitted, no fixed values
2056+ * for video/audio size will be included in the GstCaps
2057+ *
2058+ * See below for usefullness
2059+ */
2060+
2061+GstCaps *
2062+gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context,
2063+ enum CodecID codec_id)
2064+{
2065+ GstCaps *caps = NULL;
2066+
2067+ int bpp = 0, depth = 0, endianness = 0;
2068+ gulong g_mask = 0, r_mask = 0, b_mask = 0, a_mask = 0;
2069+ guint32 fmt = 0;
2070+
2071+ switch (pix_fmt) {
2072+ case PIX_FMT_YUVJ420P:
2073+ case PIX_FMT_YUV420P:
2074+ fmt = GST_MAKE_FOURCC ('I', '4', '2', '0');
2075+ break;
2076+ case PIX_FMT_YUVA420P:
2077+ fmt = GST_MAKE_FOURCC ('A', '4', '2', '0');
2078+ break;
2079+ case PIX_FMT_YUYV422:
2080+ fmt = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2');
2081+ break;
2082+ case PIX_FMT_RGB24:
2083+ bpp = depth = 24;
2084+ endianness = G_BIG_ENDIAN;
2085+ r_mask = 0xff0000;
2086+ g_mask = 0x00ff00;
2087+ b_mask = 0x0000ff;
2088+ break;
2089+ case PIX_FMT_BGR24:
2090+ bpp = depth = 24;
2091+ endianness = G_BIG_ENDIAN;
2092+ r_mask = 0x0000ff;
2093+ g_mask = 0x00ff00;
2094+ b_mask = 0xff0000;
2095+ break;
2096+ case PIX_FMT_YUVJ422P:
2097+ case PIX_FMT_YUV422P:
2098+ fmt = GST_MAKE_FOURCC ('Y', '4', '2', 'B');
2099+ break;
2100+ case PIX_FMT_YUVJ444P:
2101+ case PIX_FMT_YUV444P:
2102+ fmt = GST_MAKE_FOURCC ('Y', '4', '4', '4');
2103+ break;
2104+ case PIX_FMT_RGB32:
2105+ bpp = 32;
2106+ depth = 32;
2107+ endianness = G_BIG_ENDIAN;
2108+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
2109+ r_mask = 0x00ff0000;
2110+ g_mask = 0x0000ff00;
2111+ b_mask = 0x000000ff;
2112+ a_mask = 0xff000000;
2113+#else
2114+ r_mask = 0x0000ff00;
2115+ g_mask = 0x00ff0000;
2116+ b_mask = 0xff000000;
2117+ a_mask = 0x000000ff;
2118+#endif
2119+ break;
2120+ case PIX_FMT_YUV410P:
2121+ fmt = GST_MAKE_FOURCC ('Y', 'U', 'V', '9');
2122+ break;
2123+ case PIX_FMT_YUV411P:
2124+ fmt = GST_MAKE_FOURCC ('Y', '4', '1', 'B');
2125+ break;
2126+ case PIX_FMT_RGB565:
2127+ bpp = depth = 16;
2128+ endianness = G_BYTE_ORDER;
2129+ r_mask = 0xf800;
2130+ g_mask = 0x07e0;
2131+ b_mask = 0x001f;
2132+ break;
2133+ case PIX_FMT_RGB555:
2134+ bpp = 16;
2135+ depth = 15;
2136+ endianness = G_BYTE_ORDER;
2137+ r_mask = 0x7c00;
2138+ g_mask = 0x03e0;
2139+ b_mask = 0x001f;
2140+ break;
2141+ case PIX_FMT_PAL8:
2142+ bpp = depth = 8;
2143+ endianness = G_BYTE_ORDER;
2144+ break;
2145+ case PIX_FMT_GRAY8:
2146+ bpp = depth = 8;
2147+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-gray",
2148+ "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL);
2149+ break;
2150+ default:
2151+ /* give up ... */
2152+ break;
2153+ }
2154+
2155+ if (caps == NULL) {
2156+ if (bpp != 0) {
2157+ if (r_mask != 0) {
2158+ if (a_mask) {
2159+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb",
2160+ "bpp", G_TYPE_INT, bpp,
2161+ "depth", G_TYPE_INT, depth,
2162+ "red_mask", G_TYPE_INT, r_mask,
2163+ "green_mask", G_TYPE_INT, g_mask,
2164+ "blue_mask", G_TYPE_INT, b_mask,
2165+ "alpha_mask", G_TYPE_INT, a_mask,
2166+ "endianness", G_TYPE_INT, endianness, NULL);
2167+ } else {
2168+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb",
2169+ "bpp", G_TYPE_INT, bpp,
2170+ "depth", G_TYPE_INT, depth,
2171+ "red_mask", G_TYPE_INT, r_mask,
2172+ "green_mask", G_TYPE_INT, g_mask,
2173+ "blue_mask", G_TYPE_INT, b_mask,
2174+ "endianness", G_TYPE_INT, endianness, NULL);
2175+ }
2176+ } else {
2177+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb",
2178+ "bpp", G_TYPE_INT, bpp,
2179+ "depth", G_TYPE_INT, depth,
2180+ "endianness", G_TYPE_INT, endianness, NULL);
2181+ if (caps && context) {
2182+ gst_ffmpeg_set_palette (caps, context);
2183+ }
2184+ }
2185+ } else if (fmt) {
2186+ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-yuv",
2187+ "format", GST_TYPE_FOURCC, fmt, NULL);
2188+ }
2189+ }
2190+
2191+ if (caps != NULL) {
2192+ GST_DEBUG ("caps for pix_fmt=%d: %" GST_PTR_FORMAT, pix_fmt, caps);
2193+ } else {
2194+ GST_LOG ("No caps found for pix_fmt=%d", pix_fmt);
2195+ }
2196+
2197+ return caps;
2198+}
2199+
2200+/* Convert a FFMPEG Sample Format and optional AVCodecContext
2201+ * to a GstCaps. If the context is ommitted, no fixed values
2202+ * for video/audio size will be included in the GstCaps
2203+ *
2204+ * See below for usefullness
2205+ */
2206+
2207+static GstCaps *
2208+gst_ffmpeg_smpfmt_to_caps (enum AVSampleFormat sample_fmt,
2209+ AVCodecContext * context, enum CodecID codec_id)
2210+{
2211+ GstCaps *caps = NULL;
2212+
2213+ int bpp = 0;
2214+ gboolean integer = TRUE;
2215+ gboolean signedness = FALSE;
2216+
2217+ switch (sample_fmt) {
2218+ case AV_SAMPLE_FMT_S16:
2219+ signedness = TRUE;
2220+ bpp = 16;
2221+ break;
2222+
2223+ case AV_SAMPLE_FMT_S32:
2224+ signedness = TRUE;
2225+ bpp = 32;
2226+ break;
2227+
2228+ case AV_SAMPLE_FMT_FLT:
2229+ integer = FALSE;
2230+ bpp = 32;
2231+ break;
2232+
2233+ case AV_SAMPLE_FMT_DBL:
2234+ integer = FALSE;
2235+ bpp = 64;
2236+ break;
2237+ default:
2238+ /* .. */
2239+ break;
2240+ }
2241+
2242+ if (bpp) {
2243+ if (integer) {
2244+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-int",
2245+ "signed", G_TYPE_BOOLEAN, signedness,
2246+ "endianness", G_TYPE_INT, G_BYTE_ORDER,
2247+ "width", G_TYPE_INT, bpp, "depth", G_TYPE_INT, bpp, NULL);
2248+ } else {
2249+ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-float",
2250+ "endianness", G_TYPE_INT, G_BYTE_ORDER,
2251+ "width", G_TYPE_INT, bpp, NULL);
2252+ }
2253+ }
2254+
2255+ if (caps != NULL) {
2256+ GST_LOG ("caps for sample_fmt=%d: %" GST_PTR_FORMAT, sample_fmt, caps);
2257+ } else {
2258+ GST_LOG ("No caps found for sample_fmt=%d", sample_fmt);
2259+ }
2260+
2261+ return caps;
2262+}
2263+
2264+GstCaps *
2265+gst_ffmpeg_codectype_to_audio_caps (AVCodecContext * context,
2266+ enum CodecID codec_id, gboolean encode, AVCodec * codec)
2267+{
2268+ GstCaps *caps = NULL;
2269+
2270+ GST_DEBUG ("context:%p, codec_id:%d, encode:%d, codec:%p",
2271+ context, codec_id, encode, codec);
2272+ if (codec)
2273+ GST_DEBUG ("sample_fmts:%p, samplerates:%p",
2274+ codec->sample_fmts, codec->supported_samplerates);
2275+
2276+ if (context) {
2277+ /* Specific codec context */
2278+ caps = gst_ffmpeg_smpfmt_to_caps (context->sample_fmt, context, codec_id);
2279+ } else if (codec && codec->sample_fmts) {
2280+ GstCaps *temp;
2281+ int i;
2282+
2283+ caps = gst_caps_new_empty ();
2284+ for (i = 0; codec->sample_fmts[i] != -1; i++) {
2285+ temp =
2286+ gst_ffmpeg_smpfmt_to_caps (codec->sample_fmts[i], context, codec_id);
2287+ if (temp != NULL)
2288+ gst_caps_append (caps, temp);
2289+ }
2290+ } else {
2291+ GstCaps *temp;
2292+ enum AVSampleFormat i;
2293+ AVCodecContext ctx = { 0, };
2294+
2295+ ctx.channels = -1;
2296+ caps = gst_caps_new_empty ();
2297+ for (i = 0; i <= AV_SAMPLE_FMT_DBL; i++) {
2298+ temp = gst_ffmpeg_smpfmt_to_caps (i, encode ? &ctx : NULL, codec_id);
2299+ if (temp != NULL) {
2300+ gst_caps_append (caps, temp);
2301+ }
2302+ }
2303+ }
2304+ return caps;
2305+}
2306+
2307+GstCaps *
2308+gst_ffmpeg_codectype_to_video_caps (AVCodecContext * context,
2309+ enum CodecID codec_id, gboolean encode, AVCodec * codec)
2310+{
2311+ GstCaps *caps;
2312+
2313+ GST_LOG ("context:%p, codec_id:%d, encode:%d, codec:%p",
2314+ context, codec_id, encode, codec);
2315+
2316+ if (context) {
2317+ caps = gst_ffmpeg_pixfmt_to_caps (context->pix_fmt, context, codec_id);
2318+ } else {
2319+ GstCaps *temp;
2320+ enum PixelFormat i;
2321+ AVCodecContext ctx = { 0, };
2322+
2323+ caps = gst_caps_new_empty ();
2324+ for (i = 0; i < PIX_FMT_NB; i++) {
2325+ ctx.width = -1;
2326+ ctx.pix_fmt = i;
2327+ temp = gst_ffmpeg_pixfmt_to_caps (i, encode ? &ctx : NULL, codec_id);
2328+ if (temp != NULL) {
2329+ gst_caps_append (caps, temp);
2330+ }
2331+ }
2332+ }
2333+ return caps;
2334+}
2335+
2336+/* Convert a FFMPEG codec Type and optional AVCodecContext
2337+ * to a GstCaps. If the context is ommitted, no fixed values
2338+ * for video/audio size will be included in the GstCaps
2339+ *
2340+ * AVMediaType is primarily meant for uncompressed data GstCaps!
2341+ */
2342+
2343+GstCaps *
2344+gst_ffmpeg_codectype_to_caps (enum AVMediaType codec_type,
2345+ AVCodecContext * context, enum CodecID codec_id, gboolean encode)
2346+{
2347+ GstCaps *caps;
2348+
2349+ switch (codec_type) {
2350+ case AVMEDIA_TYPE_VIDEO:
2351+ caps =
2352+ gst_ffmpeg_codectype_to_video_caps (context, codec_id, encode, NULL);
2353+ break;
2354+ case AVMEDIA_TYPE_AUDIO:
2355+ caps =
2356+ gst_ffmpeg_codectype_to_audio_caps (context, codec_id, encode, NULL);
2357+ break;
2358+ default:
2359+ caps = NULL;
2360+ break;
2361+ }
2362+
2363+ return caps;
2364+}
2365+
2366+/* Convert a GstCaps (audio/raw) to a FFMPEG SampleFmt
2367+ * and other audio properties in a AVCodecContext.
2368+ *
2369+ * For usefullness, see below
2370+ */
2371+
2372+static void
2373+gst_ffmpeg_caps_to_smpfmt (const GstCaps * caps,
2374+ AVCodecContext * context, gboolean raw)
2375+{
2376+ GstStructure *structure;
2377+ gint depth = 0, width = 0, endianness = 0;
2378+ gboolean signedness = FALSE;
2379+ const gchar *name;
2380+
2381+ g_return_if_fail (gst_caps_get_size (caps) == 1);
2382+ structure = gst_caps_get_structure (caps, 0);
2383+
2384+ gst_structure_get_int (structure, "channels", &context->channels);
2385+ gst_structure_get_int (structure, "rate", &context->sample_rate);
2386+ gst_structure_get_int (structure, "block_align", &context->block_align);
2387+ gst_structure_get_int (structure, "bitrate", &context->bit_rate);
2388+
2389+ if (!raw)
2390+ return;
2391+
2392+ name = gst_structure_get_name (structure);
2393+
2394+ if (!strcmp (name, "audio/x-raw-float")) {
2395+ /* FLOAT */
2396+ if (gst_structure_get_int (structure, "width", &width) &&
2397+ gst_structure_get_int (structure, "endianness", &endianness)) {
2398+ if (endianness == G_BYTE_ORDER) {
2399+ if (width == 32)
2400+ context->sample_fmt = AV_SAMPLE_FMT_FLT;
2401+ else if (width == 64)
2402+ context->sample_fmt = AV_SAMPLE_FMT_DBL;
2403+ }
2404+ }
2405+ } else {
2406+ /* INT */
2407+ if (gst_structure_get_int (structure, "width", &width) &&
2408+ gst_structure_get_int (structure, "depth", &depth) &&
2409+ gst_structure_get_boolean (structure, "signed", &signedness) &&
2410+ gst_structure_get_int (structure, "endianness", &endianness)) {
2411+ if ((endianness == G_BYTE_ORDER) && (signedness == TRUE)) {
2412+ if ((width == 16) && (depth == 16))
2413+ context->sample_fmt = AV_SAMPLE_FMT_S16;
2414+ else if ((width == 32) && (depth == 32))
2415+ context->sample_fmt = AV_SAMPLE_FMT_S32;
2416+ }
2417+ }
2418+ }
2419+}
2420+
2421+
2422+/* Convert a GstCaps (video/raw) to a FFMPEG PixFmt
2423+ * and other video properties in a AVCodecContext.
2424+ *
2425+ * For usefullness, see below
2426+ */
2427+
2428+static void
2429+gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
2430+ AVCodecContext * context, gboolean raw)
2431+{
2432+ GstStructure *structure;
2433+ const GValue *fps;
2434+ const GValue *par = NULL;
2435+
2436+ GST_DEBUG ("converting caps %" GST_PTR_FORMAT, caps);
2437+ g_return_if_fail (gst_caps_get_size (caps) == 1);
2438+ structure = gst_caps_get_structure (caps, 0);
2439+
2440+ gst_structure_get_int (structure, "width", &context->width);
2441+ gst_structure_get_int (structure, "height", &context->height);
2442+ gst_structure_get_int (structure, "bpp", &context->bits_per_coded_sample);
2443+
2444+ fps = gst_structure_get_value (structure, "framerate");
2445+ if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) {
2446+
2447+ /* somehow these seem mixed up.. */
2448+ context->time_base.den = gst_value_get_fraction_numerator (fps);
2449+ context->time_base.num = gst_value_get_fraction_denominator (fps);
2450+ context->ticks_per_frame = 1;
2451+
2452+ GST_DEBUG ("setting framerate %d/%d = %lf",
2453+ context->time_base.den, context->time_base.num,
2454+ 1. * context->time_base.den / context->time_base.num);
2455+ }
2456+
2457+ par = gst_structure_get_value (structure, "pixel-aspect-ratio");
2458+ if (par && GST_VALUE_HOLDS_FRACTION (par)) {
2459+
2460+ context->sample_aspect_ratio.num = gst_value_get_fraction_numerator (par);
2461+ context->sample_aspect_ratio.den = gst_value_get_fraction_denominator (par);
2462+
2463+ GST_DEBUG ("setting pixel-aspect-ratio %d/%d = %lf",
2464+ context->sample_aspect_ratio.den, context->sample_aspect_ratio.num,
2465+ 1. * context->sample_aspect_ratio.den /
2466+ context->sample_aspect_ratio.num);
2467+ }
2468+
2469+ if (!raw)
2470+ return;
2471+
2472+ g_return_if_fail (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps));
2473+
2474+ if (strcmp (gst_structure_get_name (structure), "video/x-raw-yuv") == 0) {
2475+ guint32 fourcc;
2476+
2477+ if (gst_structure_get_fourcc (structure, "format", &fourcc)) {
2478+ switch (fourcc) {
2479+ case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
2480+ context->pix_fmt = PIX_FMT_YUYV422;
2481+ break;
2482+ case GST_MAKE_FOURCC ('I', '4', '2', '0'):
2483+ context->pix_fmt = PIX_FMT_YUV420P;
2484+ break;
2485+ case GST_MAKE_FOURCC ('A', '4', '2', '0'):
2486+ context->pix_fmt = PIX_FMT_YUVA420P;
2487+ break;
2488+ case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
2489+ context->pix_fmt = PIX_FMT_YUV411P;
2490+ break;
2491+ case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
2492+ context->pix_fmt = PIX_FMT_YUV422P;
2493+ break;
2494+ case GST_MAKE_FOURCC ('Y', 'U', 'V', '9'):
2495+ context->pix_fmt = PIX_FMT_YUV410P;
2496+ break;
2497+#if 0
2498+ case FIXME:
2499+ context->pix_fmt = PIX_FMT_YUV444P;
2500+ break;
2501+#endif
2502+ }
2503+ }
2504+ } else if (strcmp (gst_structure_get_name (structure),
2505+ "video/x-raw-rgb") == 0) {
2506+ gint bpp = 0, rmask = 0, endianness = 0;
2507+
2508+ if (gst_structure_get_int (structure, "bpp", &bpp) &&
2509+ gst_structure_get_int (structure, "endianness", &endianness)) {
2510+ if (gst_structure_get_int (structure, "red_mask", &rmask)) {
2511+ switch (bpp) {
2512+ case 32:
2513+#if (G_BYTE_ORDER == G_BIG_ENDIAN)
2514+ if (rmask == 0x00ff0000)
2515+#else
2516+ if (rmask == 0x0000ff00)
2517+#endif
2518+ context->pix_fmt = PIX_FMT_RGB32;
2519+ break;
2520+ case 24:
2521+ if (rmask == 0x0000FF)
2522+ context->pix_fmt = PIX_FMT_BGR24;
2523+ else
2524+ context->pix_fmt = PIX_FMT_RGB24;
2525+ break;
2526+ case 16:
2527+ if (endianness == G_BYTE_ORDER)
2528+ context->pix_fmt = PIX_FMT_RGB565;
2529+ break;
2530+ case 15:
2531+ if (endianness == G_BYTE_ORDER)
2532+ context->pix_fmt = PIX_FMT_RGB555;
2533+ break;
2534+ default:
2535+ /* nothing */
2536+ break;
2537+ }
2538+ } else {
2539+ if (bpp == 8) {
2540+ context->pix_fmt = PIX_FMT_PAL8;
2541+ gst_ffmpeg_get_palette (caps, context);
2542+ }
2543+ }
2544+ }
2545+ } else if (strcmp (gst_structure_get_name (structure),
2546+ "video/x-raw-gray") == 0) {
2547+ gint bpp = 0;
2548+
2549+ if (gst_structure_get_int (structure, "bpp", &bpp)) {
2550+ switch (bpp) {
2551+ case 8:
2552+ context->pix_fmt = PIX_FMT_GRAY8;
2553+ break;
2554+ }
2555+ }
2556+ }
2557+}
2558+
2559+/* Convert a GstCaps and a FFMPEG codec Type to a
2560+ * AVCodecContext. If the context is ommitted, no fixed values
2561+ * for video/audio size will be included in the context
2562+ *
2563+ * AVMediaType is primarily meant for uncompressed data GstCaps!
2564+ */
2565+
2566+void
2567+gst_ffmpeg_caps_with_codectype (enum AVMediaType type,
2568+ const GstCaps * caps, AVCodecContext * context)
2569+{
2570+ if (context == NULL)
2571+ return;
2572+
2573+ switch (type) {
2574+ case AVMEDIA_TYPE_VIDEO:
2575+ gst_ffmpeg_caps_to_pixfmt (caps, context, TRUE);
2576+ break;
2577+
2578+ case AVMEDIA_TYPE_AUDIO:
2579+ gst_ffmpeg_caps_to_smpfmt (caps, context, TRUE);
2580+ break;
2581+
2582+ default:
2583+ /* unknown */
2584+ break;
2585+ }
2586+}
2587+
2588+#if 0
2589+static void
2590+nal_escape (guint8 * dst, guint8 * src, guint size, guint * destsize)
2591+{
2592+ guint8 *dstp = dst;
2593+ guint8 *srcp = src;
2594+ guint8 *end = src + size;
2595+ gint count = 0;
2596+
2597+ while (srcp < end) {
2598+ if (count == 2 && *srcp <= 0x03) {
2599+ GST_DEBUG ("added escape code");
2600+ *dstp++ = 0x03;
2601+ count = 0;
2602+ }
2603+ if (*srcp == 0)
2604+ count++;
2605+ else
2606+ count = 0;
2607+
2608+ GST_DEBUG ("copy %02x, count %d", *srcp, count);
2609+ *dstp++ = *srcp++;
2610+ }
2611+ *destsize = dstp - dst;
2612+}
2613+
2614+/* copy the config, escaping NAL units as we iterate them, if something fails we
2615+ * copy everything and hope for the best. */
2616+static void
2617+copy_config (guint8 * dst, guint8 * src, guint size, guint * destsize)
2618+{
2619+ guint8 *dstp = dst;
2620+ guint8 *srcp = src;
2621+ gint cnt, i;
2622+ guint nalsize, esize;
2623+
2624+ /* check size */
2625+ if (size < 7)
2626+ goto full_copy;
2627+
2628+ /* check version */
2629+ if (*srcp != 1)
2630+ goto full_copy;
2631+
2632+ cnt = *(srcp + 5) & 0x1f; /* Number of sps */
2633+
2634+ GST_DEBUG ("num SPS %d", cnt);
2635+
2636+ memcpy (dstp, srcp, 6);
2637+ srcp += 6;
2638+ dstp += 6;
2639+
2640+ for (i = 0; i < cnt; i++) {
2641+ GST_DEBUG ("copy SPS %d", i);
2642+ nalsize = (srcp[0] << 8) | srcp[1];
2643+ nal_escape (dstp + 2, srcp + 2, nalsize, &esize);
2644+ dstp[0] = esize >> 8;
2645+ dstp[1] = esize & 0xff;
2646+ dstp += esize + 2;
2647+ srcp += nalsize + 2;
2648+ }
2649+
2650+ cnt = *(dstp++) = *(srcp++); /* Number of pps */
2651+
2652+ GST_DEBUG ("num PPS %d", cnt);
2653+
2654+ for (i = 0; i < cnt; i++) {
2655+ GST_DEBUG ("copy PPS %d", i);
2656+ nalsize = (srcp[0] << 8) | srcp[1];
2657+ nal_escape (dstp + 2, srcp + 2, nalsize, &esize);
2658+ dstp[0] = esize >> 8;
2659+ dstp[1] = esize & 0xff;
2660+ dstp += esize + 2;
2661+ srcp += nalsize + 2;
2662+ }
2663+ *destsize = dstp - dst;
2664+
2665+ return;
2666+
2667+full_copy:
2668+ {
2669+ GST_DEBUG ("something unexpected, doing full copy");
2670+ memcpy (dst, src, size);
2671+ *destsize = size;
2672+ return;
2673+ }
2674+}
2675+#endif
2676+
2677+/*
2678+ * caps_with_codecid () transforms a GstCaps for a known codec
2679+ * ID into a filled-in context.
2680+ * codec_data from caps will override possible extradata already in the context
2681+ */
2682+
2683+void
2684+gst_ffmpeg_caps_with_codecid (enum CodecID codec_id,
2685+ enum AVMediaType codec_type, const GstCaps * caps, AVCodecContext * context)
2686+{
2687+ GstStructure *str;
2688+ const GValue *value;
2689+ const GstBuffer *buf;
2690+
2691+ GST_LOG ("codec_id:%d, codec_type:%d, caps:%" GST_PTR_FORMAT " context:%p",
2692+ codec_id, codec_type, caps, context);
2693+
2694+ if (!context || !gst_caps_get_size (caps))
2695+ return;
2696+
2697+ str = gst_caps_get_structure (caps, 0);
2698+
2699+ /* extradata parsing (esds [mpeg4], wma/wmv, msmpeg4v1/2/3, etc.) */
2700+ if ((value = gst_structure_get_value (str, "codec_data"))) {
2701+ guint size;
2702+ guint8 *data;
2703+
2704+ buf = GST_BUFFER_CAST (gst_value_get_mini_object (value));
2705+ size = GST_BUFFER_SIZE (buf);
2706+ data = GST_BUFFER_DATA (buf);
2707+
2708+ /* free the old one if it is there */
2709+ if (context->extradata)
2710+ av_free (context->extradata);
2711+
2712+#if 0
2713+ if (codec_id == CODEC_ID_H264) {
2714+ guint extrasize;
2715+
2716+ GST_DEBUG ("copy, escaping codec_data %d", size);
2717+ /* ffmpeg h264 expects the codec_data to be escaped, there is no real
2718+ * reason for this but let's just escape it for now. Start by allocating
2719+ * enough space, x2 is more than enough.
2720+ *
2721+ * FIXME, we disabled escaping because some file already contain escaped
2722+ * codec_data and then we escape twice and fail. It's better to leave it
2723+ * as is, as that is what most players do. */
2724+ context->extradata =
2725+ av_mallocz (GST_ROUND_UP_16 (size * 2 +
2726+ FF_INPUT_BUFFER_PADDING_SIZE));
2727+ copy_config (context->extradata, data, size, &extrasize);
2728+ GST_DEBUG ("escaped size: %d", extrasize);
2729+ context->extradata_size = extrasize;
2730+ } else
2731+#endif
2732+ {
2733+ /* allocate with enough padding */
2734+ GST_DEBUG ("copy codec_data");
2735+ context->extradata =
2736+ av_mallocz (GST_ROUND_UP_16 (size + FF_INPUT_BUFFER_PADDING_SIZE));
2737+ memcpy (context->extradata, data, size);
2738+ context->extradata_size = size;
2739+ }
2740+
2741+ /* Hack for VC1. Sometimes the first (length) byte is 0 for some files */
2742+ if (codec_id == CODEC_ID_VC1 && size > 0 && data[0] == 0) {
2743+ context->extradata[0] = (guint8) size;
2744+ }
2745+
2746+ GST_DEBUG ("have codec data of size %d", size);
2747+ } else if (context->extradata == NULL && codec_id != CODEC_ID_AAC_LATM &&
2748+ codec_id != CODEC_ID_FLAC) {
2749+ /* no extradata, alloc dummy with 0 sized, some codecs insist on reading
2750+ * extradata anyway which makes then segfault. */
2751+ context->extradata =
2752+ av_mallocz (GST_ROUND_UP_16 (FF_INPUT_BUFFER_PADDING_SIZE));
2753+ context->extradata_size = 0;
2754+ GST_DEBUG ("no codec data");
2755+ }
2756+
2757+ switch (codec_id) {
2758+ case CODEC_ID_MPEG4:
2759+ {
2760+ const gchar *mime = gst_structure_get_name (str);
2761+
2762+ if (!strcmp (mime, "video/x-divx"))
2763+ context->codec_tag = GST_MAKE_FOURCC ('D', 'I', 'V', 'X');
2764+ else if (!strcmp (mime, "video/x-xvid"))
2765+ context->codec_tag = GST_MAKE_FOURCC ('X', 'V', 'I', 'D');
2766+ else if (!strcmp (mime, "video/x-3ivx"))
2767+ context->codec_tag = GST_MAKE_FOURCC ('3', 'I', 'V', '1');
2768+ else if (!strcmp (mime, "video/mpeg"))
2769+ context->codec_tag = GST_MAKE_FOURCC ('m', 'p', '4', 'v');
2770+ }
2771+ break;
2772+
2773+ case CODEC_ID_SVQ3:
2774+ /* FIXME: this is a workaround for older gst-plugins releases
2775+ * (<= 0.8.9). This should be removed at some point, because
2776+ * it causes wrong decoded frame order. */
2777+ if (!context->extradata) {
2778+ gint halfpel_flag, thirdpel_flag, low_delay, unknown_svq3_flag;
2779+ guint16 flags;
2780+
2781+ if (gst_structure_get_int (str, "halfpel_flag", &halfpel_flag) ||
2782+ gst_structure_get_int (str, "thirdpel_flag", &thirdpel_flag) ||
2783+ gst_structure_get_int (str, "low_delay", &low_delay) ||
2784+ gst_structure_get_int (str, "unknown_svq3_flag",
2785+ &unknown_svq3_flag)) {
2786+ context->extradata = (guint8 *) av_mallocz (0x64);
2787+ g_stpcpy ((gchar *) context->extradata, "SVQ3");
2788+ flags = 1 << 3;
2789+ flags |= low_delay;
2790+ flags = flags << 2;
2791+ flags |= unknown_svq3_flag;
2792+ flags = flags << 6;
2793+ flags |= halfpel_flag;
2794+ flags = flags << 1;
2795+ flags |= thirdpel_flag;
2796+ flags = flags << 3;
2797+
2798+ flags = GUINT16_FROM_LE (flags);
2799+
2800+ memcpy ((gchar *) context->extradata + 0x62, &flags, 2);
2801+ context->extradata_size = 0x64;
2802+ }
2803+ }
2804+ break;
2805+
2806+ case CODEC_ID_MSRLE:
2807+ case CODEC_ID_QTRLE:
2808+ case CODEC_ID_TSCC:
2809+ case CODEC_ID_CSCD:
2810+ case CODEC_ID_APE:
2811+ {
2812+ gint depth;
2813+
2814+ if (gst_structure_get_int (str, "depth", &depth)) {
2815+ context->bits_per_coded_sample = depth;
2816+ } else {
2817+ GST_WARNING ("No depth field in caps %" GST_PTR_FORMAT, caps);
2818+ }
2819+
2820+ }
2821+ break;
2822+
2823+ case CODEC_ID_RV10:
2824+ case CODEC_ID_RV20:
2825+ case CODEC_ID_RV30:
2826+ case CODEC_ID_RV40:
2827+ {
2828+ gint format;
2829+
2830+ if (gst_structure_get_int (str, "format", &format))
2831+ context->sub_id = format;
2832+
2833+ break;
2834+ }
2835+ case CODEC_ID_COOK:
2836+ case CODEC_ID_RA_288:
2837+ case CODEC_ID_RA_144:
2838+ case CODEC_ID_SIPR:
2839+ {
2840+ gint leaf_size;
2841+ gint bitrate;
2842+
2843+ if (gst_structure_get_int (str, "leaf_size", &leaf_size))
2844+ context->block_align = leaf_size;
2845+ if (gst_structure_get_int (str, "bitrate", &bitrate))
2846+ context->bit_rate = bitrate;
2847+ }
2848+ case CODEC_ID_ALAC:
2849+ gst_structure_get_int (str, "samplesize",
2850+ &context->bits_per_coded_sample);
2851+ break;
2852+
2853+ case CODEC_ID_DVVIDEO:
2854+ {
2855+ guint32 fourcc;
2856+
2857+ if (gst_structure_get_fourcc (str, "format", &fourcc))
2858+ switch (fourcc) {
2859+ case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
2860+ context->pix_fmt = PIX_FMT_YUYV422;
2861+ break;
2862+ case GST_MAKE_FOURCC ('I', '4', '2', '0'):
2863+ context->pix_fmt = PIX_FMT_YUV420P;
2864+ break;
2865+ case GST_MAKE_FOURCC ('A', '4', '2', '0'):
2866+ context->pix_fmt = PIX_FMT_YUVA420P;
2867+ break;
2868+ case GST_MAKE_FOURCC ('Y', '4', '1', 'B'):
2869+ context->pix_fmt = PIX_FMT_YUV411P;
2870+ break;
2871+ case GST_MAKE_FOURCC ('Y', '4', '2', 'B'):
2872+ context->pix_fmt = PIX_FMT_YUV422P;
2873+ break;
2874+ case GST_MAKE_FOURCC ('Y', 'U', 'V', '9'):
2875+ context->pix_fmt = PIX_FMT_YUV410P;
2876+ break;
2877+ default:
2878+ GST_WARNING ("couldn't convert fourcc %" GST_FOURCC_FORMAT
2879+ " to a pixel format", GST_FOURCC_ARGS (fourcc));
2880+ break;
2881+ }
2882+ break;
2883+ }
2884+ case CODEC_ID_H263P:
2885+ {
2886+ gboolean val;
2887+
2888+ if (!gst_structure_get_boolean (str, "annex-f", &val) || val)
2889+ context->flags |= CODEC_FLAG_4MV;
2890+ else
2891+ context->flags &= ~CODEC_FLAG_4MV;
2892+ if ((!gst_structure_get_boolean (str, "annex-i", &val) || val) &&
2893+ (!gst_structure_get_boolean (str, "annex-t", &val) || val))
2894+ context->flags |= CODEC_FLAG_AC_PRED;
2895+ else
2896+ context->flags &= ~CODEC_FLAG_AC_PRED;
2897+ if (!gst_structure_get_boolean (str, "annex-j", &val) || val)
2898+ context->flags |= CODEC_FLAG_LOOP_FILTER;
2899+ else
2900+ context->flags &= ~CODEC_FLAG_LOOP_FILTER;
2901+ break;
2902+ }
2903+ case CODEC_ID_ADPCM_G726:
2904+ {
2905+ const gchar *layout;
2906+
2907+ if ((layout = gst_structure_get_string (str, "layout"))) {
2908+ if (!strcmp (layout, "g721")) {
2909+ context->sample_rate = 8000;
2910+ context->channels = 1;
2911+ context->bit_rate = 32000;
2912+ }
2913+ }
2914+ break;
2915+ }
2916+ default:
2917+ break;
2918+ }
2919+
2920+ if (!gst_caps_is_fixed (caps))
2921+ return;
2922+
2923+ /* common properties (width, height, fps) */
2924+ switch (codec_type) {
2925+ case AVMEDIA_TYPE_VIDEO:
2926+ gst_ffmpeg_caps_to_pixfmt (caps, context, codec_id == CODEC_ID_RAWVIDEO);
2927+ gst_ffmpeg_get_palette (caps, context);
2928+ break;
2929+ case AVMEDIA_TYPE_AUDIO:
2930+ gst_ffmpeg_caps_to_smpfmt (caps, context, FALSE);
2931+ break;
2932+ default:
2933+ break;
2934+ }
2935+
2936+ /* fixup of default settings */
2937+ switch (codec_id) {
2938+ case CODEC_ID_QCELP:
2939+ /* QCELP is always mono, no matter what the caps say */
2940+ context->channels = 1;
2941+ break;
2942+ default:
2943+ break;
2944+ }
2945+}
2946+
2947+/* _formatid_to_caps () is meant for muxers/demuxers, it
2948+ * transforms a name (ffmpeg way of ID'ing these, why don't
2949+ * they have unique numerical IDs?) to the corresponding
2950+ * caps belonging to that mux-format
2951+ *
2952+ * Note: we don't need any additional info because the caps
2953+ * isn't supposed to contain any useful info besides the
2954+ * media type anyway
2955+ */
2956+
2957+GstCaps *
2958+gst_ffmpeg_formatid_to_caps (const gchar * format_name)
2959+{
2960+ GstCaps *caps = NULL;
2961+
2962+ if (!strcmp (format_name, "mpeg")) {
2963+ caps = gst_caps_new_simple ("video/mpeg",
2964+ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL);
2965+ } else if (!strcmp (format_name, "mpegts")) {
2966+ caps = gst_caps_new_simple ("video/mpegts",
2967+ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL);
2968+ } else if (!strcmp (format_name, "rm")) {
2969+ caps = gst_caps_new_simple ("application/x-pn-realmedia",
2970+ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL);
2971+ } else if (!strcmp (format_name, "asf")) {
2972+ caps = gst_caps_new_simple ("video/x-ms-asf", NULL);
2973+ } else if (!strcmp (format_name, "avi")) {
2974+ caps = gst_caps_new_simple ("video/x-msvideo", NULL);
2975+ } else if (!strcmp (format_name, "wav")) {
2976+ caps = gst_caps_new_simple ("audio/x-wav", NULL);
2977+ } else if (!strcmp (format_name, "ape")) {
2978+ caps = gst_caps_new_simple ("application/x-ape", NULL);
2979+ } else if (!strcmp (format_name, "swf")) {
2980+ caps = gst_caps_new_simple ("application/x-shockwave-flash", NULL);
2981+ } else if (!strcmp (format_name, "au")) {
2982+ caps = gst_caps_new_simple ("audio/x-au", NULL);
2983+ } else if (!strcmp (format_name, "dv")) {
2984+ caps = gst_caps_new_simple ("video/x-dv",
2985+ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL);
2986+ } else if (!strcmp (format_name, "4xm")) {
2987+ caps = gst_caps_new_simple ("video/x-4xm", NULL);
2988+ } else if (!strcmp (format_name, "matroska")) {
2989+ caps = gst_caps_new_simple ("video/x-matroska", NULL);
2990+ } else if (!strcmp (format_name, "mp3")) {
2991+ caps = gst_caps_new_simple ("application/x-id3", NULL);
2992+ } else if (!strcmp (format_name, "flic")) {
2993+ caps = gst_caps_new_simple ("video/x-fli", NULL);
2994+ } else if (!strcmp (format_name, "flv")) {
2995+ caps = gst_caps_new_simple ("video/x-flv", NULL);
2996+ } else if (!strcmp (format_name, "tta")) {
2997+ caps = gst_caps_new_simple ("audio/x-ttafile", NULL);
2998+ } else if (!strcmp (format_name, "aiff")) {
2999+ caps = gst_caps_new_simple ("audio/x-aiff", NULL);
3000+ } else if (!strcmp (format_name, "mov_mp4_m4a_3gp_3g2")) {
3001+ caps =
3002+ gst_caps_from_string
3003+ ("application/x-3gp; video/quicktime; audio/x-m4a");
3004+ } else if (!strcmp (format_name, "mov")) {
3005+ caps = gst_caps_from_string ("video/quicktime,variant=(string)apple");
3006+ } else if (!strcmp (format_name, "mp4")) {
3007+ caps = gst_caps_from_string ("video/quicktime,variant=(string)iso");
3008+ } else if (!strcmp (format_name, "3gp")) {
3009+ caps = gst_caps_from_string ("video/quicktime,variant=(string)3gpp");
3010+ } else if (!strcmp (format_name, "3g2")) {
3011+ caps = gst_caps_from_string ("video/quicktime,variant=(string)3g2");
3012+ } else if (!strcmp (format_name, "psp")) {
3013+ caps = gst_caps_from_string ("video/quicktime,variant=(string)psp");
3014+ } else if (!strcmp (format_name, "ipod")) {
3015+ caps = gst_caps_from_string ("video/quicktime,variant=(string)ipod");
3016+ } else if (!strcmp (format_name, "aac")) {
3017+ caps = gst_caps_new_simple ("audio/mpeg",
3018+ "mpegversion", G_TYPE_INT, 4, NULL);
3019+ } else if (!strcmp (format_name, "gif")) {
3020+ caps = gst_caps_from_string ("image/gif");
3021+ } else if (!strcmp (format_name, "ogg")) {
3022+ caps = gst_caps_from_string ("application/ogg");
3023+ } else if (!strcmp (format_name, "mxf") || !strcmp (format_name, "mxf_d10")) {
3024+ caps = gst_caps_from_string ("application/mxf");
3025+ } else if (!strcmp (format_name, "gxf")) {
3026+ caps = gst_caps_from_string ("application/gxf");
3027+ } else if (!strcmp (format_name, "yuv4mpegpipe")) {
3028+ caps = gst_caps_new_simple ("application/x-yuv4mpeg",
3029+ "y4mversion", G_TYPE_INT, 2, NULL);
3030+ } else if (!strcmp (format_name, "mpc")) {
3031+ caps = gst_caps_from_string ("audio/x-musepack, streamversion = (int) 7");
3032+ } else if (!strcmp (format_name, "vqf")) {
3033+ caps = gst_caps_from_string ("audio/x-vqf");
3034+ } else if (!strcmp (format_name, "nsv")) {
3035+ caps = gst_caps_from_string ("video/x-nsv");
3036+ } else if (!strcmp (format_name, "amr")) {
3037+ caps = gst_caps_from_string ("audio/x-amr-nb-sh");
3038+ } else if (!strcmp (format_name, "webm")) {
3039+ caps = gst_caps_from_string ("video/webm");
3040+ } else {
3041+ gchar *name;
3042+
3043+ GST_LOG ("Could not create stream format caps for %s", format_name);
3044+ name = g_strdup_printf ("application/x-gst_ff-%s", format_name);
3045+ caps = gst_caps_new_simple (name, NULL);
3046+ g_free (name);
3047+ }
3048+
3049+ return caps;
3050+}
3051+
3052+gboolean
3053+gst_ffmpeg_formatid_get_codecids (const gchar * format_name,
3054+ enum CodecID ** video_codec_list, enum CodecID ** audio_codec_list,
3055+ AVOutputFormat * plugin)
3056+{
3057+ static enum CodecID tmp_vlist[] = {
3058+ CODEC_ID_NONE,
3059+ CODEC_ID_NONE
3060+ };
3061+ static enum CodecID tmp_alist[] = {
3062+ CODEC_ID_NONE,
3063+ CODEC_ID_NONE
3064+ };
3065+
3066+ GST_LOG ("format_name : %s", format_name);
3067+
3068+ if (!strcmp (format_name, "mp4")) {
3069+ static enum CodecID mp4_video_list[] = {
3070+ CODEC_ID_MPEG4, CODEC_ID_H264,
3071+ CODEC_ID_MJPEG,
3072+ CODEC_ID_NONE
3073+ };
3074+ static enum CodecID mp4_audio_list[] = {
3075+ CODEC_ID_AAC, CODEC_ID_MP3,
3076+ CODEC_ID_NONE
3077+ };
3078+
3079+ *video_codec_list = mp4_video_list;
3080+ *audio_codec_list = mp4_audio_list;
3081+ } else if (!strcmp (format_name, "mpeg")) {
3082+ static enum CodecID mpeg_video_list[] = { CODEC_ID_MPEG1VIDEO,
3083+ CODEC_ID_MPEG2VIDEO,
3084+ CODEC_ID_H264,
3085+ CODEC_ID_NONE
3086+ };
3087+ static enum CodecID mpeg_audio_list[] = { CODEC_ID_MP1,
3088+ CODEC_ID_MP2,
3089+ CODEC_ID_MP3,
3090+ CODEC_ID_NONE
3091+ };
3092+
3093+ *video_codec_list = mpeg_video_list;
3094+ *audio_codec_list = mpeg_audio_list;
3095+ } else if (!strcmp (format_name, "dvd")) {
3096+ static enum CodecID mpeg_video_list[] = { CODEC_ID_MPEG2VIDEO,
3097+ CODEC_ID_NONE
3098+ };
3099+ static enum CodecID mpeg_audio_list[] = { CODEC_ID_MP2,
3100+ CODEC_ID_AC3,
3101+ CODEC_ID_DTS,
3102+ CODEC_ID_PCM_S16BE,
3103+ CODEC_ID_NONE
3104+ };
3105+
3106+ *video_codec_list = mpeg_video_list;
3107+ *audio_codec_list = mpeg_audio_list;
3108+ } else if (!strcmp (format_name, "mpegts")) {
3109+ static enum CodecID mpegts_video_list[] = { CODEC_ID_MPEG1VIDEO,
3110+ CODEC_ID_MPEG2VIDEO,
3111+ CODEC_ID_H264,
3112+ CODEC_ID_NONE
3113+ };
3114+ static enum CodecID mpegts_audio_list[] = { CODEC_ID_MP2,
3115+ CODEC_ID_MP3,
3116+ CODEC_ID_AC3,
3117+ CODEC_ID_DTS,
3118+ CODEC_ID_AAC,
3119+ CODEC_ID_NONE
3120+ };
3121+
3122+ *video_codec_list = mpegts_video_list;
3123+ *audio_codec_list = mpegts_audio_list;
3124+ } else if (!strcmp (format_name, "vob")) {
3125+ static enum CodecID vob_video_list[] =
3126+ { CODEC_ID_MPEG2VIDEO, CODEC_ID_NONE };
3127+ static enum CodecID vob_audio_list[] = { CODEC_ID_MP2, CODEC_ID_AC3,
3128+ CODEC_ID_DTS, CODEC_ID_NONE
3129+ };
3130+
3131+ *video_codec_list = vob_video_list;
3132+ *audio_codec_list = vob_audio_list;
3133+ } else if (!strcmp (format_name, "flv")) {
3134+ static enum CodecID flv_video_list[] = { CODEC_ID_FLV1, CODEC_ID_NONE };
3135+ static enum CodecID flv_audio_list[] = { CODEC_ID_MP3, CODEC_ID_NONE };
3136+
3137+ *video_codec_list = flv_video_list;
3138+ *audio_codec_list = flv_audio_list;
3139+ } else if (!strcmp (format_name, "asf")) {
3140+ static enum CodecID asf_video_list[] =
3141+ { CODEC_ID_WMV1, CODEC_ID_WMV2, CODEC_ID_MSMPEG4V3, CODEC_ID_NONE };
3142+ static enum CodecID asf_audio_list[] =
3143+ { CODEC_ID_WMAV1, CODEC_ID_WMAV2, CODEC_ID_MP3, CODEC_ID_NONE };
3144+
3145+ *video_codec_list = asf_video_list;
3146+ *audio_codec_list = asf_audio_list;
3147+ } else if (!strcmp (format_name, "dv")) {
3148+ static enum CodecID dv_video_list[] = { CODEC_ID_DVVIDEO, CODEC_ID_NONE };
3149+ static enum CodecID dv_audio_list[] = { CODEC_ID_PCM_S16LE, CODEC_ID_NONE };
3150+
3151+ *video_codec_list = dv_video_list;
3152+ *audio_codec_list = dv_audio_list;
3153+ } else if (!strcmp (format_name, "mov")) {
3154+ static enum CodecID mov_video_list[] = {
3155+ CODEC_ID_SVQ1, CODEC_ID_SVQ3, CODEC_ID_MPEG4,
3156+ CODEC_ID_H263, CODEC_ID_H263P,
3157+ CODEC_ID_H264, CODEC_ID_DVVIDEO,
3158+ CODEC_ID_MJPEG,
3159+ CODEC_ID_NONE
3160+ };
3161+ static enum CodecID mov_audio_list[] = {
3162+ CODEC_ID_PCM_MULAW, CODEC_ID_PCM_ALAW, CODEC_ID_ADPCM_IMA_QT,
3163+ CODEC_ID_MACE3, CODEC_ID_MACE6, CODEC_ID_AAC,
3164+ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB,
3165+ CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE,
3166+ CODEC_ID_MP3, CODEC_ID_NONE
3167+ };
3168+
3169+ *video_codec_list = mov_video_list;
3170+ *audio_codec_list = mov_audio_list;
3171+ } else if ((!strcmp (format_name, "3gp") || !strcmp (format_name, "3g2"))) {
3172+ static enum CodecID tgp_video_list[] = {
3173+ CODEC_ID_MPEG4, CODEC_ID_H263, CODEC_ID_H263P, CODEC_ID_H264,
3174+ CODEC_ID_NONE
3175+ };
3176+ static enum CodecID tgp_audio_list[] = {
3177+ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB,
3178+ CODEC_ID_AAC,
3179+ CODEC_ID_NONE
3180+ };
3181+
3182+ *video_codec_list = tgp_video_list;
3183+ *audio_codec_list = tgp_audio_list;
3184+ } else if (!strcmp (format_name, "mmf")) {
3185+ static enum CodecID mmf_audio_list[] = {
3186+ CODEC_ID_ADPCM_YAMAHA, CODEC_ID_NONE
3187+ };
3188+ *video_codec_list = NULL;
3189+ *audio_codec_list = mmf_audio_list;
3190+ } else if (!strcmp (format_name, "amr")) {
3191+ static enum CodecID amr_audio_list[] = {
3192+ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB,
3193+ CODEC_ID_NONE
3194+ };
3195+ *video_codec_list = NULL;
3196+ *audio_codec_list = amr_audio_list;
3197+ } else if (!strcmp (format_name, "gif")) {
3198+ static enum CodecID gif_image_list[] = {
3199+ CODEC_ID_RAWVIDEO, CODEC_ID_NONE
3200+ };
3201+ *video_codec_list = gif_image_list;
3202+ *audio_codec_list = NULL;
3203+ } else if ((plugin->audio_codec != CODEC_ID_NONE) ||
3204+ (plugin->video_codec != CODEC_ID_NONE)) {
3205+ tmp_vlist[0] = plugin->video_codec;
3206+ tmp_alist[0] = plugin->audio_codec;
3207+
3208+ *video_codec_list = tmp_vlist;
3209+ *audio_codec_list = tmp_alist;
3210+ } else {
3211+ GST_LOG ("Format %s not found", format_name);
3212+ return FALSE;
3213+ }
3214+
3215+ return TRUE;
3216+}
3217+
3218+/* Convert a GstCaps to a FFMPEG codec ID. Size et all
3219+ * are omitted, that can be queried by the user itself,
3220+ * we're not eating the GstCaps or anything
3221+ * A pointer to an allocated context is also needed for
3222+ * optional extra info
3223+ */
3224+
3225+enum CodecID
3226+gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context)
3227+{
3228+ enum CodecID id = CODEC_ID_NONE;
3229+ const gchar *mimetype;
3230+ const GstStructure *structure;
3231+ gboolean video = FALSE, audio = FALSE; /* we want to be sure! */
3232+
3233+ g_return_val_if_fail (caps != NULL, CODEC_ID_NONE);
3234+ g_return_val_if_fail (gst_caps_get_size (caps) == 1, CODEC_ID_NONE);
3235+ structure = gst_caps_get_structure (caps, 0);
3236+
3237+ mimetype = gst_structure_get_name (structure);
3238+
3239+ if (!strcmp (mimetype, "video/x-raw-rgb") ||
3240+ !strcmp (mimetype, "video/x-raw-yuv")) {
3241+ id = CODEC_ID_RAWVIDEO;
3242+ video = TRUE;
3243+ } else if (!strcmp (mimetype, "audio/x-raw-int")) {
3244+ gint depth, width, endianness;
3245+ gboolean signedness;
3246+
3247+ if (gst_structure_get_int (structure, "endianness", &endianness) &&
3248+ gst_structure_get_boolean (structure, "signed", &signedness) &&
3249+ gst_structure_get_int (structure, "width", &width) &&
3250+ gst_structure_get_int (structure, "depth", &depth) && depth == width) {
3251+ switch (depth) {
3252+ case 8:
3253+ if (signedness) {
3254+ id = CODEC_ID_PCM_S8;
3255+ } else {
3256+ id = CODEC_ID_PCM_U8;
3257+ }
3258+ break;
3259+ case 16:
3260+ switch (endianness) {
3261+ case G_BIG_ENDIAN:
3262+ if (signedness) {
3263+ id = CODEC_ID_PCM_S16BE;
3264+ } else {
3265+ id = CODEC_ID_PCM_U16BE;
3266+ }
3267+ break;
3268+ case G_LITTLE_ENDIAN:
3269+ if (signedness) {
3270+ id = CODEC_ID_PCM_S16LE;
3271+ } else {
3272+ id = CODEC_ID_PCM_U16LE;
3273+ }
3274+ break;
3275+ }
3276+ break;
3277+ }
3278+ if (id != CODEC_ID_NONE)
3279+ audio = TRUE;
3280+ }
3281+ } else if (!strcmp (mimetype, "audio/x-mulaw")) {
3282+ id = CODEC_ID_PCM_MULAW;
3283+ audio = TRUE;
3284+ } else if (!strcmp (mimetype, "audio/x-alaw")) {
3285+ id = CODEC_ID_PCM_ALAW;
3286+ audio = TRUE;
3287+ } else if (!strcmp (mimetype, "video/x-dv")) {
3288+ gboolean sys_strm;
3289+
3290+ if (gst_structure_get_boolean (structure, "systemstream", &sys_strm) &&
3291+ !sys_strm) {
3292+ id = CODEC_ID_DVVIDEO;
3293+ video = TRUE;
3294+ }
3295+ } else if (!strcmp (mimetype, "audio/x-dv")) { /* ??? */
3296+ id = CODEC_ID_DVAUDIO;
3297+ audio = TRUE;
3298+ } else if (!strcmp (mimetype, "video/x-h263")) {
3299+ const gchar *h263version =
3300+ gst_structure_get_string (structure, "h263version");
3301+ if (h263version && !strcmp (h263version, "h263p"))
3302+ id = CODEC_ID_H263P;
3303+ else
3304+ id = CODEC_ID_H263;
3305+ video = TRUE;
3306+ } else if (!strcmp (mimetype, "video/x-intel-h263")) {
3307+ id = CODEC_ID_H263I;
3308+ video = TRUE;
3309+ } else if (!strcmp (mimetype, "video/x-h261")) {
3310+ id = CODEC_ID_H261;
3311+ video = TRUE;
3312+ } else if (!strcmp (mimetype, "video/mpeg")) {
3313+ gboolean sys_strm;
3314+ gint mpegversion;
3315+
3316+ if (gst_structure_get_boolean (structure, "systemstream", &sys_strm) &&
3317+ gst_structure_get_int (structure, "mpegversion", &mpegversion) &&
3318+ !sys_strm) {
3319+ switch (mpegversion) {
3320+ case 1:
3321+ id = CODEC_ID_MPEG1VIDEO;
3322+ break;
3323+ case 2:
3324+ id = CODEC_ID_MPEG2VIDEO;
3325+ break;
3326+ case 4:
3327+ id = CODEC_ID_MPEG4;
3328+ break;
3329+ }
3330+ }
3331+ if (id != CODEC_ID_NONE)
3332+ video = TRUE;
3333+ } else if (!strcmp (mimetype, "image/jpeg")) {
3334+ id = CODEC_ID_MJPEG; /* A... B... */
3335+ video = TRUE;
3336+ } else if (!strcmp (mimetype, "video/x-jpeg-b")) {
3337+ id = CODEC_ID_MJPEGB;
3338+ video = TRUE;
3339+ } else if (!strcmp (mimetype, "video/x-wmv")) {
3340+ gint wmvversion = 0;
3341+
3342+ if (gst_structure_get_int (structure, "wmvversion", &wmvversion)) {
3343+ switch (wmvversion) {
3344+ case 1:
3345+ id = CODEC_ID_WMV1;
3346+ break;
3347+ case 2:
3348+ id = CODEC_ID_WMV2;
3349+ break;
3350+ case 3:
3351+ {
3352+ guint32 fourcc;
3353+
3354+ /* WMV3 unless the fourcc exists and says otherwise */
3355+ id = CODEC_ID_WMV3;
3356+
3357+ if (gst_structure_get_fourcc (structure, "format", &fourcc)) {
3358+ if ((fourcc == GST_MAKE_FOURCC ('W', 'V', 'C', '1')) ||
3359+ (fourcc == GST_MAKE_FOURCC ('W', 'M', 'V', 'A'))) {
3360+ id = CODEC_ID_VC1;
3361+ }
3362+ }
3363+ }
3364+ break;
3365+ }
3366+ }
3367+ if (id != CODEC_ID_NONE)
3368+ video = TRUE;
3369+ } else if (!strcmp (mimetype, "audio/x-vorbis")) {
3370+ id = CODEC_ID_VORBIS;
3371+ audio = TRUE;
3372+ } else if (!strcmp (mimetype, "audio/x-qdm2")) {
3373+ id = CODEC_ID_QDM2;
3374+ audio = TRUE;
3375+ } else if (!strcmp (mimetype, "audio/mpeg")) {
3376+ gint layer = 0;
3377+ gint mpegversion = 0;
3378+
3379+ if (gst_structure_get_int (structure, "mpegversion", &mpegversion)) {
3380+ switch (mpegversion) {
3381+ case 2: /* ffmpeg uses faad for both... */
3382+ case 4:
3383+ id = CODEC_ID_AAC;
3384+ break;
3385+ case 1:
3386+ if (gst_structure_get_int (structure, "layer", &layer)) {
3387+ switch (layer) {
3388+ case 1:
3389+ id = CODEC_ID_MP1;
3390+ break;
3391+ case 2:
3392+ id = CODEC_ID_MP2;
3393+ break;
3394+ case 3:
3395+ id = CODEC_ID_MP3;
3396+ break;
3397+ }
3398+ }
3399+ }
3400+ }
3401+ if (id != CODEC_ID_NONE)
3402+ audio = TRUE;
3403+ } else if (!strcmp (mimetype, "audio/x-musepack")) {
3404+ gint streamversion = -1;
3405+
3406+ if (gst_structure_get_int (structure, "streamversion", &streamversion)) {
3407+ if (streamversion == 7)
3408+ id = CODEC_ID_MUSEPACK7;
3409+ } else {
3410+ id = CODEC_ID_MUSEPACK7;
3411+ }
3412+ } else if (!strcmp (mimetype, "audio/x-wma")) {
3413+ gint wmaversion = 0;
3414+
3415+ if (gst_structure_get_int (structure, "wmaversion", &wmaversion)) {
3416+ switch (wmaversion) {
3417+ case 1:
3418+ id = CODEC_ID_WMAV1;
3419+ break;
3420+ case 2:
3421+ id = CODEC_ID_WMAV2;
3422+ break;
3423+ case 3:
3424+ id = CODEC_ID_WMAPRO;
3425+ break;
3426+ }
3427+ }
3428+ if (id != CODEC_ID_NONE)
3429+ audio = TRUE;
3430+ } else if (!strcmp (mimetype, "audio/x-wms")) {
3431+ id = CODEC_ID_WMAVOICE;
3432+ audio = TRUE;
3433+ } else if (!strcmp (mimetype, "audio/x-ac3")) {
3434+ id = CODEC_ID_AC3;
3435+ audio = TRUE;
3436+ } else if (!strcmp (mimetype, "audio/x-eac3")) {
3437+ id = CODEC_ID_EAC3;
3438+ audio = TRUE;
3439+ } else if (!strcmp (mimetype, "audio/x-vnd.sony.atrac3") ||
3440+ !strcmp (mimetype, "audio/atrac3")) {
3441+ id = CODEC_ID_ATRAC3;
3442+ audio = TRUE;
3443+ } else if (!strcmp (mimetype, "audio/x-dts")) {
3444+ id = CODEC_ID_DTS;
3445+ audio = TRUE;
3446+ } else if (!strcmp (mimetype, "application/x-ape")) {
3447+ id = CODEC_ID_APE;
3448+ audio = TRUE;
3449+ } else if (!strcmp (mimetype, "video/x-msmpeg")) {
3450+ gint msmpegversion = 0;
3451+
3452+ if (gst_structure_get_int (structure, "msmpegversion", &msmpegversion)) {
3453+ switch (msmpegversion) {
3454+ case 41:
3455+ id = CODEC_ID_MSMPEG4V1;
3456+ break;
3457+ case 42:
3458+ id = CODEC_ID_MSMPEG4V2;
3459+ break;
3460+ case 43:
3461+ id = CODEC_ID_MSMPEG4V3;
3462+ break;
3463+ }
3464+ }
3465+ if (id != CODEC_ID_NONE)
3466+ video = TRUE;
3467+ } else if (!strcmp (mimetype, "video/x-svq")) {
3468+ gint svqversion = 0;
3469+
3470+ if (gst_structure_get_int (structure, "svqversion", &svqversion)) {
3471+ switch (svqversion) {
3472+ case 1:
3473+ id = CODEC_ID_SVQ1;
3474+ break;
3475+ case 3:
3476+ id = CODEC_ID_SVQ3;
3477+ break;
3478+ }
3479+ }
3480+ if (id != CODEC_ID_NONE)
3481+ video = TRUE;
3482+ } else if (!strcmp (mimetype, "video/x-huffyuv")) {
3483+ id = CODEC_ID_HUFFYUV;
3484+ video = TRUE;
3485+ } else if (!strcmp (mimetype, "audio/x-mace")) {
3486+ gint maceversion = 0;
3487+
3488+ if (gst_structure_get_int (structure, "maceversion", &maceversion)) {
3489+ switch (maceversion) {
3490+ case 3:
3491+ id = CODEC_ID_MACE3;
3492+ break;
3493+ case 6:
3494+ id = CODEC_ID_MACE6;
3495+ break;
3496+ }
3497+ }
3498+ if (id != CODEC_ID_NONE)
3499+ audio = TRUE;
3500+ } else if (!strcmp (mimetype, "video/x-theora")) {
3501+ id = CODEC_ID_THEORA;
3502+ video = TRUE;
3503+ } else if (!strcmp (mimetype, "video/x-vp3")) {
3504+ id = CODEC_ID_VP3;
3505+ video = TRUE;
3506+ } else if (!strcmp (mimetype, "video/x-vp5")) {
3507+ id = CODEC_ID_VP5;
3508+ video = TRUE;
3509+ } else if (!strcmp (mimetype, "video/x-vp6")) {
3510+ id = CODEC_ID_VP6;
3511+ video = TRUE;
3512+ } else if (!strcmp (mimetype, "video/x-vp6-flash")) {
3513+ id = CODEC_ID_VP6F;
3514+ video = TRUE;
3515+ } else if (!strcmp (mimetype, "video/x-vp6-alpha")) {
3516+ id = CODEC_ID_VP6A;
3517+ video = TRUE;
3518+ } else if (!strcmp (mimetype, "video/x-vp8")) {
3519+ id = CODEC_ID_VP8;
3520+ video = TRUE;
3521+ } else if (!strcmp (mimetype, "video/x-flash-screen")) {
3522+ id = CODEC_ID_FLASHSV;
3523+ video = TRUE;
3524+ } else if (!strcmp (mimetype, "video/x-indeo")) {
3525+ gint indeoversion = 0;
3526+
3527+ if (gst_structure_get_int (structure, "indeoversion", &indeoversion)) {
3528+ switch (indeoversion) {
3529+ case 5:
3530+ id = CODEC_ID_INDEO5;
3531+ break;
3532+ case 3:
3533+ id = CODEC_ID_INDEO3;
3534+ break;
3535+ case 2:
3536+ id = CODEC_ID_INDEO2;
3537+ break;
3538+ }
3539+ if (id != CODEC_ID_NONE)
3540+ video = TRUE;
3541+ }
3542+ } else if (!strcmp (mimetype, "video/x-divx")) {
3543+ gint divxversion = 0;
3544+
3545+ if (gst_structure_get_int (structure, "divxversion", &divxversion)) {
3546+ switch (divxversion) {
3547+ case 3:
3548+ id = CODEC_ID_MSMPEG4V3;
3549+ break;
3550+ case 4:
3551+ case 5:
3552+ id = CODEC_ID_MPEG4;
3553+ break;
3554+ }
3555+ }
3556+ if (id != CODEC_ID_NONE)
3557+ video = TRUE;
3558+ } else if (!strcmp (mimetype, "video/x-3ivx")) {
3559+ id = CODEC_ID_MPEG4;
3560+ video = TRUE;
3561+ } else if (!strcmp (mimetype, "video/x-xvid")) {
3562+ id = CODEC_ID_MPEG4;
3563+ video = TRUE;
3564+ } else if (!strcmp (mimetype, "video/x-ffv")) {
3565+ gint ffvversion = 0;
3566+
3567+ if (gst_structure_get_int (structure, "ffvversion", &ffvversion) &&
3568+ ffvversion == 1) {
3569+ id = CODEC_ID_FFV1;
3570+ video = TRUE;
3571+ }
3572+ } else if (!strcmp (mimetype, "audio/x-adpcm")) {
3573+ const gchar *layout;
3574+
3575+ layout = gst_structure_get_string (structure, "layout");
3576+ if (layout == NULL) {
3577+ /* break */
3578+ } else if (!strcmp (layout, "quicktime")) {
3579+ id = CODEC_ID_ADPCM_IMA_QT;
3580+ } else if (!strcmp (layout, "microsoft")) {
3581+ id = CODEC_ID_ADPCM_MS;
3582+ } else if (!strcmp (layout, "dvi")) {
3583+ id = CODEC_ID_ADPCM_IMA_WAV;
3584+ } else if (!strcmp (layout, "4xm")) {
3585+ id = CODEC_ID_ADPCM_4XM;
3586+ } else if (!strcmp (layout, "smjpeg")) {
3587+ id = CODEC_ID_ADPCM_IMA_SMJPEG;
3588+ } else if (!strcmp (layout, "dk3")) {
3589+ id = CODEC_ID_ADPCM_IMA_DK3;
3590+ } else if (!strcmp (layout, "dk4")) {
3591+ id = CODEC_ID_ADPCM_IMA_DK4;
3592+ } else if (!strcmp (layout, "westwood")) {
3593+ id = CODEC_ID_ADPCM_IMA_WS;
3594+ } else if (!strcmp (layout, "iss")) {
3595+ id = CODEC_ID_ADPCM_IMA_ISS;
3596+ } else if (!strcmp (layout, "xa")) {
3597+ id = CODEC_ID_ADPCM_XA;
3598+ } else if (!strcmp (layout, "adx")) {
3599+ id = CODEC_ID_ADPCM_ADX;
3600+ } else if (!strcmp (layout, "ea")) {
3601+ id = CODEC_ID_ADPCM_EA;
3602+ } else if (!strcmp (layout, "g726")) {
3603+ id = CODEC_ID_ADPCM_G726;
3604+ } else if (!strcmp (layout, "g721")) {
3605+ id = CODEC_ID_ADPCM_G726;
3606+ } else if (!strcmp (layout, "ct")) {
3607+ id = CODEC_ID_ADPCM_CT;
3608+ } else if (!strcmp (layout, "swf")) {
3609+ id = CODEC_ID_ADPCM_SWF;
3610+ } else if (!strcmp (layout, "yamaha")) {
3611+ id = CODEC_ID_ADPCM_YAMAHA;
3612+ } else if (!strcmp (layout, "sbpro2")) {
3613+ id = CODEC_ID_ADPCM_SBPRO_2;
3614+ } else if (!strcmp (layout, "sbpro3")) {
3615+ id = CODEC_ID_ADPCM_SBPRO_3;
3616+ } else if (!strcmp (layout, "sbpro4")) {
3617+ id = CODEC_ID_ADPCM_SBPRO_4;
3618+ }
3619+ if (id != CODEC_ID_NONE)
3620+ audio = TRUE;
3621+ } else if (!strcmp (mimetype, "video/x-4xm")) {
3622+ id = CODEC_ID_4XM;
3623+ video = TRUE;
3624+ } else if (!strcmp (mimetype, "audio/x-dpcm")) {
3625+ const gchar *layout;
3626+
3627+ layout = gst_structure_get_string (structure, "layout");
3628+ if (!layout) {
3629+ /* .. */
3630+ } else if (!strcmp (layout, "roq")) {
3631+ id = CODEC_ID_ROQ_DPCM;
3632+ } else if (!strcmp (layout, "interplay")) {
3633+ id = CODEC_ID_INTERPLAY_DPCM;
3634+ } else if (!strcmp (layout, "xan")) {
3635+ id = CODEC_ID_XAN_DPCM;
3636+ } else if (!strcmp (layout, "sol")) {
3637+ id = CODEC_ID_SOL_DPCM;
3638+ }
3639+ if (id != CODEC_ID_NONE)
3640+ audio = TRUE;
3641+ } else if (!strcmp (mimetype, "audio/x-flac")) {
3642+ id = CODEC_ID_FLAC;
3643+ audio = TRUE;
3644+ } else if (!strcmp (mimetype, "audio/x-shorten")) {
3645+ id = CODEC_ID_SHORTEN;
3646+ audio = TRUE;
3647+ } else if (!strcmp (mimetype, "audio/x-alac")) {
3648+ id = CODEC_ID_ALAC;
3649+ audio = TRUE;
3650+ } else if (!strcmp (mimetype, "video/x-cinepak")) {
3651+ id = CODEC_ID_CINEPAK;
3652+ video = TRUE;
3653+ } else if (!strcmp (mimetype, "video/x-pn-realvideo")) {
3654+ gint rmversion;
3655+
3656+ if (gst_structure_get_int (structure, "rmversion", &rmversion)) {
3657+ switch (rmversion) {
3658+ case 1:
3659+ id = CODEC_ID_RV10;
3660+ break;
3661+ case 2:
3662+ id = CODEC_ID_RV20;
3663+ break;
3664+ case 3:
3665+ id = CODEC_ID_RV30;
3666+ break;
3667+ case 4:
3668+ id = CODEC_ID_RV40;
3669+ break;
3670+ }
3671+ }
3672+ if (id != CODEC_ID_NONE)
3673+ video = TRUE;
3674+ } else if (!strcmp (mimetype, "audio/x-sipro")) {
3675+ id = CODEC_ID_SIPR;
3676+ audio = TRUE;
3677+ } else if (!strcmp (mimetype, "audio/x-pn-realaudio")) {
3678+ gint raversion;
3679+
3680+ if (gst_structure_get_int (structure, "raversion", &raversion)) {
3681+ switch (raversion) {
3682+ case 1:
3683+ id = CODEC_ID_RA_144;
3684+ break;
3685+ case 2:
3686+ id = CODEC_ID_RA_288;
3687+ break;
3688+ case 8:
3689+ id = CODEC_ID_COOK;
3690+ break;
3691+ }
3692+ }
3693+ if (id != CODEC_ID_NONE)
3694+ audio = TRUE;
3695+ } else if (!strcmp (mimetype, "video/x-rle")) {
3696+ const gchar *layout;
3697+
3698+ if ((layout = gst_structure_get_string (structure, "layout"))) {
3699+ if (!strcmp (layout, "microsoft")) {
3700+ id = CODEC_ID_MSRLE;
3701+ video = TRUE;
3702+ }
3703+ }
3704+ } else if (!strcmp (mimetype, "video/x-xan")) {
3705+ gint wcversion = 0;
3706+
3707+ if ((gst_structure_get_int (structure, "wcversion", &wcversion))) {
3708+ switch (wcversion) {
3709+ case 3:
3710+ id = CODEC_ID_XAN_WC3;
3711+ video = TRUE;
3712+ break;
3713+ case 4:
3714+ id = CODEC_ID_XAN_WC4;
3715+ video = TRUE;
3716+ break;
3717+ default:
3718+ break;
3719+ }
3720+ }
3721+ } else if (!strcmp (mimetype, "audio/AMR")) {
3722+ audio = TRUE;
3723+ id = CODEC_ID_AMR_NB;
3724+ } else if (!strcmp (mimetype, "audio/AMR-WB")) {
3725+ id = CODEC_ID_AMR_WB;
3726+ audio = TRUE;
3727+ } else if (!strcmp (mimetype, "audio/qcelp")) {
3728+ id = CODEC_ID_QCELP;
3729+ audio = TRUE;
3730+ } else if (!strcmp (mimetype, "video/x-h264")) {
3731+ id = CODEC_ID_H264;
3732+ video = TRUE;
3733+ } else if (!strcmp (mimetype, "video/x-flash-video")) {
3734+ gint flvversion = 0;
3735+
3736+ if ((gst_structure_get_int (structure, "flvversion", &flvversion))) {
3737+ switch (flvversion) {
3738+ case 1:
3739+ id = CODEC_ID_FLV1;
3740+ video = TRUE;
3741+ break;
3742+ default:
3743+ break;
3744+ }
3745+ }
3746+
3747+ } else if (!strcmp (mimetype, "audio/x-nellymoser")) {
3748+ id = CODEC_ID_NELLYMOSER;
3749+ audio = TRUE;
3750+ } else if (!strncmp (mimetype, "audio/x-gst_ff-", 15)) {
3751+ gchar ext[16];
3752+ AVCodec *codec;
3753+
3754+ if (strlen (mimetype) <= 30 &&
3755+ sscanf (mimetype, "audio/x-gst_ff-%s", ext) == 1) {
3756+ if ((codec = avcodec_find_decoder_by_name (ext)) ||
3757+ (codec = avcodec_find_encoder_by_name (ext))) {
3758+ id = codec->id;
3759+ audio = TRUE;
3760+ }
3761+ }
3762+ } else if (!strncmp (mimetype, "video/x-gst_ff-", 15)) {
3763+ gchar ext[16];
3764+ AVCodec *codec;
3765+
3766+ if (strlen (mimetype) <= 30 &&
3767+ sscanf (mimetype, "video/x-gst_ff-%s", ext) == 1) {
3768+ if ((codec = avcodec_find_decoder_by_name (ext)) ||
3769+ (codec = avcodec_find_encoder_by_name (ext))) {
3770+ id = codec->id;
3771+ video = TRUE;
3772+ }
3773+ }
3774+ }
3775+
3776+ if (context != NULL) {
3777+ if (video == TRUE) {
3778+ context->codec_type = AVMEDIA_TYPE_VIDEO;
3779+ } else if (audio == TRUE) {
3780+ context->codec_type = AVMEDIA_TYPE_AUDIO;
3781+ } else {
3782+ context->codec_type = AVMEDIA_TYPE_UNKNOWN;
3783+ }
3784+ context->codec_id = id;
3785+ gst_ffmpeg_caps_with_codecid (id, context->codec_type, caps, context);
3786+ }
3787+
3788+ if (id != CODEC_ID_NONE) {
3789+ GST_DEBUG ("The id=%d belongs to the caps %" GST_PTR_FORMAT, id, caps);
3790+ } else {
3791+ GST_WARNING ("Couldn't figure out the id for caps %" GST_PTR_FORMAT, caps);
3792+ }
3793+
3794+ return id;
3795+}
3796diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.rej gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.rej
3797--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.rej 1970-01-01 01:00:00.000000000 +0100
3798+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.rej 2014-08-08 15:31:06.055868246 +0200
3799@@ -0,0 +1,12 @@
3800+--- ext/ffmpeg/gstffmpegcodecmap.c
3801++++ ext/ffmpeg/gstffmpegcodecmap.c
3802+@@ -1884,9 +1842,6 @@
3803+ gst_ff_vid_caps_new (context, codec_id, encode, "video/x-raw-rgb",
3804+ "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, "endianness",
3805+ G_TYPE_INT, endianness, NULL);
3806+- if (caps && context) {
3807+- gst_ffmpeg_set_palette (caps, context);
3808+- }
3809+ }
3810+ } else if (fmt) {
3811+ caps = gst_ff_vid_caps_new (context, codec_id, encode, "video/x-raw-yuv",
3812diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c
3813--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c 2014-08-08 14:46:31.462772351 +0200
3814+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c 2014-08-08 15:32:18.608870847 +0200
3815@@ -88,7 +88,6 @@
3816 gint depth;
3817 } audio;
3818 } format;
3819- gboolean waiting_for_key;
3820 gboolean discont;
3821 gboolean clear_ts;
3822
3823@@ -438,7 +437,6 @@
3824 ffmpegdec->pcache = NULL;
3825 ffmpegdec->par = NULL;
3826 ffmpegdec->opened = FALSE;
3827- ffmpegdec->waiting_for_key = TRUE;
3828 ffmpegdec->skip_frame = ffmpegdec->lowres = 0;
3829 ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING;
3830 ffmpegdec->do_padding = DEFAULT_DO_PADDING;
3831@@ -608,11 +606,6 @@
3832 gst_ffmpeg_avcodec_close (ffmpegdec->context);
3833 ffmpegdec->opened = FALSE;
3834
3835- if (ffmpegdec->context->palctrl) {
3836- av_free (ffmpegdec->context->palctrl);
3837- ffmpegdec->context->palctrl = NULL;
3838- }
3839-
3840 if (ffmpegdec->context->extradata) {
3841 av_free (ffmpegdec->context->extradata);
3842 ffmpegdec->context->extradata = NULL;
3843@@ -864,7 +857,7 @@
3844
3845 /* workaround encoder bugs */
3846 ffmpegdec->context->workaround_bugs |= FF_BUG_AUTODETECT;
3847- ffmpegdec->context->error_recognition = 1;
3848+ ffmpegdec->context->err_recognition = 1;
3849
3850 /* for slow cpus */
3851 ffmpegdec->context->lowres = ffmpegdec->lowres;
3852@@ -944,7 +937,7 @@
3853 fsize = gst_ffmpeg_avpicture_get_size (ffmpegdec->context->pix_fmt,
3854 width, height);
3855
3856- if (!ffmpegdec->context->palctrl && ffmpegdec->can_allocate_aligned) {
3857+ if (ffmpegdec->can_allocate_aligned) {
3858 GST_LOG_OBJECT (ffmpegdec, "calling pad_alloc");
3859 /* no pallete, we can use the buffer size to alloc */
3860 ret = gst_pad_alloc_buffer_and_set_caps (ffmpegdec->srcpad,
3861@@ -1083,7 +1076,6 @@
3862 /* tell ffmpeg we own this buffer, tranfer the ref we have on the buffer to
3863 * the opaque data. */
3864 picture->type = FF_BUFFER_TYPE_USER;
3865- picture->age = 256 * 256 * 256 * 64;
3866 picture->opaque = buf;
3867
3868 #ifdef EXTRA_REF
3869@@ -1414,10 +1406,6 @@
3870 } else {
3871 if (diff >= 0) {
3872 /* we're too slow, try to speed up */
3873- if (ffmpegdec->waiting_for_key) {
3874- /* we were waiting for a keyframe, that's ok */
3875- goto skipping;
3876- }
3877 /* switch to skip_frame mode */
3878 goto skip_frame;
3879 }
3880@@ -1427,11 +1415,6 @@
3881 ffmpegdec->processed++;
3882 return TRUE;
3883
3884-skipping:
3885- {
3886- res = FALSE;
3887- goto drop_qos;
3888- }
3889 normal_mode:
3890 {
3891 if (ffmpegdec->context->skip_frame != AVDISCARD_DEFAULT) {
3892@@ -1528,43 +1511,6 @@
3893 }
3894
3895
3896-/* figure out if the current picture is a keyframe, return TRUE if that is
3897- * the case. */
3898-static gboolean
3899-check_keyframe (GstFFMpegDec * ffmpegdec)
3900-{
3901- GstFFMpegDecClass *oclass;
3902- gboolean is_itype = FALSE;
3903- gboolean is_reference = FALSE;
3904- gboolean iskeyframe;
3905-
3906- /* figure out if we are dealing with a keyframe */
3907- oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
3908-
3909- /* remember that we have B frames, we need this for the DTS -> PTS conversion
3910- * code */
3911- if (!ffmpegdec->has_b_frames && ffmpegdec->picture->pict_type == FF_B_TYPE) {
3912- GST_DEBUG_OBJECT (ffmpegdec, "we have B frames");
3913- ffmpegdec->has_b_frames = TRUE;
3914- }
3915-
3916- is_itype = (ffmpegdec->picture->pict_type == FF_I_TYPE);
3917- is_reference = (ffmpegdec->picture->reference == 1);
3918-
3919- iskeyframe = (is_itype || is_reference || ffmpegdec->picture->key_frame)
3920- || (oclass->in_plugin->id == CODEC_ID_INDEO3)
3921- || (oclass->in_plugin->id == CODEC_ID_MSZH)
3922- || (oclass->in_plugin->id == CODEC_ID_ZLIB)
3923- || (oclass->in_plugin->id == CODEC_ID_VP3)
3924- || (oclass->in_plugin->id == CODEC_ID_HUFFYUV);
3925-
3926- GST_LOG_OBJECT (ffmpegdec,
3927- "current picture: type: %d, is_keyframe:%d, is_itype:%d, is_reference:%d",
3928- ffmpegdec->picture->pict_type, iskeyframe, is_itype, is_reference);
3929-
3930- return iskeyframe;
3931-}
3932-
3933 /* get an outbuf buffer with the current picture */
3934 static GstFlowReturn
3935 get_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf)
3936@@ -1694,7 +1640,6 @@
3937 {
3938 gint len = -1;
3939 gint have_data;
3940- gboolean iskeyframe;
3941 gboolean mode_switch;
3942 gboolean decode;
3943 gint skip_frame = AVDISCARD_DEFAULT;
3944@@ -1809,7 +1754,6 @@
3945 gst_ffmpegdec_negotiate (ffmpegdec, TRUE);
3946 }
3947
3948-
3949 /* Whether a frame is interlaced or not is unknown at the time of
3950 buffer allocation, so caps on the buffer in opaque will have
3951 the previous frame's interlaced flag set. So if interlacedness
3952@@ -1831,10 +1775,6 @@
3953 }
3954 }
3955
3956- /* check if we are dealing with a keyframe here, this will also check if we
3957- * are dealing with B frames. */
3958- iskeyframe = check_keyframe (ffmpegdec);
3959-
3960 /* check that the timestamps go upwards */
3961 if (ffmpegdec->last_out != -1 && ffmpegdec->last_out > out_pts) {
3962 /* timestamps go backwards, this means frames were reordered and we must
3963@@ -1865,7 +1805,7 @@
3964 * timestamps */
3965 if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) {
3966 /* PTS and DTS are the same for keyframes */
3967- if (!iskeyframe && ffmpegdec->next_out != -1) {
3968+ if (ffmpegdec->next_out != -1) {
3969 /* interpolate all timestamps except for keyframes, FIXME, this is
3970 * wrong when QoS is active. */
3971 GST_DEBUG_OBJECT (ffmpegdec, "interpolate timestamps");
3972@@ -1874,16 +1814,6 @@
3973 }
3974 }
3975
3976- /* when we're waiting for a keyframe, see if we have one or drop the current
3977- * non-keyframe */
3978- if (G_UNLIKELY (ffmpegdec->waiting_for_key)) {
3979- if (G_LIKELY (!iskeyframe))
3980- goto drop_non_keyframe;
3981-
3982- /* we have a keyframe, we can stop waiting for one */
3983- ffmpegdec->waiting_for_key = FALSE;
3984- }
3985-
3986 /* get a handle to the output buffer */
3987 *ret = get_output_buffer (ffmpegdec, outbuf);
3988 if (G_UNLIKELY (*ret != GST_FLOW_OK))
3989@@ -2000,20 +1930,11 @@
3990 else
3991 ffmpegdec->next_out = -1;
3992
3993- /* palette is not part of raw video frame in gst and the size
3994- * of the outgoing buffer needs to be adjusted accordingly */
3995- if (ffmpegdec->context->palctrl != NULL)
3996- GST_BUFFER_SIZE (*outbuf) -= AVPALETTE_SIZE;
3997-
3998 /* now see if we need to clip the buffer against the segment boundaries. */
3999 if (G_UNLIKELY (!clip_video_buffer (ffmpegdec, *outbuf, out_timestamp,
4000 out_duration)))
4001 goto clipped;
4002
4003- /* mark as keyframe or delta unit */
4004- if (!iskeyframe)
4005- GST_BUFFER_FLAG_SET (*outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
4006-
4007 if (ffmpegdec->picture->top_field_first)
4008 GST_BUFFER_FLAG_SET (*outbuf, GST_VIDEO_BUFFER_TFF);
4009
4010@@ -2024,11 +1945,6 @@
4011 return len;
4012
4013 /* special cases */
4014-drop_non_keyframe:
4015- {
4016- GST_WARNING_OBJECT (ffmpegdec, "Dropping non-keyframe (seek/init)");
4017- goto beach;
4018- }
4019 no_output:
4020 {
4021 GST_DEBUG_OBJECT (ffmpegdec, "no output buffer");
4022@@ -2422,7 +2338,6 @@
4023 gst_ffmpegdec_reset_ts (ffmpegdec);
4024 gst_ffmpegdec_reset_qos (ffmpegdec);
4025 gst_ffmpegdec_flush_pcache (ffmpegdec);
4026- ffmpegdec->waiting_for_key = TRUE;
4027 gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME);
4028 clear_queued (ffmpegdec);
4029 break;
4030@@ -2560,17 +2475,6 @@
4031
4032 oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
4033
4034- /* do early keyframe check pretty bad to rely on the keyframe flag in the
4035- * source for this as it might not even be parsed (UDP/file/..). */
4036- if (G_UNLIKELY (ffmpegdec->waiting_for_key)) {
4037- GST_DEBUG_OBJECT (ffmpegdec, "waiting for keyframe");
4038- if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DELTA_UNIT) &&
4039- oclass->in_plugin->type != AVMEDIA_TYPE_AUDIO)
4040- goto skip_keyframe;
4041-
4042- GST_DEBUG_OBJECT (ffmpegdec, "got keyframe");
4043- ffmpegdec->waiting_for_key = FALSE;
4044- }
4045 /* parse cache joining. If there is cached data */
4046 if (ffmpegdec->pcache) {
4047 /* join with previous data */
4048@@ -2805,12 +2709,6 @@
4049 gst_buffer_unref (inbuf);
4050 return GST_FLOW_NOT_NEGOTIATED;
4051 }
4052-skip_keyframe:
4053- {
4054- GST_DEBUG_OBJECT (ffmpegdec, "skipping non keyframe");
4055- gst_buffer_unref (inbuf);
4056- return GST_FLOW_OK;
4057- }
4058 }
4059
4060 static GstStateChangeReturn
4061@@ -2936,7 +2834,7 @@
4062 gchar *plugin_name;
4063
4064 /* only decoders */
4065- if (!in_plugin->decode) {
4066+ if (!av_codec_is_decoder (in_plugin)) {
4067 goto next;
4068 }
4069
4070diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.orig
4071--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.orig 1970-01-01 01:00:00.000000000 +0100
4072+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.orig 2014-08-08 15:31:06.057868246 +0200
4073@@ -0,0 +1,2973 @@
4074+/* GStreamer
4075+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
4076+ *
4077+ * This library is free software; you can redistribute it and/or
4078+ * modify it under the terms of the GNU Library General Public
4079+ * License as published by the Free Software Foundation; either
4080+ * version 2 of the License, or (at your option) any later version.
4081+ *
4082+ * This library is distributed in the hope that it will be useful,
4083+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4084+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4085+ * Library General Public License for more details.
4086+ *
4087+ * You should have received a copy of the GNU Library General Public
4088+ * License along with this library; if not, write to the
4089+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
4090+ * Boston, MA 02111-1307, USA.
4091+ */
4092+
4093+#ifdef HAVE_CONFIG_H
4094+#include "config.h"
4095+#endif
4096+
4097+#include <assert.h>
4098+#include <string.h>
4099+
4100+#ifdef HAVE_FFMPEG_UNINSTALLED
4101+#include <avcodec.h>
4102+#else
4103+#include <libavcodec/avcodec.h>
4104+#endif
4105+
4106+#include <gst/gst.h>
4107+#include <gst/video/video.h>
4108+
4109+#include "gstffmpeg.h"
4110+#include "gstffmpegcodecmap.h"
4111+#include "gstffmpegutils.h"
4112+
4113+/* define to enable alternative buffer refcounting algorithm */
4114+#undef EXTRA_REF
4115+
4116+typedef struct _GstFFMpegDec GstFFMpegDec;
4117+
4118+#define MAX_TS_MASK 0xff
4119+
4120+/* for each incomming buffer we keep all timing info in a structure like this.
4121+ * We keep a circular array of these structures around to store the timing info.
4122+ * The index in the array is what we pass as opaque data (to pictures) and
4123+ * pts (to parsers) so that ffmpeg can remember them for us. */
4124+typedef struct
4125+{
4126+ gint idx;
4127+ GstClockTime timestamp;
4128+ GstClockTime duration;
4129+ gint64 offset;
4130+} GstTSInfo;
4131+
4132+struct _GstFFMpegDec
4133+{
4134+ GstElement element;
4135+
4136+ /* We need to keep track of our pads, so we do so here. */
4137+ GstPad *srcpad;
4138+ GstPad *sinkpad;
4139+
4140+ /* decoding */
4141+ AVCodecContext *context;
4142+ AVFrame *picture;
4143+ gboolean opened;
4144+ union
4145+ {
4146+ struct
4147+ {
4148+ gint width, height;
4149+ gint clip_width, clip_height;
4150+ gint par_n, par_d;
4151+ gint fps_n, fps_d;
4152+ gint old_fps_n, old_fps_d;
4153+ gboolean interlaced;
4154+
4155+ enum PixelFormat pix_fmt;
4156+ } video;
4157+ struct
4158+ {
4159+ gint channels;
4160+ gint samplerate;
4161+ gint depth;
4162+ } audio;
4163+ } format;
4164+ gboolean discont;
4165+ gboolean clear_ts;
4166+
4167+ /* for tracking DTS/PTS */
4168+ gboolean has_b_frames;
4169+ gboolean reordered_in;
4170+ GstClockTime last_in;
4171+ GstClockTime last_diff;
4172+ guint last_frames;
4173+ gboolean reordered_out;
4174+ GstClockTime last_out;
4175+ GstClockTime next_out;
4176+
4177+ /* parsing */
4178+ gboolean turnoff_parser; /* used for turning off aac raw parsing
4179+ * See bug #566250 */
4180+ AVCodecParserContext *pctx;
4181+ GstBuffer *pcache;
4182+ guint8 *padded;
4183+ guint padded_size;
4184+
4185+ GValue *par; /* pixel aspect ratio of incoming data */
4186+ gboolean current_dr; /* if direct rendering is enabled */
4187+ gboolean extra_ref; /* keep extra ref around in get/release */
4188+
4189+ /* some properties */
4190+ enum AVDiscard skip_frame;
4191+ gint lowres;
4192+ gboolean direct_rendering;
4193+ gboolean do_padding;
4194+ gboolean debug_mv;
4195+ gboolean crop;
4196+ int max_threads;
4197+
4198+ /* QoS stuff *//* with LOCK */
4199+ gdouble proportion;
4200+ GstClockTime earliest_time;
4201+ gint64 processed;
4202+ gint64 dropped;
4203+
4204+ /* clipping segment */
4205+ GstSegment segment;
4206+
4207+ gboolean is_realvideo;
4208+
4209+ GstTSInfo ts_info[MAX_TS_MASK + 1];
4210+ gint ts_idx;
4211+
4212+ /* reverse playback queue */
4213+ GList *queued;
4214+
4215+ /* Can downstream allocate 16bytes aligned data. */
4216+ gboolean can_allocate_aligned;
4217+};
4218+
4219+typedef struct _GstFFMpegDecClass GstFFMpegDecClass;
4220+
4221+struct _GstFFMpegDecClass
4222+{
4223+ GstElementClass parent_class;
4224+
4225+ AVCodec *in_plugin;
4226+ GstPadTemplate *srctempl, *sinktempl;
4227+};
4228+
4229+#define GST_TS_INFO_NONE &ts_info_none
4230+static const GstTSInfo ts_info_none = { -1, -1, -1, -1 };
4231+
4232+static const GstTSInfo *
4233+gst_ts_info_store (GstFFMpegDec * dec, GstClockTime timestamp,
4234+ GstClockTime duration, gint64 offset)
4235+{
4236+ gint idx = dec->ts_idx;
4237+ dec->ts_info[idx].idx = idx;
4238+ dec->ts_info[idx].timestamp = timestamp;
4239+ dec->ts_info[idx].duration = duration;
4240+ dec->ts_info[idx].offset = offset;
4241+ dec->ts_idx = (idx + 1) & MAX_TS_MASK;
4242+
4243+ return &dec->ts_info[idx];
4244+}
4245+
4246+static const GstTSInfo *
4247+gst_ts_info_get (GstFFMpegDec * dec, gint idx)
4248+{
4249+ if (G_UNLIKELY (idx < 0 || idx > MAX_TS_MASK))
4250+ return GST_TS_INFO_NONE;
4251+
4252+ return &dec->ts_info[idx];
4253+}
4254+
4255+#define GST_TYPE_FFMPEGDEC \
4256+ (gst_ffmpegdec_get_type())
4257+#define GST_FFMPEGDEC(obj) \
4258+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FFMPEGDEC,GstFFMpegDec))
4259+#define GST_FFMPEGDEC_CLASS(klass) \
4260+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FFMPEGDEC,GstFFMpegDecClass))
4261+#define GST_IS_FFMPEGDEC(obj) \
4262+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FFMPEGDEC))
4263+#define GST_IS_FFMPEGDEC_CLASS(klass) \
4264+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FFMPEGDEC))
4265+
4266+#define DEFAULT_LOWRES 0
4267+#define DEFAULT_SKIPFRAME 0
4268+#define DEFAULT_DIRECT_RENDERING TRUE
4269+#define DEFAULT_DO_PADDING TRUE
4270+#define DEFAULT_DEBUG_MV FALSE
4271+#define DEFAULT_CROP TRUE
4272+#define DEFAULT_MAX_THREADS 1
4273+
4274+enum
4275+{
4276+ PROP_0,
4277+ PROP_LOWRES,
4278+ PROP_SKIPFRAME,
4279+ PROP_DIRECT_RENDERING,
4280+ PROP_DO_PADDING,
4281+ PROP_DEBUG_MV,
4282+ PROP_CROP,
4283+ PROP_MAX_THREADS,
4284+ PROP_LAST
4285+};
4286+
4287+/* A number of function prototypes are given so we can refer to them later. */
4288+static void gst_ffmpegdec_base_init (GstFFMpegDecClass * klass);
4289+static void gst_ffmpegdec_class_init (GstFFMpegDecClass * klass);
4290+static void gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec);
4291+static void gst_ffmpegdec_finalize (GObject * object);
4292+
4293+static gboolean gst_ffmpegdec_query (GstPad * pad, GstQuery * query);
4294+static gboolean gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event);
4295+
4296+static gboolean gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps);
4297+static gboolean gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event);
4298+static GstFlowReturn gst_ffmpegdec_chain (GstPad * pad, GstBuffer * buf);
4299+
4300+static GstStateChangeReturn gst_ffmpegdec_change_state (GstElement * element,
4301+ GstStateChange transition);
4302+
4303+static void gst_ffmpegdec_set_property (GObject * object,
4304+ guint prop_id, const GValue * value, GParamSpec * pspec);
4305+static void gst_ffmpegdec_get_property (GObject * object,
4306+ guint prop_id, GValue * value, GParamSpec * pspec);
4307+
4308+static gboolean gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec,
4309+ gboolean force);
4310+
4311+/* some sort of bufferpool handling, but different */
4312+static int gst_ffmpegdec_get_buffer (AVCodecContext * context,
4313+ AVFrame * picture);
4314+static void gst_ffmpegdec_release_buffer (AVCodecContext * context,
4315+ AVFrame * picture);
4316+
4317+static void gst_ffmpegdec_drain (GstFFMpegDec * ffmpegdec);
4318+
4319+#define GST_FFDEC_PARAMS_QDATA g_quark_from_static_string("ffdec-params")
4320+
4321+static GstElementClass *parent_class = NULL;
4322+
4323+#define GST_FFMPEGDEC_TYPE_LOWRES (gst_ffmpegdec_lowres_get_type())
4324+static GType
4325+gst_ffmpegdec_lowres_get_type (void)
4326+{
4327+ static GType ffmpegdec_lowres_type = 0;
4328+
4329+ if (!ffmpegdec_lowres_type) {
4330+ static const GEnumValue ffmpegdec_lowres[] = {
4331+ {0, "0", "full"},
4332+ {1, "1", "1/2-size"},
4333+ {2, "2", "1/4-size"},
4334+ {0, NULL, NULL},
4335+ };
4336+
4337+ ffmpegdec_lowres_type =
4338+ g_enum_register_static ("GstFFMpegDecLowres", ffmpegdec_lowres);
4339+ }
4340+
4341+ return ffmpegdec_lowres_type;
4342+}
4343+
4344+#define GST_FFMPEGDEC_TYPE_SKIPFRAME (gst_ffmpegdec_skipframe_get_type())
4345+static GType
4346+gst_ffmpegdec_skipframe_get_type (void)
4347+{
4348+ static GType ffmpegdec_skipframe_type = 0;
4349+
4350+ if (!ffmpegdec_skipframe_type) {
4351+ static const GEnumValue ffmpegdec_skipframe[] = {
4352+ {0, "0", "Skip nothing"},
4353+ {1, "1", "Skip B-frames"},
4354+ {2, "2", "Skip IDCT/Dequantization"},
4355+ {5, "5", "Skip everything"},
4356+ {0, NULL, NULL},
4357+ };
4358+
4359+ ffmpegdec_skipframe_type =
4360+ g_enum_register_static ("GstFFMpegDecSkipFrame", ffmpegdec_skipframe);
4361+ }
4362+
4363+ return ffmpegdec_skipframe_type;
4364+}
4365+
4366+static void
4367+gst_ffmpegdec_base_init (GstFFMpegDecClass * klass)
4368+{
4369+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
4370+ GstPadTemplate *sinktempl, *srctempl;
4371+ GstCaps *sinkcaps, *srccaps;
4372+ AVCodec *in_plugin;
4373+ gchar *longname, *classification, *description;
4374+
4375+ in_plugin =
4376+ (AVCodec *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass),
4377+ GST_FFDEC_PARAMS_QDATA);
4378+ g_assert (in_plugin != NULL);
4379+
4380+ /* construct the element details struct */
4381+ longname = g_strdup_printf ("FFmpeg %s decoder", in_plugin->long_name);
4382+ classification = g_strdup_printf ("Codec/Decoder/%s",
4383+ (in_plugin->type == AVMEDIA_TYPE_VIDEO) ? "Video" : "Audio");
4384+ description = g_strdup_printf ("FFmpeg %s decoder", in_plugin->name);
4385+ gst_element_class_set_details_simple (element_class, longname, classification,
4386+ description,
4387+ "Wim Taymans <wim.taymans@gmail.com>, "
4388+ "Ronald Bultje <rbultje@ronald.bitfreak.net>, "
4389+ "Edward Hervey <bilboed@bilboed.com>");
4390+ g_free (longname);
4391+ g_free (classification);
4392+ g_free (description);
4393+
4394+ /* get the caps */
4395+ sinkcaps = gst_ffmpeg_codecid_to_caps (in_plugin->id, NULL, FALSE);
4396+ if (!sinkcaps) {
4397+ GST_DEBUG ("Couldn't get sink caps for decoder '%s'", in_plugin->name);
4398+ sinkcaps = gst_caps_from_string ("unknown/unknown");
4399+ }
4400+ if (in_plugin->type == AVMEDIA_TYPE_VIDEO) {
4401+ srccaps = gst_caps_from_string ("video/x-raw-rgb; video/x-raw-yuv");
4402+ } else {
4403+ srccaps = gst_ffmpeg_codectype_to_audio_caps (NULL,
4404+ in_plugin->id, FALSE, in_plugin);
4405+ }
4406+ if (!srccaps) {
4407+ GST_DEBUG ("Couldn't get source caps for decoder '%s'", in_plugin->name);
4408+ srccaps = gst_caps_from_string ("unknown/unknown");
4409+ }
4410+
4411+ /* pad templates */
4412+ sinktempl = gst_pad_template_new ("sink", GST_PAD_SINK,
4413+ GST_PAD_ALWAYS, sinkcaps);
4414+ srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, srccaps);
4415+
4416+ gst_element_class_add_pad_template (element_class, srctempl);
4417+ gst_element_class_add_pad_template (element_class, sinktempl);
4418+
4419+ klass->in_plugin = in_plugin;
4420+ klass->srctempl = srctempl;
4421+ klass->sinktempl = sinktempl;
4422+}
4423+
4424+static void
4425+gst_ffmpegdec_class_init (GstFFMpegDecClass * klass)
4426+{
4427+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
4428+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
4429+
4430+ parent_class = g_type_class_peek_parent (klass);
4431+
4432+ gobject_class->finalize = gst_ffmpegdec_finalize;
4433+
4434+ gobject_class->set_property = gst_ffmpegdec_set_property;
4435+ gobject_class->get_property = gst_ffmpegdec_get_property;
4436+
4437+ if (klass->in_plugin->type == AVMEDIA_TYPE_VIDEO) {
4438+ int caps;
4439+
4440+ g_object_class_install_property (gobject_class, PROP_SKIPFRAME,
4441+ g_param_spec_enum ("skip-frame", "Skip frames",
4442+ "Which types of frames to skip during decoding",
4443+ GST_FFMPEGDEC_TYPE_SKIPFRAME, 0,
4444+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4445+ g_object_class_install_property (gobject_class, PROP_LOWRES,
4446+ g_param_spec_enum ("lowres", "Low resolution",
4447+ "At which resolution to decode images", GST_FFMPEGDEC_TYPE_LOWRES,
4448+ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4449+ g_object_class_install_property (gobject_class, PROP_DIRECT_RENDERING,
4450+ g_param_spec_boolean ("direct-rendering", "Direct Rendering",
4451+ "Enable direct rendering", DEFAULT_DIRECT_RENDERING,
4452+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4453+ g_object_class_install_property (gobject_class, PROP_DO_PADDING,
4454+ g_param_spec_boolean ("do-padding", "Do Padding",
4455+ "Add 0 padding before decoding data", DEFAULT_DO_PADDING,
4456+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4457+ g_object_class_install_property (gobject_class, PROP_DEBUG_MV,
4458+ g_param_spec_boolean ("debug-mv", "Debug motion vectors",
4459+ "Whether ffmpeg should print motion vectors on top of the image",
4460+ DEFAULT_DEBUG_MV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4461+#if 0
4462+ g_object_class_install_property (gobject_class, PROP_CROP,
4463+ g_param_spec_boolean ("crop", "Crop",
4464+ "Crop images to the display region",
4465+ DEFAULT_CROP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4466+#endif
4467+
4468+ caps = klass->in_plugin->capabilities;
4469+ if (caps & (CODEC_CAP_FRAME_THREADS | CODEC_CAP_SLICE_THREADS)) {
4470+ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MAX_THREADS,
4471+ g_param_spec_int ("max-threads", "Maximum decode threads",
4472+ "Maximum number of worker threads to spawn. (0 = auto)",
4473+ 0, G_MAXINT, DEFAULT_MAX_THREADS,
4474+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
4475+ }
4476+ }
4477+
4478+ gstelement_class->change_state = gst_ffmpegdec_change_state;
4479+}
4480+
4481+static void
4482+gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec)
4483+{
4484+ GstFFMpegDecClass *oclass;
4485+
4486+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
4487+
4488+ /* setup pads */
4489+ ffmpegdec->sinkpad = gst_pad_new_from_template (oclass->sinktempl, "sink");
4490+ gst_pad_set_setcaps_function (ffmpegdec->sinkpad,
4491+ GST_DEBUG_FUNCPTR (gst_ffmpegdec_setcaps));
4492+ gst_pad_set_event_function (ffmpegdec->sinkpad,
4493+ GST_DEBUG_FUNCPTR (gst_ffmpegdec_sink_event));
4494+ gst_pad_set_chain_function (ffmpegdec->sinkpad,
4495+ GST_DEBUG_FUNCPTR (gst_ffmpegdec_chain));
4496+ gst_element_add_pad (GST_ELEMENT (ffmpegdec), ffmpegdec->sinkpad);
4497+
4498+ ffmpegdec->srcpad = gst_pad_new_from_template (oclass->srctempl, "src");
4499+ gst_pad_use_fixed_caps (ffmpegdec->srcpad);
4500+ gst_pad_set_event_function (ffmpegdec->srcpad,
4501+ GST_DEBUG_FUNCPTR (gst_ffmpegdec_src_event));
4502+ gst_pad_set_query_function (ffmpegdec->srcpad,
4503+ GST_DEBUG_FUNCPTR (gst_ffmpegdec_query));
4504+ gst_element_add_pad (GST_ELEMENT (ffmpegdec), ffmpegdec->srcpad);
4505+
4506+ /* some ffmpeg data */
4507+ ffmpegdec->context = avcodec_alloc_context ();
4508+ ffmpegdec->picture = avcodec_alloc_frame ();
4509+ ffmpegdec->pctx = NULL;
4510+ ffmpegdec->pcache = NULL;
4511+ ffmpegdec->par = NULL;
4512+ ffmpegdec->opened = FALSE;
4513+ ffmpegdec->skip_frame = ffmpegdec->lowres = 0;
4514+ ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING;
4515+ ffmpegdec->do_padding = DEFAULT_DO_PADDING;
4516+ ffmpegdec->debug_mv = DEFAULT_DEBUG_MV;
4517+ ffmpegdec->crop = DEFAULT_CROP;
4518+ ffmpegdec->max_threads = DEFAULT_MAX_THREADS;
4519+
4520+ ffmpegdec->format.video.par_n = -1;
4521+ ffmpegdec->format.video.fps_n = -1;
4522+ ffmpegdec->format.video.old_fps_n = -1;
4523+ gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME);
4524+
4525+ /* We initially assume downstream can allocate 16 bytes aligned buffers */
4526+ ffmpegdec->can_allocate_aligned = TRUE;
4527+}
4528+
4529+static void
4530+gst_ffmpegdec_finalize (GObject * object)
4531+{
4532+ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object;
4533+
4534+ if (ffmpegdec->context != NULL) {
4535+ av_free (ffmpegdec->context);
4536+ ffmpegdec->context = NULL;
4537+ }
4538+
4539+ if (ffmpegdec->picture != NULL) {
4540+ av_free (ffmpegdec->picture);
4541+ ffmpegdec->picture = NULL;
4542+ }
4543+
4544+ G_OBJECT_CLASS (parent_class)->finalize (object);
4545+}
4546+
4547+static gboolean
4548+gst_ffmpegdec_query (GstPad * pad, GstQuery * query)
4549+{
4550+ GstFFMpegDec *ffmpegdec;
4551+ GstPad *peer;
4552+ gboolean res;
4553+
4554+ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad);
4555+
4556+ res = FALSE;
4557+
4558+ if ((peer = gst_pad_get_peer (ffmpegdec->sinkpad))) {
4559+ /* just forward to peer */
4560+ res = gst_pad_query (peer, query);
4561+ gst_object_unref (peer);
4562+ }
4563+#if 0
4564+ {
4565+ GstFormat bfmt;
4566+
4567+ bfmt = GST_FORMAT_BYTES;
4568+
4569+ /* ok, do bitrate calc... */
4570+ if ((type != GST_QUERY_POSITION && type != GST_QUERY_TOTAL) ||
4571+ *fmt != GST_FORMAT_TIME || ffmpegdec->context->bit_rate == 0 ||
4572+ !gst_pad_query (peer, type, &bfmt, value))
4573+ return FALSE;
4574+
4575+ if (ffmpegdec->pcache && type == GST_QUERY_POSITION)
4576+ *value -= GST_BUFFER_SIZE (ffmpegdec->pcache);
4577+ *value *= GST_SECOND / ffmpegdec->context->bit_rate;
4578+ }
4579+#endif
4580+
4581+ gst_object_unref (ffmpegdec);
4582+
4583+ return res;
4584+}
4585+
4586+static void
4587+gst_ffmpegdec_reset_ts (GstFFMpegDec * ffmpegdec)
4588+{
4589+ ffmpegdec->last_in = GST_CLOCK_TIME_NONE;
4590+ ffmpegdec->last_diff = GST_CLOCK_TIME_NONE;
4591+ ffmpegdec->last_frames = 0;
4592+ ffmpegdec->last_out = GST_CLOCK_TIME_NONE;
4593+ ffmpegdec->next_out = GST_CLOCK_TIME_NONE;
4594+ ffmpegdec->reordered_in = FALSE;
4595+ ffmpegdec->reordered_out = FALSE;
4596+}
4597+
4598+static void
4599+gst_ffmpegdec_update_qos (GstFFMpegDec * ffmpegdec, gdouble proportion,
4600+ GstClockTime timestamp)
4601+{
4602+ GST_LOG_OBJECT (ffmpegdec, "update QOS: %f, %" GST_TIME_FORMAT,
4603+ proportion, GST_TIME_ARGS (timestamp));
4604+
4605+ GST_OBJECT_LOCK (ffmpegdec);
4606+ ffmpegdec->proportion = proportion;
4607+ ffmpegdec->earliest_time = timestamp;
4608+ GST_OBJECT_UNLOCK (ffmpegdec);
4609+}
4610+
4611+static void
4612+gst_ffmpegdec_reset_qos (GstFFMpegDec * ffmpegdec)
4613+{
4614+ gst_ffmpegdec_update_qos (ffmpegdec, 0.5, GST_CLOCK_TIME_NONE);
4615+ ffmpegdec->processed = 0;
4616+ ffmpegdec->dropped = 0;
4617+}
4618+
4619+static void
4620+gst_ffmpegdec_read_qos (GstFFMpegDec * ffmpegdec, gdouble * proportion,
4621+ GstClockTime * timestamp)
4622+{
4623+ GST_OBJECT_LOCK (ffmpegdec);
4624+ *proportion = ffmpegdec->proportion;
4625+ *timestamp = ffmpegdec->earliest_time;
4626+ GST_OBJECT_UNLOCK (ffmpegdec);
4627+}
4628+
4629+static gboolean
4630+gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event)
4631+{
4632+ GstFFMpegDec *ffmpegdec;
4633+ gboolean res;
4634+
4635+ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad);
4636+
4637+ switch (GST_EVENT_TYPE (event)) {
4638+ case GST_EVENT_QOS:
4639+ {
4640+ gdouble proportion;
4641+ GstClockTimeDiff diff;
4642+ GstClockTime timestamp;
4643+
4644+ gst_event_parse_qos (event, &proportion, &diff, &timestamp);
4645+
4646+ /* update our QoS values */
4647+ gst_ffmpegdec_update_qos (ffmpegdec, proportion, timestamp + diff);
4648+
4649+ /* forward upstream */
4650+ res = gst_pad_push_event (ffmpegdec->sinkpad, event);
4651+ break;
4652+ }
4653+ default:
4654+ /* forward upstream */
4655+ res = gst_pad_push_event (ffmpegdec->sinkpad, event);
4656+ break;
4657+ }
4658+
4659+ gst_object_unref (ffmpegdec);
4660+
4661+ return res;
4662+}
4663+
4664+/* with LOCK */
4665+static void
4666+gst_ffmpegdec_close (GstFFMpegDec * ffmpegdec)
4667+{
4668+ if (!ffmpegdec->opened)
4669+ return;
4670+
4671+ GST_LOG_OBJECT (ffmpegdec, "closing ffmpeg codec");
4672+
4673+ if (ffmpegdec->par) {
4674+ g_free (ffmpegdec->par);
4675+ ffmpegdec->par = NULL;
4676+ }
4677+
4678+ if (ffmpegdec->context->priv_data)
4679+ gst_ffmpeg_avcodec_close (ffmpegdec->context);
4680+ ffmpegdec->opened = FALSE;
4681+
4682+ if (ffmpegdec->context->extradata) {
4683+ av_free (ffmpegdec->context->extradata);
4684+ ffmpegdec->context->extradata = NULL;
4685+ }
4686+
4687+ if (ffmpegdec->pctx) {
4688+ if (ffmpegdec->pcache) {
4689+ gst_buffer_unref (ffmpegdec->pcache);
4690+ ffmpegdec->pcache = NULL;
4691+ }
4692+ av_parser_close (ffmpegdec->pctx);
4693+ ffmpegdec->pctx = NULL;
4694+ }
4695+
4696+ ffmpegdec->format.video.par_n = -1;
4697+ ffmpegdec->format.video.fps_n = -1;
4698+ ffmpegdec->format.video.old_fps_n = -1;
4699+ ffmpegdec->format.video.interlaced = FALSE;
4700+}
4701+
4702+/* with LOCK */
4703+static gboolean
4704+gst_ffmpegdec_open (GstFFMpegDec * ffmpegdec)
4705+{
4706+ GstFFMpegDecClass *oclass;
4707+
4708+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
4709+
4710+ if (gst_ffmpeg_avcodec_open (ffmpegdec->context, oclass->in_plugin) < 0)
4711+ goto could_not_open;
4712+
4713+ ffmpegdec->opened = TRUE;
4714+ ffmpegdec->is_realvideo = FALSE;
4715+
4716+ GST_LOG_OBJECT (ffmpegdec, "Opened ffmpeg codec %s, id %d",
4717+ oclass->in_plugin->name, oclass->in_plugin->id);
4718+
4719+ /* open a parser if we can */
4720+ switch (oclass->in_plugin->id) {
4721+ case CODEC_ID_MPEG4:
4722+ case CODEC_ID_MJPEG:
4723+ case CODEC_ID_VC1:
4724+ GST_LOG_OBJECT (ffmpegdec, "not using parser, blacklisted codec");
4725+ ffmpegdec->pctx = NULL;
4726+ break;
4727+ case CODEC_ID_H264:
4728+ /* For H264, only use a parser if there is no context data, if there is,
4729+ * we're talking AVC */
4730+ if (ffmpegdec->context->extradata_size == 0) {
4731+ GST_LOG_OBJECT (ffmpegdec, "H264 with no extradata, creating parser");
4732+ ffmpegdec->pctx = av_parser_init (oclass->in_plugin->id);
4733+ } else {
4734+ GST_LOG_OBJECT (ffmpegdec,
4735+ "H264 with extradata implies framed data - not using parser");
4736+ ffmpegdec->pctx = NULL;
4737+ }
4738+ break;
4739+ case CODEC_ID_RV10:
4740+ case CODEC_ID_RV30:
4741+ case CODEC_ID_RV20:
4742+ case CODEC_ID_RV40:
4743+ ffmpegdec->is_realvideo = TRUE;
4744+ break;
4745+ default:
4746+ if (!ffmpegdec->turnoff_parser) {
4747+ ffmpegdec->pctx = av_parser_init (oclass->in_plugin->id);
4748+ if (ffmpegdec->pctx)
4749+ GST_LOG_OBJECT (ffmpegdec, "Using parser %p", ffmpegdec->pctx);
4750+ else
4751+ GST_LOG_OBJECT (ffmpegdec, "No parser for codec");
4752+ } else {
4753+ GST_LOG_OBJECT (ffmpegdec, "Parser deactivated for format");
4754+ }
4755+ break;
4756+ }
4757+
4758+ switch (oclass->in_plugin->type) {
4759+ case AVMEDIA_TYPE_VIDEO:
4760+ ffmpegdec->format.video.width = 0;
4761+ ffmpegdec->format.video.height = 0;
4762+ ffmpegdec->format.video.clip_width = -1;
4763+ ffmpegdec->format.video.clip_height = -1;
4764+ ffmpegdec->format.video.pix_fmt = PIX_FMT_NB;
4765+ ffmpegdec->format.video.interlaced = FALSE;
4766+ break;
4767+ case AVMEDIA_TYPE_AUDIO:
4768+ ffmpegdec->format.audio.samplerate = 0;
4769+ ffmpegdec->format.audio.channels = 0;
4770+ ffmpegdec->format.audio.depth = 0;
4771+ break;
4772+ default:
4773+ break;
4774+ }
4775+
4776+ gst_ffmpegdec_reset_ts (ffmpegdec);
4777+ /* FIXME, reset_qos holds the LOCK */
4778+ ffmpegdec->proportion = 0.0;
4779+ ffmpegdec->earliest_time = -1;
4780+
4781+ return TRUE;
4782+
4783+ /* ERRORS */
4784+could_not_open:
4785+ {
4786+ gst_ffmpegdec_close (ffmpegdec);
4787+ GST_DEBUG_OBJECT (ffmpegdec, "ffdec_%s: Failed to open FFMPEG codec",
4788+ oclass->in_plugin->name);
4789+ return FALSE;
4790+ }
4791+}
4792+
4793+static gboolean
4794+gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps)
4795+{
4796+ GstFFMpegDec *ffmpegdec;
4797+ GstFFMpegDecClass *oclass;
4798+ GstStructure *structure;
4799+ const GValue *par;
4800+ const GValue *fps;
4801+ gboolean ret = TRUE;
4802+
4803+ ffmpegdec = (GstFFMpegDec *) (gst_pad_get_parent (pad));
4804+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
4805+
4806+ GST_DEBUG_OBJECT (pad, "setcaps called");
4807+
4808+ GST_OBJECT_LOCK (ffmpegdec);
4809+
4810+ /* stupid check for VC1 */
4811+ if ((oclass->in_plugin->id == CODEC_ID_WMV3) ||
4812+ (oclass->in_plugin->id == CODEC_ID_VC1))
4813+ oclass->in_plugin->id = gst_ffmpeg_caps_to_codecid (caps, NULL);
4814+
4815+ /* close old session */
4816+ if (ffmpegdec->opened) {
4817+ GST_OBJECT_UNLOCK (ffmpegdec);
4818+ gst_ffmpegdec_drain (ffmpegdec);
4819+ GST_OBJECT_LOCK (ffmpegdec);
4820+ gst_ffmpegdec_close (ffmpegdec);
4821+
4822+ /* and reset the defaults that were set when a context is created */
4823+ avcodec_get_context_defaults (ffmpegdec->context);
4824+ }
4825+
4826+ /* set buffer functions */
4827+ ffmpegdec->context->get_buffer = gst_ffmpegdec_get_buffer;
4828+ ffmpegdec->context->release_buffer = gst_ffmpegdec_release_buffer;
4829+ ffmpegdec->context->draw_horiz_band = NULL;
4830+
4831+ /* default is to let format decide if it needs a parser */
4832+ ffmpegdec->turnoff_parser = FALSE;
4833+
4834+ ffmpegdec->has_b_frames = FALSE;
4835+
4836+ GST_LOG_OBJECT (ffmpegdec, "size %dx%d", ffmpegdec->context->width,
4837+ ffmpegdec->context->height);
4838+
4839+ /* get size and so */
4840+ gst_ffmpeg_caps_with_codecid (oclass->in_plugin->id,
4841+ oclass->in_plugin->type, caps, ffmpegdec->context);
4842+
4843+ GST_LOG_OBJECT (ffmpegdec, "size after %dx%d", ffmpegdec->context->width,
4844+ ffmpegdec->context->height);
4845+
4846+ if (!ffmpegdec->context->time_base.den || !ffmpegdec->context->time_base.num) {
4847+ GST_DEBUG_OBJECT (ffmpegdec, "forcing 25/1 framerate");
4848+ ffmpegdec->context->time_base.num = 1;
4849+ ffmpegdec->context->time_base.den = 25;
4850+ }
4851+
4852+ /* get pixel aspect ratio if it's set */
4853+ structure = gst_caps_get_structure (caps, 0);
4854+
4855+ par = gst_structure_get_value (structure, "pixel-aspect-ratio");
4856+ if (par) {
4857+ GST_DEBUG_OBJECT (ffmpegdec, "sink caps have pixel-aspect-ratio of %d:%d",
4858+ gst_value_get_fraction_numerator (par),
4859+ gst_value_get_fraction_denominator (par));
4860+ /* should be NULL */
4861+ if (ffmpegdec->par)
4862+ g_free (ffmpegdec->par);
4863+ ffmpegdec->par = g_new0 (GValue, 1);
4864+ gst_value_init_and_copy (ffmpegdec->par, par);
4865+ }
4866+
4867+ /* get the framerate from incoming caps. fps_n is set to -1 when
4868+ * there is no valid framerate */
4869+ fps = gst_structure_get_value (structure, "framerate");
4870+ if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) {
4871+ ffmpegdec->format.video.fps_n = gst_value_get_fraction_numerator (fps);
4872+ ffmpegdec->format.video.fps_d = gst_value_get_fraction_denominator (fps);
4873+ GST_DEBUG_OBJECT (ffmpegdec, "Using framerate %d/%d from incoming caps",
4874+ ffmpegdec->format.video.fps_n, ffmpegdec->format.video.fps_d);
4875+ } else {
4876+ ffmpegdec->format.video.fps_n = -1;
4877+ GST_DEBUG_OBJECT (ffmpegdec, "Using framerate from codec");
4878+ }
4879+
4880+ /* figure out if we can use direct rendering */
4881+ ffmpegdec->current_dr = FALSE;
4882+ ffmpegdec->extra_ref = FALSE;
4883+ if (ffmpegdec->direct_rendering) {
4884+ GST_DEBUG_OBJECT (ffmpegdec, "trying to enable direct rendering");
4885+ if (oclass->in_plugin->capabilities & CODEC_CAP_DR1) {
4886+ if (oclass->in_plugin->id == CODEC_ID_H264) {
4887+ GST_DEBUG_OBJECT (ffmpegdec, "disable direct rendering setup for H264");
4888+ /* does not work, many stuff reads outside of the planes */
4889+ ffmpegdec->current_dr = FALSE;
4890+ ffmpegdec->extra_ref = TRUE;
4891+ } else if ((oclass->in_plugin->id == CODEC_ID_SVQ1) ||
4892+ (oclass->in_plugin->id == CODEC_ID_VP5) ||
4893+ (oclass->in_plugin->id == CODEC_ID_VP6) ||
4894+ (oclass->in_plugin->id == CODEC_ID_VP6F) ||
4895+ (oclass->in_plugin->id == CODEC_ID_VP6A)) {
4896+ GST_DEBUG_OBJECT (ffmpegdec,
4897+ "disable direct rendering setup for broken stride support");
4898+ /* does not work, uses a incompatible stride. See #610613 */
4899+ ffmpegdec->current_dr = FALSE;
4900+ ffmpegdec->extra_ref = TRUE;
4901+ } else {
4902+ GST_DEBUG_OBJECT (ffmpegdec, "enabled direct rendering");
4903+ ffmpegdec->current_dr = TRUE;
4904+ }
4905+ } else {
4906+ GST_DEBUG_OBJECT (ffmpegdec, "direct rendering not supported");
4907+ }
4908+ }
4909+ if (ffmpegdec->current_dr) {
4910+ /* do *not* draw edges when in direct rendering, for some reason it draws
4911+ * outside of the memory. */
4912+ ffmpegdec->context->flags |= CODEC_FLAG_EMU_EDGE;
4913+ }
4914+
4915+ /* for AAC we only use av_parse if not on stream-format==raw or ==loas */
4916+ if (oclass->in_plugin->id == CODEC_ID_AAC
4917+ || oclass->in_plugin->id == CODEC_ID_AAC_LATM) {
4918+ const gchar *format = gst_structure_get_string (structure, "stream-format");
4919+
4920+ if (format == NULL || strcmp (format, "raw") == 0) {
4921+ ffmpegdec->turnoff_parser = TRUE;
4922+ }
4923+ }
4924+
4925+ /* for FLAC, don't parse if it's already parsed */
4926+ if (oclass->in_plugin->id == CODEC_ID_FLAC) {
4927+ if (gst_structure_has_field (structure, "streamheader"))
4928+ ffmpegdec->turnoff_parser = TRUE;
4929+ }
4930+
4931+ /* workaround encoder bugs */
4932+ ffmpegdec->context->workaround_bugs |= FF_BUG_AUTODETECT;
4933+ ffmpegdec->context->err_recognition = 1;
4934+
4935+ /* for slow cpus */
4936+ ffmpegdec->context->lowres = ffmpegdec->lowres;
4937+ ffmpegdec->context->skip_frame = ffmpegdec->skip_frame;
4938+
4939+ /* ffmpeg can draw motion vectors on top of the image (not every decoder
4940+ * supports it) */
4941+ ffmpegdec->context->debug_mv = ffmpegdec->debug_mv;
4942+
4943+ if (ffmpegdec->max_threads == 0)
4944+ ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads ();
4945+ else
4946+ ffmpegdec->context->thread_count = ffmpegdec->max_threads;
4947+
4948+ /* open codec - we don't select an output pix_fmt yet,
4949+ * simply because we don't know! We only get it
4950+ * during playback... */
4951+ if (!gst_ffmpegdec_open (ffmpegdec))
4952+ goto open_failed;
4953+
4954+ /* clipping region */
4955+ gst_structure_get_int (structure, "width",
4956+ &ffmpegdec->format.video.clip_width);
4957+ gst_structure_get_int (structure, "height",
4958+ &ffmpegdec->format.video.clip_height);
4959+
4960+ GST_DEBUG_OBJECT (pad, "clipping to %dx%d",
4961+ ffmpegdec->format.video.clip_width, ffmpegdec->format.video.clip_height);
4962+
4963+ /* take into account the lowres property */
4964+ if (ffmpegdec->format.video.clip_width != -1)
4965+ ffmpegdec->format.video.clip_width >>= ffmpegdec->lowres;
4966+ if (ffmpegdec->format.video.clip_height != -1)
4967+ ffmpegdec->format.video.clip_height >>= ffmpegdec->lowres;
4968+
4969+ GST_DEBUG_OBJECT (pad, "final clipping to %dx%d",
4970+ ffmpegdec->format.video.clip_width, ffmpegdec->format.video.clip_height);
4971+
4972+done:
4973+ GST_OBJECT_UNLOCK (ffmpegdec);
4974+
4975+ gst_object_unref (ffmpegdec);
4976+
4977+ return ret;
4978+
4979+ /* ERRORS */
4980+open_failed:
4981+ {
4982+ GST_DEBUG_OBJECT (ffmpegdec, "Failed to open");
4983+ if (ffmpegdec->par) {
4984+ g_free (ffmpegdec->par);
4985+ ffmpegdec->par = NULL;
4986+ }
4987+ ret = FALSE;
4988+ goto done;
4989+ }
4990+}
4991+
4992+static GstFlowReturn
4993+alloc_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf,
4994+ gint width, gint height)
4995+{
4996+ GstFlowReturn ret;
4997+ gint fsize;
4998+
4999+ ret = GST_FLOW_ERROR;
5000+ *outbuf = NULL;
5001+
5002+ GST_LOG_OBJECT (ffmpegdec, "alloc output buffer");
5003+
5004+ /* see if we need renegotiation */
5005+ if (G_UNLIKELY (!gst_ffmpegdec_negotiate (ffmpegdec, FALSE)))
5006+ goto negotiate_failed;
5007+
5008+ /* get the size of the gstreamer output buffer given a
5009+ * width/height/format */
5010+ fsize = gst_ffmpeg_avpicture_get_size (ffmpegdec->context->pix_fmt,
5011+ width, height);
5012+
5013+ if (ffmpegdec->can_allocate_aligned) {
5014+ GST_LOG_OBJECT (ffmpegdec, "calling pad_alloc");
5015+ /* no pallete, we can use the buffer size to alloc */
5016+ ret = gst_pad_alloc_buffer_and_set_caps (ffmpegdec->srcpad,
5017+ GST_BUFFER_OFFSET_NONE, fsize,
5018+ GST_PAD_CAPS (ffmpegdec->srcpad), outbuf);
5019+ if (G_UNLIKELY (ret != GST_FLOW_OK))
5020+ goto alloc_failed;
5021+
5022+ /* If buffer isn't 128-bit aligned, create a memaligned one ourselves */
5023+ if (((uintptr_t) GST_BUFFER_DATA (*outbuf)) % 16) {
5024+ GST_DEBUG_OBJECT (ffmpegdec,
5025+ "Downstream can't allocate aligned buffers.");
5026+ ffmpegdec->can_allocate_aligned = FALSE;
5027+ gst_buffer_unref (*outbuf);
5028+ *outbuf = new_aligned_buffer (fsize, GST_PAD_CAPS (ffmpegdec->srcpad));
5029+ }
5030+ } else {
5031+ GST_LOG_OBJECT (ffmpegdec,
5032+ "not calling pad_alloc, we have a pallete or downstream can't give 16 byte aligned buffers.");
5033+ /* for paletted data we can't use pad_alloc_buffer(), because
5034+ * fsize contains the size of the palette, so the overall size
5035+ * is bigger than ffmpegcolorspace's unit size, which will
5036+ * prompt GstBaseTransform to complain endlessly ... */
5037+ *outbuf = new_aligned_buffer (fsize, GST_PAD_CAPS (ffmpegdec->srcpad));
5038+ ret = GST_FLOW_OK;
5039+ }
5040+ /* set caps, we do this here because the buffer is still writable here and we
5041+ * are sure to be negotiated */
5042+ gst_buffer_set_caps (*outbuf, GST_PAD_CAPS (ffmpegdec->srcpad));
5043+
5044+ return ret;
5045+
5046+ /* special cases */
5047+negotiate_failed:
5048+ {
5049+ GST_DEBUG_OBJECT (ffmpegdec, "negotiate failed");
5050+ return GST_FLOW_NOT_NEGOTIATED;
5051+ }
5052+alloc_failed:
5053+ {
5054+ GST_DEBUG_OBJECT (ffmpegdec, "pad_alloc failed %d (%s)", ret,
5055+ gst_flow_get_name (ret));
5056+ return ret;
5057+ }
5058+}
5059+
5060+static int
5061+gst_ffmpegdec_get_buffer (AVCodecContext * context, AVFrame * picture)
5062+{
5063+ GstBuffer *buf = NULL;
5064+ GstFFMpegDec *ffmpegdec;
5065+ gint width, height;
5066+ gint coded_width, coded_height;
5067+ gint res;
5068+
5069+ ffmpegdec = (GstFFMpegDec *) context->opaque;
5070+
5071+ GST_DEBUG_OBJECT (ffmpegdec, "getting buffer");
5072+
5073+ /* apply the last info we have seen to this picture, when we get the
5074+ * picture back from ffmpeg we can use this to correctly timestamp the output
5075+ * buffer */
5076+ picture->reordered_opaque = context->reordered_opaque;
5077+ /* make sure we don't free the buffer when it's not ours */
5078+ picture->opaque = NULL;
5079+
5080+ /* take width and height before clipping */
5081+ width = context->width;
5082+ height = context->height;
5083+ coded_width = context->coded_width;
5084+ coded_height = context->coded_height;
5085+
5086+ GST_LOG_OBJECT (ffmpegdec, "dimension %dx%d, coded %dx%d", width, height,
5087+ coded_width, coded_height);
5088+ if (!ffmpegdec->current_dr) {
5089+ GST_LOG_OBJECT (ffmpegdec, "direct rendering disabled, fallback alloc");
5090+ res = avcodec_default_get_buffer (context, picture);
5091+
5092+ GST_LOG_OBJECT (ffmpegdec, "linsize %d %d %d", picture->linesize[0],
5093+ picture->linesize[1], picture->linesize[2]);
5094+ GST_LOG_OBJECT (ffmpegdec, "data %u %u %u", 0,
5095+ (guint) (picture->data[1] - picture->data[0]),
5096+ (guint) (picture->data[2] - picture->data[0]));
5097+ return res;
5098+ }
5099+
5100+ switch (context->codec_type) {
5101+ case AVMEDIA_TYPE_VIDEO:
5102+ /* some ffmpeg video plugins don't see the point in setting codec_type ... */
5103+ case AVMEDIA_TYPE_UNKNOWN:
5104+ {
5105+ GstFlowReturn ret;
5106+ gint clip_width, clip_height;
5107+
5108+ /* take final clipped output size */
5109+ if ((clip_width = ffmpegdec->format.video.clip_width) == -1)
5110+ clip_width = width;
5111+ if ((clip_height = ffmpegdec->format.video.clip_height) == -1)
5112+ clip_height = height;
5113+
5114+ GST_LOG_OBJECT (ffmpegdec, "raw outsize %d/%d", width, height);
5115+
5116+ /* this is the size ffmpeg needs for the buffer */
5117+ avcodec_align_dimensions (context, &width, &height);
5118+
5119+ GST_LOG_OBJECT (ffmpegdec, "aligned outsize %d/%d, clip %d/%d",
5120+ width, height, clip_width, clip_height);
5121+
5122+ if (width != clip_width || height != clip_height) {
5123+ /* We can't alloc if we need to clip the output buffer later */
5124+ GST_LOG_OBJECT (ffmpegdec, "we need clipping, fallback alloc");
5125+ return avcodec_default_get_buffer (context, picture);
5126+ }
5127+
5128+ /* alloc with aligned dimensions for ffmpeg */
5129+ ret = alloc_output_buffer (ffmpegdec, &buf, width, height);
5130+ if (G_UNLIKELY (ret != GST_FLOW_OK)) {
5131+ /* alloc default buffer when we can't get one from downstream */
5132+ GST_LOG_OBJECT (ffmpegdec, "alloc failed, fallback alloc");
5133+ return avcodec_default_get_buffer (context, picture);
5134+ }
5135+
5136+ /* copy the right pointers and strides in the picture object */
5137+ gst_ffmpeg_avpicture_fill ((AVPicture *) picture,
5138+ GST_BUFFER_DATA (buf), context->pix_fmt, width, height);
5139+ break;
5140+ }
5141+ case AVMEDIA_TYPE_AUDIO:
5142+ default:
5143+ GST_ERROR_OBJECT (ffmpegdec,
5144+ "_get_buffer() should never get called for non-video buffers !");
5145+ g_assert_not_reached ();
5146+ break;
5147+ }
5148+
5149+ /* tell ffmpeg we own this buffer, tranfer the ref we have on the buffer to
5150+ * the opaque data. */
5151+ picture->type = FF_BUFFER_TYPE_USER;
5152+ picture->opaque = buf;
5153+
5154+#ifdef EXTRA_REF
5155+ if (picture->reference != 0 || ffmpegdec->extra_ref) {
5156+ GST_DEBUG_OBJECT (ffmpegdec, "adding extra ref");
5157+ gst_buffer_ref (buf);
5158+ }
5159+#endif
5160+
5161+ GST_LOG_OBJECT (ffmpegdec, "returned buffer %p", buf);
5162+
5163+ return 0;
5164+}
5165+
5166+static void
5167+gst_ffmpegdec_release_buffer (AVCodecContext * context, AVFrame * picture)
5168+{
5169+ gint i;
5170+ GstBuffer *buf;
5171+ GstFFMpegDec *ffmpegdec;
5172+
5173+ ffmpegdec = (GstFFMpegDec *) context->opaque;
5174+
5175+ /* check if it was our buffer */
5176+ if (picture->opaque == NULL) {
5177+ GST_DEBUG_OBJECT (ffmpegdec, "default release buffer");
5178+ avcodec_default_release_buffer (context, picture);
5179+ return;
5180+ }
5181+
5182+ /* we remove the opaque data now */
5183+ buf = GST_BUFFER_CAST (picture->opaque);
5184+ GST_DEBUG_OBJECT (ffmpegdec, "release buffer %p", buf);
5185+ picture->opaque = NULL;
5186+
5187+#ifdef EXTRA_REF
5188+ if (picture->reference != 0 || ffmpegdec->extra_ref) {
5189+ GST_DEBUG_OBJECT (ffmpegdec, "remove extra ref");
5190+ gst_buffer_unref (buf);
5191+ }
5192+#else
5193+ gst_buffer_unref (buf);
5194+#endif
5195+
5196+ /* zero out the reference in ffmpeg */
5197+ for (i = 0; i < 4; i++) {
5198+ picture->data[i] = NULL;
5199+ picture->linesize[i] = 0;
5200+ }
5201+}
5202+
5203+static void
5204+gst_ffmpegdec_add_pixel_aspect_ratio (GstFFMpegDec * ffmpegdec,
5205+ GstStructure * s)
5206+{
5207+ gboolean demuxer_par_set = FALSE;
5208+ gboolean decoder_par_set = FALSE;
5209+ gint demuxer_num = 1, demuxer_denom = 1;
5210+ gint decoder_num = 1, decoder_denom = 1;
5211+
5212+ GST_OBJECT_LOCK (ffmpegdec);
5213+
5214+ if (ffmpegdec->par) {
5215+ demuxer_num = gst_value_get_fraction_numerator (ffmpegdec->par);
5216+ demuxer_denom = gst_value_get_fraction_denominator (ffmpegdec->par);
5217+ demuxer_par_set = TRUE;
5218+ GST_DEBUG_OBJECT (ffmpegdec, "Demuxer PAR: %d:%d", demuxer_num,
5219+ demuxer_denom);
5220+ }
5221+
5222+ if (ffmpegdec->context->sample_aspect_ratio.num &&
5223+ ffmpegdec->context->sample_aspect_ratio.den) {
5224+ decoder_num = ffmpegdec->context->sample_aspect_ratio.num;
5225+ decoder_denom = ffmpegdec->context->sample_aspect_ratio.den;
5226+ decoder_par_set = TRUE;
5227+ GST_DEBUG_OBJECT (ffmpegdec, "Decoder PAR: %d:%d", decoder_num,
5228+ decoder_denom);
5229+ }
5230+
5231+ GST_OBJECT_UNLOCK (ffmpegdec);
5232+
5233+ if (!demuxer_par_set && !decoder_par_set)
5234+ goto no_par;
5235+
5236+ if (demuxer_par_set && !decoder_par_set)
5237+ goto use_demuxer_par;
5238+
5239+ if (decoder_par_set && !demuxer_par_set)
5240+ goto use_decoder_par;
5241+
5242+ /* Both the demuxer and the decoder provide a PAR. If one of
5243+ * the two PARs is 1:1 and the other one is not, use the one
5244+ * that is not 1:1. */
5245+ if (demuxer_num == demuxer_denom && decoder_num != decoder_denom)
5246+ goto use_decoder_par;
5247+
5248+ if (decoder_num == decoder_denom && demuxer_num != demuxer_denom)
5249+ goto use_demuxer_par;
5250+
5251+ /* Both PARs are non-1:1, so use the PAR provided by the demuxer */
5252+ goto use_demuxer_par;
5253+
5254+use_decoder_par:
5255+ {
5256+ GST_DEBUG_OBJECT (ffmpegdec,
5257+ "Setting decoder provided pixel-aspect-ratio of %u:%u", decoder_num,
5258+ decoder_denom);
5259+ gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, decoder_num,
5260+ decoder_denom, NULL);
5261+ return;
5262+ }
5263+
5264+use_demuxer_par:
5265+ {
5266+ GST_DEBUG_OBJECT (ffmpegdec,
5267+ "Setting demuxer provided pixel-aspect-ratio of %u:%u", demuxer_num,
5268+ demuxer_denom);
5269+ gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, demuxer_num,
5270+ demuxer_denom, NULL);
5271+ return;
5272+ }
5273+no_par:
5274+ {
5275+ GST_DEBUG_OBJECT (ffmpegdec,
5276+ "Neither demuxer nor codec provide a pixel-aspect-ratio");
5277+ return;
5278+ }
5279+}
5280+
5281+static gboolean
5282+gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec, gboolean force)
5283+{
5284+ GstFFMpegDecClass *oclass;
5285+ GstCaps *caps;
5286+
5287+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
5288+
5289+ switch (oclass->in_plugin->type) {
5290+ case AVMEDIA_TYPE_VIDEO:
5291+ if (!force && ffmpegdec->format.video.width == ffmpegdec->context->width
5292+ && ffmpegdec->format.video.height == ffmpegdec->context->height
5293+ && ffmpegdec->format.video.fps_n == ffmpegdec->format.video.old_fps_n
5294+ && ffmpegdec->format.video.fps_d == ffmpegdec->format.video.old_fps_d
5295+ && ffmpegdec->format.video.pix_fmt == ffmpegdec->context->pix_fmt
5296+ && ffmpegdec->format.video.par_n ==
5297+ ffmpegdec->context->sample_aspect_ratio.num
5298+ && ffmpegdec->format.video.par_d ==
5299+ ffmpegdec->context->sample_aspect_ratio.den)
5300+ return TRUE;
5301+ GST_DEBUG_OBJECT (ffmpegdec,
5302+ "Renegotiating video from %dx%d@ %d:%d PAR %d/%d fps to %dx%d@ %d:%d PAR %d/%d fps",
5303+ ffmpegdec->format.video.width, ffmpegdec->format.video.height,
5304+ ffmpegdec->format.video.par_n, ffmpegdec->format.video.par_d,
5305+ ffmpegdec->format.video.old_fps_n, ffmpegdec->format.video.old_fps_n,
5306+ ffmpegdec->context->width, ffmpegdec->context->height,
5307+ ffmpegdec->context->sample_aspect_ratio.num,
5308+ ffmpegdec->context->sample_aspect_ratio.den,
5309+ ffmpegdec->format.video.fps_n, ffmpegdec->format.video.fps_d);
5310+ ffmpegdec->format.video.width = ffmpegdec->context->width;
5311+ ffmpegdec->format.video.height = ffmpegdec->context->height;
5312+ ffmpegdec->format.video.old_fps_n = ffmpegdec->format.video.fps_n;
5313+ ffmpegdec->format.video.old_fps_d = ffmpegdec->format.video.fps_d;
5314+ ffmpegdec->format.video.pix_fmt = ffmpegdec->context->pix_fmt;
5315+ ffmpegdec->format.video.par_n =
5316+ ffmpegdec->context->sample_aspect_ratio.num;
5317+ ffmpegdec->format.video.par_d =
5318+ ffmpegdec->context->sample_aspect_ratio.den;
5319+ break;
5320+ case AVMEDIA_TYPE_AUDIO:
5321+ {
5322+ gint depth = av_smp_format_depth (ffmpegdec->context->sample_fmt);
5323+ if (!force && ffmpegdec->format.audio.samplerate ==
5324+ ffmpegdec->context->sample_rate &&
5325+ ffmpegdec->format.audio.channels == ffmpegdec->context->channels &&
5326+ ffmpegdec->format.audio.depth == depth)
5327+ return TRUE;
5328+ GST_DEBUG_OBJECT (ffmpegdec,
5329+ "Renegotiating audio from %dHz@%dchannels (%d) to %dHz@%dchannels (%d)",
5330+ ffmpegdec->format.audio.samplerate, ffmpegdec->format.audio.channels,
5331+ ffmpegdec->format.audio.depth,
5332+ ffmpegdec->context->sample_rate, ffmpegdec->context->channels, depth);
5333+ ffmpegdec->format.audio.samplerate = ffmpegdec->context->sample_rate;
5334+ ffmpegdec->format.audio.channels = ffmpegdec->context->channels;
5335+ ffmpegdec->format.audio.depth = depth;
5336+ }
5337+ break;
5338+ default:
5339+ break;
5340+ }
5341+
5342+ caps = gst_ffmpeg_codectype_to_caps (oclass->in_plugin->type,
5343+ ffmpegdec->context, oclass->in_plugin->id, FALSE);
5344+
5345+ if (caps == NULL)
5346+ goto no_caps;
5347+
5348+ switch (oclass->in_plugin->type) {
5349+ case AVMEDIA_TYPE_VIDEO:
5350+ {
5351+ gint width, height;
5352+ gboolean interlaced;
5353+
5354+ width = ffmpegdec->format.video.clip_width;
5355+ height = ffmpegdec->format.video.clip_height;
5356+ interlaced = ffmpegdec->format.video.interlaced;
5357+
5358+ if (width != -1 && height != -1) {
5359+ /* overwrite the output size with the dimension of the
5360+ * clipping region but only if they are smaller. */
5361+ if (width < ffmpegdec->context->width)
5362+ gst_caps_set_simple (caps, "width", G_TYPE_INT, width, NULL);
5363+ if (height < ffmpegdec->context->height)
5364+ gst_caps_set_simple (caps, "height", G_TYPE_INT, height, NULL);
5365+ }
5366+ gst_caps_set_simple (caps, "interlaced", G_TYPE_BOOLEAN, interlaced,
5367+ NULL);
5368+
5369+ /* If a demuxer provided a framerate then use it (#313970) */
5370+ if (ffmpegdec->format.video.fps_n != -1) {
5371+ gst_caps_set_simple (caps, "framerate",
5372+ GST_TYPE_FRACTION, ffmpegdec->format.video.fps_n,
5373+ ffmpegdec->format.video.fps_d, NULL);
5374+ }
5375+ gst_ffmpegdec_add_pixel_aspect_ratio (ffmpegdec,
5376+ gst_caps_get_structure (caps, 0));
5377+ break;
5378+ }
5379+ case AVMEDIA_TYPE_AUDIO:
5380+ {
5381+ break;
5382+ }
5383+ default:
5384+ break;
5385+ }
5386+
5387+ if (!gst_pad_set_caps (ffmpegdec->srcpad, caps))
5388+ goto caps_failed;
5389+
5390+ gst_caps_unref (caps);
5391+
5392+ return TRUE;
5393+
5394+ /* ERRORS */
5395+no_caps:
5396+ {
5397+#ifdef HAVE_FFMPEG_UNINSTALLED
5398+ /* using internal ffmpeg snapshot */
5399+ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION,
5400+ ("Could not find GStreamer caps mapping for FFmpeg codec '%s'.",
5401+ oclass->in_plugin->name), (NULL));
5402+#else
5403+ /* using external ffmpeg */
5404+ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION,
5405+ ("Could not find GStreamer caps mapping for FFmpeg codec '%s', and "
5406+ "you are using an external libavcodec. This is most likely due to "
5407+ "a packaging problem and/or libavcodec having been upgraded to a "
5408+ "version that is not compatible with this version of "
5409+ "gstreamer-ffmpeg. Make sure your gstreamer-ffmpeg and libavcodec "
5410+ "packages come from the same source/repository.",
5411+ oclass->in_plugin->name), (NULL));
5412+#endif
5413+ return FALSE;
5414+ }
5415+caps_failed:
5416+ {
5417+ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, (NULL),
5418+ ("Could not set caps for ffmpeg decoder (%s), not fixed?",
5419+ oclass->in_plugin->name));
5420+ gst_caps_unref (caps);
5421+
5422+ return FALSE;
5423+ }
5424+}
5425+
5426+/* perform qos calculations before decoding the next frame.
5427+ *
5428+ * Sets the skip_frame flag and if things are really bad, skips to the next
5429+ * keyframe.
5430+ *
5431+ * Returns TRUE if the frame should be decoded, FALSE if the frame can be dropped
5432+ * entirely.
5433+ */
5434+static gboolean
5435+gst_ffmpegdec_do_qos (GstFFMpegDec * ffmpegdec, GstClockTime timestamp,
5436+ gboolean * mode_switch)
5437+{
5438+ GstClockTimeDiff diff;
5439+ gdouble proportion;
5440+ GstClockTime qostime, earliest_time;
5441+ gboolean res = TRUE;
5442+
5443+ *mode_switch = FALSE;
5444+
5445+ /* no timestamp, can't do QoS */
5446+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp)))
5447+ goto no_qos;
5448+
5449+ /* get latest QoS observation values */
5450+ gst_ffmpegdec_read_qos (ffmpegdec, &proportion, &earliest_time);
5451+
5452+ /* skip qos if we have no observation (yet) */
5453+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (earliest_time))) {
5454+ /* no skip_frame initialy */
5455+ ffmpegdec->context->skip_frame = AVDISCARD_DEFAULT;
5456+ goto no_qos;
5457+ }
5458+
5459+ /* qos is done on running time of the timestamp */
5460+ qostime = gst_segment_to_running_time (&ffmpegdec->segment, GST_FORMAT_TIME,
5461+ timestamp);
5462+
5463+ /* timestamp can be out of segment, then we don't do QoS */
5464+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (qostime)))
5465+ goto no_qos;
5466+
5467+ /* see how our next timestamp relates to the latest qos timestamp. negative
5468+ * values mean we are early, positive values mean we are too late. */
5469+ diff = GST_CLOCK_DIFF (qostime, earliest_time);
5470+
5471+ GST_DEBUG_OBJECT (ffmpegdec, "QOS: qostime %" GST_TIME_FORMAT
5472+ ", earliest %" GST_TIME_FORMAT, GST_TIME_ARGS (qostime),
5473+ GST_TIME_ARGS (earliest_time));
5474+
5475+ /* if we using less than 40% of the available time, we can try to
5476+ * speed up again when we were slow. */
5477+ if (proportion < 0.4 && diff < 0) {
5478+ goto normal_mode;
5479+ } else {
5480+ if (diff >= 0) {
5481+ /* we're too slow, try to speed up */
5482+ /* switch to skip_frame mode */
5483+ goto skip_frame;
5484+ }
5485+ }
5486+
5487+no_qos:
5488+ ffmpegdec->processed++;
5489+ return TRUE;
5490+
5491+normal_mode:
5492+ {
5493+ if (ffmpegdec->context->skip_frame != AVDISCARD_DEFAULT) {
5494+ ffmpegdec->context->skip_frame = AVDISCARD_DEFAULT;
5495+ *mode_switch = TRUE;
5496+ GST_DEBUG_OBJECT (ffmpegdec, "QOS: normal mode %g < 0.4", proportion);
5497+ }
5498+ ffmpegdec->processed++;
5499+ return TRUE;
5500+ }
5501+skip_frame:
5502+ {
5503+ if (ffmpegdec->context->skip_frame != AVDISCARD_NONREF) {
5504+ ffmpegdec->context->skip_frame = AVDISCARD_NONREF;
5505+ *mode_switch = TRUE;
5506+ GST_DEBUG_OBJECT (ffmpegdec,
5507+ "QOS: hurry up, diff %" G_GINT64_FORMAT " >= 0", diff);
5508+ }
5509+ goto drop_qos;
5510+ }
5511+drop_qos:
5512+ {
5513+ GstClockTime stream_time, jitter;
5514+ GstMessage *qos_msg;
5515+
5516+ ffmpegdec->dropped++;
5517+ stream_time =
5518+ gst_segment_to_stream_time (&ffmpegdec->segment, GST_FORMAT_TIME,
5519+ timestamp);
5520+ jitter = GST_CLOCK_DIFF (qostime, earliest_time);
5521+ qos_msg =
5522+ gst_message_new_qos (GST_OBJECT_CAST (ffmpegdec), FALSE, qostime,
5523+ stream_time, timestamp, GST_CLOCK_TIME_NONE);
5524+ gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
5525+ gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
5526+ ffmpegdec->processed, ffmpegdec->dropped);
5527+ gst_element_post_message (GST_ELEMENT_CAST (ffmpegdec), qos_msg);
5528+
5529+ return res;
5530+ }
5531+}
5532+
5533+/* returns TRUE if buffer is within segment, else FALSE.
5534+ * if Buffer is on segment border, it's timestamp and duration will be clipped */
5535+static gboolean
5536+clip_video_buffer (GstFFMpegDec * dec, GstBuffer * buf, GstClockTime in_ts,
5537+ GstClockTime in_dur)
5538+{
5539+ gboolean res = TRUE;
5540+ gint64 cstart, cstop;
5541+ GstClockTime stop;
5542+
5543+ GST_LOG_OBJECT (dec,
5544+ "timestamp:%" GST_TIME_FORMAT " , duration:%" GST_TIME_FORMAT,
5545+ GST_TIME_ARGS (in_ts), GST_TIME_ARGS (in_dur));
5546+
5547+ /* can't clip without TIME segment */
5548+ if (G_UNLIKELY (dec->segment.format != GST_FORMAT_TIME))
5549+ goto beach;
5550+
5551+ /* we need a start time */
5552+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (in_ts)))
5553+ goto beach;
5554+
5555+ /* generate valid stop, if duration unknown, we have unknown stop */
5556+ stop =
5557+ GST_CLOCK_TIME_IS_VALID (in_dur) ? (in_ts + in_dur) : GST_CLOCK_TIME_NONE;
5558+
5559+ /* now clip */
5560+ res =
5561+ gst_segment_clip (&dec->segment, GST_FORMAT_TIME, in_ts, stop, &cstart,
5562+ &cstop);
5563+ if (G_UNLIKELY (!res))
5564+ goto beach;
5565+
5566+ /* we're pretty sure the duration of this buffer is not till the end of this
5567+ * segment (which _clip will assume when the stop is -1) */
5568+ if (stop == GST_CLOCK_TIME_NONE)
5569+ cstop = GST_CLOCK_TIME_NONE;
5570+
5571+ /* update timestamp and possibly duration if the clipped stop time is
5572+ * valid */
5573+ GST_BUFFER_TIMESTAMP (buf) = cstart;
5574+ if (GST_CLOCK_TIME_IS_VALID (cstop))
5575+ GST_BUFFER_DURATION (buf) = cstop - cstart;
5576+
5577+ GST_LOG_OBJECT (dec,
5578+ "clipped timestamp:%" GST_TIME_FORMAT " , duration:%" GST_TIME_FORMAT,
5579+ GST_TIME_ARGS (cstart), GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
5580+
5581+beach:
5582+ GST_LOG_OBJECT (dec, "%sdropping", (res ? "not " : ""));
5583+ return res;
5584+}
5585+
5586+
5587+/* get an outbuf buffer with the current picture */
5588+static GstFlowReturn
5589+get_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf)
5590+{
5591+ GstFlowReturn ret;
5592+
5593+ ret = GST_FLOW_OK;
5594+ *outbuf = NULL;
5595+
5596+ if (ffmpegdec->picture->opaque != NULL) {
5597+ /* we allocated a picture already for ffmpeg to decode into, let's pick it
5598+ * up and use it now. */
5599+ *outbuf = (GstBuffer *) ffmpegdec->picture->opaque;
5600+ GST_LOG_OBJECT (ffmpegdec, "using opaque buffer %p", *outbuf);
5601+#ifndef EXTRA_REF
5602+ gst_buffer_ref (*outbuf);
5603+#endif
5604+ } else {
5605+ AVPicture pic, *outpic;
5606+ gint width, height;
5607+
5608+ GST_LOG_OBJECT (ffmpegdec, "get output buffer");
5609+
5610+ /* figure out size of output buffer, this is the clipped output size because
5611+ * we will copy the picture into it but only when the clipping region is
5612+ * smaller than the actual picture size. */
5613+ if ((width = ffmpegdec->format.video.clip_width) == -1)
5614+ width = ffmpegdec->context->width;
5615+ else if (width > ffmpegdec->context->width)
5616+ width = ffmpegdec->context->width;
5617+
5618+ if ((height = ffmpegdec->format.video.clip_height) == -1)
5619+ height = ffmpegdec->context->height;
5620+ else if (height > ffmpegdec->context->height)
5621+ height = ffmpegdec->context->height;
5622+
5623+ GST_LOG_OBJECT (ffmpegdec, "clip width %d/height %d", width, height);
5624+
5625+ ret = alloc_output_buffer (ffmpegdec, outbuf, width, height);
5626+ if (G_UNLIKELY (ret != GST_FLOW_OK))
5627+ goto alloc_failed;
5628+
5629+ /* original ffmpeg code does not handle odd sizes correctly.
5630+ * This patched up version does */
5631+ gst_ffmpeg_avpicture_fill (&pic, GST_BUFFER_DATA (*outbuf),
5632+ ffmpegdec->context->pix_fmt, width, height);
5633+
5634+ outpic = (AVPicture *) ffmpegdec->picture;
5635+
5636+ GST_LOG_OBJECT (ffmpegdec, "linsize %d %d %d", outpic->linesize[0],
5637+ outpic->linesize[1], outpic->linesize[2]);
5638+ GST_LOG_OBJECT (ffmpegdec, "data %u %u %u", 0,
5639+ (guint) (outpic->data[1] - outpic->data[0]),
5640+ (guint) (outpic->data[2] - outpic->data[0]));
5641+
5642+ av_picture_copy (&pic, outpic, ffmpegdec->context->pix_fmt, width, height);
5643+ }
5644+ ffmpegdec->picture->reordered_opaque = -1;
5645+
5646+ return ret;
5647+
5648+ /* special cases */
5649+alloc_failed:
5650+ {
5651+ GST_DEBUG_OBJECT (ffmpegdec, "pad_alloc failed");
5652+ return ret;
5653+ }
5654+}
5655+
5656+static void
5657+clear_queued (GstFFMpegDec * ffmpegdec)
5658+{
5659+ g_list_foreach (ffmpegdec->queued, (GFunc) gst_mini_object_unref, NULL);
5660+ g_list_free (ffmpegdec->queued);
5661+ ffmpegdec->queued = NULL;
5662+}
5663+
5664+static GstFlowReturn
5665+flush_queued (GstFFMpegDec * ffmpegdec)
5666+{
5667+ GstFlowReturn res = GST_FLOW_OK;
5668+
5669+ while (ffmpegdec->queued) {
5670+ GstBuffer *buf = GST_BUFFER_CAST (ffmpegdec->queued->data);
5671+
5672+ GST_LOG_OBJECT (ffmpegdec, "pushing buffer %p, offset %"
5673+ G_GUINT64_FORMAT ", timestamp %"
5674+ GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT, buf,
5675+ GST_BUFFER_OFFSET (buf),
5676+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
5677+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
5678+
5679+ /* iterate ouput queue an push downstream */
5680+ res = gst_pad_push (ffmpegdec->srcpad, buf);
5681+
5682+ ffmpegdec->queued =
5683+ g_list_delete_link (ffmpegdec->queued, ffmpegdec->queued);
5684+ }
5685+ return res;
5686+}
5687+
5688+static void
5689+gst_avpacket_init (AVPacket * packet, guint8 * data, guint size)
5690+{
5691+ memset (packet, 0, sizeof (AVPacket));
5692+ packet->data = data;
5693+ packet->size = size;
5694+}
5695+
5696+/* gst_ffmpegdec_[video|audio]_frame:
5697+ * ffmpegdec:
5698+ * data: pointer to the data to decode
5699+ * size: size of data in bytes
5700+ * in_timestamp: incoming timestamp.
5701+ * in_duration: incoming duration.
5702+ * in_offset: incoming offset (frame number).
5703+ * outbuf: outgoing buffer. Different from NULL ONLY if it contains decoded data.
5704+ * ret: Return flow.
5705+ *
5706+ * Returns: number of bytes used in decoding. The check for successful decode is
5707+ * outbuf being non-NULL.
5708+ */
5709+static gint
5710+gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec,
5711+ guint8 * data, guint size,
5712+ const GstTSInfo * dec_info, GstBuffer ** outbuf, GstFlowReturn * ret)
5713+{
5714+ gint len = -1;
5715+ gint have_data;
5716+ gboolean mode_switch;
5717+ gboolean decode;
5718+ gint skip_frame = AVDISCARD_DEFAULT;
5719+ GstClockTime out_timestamp, out_duration, out_pts;
5720+ gint64 out_offset;
5721+ const GstTSInfo *out_info;
5722+ AVPacket packet;
5723+
5724+ *ret = GST_FLOW_OK;
5725+ *outbuf = NULL;
5726+
5727+ ffmpegdec->context->opaque = ffmpegdec;
5728+
5729+ /* in case we skip frames */
5730+ ffmpegdec->picture->pict_type = -1;
5731+
5732+ /* run QoS code, we don't stop decoding the frame when we are late because
5733+ * else we might skip a reference frame */
5734+ decode = gst_ffmpegdec_do_qos (ffmpegdec, dec_info->timestamp, &mode_switch);
5735+
5736+ if (ffmpegdec->is_realvideo && data != NULL) {
5737+ gint slice_count;
5738+ gint i;
5739+
5740+ /* setup the slice table for realvideo */
5741+ if (ffmpegdec->context->slice_offset == NULL)
5742+ ffmpegdec->context->slice_offset = g_malloc (sizeof (guint32) * 1000);
5743+
5744+ slice_count = (*data++) + 1;
5745+ ffmpegdec->context->slice_count = slice_count;
5746+
5747+ for (i = 0; i < slice_count; i++) {
5748+ data += 4;
5749+ ffmpegdec->context->slice_offset[i] = GST_READ_UINT32_LE (data);
5750+ data += 4;
5751+ }
5752+ }
5753+
5754+ if (!decode) {
5755+ /* no decoding needed, save previous skip_frame value and brutely skip
5756+ * decoding everything */
5757+ skip_frame = ffmpegdec->context->skip_frame;
5758+ ffmpegdec->context->skip_frame = AVDISCARD_NONREF;
5759+ }
5760+
5761+ /* save reference to the timing info */
5762+ ffmpegdec->context->reordered_opaque = (gint64) dec_info->idx;
5763+ ffmpegdec->picture->reordered_opaque = (gint64) dec_info->idx;
5764+
5765+ GST_DEBUG_OBJECT (ffmpegdec, "stored opaque values idx %d", dec_info->idx);
5766+
5767+ /* now decode the frame */
5768+ gst_avpacket_init (&packet, data, size);
5769+ len = avcodec_decode_video2 (ffmpegdec->context,
5770+ ffmpegdec->picture, &have_data, &packet);
5771+
5772+ /* restore previous state */
5773+ if (!decode)
5774+ ffmpegdec->context->skip_frame = skip_frame;
5775+
5776+ GST_DEBUG_OBJECT (ffmpegdec, "after decode: len %d, have_data %d",
5777+ len, have_data);
5778+
5779+ /* when we are in skip_frame mode, don't complain when ffmpeg returned
5780+ * no data because we told it to skip stuff. */
5781+ if (len < 0 && (mode_switch || ffmpegdec->context->skip_frame))
5782+ len = 0;
5783+
5784+ if (len > 0 && have_data <= 0 && (mode_switch
5785+ || ffmpegdec->context->skip_frame)) {
5786+ /* we consumed some bytes but nothing decoded and we are skipping frames,
5787+ * disable the interpollation of DTS timestamps */
5788+ ffmpegdec->last_out = -1;
5789+ }
5790+
5791+ /* no data, we're done */
5792+ if (len < 0 || have_data <= 0)
5793+ goto beach;
5794+
5795+ /* get the output picture timing info again */
5796+ out_info = gst_ts_info_get (ffmpegdec, ffmpegdec->picture->reordered_opaque);
5797+ out_pts = out_info->timestamp;
5798+ out_duration = out_info->duration;
5799+ out_offset = out_info->offset;
5800+
5801+ GST_DEBUG_OBJECT (ffmpegdec,
5802+ "pts %" G_GUINT64_FORMAT " duration %" G_GUINT64_FORMAT " offset %"
5803+ G_GINT64_FORMAT, out_pts, out_duration, out_offset);
5804+ GST_DEBUG_OBJECT (ffmpegdec, "picture: pts %" G_GUINT64_FORMAT,
5805+ (guint64) ffmpegdec->picture->pts);
5806+ GST_DEBUG_OBJECT (ffmpegdec, "picture: num %d",
5807+ ffmpegdec->picture->coded_picture_number);
5808+ GST_DEBUG_OBJECT (ffmpegdec, "picture: ref %d",
5809+ ffmpegdec->picture->reference);
5810+ GST_DEBUG_OBJECT (ffmpegdec, "picture: display %d",
5811+ ffmpegdec->picture->display_picture_number);
5812+ GST_DEBUG_OBJECT (ffmpegdec, "picture: opaque %p",
5813+ ffmpegdec->picture->opaque);
5814+ GST_DEBUG_OBJECT (ffmpegdec, "picture: reordered opaque %" G_GUINT64_FORMAT,
5815+ (guint64) ffmpegdec->picture->reordered_opaque);
5816+ GST_DEBUG_OBJECT (ffmpegdec, "repeat_pict:%d",
5817+ ffmpegdec->picture->repeat_pict);
5818+ GST_DEBUG_OBJECT (ffmpegdec, "interlaced_frame:%d",
5819+ ffmpegdec->picture->interlaced_frame);
5820+
5821+ if (G_UNLIKELY (ffmpegdec->picture->interlaced_frame !=
5822+ ffmpegdec->format.video.interlaced)) {
5823+ GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d",
5824+ ffmpegdec->picture->interlaced_frame,
5825+ ffmpegdec->format.video.interlaced);
5826+ ffmpegdec->format.video.interlaced = ffmpegdec->picture->interlaced_frame;
5827+ gst_ffmpegdec_negotiate (ffmpegdec, TRUE);
5828+ }
5829+
5830+ /* Whether a frame is interlaced or not is unknown at the time of
5831+ buffer allocation, so caps on the buffer in opaque will have
5832+ the previous frame's interlaced flag set. So if interlacedness
5833+ has changed since allocation, we update the buffer (if any)
5834+ caps now with the correct interlaced flag. */
5835+ if (ffmpegdec->picture->opaque != NULL) {
5836+ GstBuffer *buffer = ffmpegdec->picture->opaque;
5837+ if (GST_BUFFER_CAPS (buffer) && GST_PAD_CAPS (ffmpegdec->srcpad)) {
5838+ GstStructure *s = gst_caps_get_structure (GST_BUFFER_CAPS (buffer), 0);
5839+ gboolean interlaced;
5840+ gboolean found = gst_structure_get_boolean (s, "interlaced", &interlaced);
5841+ if (!found || (!!interlaced != !!ffmpegdec->format.video.interlaced)) {
5842+ GST_DEBUG_OBJECT (ffmpegdec,
5843+ "Buffer interlacing does not match pad, updating");
5844+ buffer = gst_buffer_make_metadata_writable (buffer);
5845+ gst_buffer_set_caps (buffer, GST_PAD_CAPS (ffmpegdec->srcpad));
5846+ ffmpegdec->picture->opaque = buffer;
5847+ }
5848+ }
5849+ }
5850+
5851+ /* check that the timestamps go upwards */
5852+ if (ffmpegdec->last_out != -1 && ffmpegdec->last_out > out_pts) {
5853+ /* timestamps go backwards, this means frames were reordered and we must
5854+ * be dealing with DTS as the buffer timestamps */
5855+ if (!ffmpegdec->reordered_out) {
5856+ GST_DEBUG_OBJECT (ffmpegdec, "detected reordered out timestamps");
5857+ ffmpegdec->reordered_out = TRUE;
5858+ }
5859+ if (ffmpegdec->reordered_in) {
5860+ /* we reset the input reordering here because we want to recover from an
5861+ * occasionally wrong reordered input timestamp */
5862+ GST_DEBUG_OBJECT (ffmpegdec, "assuming DTS input timestamps");
5863+ ffmpegdec->reordered_in = FALSE;
5864+ }
5865+ }
5866+
5867+ if (out_pts == 0 && out_pts == ffmpegdec->last_out) {
5868+ GST_LOG_OBJECT (ffmpegdec, "ffmpeg returns 0 timestamps, ignoring");
5869+ /* some codecs only output 0 timestamps, when that happens, make us select an
5870+ * output timestamp based on the input timestamp. We do this by making the
5871+ * ffmpeg timestamp and the interpollated next timestamp invalid. */
5872+ out_pts = -1;
5873+ ffmpegdec->next_out = -1;
5874+ } else
5875+ ffmpegdec->last_out = out_pts;
5876+
5877+ /* we assume DTS as input timestamps unless we see reordered input
5878+ * timestamps */
5879+ if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) {
5880+ /* PTS and DTS are the same for keyframes */
5881+ if (ffmpegdec->next_out != -1) {
5882+ /* interpolate all timestamps except for keyframes, FIXME, this is
5883+ * wrong when QoS is active. */
5884+ GST_DEBUG_OBJECT (ffmpegdec, "interpolate timestamps");
5885+ out_pts = -1;
5886+ out_offset = -1;
5887+ }
5888+ }
5889+
5890+ /* get a handle to the output buffer */
5891+ *ret = get_output_buffer (ffmpegdec, outbuf);
5892+ if (G_UNLIKELY (*ret != GST_FLOW_OK))
5893+ goto no_output;
5894+
5895+ /*
5896+ * Timestamps:
5897+ *
5898+ * 1) Copy picture timestamp if valid
5899+ * 2) else interpolate from previous output timestamp
5900+ * 3) else copy input timestamp
5901+ */
5902+ out_timestamp = -1;
5903+ if (out_pts != -1) {
5904+ /* Get (interpolated) timestamp from FFMPEG */
5905+ out_timestamp = (GstClockTime) out_pts;
5906+ GST_LOG_OBJECT (ffmpegdec, "using timestamp %" GST_TIME_FORMAT
5907+ " returned by ffmpeg", GST_TIME_ARGS (out_timestamp));
5908+ }
5909+ if (!GST_CLOCK_TIME_IS_VALID (out_timestamp) && ffmpegdec->next_out != -1) {
5910+ out_timestamp = ffmpegdec->next_out;
5911+ GST_LOG_OBJECT (ffmpegdec, "using next timestamp %" GST_TIME_FORMAT,
5912+ GST_TIME_ARGS (out_timestamp));
5913+ }
5914+ if (!GST_CLOCK_TIME_IS_VALID (out_timestamp)) {
5915+ out_timestamp = dec_info->timestamp;
5916+ GST_LOG_OBJECT (ffmpegdec, "using in timestamp %" GST_TIME_FORMAT,
5917+ GST_TIME_ARGS (out_timestamp));
5918+ }
5919+ GST_BUFFER_TIMESTAMP (*outbuf) = out_timestamp;
5920+
5921+ /*
5922+ * Offset:
5923+ * 0) Use stored input offset (from opaque)
5924+ * 1) Use value converted from timestamp if valid
5925+ * 2) Use input offset if valid
5926+ */
5927+ if (out_offset != GST_BUFFER_OFFSET_NONE) {
5928+ /* out_offset already contains the offset from ts_info */
5929+ GST_LOG_OBJECT (ffmpegdec, "Using offset returned by ffmpeg");
5930+ } else if (out_timestamp != GST_CLOCK_TIME_NONE) {
5931+ GstFormat out_fmt = GST_FORMAT_DEFAULT;
5932+ GST_LOG_OBJECT (ffmpegdec, "Using offset converted from timestamp");
5933+ /* FIXME, we should really remove this as it's not nice at all to do
5934+ * upstream queries for each frame to get the frame offset. We also can't
5935+ * really remove this because it is the only way of setting frame offsets
5936+ * on outgoing buffers. We should have metadata so that the upstream peer
5937+ * can set a frame number on the encoded data. */
5938+ gst_pad_query_peer_convert (ffmpegdec->sinkpad,
5939+ GST_FORMAT_TIME, out_timestamp, &out_fmt, &out_offset);
5940+ } else if (dec_info->offset != GST_BUFFER_OFFSET_NONE) {
5941+ /* FIXME, the input offset is input media specific and might not
5942+ * be the same for the output media. (byte offset as input, frame number
5943+ * as output, for example) */
5944+ GST_LOG_OBJECT (ffmpegdec, "using in_offset %" G_GINT64_FORMAT,
5945+ dec_info->offset);
5946+ out_offset = dec_info->offset;
5947+ } else {
5948+ GST_LOG_OBJECT (ffmpegdec, "no valid offset found");
5949+ out_offset = GST_BUFFER_OFFSET_NONE;
5950+ }
5951+ GST_BUFFER_OFFSET (*outbuf) = out_offset;
5952+
5953+ /*
5954+ * Duration:
5955+ *
5956+ * 1) Use reordered input duration if valid
5957+ * 2) Else use input duration
5958+ * 3) else use input framerate
5959+ * 4) else use ffmpeg framerate
5960+ */
5961+ if (GST_CLOCK_TIME_IS_VALID (out_duration)) {
5962+ /* We have a valid (reordered) duration */
5963+ GST_LOG_OBJECT (ffmpegdec, "Using duration returned by ffmpeg");
5964+ } else if (GST_CLOCK_TIME_IS_VALID (dec_info->duration)) {
5965+ GST_LOG_OBJECT (ffmpegdec, "using in_duration");
5966+ out_duration = dec_info->duration;
5967+ } else if (GST_CLOCK_TIME_IS_VALID (ffmpegdec->last_diff)) {
5968+ GST_LOG_OBJECT (ffmpegdec, "using last-diff");
5969+ out_duration = ffmpegdec->last_diff;
5970+ } else {
5971+ /* if we have an input framerate, use that */
5972+ if (ffmpegdec->format.video.fps_n != -1 &&
5973+ (ffmpegdec->format.video.fps_n != 1000 &&
5974+ ffmpegdec->format.video.fps_d != 1)) {
5975+ GST_LOG_OBJECT (ffmpegdec, "using input framerate for duration");
5976+ out_duration = gst_util_uint64_scale_int (GST_SECOND,
5977+ ffmpegdec->format.video.fps_d, ffmpegdec->format.video.fps_n);
5978+ } else {
5979+ /* don't try to use the decoder's framerate when it seems a bit abnormal,
5980+ * which we assume when den >= 1000... */
5981+ if (ffmpegdec->context->time_base.num != 0 &&
5982+ (ffmpegdec->context->time_base.den > 0 &&
5983+ ffmpegdec->context->time_base.den < 1000)) {
5984+ GST_LOG_OBJECT (ffmpegdec, "using decoder's framerate for duration");
5985+ out_duration = gst_util_uint64_scale_int (GST_SECOND,
5986+ ffmpegdec->context->time_base.num *
5987+ ffmpegdec->context->ticks_per_frame,
5988+ ffmpegdec->context->time_base.den);
5989+ } else {
5990+ GST_LOG_OBJECT (ffmpegdec, "no valid duration found");
5991+ }
5992+ }
5993+ }
5994+
5995+ /* Take repeat_pict into account */
5996+ if (GST_CLOCK_TIME_IS_VALID (out_duration)) {
5997+ out_duration += out_duration * ffmpegdec->picture->repeat_pict / 2;
5998+ }
5999+ GST_BUFFER_DURATION (*outbuf) = out_duration;
6000+
6001+ if (out_timestamp != -1 && out_duration != -1 && out_duration != 0)
6002+ ffmpegdec->next_out = out_timestamp + out_duration;
6003+ else
6004+ ffmpegdec->next_out = -1;
6005+
6006+ /* now see if we need to clip the buffer against the segment boundaries. */
6007+ if (G_UNLIKELY (!clip_video_buffer (ffmpegdec, *outbuf, out_timestamp,
6008+ out_duration)))
6009+ goto clipped;
6010+
6011+ if (ffmpegdec->picture->top_field_first)
6012+ GST_BUFFER_FLAG_SET (*outbuf, GST_VIDEO_BUFFER_TFF);
6013+
6014+
6015+beach:
6016+ GST_DEBUG_OBJECT (ffmpegdec, "return flow %d, out %p, len %d",
6017+ *ret, *outbuf, len);
6018+ return len;
6019+
6020+ /* special cases */
6021+no_output:
6022+ {
6023+ GST_DEBUG_OBJECT (ffmpegdec, "no output buffer");
6024+ len = -1;
6025+ goto beach;
6026+ }
6027+clipped:
6028+ {
6029+ GST_DEBUG_OBJECT (ffmpegdec, "buffer clipped");
6030+ gst_buffer_unref (*outbuf);
6031+ *outbuf = NULL;
6032+ goto beach;
6033+ }
6034+}
6035+
6036+/* returns TRUE if buffer is within segment, else FALSE.
6037+ * if Buffer is on segment border, it's timestamp and duration will be clipped */
6038+static gboolean
6039+clip_audio_buffer (GstFFMpegDec * dec, GstBuffer * buf, GstClockTime in_ts,
6040+ GstClockTime in_dur)
6041+{
6042+ GstClockTime stop;
6043+ gint64 diff, ctime, cstop;
6044+ gboolean res = TRUE;
6045+
6046+ GST_LOG_OBJECT (dec,
6047+ "timestamp:%" GST_TIME_FORMAT ", duration:%" GST_TIME_FORMAT
6048+ ", size %u", GST_TIME_ARGS (in_ts), GST_TIME_ARGS (in_dur),
6049+ GST_BUFFER_SIZE (buf));
6050+
6051+ /* can't clip without TIME segment */
6052+ if (G_UNLIKELY (dec->segment.format != GST_FORMAT_TIME))
6053+ goto beach;
6054+
6055+ /* we need a start time */
6056+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (in_ts)))
6057+ goto beach;
6058+
6059+ /* trust duration */
6060+ stop = in_ts + in_dur;
6061+
6062+ res = gst_segment_clip (&dec->segment, GST_FORMAT_TIME, in_ts, stop, &ctime,
6063+ &cstop);
6064+ if (G_UNLIKELY (!res))
6065+ goto out_of_segment;
6066+
6067+ /* see if some clipping happened */
6068+ if (G_UNLIKELY ((diff = ctime - in_ts) > 0)) {
6069+ /* bring clipped time to bytes */
6070+ diff =
6071+ gst_util_uint64_scale_int (diff, dec->format.audio.samplerate,
6072+ GST_SECOND) * (dec->format.audio.depth * dec->format.audio.channels);
6073+
6074+ GST_DEBUG_OBJECT (dec, "clipping start to %" GST_TIME_FORMAT " %"
6075+ G_GINT64_FORMAT " bytes", GST_TIME_ARGS (ctime), diff);
6076+
6077+ GST_BUFFER_SIZE (buf) -= diff;
6078+ GST_BUFFER_DATA (buf) += diff;
6079+ }
6080+ if (G_UNLIKELY ((diff = stop - cstop) > 0)) {
6081+ /* bring clipped time to bytes */
6082+ diff =
6083+ gst_util_uint64_scale_int (diff, dec->format.audio.samplerate,
6084+ GST_SECOND) * (dec->format.audio.depth * dec->format.audio.channels);
6085+
6086+ GST_DEBUG_OBJECT (dec, "clipping stop to %" GST_TIME_FORMAT " %"
6087+ G_GINT64_FORMAT " bytes", GST_TIME_ARGS (cstop), diff);
6088+
6089+ GST_BUFFER_SIZE (buf) -= diff;
6090+ }
6091+ GST_BUFFER_TIMESTAMP (buf) = ctime;
6092+ GST_BUFFER_DURATION (buf) = cstop - ctime;
6093+
6094+beach:
6095+ GST_LOG_OBJECT (dec, "%sdropping", (res ? "not " : ""));
6096+ return res;
6097+
6098+ /* ERRORS */
6099+out_of_segment:
6100+ {
6101+ GST_LOG_OBJECT (dec, "out of segment");
6102+ goto beach;
6103+ }
6104+}
6105+
6106+static gint
6107+gst_ffmpegdec_audio_frame (GstFFMpegDec * ffmpegdec,
6108+ AVCodec * in_plugin, guint8 * data, guint size,
6109+ const GstTSInfo * dec_info, GstBuffer ** outbuf, GstFlowReturn * ret)
6110+{
6111+ gint len = -1;
6112+ gint have_data = AVCODEC_MAX_AUDIO_FRAME_SIZE;
6113+ GstClockTime out_timestamp, out_duration;
6114+ gint64 out_offset;
6115+ AVPacket packet;
6116+
6117+ GST_DEBUG_OBJECT (ffmpegdec,
6118+ "size:%d, offset:%" G_GINT64_FORMAT ", ts:%" GST_TIME_FORMAT ", dur:%"
6119+ GST_TIME_FORMAT ", ffmpegdec->next_out:%" GST_TIME_FORMAT, size,
6120+ dec_info->offset, GST_TIME_ARGS (dec_info->timestamp),
6121+ GST_TIME_ARGS (dec_info->duration), GST_TIME_ARGS (ffmpegdec->next_out));
6122+
6123+ *outbuf =
6124+ new_aligned_buffer (AVCODEC_MAX_AUDIO_FRAME_SIZE,
6125+ GST_PAD_CAPS (ffmpegdec->srcpad));
6126+
6127+ gst_avpacket_init (&packet, data, size);
6128+ len = avcodec_decode_audio3 (ffmpegdec->context,
6129+ (int16_t *) GST_BUFFER_DATA (*outbuf), &have_data, &packet);
6130+ GST_DEBUG_OBJECT (ffmpegdec,
6131+ "Decode audio: len=%d, have_data=%d", len, have_data);
6132+
6133+ if (len >= 0 && have_data > 0) {
6134+ GST_DEBUG_OBJECT (ffmpegdec, "Creating output buffer");
6135+ if (!gst_ffmpegdec_negotiate (ffmpegdec, FALSE)) {
6136+ gst_buffer_unref (*outbuf);
6137+ *outbuf = NULL;
6138+ len = -1;
6139+ goto beach;
6140+ }
6141+
6142+ /* Buffer size */
6143+ GST_BUFFER_SIZE (*outbuf) = have_data;
6144+
6145+ /*
6146+ * Timestamps:
6147+ *
6148+ * 1) Copy input timestamp if valid
6149+ * 2) else interpolate from previous input timestamp
6150+ */
6151+ /* always take timestamps from the input buffer if any */
6152+ if (GST_CLOCK_TIME_IS_VALID (dec_info->timestamp)) {
6153+ out_timestamp = dec_info->timestamp;
6154+ } else {
6155+ out_timestamp = ffmpegdec->next_out;
6156+ }
6157+
6158+ /*
6159+ * Duration:
6160+ *
6161+ * 1) calculate based on number of samples
6162+ */
6163+ out_duration = gst_util_uint64_scale (have_data, GST_SECOND,
6164+ ffmpegdec->format.audio.depth * ffmpegdec->format.audio.channels *
6165+ ffmpegdec->format.audio.samplerate);
6166+
6167+ /* offset:
6168+ *
6169+ * Just copy
6170+ */
6171+ out_offset = dec_info->offset;
6172+
6173+ GST_DEBUG_OBJECT (ffmpegdec,
6174+ "Buffer created. Size:%d , timestamp:%" GST_TIME_FORMAT " , duration:%"
6175+ GST_TIME_FORMAT, have_data,
6176+ GST_TIME_ARGS (out_timestamp), GST_TIME_ARGS (out_duration));
6177+
6178+ GST_BUFFER_TIMESTAMP (*outbuf) = out_timestamp;
6179+ GST_BUFFER_DURATION (*outbuf) = out_duration;
6180+ GST_BUFFER_OFFSET (*outbuf) = out_offset;
6181+ gst_buffer_set_caps (*outbuf, GST_PAD_CAPS (ffmpegdec->srcpad));
6182+
6183+ /* the next timestamp we'll use when interpolating */
6184+ if (GST_CLOCK_TIME_IS_VALID (out_timestamp))
6185+ ffmpegdec->next_out = out_timestamp + out_duration;
6186+
6187+ /* now see if we need to clip the buffer against the segment boundaries. */
6188+ if (G_UNLIKELY (!clip_audio_buffer (ffmpegdec, *outbuf, out_timestamp,
6189+ out_duration)))
6190+ goto clipped;
6191+
6192+ } else {
6193+ gst_buffer_unref (*outbuf);
6194+ *outbuf = NULL;
6195+ }
6196+
6197+ /* If we don't error out after the first failed read with the AAC decoder,
6198+ * we must *not* carry on pushing data, else we'll cause segfaults... */
6199+ if (len == -1 && (in_plugin->id == CODEC_ID_AAC
6200+ || in_plugin->id == CODEC_ID_AAC_LATM)) {
6201+ GST_ELEMENT_ERROR (ffmpegdec, STREAM, DECODE, (NULL),
6202+ ("Decoding of AAC stream by FFMPEG failed."));
6203+ *ret = GST_FLOW_ERROR;
6204+ }
6205+
6206+beach:
6207+ GST_DEBUG_OBJECT (ffmpegdec, "return flow %d, out %p, len %d",
6208+ *ret, *outbuf, len);
6209+ return len;
6210+
6211+ /* ERRORS */
6212+clipped:
6213+ {
6214+ GST_DEBUG_OBJECT (ffmpegdec, "buffer clipped");
6215+ gst_buffer_unref (*outbuf);
6216+ *outbuf = NULL;
6217+ goto beach;
6218+ }
6219+}
6220+
6221+/* gst_ffmpegdec_frame:
6222+ * ffmpegdec:
6223+ * data: pointer to the data to decode
6224+ * size: size of data in bytes
6225+ * got_data: 0 if no data was decoded, != 0 otherwise.
6226+ * in_time: timestamp of data
6227+ * in_duration: duration of data
6228+ * ret: GstFlowReturn to return in the chain function
6229+ *
6230+ * Decode the given frame and pushes it downstream.
6231+ *
6232+ * Returns: Number of bytes used in decoding, -1 on error/failure.
6233+ */
6234+
6235+static gint
6236+gst_ffmpegdec_frame (GstFFMpegDec * ffmpegdec,
6237+ guint8 * data, guint size, gint * got_data, const GstTSInfo * dec_info,
6238+ GstFlowReturn * ret)
6239+{
6240+ GstFFMpegDecClass *oclass;
6241+ GstBuffer *outbuf = NULL;
6242+ gint have_data = 0, len = 0;
6243+
6244+ if (G_UNLIKELY (ffmpegdec->context->codec == NULL))
6245+ goto no_codec;
6246+
6247+ GST_LOG_OBJECT (ffmpegdec, "data:%p, size:%d, id:%d", data, size,
6248+ dec_info->idx);
6249+
6250+ *ret = GST_FLOW_OK;
6251+ ffmpegdec->context->frame_number++;
6252+
6253+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
6254+
6255+ switch (oclass->in_plugin->type) {
6256+ case AVMEDIA_TYPE_VIDEO:
6257+ len =
6258+ gst_ffmpegdec_video_frame (ffmpegdec, data, size, dec_info, &outbuf,
6259+ ret);
6260+ break;
6261+ case AVMEDIA_TYPE_AUDIO:
6262+ len =
6263+ gst_ffmpegdec_audio_frame (ffmpegdec, oclass->in_plugin, data, size,
6264+ dec_info, &outbuf, ret);
6265+
6266+ /* if we did not get an output buffer and we have a pending discont, don't
6267+ * clear the input timestamps, we will put them on the next buffer because
6268+ * else we might create the first buffer with a very big timestamp gap. */
6269+ if (outbuf == NULL && ffmpegdec->discont) {
6270+ GST_DEBUG_OBJECT (ffmpegdec, "no buffer but keeping timestamp");
6271+ ffmpegdec->clear_ts = FALSE;
6272+ }
6273+ break;
6274+ default:
6275+ GST_ERROR_OBJECT (ffmpegdec, "Asked to decode non-audio/video frame !");
6276+ g_assert_not_reached ();
6277+ break;
6278+ }
6279+
6280+ if (outbuf)
6281+ have_data = 1;
6282+
6283+ if (len < 0 || have_data < 0) {
6284+ GST_WARNING_OBJECT (ffmpegdec,
6285+ "ffdec_%s: decoding error (len: %d, have_data: %d)",
6286+ oclass->in_plugin->name, len, have_data);
6287+ *got_data = 0;
6288+ goto beach;
6289+ } else if (len == 0 && have_data == 0) {
6290+ *got_data = 0;
6291+ goto beach;
6292+ } else {
6293+ /* this is where I lost my last clue on ffmpeg... */
6294+ *got_data = 1;
6295+ }
6296+
6297+ if (outbuf) {
6298+ GST_LOG_OBJECT (ffmpegdec,
6299+ "Decoded data, now pushing buffer %p with offset %" G_GINT64_FORMAT
6300+ ", timestamp %" GST_TIME_FORMAT " and duration %" GST_TIME_FORMAT,
6301+ outbuf, GST_BUFFER_OFFSET (outbuf),
6302+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
6303+ GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)));
6304+
6305+ /* mark pending discont */
6306+ if (ffmpegdec->discont) {
6307+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
6308+ ffmpegdec->discont = FALSE;
6309+ }
6310+
6311+ if (ffmpegdec->segment.rate > 0.0) {
6312+ /* and off we go */
6313+ *ret = gst_pad_push (ffmpegdec->srcpad, outbuf);
6314+ } else {
6315+ /* reverse playback, queue frame till later when we get a discont. */
6316+ GST_DEBUG_OBJECT (ffmpegdec, "queued frame");
6317+ ffmpegdec->queued = g_list_prepend (ffmpegdec->queued, outbuf);
6318+ *ret = GST_FLOW_OK;
6319+ }
6320+ } else {
6321+ GST_DEBUG_OBJECT (ffmpegdec, "We didn't get a decoded buffer");
6322+ }
6323+
6324+beach:
6325+ return len;
6326+
6327+ /* ERRORS */
6328+no_codec:
6329+ {
6330+ GST_ERROR_OBJECT (ffmpegdec, "no codec context");
6331+ return -1;
6332+ }
6333+}
6334+
6335+static void
6336+gst_ffmpegdec_drain (GstFFMpegDec * ffmpegdec)
6337+{
6338+ GstFFMpegDecClass *oclass;
6339+
6340+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
6341+
6342+ if (oclass->in_plugin->capabilities & CODEC_CAP_DELAY) {
6343+ gint have_data, len, try = 0;
6344+
6345+ GST_LOG_OBJECT (ffmpegdec,
6346+ "codec has delay capabilities, calling until ffmpeg has drained everything");
6347+
6348+ do {
6349+ GstFlowReturn ret;
6350+
6351+ len =
6352+ gst_ffmpegdec_frame (ffmpegdec, NULL, 0, &have_data, &ts_info_none,
6353+ &ret);
6354+ if (len < 0 || have_data == 0)
6355+ break;
6356+ } while (try++ < 10);
6357+ }
6358+ if (ffmpegdec->segment.rate < 0.0) {
6359+ /* if we have some queued frames for reverse playback, flush them now */
6360+ flush_queued (ffmpegdec);
6361+ }
6362+}
6363+
6364+static void
6365+gst_ffmpegdec_flush_pcache (GstFFMpegDec * ffmpegdec)
6366+{
6367+ if (ffmpegdec->pctx) {
6368+ gint size, bsize;
6369+ guint8 *data;
6370+ guint8 bdata[FF_INPUT_BUFFER_PADDING_SIZE];
6371+
6372+ bsize = FF_INPUT_BUFFER_PADDING_SIZE;
6373+ memset (bdata, 0, bsize);
6374+
6375+ /* parse some dummy data to work around some ffmpeg weirdness where it keeps
6376+ * the previous pts around */
6377+ av_parser_parse2 (ffmpegdec->pctx, ffmpegdec->context,
6378+ &data, &size, bdata, bsize, -1, -1, -1);
6379+ ffmpegdec->pctx->pts = -1;
6380+ ffmpegdec->pctx->dts = -1;
6381+ }
6382+
6383+ if (ffmpegdec->pcache) {
6384+ gst_buffer_unref (ffmpegdec->pcache);
6385+ ffmpegdec->pcache = NULL;
6386+ }
6387+}
6388+
6389+static gboolean
6390+gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event)
6391+{
6392+ GstFFMpegDec *ffmpegdec;
6393+ gboolean ret = FALSE;
6394+
6395+ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad);
6396+
6397+ GST_DEBUG_OBJECT (ffmpegdec, "Handling %s event",
6398+ GST_EVENT_TYPE_NAME (event));
6399+
6400+ switch (GST_EVENT_TYPE (event)) {
6401+ case GST_EVENT_EOS:
6402+ {
6403+ gst_ffmpegdec_drain (ffmpegdec);
6404+ break;
6405+ }
6406+ case GST_EVENT_FLUSH_STOP:
6407+ {
6408+ if (ffmpegdec->opened) {
6409+ avcodec_flush_buffers (ffmpegdec->context);
6410+ }
6411+ gst_ffmpegdec_reset_ts (ffmpegdec);
6412+ gst_ffmpegdec_reset_qos (ffmpegdec);
6413+ gst_ffmpegdec_flush_pcache (ffmpegdec);
6414+ gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME);
6415+ clear_queued (ffmpegdec);
6416+ break;
6417+ }
6418+ case GST_EVENT_NEWSEGMENT:
6419+ {
6420+ gboolean update;
6421+ GstFormat fmt;
6422+ gint64 start, stop, time;
6423+ gdouble rate, arate;
6424+
6425+ gst_event_parse_new_segment_full (event, &update, &rate, &arate, &fmt,
6426+ &start, &stop, &time);
6427+
6428+ switch (fmt) {
6429+ case GST_FORMAT_TIME:
6430+ /* fine, our native segment format */
6431+ break;
6432+ case GST_FORMAT_BYTES:
6433+ {
6434+ gint bit_rate;
6435+
6436+ bit_rate = ffmpegdec->context->bit_rate;
6437+
6438+ /* convert to time or fail */
6439+ if (!bit_rate)
6440+ goto no_bitrate;
6441+
6442+ GST_DEBUG_OBJECT (ffmpegdec, "bitrate: %d", bit_rate);
6443+
6444+ /* convert values to TIME */
6445+ if (start != -1)
6446+ start = gst_util_uint64_scale_int (start, GST_SECOND, bit_rate);
6447+ if (stop != -1)
6448+ stop = gst_util_uint64_scale_int (stop, GST_SECOND, bit_rate);
6449+ if (time != -1)
6450+ time = gst_util_uint64_scale_int (time, GST_SECOND, bit_rate);
6451+
6452+ /* unref old event */
6453+ gst_event_unref (event);
6454+
6455+ /* create new converted time segment */
6456+ fmt = GST_FORMAT_TIME;
6457+ /* FIXME, bitrate is not good enough too find a good stop, let's
6458+ * hope start and time were 0... meh. */
6459+ stop = -1;
6460+ event = gst_event_new_new_segment (update, rate, fmt,
6461+ start, stop, time);
6462+ break;
6463+ }
6464+ default:
6465+ /* invalid format */
6466+ goto invalid_format;
6467+ }
6468+
6469+ /* drain pending frames before trying to use the new segment, queued
6470+ * buffers belonged to the previous segment. */
6471+ if (ffmpegdec->context->codec)
6472+ gst_ffmpegdec_drain (ffmpegdec);
6473+
6474+ GST_DEBUG_OBJECT (ffmpegdec,
6475+ "NEWSEGMENT in time start %" GST_TIME_FORMAT " -- stop %"
6476+ GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (stop));
6477+
6478+ /* and store the values */
6479+ gst_segment_set_newsegment_full (&ffmpegdec->segment, update,
6480+ rate, arate, fmt, start, stop, time);
6481+ break;
6482+ }
6483+ default:
6484+ break;
6485+ }
6486+
6487+ /* and push segment downstream */
6488+ ret = gst_pad_push_event (ffmpegdec->srcpad, event);
6489+
6490+done:
6491+ gst_object_unref (ffmpegdec);
6492+
6493+ return ret;
6494+
6495+ /* ERRORS */
6496+no_bitrate:
6497+ {
6498+ GST_WARNING_OBJECT (ffmpegdec, "no bitrate to convert BYTES to TIME");
6499+ gst_event_unref (event);
6500+ goto done;
6501+ }
6502+invalid_format:
6503+ {
6504+ GST_WARNING_OBJECT (ffmpegdec, "unknown format received in NEWSEGMENT");
6505+ gst_event_unref (event);
6506+ goto done;
6507+ }
6508+}
6509+
6510+static GstFlowReturn
6511+gst_ffmpegdec_chain (GstPad * pad, GstBuffer * inbuf)
6512+{
6513+ GstFFMpegDec *ffmpegdec;
6514+ GstFFMpegDecClass *oclass;
6515+ guint8 *data, *bdata;
6516+ gint size, bsize, len, have_data;
6517+ GstFlowReturn ret = GST_FLOW_OK;
6518+ GstClockTime in_timestamp;
6519+ GstClockTime in_duration;
6520+ gboolean discont;
6521+ gint64 in_offset;
6522+ const GstTSInfo *in_info;
6523+ const GstTSInfo *dec_info;
6524+
6525+ ffmpegdec = (GstFFMpegDec *) (GST_PAD_PARENT (pad));
6526+
6527+ if (G_UNLIKELY (!ffmpegdec->opened))
6528+ goto not_negotiated;
6529+
6530+ discont = GST_BUFFER_IS_DISCONT (inbuf);
6531+
6532+ /* The discont flags marks a buffer that is not continuous with the previous
6533+ * buffer. This means we need to clear whatever data we currently have. We
6534+ * currently also wait for a new keyframe, which might be suboptimal in the
6535+ * case of a network error, better show the errors than to drop all data.. */
6536+ if (G_UNLIKELY (discont)) {
6537+ GST_DEBUG_OBJECT (ffmpegdec, "received DISCONT");
6538+ /* drain what we have queued */
6539+ gst_ffmpegdec_drain (ffmpegdec);
6540+ gst_ffmpegdec_flush_pcache (ffmpegdec);
6541+ avcodec_flush_buffers (ffmpegdec->context);
6542+ ffmpegdec->discont = TRUE;
6543+ gst_ffmpegdec_reset_ts (ffmpegdec);
6544+ }
6545+ /* by default we clear the input timestamp after decoding each frame so that
6546+ * interpollation can work. */
6547+ ffmpegdec->clear_ts = TRUE;
6548+
6549+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
6550+
6551+ /* parse cache joining. If there is cached data */
6552+ if (ffmpegdec->pcache) {
6553+ /* join with previous data */
6554+ GST_LOG_OBJECT (ffmpegdec, "join parse cache");
6555+ inbuf = gst_buffer_join (ffmpegdec->pcache, inbuf);
6556+ /* no more cached data, we assume we can consume the complete cache */
6557+ ffmpegdec->pcache = NULL;
6558+ }
6559+
6560+ in_timestamp = GST_BUFFER_TIMESTAMP (inbuf);
6561+ in_duration = GST_BUFFER_DURATION (inbuf);
6562+ in_offset = GST_BUFFER_OFFSET (inbuf);
6563+
6564+ /* get handle to timestamp info, we can pass this around to ffmpeg */
6565+ in_info = gst_ts_info_store (ffmpegdec, in_timestamp, in_duration, in_offset);
6566+
6567+ if (in_timestamp != -1) {
6568+ /* check for increasing timestamps if they are jumping backwards, we
6569+ * probably are dealing with PTS as timestamps */
6570+ if (!ffmpegdec->reordered_in && ffmpegdec->last_in != -1) {
6571+ if (in_timestamp < ffmpegdec->last_in) {
6572+ GST_LOG_OBJECT (ffmpegdec, "detected reordered input timestamps");
6573+ ffmpegdec->reordered_in = TRUE;
6574+ ffmpegdec->last_diff = GST_CLOCK_TIME_NONE;
6575+ } else if (in_timestamp > ffmpegdec->last_in) {
6576+ GstClockTime diff;
6577+ /* keep track of timestamp diff to estimate duration */
6578+ diff = in_timestamp - ffmpegdec->last_in;
6579+ /* need to scale with amount of frames in the interval */
6580+ if (ffmpegdec->last_frames)
6581+ diff /= ffmpegdec->last_frames;
6582+
6583+ GST_LOG_OBJECT (ffmpegdec, "estimated duration %" GST_TIME_FORMAT " %u",
6584+ GST_TIME_ARGS (diff), ffmpegdec->last_frames);
6585+
6586+ ffmpegdec->last_diff = diff;
6587+ }
6588+ }
6589+ ffmpegdec->last_in = in_timestamp;
6590+ ffmpegdec->last_frames = 0;
6591+ }
6592+
6593+ GST_LOG_OBJECT (ffmpegdec,
6594+ "Received new data of size %u, offset:%" G_GUINT64_FORMAT ", ts:%"
6595+ GST_TIME_FORMAT ", dur:%" GST_TIME_FORMAT ", info %d",
6596+ GST_BUFFER_SIZE (inbuf), GST_BUFFER_OFFSET (inbuf),
6597+ GST_TIME_ARGS (in_timestamp), GST_TIME_ARGS (in_duration), in_info->idx);
6598+
6599+ /* workarounds, functions write to buffers:
6600+ * libavcodec/svq1.c:svq1_decode_frame writes to the given buffer.
6601+ * libavcodec/svq3.c:svq3_decode_slice_header too.
6602+ * ffmpeg devs know about it and will fix it (they said). */
6603+ if (oclass->in_plugin->id == CODEC_ID_SVQ1 ||
6604+ oclass->in_plugin->id == CODEC_ID_SVQ3) {
6605+ inbuf = gst_buffer_make_writable (inbuf);
6606+ }
6607+
6608+ bdata = GST_BUFFER_DATA (inbuf);
6609+ bsize = GST_BUFFER_SIZE (inbuf);
6610+
6611+ if (ffmpegdec->do_padding) {
6612+ /* add padding */
6613+ if (ffmpegdec->padded_size < bsize + FF_INPUT_BUFFER_PADDING_SIZE) {
6614+ ffmpegdec->padded_size = bsize + FF_INPUT_BUFFER_PADDING_SIZE;
6615+ ffmpegdec->padded = g_realloc (ffmpegdec->padded, ffmpegdec->padded_size);
6616+ GST_LOG_OBJECT (ffmpegdec, "resized padding buffer to %d",
6617+ ffmpegdec->padded_size);
6618+ }
6619+ memcpy (ffmpegdec->padded, bdata, bsize);
6620+ memset (ffmpegdec->padded + bsize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
6621+
6622+ bdata = ffmpegdec->padded;
6623+ }
6624+
6625+ do {
6626+ guint8 tmp_padding[FF_INPUT_BUFFER_PADDING_SIZE];
6627+
6628+ /* parse, if at all possible */
6629+ if (ffmpegdec->pctx) {
6630+ gint res;
6631+
6632+ GST_LOG_OBJECT (ffmpegdec,
6633+ "Calling av_parser_parse2 with offset %" G_GINT64_FORMAT ", ts:%"
6634+ GST_TIME_FORMAT " size %d", in_offset, GST_TIME_ARGS (in_timestamp),
6635+ bsize);
6636+
6637+ /* feed the parser. We pass the timestamp info so that we can recover all
6638+ * info again later */
6639+ res = av_parser_parse2 (ffmpegdec->pctx, ffmpegdec->context,
6640+ &data, &size, bdata, bsize, in_info->idx, in_info->idx, in_offset);
6641+
6642+ GST_LOG_OBJECT (ffmpegdec,
6643+ "parser returned res %d and size %d, id %" G_GINT64_FORMAT, res, size,
6644+ ffmpegdec->pctx->pts);
6645+
6646+ /* store pts for decoding */
6647+ if (ffmpegdec->pctx->pts != AV_NOPTS_VALUE && ffmpegdec->pctx->pts != -1)
6648+ dec_info = gst_ts_info_get (ffmpegdec, ffmpegdec->pctx->pts);
6649+ else {
6650+ /* ffmpeg sometimes loses track after a flush, help it by feeding a
6651+ * valid start time */
6652+ ffmpegdec->pctx->pts = in_info->idx;
6653+ ffmpegdec->pctx->dts = in_info->idx;
6654+ dec_info = in_info;
6655+ }
6656+
6657+ GST_LOG_OBJECT (ffmpegdec, "consuming %d bytes. id %d", size,
6658+ dec_info->idx);
6659+
6660+ if (res) {
6661+ /* there is output, set pointers for next round. */
6662+ bsize -= res;
6663+ bdata += res;
6664+ } else {
6665+ /* Parser did not consume any data, make sure we don't clear the
6666+ * timestamp for the next round */
6667+ ffmpegdec->clear_ts = FALSE;
6668+ }
6669+
6670+ /* if there is no output, we must break and wait for more data. also the
6671+ * timestamp in the context is not updated. */
6672+ if (size == 0) {
6673+ if (bsize > 0)
6674+ continue;
6675+ else
6676+ break;
6677+ }
6678+ } else {
6679+ data = bdata;
6680+ size = bsize;
6681+
6682+ dec_info = in_info;
6683+ }
6684+
6685+ if (ffmpegdec->do_padding) {
6686+ /* add temporary padding */
6687+ memcpy (tmp_padding, data + size, FF_INPUT_BUFFER_PADDING_SIZE);
6688+ memset (data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
6689+ }
6690+
6691+ /* decode a frame of audio/video now */
6692+ len =
6693+ gst_ffmpegdec_frame (ffmpegdec, data, size, &have_data, dec_info, &ret);
6694+
6695+ if (ffmpegdec->do_padding) {
6696+ memcpy (data + size, tmp_padding, FF_INPUT_BUFFER_PADDING_SIZE);
6697+ }
6698+
6699+ if (ret != GST_FLOW_OK) {
6700+ GST_LOG_OBJECT (ffmpegdec, "breaking because of flow ret %s",
6701+ gst_flow_get_name (ret));
6702+ /* bad flow retun, make sure we discard all data and exit */
6703+ bsize = 0;
6704+ break;
6705+ }
6706+ if (!ffmpegdec->pctx) {
6707+ if (len == 0 && !have_data) {
6708+ /* nothing was decoded, this could be because no data was available or
6709+ * because we were skipping frames.
6710+ * If we have no context we must exit and wait for more data, we keep the
6711+ * data we tried. */
6712+ GST_LOG_OBJECT (ffmpegdec, "Decoding didn't return any data, breaking");
6713+ break;
6714+ } else if (len < 0) {
6715+ /* a decoding error happened, we must break and try again with next data. */
6716+ GST_LOG_OBJECT (ffmpegdec, "Decoding error, breaking");
6717+ bsize = 0;
6718+ break;
6719+ }
6720+ /* prepare for the next round, for codecs with a context we did this
6721+ * already when using the parser. */
6722+ bsize -= len;
6723+ bdata += len;
6724+ } else {
6725+ if (len == 0) {
6726+ /* nothing was decoded, this could be because no data was available or
6727+ * because we were skipping frames. Since we have a parser we can
6728+ * continue with the next frame */
6729+ GST_LOG_OBJECT (ffmpegdec,
6730+ "Decoding didn't return any data, trying next");
6731+ } else if (len < 0) {
6732+ /* we have a context that will bring us to the next frame */
6733+ GST_LOG_OBJECT (ffmpegdec, "Decoding error, trying next");
6734+ }
6735+ }
6736+
6737+ /* make sure we don't use the same old timestamp for the next frame and let
6738+ * the interpollation take care of it. */
6739+ if (ffmpegdec->clear_ts) {
6740+ in_timestamp = GST_CLOCK_TIME_NONE;
6741+ in_duration = GST_CLOCK_TIME_NONE;
6742+ in_offset = GST_BUFFER_OFFSET_NONE;
6743+ in_info = GST_TS_INFO_NONE;
6744+ } else {
6745+ ffmpegdec->clear_ts = TRUE;
6746+ }
6747+ ffmpegdec->last_frames++;
6748+
6749+ GST_LOG_OBJECT (ffmpegdec, "Before (while bsize>0). bsize:%d , bdata:%p",
6750+ bsize, bdata);
6751+ } while (bsize > 0);
6752+
6753+ /* keep left-over */
6754+ if (ffmpegdec->pctx && bsize > 0) {
6755+ in_timestamp = GST_BUFFER_TIMESTAMP (inbuf);
6756+ in_offset = GST_BUFFER_OFFSET (inbuf);
6757+
6758+ GST_LOG_OBJECT (ffmpegdec,
6759+ "Keeping %d bytes of data with offset %" G_GINT64_FORMAT ", timestamp %"
6760+ GST_TIME_FORMAT, bsize, in_offset, GST_TIME_ARGS (in_timestamp));
6761+
6762+ ffmpegdec->pcache = gst_buffer_create_sub (inbuf,
6763+ GST_BUFFER_SIZE (inbuf) - bsize, bsize);
6764+ /* we keep timestamp, even though all we really know is that the correct
6765+ * timestamp is not below the one from inbuf */
6766+ GST_BUFFER_TIMESTAMP (ffmpegdec->pcache) = in_timestamp;
6767+ GST_BUFFER_OFFSET (ffmpegdec->pcache) = in_offset;
6768+ } else if (bsize > 0) {
6769+ GST_DEBUG_OBJECT (ffmpegdec, "Dropping %d bytes of data", bsize);
6770+ }
6771+ gst_buffer_unref (inbuf);
6772+
6773+ return ret;
6774+
6775+ /* ERRORS */
6776+not_negotiated:
6777+ {
6778+ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec));
6779+ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, (NULL),
6780+ ("ffdec_%s: input format was not set before data start",
6781+ oclass->in_plugin->name));
6782+ gst_buffer_unref (inbuf);
6783+ return GST_FLOW_NOT_NEGOTIATED;
6784+ }
6785+}
6786+
6787+static GstStateChangeReturn
6788+gst_ffmpegdec_change_state (GstElement * element, GstStateChange transition)
6789+{
6790+ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) element;
6791+ GstStateChangeReturn ret;
6792+
6793+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
6794+
6795+ switch (transition) {
6796+ case GST_STATE_CHANGE_PAUSED_TO_READY:
6797+ GST_OBJECT_LOCK (ffmpegdec);
6798+ gst_ffmpegdec_close (ffmpegdec);
6799+ GST_OBJECT_UNLOCK (ffmpegdec);
6800+ clear_queued (ffmpegdec);
6801+ g_free (ffmpegdec->padded);
6802+ ffmpegdec->padded = NULL;
6803+ ffmpegdec->padded_size = 0;
6804+ ffmpegdec->can_allocate_aligned = TRUE;
6805+ break;
6806+ default:
6807+ break;
6808+ }
6809+
6810+ return ret;
6811+}
6812+
6813+static void
6814+gst_ffmpegdec_set_property (GObject * object,
6815+ guint prop_id, const GValue * value, GParamSpec * pspec)
6816+{
6817+ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object;
6818+
6819+ switch (prop_id) {
6820+ case PROP_LOWRES:
6821+ ffmpegdec->lowres = ffmpegdec->context->lowres = g_value_get_enum (value);
6822+ break;
6823+ case PROP_SKIPFRAME:
6824+ ffmpegdec->skip_frame = ffmpegdec->context->skip_frame =
6825+ g_value_get_enum (value);
6826+ break;
6827+ case PROP_DIRECT_RENDERING:
6828+ ffmpegdec->direct_rendering = g_value_get_boolean (value);
6829+ break;
6830+ case PROP_DO_PADDING:
6831+ ffmpegdec->do_padding = g_value_get_boolean (value);
6832+ break;
6833+ case PROP_DEBUG_MV:
6834+ ffmpegdec->debug_mv = ffmpegdec->context->debug_mv =
6835+ g_value_get_boolean (value);
6836+ break;
6837+ case PROP_CROP:
6838+ ffmpegdec->crop = g_value_get_boolean (value);
6839+ break;
6840+ case PROP_MAX_THREADS:
6841+ ffmpegdec->max_threads = g_value_get_int (value);
6842+ break;
6843+ default:
6844+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
6845+ break;
6846+ }
6847+}
6848+
6849+static void
6850+gst_ffmpegdec_get_property (GObject * object,
6851+ guint prop_id, GValue * value, GParamSpec * pspec)
6852+{
6853+ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object;
6854+
6855+ switch (prop_id) {
6856+ case PROP_LOWRES:
6857+ g_value_set_enum (value, ffmpegdec->context->lowres);
6858+ break;
6859+ case PROP_SKIPFRAME:
6860+ g_value_set_enum (value, ffmpegdec->context->skip_frame);
6861+ break;
6862+ case PROP_DIRECT_RENDERING:
6863+ g_value_set_boolean (value, ffmpegdec->direct_rendering);
6864+ break;
6865+ case PROP_DO_PADDING:
6866+ g_value_set_boolean (value, ffmpegdec->do_padding);
6867+ break;
6868+ case PROP_DEBUG_MV:
6869+ g_value_set_boolean (value, ffmpegdec->context->debug_mv);
6870+ break;
6871+ case PROP_CROP:
6872+ g_value_set_boolean (value, ffmpegdec->crop);
6873+ break;
6874+ case PROP_MAX_THREADS:
6875+ g_value_set_int (value, ffmpegdec->max_threads);
6876+ break;
6877+ default:
6878+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
6879+ break;
6880+ }
6881+}
6882+
6883+gboolean
6884+gst_ffmpegdec_register (GstPlugin * plugin)
6885+{
6886+ GTypeInfo typeinfo = {
6887+ sizeof (GstFFMpegDecClass),
6888+ (GBaseInitFunc) gst_ffmpegdec_base_init,
6889+ NULL,
6890+ (GClassInitFunc) gst_ffmpegdec_class_init,
6891+ NULL,
6892+ NULL,
6893+ sizeof (GstFFMpegDec),
6894+ 0,
6895+ (GInstanceInitFunc) gst_ffmpegdec_init,
6896+ };
6897+ GType type;
6898+ AVCodec *in_plugin;
6899+ gint rank;
6900+
6901+ in_plugin = av_codec_next (NULL);
6902+
6903+ GST_LOG ("Registering decoders");
6904+
6905+ while (in_plugin) {
6906+ gchar *type_name;
6907+ gchar *plugin_name;
6908+
6909+ /* only decoders */
6910+ if (!in_plugin->decode) {
6911+ goto next;
6912+ }
6913+
6914+ /* no quasi-codecs, please */
6915+ if (in_plugin->id == CODEC_ID_RAWVIDEO ||
6916+ in_plugin->id == CODEC_ID_V210 ||
6917+ in_plugin->id == CODEC_ID_V210X ||
6918+ in_plugin->id == CODEC_ID_R210 ||
6919+ (in_plugin->id >= CODEC_ID_PCM_S16LE &&
6920+ in_plugin->id <= CODEC_ID_PCM_BLURAY)) {
6921+ goto next;
6922+ }
6923+
6924+ /* No decoders depending on external libraries (we don't build them, but
6925+ * people who build against an external ffmpeg might have them.
6926+ * We have native gstreamer plugins for all of those libraries anyway. */
6927+ if (!strncmp (in_plugin->name, "lib", 3)) {
6928+ GST_DEBUG
6929+ ("Not using external library decoder %s. Use the gstreamer-native ones instead.",
6930+ in_plugin->name);
6931+ goto next;
6932+ }
6933+
6934+ /* No vdpau plugins until we can figure out how to properly use them
6935+ * outside of ffmpeg. */
6936+ if (g_str_has_suffix (in_plugin->name, "_vdpau")) {
6937+ GST_DEBUG
6938+ ("Ignoring VDPAU decoder %s. We can't handle this outside of ffmpeg",
6939+ in_plugin->name);
6940+ goto next;
6941+ }
6942+
6943+ if (g_str_has_suffix (in_plugin->name, "_xvmc")) {
6944+ GST_DEBUG
6945+ ("Ignoring XVMC decoder %s. We can't handle this outside of ffmpeg",
6946+ in_plugin->name);
6947+ goto next;
6948+ }
6949+
6950+ GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name);
6951+
6952+ /* no codecs for which we're GUARANTEED to have better alternatives */
6953+ /* MPEG1VIDEO : the mpeg2video decoder is preferred */
6954+ /* MP1 : Use MP3 for decoding */
6955+ /* MP2 : Use MP3 for decoding */
6956+ /* Theora: Use libtheora based theoradec */
6957+ if (!strcmp (in_plugin->name, "gif") ||
6958+ !strcmp (in_plugin->name, "vorbis") ||
6959+ !strcmp (in_plugin->name, "theora") ||
6960+ !strcmp (in_plugin->name, "mpeg1video") ||
6961+ !strcmp (in_plugin->name, "wavpack") ||
6962+ !strcmp (in_plugin->name, "mp1") ||
6963+ !strcmp (in_plugin->name, "mp2") ||
6964+ !strcmp (in_plugin->name, "libfaad") ||
6965+ !strcmp (in_plugin->name, "mpeg4aac") ||
6966+ !strcmp (in_plugin->name, "ass") ||
6967+ !strcmp (in_plugin->name, "srt") ||
6968+ !strcmp (in_plugin->name, "pgssub") ||
6969+ !strcmp (in_plugin->name, "dvdsub") ||
6970+ !strcmp (in_plugin->name, "dvbsub")) {
6971+ GST_LOG ("Ignoring decoder %s", in_plugin->name);
6972+ goto next;
6973+ }
6974+
6975+ /* construct the type */
6976+ plugin_name = g_strdup ((gchar *) in_plugin->name);
6977+ g_strdelimit (plugin_name, NULL, '_');
6978+ type_name = g_strdup_printf ("ffdec_%s", plugin_name);
6979+ g_free (plugin_name);
6980+
6981+ type = g_type_from_name (type_name);
6982+
6983+ if (!type) {
6984+ /* create the gtype now */
6985+ type = g_type_register_static (GST_TYPE_ELEMENT, type_name, &typeinfo, 0);
6986+ g_type_set_qdata (type, GST_FFDEC_PARAMS_QDATA, (gpointer) in_plugin);
6987+ }
6988+
6989+ /* (Ronald) MPEG-4 gets a higher priority because it has been well-
6990+ * tested and by far outperforms divxdec/xviddec - so we prefer it.
6991+ * msmpeg4v3 same, as it outperforms divxdec for divx3 playback.
6992+ * VC1/WMV3 are not working and thus unpreferred for now. */
6993+ switch (in_plugin->id) {
6994+ case CODEC_ID_MPEG4:
6995+ case CODEC_ID_MSMPEG4V3:
6996+ case CODEC_ID_H264:
6997+ case CODEC_ID_RA_144:
6998+ case CODEC_ID_RA_288:
6999+ case CODEC_ID_RV10:
7000+ case CODEC_ID_RV20:
7001+ case CODEC_ID_RV30:
7002+ case CODEC_ID_RV40:
7003+ case CODEC_ID_COOK:
7004+ rank = GST_RANK_SECONDARY;
7005+ break;
7006+ /* DVVIDEO: we have a good dv decoder, fast on both ppc as well as x86.
7007+ * They say libdv's quality is better though. leave as secondary.
7008+ * note: if you change this, see the code in gstdv.c in good/ext/dv.
7009+ *
7010+ * SIPR: decoder should have a higher rank than realaudiodec.
7011+ */
7012+ case CODEC_ID_DVVIDEO:
7013+ case CODEC_ID_SIPR:
7014+ rank = GST_RANK_SECONDARY;
7015+ break;
7016+ case CODEC_ID_MP3:
7017+ rank = GST_RANK_NONE;
7018+ break;
7019+ /* TEMPORARILY DISABLING AC3/EAC3/DTS for 0.10.12 release
7020+ * due to downmixing failure.
7021+ * See Bug #608892 for more details */
7022+ case CODEC_ID_EAC3:
7023+ case CODEC_ID_AC3:
7024+ case CODEC_ID_DTS:
7025+ rank = GST_RANK_NONE;
7026+ break;
7027+ default:
7028+ rank = GST_RANK_MARGINAL;
7029+ break;
7030+ }
7031+ if (!gst_element_register (plugin, type_name, rank, type)) {
7032+ g_warning ("Failed to register %s", type_name);
7033+ g_free (type_name);
7034+ return FALSE;
7035+ }
7036+
7037+ g_free (type_name);
7038+
7039+ next:
7040+ in_plugin = av_codec_next (in_plugin);
7041+ }
7042+
7043+ GST_LOG ("Finished Registering decoders");
7044+
7045+ return TRUE;
7046+}
7047diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.rej gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.rej
7048--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.rej 1970-01-01 01:00:00.000000000 +0100
7049+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.rej 2014-08-08 15:26:38.471858652 +0200
7050@@ -0,0 +1,11 @@
7051+--- ext/ffmpeg/gstffmpegdec.c
7052++++ ext/ffmpeg/gstffmpegdec.c
7053+@@ -1565,7 +1564,7 @@
7054+ gst_message_new_latency (GST_OBJECT_CAST (ffmpegdec)));
7055+ }
7056+
7057+- is_itype = (ffmpegdec->picture->pict_type == FF_I_TYPE);
7058++ is_itype = (ffmpegdec->picture->pict_type == AV_PICTURE_TYPE_I);
7059+ is_reference = (ffmpegdec->picture->reference == 1);
7060+
7061+ iskeyframe = (is_itype || is_reference || ffmpegdec->picture->key_frame)
7062diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdemux.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdemux.c
7063--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdemux.c 2011-07-13 11:07:28.000000000 +0200
7064+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdemux.c 2014-08-08 15:26:07.874857555 +0200
7065@@ -343,8 +343,11 @@
7066 demux->audiopads = 0;
7067
7068 /* close demuxer context from ffmpeg */
7069- av_close_input_file (demux->context);
7070- demux->context = NULL;
7071+ if (demux->seekable)
7072+ gst_ffmpegdata_close (demux->context->pb);
7073+ else
7074+ gst_ffmpeg_pipe_close (demux->context->pb);
7075+ avformat_close_input (&demux->context);
7076
7077 GST_OBJECT_LOCK (demux);
7078 demux->opened = FALSE;
7079@@ -1146,9 +1149,9 @@
7080 static gboolean
7081 gst_ffmpegdemux_open (GstFFMpegDemux * demux)
7082 {
7083+ AVIOContext *iocontext = NULL;
7084 GstFFMpegDemuxClass *oclass =
7085 (GstFFMpegDemuxClass *) G_OBJECT_GET_CLASS (demux);
7086- gchar *location;
7087 gint res, n_streams, i;
7088 #if 0
7089 /* Re-enable once converted to new AVMetaData API
7090@@ -1164,15 +1167,14 @@
7091
7092 /* open via our input protocol hack */
7093 if (demux->seekable)
7094- location = g_strdup_printf ("gstreamer://%p", demux->sinkpad);
7095+ res = gst_ffmpegdata_open (demux->sinkpad, AVIO_FLAG_READ, &iocontext);
7096 else
7097- location = g_strdup_printf ("gstpipe://%p", &demux->ffpipe);
7098- GST_DEBUG_OBJECT (demux, "about to call av_open_input_file %s", location);
7099+ res = gst_ffmpeg_pipe_open (&demux->ffpipe, AVIO_FLAG_READ, &iocontext);
7100
7101- res = av_open_input_file (&demux->context, location,
7102- oclass->in_plugin, 0, NULL);
7103+ demux->context = avformat_alloc_context ();
7104+ demux->context->pb = iocontext;
7105+ res = avformat_open_input (&demux->context, NULL, oclass->in_plugin, NULL);
7106
7107- g_free (location);
7108 GST_DEBUG_OBJECT (demux, "av_open_input returned %d", res);
7109 if (res < 0)
7110 goto open_failed;
7111diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegenc.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegenc.c
7112--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegenc.c 2011-10-31 11:14:03.000000000 +0100
7113+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegenc.c 2014-08-08 15:32:18.608870847 +0200
7114@@ -770,7 +770,7 @@
7115 GST_OBJECT_UNLOCK (ffmpegenc);
7116
7117 if (force_keyframe)
7118- ffmpegenc->picture->pict_type = FF_I_TYPE;
7119+ ffmpegenc->picture->pict_type = AV_PICTURE_TYPE_I;
7120
7121 frame_size = gst_ffmpeg_avpicture_fill ((AVPicture *) ffmpegenc->picture,
7122 GST_BUFFER_DATA (inbuf),
7123@@ -1136,7 +1136,7 @@
7124 const GstStructure *s;
7125 s = gst_event_get_structure (event);
7126 if (gst_structure_has_name (s, "GstForceKeyUnit")) {
7127- ffmpegenc->picture->pict_type = FF_I_TYPE;
7128+ ffmpegenc->picture->pict_type = AV_PICTURE_TYPE_I;
7129 }
7130 break;
7131 }
7132@@ -1339,7 +1339,7 @@
7133 }
7134
7135 /* only encoders */
7136- if (!in_plugin->encode) {
7137+ if (!av_codec_is_encoder (in_plugin)) {
7138 goto next;
7139 }
7140
7141diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c
7142--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c 2011-07-13 11:07:28.000000000 +0200
7143+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c 2014-08-08 15:26:07.874857555 +0200
7144@@ -24,8 +24,10 @@
7145 #include <string.h>
7146 #ifdef HAVE_FFMPEG_UNINSTALLED
7147 #include <avformat.h>
7148+#include <opt.h>
7149 #else
7150 #include <libavformat/avformat.h>
7151+#include <libavutil/opt.h>
7152 #endif
7153
7154 #include <gst/gst.h>
7155@@ -336,9 +338,6 @@
7156 ffmpegmux->context = g_new0 (AVFormatContext, 1);
7157 ffmpegmux->context->oformat = oclass->in_plugin;
7158 ffmpegmux->context->nb_streams = 0;
7159- g_snprintf (ffmpegmux->context->filename,
7160- sizeof (ffmpegmux->context->filename),
7161- "gstreamer://%p", ffmpegmux->srcpad);
7162 ffmpegmux->opened = FALSE;
7163
7164 ffmpegmux->videopads = 0;
7165@@ -450,10 +449,10 @@
7166 gst_element_add_pad (element, pad);
7167
7168 /* AVStream needs to be created */
7169- st = av_new_stream (ffmpegmux->context, collect_pad->padnum);
7170+ st = avformat_new_stream (ffmpegmux->context, NULL);
7171+ st->id = collect_pad->padnum;
7172 st->codec->codec_type = type;
7173 st->codec->codec_id = CODEC_ID_NONE; /* this is a check afterwards */
7174- st->stream_copy = 1; /* we're not the actual encoder */
7175 st->codec->bit_rate = bitrate;
7176 st->codec->frame_size = framesize;
7177 /* we fill in codec during capsnego */
7178@@ -485,7 +484,7 @@
7179 collect_pad = (GstFFMpegMuxPad *) gst_pad_get_element_private (pad);
7180
7181 st = ffmpegmux->context->streams[collect_pad->padnum];
7182- ffmpegmux->context->preload = ffmpegmux->preload;
7183+ av_opt_set_int (&ffmpegmux->context, "preload", ffmpegmux->preload, 0);
7184 ffmpegmux->context->max_delay = ffmpegmux->max_delay;
7185
7186 /* for the format-specific guesses, we'll go to
7187@@ -552,7 +551,7 @@
7188
7189 /* open "file" (gstreamer protocol to next element) */
7190 if (!ffmpegmux->opened) {
7191- int open_flags = URL_WRONLY;
7192+ int open_flags = AVIO_FLAG_WRITE;
7193
7194 /* we do need all streams to have started capsnego,
7195 * or things will go horribly wrong */
7196@@ -646,19 +645,13 @@
7197 open_flags |= GST_FFMPEG_URL_STREAMHEADER;
7198 }
7199
7200- if (url_fopen (&ffmpegmux->context->pb,
7201- ffmpegmux->context->filename, open_flags) < 0) {
7202+ if (gst_ffmpegdata_open (ffmpegmux->srcpad, open_flags,
7203+ &ffmpegmux->context->pb) < 0) {
7204 GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, TOO_LAZY, (NULL),
7205 ("Failed to open stream context in ffmux"));
7206 return GST_FLOW_ERROR;
7207 }
7208
7209- if (av_set_parameters (ffmpegmux->context, NULL) < 0) {
7210- GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, INIT, (NULL),
7211- ("Failed to initialize muxer"));
7212- return GST_FLOW_ERROR;
7213- }
7214-
7215 /* now open the mux format */
7216 if (av_write_header (ffmpegmux->context) < 0) {
7217 GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, SETTINGS, (NULL),
7218@@ -670,7 +663,7 @@
7219 ffmpegmux->opened = TRUE;
7220
7221 /* flush the header so it will be used as streamheader */
7222- put_flush_packet (ffmpegmux->context->pb);
7223+ avio_flush (ffmpegmux->context->pb);
7224 }
7225
7226 /* take the one with earliest timestamp,
7227@@ -770,8 +763,8 @@
7228 /* close down */
7229 av_write_trailer (ffmpegmux->context);
7230 ffmpegmux->opened = FALSE;
7231- put_flush_packet (ffmpegmux->context->pb);
7232- url_fclose (ffmpegmux->context->pb);
7233+ avio_flush (ffmpegmux->context->pb);
7234+ gst_ffmpegdata_close (ffmpegmux->context->pb);
7235 gst_pad_push_event (ffmpegmux->srcpad, gst_event_new_eos ());
7236 return GST_FLOW_UNEXPECTED;
7237 }
7238@@ -795,6 +788,10 @@
7239 break;
7240 case GST_STATE_CHANGE_PAUSED_TO_READY:
7241 gst_collect_pads_stop (ffmpegmux->collect);
7242+ if (ffmpegmux->opened) {
7243+ ffmpegmux->opened = FALSE;
7244+ gst_ffmpegdata_close (ffmpegmux->context->pb);
7245+ }
7246 break;
7247 default:
7248 break;
7249@@ -809,7 +806,7 @@
7250 gst_tag_setter_reset_tags (GST_TAG_SETTER (ffmpegmux));
7251 if (ffmpegmux->opened) {
7252 ffmpegmux->opened = FALSE;
7253- url_fclose (ffmpegmux->context->pb);
7254+ avio_close (ffmpegmux->context->pb);
7255 }
7256 break;
7257 case GST_STATE_CHANGE_READY_TO_NULL:
7258diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c.orig
7259--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c.orig 1970-01-01 01:00:00.000000000 +0100
7260+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c.orig 2011-07-13 11:07:28.000000000 +0200
7261@@ -0,0 +1,970 @@
7262+/* GStreamer
7263+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
7264+ *
7265+ * This library is free software; you can redistribute it and/or
7266+ * modify it under the terms of the GNU Library General Public
7267+ * License as published by the Free Software Foundation; either
7268+ * version 2 of the License, or (at your option) any later version.
7269+ *
7270+ * This library is distributed in the hope that it will be useful,
7271+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
7272+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7273+ * Library General Public License for more details.
7274+ *
7275+ * You should have received a copy of the GNU Library General Public
7276+ * License along with this library; if not, write to the
7277+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
7278+ * Boston, MA 02111-1307, USA.
7279+ */
7280+
7281+#ifdef HAVE_CONFIG_H
7282+#include "config.h"
7283+#endif
7284+
7285+#include <string.h>
7286+#ifdef HAVE_FFMPEG_UNINSTALLED
7287+#include <avformat.h>
7288+#else
7289+#include <libavformat/avformat.h>
7290+#endif
7291+
7292+#include <gst/gst.h>
7293+#include <gst/base/gstcollectpads.h>
7294+
7295+#include "gstffmpeg.h"
7296+#include "gstffmpegcodecmap.h"
7297+#include "gstffmpegutils.h"
7298+
7299+typedef struct _GstFFMpegMux GstFFMpegMux;
7300+typedef struct _GstFFMpegMuxPad GstFFMpegMuxPad;
7301+
7302+struct _GstFFMpegMuxPad
7303+{
7304+ GstCollectData collect; /* we extend the CollectData */
7305+
7306+ gint padnum;
7307+};
7308+
7309+struct _GstFFMpegMux
7310+{
7311+ GstElement element;
7312+
7313+ GstCollectPads *collect;
7314+ /* We need to keep track of our pads, so we do so here. */
7315+ GstPad *srcpad;
7316+
7317+ AVFormatContext *context;
7318+ gboolean opened;
7319+
7320+ gint videopads, audiopads;
7321+
7322+ /*< private > */
7323+ /* event_function is the collectpads default eventfunction */
7324+ GstPadEventFunction event_function;
7325+ int preload;
7326+ int max_delay;
7327+};
7328+
7329+typedef struct _GstFFMpegMuxClass GstFFMpegMuxClass;
7330+
7331+struct _GstFFMpegMuxClass
7332+{
7333+ GstElementClass parent_class;
7334+
7335+ AVOutputFormat *in_plugin;
7336+};
7337+
7338+#define GST_TYPE_FFMPEGMUX \
7339+ (gst_ffmpegdec_get_type())
7340+#define GST_FFMPEGMUX(obj) \
7341+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FFMPEGMUX,GstFFMpegMux))
7342+#define GST_FFMPEGMUX_CLASS(klass) \
7343+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FFMPEGMUX,GstFFMpegMuxClass))
7344+#define GST_IS_FFMPEGMUX(obj) \
7345+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FFMPEGMUX))
7346+#define GST_IS_FFMPEGMUX_CLASS(klass) \
7347+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FFMPEGMUX))
7348+
7349+enum
7350+{
7351+ /* FILL ME */
7352+ LAST_SIGNAL
7353+};
7354+
7355+enum
7356+{
7357+ ARG_0,
7358+ /* FILL ME */
7359+};
7360+
7361+enum
7362+{
7363+ PROP_0,
7364+ PROP_PRELOAD,
7365+ PROP_MAXDELAY
7366+};
7367+
7368+/* A number of function prototypes are given so we can refer to them later. */
7369+static void gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass);
7370+static void gst_ffmpegmux_base_init (gpointer g_class);
7371+static void gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux,
7372+ GstFFMpegMuxClass * g_class);
7373+static void gst_ffmpegmux_finalize (GObject * object);
7374+
7375+static gboolean gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps);
7376+static GstPad *gst_ffmpegmux_request_new_pad (GstElement * element,
7377+ GstPadTemplate * templ, const gchar * name);
7378+static GstFlowReturn gst_ffmpegmux_collected (GstCollectPads * pads,
7379+ gpointer user_data);
7380+
7381+static gboolean gst_ffmpegmux_sink_event (GstPad * pad, GstEvent * event);
7382+
7383+static GstStateChangeReturn gst_ffmpegmux_change_state (GstElement * element,
7384+ GstStateChange transition);
7385+
7386+static void gst_ffmpegmux_set_property (GObject * object, guint prop_id,
7387+ const GValue * value, GParamSpec * pspec);
7388+static void gst_ffmpegmux_get_property (GObject * object, guint prop_id,
7389+ GValue * value, GParamSpec * pspec);
7390+
7391+static GstCaps *gst_ffmpegmux_get_id_caps (enum CodecID *id_list);
7392+static void gst_ffmpeg_mux_simple_caps_set_int_list (GstCaps * caps,
7393+ const gchar * field, guint num, const gint * values);
7394+
7395+#define GST_FFMUX_PARAMS_QDATA g_quark_from_static_string("ffmux-params")
7396+
7397+static GstElementClass *parent_class = NULL;
7398+
7399+/*static guint gst_ffmpegmux_signals[LAST_SIGNAL] = { 0 }; */
7400+
7401+typedef struct
7402+{
7403+ const char *name;
7404+ const char *replacement;
7405+} GstFFMpegMuxReplacement;
7406+
7407+static const char *
7408+gst_ffmpegmux_get_replacement (const char *name)
7409+{
7410+ static const GstFFMpegMuxReplacement blacklist[] = {
7411+ {"avi", "avimux"},
7412+ {"matroska", "matroskamux"},
7413+ {"mov", "qtmux"},
7414+ {"mpegts", "mpegtsmux"},
7415+ {"mp4", "mp4mux"},
7416+ {"mpjpeg", "multipartmux"},
7417+ {"ogg", "oggmux"},
7418+ {"wav", "wavenc"},
7419+ {"webm", "webmmux"},
7420+ {"mxf", "mxfmux"},
7421+ {"3gp", "gppmux"},
7422+ {"yuv4mpegpipe", "y4menc"},
7423+ {"aiff", "aiffmux"},
7424+ {"adts", "aacparse"},
7425+ {"asf", "asfmux"},
7426+ {"asf_stream", "asfmux"},
7427+ {"flv", "flvmux"},
7428+ {"mp3", "id3v2mux"},
7429+ {"mp2", "id3v2mux"}
7430+ };
7431+ int i;
7432+
7433+ for (i = 0; i < sizeof (blacklist) / sizeof (blacklist[0]); i++) {
7434+ if (strcmp (blacklist[i].name, name) == 0) {
7435+ return blacklist[i].replacement;
7436+ }
7437+ }
7438+
7439+ return NULL;
7440+}
7441+
7442+static gboolean
7443+gst_ffmpegmux_is_formatter (const char *name)
7444+{
7445+ static const char *replace[] = {
7446+ "mp2", "mp3", NULL
7447+ };
7448+ int i;
7449+
7450+ for (i = 0; replace[i]; i++)
7451+ if (strcmp (replace[i], name) == 0)
7452+ return TRUE;
7453+ return FALSE;
7454+}
7455+
7456+static void
7457+gst_ffmpegmux_base_init (gpointer g_class)
7458+{
7459+ GstFFMpegMuxClass *klass = (GstFFMpegMuxClass *) g_class;
7460+ GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
7461+ GstPadTemplate *videosinktempl, *audiosinktempl, *srctempl;
7462+ AVOutputFormat *in_plugin;
7463+ GstCaps *srccaps, *audiosinkcaps, *videosinkcaps;
7464+ enum CodecID *video_ids = NULL, *audio_ids = NULL;
7465+ gchar *longname, *description;
7466+ const char *replacement;
7467+ gboolean is_formatter;
7468+
7469+ in_plugin =
7470+ (AVOutputFormat *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass),
7471+ GST_FFMUX_PARAMS_QDATA);
7472+ g_assert (in_plugin != NULL);
7473+
7474+ /* construct the element details struct */
7475+ replacement = gst_ffmpegmux_get_replacement (in_plugin->name);
7476+ is_formatter = gst_ffmpegmux_is_formatter (in_plugin->name);
7477+ if (replacement != NULL) {
7478+ longname =
7479+ g_strdup_printf ("FFmpeg %s %s (not recommended, use %s instead)",
7480+ in_plugin->long_name, is_formatter ? "formatter" : "muxer",
7481+ replacement);
7482+ description =
7483+ g_strdup_printf ("FFmpeg %s %s (not recommended, use %s instead)",
7484+ in_plugin->long_name, is_formatter ? "formatter" : "muxer",
7485+ replacement);
7486+ } else {
7487+ longname = g_strdup_printf ("FFmpeg %s %s", in_plugin->long_name,
7488+ is_formatter ? "formatter" : "muxer");
7489+ description = g_strdup_printf ("FFmpeg %s %s", in_plugin->long_name,
7490+ is_formatter ? "formatter" : "muxer");
7491+ }
7492+ gst_element_class_set_details_simple (element_class, longname,
7493+ is_formatter ? "Formatter/Metadata" : "Codec/Muxer", description,
7494+ "Wim Taymans <wim.taymans@chello.be>, "
7495+ "Ronald Bultje <rbultje@ronald.bitfreak.net>");
7496+ g_free (longname);
7497+ g_free (description);
7498+
7499+ /* Try to find the caps that belongs here */
7500+ srccaps = gst_ffmpeg_formatid_to_caps (in_plugin->name);
7501+ if (!srccaps) {
7502+ GST_DEBUG ("Couldn't get source caps for muxer '%s', skipping format",
7503+ in_plugin->name);
7504+ goto beach;
7505+ }
7506+
7507+ if (!gst_ffmpeg_formatid_get_codecids (in_plugin->name,
7508+ &video_ids, &audio_ids, in_plugin)) {
7509+ gst_caps_unref (srccaps);
7510+ GST_DEBUG
7511+ ("Couldn't get sink caps for muxer '%s'. Most likely because no input format mapping exists.",
7512+ in_plugin->name);
7513+ goto beach;
7514+ }
7515+
7516+ videosinkcaps = video_ids ? gst_ffmpegmux_get_id_caps (video_ids) : NULL;
7517+ audiosinkcaps = audio_ids ? gst_ffmpegmux_get_id_caps (audio_ids) : NULL;
7518+
7519+ /* fix up allowed caps for some muxers */
7520+ /* FIXME : This should be in gstffmpegcodecmap.c ! */
7521+ if (strcmp (in_plugin->name, "flv") == 0) {
7522+ const gint rates[] = { 44100, 22050, 11025 };
7523+
7524+ gst_ffmpeg_mux_simple_caps_set_int_list (audiosinkcaps, "rate", 3, rates);
7525+ } else if (strcmp (in_plugin->name, "gif") == 0) {
7526+ if (videosinkcaps)
7527+ gst_caps_unref (videosinkcaps);
7528+
7529+ videosinkcaps =
7530+ gst_caps_from_string ("video/x-raw-rgb, bpp=(int)24, depth=(int)24");
7531+ }
7532+
7533+ /* pad templates */
7534+ srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, srccaps);
7535+ gst_element_class_add_pad_template (element_class, srctempl);
7536+
7537+ if (audiosinkcaps) {
7538+ audiosinktempl = gst_pad_template_new ("audio_%d",
7539+ GST_PAD_SINK, GST_PAD_REQUEST, audiosinkcaps);
7540+ gst_element_class_add_pad_template (element_class, audiosinktempl);
7541+ }
7542+
7543+ if (videosinkcaps) {
7544+ videosinktempl = gst_pad_template_new ("video_%d",
7545+ GST_PAD_SINK, GST_PAD_REQUEST, videosinkcaps);
7546+ gst_element_class_add_pad_template (element_class, videosinktempl);
7547+ }
7548+
7549+beach:
7550+ klass->in_plugin = in_plugin;
7551+}
7552+
7553+static void
7554+gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass)
7555+{
7556+ GObjectClass *gobject_class;
7557+ GstElementClass *gstelement_class;
7558+
7559+ gobject_class = (GObjectClass *) klass;
7560+ gstelement_class = (GstElementClass *) klass;
7561+
7562+ parent_class = g_type_class_peek_parent (klass);
7563+
7564+ gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_ffmpegmux_set_property);
7565+ gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_ffmpegmux_get_property);
7566+
7567+ g_object_class_install_property (gobject_class, PROP_PRELOAD,
7568+ g_param_spec_int ("preload", "preload",
7569+ "Set the initial demux-decode delay (in microseconds)", 0, G_MAXINT,
7570+ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
7571+
7572+ g_object_class_install_property (gobject_class, PROP_MAXDELAY,
7573+ g_param_spec_int ("maxdelay", "maxdelay",
7574+ "Set the maximum demux-decode delay (in microseconds)", 0, G_MAXINT,
7575+ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
7576+
7577+ gstelement_class->request_new_pad = gst_ffmpegmux_request_new_pad;
7578+ gstelement_class->change_state = gst_ffmpegmux_change_state;
7579+ gobject_class->finalize = gst_ffmpegmux_finalize;
7580+}
7581+
7582+static void
7583+gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux, GstFFMpegMuxClass * g_class)
7584+{
7585+ GstElementClass *klass = GST_ELEMENT_CLASS (g_class);
7586+ GstFFMpegMuxClass *oclass = (GstFFMpegMuxClass *) klass;
7587+ GstPadTemplate *templ = gst_element_class_get_pad_template (klass, "src");
7588+
7589+ ffmpegmux->srcpad = gst_pad_new_from_template (templ, "src");
7590+ gst_pad_set_caps (ffmpegmux->srcpad, gst_pad_template_get_caps (templ));
7591+ gst_element_add_pad (GST_ELEMENT (ffmpegmux), ffmpegmux->srcpad);
7592+
7593+ ffmpegmux->collect = gst_collect_pads_new ();
7594+ gst_collect_pads_set_function (ffmpegmux->collect,
7595+ (GstCollectPadsFunction) gst_ffmpegmux_collected, ffmpegmux);
7596+
7597+ ffmpegmux->context = g_new0 (AVFormatContext, 1);
7598+ ffmpegmux->context->oformat = oclass->in_plugin;
7599+ ffmpegmux->context->nb_streams = 0;
7600+ g_snprintf (ffmpegmux->context->filename,
7601+ sizeof (ffmpegmux->context->filename),
7602+ "gstreamer://%p", ffmpegmux->srcpad);
7603+ ffmpegmux->opened = FALSE;
7604+
7605+ ffmpegmux->videopads = 0;
7606+ ffmpegmux->audiopads = 0;
7607+ ffmpegmux->preload = 0;
7608+ ffmpegmux->max_delay = 0;
7609+}
7610+
7611+static void
7612+gst_ffmpegmux_set_property (GObject * object, guint prop_id,
7613+ const GValue * value, GParamSpec * pspec)
7614+{
7615+ GstFFMpegMux *src;
7616+
7617+ src = (GstFFMpegMux *) object;
7618+
7619+ switch (prop_id) {
7620+ case PROP_PRELOAD:
7621+ src->preload = g_value_get_int (value);
7622+ break;
7623+ case PROP_MAXDELAY:
7624+ src->max_delay = g_value_get_int (value);
7625+ break;
7626+ default:
7627+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
7628+ break;
7629+ }
7630+}
7631+
7632+static void
7633+gst_ffmpegmux_get_property (GObject * object, guint prop_id, GValue * value,
7634+ GParamSpec * pspec)
7635+{
7636+ GstFFMpegMux *src;
7637+
7638+ src = (GstFFMpegMux *) object;
7639+
7640+ switch (prop_id) {
7641+ case PROP_PRELOAD:
7642+ g_value_set_int (value, src->preload);
7643+ break;
7644+ case PROP_MAXDELAY:
7645+ g_value_set_int (value, src->max_delay);
7646+ break;
7647+ default:
7648+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
7649+ break;
7650+ }
7651+}
7652+
7653+
7654+static void
7655+gst_ffmpegmux_finalize (GObject * object)
7656+{
7657+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) object;
7658+
7659+ g_free (ffmpegmux->context);
7660+ gst_object_unref (ffmpegmux->collect);
7661+
7662+ if (G_OBJECT_CLASS (parent_class)->finalize)
7663+ G_OBJECT_CLASS (parent_class)->finalize (object);
7664+}
7665+
7666+static GstPad *
7667+gst_ffmpegmux_request_new_pad (GstElement * element,
7668+ GstPadTemplate * templ, const gchar * name)
7669+{
7670+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) element;
7671+ GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);
7672+ GstFFMpegMuxPad *collect_pad;
7673+ gchar *padname;
7674+ GstPad *pad;
7675+ AVStream *st;
7676+ enum AVMediaType type;
7677+ gint bitrate = 0, framesize = 0;
7678+
7679+ g_return_val_if_fail (templ != NULL, NULL);
7680+ g_return_val_if_fail (templ->direction == GST_PAD_SINK, NULL);
7681+ g_return_val_if_fail (ffmpegmux->opened == FALSE, NULL);
7682+
7683+ /* figure out a name that *we* like */
7684+ if (templ == gst_element_class_get_pad_template (klass, "video_%d")) {
7685+ padname = g_strdup_printf ("video_%d", ffmpegmux->videopads++);
7686+ type = AVMEDIA_TYPE_VIDEO;
7687+ bitrate = 64 * 1024;
7688+ framesize = 1152;
7689+ } else if (templ == gst_element_class_get_pad_template (klass, "audio_%d")) {
7690+ padname = g_strdup_printf ("audio_%d", ffmpegmux->audiopads++);
7691+ type = AVMEDIA_TYPE_AUDIO;
7692+ bitrate = 285 * 1024;
7693+ } else {
7694+ g_warning ("ffmux: unknown pad template!");
7695+ return NULL;
7696+ }
7697+
7698+ /* create pad */
7699+ pad = gst_pad_new_from_template (templ, padname);
7700+ collect_pad = (GstFFMpegMuxPad *)
7701+ gst_collect_pads_add_pad (ffmpegmux->collect, pad,
7702+ sizeof (GstFFMpegMuxPad));
7703+ collect_pad->padnum = ffmpegmux->context->nb_streams;
7704+
7705+ /* small hack to put our own event pad function and chain up to collect pad */
7706+ ffmpegmux->event_function = GST_PAD_EVENTFUNC (pad);
7707+ gst_pad_set_event_function (pad,
7708+ GST_DEBUG_FUNCPTR (gst_ffmpegmux_sink_event));
7709+
7710+ gst_pad_set_setcaps_function (pad, GST_DEBUG_FUNCPTR (gst_ffmpegmux_setcaps));
7711+ gst_element_add_pad (element, pad);
7712+
7713+ /* AVStream needs to be created */
7714+ st = av_new_stream (ffmpegmux->context, collect_pad->padnum);
7715+ st->codec->codec_type = type;
7716+ st->codec->codec_id = CODEC_ID_NONE; /* this is a check afterwards */
7717+ st->stream_copy = 1; /* we're not the actual encoder */
7718+ st->codec->bit_rate = bitrate;
7719+ st->codec->frame_size = framesize;
7720+ /* we fill in codec during capsnego */
7721+
7722+ /* we love debug output (c) (tm) (r) */
7723+ GST_DEBUG ("Created %s pad for ffmux_%s element",
7724+ padname, ((GstFFMpegMuxClass *) klass)->in_plugin->name);
7725+ g_free (padname);
7726+
7727+ return pad;
7728+}
7729+
7730+/**
7731+ * gst_ffmpegmux_setcaps
7732+ * @pad: #GstPad
7733+ * @caps: New caps.
7734+ *
7735+ * Set caps to pad.
7736+ *
7737+ * Returns: #TRUE on success.
7738+ */
7739+static gboolean
7740+gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps)
7741+{
7742+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (gst_pad_get_parent (pad));
7743+ GstFFMpegMuxPad *collect_pad;
7744+ AVStream *st;
7745+
7746+ collect_pad = (GstFFMpegMuxPad *) gst_pad_get_element_private (pad);
7747+
7748+ st = ffmpegmux->context->streams[collect_pad->padnum];
7749+ ffmpegmux->context->preload = ffmpegmux->preload;
7750+ ffmpegmux->context->max_delay = ffmpegmux->max_delay;
7751+
7752+ /* for the format-specific guesses, we'll go to
7753+ * our famous codec mapper */
7754+ if (gst_ffmpeg_caps_to_codecid (caps, st->codec) == CODEC_ID_NONE)
7755+ goto not_accepted;
7756+
7757+ /* copy over the aspect ratios, ffmpeg expects the stream aspect to match the
7758+ * codec aspect. */
7759+ st->sample_aspect_ratio = st->codec->sample_aspect_ratio;
7760+
7761+ GST_LOG_OBJECT (pad, "accepted caps %" GST_PTR_FORMAT, caps);
7762+ return TRUE;
7763+
7764+ /* ERRORS */
7765+not_accepted:
7766+ {
7767+ GST_LOG_OBJECT (pad, "rejecting caps %" GST_PTR_FORMAT, caps);
7768+ return FALSE;
7769+ }
7770+}
7771+
7772+
7773+static gboolean
7774+gst_ffmpegmux_sink_event (GstPad * pad, GstEvent * event)
7775+{
7776+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) gst_pad_get_parent (pad);
7777+ gboolean res = TRUE;
7778+
7779+ switch (GST_EVENT_TYPE (event)) {
7780+ case GST_EVENT_TAG:{
7781+ GstTagList *taglist;
7782+ GstTagSetter *setter = GST_TAG_SETTER (ffmpegmux);
7783+ const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter);
7784+
7785+ gst_event_parse_tag (event, &taglist);
7786+ gst_tag_setter_merge_tags (setter, taglist, mode);
7787+ break;
7788+ }
7789+ default:
7790+ break;
7791+ }
7792+
7793+ /* chaining up to collectpads default event function */
7794+ res = ffmpegmux->event_function (pad, event);
7795+
7796+ gst_object_unref (ffmpegmux);
7797+ return res;
7798+}
7799+
7800+static GstFlowReturn
7801+gst_ffmpegmux_collected (GstCollectPads * pads, gpointer user_data)
7802+{
7803+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) user_data;
7804+ GSList *collected;
7805+ GstFFMpegMuxPad *best_pad;
7806+ GstClockTime best_time;
7807+#if 0
7808+ /* Re-enable once converted to new AVMetaData API
7809+ * See #566605
7810+ */
7811+ const GstTagList *tags;
7812+#endif
7813+
7814+ /* open "file" (gstreamer protocol to next element) */
7815+ if (!ffmpegmux->opened) {
7816+ int open_flags = URL_WRONLY;
7817+
7818+ /* we do need all streams to have started capsnego,
7819+ * or things will go horribly wrong */
7820+ for (collected = ffmpegmux->collect->data; collected;
7821+ collected = g_slist_next (collected)) {
7822+ GstFFMpegMuxPad *collect_pad = (GstFFMpegMuxPad *) collected->data;
7823+ AVStream *st = ffmpegmux->context->streams[collect_pad->padnum];
7824+
7825+ /* check whether the pad has successfully completed capsnego */
7826+ if (st->codec->codec_id == CODEC_ID_NONE) {
7827+ GST_ELEMENT_ERROR (ffmpegmux, CORE, NEGOTIATION, (NULL),
7828+ ("no caps set on stream %d (%s)", collect_pad->padnum,
7829+ (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) ?
7830+ "video" : "audio"));
7831+ return GST_FLOW_ERROR;
7832+ }
7833+ /* set framerate for audio */
7834+ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
7835+ switch (st->codec->codec_id) {
7836+ case CODEC_ID_PCM_S16LE:
7837+ case CODEC_ID_PCM_S16BE:
7838+ case CODEC_ID_PCM_U16LE:
7839+ case CODEC_ID_PCM_U16BE:
7840+ case CODEC_ID_PCM_S8:
7841+ case CODEC_ID_PCM_U8:
7842+ st->codec->frame_size = 1;
7843+ break;
7844+ default:
7845+ {
7846+ GstBuffer *buffer;
7847+
7848+ /* FIXME : This doesn't work for RAW AUDIO...
7849+ * in fact I'm wondering if it even works for any kind of audio... */
7850+ buffer = gst_collect_pads_peek (ffmpegmux->collect,
7851+ (GstCollectData *) collect_pad);
7852+ if (buffer) {
7853+ st->codec->frame_size =
7854+ st->codec->sample_rate *
7855+ GST_BUFFER_DURATION (buffer) / GST_SECOND;
7856+ gst_buffer_unref (buffer);
7857+ }
7858+ }
7859+ }
7860+ }
7861+ }
7862+
7863+#if 0
7864+ /* Re-enable once converted to new AVMetaData API
7865+ * See #566605
7866+ */
7867+
7868+ /* tags */
7869+ tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (ffmpegmux));
7870+ if (tags) {
7871+ gint i;
7872+ gchar *s;
7873+
7874+ /* get the interesting ones */
7875+ if (gst_tag_list_get_string (tags, GST_TAG_TITLE, &s)) {
7876+ strncpy (ffmpegmux->context->title, s,
7877+ sizeof (ffmpegmux->context->title));
7878+ }
7879+ if (gst_tag_list_get_string (tags, GST_TAG_ARTIST, &s)) {
7880+ strncpy (ffmpegmux->context->author, s,
7881+ sizeof (ffmpegmux->context->author));
7882+ }
7883+ if (gst_tag_list_get_string (tags, GST_TAG_COPYRIGHT, &s)) {
7884+ strncpy (ffmpegmux->context->copyright, s,
7885+ sizeof (ffmpegmux->context->copyright));
7886+ }
7887+ if (gst_tag_list_get_string (tags, GST_TAG_COMMENT, &s)) {
7888+ strncpy (ffmpegmux->context->comment, s,
7889+ sizeof (ffmpegmux->context->comment));
7890+ }
7891+ if (gst_tag_list_get_string (tags, GST_TAG_ALBUM, &s)) {
7892+ strncpy (ffmpegmux->context->album, s,
7893+ sizeof (ffmpegmux->context->album));
7894+ }
7895+ if (gst_tag_list_get_string (tags, GST_TAG_GENRE, &s)) {
7896+ strncpy (ffmpegmux->context->genre, s,
7897+ sizeof (ffmpegmux->context->genre));
7898+ }
7899+ if (gst_tag_list_get_int (tags, GST_TAG_TRACK_NUMBER, &i)) {
7900+ ffmpegmux->context->track = i;
7901+ }
7902+ }
7903+#endif
7904+
7905+ /* set the streamheader flag for gstffmpegprotocol if codec supports it */
7906+ if (!strcmp (ffmpegmux->context->oformat->name, "flv")) {
7907+ open_flags |= GST_FFMPEG_URL_STREAMHEADER;
7908+ }
7909+
7910+ if (url_fopen (&ffmpegmux->context->pb,
7911+ ffmpegmux->context->filename, open_flags) < 0) {
7912+ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, TOO_LAZY, (NULL),
7913+ ("Failed to open stream context in ffmux"));
7914+ return GST_FLOW_ERROR;
7915+ }
7916+
7917+ if (av_set_parameters (ffmpegmux->context, NULL) < 0) {
7918+ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, INIT, (NULL),
7919+ ("Failed to initialize muxer"));
7920+ return GST_FLOW_ERROR;
7921+ }
7922+
7923+ /* now open the mux format */
7924+ if (av_write_header (ffmpegmux->context) < 0) {
7925+ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, SETTINGS, (NULL),
7926+ ("Failed to write file header - check codec settings"));
7927+ return GST_FLOW_ERROR;
7928+ }
7929+
7930+ /* we're now opened */
7931+ ffmpegmux->opened = TRUE;
7932+
7933+ /* flush the header so it will be used as streamheader */
7934+ put_flush_packet (ffmpegmux->context->pb);
7935+ }
7936+
7937+ /* take the one with earliest timestamp,
7938+ * and push it forward */
7939+ best_pad = NULL;
7940+ best_time = GST_CLOCK_TIME_NONE;
7941+ for (collected = ffmpegmux->collect->data; collected;
7942+ collected = g_slist_next (collected)) {
7943+ GstFFMpegMuxPad *collect_pad = (GstFFMpegMuxPad *) collected->data;
7944+ GstBuffer *buffer = gst_collect_pads_peek (ffmpegmux->collect,
7945+ (GstCollectData *) collect_pad);
7946+
7947+ /* if there's no buffer, just continue */
7948+ if (buffer == NULL) {
7949+ continue;
7950+ }
7951+
7952+ /* if we have no buffer yet, just use the first one */
7953+ if (best_pad == NULL) {
7954+ best_pad = collect_pad;
7955+ best_time = GST_BUFFER_TIMESTAMP (buffer);
7956+ goto next_pad;
7957+ }
7958+
7959+ /* if we do have one, only use this one if it's older */
7960+ if (GST_BUFFER_TIMESTAMP (buffer) < best_time) {
7961+ best_time = GST_BUFFER_TIMESTAMP (buffer);
7962+ best_pad = collect_pad;
7963+ }
7964+
7965+ next_pad:
7966+ gst_buffer_unref (buffer);
7967+
7968+ /* Mux buffers with invalid timestamp first */
7969+ if (!GST_CLOCK_TIME_IS_VALID (best_time))
7970+ break;
7971+ }
7972+
7973+ /* now handle the buffer, or signal EOS if we have
7974+ * no buffers left */
7975+ if (best_pad != NULL) {
7976+ GstBuffer *buf;
7977+ AVPacket pkt;
7978+ gboolean need_free = FALSE;
7979+
7980+ /* push out current buffer */
7981+ buf = gst_collect_pads_pop (ffmpegmux->collect,
7982+ (GstCollectData *) best_pad);
7983+
7984+ ffmpegmux->context->streams[best_pad->padnum]->codec->frame_number++;
7985+
7986+ /* set time */
7987+ pkt.pts = gst_ffmpeg_time_gst_to_ff (GST_BUFFER_TIMESTAMP (buf),
7988+ ffmpegmux->context->streams[best_pad->padnum]->time_base);
7989+ pkt.dts = pkt.pts;
7990+
7991+ if (strcmp (ffmpegmux->context->oformat->name, "gif") == 0) {
7992+ AVStream *st = ffmpegmux->context->streams[best_pad->padnum];
7993+ AVPicture src, dst;
7994+
7995+ need_free = TRUE;
7996+ pkt.size = st->codec->width * st->codec->height * 3;
7997+ pkt.data = g_malloc (pkt.size);
7998+
7999+ dst.data[0] = pkt.data;
8000+ dst.data[1] = NULL;
8001+ dst.data[2] = NULL;
8002+ dst.linesize[0] = st->codec->width * 3;
8003+
8004+ gst_ffmpeg_avpicture_fill (&src, GST_BUFFER_DATA (buf),
8005+ PIX_FMT_RGB24, st->codec->width, st->codec->height);
8006+
8007+ av_picture_copy (&dst, &src, PIX_FMT_RGB24,
8008+ st->codec->width, st->codec->height);
8009+ } else {
8010+ pkt.data = GST_BUFFER_DATA (buf);
8011+ pkt.size = GST_BUFFER_SIZE (buf);
8012+ }
8013+
8014+ pkt.stream_index = best_pad->padnum;
8015+ pkt.flags = 0;
8016+
8017+ if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT))
8018+ pkt.flags |= AV_PKT_FLAG_KEY;
8019+
8020+ if (GST_BUFFER_DURATION_IS_VALID (buf))
8021+ pkt.duration =
8022+ gst_ffmpeg_time_gst_to_ff (GST_BUFFER_DURATION (buf),
8023+ ffmpegmux->context->streams[best_pad->padnum]->time_base);
8024+ else
8025+ pkt.duration = 0;
8026+ av_write_frame (ffmpegmux->context, &pkt);
8027+ gst_buffer_unref (buf);
8028+ if (need_free)
8029+ g_free (pkt.data);
8030+ } else {
8031+ /* close down */
8032+ av_write_trailer (ffmpegmux->context);
8033+ ffmpegmux->opened = FALSE;
8034+ put_flush_packet (ffmpegmux->context->pb);
8035+ url_fclose (ffmpegmux->context->pb);
8036+ gst_pad_push_event (ffmpegmux->srcpad, gst_event_new_eos ());
8037+ return GST_FLOW_UNEXPECTED;
8038+ }
8039+
8040+ return GST_FLOW_OK;
8041+}
8042+
8043+static GstStateChangeReturn
8044+gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition)
8045+{
8046+ GstFlowReturn ret;
8047+ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (element);
8048+
8049+ switch (transition) {
8050+ case GST_STATE_CHANGE_NULL_TO_READY:
8051+ break;
8052+ case GST_STATE_CHANGE_READY_TO_PAUSED:
8053+ gst_collect_pads_start (ffmpegmux->collect);
8054+ break;
8055+ case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
8056+ break;
8057+ case GST_STATE_CHANGE_PAUSED_TO_READY:
8058+ gst_collect_pads_stop (ffmpegmux->collect);
8059+ break;
8060+ default:
8061+ break;
8062+ }
8063+
8064+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
8065+
8066+ switch (transition) {
8067+ case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
8068+ break;
8069+ case GST_STATE_CHANGE_PAUSED_TO_READY:
8070+ gst_tag_setter_reset_tags (GST_TAG_SETTER (ffmpegmux));
8071+ if (ffmpegmux->opened) {
8072+ ffmpegmux->opened = FALSE;
8073+ url_fclose (ffmpegmux->context->pb);
8074+ }
8075+ break;
8076+ case GST_STATE_CHANGE_READY_TO_NULL:
8077+ break;
8078+ default:
8079+ break;
8080+ }
8081+
8082+ return ret;
8083+}
8084+
8085+static GstCaps *
8086+gst_ffmpegmux_get_id_caps (enum CodecID *id_list)
8087+{
8088+ GstCaps *caps, *t;
8089+ gint i;
8090+
8091+ caps = gst_caps_new_empty ();
8092+ for (i = 0; id_list[i] != CODEC_ID_NONE; i++) {
8093+ if ((t = gst_ffmpeg_codecid_to_caps (id_list[i], NULL, TRUE)))
8094+ gst_caps_append (caps, t);
8095+ }
8096+ if (gst_caps_is_empty (caps)) {
8097+ gst_caps_unref (caps);
8098+ return NULL;
8099+ }
8100+
8101+ return caps;
8102+}
8103+
8104+/* set a list of integer values on the caps, e.g. for sample rates */
8105+static void
8106+gst_ffmpeg_mux_simple_caps_set_int_list (GstCaps * caps, const gchar * field,
8107+ guint num, const gint * values)
8108+{
8109+ GValue list = { 0, };
8110+ GValue val = { 0, };
8111+ gint i;
8112+
8113+ g_return_if_fail (GST_CAPS_IS_SIMPLE (caps));
8114+
8115+ g_value_init (&list, GST_TYPE_LIST);
8116+ g_value_init (&val, G_TYPE_INT);
8117+
8118+ for (i = 0; i < num; ++i) {
8119+ g_value_set_int (&val, values[i]);
8120+ gst_value_list_append_value (&list, &val);
8121+ }
8122+
8123+ gst_structure_set_value (gst_caps_get_structure (caps, 0), field, &list);
8124+
8125+ g_value_unset (&val);
8126+ g_value_unset (&list);
8127+}
8128+
8129+gboolean
8130+gst_ffmpegmux_register (GstPlugin * plugin)
8131+{
8132+ GTypeInfo typeinfo = {
8133+ sizeof (GstFFMpegMuxClass),
8134+ (GBaseInitFunc) gst_ffmpegmux_base_init,
8135+ NULL,
8136+ (GClassInitFunc) gst_ffmpegmux_class_init,
8137+ NULL,
8138+ NULL,
8139+ sizeof (GstFFMpegMux),
8140+ 0,
8141+ (GInstanceInitFunc) gst_ffmpegmux_init,
8142+ };
8143+ static const GInterfaceInfo tag_setter_info = {
8144+ NULL, NULL, NULL
8145+ };
8146+ GType type;
8147+ AVOutputFormat *in_plugin;
8148+
8149+ in_plugin = av_oformat_next (NULL);
8150+
8151+ GST_LOG ("Registering muxers");
8152+
8153+ while (in_plugin) {
8154+ gchar *type_name;
8155+ gchar *p;
8156+ GstRank rank = GST_RANK_MARGINAL;
8157+
8158+ if ((!strncmp (in_plugin->name, "u16", 3)) ||
8159+ (!strncmp (in_plugin->name, "s16", 3)) ||
8160+ (!strncmp (in_plugin->name, "u24", 3)) ||
8161+ (!strncmp (in_plugin->name, "s24", 3)) ||
8162+ (!strncmp (in_plugin->name, "u8", 2)) ||
8163+ (!strncmp (in_plugin->name, "s8", 2)) ||
8164+ (!strncmp (in_plugin->name, "u32", 3)) ||
8165+ (!strncmp (in_plugin->name, "s32", 3)) ||
8166+ (!strncmp (in_plugin->name, "f32", 3)) ||
8167+ (!strncmp (in_plugin->name, "f64", 3)) ||
8168+ (!strncmp (in_plugin->name, "raw", 3)) ||
8169+ (!strncmp (in_plugin->name, "crc", 3)) ||
8170+ (!strncmp (in_plugin->name, "null", 4)) ||
8171+ (!strncmp (in_plugin->name, "gif", 3)) ||
8172+ (!strncmp (in_plugin->name, "frame", 5)) ||
8173+ (!strncmp (in_plugin->name, "image", 5)) ||
8174+ (!strncmp (in_plugin->name, "mulaw", 5)) ||
8175+ (!strncmp (in_plugin->name, "alaw", 4)) ||
8176+ (!strncmp (in_plugin->name, "h26", 3)) ||
8177+ (!strncmp (in_plugin->name, "rtp", 3)) ||
8178+ (!strncmp (in_plugin->name, "ass", 3)) ||
8179+ (!strncmp (in_plugin->name, "ffmetadata", 10)) ||
8180+ (!strncmp (in_plugin->name, "srt", 3))
8181+ ) {
8182+ GST_LOG ("Ignoring muxer %s", in_plugin->name);
8183+ goto next;
8184+ }
8185+
8186+ if ((!strncmp (in_plugin->long_name, "raw ", 4))) {
8187+ GST_LOG ("Ignoring raw muxer %s", in_plugin->name);
8188+ goto next;
8189+ }
8190+
8191+ if (gst_ffmpegmux_get_replacement (in_plugin->name))
8192+ rank = GST_RANK_NONE;
8193+
8194+ /* FIXME : We need a fast way to know whether we have mappings for this
8195+ * muxer type. */
8196+
8197+ /* construct the type */
8198+ type_name = g_strdup_printf ("ffmux_%s", in_plugin->name);
8199+
8200+ p = type_name;
8201+
8202+ while (*p) {
8203+ if (*p == '.')
8204+ *p = '_';
8205+ p++;
8206+ }
8207+
8208+ type = g_type_from_name (type_name);
8209+
8210+ if (!type) {
8211+ /* create the type now */
8212+ type = g_type_register_static (GST_TYPE_ELEMENT, type_name, &typeinfo, 0);
8213+ g_type_set_qdata (type, GST_FFMUX_PARAMS_QDATA, (gpointer) in_plugin);
8214+ g_type_add_interface_static (type, GST_TYPE_TAG_SETTER, &tag_setter_info);
8215+ }
8216+
8217+ if (!gst_element_register (plugin, type_name, rank, type)) {
8218+ g_free (type_name);
8219+ return FALSE;
8220+ }
8221+
8222+ g_free (type_name);
8223+
8224+ next:
8225+ in_plugin = av_oformat_next (in_plugin);
8226+ }
8227+
8228+ GST_LOG ("Finished registering muxers");
8229+
8230+ return TRUE;
8231+}
8232diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegprotocol.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegprotocol.c
8233--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegprotocol.c 2011-07-12 16:35:28.000000000 +0200
8234+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegprotocol.c 2014-08-08 15:26:07.875857555 +0200
8235@@ -46,63 +46,14 @@
8236 };
8237
8238 static int
8239-gst_ffmpegdata_open (URLContext * h, const char *filename, int flags)
8240-{
8241- GstProtocolInfo *info;
8242- GstPad *pad;
8243-
8244- GST_LOG ("Opening %s", filename);
8245-
8246- info = g_new0 (GstProtocolInfo, 1);
8247-
8248- info->set_streamheader = flags & GST_FFMPEG_URL_STREAMHEADER;
8249- flags &= ~GST_FFMPEG_URL_STREAMHEADER;
8250- h->flags &= ~GST_FFMPEG_URL_STREAMHEADER;
8251-
8252- /* we don't support R/W together */
8253- if (flags != URL_RDONLY && flags != URL_WRONLY) {
8254- GST_WARNING ("Only read-only or write-only are supported");
8255- return -EINVAL;
8256- }
8257-
8258- if (sscanf (&filename[12], "%p", &pad) != 1) {
8259- GST_WARNING ("could not decode pad from %s", filename);
8260- return -EIO;
8261- }
8262-
8263- /* make sure we're a pad and that we're of the right type */
8264- g_return_val_if_fail (GST_IS_PAD (pad), -EINVAL);
8265-
8266- switch (flags) {
8267- case URL_RDONLY:
8268- g_return_val_if_fail (GST_PAD_IS_SINK (pad), -EINVAL);
8269- break;
8270- case URL_WRONLY:
8271- g_return_val_if_fail (GST_PAD_IS_SRC (pad), -EINVAL);
8272- break;
8273- }
8274-
8275- info->eos = FALSE;
8276- info->pad = pad;
8277- info->offset = 0;
8278-
8279- h->priv_data = (void *) info;
8280- h->is_streamed = FALSE;
8281- h->max_packet_size = 0;
8282-
8283- return 0;
8284-}
8285-
8286-static int
8287-gst_ffmpegdata_peek (URLContext * h, unsigned char *buf, int size)
8288+gst_ffmpegdata_peek (void *priv_data, unsigned char *buf, int size)
8289 {
8290 GstProtocolInfo *info;
8291 GstBuffer *inbuf = NULL;
8292 GstFlowReturn ret;
8293 int total = 0;
8294
8295- g_return_val_if_fail (h->flags == URL_RDONLY, AVERROR (EIO));
8296- info = (GstProtocolInfo *) h->priv_data;
8297+ info = (GstProtocolInfo *) priv_data;
8298
8299 GST_DEBUG ("Pulling %d bytes at position %" G_GUINT64_FORMAT, size,
8300 info->offset);
8301@@ -134,17 +85,17 @@
8302 }
8303
8304 static int
8305-gst_ffmpegdata_read (URLContext * h, unsigned char *buf, int size)
8306+gst_ffmpegdata_read (void *priv_data, unsigned char *buf, int size)
8307 {
8308 gint res;
8309 GstProtocolInfo *info;
8310
8311- info = (GstProtocolInfo *) h->priv_data;
8312+ info = (GstProtocolInfo *) priv_data;
8313
8314 GST_DEBUG ("Reading %d bytes of data at position %" G_GUINT64_FORMAT, size,
8315 info->offset);
8316
8317- res = gst_ffmpegdata_peek (h, buf, size);
8318+ res = gst_ffmpegdata_peek (priv_data, buf, size);
8319 if (res >= 0)
8320 info->offset += res;
8321
8322@@ -154,15 +105,13 @@
8323 }
8324
8325 static int
8326-gst_ffmpegdata_write (URLContext * h, const unsigned char *buf, int size)
8327+gst_ffmpegdata_write (void *priv_data, const unsigned char *buf, int size)
8328 {
8329 GstProtocolInfo *info;
8330 GstBuffer *outbuf;
8331
8332 GST_DEBUG ("Writing %d bytes", size);
8333- info = (GstProtocolInfo *) h->priv_data;
8334-
8335- g_return_val_if_fail (h->flags != URL_RDONLY, -EIO);
8336+ info = (GstProtocolInfo *) priv_data;
8337
8338 /* create buffer and push data further */
8339 if (gst_pad_alloc_buffer_and_set_caps (info->pad,
8340@@ -179,7 +128,7 @@
8341 }
8342
8343 static int64_t
8344-gst_ffmpegdata_seek (URLContext * h, int64_t pos, int whence)
8345+gst_ffmpegdata_seek (void *priv_data, int64_t pos, int whence)
8346 {
8347 GstProtocolInfo *info;
8348 guint64 newpos = 0;
8349@@ -187,70 +136,62 @@
8350 GST_DEBUG ("Seeking to %" G_GINT64_FORMAT ", whence=%d",
8351 (gint64) pos, whence);
8352
8353- info = (GstProtocolInfo *) h->priv_data;
8354+ info = (GstProtocolInfo *) priv_data;
8355
8356 /* TODO : if we are push-based, we need to return sensible info */
8357
8358- switch (h->flags) {
8359- case URL_RDONLY:
8360- {
8361- /* sinkpad */
8362- switch (whence) {
8363- case SEEK_SET:
8364- newpos = (guint64) pos;
8365- break;
8366- case SEEK_CUR:
8367- newpos = info->offset + pos;
8368- break;
8369- case SEEK_END:
8370- case AVSEEK_SIZE:
8371- /* ffmpeg wants to know the current end position in bytes ! */
8372- {
8373- GstFormat format = GST_FORMAT_BYTES;
8374- gint64 duration;
8375-
8376- GST_DEBUG ("Seek end");
8377-
8378- if (gst_pad_is_linked (info->pad))
8379- if (gst_pad_query_duration (GST_PAD_PEER (info->pad), &format,
8380- &duration))
8381- newpos = ((guint64) duration) + pos;
8382- }
8383- break;
8384- default:
8385- g_assert (0);
8386- break;
8387+ if (GST_PAD_IS_SINK (info->pad)) {
8388+ /* sinkpad */
8389+ switch (whence) {
8390+ case SEEK_SET:
8391+ newpos = (guint64) pos;
8392+ break;
8393+ case SEEK_CUR:
8394+ newpos = info->offset + pos;
8395+ break;
8396+ case SEEK_END:
8397+ case AVSEEK_SIZE:
8398+ /* ffmpeg wants to know the current end position in bytes ! */
8399+ {
8400+ GstFormat format = GST_FORMAT_BYTES;
8401+ gint64 duration;
8402+
8403+ GST_DEBUG ("Seek end");
8404+
8405+ if (gst_pad_is_linked (info->pad))
8406+ if (gst_pad_query_duration (GST_PAD_PEER (info->pad), &format,
8407+ &duration))
8408+ newpos = ((guint64) duration) + pos;
8409 }
8410- /* FIXME : implement case for push-based behaviour */
8411- if (whence != AVSEEK_SIZE)
8412- info->offset = newpos;
8413+ break;
8414+ default:
8415+ g_assert (0);
8416+ break;
8417 }
8418- break;
8419- case URL_WRONLY:
8420- {
8421- /* srcpad */
8422- switch (whence) {
8423- case SEEK_SET:
8424- info->offset = (guint64) pos;
8425- gst_pad_push_event (info->pad, gst_event_new_new_segment
8426- (TRUE, 1.0, GST_FORMAT_BYTES, info->offset,
8427- GST_CLOCK_TIME_NONE, info->offset));
8428- break;
8429- case SEEK_CUR:
8430- info->offset += pos;
8431- gst_pad_push_event (info->pad, gst_event_new_new_segment
8432- (TRUE, 1.0, GST_FORMAT_BYTES, info->offset,
8433- GST_CLOCK_TIME_NONE, info->offset));
8434- break;
8435- default:
8436- break;
8437- }
8438- newpos = info->offset;
8439+ /* FIXME : implement case for push-based behaviour */
8440+ if (whence != AVSEEK_SIZE)
8441+ info->offset = newpos;
8442+ } else if (GST_PAD_IS_SRC (info->pad)) {
8443+ /* srcpad */
8444+ switch (whence) {
8445+ case SEEK_SET:
8446+ info->offset = (guint64) pos;
8447+ gst_pad_push_event (info->pad, gst_event_new_new_segment
8448+ (TRUE, 1.0, GST_FORMAT_BYTES, info->offset,
8449+ GST_CLOCK_TIME_NONE, info->offset));
8450+ break;
8451+ case SEEK_CUR:
8452+ info->offset += pos;
8453+ gst_pad_push_event (info->pad, gst_event_new_new_segment
8454+ (TRUE, 1.0, GST_FORMAT_BYTES, info->offset,
8455+ GST_CLOCK_TIME_NONE, info->offset));
8456+ break;
8457+ default:
8458+ break;
8459 }
8460- break;
8461- default:
8462- g_assert (0);
8463- break;
8464+ newpos = info->offset;
8465+ } else {
8466+ g_assert_not_reached ();
8467 }
8468
8469 GST_DEBUG ("Now at offset %" G_GUINT64_FORMAT " (returning %" G_GUINT64_FORMAT
8470@@ -258,85 +199,91 @@
8471 return newpos;
8472 }
8473
8474-static int
8475-gst_ffmpegdata_close (URLContext * h)
8476+int
8477+gst_ffmpegdata_close (AVIOContext * h)
8478 {
8479 GstProtocolInfo *info;
8480
8481- info = (GstProtocolInfo *) h->priv_data;
8482+ info = (GstProtocolInfo *) h->opaque;
8483 if (info == NULL)
8484 return 0;
8485
8486 GST_LOG ("Closing file");
8487
8488- switch (h->flags) {
8489- case URL_WRONLY:
8490- {
8491- /* send EOS - that closes down the stream */
8492- gst_pad_push_event (info->pad, gst_event_new_eos ());
8493- break;
8494- }
8495- default:
8496- break;
8497+ if (GST_PAD_IS_SRC (info->pad)) {
8498+ /* send EOS - that closes down the stream */
8499+ gst_pad_push_event (info->pad, gst_event_new_eos ());
8500 }
8501
8502 /* clean up data */
8503 g_free (info);
8504- h->priv_data = NULL;
8505+ h->opaque = NULL;
8506+
8507+ av_freep (&h->buffer);
8508+ av_free (h);
8509
8510 return 0;
8511 }
8512
8513+int
8514+gst_ffmpegdata_open (GstPad * pad, int flags, AVIOContext ** context)
8515+{
8516+ GstProtocolInfo *info;
8517+ static const int buffer_size = 4096;
8518+ unsigned char *buffer = NULL;
8519
8520-URLProtocol gstreamer_protocol = {
8521- /*.name = */ "gstreamer",
8522- /*.url_open = */ gst_ffmpegdata_open,
8523- /*.url_read = */ gst_ffmpegdata_read,
8524- /*.url_write = */ gst_ffmpegdata_write,
8525- /*.url_seek = */ gst_ffmpegdata_seek,
8526- /*.url_close = */ gst_ffmpegdata_close,
8527-};
8528+ info = g_new0 (GstProtocolInfo, 1);
8529
8530+ info->set_streamheader = flags & GST_FFMPEG_URL_STREAMHEADER;
8531+ flags &= ~GST_FFMPEG_URL_STREAMHEADER;
8532
8533-/* specialized protocol for cross-thread pushing,
8534- * based on ffmpeg's pipe protocol */
8535+ /* we don't support R/W together */
8536+ if ((flags & AVIO_FLAG_WRITE) && (flags & AVIO_FLAG_READ)) {
8537+ GST_WARNING ("Only read-only or write-only are supported");
8538+ return -EINVAL;
8539+ }
8540
8541-static int
8542-gst_ffmpeg_pipe_open (URLContext * h, const char *filename, int flags)
8543-{
8544- GstFFMpegPipe *ffpipe;
8545+ /* make sure we're a pad and that we're of the right type */
8546+ g_return_val_if_fail (GST_IS_PAD (pad), -EINVAL);
8547
8548- GST_LOG ("Opening %s", filename);
8549+ if ((flags & AVIO_FLAG_READ))
8550+ g_return_val_if_fail (GST_PAD_IS_SINK (pad), -EINVAL);
8551+ if ((flags & AVIO_FLAG_WRITE))
8552+ g_return_val_if_fail (GST_PAD_IS_SRC (pad), -EINVAL);
8553
8554- /* we don't support W together */
8555- if (flags != URL_RDONLY) {
8556- GST_WARNING ("Only read-only is supported");
8557- return -EINVAL;
8558- }
8559+ info->eos = FALSE;
8560+ info->pad = pad;
8561+ info->offset = 0;
8562
8563- if (sscanf (&filename[10], "%p", &ffpipe) != 1) {
8564- GST_WARNING ("could not decode pipe info from %s", filename);
8565- return -EIO;
8566+ buffer = av_malloc (buffer_size);
8567+ if (buffer == NULL) {
8568+ GST_WARNING ("Failed to allocate buffer");
8569+ return -ENOMEM;
8570 }
8571
8572- /* sanity check */
8573- g_return_val_if_fail (GST_IS_ADAPTER (ffpipe->adapter), -EINVAL);
8574-
8575- h->priv_data = (void *) ffpipe;
8576- h->is_streamed = TRUE;
8577- h->max_packet_size = 0;
8578+ *context =
8579+ avio_alloc_context (buffer, buffer_size, flags, (void *) info,
8580+ gst_ffmpegdata_read, gst_ffmpegdata_write, gst_ffmpegdata_seek);
8581+ (*context)->seekable = AVIO_SEEKABLE_NORMAL;
8582+ if (!(flags & AVIO_FLAG_WRITE)) {
8583+ (*context)->buf_ptr = (*context)->buf_end;
8584+ (*context)->write_flag = 0;
8585+ }
8586
8587 return 0;
8588 }
8589
8590+/* specialized protocol for cross-thread pushing,
8591+ * based on ffmpeg's pipe protocol */
8592+
8593 static int
8594-gst_ffmpeg_pipe_read (URLContext * h, unsigned char *buf, int size)
8595+gst_ffmpeg_pipe_read (void *priv_data, unsigned char *buf, int size)
8596 {
8597 GstFFMpegPipe *ffpipe;
8598 const guint8 *data;
8599 guint available;
8600
8601- ffpipe = (GstFFMpegPipe *) h->priv_data;
8602+ ffpipe = (GstFFMpegPipe *) priv_data;
8603
8604 GST_LOG ("requested size %d", size);
8605
8606@@ -367,21 +314,38 @@
8607 return size;
8608 }
8609
8610-static int
8611-gst_ffmpeg_pipe_close (URLContext * h)
8612+int
8613+gst_ffmpeg_pipe_close (AVIOContext * h)
8614 {
8615 GST_LOG ("Closing pipe");
8616
8617- h->priv_data = NULL;
8618+ h->opaque = NULL;
8619+ av_freep (&h->buffer);
8620+ av_free (h);
8621
8622 return 0;
8623 }
8624
8625-URLProtocol gstpipe_protocol = {
8626- "gstpipe",
8627- gst_ffmpeg_pipe_open,
8628- gst_ffmpeg_pipe_read,
8629- NULL,
8630- NULL,
8631- gst_ffmpeg_pipe_close,
8632-};
8633+int
8634+gst_ffmpeg_pipe_open (GstFFMpegPipe * ffpipe, int flags, AVIOContext ** context)
8635+{
8636+ static const int buffer_size = 4096;
8637+ unsigned char *buffer = NULL;
8638+
8639+ /* sanity check */
8640+ g_return_val_if_fail (GST_IS_ADAPTER (ffpipe->adapter), -EINVAL);
8641+
8642+ buffer = av_malloc (buffer_size);
8643+ if (buffer == NULL) {
8644+ GST_WARNING ("Failed to allocate buffer");
8645+ return -ENOMEM;
8646+ }
8647+
8648+ *context =
8649+ avio_alloc_context (buffer, buffer_size, 0, (void *) ffpipe,
8650+ gst_ffmpeg_pipe_read, NULL, NULL);
8651+ (*context)->seekable = 0;
8652+ (*context)->buf_ptr = (*context)->buf_end;
8653+
8654+ return 0;
8655+}
8656diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c
8657--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c 2011-07-13 11:07:28.000000000 +0200
8658+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c 2014-08-08 15:34:04.007874626 +0200
8659@@ -25,6 +25,11 @@
8660 #ifdef __APPLE__
8661 #include <sys/sysctl.h>
8662 #endif
8663+#ifdef HAVE_FFMPEG_UNINSTALLED
8664+#include <avformat.h>
8665+#else
8666+#include <libavformat/avformat.h>
8667+#endif
8668
8669 G_CONST_RETURN gchar *
8670 gst_ffmpeg_get_codecid_longname (enum CodecID codec_id)
8671@@ -39,21 +44,21 @@
8672 }
8673
8674 gint
8675-av_smp_format_depth (enum SampleFormat smp_fmt)
8676+av_smp_format_depth (enum AVSampleFormat smp_fmt)
8677 {
8678 gint depth = -1;
8679 switch (smp_fmt) {
8680- case SAMPLE_FMT_U8:
8681+ case AV_SAMPLE_FMT_U8:
8682 depth = 1;
8683 break;
8684- case SAMPLE_FMT_S16:
8685+ case AV_SAMPLE_FMT_S16:
8686 depth = 2;
8687 break;
8688- case SAMPLE_FMT_S32:
8689- case SAMPLE_FMT_FLT:
8690+ case AV_SAMPLE_FMT_S32:
8691+ case AV_SAMPLE_FMT_FLT:
8692 depth = 4;
8693 break;
8694- case SAMPLE_FMT_DBL:
8695+ case AV_SAMPLE_FMT_DBL:
8696 depth = 8;
8697 break;
8698 default:
8699diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c.orig
8700--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c.orig 1970-01-01 01:00:00.000000000 +0100
8701+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c.orig 2011-07-13 11:07:28.000000000 +0200
8702@@ -0,0 +1,483 @@
8703+/* GStreamer
8704+ * Copyright (c) 2009 Edward Hervey <bilboed@bilboed.com>
8705+ *
8706+ * This library is free software; you can redistribute it and/or
8707+ * modify it under the terms of the GNU Library General Public
8708+ * License as published by the Free Software Foundation; either
8709+ * version 2 of the License, or (at your option) any later version.
8710+ *
8711+ * This library is distributed in the hope that it will be useful,
8712+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
8713+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8714+ * Library General Public License for more details.
8715+ *
8716+ * You should have received a copy of the GNU Library General Public
8717+ * License along with this library; if not, write to the
8718+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
8719+ * Boston, MA 02111-1307, USA.
8720+ */
8721+
8722+#ifdef HAVE_CONFIG_H
8723+#include "config.h"
8724+#endif
8725+#include "gstffmpegutils.h"
8726+#include <unistd.h>
8727+#ifdef __APPLE__
8728+#include <sys/sysctl.h>
8729+#endif
8730+
8731+G_CONST_RETURN gchar *
8732+gst_ffmpeg_get_codecid_longname (enum CodecID codec_id)
8733+{
8734+ AVCodec *codec;
8735+ /* Let's use what ffmpeg can provide us */
8736+
8737+ if ((codec = avcodec_find_decoder (codec_id)) ||
8738+ (codec = avcodec_find_encoder (codec_id)))
8739+ return codec->long_name;
8740+ return NULL;
8741+}
8742+
8743+gint
8744+av_smp_format_depth (enum SampleFormat smp_fmt)
8745+{
8746+ gint depth = -1;
8747+ switch (smp_fmt) {
8748+ case SAMPLE_FMT_U8:
8749+ depth = 1;
8750+ break;
8751+ case SAMPLE_FMT_S16:
8752+ depth = 2;
8753+ break;
8754+ case SAMPLE_FMT_S32:
8755+ case SAMPLE_FMT_FLT:
8756+ depth = 4;
8757+ break;
8758+ case SAMPLE_FMT_DBL:
8759+ depth = 8;
8760+ break;
8761+ default:
8762+ GST_ERROR ("UNHANDLED SAMPLE FORMAT !");
8763+ break;
8764+ }
8765+ return depth;
8766+}
8767+
8768+
8769+/*
8770+ * Fill in pointers to memory in a AVPicture, where
8771+ * everything is aligned by 4 (as required by X).
8772+ * This is mostly a copy from imgconvert.c with some
8773+ * small changes.
8774+ */
8775+
8776+#define FF_COLOR_RGB 0 /* RGB color space */
8777+#define FF_COLOR_GRAY 1 /* gray color space */
8778+#define FF_COLOR_YUV 2 /* YUV color space. 16 <= Y <= 235, 16 <= U, V <= 240 */
8779+#define FF_COLOR_YUV_JPEG 3 /* YUV color space. 0 <= Y <= 255, 0 <= U, V <= 255 */
8780+
8781+#define FF_PIXEL_PLANAR 0 /* each channel has one component in AVPicture */
8782+#define FF_PIXEL_PACKED 1 /* only one components containing all the channels */
8783+#define FF_PIXEL_PALETTE 2 /* one components containing indexes for a palette */
8784+
8785+typedef struct PixFmtInfo
8786+{
8787+ const char *name;
8788+ uint8_t nb_channels; /* number of channels (including alpha) */
8789+ uint8_t color_type; /* color type (see FF_COLOR_xxx constants) */
8790+ uint8_t pixel_type; /* pixel storage type (see FF_PIXEL_xxx constants) */
8791+ uint8_t is_alpha:1; /* true if alpha can be specified */
8792+ uint8_t x_chroma_shift; /* X chroma subsampling factor is 2 ^ shift */
8793+ uint8_t y_chroma_shift; /* Y chroma subsampling factor is 2 ^ shift */
8794+ uint8_t depth; /* bit depth of the color components */
8795+} PixFmtInfo;
8796+
8797+
8798+/* this table gives more information about formats */
8799+static PixFmtInfo pix_fmt_info[PIX_FMT_NB];
8800+void
8801+gst_ffmpeg_init_pix_fmt_info (void)
8802+{
8803+ /* YUV formats */
8804+ pix_fmt_info[PIX_FMT_YUV420P].name = g_strdup ("yuv420p");
8805+ pix_fmt_info[PIX_FMT_YUV420P].nb_channels = 3;
8806+ pix_fmt_info[PIX_FMT_YUV420P].color_type = FF_COLOR_YUV;
8807+ pix_fmt_info[PIX_FMT_YUV420P].pixel_type = FF_PIXEL_PLANAR;
8808+ pix_fmt_info[PIX_FMT_YUV420P].depth = 8,
8809+ pix_fmt_info[PIX_FMT_YUV420P].x_chroma_shift = 1,
8810+ pix_fmt_info[PIX_FMT_YUV420P].y_chroma_shift = 1;
8811+
8812+ pix_fmt_info[PIX_FMT_YUV422P].name = g_strdup ("yuv422p");
8813+ pix_fmt_info[PIX_FMT_YUV422P].nb_channels = 3;
8814+ pix_fmt_info[PIX_FMT_YUV422P].color_type = FF_COLOR_YUV;
8815+ pix_fmt_info[PIX_FMT_YUV422P].pixel_type = FF_PIXEL_PLANAR;
8816+ pix_fmt_info[PIX_FMT_YUV422P].depth = 8;
8817+ pix_fmt_info[PIX_FMT_YUV422P].x_chroma_shift = 1;
8818+ pix_fmt_info[PIX_FMT_YUV422P].y_chroma_shift = 0;
8819+
8820+ pix_fmt_info[PIX_FMT_YUV444P].name = g_strdup ("yuv444p");
8821+ pix_fmt_info[PIX_FMT_YUV444P].nb_channels = 3;
8822+ pix_fmt_info[PIX_FMT_YUV444P].color_type = FF_COLOR_YUV;
8823+ pix_fmt_info[PIX_FMT_YUV444P].pixel_type = FF_PIXEL_PLANAR;
8824+ pix_fmt_info[PIX_FMT_YUV444P].depth = 8;
8825+ pix_fmt_info[PIX_FMT_YUV444P].x_chroma_shift = 0;
8826+ pix_fmt_info[PIX_FMT_YUV444P].y_chroma_shift = 0;
8827+
8828+ pix_fmt_info[PIX_FMT_YUYV422].name = g_strdup ("yuv422");
8829+ pix_fmt_info[PIX_FMT_YUYV422].nb_channels = 1;
8830+ pix_fmt_info[PIX_FMT_YUYV422].color_type = FF_COLOR_YUV;
8831+ pix_fmt_info[PIX_FMT_YUYV422].pixel_type = FF_PIXEL_PACKED;
8832+ pix_fmt_info[PIX_FMT_YUYV422].depth = 8;
8833+ pix_fmt_info[PIX_FMT_YUYV422].x_chroma_shift = 1;
8834+ pix_fmt_info[PIX_FMT_YUYV422].y_chroma_shift = 0;
8835+
8836+ pix_fmt_info[PIX_FMT_YUV410P].name = g_strdup ("yuv410p");
8837+ pix_fmt_info[PIX_FMT_YUV410P].nb_channels = 3;
8838+ pix_fmt_info[PIX_FMT_YUV410P].color_type = FF_COLOR_YUV;
8839+ pix_fmt_info[PIX_FMT_YUV410P].pixel_type = FF_PIXEL_PLANAR;
8840+ pix_fmt_info[PIX_FMT_YUV410P].depth = 8;
8841+ pix_fmt_info[PIX_FMT_YUV410P].x_chroma_shift = 2;
8842+ pix_fmt_info[PIX_FMT_YUV410P].y_chroma_shift = 2;
8843+
8844+ pix_fmt_info[PIX_FMT_YUV411P].name = g_strdup ("yuv411p");
8845+ pix_fmt_info[PIX_FMT_YUV411P].nb_channels = 3;
8846+ pix_fmt_info[PIX_FMT_YUV411P].color_type = FF_COLOR_YUV;
8847+ pix_fmt_info[PIX_FMT_YUV411P].pixel_type = FF_PIXEL_PLANAR;
8848+ pix_fmt_info[PIX_FMT_YUV411P].depth = 8;
8849+ pix_fmt_info[PIX_FMT_YUV411P].x_chroma_shift = 2;
8850+ pix_fmt_info[PIX_FMT_YUV411P].y_chroma_shift = 0;
8851+
8852+ /* JPEG YUV */
8853+ pix_fmt_info[PIX_FMT_YUVJ420P].name = g_strdup ("yuvj420p");
8854+ pix_fmt_info[PIX_FMT_YUVJ420P].nb_channels = 3;
8855+ pix_fmt_info[PIX_FMT_YUVJ420P].color_type = FF_COLOR_YUV_JPEG;
8856+ pix_fmt_info[PIX_FMT_YUVJ420P].pixel_type = FF_PIXEL_PLANAR;
8857+ pix_fmt_info[PIX_FMT_YUVJ420P].depth = 8;
8858+ pix_fmt_info[PIX_FMT_YUVJ420P].x_chroma_shift = 1;
8859+ pix_fmt_info[PIX_FMT_YUVJ420P].y_chroma_shift = 1;
8860+
8861+ pix_fmt_info[PIX_FMT_YUVJ422P].name = g_strdup ("yuvj422p");
8862+ pix_fmt_info[PIX_FMT_YUVJ422P].nb_channels = 3;
8863+ pix_fmt_info[PIX_FMT_YUVJ422P].color_type = FF_COLOR_YUV_JPEG;
8864+ pix_fmt_info[PIX_FMT_YUVJ422P].pixel_type = FF_PIXEL_PLANAR;
8865+ pix_fmt_info[PIX_FMT_YUVJ422P].depth = 8;
8866+ pix_fmt_info[PIX_FMT_YUVJ422P].x_chroma_shift = 1;
8867+ pix_fmt_info[PIX_FMT_YUVJ422P].y_chroma_shift = 0;
8868+
8869+ pix_fmt_info[PIX_FMT_YUVJ444P].name = g_strdup ("yuvj444p");
8870+ pix_fmt_info[PIX_FMT_YUVJ444P].nb_channels = 3;
8871+ pix_fmt_info[PIX_FMT_YUVJ444P].color_type = FF_COLOR_YUV_JPEG;
8872+ pix_fmt_info[PIX_FMT_YUVJ444P].pixel_type = FF_PIXEL_PLANAR;
8873+ pix_fmt_info[PIX_FMT_YUVJ444P].depth = 8;
8874+ pix_fmt_info[PIX_FMT_YUVJ444P].x_chroma_shift = 0;
8875+ pix_fmt_info[PIX_FMT_YUVJ444P].y_chroma_shift = 0;
8876+
8877+ /* RGB formats */
8878+ pix_fmt_info[PIX_FMT_RGB24].name = g_strdup ("rgb24");
8879+ pix_fmt_info[PIX_FMT_RGB24].nb_channels = 3;
8880+ pix_fmt_info[PIX_FMT_RGB24].color_type = FF_COLOR_RGB;
8881+ pix_fmt_info[PIX_FMT_RGB24].pixel_type = FF_PIXEL_PACKED;
8882+ pix_fmt_info[PIX_FMT_RGB24].depth = 8;
8883+ pix_fmt_info[PIX_FMT_RGB24].x_chroma_shift = 0;
8884+ pix_fmt_info[PIX_FMT_RGB24].y_chroma_shift = 0;
8885+
8886+ pix_fmt_info[PIX_FMT_BGR24].name = g_strdup ("bgr24");
8887+ pix_fmt_info[PIX_FMT_BGR24].nb_channels = 3;
8888+ pix_fmt_info[PIX_FMT_BGR24].color_type = FF_COLOR_RGB;
8889+ pix_fmt_info[PIX_FMT_BGR24].pixel_type = FF_PIXEL_PACKED;
8890+ pix_fmt_info[PIX_FMT_BGR24].depth = 8;
8891+ pix_fmt_info[PIX_FMT_BGR24].x_chroma_shift = 0;
8892+ pix_fmt_info[PIX_FMT_BGR24].y_chroma_shift = 0;
8893+
8894+ pix_fmt_info[PIX_FMT_RGB32].name = g_strdup ("rgba32");
8895+ pix_fmt_info[PIX_FMT_RGB32].nb_channels = 4;
8896+ pix_fmt_info[PIX_FMT_RGB32].is_alpha = 1;
8897+ pix_fmt_info[PIX_FMT_RGB32].color_type = FF_COLOR_RGB;
8898+ pix_fmt_info[PIX_FMT_RGB32].pixel_type = FF_PIXEL_PACKED;
8899+ pix_fmt_info[PIX_FMT_RGB32].depth = 8;
8900+ pix_fmt_info[PIX_FMT_RGB32].x_chroma_shift = 0;
8901+ pix_fmt_info[PIX_FMT_RGB32].y_chroma_shift = 0;
8902+
8903+ pix_fmt_info[PIX_FMT_RGB565].name = g_strdup ("rgb565");
8904+ pix_fmt_info[PIX_FMT_RGB565].nb_channels = 3;
8905+ pix_fmt_info[PIX_FMT_RGB565].color_type = FF_COLOR_RGB;
8906+ pix_fmt_info[PIX_FMT_RGB565].pixel_type = FF_PIXEL_PACKED;
8907+ pix_fmt_info[PIX_FMT_RGB565].depth = 5;
8908+ pix_fmt_info[PIX_FMT_RGB565].x_chroma_shift = 0;
8909+ pix_fmt_info[PIX_FMT_RGB565].y_chroma_shift = 0;
8910+
8911+ pix_fmt_info[PIX_FMT_RGB555].name = g_strdup ("rgb555");
8912+ pix_fmt_info[PIX_FMT_RGB555].nb_channels = 4;
8913+ pix_fmt_info[PIX_FMT_RGB555].is_alpha = 1;
8914+ pix_fmt_info[PIX_FMT_RGB555].color_type = FF_COLOR_RGB;
8915+ pix_fmt_info[PIX_FMT_RGB555].pixel_type = FF_PIXEL_PACKED;
8916+ pix_fmt_info[PIX_FMT_RGB555].depth = 5;
8917+ pix_fmt_info[PIX_FMT_RGB555].x_chroma_shift = 0;
8918+ pix_fmt_info[PIX_FMT_RGB555].y_chroma_shift = 0;
8919+
8920+ /* gray / mono formats */
8921+ pix_fmt_info[PIX_FMT_GRAY8].name = g_strdup ("gray");
8922+ pix_fmt_info[PIX_FMT_GRAY8].nb_channels = 1;
8923+ pix_fmt_info[PIX_FMT_GRAY8].color_type = FF_COLOR_GRAY;
8924+ pix_fmt_info[PIX_FMT_GRAY8].pixel_type = FF_PIXEL_PLANAR;
8925+ pix_fmt_info[PIX_FMT_GRAY8].depth = 8;
8926+
8927+ pix_fmt_info[PIX_FMT_MONOWHITE].name = g_strdup ("monow");
8928+ pix_fmt_info[PIX_FMT_MONOWHITE].nb_channels = 1;
8929+ pix_fmt_info[PIX_FMT_MONOWHITE].color_type = FF_COLOR_GRAY;
8930+ pix_fmt_info[PIX_FMT_MONOWHITE].pixel_type = FF_PIXEL_PLANAR;
8931+ pix_fmt_info[PIX_FMT_MONOWHITE].depth = 1;
8932+
8933+ pix_fmt_info[PIX_FMT_MONOBLACK].name = g_strdup ("monob");
8934+ pix_fmt_info[PIX_FMT_MONOBLACK].nb_channels = 1;
8935+ pix_fmt_info[PIX_FMT_MONOBLACK].color_type = FF_COLOR_GRAY;
8936+ pix_fmt_info[PIX_FMT_MONOBLACK].pixel_type = FF_PIXEL_PLANAR;
8937+ pix_fmt_info[PIX_FMT_MONOBLACK].depth = 1;
8938+
8939+ /* paletted formats */
8940+ pix_fmt_info[PIX_FMT_PAL8].name = g_strdup ("pal8");
8941+ pix_fmt_info[PIX_FMT_PAL8].nb_channels = 4;
8942+ pix_fmt_info[PIX_FMT_PAL8].is_alpha = 1;
8943+ pix_fmt_info[PIX_FMT_PAL8].color_type = FF_COLOR_RGB;
8944+ pix_fmt_info[PIX_FMT_PAL8].pixel_type = FF_PIXEL_PALETTE;
8945+ pix_fmt_info[PIX_FMT_PAL8].depth = 8;
8946+
8947+ pix_fmt_info[PIX_FMT_YUVA420P].name = g_strdup ("yuva420p");
8948+ pix_fmt_info[PIX_FMT_YUVA420P].nb_channels = 4;
8949+ pix_fmt_info[PIX_FMT_YUVA420P].is_alpha = 1;
8950+ pix_fmt_info[PIX_FMT_YUVA420P].color_type = FF_COLOR_YUV;
8951+ pix_fmt_info[PIX_FMT_YUVA420P].pixel_type = FF_PIXEL_PLANAR;
8952+ pix_fmt_info[PIX_FMT_YUVA420P].depth = 8,
8953+ pix_fmt_info[PIX_FMT_YUVA420P].x_chroma_shift = 1,
8954+ pix_fmt_info[PIX_FMT_YUVA420P].y_chroma_shift = 1;
8955+};
8956+
8957+int
8958+gst_ffmpeg_avpicture_get_size (int pix_fmt, int width, int height)
8959+{
8960+ AVPicture dummy_pict;
8961+
8962+ return gst_ffmpeg_avpicture_fill (&dummy_pict, NULL, pix_fmt, width, height);
8963+}
8964+
8965+#define GEN_MASK(x) ((1<<(x))-1)
8966+#define ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) & ~GEN_MASK(x))
8967+#define ROUND_UP_2(x) ROUND_UP_X (x, 1)
8968+#define ROUND_UP_4(x) ROUND_UP_X (x, 2)
8969+#define ROUND_UP_8(x) ROUND_UP_X (x, 3)
8970+#define DIV_ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) >> (x))
8971+
8972+int
8973+gst_ffmpeg_avpicture_fill (AVPicture * picture,
8974+ uint8_t * ptr, enum PixelFormat pix_fmt, int width, int height)
8975+{
8976+ int size, w2, h2, size2;
8977+ int stride, stride2;
8978+ PixFmtInfo *pinfo;
8979+
8980+ pinfo = &pix_fmt_info[pix_fmt];
8981+
8982+ switch (pix_fmt) {
8983+ case PIX_FMT_YUV420P:
8984+ case PIX_FMT_YUV422P:
8985+ case PIX_FMT_YUV444P:
8986+ case PIX_FMT_YUV410P:
8987+ case PIX_FMT_YUV411P:
8988+ case PIX_FMT_YUVJ420P:
8989+ case PIX_FMT_YUVJ422P:
8990+ case PIX_FMT_YUVJ444P:
8991+ stride = ROUND_UP_4 (width);
8992+ h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
8993+ size = stride * h2;
8994+ w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
8995+ stride2 = ROUND_UP_4 (w2);
8996+ h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
8997+ size2 = stride2 * h2;
8998+ picture->data[0] = ptr;
8999+ picture->data[1] = picture->data[0] + size;
9000+ picture->data[2] = picture->data[1] + size2;
9001+ picture->data[3] = NULL;
9002+ picture->linesize[0] = stride;
9003+ picture->linesize[1] = stride2;
9004+ picture->linesize[2] = stride2;
9005+ picture->linesize[3] = 0;
9006+ GST_DEBUG ("planes %d %d %d", 0, size, size + size2);
9007+ GST_DEBUG ("strides %d %d %d", stride, stride2, stride2);
9008+ return size + 2 * size2;
9009+ case PIX_FMT_YUVA420P:
9010+ stride = ROUND_UP_4 (width);
9011+ h2 = ROUND_UP_X (height, pinfo->y_chroma_shift);
9012+ size = stride * h2;
9013+ w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift);
9014+ stride2 = ROUND_UP_4 (w2);
9015+ h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift);
9016+ size2 = stride2 * h2;
9017+ picture->data[0] = ptr;
9018+ picture->data[1] = picture->data[0] + size;
9019+ picture->data[2] = picture->data[1] + size2;
9020+ picture->data[3] = picture->data[2] + size2;
9021+ picture->linesize[0] = stride;
9022+ picture->linesize[1] = stride2;
9023+ picture->linesize[2] = stride2;
9024+ picture->linesize[3] = stride;
9025+ GST_DEBUG ("planes %d %d %d %d", 0, size, size + size2, size + 2 * size2);
9026+ GST_DEBUG ("strides %d %d %d %d", stride, stride2, stride2, stride);
9027+ return 2 * size + 2 * size2;
9028+ case PIX_FMT_RGB24:
9029+ case PIX_FMT_BGR24:
9030+ stride = ROUND_UP_4 (width * 3);
9031+ size = stride * height;
9032+ picture->data[0] = ptr;
9033+ picture->data[1] = NULL;
9034+ picture->data[2] = NULL;
9035+ picture->data[3] = NULL;
9036+ picture->linesize[0] = stride;
9037+ picture->linesize[1] = 0;
9038+ picture->linesize[2] = 0;
9039+ picture->linesize[3] = 0;
9040+ return size;
9041+ /*case PIX_FMT_AYUV4444:
9042+ case PIX_FMT_BGR32:
9043+ case PIX_FMT_BGRA32:
9044+ case PIX_FMT_RGB32: */
9045+ case PIX_FMT_RGB32:
9046+ stride = width * 4;
9047+ size = stride * height;
9048+ picture->data[0] = ptr;
9049+ picture->data[1] = NULL;
9050+ picture->data[2] = NULL;
9051+ picture->data[3] = NULL;
9052+ picture->linesize[0] = stride;
9053+ picture->linesize[1] = 0;
9054+ picture->linesize[2] = 0;
9055+ picture->linesize[3] = 0;
9056+ return size;
9057+ case PIX_FMT_RGB555:
9058+ case PIX_FMT_RGB565:
9059+ case PIX_FMT_YUYV422:
9060+ case PIX_FMT_UYVY422:
9061+ stride = ROUND_UP_4 (width * 2);
9062+ size = stride * height;
9063+ picture->data[0] = ptr;
9064+ picture->data[1] = NULL;
9065+ picture->data[2] = NULL;
9066+ picture->data[3] = NULL;
9067+ picture->linesize[0] = stride;
9068+ picture->linesize[1] = 0;
9069+ picture->linesize[2] = 0;
9070+ picture->linesize[3] = 0;
9071+ return size;
9072+ case PIX_FMT_UYYVYY411:
9073+ /* FIXME, probably not the right stride */
9074+ stride = ROUND_UP_4 (width);
9075+ size = stride * height;
9076+ picture->data[0] = ptr;
9077+ picture->data[1] = NULL;
9078+ picture->data[2] = NULL;
9079+ picture->data[3] = NULL;
9080+ picture->linesize[0] = width + width / 2;
9081+ picture->linesize[1] = 0;
9082+ picture->linesize[2] = 0;
9083+ picture->linesize[3] = 0;
9084+ return size + size / 2;
9085+ case PIX_FMT_GRAY8:
9086+ stride = ROUND_UP_4 (width);
9087+ size = stride * height;
9088+ picture->data[0] = ptr;
9089+ picture->data[1] = NULL;
9090+ picture->data[2] = NULL;
9091+ picture->data[3] = NULL;
9092+ picture->linesize[0] = stride;
9093+ picture->linesize[1] = 0;
9094+ picture->linesize[2] = 0;
9095+ picture->linesize[3] = 0;
9096+ return size;
9097+ case PIX_FMT_MONOWHITE:
9098+ case PIX_FMT_MONOBLACK:
9099+ stride = ROUND_UP_4 ((width + 7) >> 3);
9100+ size = stride * height;
9101+ picture->data[0] = ptr;
9102+ picture->data[1] = NULL;
9103+ picture->data[2] = NULL;
9104+ picture->data[3] = NULL;
9105+ picture->linesize[0] = stride;
9106+ picture->linesize[1] = 0;
9107+ picture->linesize[2] = 0;
9108+ picture->linesize[3] = 0;
9109+ return size;
9110+ case PIX_FMT_PAL8:
9111+ /* already forced to be with stride, so same result as other function */
9112+ stride = ROUND_UP_4 (width);
9113+ size = stride * height;
9114+ picture->data[0] = ptr;
9115+ picture->data[1] = ptr + size; /* palette is stored here as 256 32 bit words */
9116+ picture->data[2] = NULL;
9117+ picture->data[3] = NULL;
9118+ picture->linesize[0] = stride;
9119+ picture->linesize[1] = 4;
9120+ picture->linesize[2] = 0;
9121+ picture->linesize[3] = 0;
9122+ return size + 256 * 4;
9123+ default:
9124+ picture->data[0] = NULL;
9125+ picture->data[1] = NULL;
9126+ picture->data[2] = NULL;
9127+ picture->data[3] = NULL;
9128+ return -1;
9129+ }
9130+
9131+ return 0;
9132+}
9133+
9134+/* Create a GstBuffer of the requested size and caps.
9135+ * The memory will be allocated by ffmpeg, making sure it's properly aligned
9136+ * for any processing. */
9137+
9138+GstBuffer *
9139+new_aligned_buffer (gint size, GstCaps * caps)
9140+{
9141+ GstBuffer *buf;
9142+
9143+ buf = gst_buffer_new ();
9144+ GST_BUFFER_DATA (buf) = GST_BUFFER_MALLOCDATA (buf) = av_malloc (size);
9145+ GST_BUFFER_SIZE (buf) = size;
9146+ GST_BUFFER_FREE_FUNC (buf) = av_free;
9147+ if (caps)
9148+ gst_buffer_set_caps (buf, caps);
9149+
9150+ return buf;
9151+}
9152+
9153+int
9154+gst_ffmpeg_auto_max_threads (void)
9155+{
9156+ static gsize n_threads = 0;
9157+ if (g_once_init_enter (&n_threads)) {
9158+ int n = 1;
9159+#if defined(_WIN32)
9160+ {
9161+ const char *s = getenv ("NUMBER_OF_PROCESSORS");
9162+ if (s) {
9163+ n = atoi (s);
9164+ }
9165+ }
9166+#elif defined(__APPLE__)
9167+ {
9168+ int mib[] = { CTL_HW, HW_NCPU };
9169+ size_t dataSize = sizeof (int);
9170+
9171+ if (sysctl (mib, 2, &n_threads, &dataSize, NULL, 0)) {
9172+ n = 1;
9173+ }
9174+ }
9175+#else
9176+ n = sysconf (_SC_NPROCESSORS_CONF);
9177+#endif
9178+ if (n < 1)
9179+ n = 1;
9180+
9181+ g_once_init_leave (&n_threads, n);
9182+ }
9183+
9184+ return (int) (n_threads);
9185+}
9186diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h
9187--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h 2011-11-02 14:04:05.000000000 +0100
9188+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h 2014-08-08 15:34:04.007874626 +0200
9189@@ -23,6 +23,7 @@
9190 #ifdef HAVE_FFMPEG_UNINSTALLED
9191 #include <avcodec.h>
9192 #else
9193+#include <libavutil/mathematics.h>
9194 #include <libavcodec/avcodec.h>
9195 #endif
9196 #include <gst/gst.h>
9197@@ -87,7 +88,7 @@
9198 gst_ffmpeg_get_codecid_longname (enum CodecID codec_id);
9199
9200 gint
9201-av_smp_format_depth(enum SampleFormat smp_fmt);
9202+av_smp_format_depth(enum AVSampleFormat smp_fmt);
9203
9204 GstBuffer *
9205 new_aligned_buffer (gint size, GstCaps * caps);
9206diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h.orig
9207--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h.orig 1970-01-01 01:00:00.000000000 +0100
9208+++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h.orig 2014-08-08 15:26:38.473858652 +0200
9209@@ -0,0 +1,95 @@
9210+/* GStreamer
9211+ * Copyright (C) <2009> Edward Hervey <bilboed@bilboed.com>
9212+ *
9213+ * This library is free software; you can redistribute it and/or
9214+ * modify it under the terms of the GNU Library General Public
9215+ * License as published by the Free Software Foundation; either
9216+ * version 2 of the License, or (at your option) any later version.
9217+ *
9218+ * This library is distributed in the hope that it will be useful,
9219+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
9220+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9221+ * Library General Public License for more details.
9222+ *
9223+ * You should have received a copy of the GNU Library General Public
9224+ * License along with this library; if not, write to the
9225+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
9226+ * Boston, MA 02111-1307, USA.
9227+ */
9228+
9229+#ifndef __GST_FFMPEG_UTILS_H__
9230+#define __GST_FFMPEG_UTILS_H__
9231+
9232+#ifdef HAVE_FFMPEG_UNINSTALLED
9233+#include <avcodec.h>
9234+#else
9235+#include <libavcodec/avcodec.h>
9236+#endif
9237+#include <gst/gst.h>
9238+
9239+/*
9240+ *Get the size of an picture
9241+ */
9242+int
9243+gst_ffmpeg_avpicture_get_size (int pix_fmt, int width, int height);
9244+
9245+/*
9246+ * Fill in pointers in an AVPicture, aligned by 4 (required by X).
9247+ */
9248+
9249+int
9250+gst_ffmpeg_avpicture_fill (AVPicture * picture,
9251+ uint8_t * ptr,
9252+ enum PixelFormat pix_fmt,
9253+ int width,
9254+ int height);
9255+
9256+/*
9257+ * Convert from/to a GStreamer <-> FFMpeg timestamp.
9258+ */
9259+static inline guint64
9260+gst_ffmpeg_time_ff_to_gst (gint64 pts, AVRational base)
9261+{
9262+ guint64 out;
9263+
9264+ if (pts == AV_NOPTS_VALUE){
9265+ out = GST_CLOCK_TIME_NONE;
9266+ } else {
9267+ AVRational bq = { 1, GST_SECOND };
9268+ out = av_rescale_q (pts, base, bq);
9269+ }
9270+
9271+ return out;
9272+}
9273+
9274+static inline gint64
9275+gst_ffmpeg_time_gst_to_ff (guint64 time, AVRational base)
9276+{
9277+ gint64 out;
9278+
9279+ if (!GST_CLOCK_TIME_IS_VALID (time) || base.num == 0) {
9280+ out = AV_NOPTS_VALUE;
9281+ } else {
9282+ AVRational bq = { 1, GST_SECOND };
9283+ out = av_rescale_q (time, bq, base);
9284+ }
9285+
9286+ return out;
9287+}
9288+
9289+void
9290+gst_ffmpeg_init_pix_fmt_info(void);
9291+
9292+int
9293+gst_ffmpeg_auto_max_threads(void);
9294+
9295+G_CONST_RETURN gchar *
9296+gst_ffmpeg_get_codecid_longname (enum CodecID codec_id);
9297+
9298+gint
9299+av_smp_format_depth(enum AVSampleFormat smp_fmt);
9300+
9301+GstBuffer *
9302+new_aligned_buffer (gint size, GstCaps * caps);
9303+
9304+#endif /* __GST_FFMPEG_UTILS_H__ */
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch
deleted file mode 100644
index eba498803..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
2index 8473069..4f74952 100755
3--- a/gst-libs/ext/libav/configure
4+++ b/gst-libs/ext/libav/configure
5Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080)
6
7Upstream-Status: Backport
8
9Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
10
11@@ -2210,6 +2210,10 @@ elif enabled ppc; then
12 cpuflags="-mcpu=cell"
13 enable ldbrx
14 ;;
15+ e500mc)
16+ cpuflags="-mcpu=e500mc"
17+ disable altivec
18+ ;;
19 e500v2)
20 cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
21 disable altivec
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch
deleted file mode 100644
index d9ea2c29e..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1libav: Add configs for ppc e5500
2
3Upstream-Status: Pending
4
5Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
6
7--- gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:36.073104964 -0400
8+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:38.269104150 -0400
9@@ -2222,6 +2222,10 @@
10 cpuflags="-mcpu=8540 -mhard-float"
11 disable altivec
12 ;;
13+ e5500)
14+ cpuflags="-mcpu=e5500 -mhard-float"
15+ disable altivec
16+ ;;
17 esac
18
19 elif enabled x86; then
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb
deleted file mode 100644
index ca19fd69b..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb
+++ /dev/null
@@ -1,103 +0,0 @@
1SUMMARY = "FFmpeg-based GStreamer plug-in"
2SECTION = "multimedia"
3LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://ext/libpostproc/gstpostproc.c;beginline=1;endline=18;md5=5896e445e41681324381f5869ee33d38 \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://ext/ffmpeg/gstffmpeg.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9 \
8 file://gst-libs/ext/libav/LICENSE;md5=abc3b8cb02856aa7823bbbd162d16232 \
9 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
12 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13LICENSE_FLAGS = "commercial"
14HOMEPAGE = "http://www.gstreamer.net/"
15DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native libpostproc"
16
17inherit autotools-brokensep pkgconfig
18
19SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
20 file://lower-rank.diff \
21 file://configure-fix.patch \
22 file://h264_qpel_mmx.patch \
23 file://libav_e500mc.patch \
24 file://libav_e5500.patch \
25 file://gst-ffmpeg-CVE-2013-3674.patch \
26 file://0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch \
27 file://0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch \
28 file://0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch \
29 file://0001-huffyuvdec-Skip-len-0-cases.patch \
30 file://0001-huffyuvdec-Check-init_vlc-return-codes.patch \
31 file://0001-alsdec-check-block-length.patch \
32 file://0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch \
33 file://0001-atrac3dec-Check-coding-mode-against-channels.patch \
34 file://0001-eamad-fix-out-of-array-accesses.patch \
35 file://0001-mjpegdec-check-SE.patch \
36 file://0001-alac-fix-nb_samples-order-case.patch \
37 file://0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch \
38 file://0001-roqvideodec-check-dimensions-validity.patch \
39 file://0001-aacdec-check-channel-count.patch \
40 file://0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch \
41 file://0001-error_concealment-Check-that-the-picture-is-not-in-a.patch \
42 file://0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch \
43 file://0001-vp3-Copy-all-3-frames-for-thread-updates.patch \
44 file://0001-h264_sei-Fix-infinite-loop.patch \
45 file://0001-avcodec-parser-reset-indexes-on-realloc-failure.patch \
46 file://0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch \
47 file://gst-ffmpeg-CVE-2013-0855.patch \
48 file://0001-qdm2dec-fix-buffer-overflow.patch \
49 file://0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch \
50 file://0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch \
51 file://0001-error-concealment-initialize-block-index.patch \
52 file://0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch \
53 file://0001-lavf-compute-probe-buffer-size-more-reliably.patch \
54 file://0001-ffserver-set-oformat.patch \
55 file://0001-h264-set-parameters-from-SPS-whenever-it-changes.patch \
56 file://0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch \
57 file://0001-avcodec-smc-fix-off-by-1-error.patch \
58 file://0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch \
59 file://libav-9.patch \
60 file://gst-ffmpeg-fix-CVE-2011-4352.patch \
61 file://gst-ffmpeg-fix-CVE-2014-7933.patch \
62 file://gst-ffmpeg-fix-CVE-2014-8542.patch \
63 file://gst-ffmpeg-fix-CVE-2014-8543.patch \
64 file://gst-ffmpeg-fix-CVE-2014-8544.patch \
65 file://gst-ffmpeg-fix-CVE-2014-8545.patch \
66 file://gst-ffmpeg-fix-CVE-2014-8546.patch \
67 file://gst-ffmpeg-fix-CVE-2014-8547.patch \
68 file://gst-ffmpeg-fix-CVE-2014-9318.patch \
69 file://gst-ffmpeg-fix-CVE-2014-9603.patch \
70"
71
72SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
73SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
74
75PR = "r8"
76
77GSTREAMER_DEBUG ?= "--disable-debug"
78
79FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure"
80# pass --cpu for powerpc. get cpu name by stripping "ppc" or "ppc64"
81# from DEFAULTTUNE
82FFMPEG_CPU_powerpc = "--cpu=${@d.getVar('DEFAULTTUNE', False)[3:]}"
83FFMPEG_CPU_powerpc64 = "--cpu=${@d.getVar('DEFAULTTUNE', False)[5:]}"
84FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux ${FFMPEG_CPU} \
85 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
86 --ranlib='${RANLIB}' \
87 ${GSTREAMER_DEBUG}"
88FFMPEG_EXTRA_CONFIGURE_COMMON = \
89'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"'
90
91EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
92
93PACKAGECONFIG ??= "external-libav"
94PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
95PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
96
97FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
98FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
99FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
100FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a"
101
102# http://errors.yoctoproject.org/Errors/Details/40736/
103PNBLACKLIST[gst-ffmpeg] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch b/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch
deleted file mode 100644
index 61b0e6c87..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1Upstream-Status: Backport
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From 3e46d2e501da68d929bb5f26900a292a5fc04a1f Mon Sep 17 00:00:00 2001
5From: Stefan Westerfeld <stefan@space.twc.de>
6Date: Mon, 23 Apr 2012 03:10:22 +0200
7Subject: [PATCH] Fix time display updates (broken by introduction of quiet
8 mode).
9
10---
11 src/gst123.cc | 1 +
12 src/msg.cc | 7 +++++++
13 src/msg.h | 1 +
14 3 files changed, 9 insertions(+)
15
16diff --git a/src/gst123.cc b/src/gst123.cc
17index 20e91e5..ce5876d 100644
18--- a/src/gst123.cc
19+++ b/src/gst123.cc
20@@ -640,6 +640,7 @@ cb_print_position (gpointer *data)
21 else
22 blanks += " ";
23 Msg::print ("%s%s\r", status.c_str(), blanks.c_str());
24+ Msg::flush();
25 }
26
27 /* call me again */
28diff --git a/src/msg.cc b/src/msg.cc
29index 547cd90..33cada2 100644
30--- a/src/msg.cc
31+++ b/src/msg.cc
32@@ -41,6 +41,13 @@ print (const char *format, ...)
33 }
34 }
35
36+void
37+flush()
38+{
39+ if (!Options::the().quiet)
40+ fflush (stdout);
41+}
42+
43 }
44
45 }
46diff --git a/src/msg.h b/src/msg.h
47index e0ced24..5bebac0 100644
48--- a/src/msg.h
49+++ b/src/msg.h
50@@ -27,6 +27,7 @@ namespace Msg
51 {
52
53 void print (const char *format, ...);
54+void flush();
55
56 }
57
58--
591.7.9.5
60
diff --git a/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb b/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb
deleted file mode 100644
index 9fe1bc6b6..000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1SUMMARY = "Flexible CLI player in the spirit of mpg123, based on GStreamer"
2HOMEPAGE = "http://space.twc.de/~stefan/gst123.php"
3LICENSE = "LGPLv2.1+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
5 file://src/gst123.cc;beginline=1;endline=19;md5=05d2f5d54b985b986c26af931d2084f8"
6
7DEPENDS = "libx11 gstreamer gst-plugins-base gtk+ ncurses"
8
9SRC_URI = "http://space.twc.de/~stefan/gst123/${BPN}-${PV}.tar.bz2 \
10 file://display.patch"
11
12SRC_URI[md5sum] = "1e77767c9d6fecee5641f95804f160fe"
13SRC_URI[sha256sum] = "89d1de025eca0466c125dcd6a11b64341bdf98ee4c03c3e5a12321d77cb8b0ce"
14
15inherit autotools
16
17PNBLACKLIST[gst123] ?= "gst123 is still "sometimes" using wrong sysroot - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb
deleted file mode 100644
index 2da29d9cb..000000000
--- a/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb
+++ /dev/null
@@ -1,41 +0,0 @@
1SUMMARY = "A caching, forwarding DNS proxy server"
2DESCRIPTION = "\
3dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \
4nameserver, but can also act as the primary nameserver for a subnet behind \
5a firewall. It also has features such as caching DNS requests, support for \
6DNS servers, cache poisoning prevention, TCP support, etc.."
7HOMEPAGE = "http://dnrd.sourceforge.net/"
8SECTION = "net"
9LICENSE = "GPLv2"
10LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1"
11
12SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
13 file://dnrd.service \
14 file://dnrd.conf.sample \
15 file://dnrd.init"
16SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c"
17SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015"
18
19PNBLACKLIST[dnrd] ?= "BROKEN: dnrd-2.20.3-r0 do_package: QA Issue: dnrd: Files/directories were installed but not shipped in any package: - the recipe will be removed on 2017-09-01 unless the issue is fixed"
20
21SYSTEMD_SERVICE_${PN} = "dnrd.service"
22SYSTEMD_AUTO_ENABLE = "disable"
23
24inherit autotools
25inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
26
27do_install() {
28 oe_runmake install DESTDIR=${D} INSTALL="install -p"
29
30 sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \
31 ${WORKDIR}/dnrd.init
32 install -d -m 0755 ${D}${sysconfdir}/init.d
33 install -d -m 0755 ${D}${sysconfdir}/dnrd
34 install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf
35 install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd
36
37 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
38 install -d -m 0755 ${D}${systemd_unitdir}/system
39 install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system
40 fi
41}
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch
deleted file mode 100644
index 0453b1b49..000000000
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch
+++ /dev/null
@@ -1,224 +0,0 @@
1Taken from
2https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755956
3
4--- ./src/expr_ops.h 2014-06-24 17:07:05.574784704 +0400
5+++ ../libnftnl-1.0.2-my/./src/expr_ops.h 2014-07-25 00:19:28.367694613 +0400
6@@ -28,7 +28,7 @@
7 const void *(*get)(const struct nft_rule_expr *e, uint16_t type, uint32_t *data_len);
8 int (*parse)(struct nft_rule_expr *e, struct nlattr *attr);
9 void (*build)(struct nlmsghdr *nlh, struct nft_rule_expr *e);
10- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e);
11+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e);
12 int (*xml_parse)(struct nft_rule_expr *e, mxml_node_t *tree,
13 struct nft_parse_err *err);
14 int (*json_parse)(struct nft_rule_expr *e, json_t *data,
15--- ./src/rule.c 2014-06-24 17:07:05.574784704 +0400
16+++ ../libnftnl-1.0.2-my/./src/rule.c 2014-07-25 00:19:28.355694880 +0400
17@@ -813,7 +813,7 @@
18 "{\"type\":\"%s\",", expr->ops->name);
19 SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
20
21- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
22+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr);
23 SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
24
25 /*
26--- ./src/expr.c 2014-06-24 17:07:05.574784704 +0400
27+++ ../libnftnl-1.0.2-my/./src/expr.c 2014-07-25 00:19:27.367716863 +0400
28@@ -227,7 +227,7 @@
29 int ret;
30 unsigned int offset = 0, len = size;
31
32- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
33+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr);
34 SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
35
36 return offset;
37--- ./src/expr/exthdr.c 2014-06-25 18:34:08.174284719 +0400
38+++ ../libnftnl-1.0.2-my/./src/expr/exthdr.c 2014-07-25 00:21:48.192583628 +0400
39@@ -362,7 +362,7 @@
40 .get = nft_rule_expr_exthdr_get,
41 .parse = nft_rule_expr_exthdr_parse,
42 .build = nft_rule_expr_exthdr_build,
43- .snprintf = nft_rule_expr_exthdr_snprintf,
44+ .snprintf_ = nft_rule_expr_exthdr_snprintf,
45 .xml_parse = nft_rule_expr_exthdr_xml_parse,
46 .json_parse = nft_rule_expr_exthdr_json_parse,
47 };
48--- ./src/expr/log.c 2014-06-25 18:34:08.178284810 +0400
49+++ ../libnftnl-1.0.2-my/./src/expr/log.c 2014-07-25 00:21:48.160584340 +0400
50@@ -332,7 +332,7 @@
51 .get = nft_rule_expr_log_get,
52 .parse = nft_rule_expr_log_parse,
53 .build = nft_rule_expr_log_build,
54- .snprintf = nft_rule_expr_log_snprintf,
55+ .snprintf_ = nft_rule_expr_log_snprintf,
56 .xml_parse = nft_rule_expr_log_xml_parse,
57 .json_parse = nft_rule_expr_log_json_parse,
58 };
59--- ./src/expr/limit.c 2014-06-25 18:34:08.178284810 +0400
60+++ ../libnftnl-1.0.2-my/./src/expr/limit.c 2014-07-25 00:21:48.108585496 +0400
61@@ -250,7 +250,7 @@
62 .get = nft_rule_expr_limit_get,
63 .parse = nft_rule_expr_limit_parse,
64 .build = nft_rule_expr_limit_build,
65- .snprintf = nft_rule_expr_limit_snprintf,
66+ .snprintf_ = nft_rule_expr_limit_snprintf,
67 .xml_parse = nft_rule_expr_limit_xml_parse,
68 .json_parse = nft_rule_expr_limit_json_parse,
69 };
70--- ./src/expr/cmp.c 2014-06-25 18:34:08.174284719 +0400
71+++ ../libnftnl-1.0.2-my/./src/expr/cmp.c 2014-07-25 00:21:48.172584073 +0400
72@@ -331,7 +331,7 @@
73 .get = nft_rule_expr_cmp_get,
74 .parse = nft_rule_expr_cmp_parse,
75 .build = nft_rule_expr_cmp_build,
76- .snprintf = nft_rule_expr_cmp_snprintf,
77+ .snprintf_ = nft_rule_expr_cmp_snprintf,
78 .xml_parse = nft_rule_expr_cmp_xml_parse,
79 .json_parse = nft_rule_expr_cmp_json_parse,
80 };
81--- ./src/expr/target.c 2014-06-25 18:34:08.182284901 +0400
82+++ ../libnftnl-1.0.2-my/./src/expr/target.c 2014-07-25 00:21:48.184583806 +0400
83@@ -274,7 +274,7 @@
84 .get = nft_rule_expr_target_get,
85 .parse = nft_rule_expr_target_parse,
86 .build = nft_rule_expr_target_build,
87- .snprintf = nft_rule_expr_target_snprintf,
88+ .snprintf_ = nft_rule_expr_target_snprintf,
89 .xml_parse = nft_rule_expr_target_xml_parse,
90 .json_parse = nft_rule_expr_target_json_parse,
91 };
92--- ./src/expr/byteorder.c 2014-06-25 18:34:08.158284356 +0400
93+++ ../libnftnl-1.0.2-my/./src/expr/byteorder.c 2014-07-25 00:21:48.148584607 +0400
94@@ -384,7 +384,7 @@
95 .get = nft_rule_expr_byteorder_get,
96 .parse = nft_rule_expr_byteorder_parse,
97 .build = nft_rule_expr_byteorder_build,
98- .snprintf = nft_rule_expr_byteorder_snprintf,
99+ .snprintf_ = nft_rule_expr_byteorder_snprintf,
100 .xml_parse = nft_rule_expr_byteorder_xml_parse,
101 .json_parse = nft_rule_expr_byteorder_json_parse,
102 };
103--- ./src/expr/lookup.c 2014-06-25 18:34:08.178284810 +0400
104+++ ../libnftnl-1.0.2-my/./src/expr/lookup.c 2014-07-25 00:21:48.136584874 +0400
105@@ -305,7 +305,7 @@
106 .get = nft_rule_expr_lookup_get,
107 .parse = nft_rule_expr_lookup_parse,
108 .build = nft_rule_expr_lookup_build,
109- .snprintf = nft_rule_expr_lookup_snprintf,
110+ .snprintf_ = nft_rule_expr_lookup_snprintf,
111 .xml_parse = nft_rule_expr_lookup_xml_parse,
112 .json_parse = nft_rule_expr_lookup_json_parse,
113 };
114--- ./src/expr/immediate.c 2014-06-25 18:34:08.178284810 +0400
115+++ ../libnftnl-1.0.2-my/./src/expr/immediate.c 2014-07-25 00:21:48.124585141 +0400
116@@ -365,7 +365,7 @@
117 .get = nft_rule_expr_immediate_get,
118 .parse = nft_rule_expr_immediate_parse,
119 .build = nft_rule_expr_immediate_build,
120- .snprintf = nft_rule_expr_immediate_snprintf,
121+ .snprintf_ = nft_rule_expr_immediate_snprintf,
122 .xml_parse = nft_rule_expr_immediate_xml_parse,
123 .json_parse = nft_rule_expr_immediate_json_parse,
124 };
125--- ./src/expr/meta.c 2014-06-25 18:34:08.178284810 +0400
126+++ ../libnftnl-1.0.2-my/./src/expr/meta.c 2014-07-25 00:21:48.040587008 +0400
127@@ -340,7 +340,7 @@
128 .get = nft_rule_expr_meta_get,
129 .parse = nft_rule_expr_meta_parse,
130 .build = nft_rule_expr_meta_build,
131- .snprintf = nft_rule_expr_meta_snprintf,
132+ .snprintf_ = nft_rule_expr_meta_snprintf,
133 .xml_parse = nft_rule_expr_meta_xml_parse,
134 .json_parse = nft_rule_expr_meta_json_parse,
135 };
136--- ./src/expr/queue.c 2014-06-25 18:34:08.182284901 +0400
137+++ ../libnftnl-1.0.2-my/./src/expr/queue.c 2014-07-25 00:21:48.208583272 +0400
138@@ -294,7 +294,7 @@
139 .get = nft_rule_expr_queue_get,
140 .parse = nft_rule_expr_queue_parse,
141 .build = nft_rule_expr_queue_build,
142- .snprintf = nft_rule_expr_queue_snprintf,
143+ .snprintf_ = nft_rule_expr_queue_snprintf,
144 .xml_parse = nft_rule_expr_queue_xml_parse,
145 .json_parse = nft_rule_expr_queue_json_parse,
146 };
147--- ./src/expr/nat.c 2014-06-25 18:34:08.182284901 +0400
148+++ ../libnftnl-1.0.2-my/./src/expr/nat.c 2014-07-25 00:21:48.084586030 +0400
149@@ -430,7 +430,7 @@
150 .get = nft_rule_expr_nat_get,
151 .parse = nft_rule_expr_nat_parse,
152 .build = nft_rule_expr_nat_build,
153- .snprintf = nft_rule_expr_nat_snprintf,
154+ .snprintf_ = nft_rule_expr_nat_snprintf,
155 .xml_parse = nft_rule_expr_nat_xml_parse,
156 .json_parse = nft_rule_expr_nat_json_parse,
157 };
158--- ./src/expr/payload.c 2014-06-25 18:34:08.182284901 +0400
159+++ ../libnftnl-1.0.2-my/./src/expr/payload.c 2014-07-25 00:21:48.200583450 +0400
160@@ -337,7 +337,7 @@
161 .get = nft_rule_expr_payload_get,
162 .parse = nft_rule_expr_payload_parse,
163 .build = nft_rule_expr_payload_build,
164- .snprintf = nft_rule_expr_payload_snprintf,
165+ .snprintf_ = nft_rule_expr_payload_snprintf,
166 .xml_parse = nft_rule_expr_payload_xml_parse,
167 .json_parse = nft_rule_expr_payload_json_parse,
168 };
169--- ./src/expr/reject.c 2014-06-25 18:34:08.182284901 +0400
170+++ ../libnftnl-1.0.2-my/./src/expr/reject.c 2014-07-25 00:21:48.096585762 +0400
171@@ -242,7 +242,7 @@
172 .get = nft_rule_expr_reject_get,
173 .parse = nft_rule_expr_reject_parse,
174 .build = nft_rule_expr_reject_build,
175- .snprintf = nft_rule_expr_reject_snprintf,
176+ .snprintf_ = nft_rule_expr_reject_snprintf,
177 .xml_parse = nft_rule_expr_reject_xml_parse,
178 .json_parse = nft_rule_expr_reject_json_parse,
179 };
180--- ./src/expr/counter.c 2014-06-25 18:34:08.174284719 +0400
181+++ ../libnftnl-1.0.2-my/./src/expr/counter.c 2014-07-25 00:21:48.056586652 +0400
182@@ -236,7 +236,7 @@
183 .get = nft_rule_expr_counter_get,
184 .parse = nft_rule_expr_counter_parse,
185 .build = nft_rule_expr_counter_build,
186- .snprintf = nft_rule_expr_counter_snprintf,
187+ .snprintf_ = nft_rule_expr_counter_snprintf,
188 .xml_parse = nft_rule_expr_counter_xml_parse,
189 .json_parse = nft_rule_expr_counter_json_parse,
190 };
191--- ./src/expr/ct.c 2014-06-25 18:34:08.174284719 +0400
192+++ ../libnftnl-1.0.2-my/./src/expr/ct.c 2014-07-25 00:21:48.068586385 +0400
193@@ -428,7 +428,7 @@
194 .get = nft_rule_expr_ct_get,
195 .parse = nft_rule_expr_ct_parse,
196 .build = nft_rule_expr_ct_build,
197- .snprintf = nft_rule_expr_ct_snprintf,
198+ .snprintf_ = nft_rule_expr_ct_snprintf,
199 .xml_parse = nft_rule_expr_ct_xml_parse,
200 .json_parse = nft_rule_expr_ct_json_parse,
201 };
202--- ./src/expr/bitwise.c 2014-06-25 18:34:08.158284356 +0400
203+++ ../libnftnl-1.0.2-my/./src/expr/bitwise.c 2014-07-25 00:21:49.272559599 +0400
204@@ -403,7 +403,7 @@
205 .get = nft_rule_expr_bitwise_get,
206 .parse = nft_rule_expr_bitwise_parse,
207 .build = nft_rule_expr_bitwise_build,
208- .snprintf = nft_rule_expr_bitwise_snprintf,
209+ .snprintf_ = nft_rule_expr_bitwise_snprintf,
210 .xml_parse = nft_rule_expr_bitwise_xml_parse,
211 .json_parse = nft_rule_expr_bitwise_json_parse,
212 };
213--- ./src/expr/match.c 2014-06-25 18:34:08.178284810 +0400
214+++ ../libnftnl-1.0.2-my/./src/expr/match.c 2014-07-25 00:21:48.032587186 +0400
215@@ -273,7 +273,7 @@
216 .get = nft_rule_expr_match_get,
217 .parse = nft_rule_expr_match_parse,
218 .build = nft_rule_expr_match_build,
219- .snprintf = nft_rule_expr_match_snprintf,
220+ .snprintf_ = nft_rule_expr_match_snprintf,
221 .xml_parse = nft_rule_expr_match_xml_parse,
222 .json_parse = nft_rule_expr_match_json_parse,
223 };
224
diff --git a/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch b/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
deleted file mode 100644
index ea36b1cd9..000000000
--- a/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1Upstream-Status: Pending
2
3From c81bf54d6eb870286662a11d3b4a994717c47696 Mon Sep 17 00:00:00 2001
4From: Armin Kuster <akuster808@gmail.com>
5Date: Tue, 8 Sep 2015 05:36:27 -0700
6Subject: [PATCH] testmmap: fix compile issue with gcc 5.x
7
8this fixes:
9examples/testmmap.c:540:10: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'ssize_t {aka const int}' [-Werror=format=]
10| printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
11| ^
12
13Signed-off-by: Armin Kuster <akuster808@gmail.com>
14---
15 examples/testmmap.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/examples/testmmap.c b/examples/testmmap.c
19index d7f6acc..934489a 100644
20--- a/examples/testmmap.c
21+++ b/examples/testmmap.c
22@@ -537,7 +537,7 @@ do_if()
23 for (i = 0; i < 5; i++)
24 printf("spare1[%d] %u\n", i, nifp->ni_spare1[i]);
25 for (i = 0; i < (nifp->ni_tx_rings + nifp->ni_rx_rings + 2); i++)
26- printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
27+ printf("ring_ofs[%d] %zd\n", i, nifp->ring_ofs[i]);
28 }
29
30 struct netmap_ring *
31--
322.3.5
33
diff --git a/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch b/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
deleted file mode 100644
index b050bf001..000000000
--- a/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1The makefile assumes building locally.
2
3Upstream Status: Inappropriate [Native]
4
5The configure is not auto-make based
6
7Signed-of-by: Armin Kuster <akuster@mvista.com>
8
9Index: LINUX/netmap.mak.in
10===================================================================
11--- a/LINUX/netmap.mak.in
12+++ b/LINUX/netmap.mak.in
13@@ -12,10 +12,9 @@ SRCDIR:=@SRCDIR@
14 # The following commands are needed to build the modules as out-of-tree,
15 # in fact the kernel sources path must be specified.
16
17-PWD ?= $(CURDIR)
18
19 # Additional compile flags (e.g. header location)
20-EXTRA_CFLAGS := -I$(PWD) -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
21+EXTRA_CFLAGS := -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
22 EXTRA_CFLAGS += -Wno-unused-but-set-variable
23 EXTRA_CFLAGS += $(foreach s,$(SUBSYS),-DCONFIG_NETMAP_$(shell echo $s|tr a-z- A-Z_))
24
25Index: LINUX/configure
26===================================================================
27--- a/LINUX/configure
28+++ b/LINUX/configure
29@@ -349,52 +349,6 @@ reset_tests() {
30 EOF
31 }
32
33-# run_tests: run all accumulated tests and exec the pertinent
34-# success/failure actions for each one.
35-run_tests() {
36- local t= # prevent -EOF to eat the make TAB
37- cat > $TMPDIR/Makefile <<-EOF
38- ifneq (\$(KERNELRELEASE),)
39- obj-m := $TESTOBJS
40- else
41- S_DRIVERS := $(drv print)
42- all: \$(S_DRIVERS:%=get-%)
43- $t \$(MAKE) -C $ksrc M=\$\$PWD $kopts
44-
45- -include $TOPDIR/drivers.mak
46- EOF
47- for d in $(drv print); do
48- cat >> $TMPDIR/Makefile <<-EOF
49- get-$d:
50- $t [ -z "\$($d-src)" ] || cp -Rp \$($d-src) \$(if \$($d-dst),\$($d-dst),.)
51- $t touch get-$d
52- EOF
53- done
54- echo endif >> $TMPDIR/Makefile
55- {
56- cat <<-EOF
57-##############################################################################
58-## BEGIN RUNNING TESTS: $(date)
59-##############################################################################
60-## Makefile:
61- EOF
62- cat $TMPDIR/Makefile
63- cat <<-EOF
64-##############################################################################
65- EOF
66- } >> config.log
67- (
68- cd $TMPDIR
69- make -k -j $(grep -c processor /proc/cpuinfo)
70- ) >> config.log
71- eval "$TESTPOSTPROC"
72- cat >> config.log <<-EOF
73-##############################################################################
74-## END RUNNING TESTS: $(date)
75-##############################################################################
76- EOF
77-}
78-
79 configh=netmap_linux_config.h
80 # succes/failure actions are expected to write some macros
81 # in netma_linux_config.h. The following functions can be
82@@ -619,7 +573,6 @@ configuration. Please check 'config.log'
83 reset_tests
84 rm -f drivers.mak
85 add_test true broken_buildsystem < /dev/null
86-run_tests
87
88 drvname2config() {
89 local name=$1
90@@ -1280,7 +1233,6 @@ cat > $configh <<-EOF
91 EOF
92
93 # the TESTPOSTPROC script will add macros to $configh
94-run_tests
95
96 define DRIVER_SUFFIX \"$drvsuffix\"
97
diff --git a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
deleted file mode 100644
index 192ece0e9..000000000
--- a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
+++ /dev/null
@@ -1,92 +0,0 @@
1require netmap.inc
2
3DEPENDS = "virtual/kernel"
4do_configure[depends] += "virtual/kernel:do_shared_workdir"
5
6inherit module
7
8CLEANBROKEN = "1"
9
10export INSTALL_MOD_DIR="kernel/netmap-modules"
11
12EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
13 --kernel-sources=${STAGING_KERNEL_DIR} \
14 --install-mod-path=${D} \
15 --driver-suffix="-netmap" \
16 "
17
18# The driver builds are optional, but for deterministic builds,
19# we should be able to explicitly enable/disable the builds
20# for them in a proper place (maybe in BSP).
21# But we can't use PACKAGECONFIG since there is no option for
22# each driver, and the options are:
23# --no-drivers do not compile any driver
24# --no-drivers= do not compile the given drivers (comma sep.)
25# --drivers= only compile the given drivers (comma sep.)
26#
27# So use NETMAP_DRIVERS and the following python code to add proper
28# configs to EXTRA_OECONF.
29#
30# The default is no-drivers, and all supported drivers are listed
31# in NETMAP_ALL_DRIVERS.
32NETMAP_DRIVERS ??= ""
33NETMAP_ALL_DRIVERS = "ixgbe igb e1000e e1000 veth.c forcedeth.c virtio_net.c r8169.c"
34
35python __anonymous () {
36 drivers_list = d.getVar("NETMAP_DRIVERS").split()
37 all_drivers_list = d.getVar("NETMAP_ALL_DRIVERS").split()
38 config_drivers = "--drivers=" + ",".join(drivers_list)
39
40 extra_oeconf_drivers = bb.utils.contains_any('NETMAP_DRIVERS', all_drivers_list, config_drivers, '--no-drivers', d)
41 d.appendVar("EXTRA_OECONF", extra_oeconf_drivers)
42}
43
44LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}"
45LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}"
46
47do_configure () {
48 cd ${S}/LINUX
49 ./configure ${EXTRA_OECONF}
50}
51
52do_configure_append () {
53 cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
54#define NETMAP_LINUX_HAVE_HRTIMER_MODE_REL
55#define NETMAP_LINUX_HAVE_HRTIMER_FORWARD_NOW
56#define NETMAP_LINUX_HAVE_PHYS_ADDR_T
57#define NETMAP_LINUX_HAVE_ACCESS_ONCE
58#define NETMAP_LINUX_HAVE_NETDEV_OPS
59#define NETMAP_LINUX_HAVE_INIT_NET
60#define NETMAP_LINUX_HAVE_LIVE_ADDR_CHANGE
61#define NETMAP_LINUX_HAVE_TX_SKB_SHARING
62#define NETMAP_LINUX_HAVE_UNLOCKED_IOCTL
63#define NETMAP_LINUX_HAVE_PERNET_OPS_ID
64#define NETMAP_LINUX_VIRTIO_FUNCTIONS
65#define NETMAP_LINUX_VIRTIO_FREE_PAGES
66#define NETMAP_LINUX_VIRTIO_GET_VRSIZE
67#define NETMAP_LINUX_TIMER_RTYPE enum hrtimer_restart
68#define NETMAP_LINUX_VIRTIO_MULTI_QUEUE
69#define NETMAP_LINUX_HAVE_E1000E_EXT_RXDESC
70#define NETMAP_LINUX_HAVE_E1000E_DOWN2
71EOF
72
73if ${@ 'false' if (bb.utils.vercmp_string(d.getVar('KERNEL_VERSION') or "0", '3.17') < 0) else 'true' } ; then
74 echo OK
75 cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
76#define NETMAP_LINUX_ALLOC_NETDEV_4ARGS
77EOF
78fi
79}
80
81do_compile () {
82 cd ${S}/LINUX
83 oe_runmake
84}
85
86do_install () {
87 cd ${S}/LINUX
88 oe_runmake install
89}
90
91# http://errors.yoctoproject.org/Errors/Details/83335/
92PNBLACKLIST[netmap-modules] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-networking/recipes-kernel/netmap/netmap.inc b/meta-networking/recipes-kernel/netmap/netmap.inc
deleted file mode 100644
index ab33e765d..000000000
--- a/meta-networking/recipes-kernel/netmap/netmap.inc
+++ /dev/null
@@ -1,17 +0,0 @@
1SUMMARY = "netmap and VALE - very fast packet I/O from userspace (FreeBSD/Linux)"
2DESCRIPTION= "NETMAP is a framework for very fast packet I/O from userspace. VALE is an equally fast in-kernel software switch using the netmap API. Both are implemented as a single kernel module for FreeBSD and Linux, and can deal with line rate on real or emulated 10 Gbit ports."
3SECTION = "networking"
4HOMEPAGE = "http://code.google.com/p/netmap/"
5LICENSE = "GPLv2+"
6
7LIC_FILES_CHKSUM = "file://README;beginline=13;endline=14;md5=56ae0b9c7ba0476ab9098de94c2714d6"
8
9SRCREV = "da9e19e69b84e4f6f8ae125f8d01b42a4abade6a"
10PV = "master+git${SRCPV}"
11
12SRC_URI = "git://github.com/luigirizzo/netmap.git"
13SRC_URI += "file://makefile_fixup.patch"
14
15S = "${WORKDIR}/git"
16
17COMPATIBLE_HOST = '(x86_64|i.86|mips|arm).*-linux'
diff --git a/meta-networking/recipes-kernel/netmap/netmap_git.bb b/meta-networking/recipes-kernel/netmap/netmap_git.bb
deleted file mode 100644
index 2d8509c74..000000000
--- a/meta-networking/recipes-kernel/netmap/netmap_git.bb
+++ /dev/null
@@ -1,37 +0,0 @@
1require netmap.inc
2
3DEPENDS = "netmap-modules"
4PACKAGE_ARCH = "${MACHINE_ARCH}"
5
6EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
7 --kernel-sources=${STAGING_KERNEL_DIR} \
8 --no-drivers \
9 --disable-generic \
10 --prefix=${prefix} \
11 --destdir=${D} \
12 --cc='${CC}' \
13 --ld='${LD}' \
14 "
15SRC_URI += "file://0001-testmmap-fix-compile-issue-with-gcc-5.x.patch"
16
17do_configure () {
18 cd ${S}/LINUX
19 ./configure ${EXTRA_OECONF}
20}
21
22do_compile () {
23 cd ${S}/LINUX
24 make apps
25}
26
27do_install () {
28 cd ${S}/LINUX
29 make install-apps DESTDIR=${D}
30}
31
32FILES_${PN} += "${bindir}"
33RDEPENDS_${PN} = "kernel-module-netmap"
34RRECOMMENDS_${PN} = "kernel-module-netmap"
35
36# http://errors.yoctoproject.org/Errors/Details/69733/
37PNBLACKLIST[netmap] ?= "BROKEN: Tries to build kernel module and fails, either it should be disabled or there should be dependency on kernel like in netmap-modules - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb b/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb
deleted file mode 100644
index 0a86504c7..000000000
--- a/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb
+++ /dev/null
@@ -1,45 +0,0 @@
1SUMMARY = "ACCEL-PPP is a high performance VPN server application for linux"
2HOMEPAGE = "http://sourceforge.net/apps/trac/accel-ppp/wiki"
3SECTION = "net"
4
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
7
8DEPENDS = "openssl libpcre"
9
10inherit cmake
11
12PR = "r1"
13PV = "1.7.3+git"
14
15SRCREV = "4acfa46c321a344b9a6ce4128e72d1e02828d8a0"
16SRC_URI = "git://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp;branch=1.7"
17
18S = "${WORKDIR}/git"
19
20EXTRA_OECMAKE = " \
21 -DBUILD_DRIVER=FALSE \
22 -DCMAKE_INSTALL_PREFIX=${prefix} \
23 -DCMAKE_BUILD_TYPE=Release \
24 -DLOG_PGSQL=FALSE \
25 -DRADIUS=FALSE \
26 -DNETSNMP=FALSE \
27"
28FILES_${PN}-dbg += "/usr/lib/${BPN}/.debug/*"
29
30PACKAGES =+ "${PN}-libs"
31FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
32INSANE_SKIP_${PN}-libs = "dev-so"
33RDEPENDS_${PN} += "${PN}-libs"
34
35do_install_prepend() {
36 cmlist=`find ${S} -name CMakeLists.txt`
37 for file in $cmlist; do
38 sed -i -e "s:LIBRARY DESTINATION lib/accel-ppp:LIBRARY DESTINATION ${baselib}/accel-ppp:g" \
39 -e "s:\${CMAKE_INSTALL_PREFIX}/lib/accel-ppp:\${CMAKE_INSTALL_PREFIX}/${baselib}/accel-ppp:g" \
40 $cmlist
41 done
42}
43
44# http://errors.yoctoproject.org/Errors/Details/81003/
45PNBLACKLIST[accel-ppp] ?= "BROKEN: fails to build with new binutils-2.27 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch b/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch
deleted file mode 100644
index dae583d85..000000000
--- a/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1example21.cpp: remove deprecated code
2
3The deprecated code was no longer used, so remove it to avoid
4compiling failure with -Werror=unused-function
5...
6| example21.cpp:51:8: error: 'size_t {anonymous}::readData(char*,
7size_t, size_t)' defined but not used [-Werror=unused-function]
8| size_t readData(char *buffer, size_t size, size_t nitems)
9...
10
11Upstream-Status: Pending
12
13Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
14---
15 examples/example21.cpp | 17 -----------------
16 1 file changed, 17 deletions(-)
17
18diff --git a/examples/example21.cpp b/examples/example21.cpp
19--- a/examples/example21.cpp
20+++ b/examples/example21.cpp
21@@ -39,23 +39,6 @@
22 #include <curlpp/Options.hpp>
23 #include <curlpp/Exception.hpp>
24
25-/*
26- anonymous namespace to prevent name clash in case other examples using the same global entities
27- would be compiled in the same project
28-*/
29-namespace
30-{
31-
32-char *data = NULL;
33-
34-size_t readData(char *buffer, size_t size, size_t nitems)
35-{
36- strncpy(buffer, data, size * nitems);
37- return size * nitems;
38-}
39-
40-} // namespace
41-
42 int main(int argc, char *argv[])
43 {
44 if(argc != 3) {
45--
461.9.1
47
diff --git a/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch b/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch
deleted file mode 100644
index 1ce4dda1c..000000000
--- a/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Don't check manpages for xsltproc.
2
3Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
4
5diff -Nurp tevent-0.9.21.orig/lib/talloc/wscript tevent-0.9.21/lib/talloc/wscript
6--- tevent-0.9.21.orig/lib/talloc/wscript 2013-09-08 21:24:14.000000000 +0900
7+++ tevent-0.9.21/lib/talloc/wscript 2015-04-24 16:28:04.085000230 +0900
8@@ -55,7 +55,7 @@ def configure(conf):
9 if conf.env.standalone_talloc:
10 conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1
11
12- conf.CHECK_XSLTPROC_MANPAGES()
13+ conf.find_program('xsltproc', var='XSLTPROC')
14
15 if not conf.env.disable_python:
16 # also disable if we don't have the python libs installed
diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb
deleted file mode 100644
index 0b7e5046b..000000000
--- a/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
1# This package builds the NIS ypbind daemon
2# The source package is utils/net/NIS/ypbind-mt
3#
4require nis.inc
5
6DESCRIPTION = " \
7Multithreaded NIS bind service (ypbind-mt). \
8ypbind-mt is a complete new implementation of a NIS \
9binding daemon for Linux. It has the following \
10features. Supports ypbind protocol V1 and V2. \
11Uses threads for better response. Supports multiple \
12domain bindings. Supports /var/yp/binding/* file \
13for Linux libc 4/5 and glibc 2.x. Supports a list \
14of known secure NIS server (/etc/yp.conf) Binds to \
15the server which answered as first. \
16"
17HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html"
18DEPENDS = "yp-tools ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
19PROVIDES += "ypbind"
20
21PNBLACKLIST[ypbind-mt] ?= "BROKEN: Depends on broken yp-tools - the recipe will be removed on 2017-09-01 unless the issue is fixed"
22
23SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \
24 file://ypbind.init \
25 file://ypbind.service \
26"
27SRC_URI[md5sum] = "54e2040d8266ae7d302d081ca310c8a8"
28SRC_URI[sha256sum] = "dc2f7d97c94dcab0acfdcd115cd8b464eb8c427e4bb0fe68404ae7465f517cd3"
29
30inherit systemd update-rc.d
31
32SYSTEMD_SERVICE_${PN} = "ypbind.service"
33INITSCRIPT_NAME = "ypbind"
34INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ."
35
36CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
37
38EXTRA_OECONF = "PKG_CONFIG_PATH='${STAGING_LIBDIR}/yp-nis/pkgconfig/'"
39
40do_install_append () {
41 install -d ${D}${sysconfdir}/init.d
42 install -d ${D}${sysconfdir}/rcS.d
43
44 install -m 0755 ${WORKDIR}/ypbind.init ${D}${sysconfdir}/init.d/ypbind
45
46 install -d ${D}${systemd_unitdir}/system
47 install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system
48}
49
50
51RPROVIDES_${PN} += "${PN}-systemd"
52RREPLACES_${PN} += "${PN}-systemd"
53RCONFLICTS_${PN} += "${PN}-systemd"
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index 676fa8a7a..000000000
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,75 +0,0 @@
1Upstream-Status: Inappropriate [oe-core specific]
2
3
4fix the below error:
5 ERROR: QA Issue: libhugetlbfs: Files/directories were installed but not shipped
6 /usr/lib64
7 /usr/lib64/libhugetlbfs.so
8 /usr/lib64/libhugetlbfs.a
9 /usr/lib64/libhugetlbfs_privutils.so
10 /usr/lib64/perl5
11 /usr/lib64/perl5/TLBC
12 /usr/lib64/perl5/TLBC/PerfCollect.pm
13 /usr/lib64/perl5/TLBC/Report.pm
14 /usr/lib64/perl5/TLBC/DataCollect.pm
15 /usr/lib64/perl5/TLBC/OpCollect.pm
16$<50>ERROR: QA run found fatal errors. Please consider fixing them.
17
18
19Signed-off-by: Guo Chunrong <B40290@freescale.com>
20
21--- a/Makefile 2013-09-23 02:28:57.340566998 -0500
22+++ b/Makefile 2013-09-23 02:31:05.344569896 -0500
23@@ -33,7 +33,6 @@
24 CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS
25
26 ARCH = $(shell uname -m | sed -e s/i.86/i386/)
27-CC = gcc
28
29 CUSTOM_LDSCRIPTS = yes
30
31@@ -59,9 +58,9 @@
32 CUSTOM_LDSCRIPTS = no
33 else
34 ifeq ($(ARCH),aarch64)
35-CC64 = gcc
36+CC64 = $(CC)
37 ELF64 = aarch64elf
38-TMPLIB64 = lib64
39+TMPLIB64 = lib
40 CUSTOM_LDSCRIPTS = no
41 else
42 ifeq ($(ARCH),i386)
43@@ -72,7 +71,7 @@
44 ifeq ($(ARCH),x86_64)
45 CC64 = $(CC) -m64
46 ELF64 = elf_x86_64
47-TMPLIB64 = lib64
48+TMPLIB64 = lib
49 TMPLIB32 = lib
50 ifneq ($(BUILDTYPE),NATIVEONLY)
51 CC32 = $(CC) -m32
52@@ -172,11 +171,23 @@
53 BINDIR = $(PREFIX)/share/libhugetlbfs
54 EXEDIR = $(PREFIX)/bin
55 DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
56+
57 ifdef CC32
58 PMDIR = $(PREFIX)/lib/perl5/TLBC
59+endif
60+
61+ifdef CC64
62+ifeq ($(ARCH),x86_64)
63+PMDIR = $(PREFIX)/lib/perl5/TLBC
64+else
65+ifeq ($(ARCH),aarch64)
66+PMDIR = $(PREFIX)/lib/perl5/TLBC
67 else
68 PMDIR = $(PREFIX)/lib64/perl5/TLBC
69 endif
70+endif
71+endif
72+
73 MANDIR1 = $(PREFIX)/share/man/man1
74 MANDIR3 = $(PREFIX)/share/man/man3
75 MANDIR7 = $(PREFIX)/share/man/man7
diff --git a/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb b/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb
deleted file mode 100644
index 8113da76d..000000000
--- a/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMERY = "Parallel Memory Bandwidth Measurement / Benchmark"
2DESCRIPTION = "\
3The tool pmbw is a set of assembler routines to measure the parallel memory \
4(cache and RAM) bandwidth of modern multi-core machines."
5HOMEPAGE = "http://panthema.net/2013/pmbw/"
6SECTION = "benchmark/tests"
7AUTHOR = "Timo Bingmann"
8LICENSE = "GPLv3"
9LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
10
11SRC_URI = "git://github.com/bingmann/pmbw;protocol=https"
12
13PV = "0.6.2+git${SRCPV}"
14SRCREV = "4a3b37728060a8aba06fc83f157a1965088d79d6"
15
16S = "${WORKDIR}/git"
17
18inherit autotools
19
20# the hand coded asm uses r11, which therefore cannot be used for storing
21# the frame pointer when debugging on arm
22SELECTED_OPTIMIZATION_remove_arm = "-fno-omit-frame-pointer"
23
24PACKAGES =+ "${PN}-stats2gnuplot"
25
26FILES_${PN}-stats2gnuplot = "${bindir}/stats2gnuplot"
27
28RRECOMMENDS_${PN} = "${PN}-stats2gnuplot"
29
30PNBLACKLIST[pmbw] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130568/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch b/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
deleted file mode 100644
index 0c77f1a20..000000000
--- a/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
1Upstream-Status: Pending [package obsolete/not maintained by upstream]
2
3Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4diff -Nurd bluez-hcidump-2.5/configure.ac bluez-hcidump-2.5/configure.ac
5--- bluez-hcidump-2.5/configure.ac 2012-11-30 10:29:41.000000000 +0200
6+++ bluez-hcidump-2.5/configure.ac 2013-01-12 10:02:10.609511463 +0200
7@@ -2,7 +2,7 @@
8 AC_INIT(bluez-hcidump, 2.5)
9
10 AM_INIT_AUTOMAKE([foreign subdir-objects])
11-AM_CONFIG_HEADER(config.h)
12+AC_CONFIG_HEADERS(config.h)
13
14 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/meta-oe/recipes-connectivity/bluez/bluez4.inc b/meta-oe/recipes-connectivity/bluez/bluez4.inc
deleted file mode 100644
index 5240ccfd8..000000000
--- a/meta-oe/recipes-connectivity/bluez/bluez4.inc
+++ /dev/null
@@ -1,47 +0,0 @@
1SUMMARY = "Linux Bluetooth Stack Userland V4"
2DESCRIPTION = "Linux Bluetooth stack V4 userland components. These include a system configurations, daemons, tools and system libraries."
3HOMEPAGE = "http://www.bluez.org"
4SECTION = "libs"
5LICENSE = "GPLv2+ & LGPLv2.1+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
7 file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \
8 file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e \
9 file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191"
10
11RPROVIDES_${PN} += "${PN}-systemd"
12RREPLACES_${PN} += "${PN}-systemd"
13RCONFLICTS_${PN} += "${PN}-systemd"
14
15DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck readline libsndfile1"
16RDEPENDS_${PN}-dev = "bluez-hcidump"
17
18PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pie systemd', d)}"
19PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
20PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,"
21PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
22
23ASNEEDED = ""
24
25SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.gz"
26S = "${WORKDIR}/bluez-${PV}"
27
28inherit autotools-brokensep pkgconfig systemd
29
30EXTRA_OECONF = "\
31 --disable-gstreamer \
32 --enable-usb \
33 --enable-tools \
34 --enable-bccmd \
35 --enable-hid2hci \
36 --enable-dfutool \
37 --disable-hidd \
38 --disable-pand \
39 --disable-dund \
40 --disable-cups \
41 --enable-test \
42 --enable-datafiles \
43 --with-udevdir=`pkg-config --variable=udevdir udev` \
44 --with-udevrulesdir=`pkg-config --variable=udevdir udev`/rules.d \
45"
46
47EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb b/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
deleted file mode 100644
index b6098d84a..000000000
--- a/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
+++ /dev/null
@@ -1,36 +0,0 @@
1SUMMARY = "Cellphone tools and driver software"
2SECTION = "console/network"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
5
6SRC_URI = "http://www.gnokii.org/download/gnokii/gnokii-${PV}.tar.bz2"
7
8DEPENDS = "glib-2.0 intltool-native"
9X11DEPENDS = " libxpm gtk+"
10
11PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
12PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
13PACKAGECONFIG[libical] = "--enable-libical,--disable-libical,libical"
14PACKAGECONFIG[pcsc-lite] = "--enable-libpcsclite,--disable-libpcsclite,pcsc-lite"
15PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
16PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
17PACKAGECONFIG[x11] = ",--without-x,${X11DEPENDS}"
18
19inherit autotools pkgconfig
20
21PACKAGES += "libgnokii libgnokii-dev"
22
23EXTRA_OECONF = "--disable-smsd"
24
25FILES_${PN} = "${bindir} ${sbindir}"
26FILES_libgnokii-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \
27 ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
28 /lib/*.a /lib/*.o ${datadir}/aclocal \
29"
30FILES_${PN}-dev = ""
31FILES_libgnokii = "${libdir}/libgnokii.so.*"
32
33SRC_URI[md5sum] = "d9627f4a1152d3ea7806df4532850d5f"
34SRC_URI[sha256sum] = "8f5a083b05c1a66a3402ca5cd80084e14c2c0632c991bb53b03c78e9adb02501"
35
36PNBLACKLIST[gnokii] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130662/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch b/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
deleted file mode 100644
index bf1ffdfc6..000000000
--- a/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1---
2 configure.ac | 1 +
3 1 file changed, 1 insertion(+)
4
5--- git.orig/configure.ac
6+++ git/configure.ac
7@@ -7,5 +7,6 @@ AC_PROG_CC
8 AC_CONFIG_HEADERS([config.h])
9 AC_CONFIG_FILES([Makefile lib/Makefile tools/Makefile])
10 PKG_CHECK_MODULES([FTDI], [libftdi >= 0.13])
11 AC_OUTPUT
12 AM_PROG_CC_C_O
13+AM_PROG_AR
diff --git a/meta-oe/recipes-connectivity/soft66/soft66_git.bb b/meta-oe/recipes-connectivity/soft66/soft66_git.bb
deleted file mode 100644
index 816f58350..000000000
--- a/meta-oe/recipes-connectivity/soft66/soft66_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "Library and tools for Soft66ADD and related SDR radio receivers"
2LICENSE = "GPLv3 & LGPLv3+"
3LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
4 file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 "
5
6PNBLACKLIST[soft66] ?= "BROKEN: depends on broken libftdi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
7
8DEPENDS = "libftdi"
9
10PV = "0.1.3+gitr${SRCPV}"
11PR = "r1"
12
13SRCREV = "a1dab25e73896c90c98227ac8055f227b830d512"
14SRC_URI = "git://home.horsten.com/soft66 \
15file://fix-ar.patch"
16
17S = "${WORKDIR}/git"
18
19inherit autotools pkgconfig
20
diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch b/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
deleted file mode 100644
index a7737fbf0..000000000
--- a/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1Fix double reference to this file to work with recent autoconf+automake
2
3RP 1/2/10
4
5Upstream-Status: Inappropriate [configuration]
6
7Index: libtelepathy-0.3.3/src/Makefile.am
8===================================================================
9--- libtelepathy-0.3.3.orig/src/Makefile.am 2010-02-01 13:13:50.869038984 +0000
10+++ libtelepathy-0.3.3/src/Makefile.am 2010-02-01 13:14:23.267789456 +0000
11@@ -27,7 +27,6 @@
12 tp-chan-type-text-gen.h \
13 tp-chan-type-tubes-gen.h \
14 tp-conn-iface-aliasing-gen.h \
15- tp-conn-iface-avatars-gen.h \
16 tp-conn-iface-capabilities-gen.h \
17 tp-conn-iface-contact-info-gen.h \
18 tp-conn-iface-forwarding-gen.h \
diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch b/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
deleted file mode 100644
index 37679ab76..000000000
--- a/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: libtelepathy-0.3.1/configure.ac
4===================================================================
5--- libtelepathy-0.3.1.orig/configure.ac 2007-11-22 19:05:56.000000000 +0000
6+++ libtelepathy-0.3.1/configure.ac 2008-01-04 12:07:28.000000000 +0000
7@@ -51,7 +51,7 @@
8 AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])
9 fi
10
11-AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python])
12+AC_CHECK_PROGS([PYTHON], [python2.5 python2.4 python2.3 python])
13 if test -z "$PYTHON"; then
14 AC_MSG_ERROR([Python is required to compile this package])
15 fi
diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb b/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
deleted file mode 100644
index 783bd5d73..000000000
--- a/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1SUMMARY = "Telepathy framework"
2DESCRIPTION = "Telepathy is a D-Bus framework for unifying real time \
3communication, including instant messaging, voice calls and video calls. It \
4abstracts differences between protocols to provide a unified interface for \
5applications."
6HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
7DEPENDS = "glib-2.0 dbus dbus-glib telepathy-glib libxslt-native"
8LICENSE = "LGPLv2.1+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
10 file://src/tp-conn.c;beginline=1;endline=19;md5=4c58069f77d601cc59200bce5396c7cb"
11PR = "r5"
12
13SRC_URI = "http://telepathy.freedesktop.org/releases/libtelepathy/libtelepathy-${PV}.tar.gz \
14 file://prefer_python_2.5.patch \
15 file://doublefix.patch \
16"
17
18SRC_URI[md5sum] = "490ca1a0c614d4466394b72d43bf7370"
19SRC_URI[sha256sum] = "e0d230be855125163579743418203c6f6be2f10f98c4f065735c1dc9ed115878"
20
21inherit autotools pkgconfig pythonnative
22
23FILES_${PN} += "${datadir}/telepathy \
24 ${datadir}/dbus-1"
25
26PNBLACKLIST[libtelepathy] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130609/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch b/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
deleted file mode 100644
index ece1da6bc..000000000
--- a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1From: Robert Yang <liezhi.yang@windriver.com>
2Date: Sun, 22 Sep 2013 23:21:01 -0400
3Subject: [PATCH] src/Makefile.am: fix race issue for _gen/gtypes.h and _gen/gtypes-body.h
4
5There might be an error when parallel build:
6
7[snip]
8Traceback (most recent call last):
9 File "/path/to/tools/glib-gtypes-generator.py", line 304, in <module>
10 GTypesGenerator(dom, argv[1], argv[2])()
11 File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__
12 file_set_contents(self.output + '.h', ''.join(self.header))
13 File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents
14 os.rename(filename + '.tmp', filename)
15OSError: [Errno 2] No such file or directory
16[snip]
17
18This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may
19write(remove/rename) _gen/gtypes.tmp at the same time, then there would
20be the error.
21
22There was a similar bug in telepathy-glib which was already fixed, we use the
23similar patch to fix it.
24
25Upstream-Status: Pending
26
27Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
28---
29 src/Makefile.am | 18 +++++++++++++++---
30 1 file changed, 15 insertions(+), 3 deletions(-)
31
32diff --git a/src/Makefile.am b/src/Makefile.am
33--- a/src/Makefile.am
34+++ b/src/Makefile.am
35@@ -288,7 +288,11 @@ _gen/interfaces-body.h: _gen/mcd.xml \
36 $(tools_dir)/glib-interfaces-body-generator.xsl \
37 $< > $@
38
39-_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \
40+# do nothing, output as a side-effect
41+_gen/gtypes.h: _gen/gtypes-body.h
42+ @:
43+
44+_gen/gtypes-body.h: _gen/mcd.xml \
45 $(top_srcdir)/tools/glib-gtypes-generator.py
46 $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \
47 $< _gen/gtypes mc
48@@ -309,7 +313,11 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am
49 $(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \
50 $< > $@
51
52-_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
53+# do nothing, output as a side-effect
54+_gen/cli-%.h: _gen/cli-%-body.h
55+ @:
56+
57+_gen/cli-%-body.h: _gen/%.xml \
58 $(tools_dir)/glib-client-gen.py Makefile.am
59 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \
60 --group=`echo $* | tr x- x_` \
61@@ -317,7 +325,11 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
62 --tp-proxy-api=0.7.6 \
63 $< Mc_Cli _gen/cli-$*
64
65-_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \
66+# do nothing, output as a side-effect
67+_gen/svc-%.h: _gen/svc-%.c
68+ @:
69+
70+_gen/svc-%.c: _gen/%.xml \
71 $(tools_dir)/glib-ginterface-gen.py Makefile.am
72 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
73 --filename=_gen/svc-$* \
74--
751.7.10.4
76
diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
deleted file mode 100644
index 6a4d5d006..000000000
--- a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
1SUMMARY = "Central control for Telepathy IM connection managers"
2HOMEPAGE = "http://telepathy.freedesktop.org/wiki/Mission_Control/"
3LICENSE = "LGPLv2.1+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
5 file://src/request.h;beginline=1;endline=21;md5=f80534d9af1c33291b3b79609f196eb2"
6SECTION = "libs"
7DEPENDS = "libtelepathy dbus-glib gconf libxslt-native"
8
9SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/${BP}.tar.gz \
10 file://tmc-Makefile-fix-race.patch \
11 "
12SRC_URI[md5sum] = "421115a35b9e427807326877f86e7f43"
13SRC_URI[sha256sum] = "14ceb7d53535b43d44b8271ad11319d1d0fe6d193d154636b9e62b42799b9723"
14
15inherit autotools-brokensep pkgconfig pythonnative
16
17PACKAGECONFIG ??= ""
18PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,upower"
19
20# to select connman or nm you need to use "connectivity" and "connman" or "nm", default is to disable both
21PACKAGECONFIG[connectivity] = ",--with-connectivity=no"
22PACKAGECONFIG[connman] = "--with-connectivity=connman,,connman"
23PACKAGECONFIG[nm] = "--with-connectivity=nm,,networkmanager"
24
25PACKAGES =+ " \
26 libmissioncontrol \
27 libmissioncontrol-config \
28 libmissioncontrol-server \
29 libmissioncontrol-dev \
30 libmissioncontrol-config-dev \
31 libmissioncontrol-server-dev \
32 libmissioncontrol-dbg \
33 libmissioncontrol-config-dbg \
34 libmissioncontrol-server-dbg \
35"
36
37FILES_${PN} += "${datadir}/dbus* ${datadir}/glib-2.0/schemas"
38
39FILES_libmissioncontrol = "${libdir}/libmissioncontrol.so.*"
40FILES_libmissioncontrol-config = "${libdir}/libmissioncontrol-config.so.*"
41FILES_libmissioncontrol-server = "${libdir}/libmissioncontrol-server.so.*"
42
43FILES_libmissioncontrol-dev = "${libdir}/libmissioncontrol.* \
44 ${includedir}/libmissioncontrol/ \
45 ${libdir}/pkgconfig/libmissioncontrol.pc"
46FILES_libmissioncontrol-config-dev = "${libdir}/libmissioncontrol-config.*"
47FILES_libmissioncontrol-server-dev = "${libdir}/libmissioncontrol-server.*"
48
49FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*"
50FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*"
51FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*"
52
53PNBLACKLIST[telepathy-mission-control] ?= "Depends on blacklisted libtelepathy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
deleted file mode 100644
index 43096d2bc..000000000
--- a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
+++ /dev/null
@@ -1,292 +0,0 @@
1Upstream-Status: Inappropriate
2
3This patch lets you build Ice with OpenEmbedded. I doubt you could do
4a regular build after applying this patch.
5
6From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001
7From: Tom Rondeau <tom@trondeau.com>
8Date: Wed, 16 Apr 2014 14:34:51 -0400
9Subject: [PATCH] Modify Makefiles for cross compile
10
11---
12 config/Make.common.rules | 20 +++++++------
13 cpp/Makefile | 9 +++---
14 cpp/config/Make.rules | 32 ++++++++++++--------
15 cpp/config/Make.rules.Linux | 18 ++---------
16 cpp/src/IceStorm/FreezeDB/Makefile | 2 +-
17 py/config/Make.rules | 58 +++++++++++++++++++-----------------
18 6 files changed, 70 insertions(+), 69 deletions(-)
19
20diff --git a/config/Make.common.rules b/config/Make.common.rules
21index d7b1d59..a3fb17e 100644
22--- a/config/Make.common.rules
23+++ b/config/Make.common.rules
24@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux)
25 #
26 # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
27 #
28- ifeq ($(shell test -d /usr/lib64 && echo 0),0)
29- lp64suffix = 64
30- endif
31+ #ifeq ($(shell test -d /usr/lib64 && echo 0),0)
32+ # lp64suffix = 64
33+ #endif
34 ifeq ($(LP64),)
35 LP64 = yes
36 endif
37@@ -244,12 +244,13 @@ else
38 slicedir = $(ice_dir)/slice
39 endif
40
41-ifeq ($(prefix), /usr)
42- install_slicedir = /usr/share/Ice-$(VERSION)/slice
43-else
44- install_slicedir = $(prefix)/slice
45-endif
46+#ifeq ($(prefix), /usr)
47+# install_slicedir = /usr/share/Ice-$(VERSION)/slice
48+#else
49+# install_slicedir = $(prefix)/slice
50+#endif
51
52+install_slicedir = $(prefix)/slice
53 #
54 # Set environment variables for the Slice translator.
55 #
56@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr)
57 endif
58
59 ifeq ($(UNAME),Linux)
60- export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
61+ #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
62+ export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH)
63 endif
64
65 ifeq ($(UNAME),SunOS)
66diff --git a/cpp/Makefile b/cpp/Makefile
67index a68f113..1f44f57 100644
68--- a/cpp/Makefile
69+++ b/cpp/Makefile
70@@ -11,11 +11,12 @@ top_srcdir = .
71
72 include $(top_srcdir)/config/Make.rules
73
74-SUBDIRS = config src include test
75+#SUBDIRS = config src include test
76+SUBDIRS = config src include
77
78-ifeq ($(shell uname | grep MINGW),)
79-SUBDIRS := $(SUBDIRS) demo
80-endif
81+#ifeq ($(shell uname | grep MINGW),)
82+#SUBDIRS := $(SUBDIRS) demo
83+#endif
84
85 INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) \
86 $(install_configdir) $(install_mandir)
87diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
88index 37461ae..197c5e8 100644
89--- a/cpp/config/Make.rules
90+++ b/cpp/config/Make.rules
91@@ -175,11 +175,12 @@ headerdir = $(top_srcdir)/include
92 # includedir is not handled the same as bindir and libdir
93 # because it is used in the .depend files
94 #
95-ifdef ice_src_dist
96- includedir = $(top_srcdir)/include
97-else
98- includedir = $(ice_dir)/include
99-endif
100+#ifdef ice_src_dist
101+# includedir = $(top_srcdir)/include
102+#else
103+# includedir = $(ice_dir)/include
104+#endif
105+includedir = $(top_srcdir)/include
106
107 #
108 # Platform specific definitions
109@@ -277,14 +278,17 @@ ICECPPFLAGS = -I$(slicedir)
110 SLICE2CPPFLAGS = $(ICECPPFLAGS)
111
112 ifeq ($(ice_dir), /usr)
113- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS)
114+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS)
115 else
116 CPPFLAGS += -I$(includedir)
117- ifdef ice_src_dist
118- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
119- else
120- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
121- endif
122+# We must always build using the libraries in the source tree, the host's are obviously
123+# not what we want for the target
124+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir))
125+# ifdef ice_src_dist
126+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
127+# else
128+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
129+# endif
130 endif
131
132 ifeq ($(FLEX_NOLINE),yes)
133@@ -313,8 +317,10 @@ endif
134
135 ifdef ice_src_dist
136 SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION))
137- SLICE2CPP = $(bindir)/slice2cpp
138- SLICE2FREEZE = $(bindir)/slice2freeze
139+# SLICE2CPP = $(bindir)/slice2cpp
140+# SLICE2FREEZE = $(bindir)/slice2freeze
141+ SLICE2CPP = $(ICE_HOME)/bin/slice2cpp
142+ SLICE2FREEZE = $(ICE_HOME)/bin/slice2freeze
143 else
144 SLICEPARSERLIB = $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION))
145 SLICE2CPP = $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp
146diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
147index 5d5717c..8363c6e 100644
148--- a/cpp/config/Make.rules.Linux
149+++ b/cpp/config/Make.rules.Linux
150@@ -31,7 +31,7 @@ ifeq ($(CXX),c++)
151 CXX = g++
152 endif
153
154-ifeq ($(CXX),g++)
155+#ifeq ($(CXX),g++)
156
157 ifneq ($(SUSE_i586),)
158 CXXARCHFLAGS += -march=i586
159@@ -71,14 +71,6 @@ ifeq ($(CXX),g++)
160 CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
161 endif
162
163- ifeq ($(MACHINE),x86_64)
164- ifeq ($(LP64),yes)
165- CXXARCHFLAGS += -m64
166- else
167- CXXARCHFLAGS += -m32
168- endif
169- endif
170-
171 CXXFLAGS = $(CXXARCHFLAGS) -Wall -Werror -pthread
172
173 ifneq ($(GENPIC),no)
174@@ -102,15 +94,11 @@ ifeq ($(CXX),g++)
175
176 rpathlink = -Wl,-rpath-link,$(1)
177
178- ifneq ($(embedded_runpath_prefix),)
179- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
180- else
181- LDPLATFORMFLAGS = -Wl,--enable-new-dtags
182- endif
183+ LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib
184
185 LDPLATFORMFLAGS += -rdynamic
186
187-endif
188+#endif
189
190 ifeq ($(CXX),icpc)
191 $(warning ===================================================================)
192diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile
193index 7c844b7..cf15cb1 100644
194--- a/cpp/src/IceStorm/FreezeDB/Makefile
195+++ b/cpp/src/IceStorm/FreezeDB/Makefile
196@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
197
198 $(MIGRATE): $(MOBJS)
199 rm -f $@
200- $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS)
201+ $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx
202
203 # The slice2freeze rules are structured like this to avoid issues with
204 # parallel make.
205diff --git a/py/config/Make.rules b/py/config/Make.rules
206index 43ce01b..1349342 100644
207--- a/py/config/Make.rules
208+++ b/py/config/Make.rules
209@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
210 include $(top_srcdir)/config/Make.rules.$(UNAME)
211 else
212 include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
213-endif
214+endif
215
216 libdir = $(top_srcdir)/python
217-ifneq ($(prefix), /usr)
218-install_pythondir = $(prefix)/python
219-install_libdir = $(prefix)/python
220-else
221- ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
222- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
223- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
224- else
225- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
226- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
227- endif
228-endif
229+#ifneq ($(prefix), /usr)
230+#install_pythondir = $(prefix)/python
231+#install_libdir = $(prefix)/python
232+#else
233+# ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
234+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
235+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
236+# else
237+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
238+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
239+# endif
240+#endif
241+install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
242+install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
243
244 ifeq ($(UNAME),SunOS)
245 ifeq ($(LP64),yes)
246@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS)
247 endif
248 endif
249
250-ifdef ice_src_dist
251- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
252- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
253- else
254- ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
255- endif
256- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
257- ICE_FLAGS = -I$(ice_cpp_dir)/include
258-endif
259-ifdef ice_bin_dist
260- ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
261- ICE_FLAGS = -I$(ice_dir)/include
262-endif
263+#ifdef ice_src_dist
264+# ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
265+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
266+# else
267+# ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
268+# endif
269+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
270+# ICE_FLAGS = -I$(ice_cpp_dir)/include
271+#endif
272+#ifdef ice_bin_dist
273+# ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
274+# ICE_FLAGS = -I$(ice_dir)/include
275+#endif
276+ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib
277+ICE_FLAGS = -I$(ice_cpp_dir)/include
278 ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
279
280 ifneq ($(embedded_runpath_prefix),)
281@@ -137,7 +141,7 @@ endif
282 CPPFLAGS =
283 ICECPPFLAGS = -I$(slicedir)
284 SLICE2PYFLAGS = $(ICECPPFLAGS)
285-LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
286+LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
287
288 ifdef ice_src_dist
289 ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
290--
2911.7.9.5
292
diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
deleted file mode 100644
index 7c833b0eb..000000000
--- a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
+++ /dev/null
@@ -1,87 +0,0 @@
1DESCRIPTION = "The Internet Communications Engine"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515"
4DEPENDS = "bzip2 expat openssl python db mcpp"
5DEPENDS_prepend_class-target = "zeroc-ice-native "
6
7SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \
8 file://0002-Modify-Makefile-for-cross-compile.patch \
9 "
10SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80"
11SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392"
12
13#| MapDb.cpp: In constructor 'Freeze::MapDb::MapDb(const ConnectionIPtr&, const string&, const string&, const string&, const KeyCompareBasePtr&, const std::vector<IceUtil::Handle<Freeze::MapIndexBase> >&, bool)':
14#| MapDb.cpp:138:46: error: call of overloaded 'set_bt_compare(int (*)(DB*, const DBT*, const DBT*))' is ambiguous
15#| MapDb.cpp:138:46: note: candidates are:
16#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: virtual int Db::set_bt_compare(bt_compare_fcn_type) <near match>
17#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'bt_compare_fcn_type {aka int (*)(__db*, const __db_dbt*, const __db_dbt*, long unsigned int*)}'
18#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: virtual int Db::set_bt_compare(int (*)(Db*, const Dbt*, const Dbt*, size_t*)) <near match>
19#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'int (*)(Db*, const Dbt*, const Dbt*, size_t*) {aka int (*)(Db*, const Dbt*, const Dbt*, long unsigned int*)}'
20#| make[3]: *** [MapDb.o] Error 1
21PNBLACKLIST[zeroc-ice] ?= "BROKEN: not compatible with default db version - the recipe will be removed on 2017-09-01 unless the issue is fixed"
22
23S = "${WORKDIR}/Ice-${PV}"
24
25inherit python-dir pkgconfig
26
27export PYTHON_VERSION = "python2.7"
28
29do_configure() {
30 :
31}
32
33do_compile_prepend_class-target () {
34 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
35 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
36 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
37}
38
39do_compile_prepend_class-nativesdk () {
40 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
41 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
42 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
43}
44
45do_compile_prepend_class-native () {
46 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
47 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
48 export ICE_HOME="${S}/cpp"
49}
50
51do_compile() {
52 oe_runmake -C ${S} cpp
53 oe_runmake -C ${S} py
54}
55
56do_install_prepend_class-target () {
57 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
58 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
59 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
60}
61
62do_install_prepend_class-nativesdk () {
63 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
64 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
65 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
66}
67
68do_install_prepend_class-native () {
69 export ICE_HOME="${S}/cpp"
70}
71
72do_install() {
73 oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common
74 oe_runmake -C ${S}/py prefix=${D}${prefix} install
75}
76
77PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg"
78
79FILES_${PN}-doc += "${prefix}/man/man1"
80FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES"
81FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config"
82FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so"
83FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py"
84FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
85FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*"
86
87BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb b/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
deleted file mode 100644
index 9d50ea44a..000000000
--- a/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1require fakeroot_${PV}.bb
2
3S = "${WORKDIR}/fakeroot-${PV}"
4
5inherit native
6
7EXTRA_OECONF = "--program-prefix="
8
9# Compatability for the rare systems not using or having SYSV
10python () {
11 if d.getVar('HOST_NONSYSV') and d.getVar('HOST_NONSYSV') != '0':
12 d.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ')
13}
14
15RDEPENDS_${PN} = "util-linux-native"
diff --git a/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb b/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
deleted file mode 100644
index 0a787e3ea..000000000
--- a/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "Gives a fake root environment"
2HOMEPAGE = "http://fakeroot.alioth.debian.org"
3SECTION = "base"
4LICENSE = "GPLv3"
5LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
6
7SRC_URI = "\
8 ${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.orig.tar.bz2 \
9"
10
11inherit autotools
12
13do_configure_prepend() {
14 mkdir -p ${S}/build-aux
15}
16
17do_install_append() {
18 install -d ${D}${includedir}/fakeroot
19 install -m 644 *.h ${D}${includedir}/fakeroot
20}
21
22# fakeroot needs getopt which is provided by the util-linux package
23RDEPENDS_${PN} = "util-linux"
24
25
26SRC_URI[md5sum] = "706171d8d520b1ca1576ac73f2ceb4f3"
27SRC_URI[sha256sum] = "0a359efa3e9496c33234b3e9c89306a09bb4da9d33de43c261f1d8447e6ebea2"
28
29# http://errors.yoctoproject.org/Errors/Details/35143/
30PNBLACKLIST[fakeroot] ?= "BROKEN: QA Issue: -dev package contains non-symlink .so - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb b/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
deleted file mode 100644
index 697f9bfa5..000000000
--- a/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
+++ /dev/null
@@ -1,49 +0,0 @@
1SUMMARY = "A set of useful command line tools"
2SUMMARY_${PN}-debug = "A set of command line tools useful for debugging"
3SECTION = "console"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
6PV = "1.0"
7PR = "r21"
8
9inherit packagegroup allarch
10
11PACKAGES += "${PN}-debug"
12
13RDEPENDS_${PN} = "\
14 dbus-daemon-proxy \
15 dosfstools \
16 htop \
17 iptables \
18 lsof \
19 mbuffer \
20 mtd-utils \
21 nano \
22 nfs-utils-client \
23 nmon \
24 powertop \
25 screen \
26 socat \
27 sysstat \
28"
29
30RDEPENDS_${PN}-debug = "\
31 evtest \
32 devmem2 \
33 i2c-tools \
34 gdb \
35 procps \
36 pxaregs \
37 s3c24xx-gpio \
38 s3c64xx-gpio \
39 serial-forward \
40 strace \
41"
42
43RRECOMMENDS_${PN}-debug = "\
44 ltrace \
45"
46
47PNBLACKLIST[packagegroup-cli-tools] ?= "Runtime depends on blacklisted dbus-daemon-proxy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
48
49PNBLACKLIST[packagegroup-cli-tools] ?= "Runtime depends on blacklisted packagegroup-cli-tools - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch b/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
deleted file mode 100644
index 0df232d25..000000000
--- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Index: proxy-libintl-20080418-r6/src/proxy-libintl/Makefile
2===================================================================
3--- proxy-libintl-20080418-r6.orig/src/proxy-libintl/Makefile 2010-07-25 08:40:22.893620001 -0700
4+++ proxy-libintl-20080418-r6/src/proxy-libintl/Makefile 2010-07-25 10:51:29.573620000 -0700
5@@ -6,16 +6,13 @@ CFLAGS = -Wall -I ../../include
6
7 all : ../../lib/libintl.so ../../lib/intl.lib
8
9-../../lib/libintl.so : libintl.o
10- $(CC) -shared -o $@ libintl.o
11+../../lib/libintl.so : libintl.c
12+ $(CC) $(CFLAGS) -shared -Wl,-soname -Wl,libintl.so -o $@ $<
13
14 ../../lib/intl.lib : ../../lib/libintl.so
15 cp ../../lib/libintl.so $@
16 $(STRIP) --strip-unneeded $@
17
18-libintl.o : libintl.c
19- $(CC) $(CFLAGS) -c libintl.c
20-
21 clean :
22 rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE)
23
diff --git a/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch b/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
deleted file mode 100644
index b32311a82..000000000
--- a/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From ac1953d04f3f26d6aa5d8f53a9397d3ba0e96fa3 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@circuitco.com>
3Date: Fri, 11 May 2012 15:23:02 +0000
4Subject: [PATCH] ide: use 'node' as interpreter for sketches instead of
5 argv[0]
6
7This enables running scripts with node 0.6.x instead of 0.4.x
8
9Signed-off-by: root <root@beaglebone.(none)>
10---
11 server/cloud9/ide.js | 2 +-
12 1 files changed, 1 insertions(+), 1 deletions(-)
13
14diff --git a/server/cloud9/ide.js b/server/cloud9/ide.js
15index ce782f5..6c4e0f7 100644
16--- a/server/cloud9/ide.js
17+++ b/server/cloud9/ide.js
18@@ -53,7 +53,7 @@ var Ide = module.exports = function(options, httpServer, exts, socket) {
19 };
20
21 this.$users = {};
22- this.nodeCmd = process.argv[0];
23+ this.nodeCmd = "node";
24
25 var davOptions = {
26 node: this.options.mountDir,
27--
281.7.7
29
diff --git a/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb b/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
deleted file mode 100644
index c6d78905d..000000000
--- a/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
+++ /dev/null
@@ -1,118 +0,0 @@
1SUMMARY = "Meet Cloud9, development-as-a-service for Javascripters and other developers"
2HOMEPAGE = "http://c9.io"
3LICENSE = "GPLv3"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=4784c3bcff601fd8f9515f52a11e7018"
5
6PR = "r5"
7
8# Nodejs-native for node-waf, nodejs4-native for the headers
9DEPENDS = "libxml2 nodejs-native nodejs4-native"
10
11PNBLACKLIST[cloud9] ?= "Not comatible with current nodejs 0.12, but upstream is working on it for v3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
12inherit systemd
13
14SRC_URI = "git://github.com/ajaxorg/cloud9.git;name=cloud9ide \
15 git://github.com/ajaxorg/o3;destsuffix=o3;name=o3 \
16 git://github.com/ajaxorg/ace.git;destsuffix=git/support/ace;name=ace \
17 git://github.com/ajaxorg/ace.wiki.git;destsuffix=git/support/ace/doc/wiki;name=acewiki \
18 git://github.com/ajaxorg/apf.git;destsuffix=git/support/apf;name=apf \
19 git://github.com/ajaxorg/async.js.git;destsuffix=git/support/asyncjs;name=asyncjs \
20 git://github.com/ajaxorg/connect.git;destsuffix=git/support/connect;name=connect;branch=ajaxorg \
21 git://github.com/jashkenas/coffee-script.git;destsuffix=git/support/connect/support/coffee-script;name=coffee-script \
22 git://github.com/visionmedia/expresso.git;destsuffix=git/support/connect/support/expresso;name=expresso \
23 git://github.com/visionmedia/node-jscoverage.git;destsuffix=git/support/connect/support/expresso/deps/jscoverage;name=jscoverage \
24 git://github.com/cloudhead/less.js.git;destsuffix=git/support/connect/support/less;name=less \
25 git://github.com/matehat/sass.js.git;destsuffix=git/support/connect/support/sass;name=sass \
26 git://github.com/ajaxorg/jsDAV.git;destsuffix=git/support/jsdav;name=jsdav \
27 git://github.com/fjakobs/async.js.git;destsuffix=git/support/jsdav/support/async.js;name=async-js \
28 git://github.com/felixge/node-formidable.git;destsuffix=git/support/jsdav/support/formidable;name=formidable \
29 git://github.com/ajaxorg/jsftp.git;destsuffix=git/support/jsdav/support/jsftp;name=jsftp \
30 git://github.com/Gozala/streamer.git;destsuffix=git/support/jsdav/support/jsftp/support/streamer;name=streamer \
31 git://github.com/ajaxorg/node-sftp.git;destsuffix=git/support/jsdav/support/node-sftp;name=sftp \
32 git://github.com/ajaxorg/lib-v8debug.git;destsuffix=git/support/lib-v8debug;name=lib-v8debug \
33 git://github.com/ajaxorg/socket.io.git;destsuffix=git/support/socket.io;name=socketio;branch=cadorn-upstream \
34 git://github.com/LearnBoost/socket.io-client.git;destsuffix=git/support/socket.io-client;name=socketio-client \
35 git://github.com/ajaxorg/treehugger.git;destsuffix=git/support/treehugger;name=treehugger \
36 git://github.com/ajaxorg/UglifyJS.git;destsuffix=git/support/uglify-js;name=uglify-js \
37 file://index.js \
38 file://cloud9-avahi.service \
39 file://cloud9.service \
40 file://0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch \
41"
42
43SRCREV_cloud9ide = "c4e2574896a22bb749f0500b25f41c888d346bed"
44SRCREV_o3 = "d66d4e3252e505f44ada6804c8cab39915ce8afd"
45SRCREV_ace = "0fc5392cbe46fb134052c3065a238ad8e3b31cfd"
46SRCREV_acewiki = "d2a65d0addc2e5ab922bbff9cb6022a4652b4f13"
47SRCREV_apf = "2560b762b2b0e5a8b46f8a4062f927a9a9d239f4"
48SRCREV_asyncjs = "d36ead408e2959b1e99572114ef3a1b6a48c1072"
49SRCREV_connect = "6bec95b51f2286b942bc7f340d62d816bcdc13d4"
50SRCREV_coffee-script = "a53c104db16d3ac9d13cf9f16834edec250b9749"
51SRCREV_expresso = "7f10ab7fa655299b4e2f519065b0495e6ac34ef2"
52SRCREV_jscoverage = "0d4608a6b4275b020ba665389aa75897d5d4a584"
53SRCREV_less = "a2807288008587b95c6c2f8ba5cac16f1bcab98f"
54SRCREV_sass = "4dfd4c699e7a8baf226215ab044854c4507f4420"
55SRCREV_jsdav = "f04ebf3d012cc8aeabfcfb2b8fab8966d52929e9"
56SRCREV_async-js = "92fb710a70efd3cdc2376ebfba71a7fb3a4f1651"
57SRCREV_formidable = "a37292d4b7d6d76a38909ed670334c9068d40871"
58SRCREV_jsftp = "e3f10c8927347c170cdd0150ef38e18272acf942"
59SRCREV_streamer = "1a7f75d4065819171ac91a09974199b932dbe17d"
60SRCREV_sftp = "a0539345134970d7535a19cb2608e3d1bc119d71"
61SRCREV_lib-v8debug = "7c11897f4bc77c7275c2b6dff5becc72ac018662"
62SRCREV_socketio = "735d5239b325df2ba67d2b9bb4ec32442283bc06"
63SRCREV_socketio-client = "4375ef1344ecb8ad75a3848a00af6b391822f86b"
64SRCREV_treehugger = "436d0d6dd0ce43782e6be08ad12c356730626996"
65SRCREV_uglify-js = "941c845c4a01e4e47a158458fe846eb36d0828ad"
66
67SRCREV_FORMAT = "cloud9ide"
68
69S = "${WORKDIR}/git"
70
71do_configure () {
72 cd ${WORKDIR}/o3
73 node-waf -vv configure
74}
75
76EXTRA_CXXFLAGS = "-Idefault/include -I../include -Idefault/hosts -I../hosts -Idefault/modules -I../modules -Idefault/deps -I../deps -I${STAGING_DIR_NATIVE}/usr/include/node4 -fPIC -DPIC"
77
78do_compile () {
79 cd ${WORKDIR}/o3
80 node4 tools/gluegen.js
81 cd hosts
82 ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node.o node-o3/sh_node.cc
83 ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node_libs.o node-o3/sh_node_libs.cc
84 cd ..
85 ${CXX} ${TARGET_LDFLAGS} hosts/sh_node.o hosts/sh_node_libs.o -o o3.node -shared -Wl,-Bdynamic -lxml2
86}
87
88do_install () {
89 install -m 0755 -d ${D}${datadir}/cloud9 ${D}${bindir} ${D}/var/lib/cloud9
90 rsync -r --exclude=".*" ${S}/* ${D}${datadir}/cloud9
91
92 touch ${D}${bindir}/cloud9
93 echo "#!/bin/sh" > ${D}${bindir}/cloud9
94 echo "node4 ${datadir}/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000" >> ${D}${bindir}/cloud9
95 chmod 0755 ${D}${bindir}/cloud9
96
97 install -m 0755 -d ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml
98 install -m 0644 ${WORKDIR}/index.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/index.js
99 install -m 0644 ${WORKDIR}/o3/modules/o3.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.js
100 install -m 0755 ${WORKDIR}/o3/o3.node ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.node
101
102 install -m 0755 -d ${D}${sysconfdir}/avahi/services/
103 install -m 0644 ${WORKDIR}/cloud9-avahi.service ${D}${sysconfdir}/avahi/services/
104
105 install -d ${D}${systemd_unitdir}/system
106 install -m 0644 ${WORKDIR}/cloud9.service ${D}${systemd_unitdir}/system
107}
108
109FILES_${PN}-dbg += "${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/.debug \
110 ${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/.debug \
111"
112
113RDEPENDS_${PN} = "nodejs4 nodejs gzip"
114
115RPROVIDES_${PN} += "${PN}-systemd"
116RREPLACES_${PN} += "${PN}-systemd"
117RCONFLICTS_${PN} += "${PN}-systemd"
118SYSTEMD_SERVICE_${PN} = "cloud9.service"
diff --git a/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch b/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
deleted file mode 100644
index ccb9a02da..000000000
--- a/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 4cf7e16fe9b773e2e7763d4b773854eefe2aa9ab Mon Sep 17 00:00:00 2001
2From: Otavio Salvador <otavio@ossystems.com.br>
3Date: Tue, 12 Jan 2016 09:59:55 -0200
4Subject: [PATCH] Stop using relative path for scsilib.c link
5Organization: O.S. Systems Software LTDA.
6
7Upstream-Status: Pending
8
9Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
10---
11 Makefile.linux | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/Makefile.linux b/Makefile.linux
15index 78333ff..e210564 100644
16--- a/Makefile.linux
17+++ b/Makefile.linux
18@@ -129,7 +129,7 @@ scsilib.c:
19 echo "Please specify OS={aix,linux,hpux,solaris,windows}"; \
20 exit 1; \
21 fi; \
22- ln -sf ../scsilib-$(OS).c scsilib.c
23+ ln -sf scsilib-$(OS).c scsilib.c
24
25 print:;
26 @$(PRINTER) $(PRINTFLAGS) $(ALL_CFILES)
27--
282.1.4
29
diff --git a/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch b/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
deleted file mode 100644
index 0c00fdf41..000000000
--- a/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
+++ /dev/null
@@ -1,92 +0,0 @@
1From e3c6eb8776f659eb9e6eeccf90d785eff18ecf74 Mon Sep 17 00:00:00 2001
2From: Otavio Salvador <otavio@ossystems.com.br>
3Date: Mon, 15 Feb 2016 18:00:05 -0200
4Subject: [PATCH] Use 'tcsh' shell
5Organization: O.S. Systems Software LTDA.
6
7Upstream-Status: Pending
8
9Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
10---
11 Scripts/dta | 2 +-
12 Scripts/dtc | 2 +-
13 Scripts/dtf | 2 +-
14 Scripts/dtr | 2 +-
15 Scripts/dts | 2 +-
16 Scripts/dtt | 2 +-
17 Scripts/dtw | 2 +-
18 7 files changed, 7 insertions(+), 7 deletions(-)
19
20diff --git a/Scripts/dta b/Scripts/dta
21index ebc7072..4f90247 100755
22--- a/Scripts/dta
23+++ b/Scripts/dta
24@@ -1,4 +1,4 @@
25-#!/bin/csh
26+#!/bin/tcsh
27 #
28 # Script file to test asynchronous communication lines.
29 #
30diff --git a/Scripts/dtc b/Scripts/dtc
31index da69c2e..89d48c2 100755
32--- a/Scripts/dtc
33+++ b/Scripts/dtc
34@@ -1,4 +1,4 @@
35-#!/bin/csh
36+#!/bin/tcsh
37 # %Z%%M% %I% %E%
38 #
39 # Date: August 7, 1990
40diff --git a/Scripts/dtf b/Scripts/dtf
41index 9f8cd87..321d261 100755
42--- a/Scripts/dtf
43+++ b/Scripts/dtf
44@@ -1,4 +1,4 @@
45-#! /bin/csh
46+#! /bin/tcsh
47 #
48 # Script file to gather floppy disk performance data.
49 #
50diff --git a/Scripts/dtr b/Scripts/dtr
51index ddb7947..1ff5a0b 100755
52--- a/Scripts/dtr
53+++ b/Scripts/dtr
54@@ -1,4 +1,4 @@
55-#!/bin/csh
56+#!/bin/tcsh
57 # %Z%%M% %I% %E%
58 #
59 # Date: August 21, 1990
60diff --git a/Scripts/dts b/Scripts/dts
61index 6b8a167..42d2312 100755
62--- a/Scripts/dts
63+++ b/Scripts/dts
64@@ -1,4 +1,4 @@
65-#!/bin/csh
66+#!/bin/tcsh
67 # %Z%%M% %I% %E%
68 #
69 # Date: August 7, 1990
70diff --git a/Scripts/dtt b/Scripts/dtt
71index 36cc6bd..df19d2f 100755
72--- a/Scripts/dtt
73+++ b/Scripts/dtt
74@@ -1,4 +1,4 @@
75-#! /bin/csh
76+#! /bin/tcsh
77 # %Z%%M% %I% %E%
78 #
79 # Date: August 7, 1990
80diff --git a/Scripts/dtw b/Scripts/dtw
81index 8a4ac39..c58e304 100755
82--- a/Scripts/dtw
83+++ b/Scripts/dtw
84@@ -1,4 +1,4 @@
85-#!/bin/csh
86+#!/bin/tcsh
87 # %Z%%M% %I% %E%
88 #
89 # Date: August 21, 1990
90--
912.1.4
92
diff --git a/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch b/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
deleted file mode 100644
index 87016edf0..000000000
--- a/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
2
3Upstream-Status: Pending
4
5Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6
7diff -rupN dt.v18.32.old/common.h dt.v18.32/common.h
8--- dt.v18.32.old/common.h 2013-03-01 23:52:30.000000000 +0100
9+++ dt.v18.32/common.h 2014-09-24 17:41:40.777604710 +0200
10@@ -127,7 +127,7 @@ typedef volatile slarge_t v_slarge;
11
12 #endif /* defined(_WIN64) */
13
14-#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE)
15+#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined (_DEFAULT_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE)
16
17 #define QuadIsLongLong
18 typedef unsigned long long int large_t;
diff --git a/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch b/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
deleted file mode 100644
index b6780c196..000000000
--- a/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
2
3Upstream-Status: Pending
4
5Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6
7diff -rupN dt.v18.32.old/dt.c dt.v18.32/dt.c
8--- dt.v18.32.old/dt.c 2014-08-18 14:45:53.242351115 +0200
9+++ dt.v18.32/dt.c 2014-08-18 15:11:36.367719880 +0200
10@@ -4378,7 +4378,7 @@ report_error(
11 (void)sprintf(dip->di_msg_buffer, "(%d): '%s', errno = %d - %s\n",
12 dip->di_process_id, error_info, errno, emsg);
13 }
14- syslog(LOG_ERR, dip->di_msg_buffer);
15+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
16 }
17 #endif /* defined(SYSLOG) */
18
19diff -rupN dt.v18.32.old/dtutil.c dt.v18.32/dtutil.c
20--- dt.v18.32.old/dtutil.c 2014-08-18 14:45:53.354350779 +0200
21+++ dt.v18.32/dtutil.c 2014-08-18 15:13:53.835307311 +0200
22@@ -5180,7 +5180,7 @@ ReportDeviceInfo (
23 bp += Sprintf(bp,
24 "(%d) Device name: %s\n",
25 dip->di_process_id, dip->di_dname);
26- syslog(LOG_ERR, dip->di_msg_buffer);
27+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
28 bp = dip->di_msg_buffer;
29 # if defined(SCSI)
30 if (dip->di_serial_number) {
31@@ -5193,7 +5193,7 @@ ReportDeviceInfo (
32 dip->di_process_id, dip->di_device_id);
33 }
34 # endif /* defined(SCSI) */
35- syslog(LOG_ERR, dip->di_msg_buffer);
36+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
37 bp = dip->di_msg_buffer;
38 bp += Sprintf(bp,
39 "(%d) Relative block number where the error occurred is " LUF ","
40@@ -5203,7 +5203,7 @@ ReportDeviceInfo (
41 } else {
42 bp += Sprintf(bp, "\n");
43 }
44- syslog(LOG_ERR, dip->di_msg_buffer);
45+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
46 }
47 #endif /* defined(SYSLOG) */
48
diff --git a/meta-oe/recipes-devtools/dt/dt_18.32.bb b/meta-oe/recipes-devtools/dt/dt_18.32.bb
deleted file mode 100644
index 0234f765a..000000000
--- a/meta-oe/recipes-devtools/dt/dt_18.32.bb
+++ /dev/null
@@ -1,49 +0,0 @@
1SUMMARY = "Generic data test program"
2DESCRIPTION = "The Data Test Program (dt) is a generic data test program used to verify proper \
3operation of peripherals, file systems, device drivers, or any data stream supported by the \
4operating system."
5HOMEPAGE = "http://www.scsifaq.org/RMiller_Tools/dt.html"
6
7SECTION = "console/tests"
8
9LICENSE = "MIT"
10LIC_FILES_CHKSUM = "file://LICENSE;md5=be8bb25bbcfaa0725710d188e5152668"
11
12# Source URI taken from Fedora RPM spec file at:
13# http://pkgs.fedoraproject.org/git/rpms/dt.git
14SRC_URI = "http://dl.dropboxusercontent.com/u/32363629/Datatest/dt-source-v${PV}.tar.gz \
15 file://dt-default-source-define.patch \
16 file://dt-wformat-security.patch \
17 file://Stop-using-relative-path-for-scsilib.c-link.patch \
18 file://Use-tcsh-shell.patch \
19"
20
21SRC_URI[md5sum] = "3054aeaaba047a1dbe90c2132a382ee2"
22SRC_URI[sha256sum] = "10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6"
23
24S = "${WORKDIR}/dt.v${PV}"
25
26TARGET_CC_ARCH += "${LDFLAGS}"
27
28EXTRA_OEMAKE += "-f Makefile.linux \
29 OS=linux \
30 CFLAGS="-I.. -DAIO -DFIFO -DMMAP -D__linux__ -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DTHREADS -DSCSI""
31
32do_compile() {
33 oe_runmake
34}
35
36do_install() {
37 install -Dm755 dt ${D}${sbindir}/dt
38 install -Dm644 Documentation/dt.man ${D}${mandir}/man8/dt.8
39
40 install -d ${D}${datadir}/dt/
41 install -d ${D}${docdir}/dt/html/
42 install -m755 Scripts/dt? ${D}${datadir}/dt/
43 install -m644 data/pattern_* ${D}${datadir}/dt/
44 install -m644 html/* ${D}${docdir}/dt/html/
45}
46
47RDEPENDS_${PN} += "tcsh"
48
49PNBLACKLIST[dt] ?= "Rdepends on blacklisted tcsh - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch b/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
deleted file mode 100644
index 3e4aa7308..000000000
--- a/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 5bda9c0af56869c6ff2c25d38ea087179c946bc6 Mon Sep 17 00:00:00 2001
2From: Chong Lu <Chong.Lu@windriver.com>
3Date: Tue, 11 Mar 2014 14:47:22 +0800
4Subject: [PATCH] ltp: Don't link against libfl
5
6We have already defined yywrap function in scan.l file. After this, we no longer need to
7link against libfl and so no longer get errors about undefined references to yylex.
8
9Upstream-status: Pending
10
11Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
12---
13 pan/Makefile | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/pan/Makefile b/pan/Makefile
17index 4cc6466..a4b575b 100644
18--- a/pan/Makefile
19+++ b/pan/Makefile
20@@ -31,7 +31,7 @@ CPPFLAGS += -Wno-error
21
22 CPPFLAGS += -I$(abs_srcdir)
23
24-LDLIBS += -lm $(LEXLIB)
25+LDLIBS += -lm
26
27 LFLAGS += -l
28
29--
301.7.9.5
31
diff --git a/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb b/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
deleted file mode 100644
index b13bd7bcc..000000000
--- a/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
+++ /dev/null
@@ -1,97 +0,0 @@
1SUMMARY = "Embedded Linux Device Driver Tests based on Linux Test Project"
2HOMEPAGE = "http://arago-project.org/git/projects/test-automation/ltp-ddt.git"
3SECTION = "console/utils"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
6
7PROVIDES += "ltp"
8DEPENDS += "zip-native virtual/kernel alsa-lib"
9
10RDEPENDS_${PN} += "pm-qa serialcheck"
11
12inherit autotools module-base kernel-module-split
13
14PACKAGE_ARCH = "${MACHINE_ARCH}"
15
16SRCREV = "f086bed6cc88bf102eaad0e96cb7ebe79944a8ad"
17BRANCH ?= "master"
18
19SRC_URI = "git://arago-project.org/git/projects/test-automation/ltp-ddt.git;branch=${BRANCH} \
20 file://ltp-Do-not-link-against-libfl.patch \
21"
22
23S = "${WORKDIR}/git"
24
25LTPROOT = "/opt/ltp"
26
27EXTRA_OEMAKE_append = " \
28 prefix=${LTPROOT} \
29 CROSS_COMPILE=${HOST_PREFIX} \
30 SKIP_IDCHECK=1 \
31 KERNEL_PATH=${STAGING_KERNEL_DIR} \
32 KERNEL_INC=${STAGING_KERNEL_DIR} \
33 KERNEL_USR_INC=${STAGING_INCDIR} \
34 ALSA_INCPATH=${STAGING_INCDIR} \
35 ALSA_LIBPATH=${STAGING_LIBDIR} \
36 PLATFORM=${MACHINE} \
37 RANLIB=${RANLIB} \
38 DESTDIR=${D} \
39 CC='${CC}' \
40 KERNEL_CC='${KERNEL_CC}' \
41"
42
43TARGET_CC_ARCH += "${LDFLAGS}"
44
45FILES_${PN}-dbg += " \
46 ${LTPROOT}/.debug \
47 ${LTPROOT}/bin/.debug \
48 ${LTPROOT}/runtest/.debug \
49 ${LTPROOT}/testcases/bin/.debug \
50 ${LTPROOT}/testcases/bin/*/bin/.debug \
51 ${LTPROOT}/testcases/bin/*/test/.debug \
52 ${LTPROOT}/testcases/bin/ddt/.debug \
53 ${LTPROOT}/testcases/bin/ddt/*/bin/.debug \
54 ${LTPROOT}/testcases/bin/ddt/*/test/.debug \
55 ${LTPROOT}/testcases/realtime/*/*/.debug \
56"
57
58FILES_${PN}-staticdev += "${LTPROOT}/lib"
59FILES_${PN} += "${LTPROOT}/*"
60
61KERNEL_MODULES_META_PACKAGE = "${PN}"
62
63kmoddir = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/ddt"
64
65# ltp doesn't regenerate ffsb-6.0-rc2 configure and hardcode configure call.
66# we explicitly force regeneration of that directory and pass configure options.
67do_configure_append() {
68 (cd utils/ffsb-6.0-rc2; autoreconf -fvi; ./configure ${CONFIGUREOPTS})
69}
70
71# The makefiles make excessive use of make -C and several include testcases.mk
72# which triggers a build of the syscall header. To reproduce, build ltp,
73# then delete the header, then "make -j XX" and watch regen.sh run multiple
74# times. Its easier to generate this once here instead.
75do_compile_prepend () {
76 ( make -C ${B}/testcases/kernel include/linux_syscall_numbers.h )
77}
78
79do_compile_append () {
80 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
81 oe_runmake modules
82}
83
84do_install() {
85 oe_runmake install
86 install -d ${D}${datadir}
87 install -d ${D}${kmoddir}
88 mv ${D}${LTPROOT}/testcases/bin/ddt/*.ko ${D}${kmoddir}
89}
90
91# do_make_scripts should be a separate task for the lock to work
92addtask make_scripts before do_compile
93do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
94do_make_scripts[deptask] = "do_populate_sysroot"
95
96# http://errors.yoctoproject.org/Errors/Details/56327/
97PNBLACKLIST[ltp-ddt] ?= "BROKEN: fails since last autotools.bbclass changes - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch b/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
deleted file mode 100644
index ecf8e7493..000000000
--- a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
+++ /dev/null
@@ -1,166 +0,0 @@
1From 869e52a9055c72970fed036a1510f676e6ce0824 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 13 Jun 2013 01:24:19 -0700
4Subject: [PATCH] Don't call deprecated glib functions and use the new gthread
5 API.
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9Upstream-Status: Inappropriate[version Unmaintained Upstream]
10---
11 client/pk-console.c | 3 ++-
12 client/pk-generate-pack.c | 3 ++-
13 client/pk-monitor.c | 3 ++-
14 contrib/command-not-found/PackageKit.sh | 2 +-
15 contrib/command-not-found/pk-command-not-found.c | 4 ++--
16 contrib/debuginfo-install/pk-debuginfo-install.c | 4 ++--
17 src/pk-backend.c | 7 +++++++
18 src/pk-main.c | 4 ++--
19 10 files changed, 20 insertions(+), 10 deletions(-)
20
21diff --git a/client/pk-console.c b/client/pk-console.c
22index de927e1..2435f27 100644
23--- a/client/pk-console.c
24+++ b/client/pk-console.c
25@@ -1264,11 +1264,12 @@ main (int argc, char *argv[])
26 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
27 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
28 textdomain (GETTEXT_PACKAGE);
29-
30+#if !GLIB_CHECK_VERSION(2,32,0)
31 if (! g_thread_supported ())
32 g_thread_init (NULL);
33 g_type_init ();
34 dbus_g_thread_init ();
35+#endif
36
37 /* do stuff on ctrl-c */
38 signal (SIGINT, pk_console_sigint_cb);
39diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
40index 0b2b40f..20d7e8d 100644
41--- a/client/pk-generate-pack.c
42+++ b/client/pk-generate-pack.c
43@@ -251,12 +251,13 @@ main (int argc, char *argv[])
44 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
45 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
46 textdomain (GETTEXT_PACKAGE);
47-
48+#if !GLIB_CHECK_VERSION(2,32,0)
49 if (! g_thread_supported ())
50 g_thread_init (NULL);
51
52 g_type_init ();
53 dbus_g_thread_init ();
54+#endif
55
56 /* do stuff on ctrl-c */
57 signal (SIGINT, pk_generate_pack_sigint_cb);
58diff --git a/client/pk-monitor.c b/client/pk-monitor.c
59index f230f7a..d43007f 100644
60--- a/client/pk-monitor.c
61+++ b/client/pk-monitor.c
62@@ -285,11 +285,12 @@ main (int argc, char *argv[])
63 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
64 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
65 textdomain (GETTEXT_PACKAGE);
66-
67+#if !GLIB_CHECK_VERSION(2,32,0)
68 if (! g_thread_supported ())
69 g_thread_init (NULL);
70 g_type_init ();
71 dbus_g_thread_init ();
72+#endif
73
74 context = g_option_context_new (NULL);
75 /* TRANSLATORS: this is a program that monitors PackageKit */
76diff --git a/contrib/command-not-found/PackageKit.sh b/contrib/command-not-found/PackageKit.sh
77index d08989c..d708fff 100644
78--- a/contrib/command-not-found/PackageKit.sh
79+++ b/contrib/command-not-found/PackageKit.sh
80@@ -18,7 +18,7 @@ command_not_found_handle () {
81
82 # run the command, or just print a warning
83 if [ $runcnf -eq 1 ]; then
84- /home/hughsie/.root/libexec/pk-command-not-found $1
85+ /usr/lib/packagekit/pk-command-not-found $1
86 retval=$?
87 else
88 echo "bash: $1: command not found"
89diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
90index 70679c0..9f81ce4 100644
91--- a/contrib/command-not-found/pk-command-not-found.c
92+++ b/contrib/command-not-found/pk-command-not-found.c
93@@ -659,12 +659,12 @@ main (int argc, char *argv[])
94 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
95 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
96 textdomain (GETTEXT_PACKAGE);
97-
98+#if !GLIB_CHECK_VERSION(2,32,0)
99 if (! g_thread_supported ())
100 g_thread_init (NULL);
101 dbus_g_thread_init ();
102 g_type_init ();
103-
104+#endif
105 context = g_option_context_new (NULL);
106 /* TRANSLATORS: tool that gets called when the command is not found */
107 g_option_context_set_summary (context, _("PackageKit Command Not Found"));
108diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
109index c12aca5..b0e1e7c 100644
110--- a/contrib/debuginfo-install/pk-debuginfo-install.c
111+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
112@@ -532,11 +532,11 @@ main (int argc, char *argv[])
113 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
114 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
115 textdomain (GETTEXT_PACKAGE);
116-
117+#if !GLIB_CHECK_VERSION(2,32,0)
118 if (! g_thread_supported ())
119 g_thread_init (NULL);
120 g_type_init ();
121-
122+#endif
123 context = g_option_context_new (NULL);
124 /* TRANSLATORS: tool that gets called when the command is not found */
125 g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
126diff --git a/src/pk-backend.c b/src/pk-backend.c
127index 5216b63..5b83ae4 100644
128--- a/src/pk-backend.c
129+++ b/src/pk-backend.c
130@@ -2103,7 +2103,14 @@ pk_backend_thread_create (PkBackend *backend, PkBackendThreadFunc func)
131 egg_warning ("already has thread");
132 return FALSE;
133 }
134+#if !GLIB_CHECK_VERSION(2,32,0)
135 backend->priv->thread = g_thread_create ((GThreadFunc) func, backend, FALSE, NULL);
136+#else
137+ backend->priv->thread = g_thread_try_new ("daemon thread", (GThreadFunc) func, backend, NULL);
138+ if (backend->priv->thread != NULL) {
139+ g_thread_unref(backend->priv->thread);
140+ }
141+#endif
142 if (backend->priv->thread == NULL) {
143 egg_warning ("failed to create thread");
144 return FALSE;
145diff --git a/src/pk-main.c b/src/pk-main.c
146index 4c758cd..8fa2482 100644
147--- a/src/pk-main.c
148+++ b/src/pk-main.c
149@@ -219,12 +219,12 @@ main (int argc, char *argv[])
150 bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
151 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
152 textdomain (GETTEXT_PACKAGE);
153-
154+#if !GLIB_CHECK_VERSION(2,32,0)
155 if (! g_thread_supported ())
156 g_thread_init (NULL);
157 dbus_g_thread_init ();
158 g_type_init ();
159-
160+#endif
161 /* TRANSLATORS: describing the service that is running */
162 context = g_option_context_new (_("PackageKit service"));
163 g_option_context_add_main_entries (context, options, NULL);
164--
1651.7.9.5
166
diff --git a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch b/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
deleted file mode 100644
index 48f959186..000000000
--- a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: PackageKit-0.6.0/configure.ac
2===================================================================
3--- PackageKit-0.6.0.orig/configure.ac 2010-01-04 16:32:18.000000000 +0000
4+++ PackageKit-0.6.0/configure.ac 2010-01-29 11:33:48.000000000 +0000
5@@ -90,7 +90,7 @@
6 enable_strict=$default_strict)
7 if test x$enable_strict != xno; then
8 if test "$GCC" = "yes"; then
9- WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
10+ :
11 fi
12 fi
13
diff --git a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch b/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
deleted file mode 100644
index 5a73a19d5..000000000
--- a/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
+++ /dev/null
@@ -1,422 +0,0 @@
1Index: PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c
2===================================================================
3--- PackageKit-0.6.0.orig/backends/opkg/pk-backend-opkg.c 2010-01-29 09:39:33.000000000 +0000
4+++ PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c 2010-01-29 11:30:51.000000000 +0000
5@@ -29,8 +29,7 @@
6
7+#include <stdio.h>
8 #include <libopkg/opkg.h>
9
10-static opkg_t *opkg;
11-
12 enum {
13 SEARCH_NAME,
14 SEARCH_DESCRIPTION,
15@@ -62,7 +60,7 @@
16 * check an opkg package for known GUI dependancies
17 */
18 static gboolean
19-opkg_is_gui_pkg (opkg_package_t *pkg)
20+opkg_is_gui_pkg (pkg_t *pkg)
21 {
22
23 /* TODO: check appropriate tag */
24@@ -84,7 +82,7 @@
25 * check an opkg package to determine if it is a development package
26 */
27 static gboolean
28-opkg_is_devel_pkg (opkg_package_t *pkg)
29+opkg_is_devel_pkg (pkg_t *pkg)
30 {
31 if (g_strrstr (pkg->name, "-dev"))
32 return TRUE;
33@@ -105,7 +103,7 @@
34 * returns true if the tag is present
35 */
36 static gboolean
37-opkg_check_tag (opkg_package_t *pkg, const gchar *tag)
38+opkg_check_tag (pkg_t *pkg, const gchar *tag)
39 {
40 if (pkg->tags && tag)
41 return (g_strrstr (pkg->tags, tag) != NULL);
42@@ -118,7 +116,7 @@
43 {
44 switch (err)
45 {
46- case OPKG_NO_ERROR:
47+/* case OPKG_NO_ERROR:
48 break;
49 case OPKG_PACKAGE_NOT_INSTALLED:
50 pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
51@@ -140,7 +138,7 @@
52 break;
53 case OPKG_PACKAGE_NOT_AVAILABLE:
54 pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, NULL);
55- break;
56+ break;*/
57 default:
58 opkg_unknown_error (backend, err, "Update package");
59 }
60@@ -152,7 +150,7 @@
61 static void
62 backend_initialize (PkBackend *backend)
63 {
64- opkg = opkg_new ();
65+ int opkg = opkg_new ();
66
67 if (!opkg) {
68 pk_backend_error_code (backend,
69@@ -162,8 +160,8 @@
70 }
71
72 #ifdef OPKG_OFFLINE_ROOT
73- opkg_set_option (opkg, (char *) "offline_root", OPKG_OFFLINE_ROOT);
74- opkg_re_read_config_files (opkg);
75+ opkg_set_option ((char *) "offline_root", OPKG_OFFLINE_ROOT);
76+ opkg_re_read_config_files ();
77 #endif
78
79 }
80@@ -174,22 +172,22 @@
81 static void
82 backend_destroy (PkBackend *backend)
83 {
84- opkg_free (opkg);
85+ opkg_free ();
86 }
87
88
89 static void
90-pk_opkg_progress_cb (opkg_t *_opkg, const opkg_progress_data_t *pdata, void *data)
91+pk_opkg_progress_cb (const opkg_progress_data_t *pdata, void *data)
92 {
93- PkBackend *backend = PK_BACKEND (data);
94+ PkBackend *backend = (PkBackend*) data;
95 if (!backend)
96 return;
97
98 pk_backend_set_percentage (backend, pdata->percentage);
99- if (pdata->package)
100+ if (pdata->pkg)
101 {
102 gchar *uid;
103- opkg_package_t *pkg = pdata->package;
104+ pkg_t *pkg = pdata->pkg;
105 gint status = PK_INFO_ENUM_UNKNOWN;
106
107 uid = g_strdup_printf ("%s;%s;%s;",
108@@ -225,12 +223,12 @@
109 {
110 int ret;
111
112- ret = opkg_update_package_lists (opkg, pk_opkg_progress_cb, backend);
113+ ret = opkg_update_package_lists (pk_opkg_progress_cb, backend);
114
115 if (ret) {
116- if (ret == OPKG_DOWNLOAD_FAILED)
117- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
118- else
119+// if (ret == OPKG_DOWNLOAD_FAILED)
120+// pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
121+// else
122 opkg_unknown_error (backend, ret, "Refreshing cache");
123 }
124 pk_backend_finished (backend);
125@@ -256,7 +254,7 @@
126 */
127
128 static void
129-pk_opkg_package_list_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
130+pk_opkg_package_list_cb (pkg_t *pkg, void *data)
131 {
132 SearchParams *params = (SearchParams*) data;
133 gchar *uid;
134@@ -298,7 +296,7 @@
135 uid = g_strdup_printf ("%s;%s;%s;",
136 pkg->name, pkg->version, pkg->architecture);
137
138- if (pkg->installed)
139+ if (pkg->state_status == SS_INSTALLED)
140 status = PK_INFO_ENUM_INSTALLED;
141 else
142 status = PK_INFO_ENUM_AVAILABLE;
143@@ -318,10 +316,10 @@
144 opkg_is_gui_pkg (pkg))
145 goto end_handle;
146 if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED) &&
147- (!pkg->installed))
148+ (pkg->state_status != SS_INSTALLED))
149 goto end_handle;
150 if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED) &&
151- (pkg->installed))
152+ (pkg->state_status == SS_INSTALLED))
153 goto end_handle;
154
155 pk_backend_package (params->backend, status, uid, pkg->description);
156@@ -338,7 +336,7 @@
157
158 params = pk_backend_get_pointer (backend, "search-params");
159
160- opkg_list_packages (opkg, pk_opkg_package_list_cb, params);
161+ opkg_list_packages (pk_opkg_package_list_cb, params);
162
163 pk_backend_finished (params->backend);
164
165@@ -349,7 +347,7 @@
166 }
167
168 static void
169-backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
170+backend_search_name (PkBackend *backend, PkBitfield filters, gchar **search)
171 {
172 SearchParams *params;
173
174@@ -360,7 +358,7 @@
175 params = g_new0 (SearchParams, 1);
176 params->filters = filters;
177 params->search_type = SEARCH_NAME;
178- params->needle = g_utf8_strdown (search, -1);
179+ params->needle = g_utf8_strdown (search[0], -1);
180 params->backend = backend;
181
182 pk_backend_set_pointer (backend, "search-params", params);
183@@ -371,7 +369,7 @@
184 * backend_search_description:
185 */
186 static void
187-backend_search_description (PkBackend *backend, PkBitfield filters, const gchar *search)
188+backend_search_description (PkBackend *backend, PkBitfield filters, gchar **search)
189 {
190 SearchParams *params;
191
192@@ -382,7 +380,7 @@
193 params = g_new0 (SearchParams, 1);
194 params->filters = filters;
195 params->search_type = SEARCH_DESCRIPTION;
196- params->needle = g_utf8_strdown (search, -1);
197+ params->needle = g_utf8_strdown (search[0], -1);
198 params->backend = backend;
199
200 pk_backend_set_pointer (backend, "search-params", params);
201@@ -390,7 +388,7 @@
202 }
203
204 static void
205-backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
206+backend_search_group (PkBackend *backend, PkBitfield filters, gchar **search)
207 {
208 SearchParams *params;
209
210@@ -401,7 +399,7 @@
211 params = g_new0 (SearchParams, 1);
212 params->filters = filters;
213 params->search_type = SEARCH_TAG;
214- params->needle = g_strdup_printf ("group::%s", search);
215+ params->needle = g_strdup_printf ("group::%s", search[0]);
216 params->backend = backend;
217
218 pk_backend_set_pointer (backend, "search-params", params);
219@@ -412,9 +410,9 @@
220 static gboolean
221 backend_install_packages_thread (PkBackend *backend)
222 {
223- PkPackageId *pi;
224 gint err, i;
225 gchar **package_ids;
226+ gchar **parts;
227
228 package_ids = pk_backend_get_strv (backend, "pkids");
229
230@@ -424,13 +422,13 @@
231 {
232 pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL);
233
234- pi = pk_package_id_new_from_string (package_ids[i]);
235+ parts = pk_package_id_split (package_ids[i]);
236
237- err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend);
238+ err = opkg_install_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
239 if (err)
240 handle_install_error (backend, err);
241
242- pk_package_id_free (pi);
243+ g_strfreev (parts);
244 if (err != 0)
245 break;
246 }
247@@ -453,9 +451,9 @@
248 static gboolean
249 backend_remove_packages_thread (PkBackend *backend)
250 {
251- PkPackageId *pi;
252 gint err, i;
253 gchar **package_ids;
254+ gchar **parts;
255 gboolean allow_deps;
256 gboolean autoremove;
257 gpointer *data;
258@@ -467,29 +465,30 @@
259 autoremove = GPOINTER_TO_INT (data[2]);
260 g_free (data);
261
262- opkg_set_option (opkg, (char *)"autoremove", &autoremove);
263- opkg_set_option (opkg, (char *)"force_removal_of_dependent_packages", &allow_deps);
264+ opkg_set_option ((char *)"autoremove", &autoremove);
265+ opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps);
266
267 err = 0;
268
269 for (i = 0; package_ids[i]; i++)
270 {
271- pi = pk_package_id_new_from_string (package_ids[i]);
272 pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL);
273
274- err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend);
275+ parts = pk_package_id_split (package_ids[i]);
276+
277+ err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
278
279 switch (err)
280 {
281- case OPKG_NO_ERROR:
282- break;
283- case OPKG_PACKAGE_NOT_INSTALLED:
284- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
285- break;
286+ //case OPKG_NO_ERROR:
287+ // break;
288+ //case OPKG_PACKAGE_NOT_INSTALLED:
289+ // pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
290+ // break;
291 default:
292 opkg_unknown_error (backend, err, "Remove");
293 }
294- pk_package_id_free (pi);
295+ g_strfreev (parts);
296
297 if (err != 0)
298 break;
299@@ -540,7 +539,7 @@
300 gint err;
301
302 /* FIXME: support only_trusted */
303- err = opkg_upgrade_all (opkg, pk_opkg_progress_cb, backend);
304+ err = opkg_upgrade_all (pk_opkg_progress_cb, backend);
305
306 if (err)
307 opkg_unknown_error (backend, err, "Upgrading system");
308@@ -564,29 +563,28 @@
309 static gboolean
310 backend_update_package_thread (PkBackend *backend)
311 {
312- PkPackageId *pi;
313+ gchar **parts;
314 gint err = 0;
315 const gchar *package_id;
316
317 /* FIXME: support only_trusted */
318 package_id = pk_backend_get_string (backend, "pkgid");
319- pi = pk_package_id_new_from_string (package_id);
320+ parts = pk_package_id_split (package_id);
321
322- if (!pi->name || !pi->version)
323+ if (!parts)
324 {
325 pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
326 "Package not found");
327- pk_package_id_free (pi);
328 pk_backend_finished (backend);
329 return FALSE;
330 }
331
332- err = opkg_upgrade_package (opkg, pi->name, pk_opkg_progress_cb, backend);
333+ err = opkg_upgrade_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
334 if (err)
335 handle_install_error (backend, err);
336
337
338- pk_package_id_free (pi);
339+ g_strfreev (parts);
340 pk_backend_finished (backend);
341 return (err != 0);
342 }
343@@ -610,13 +608,13 @@
344 */
345
346 static void
347-pk_opkg_list_upgradable_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
348+pk_opkg_list_upgradable_cb (pkg_t *pkg, void *data)
349 {
350- PkBackend *backend = PK_BACKEND (data);
351+ PkBackend *backend = (PkBackend*) data;
352 gchar *uid;
353 gint status;
354
355- if (pkg->installed)
356+ if (pkg->state_status == SS_INSTALLED)
357 status = PK_INFO_ENUM_INSTALLED;
358 else
359 status = PK_INFO_ENUM_AVAILABLE;
360@@ -631,7 +629,7 @@
361 static gboolean
362 backend_get_updates_thread (PkBackend *backend)
363 {
364- opkg_list_upgradable_packages (opkg, pk_opkg_list_upgradable_cb, backend);
365+ opkg_list_upgradable_packages (pk_opkg_list_upgradable_cb, backend);
366 pk_backend_finished (backend);
367 return TRUE;
368 }
369@@ -668,16 +666,18 @@
370 static gboolean
371 backend_get_details_thread (PkBackend *backend)
372 {
373- PkPackageId *pi;
374 gchar **package_ids;
375+ gchar **parts;
376 int group_index;
377 PkGroupEnum group = 0;
378- opkg_package_t *pkg;
379+ pkg_t *pkg;
380 gchar *newid;
381
382 package_ids = pk_backend_get_strv(backend, "package_ids");
383- pi = pk_package_id_new_from_string (package_ids[0]);
384- if (pi == NULL)
385+ parts = pk_package_id_split (package_ids[0]);
386+
387+
388+ if (!parts)
389 {
390 pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
391 pk_backend_finished (backend);
392@@ -685,8 +685,8 @@
393 }
394
395
396- pkg = opkg_find_package (opkg, pi->name, pi->version, pi->arch, pi->data);
397- pk_package_id_free (pi);
398+ pkg = opkg_find_package (parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_VERSION], parts[PK_PACKAGE_ID_ARCH], parts[PK_PACKAGE_ID_DATA]);
399+ g_strfreev (parts);
400
401 if (!pkg)
402 {
403@@ -695,7 +695,7 @@
404 return FALSE;
405 }
406
407- newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->repository);
408+ newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->src->name);
409
410 if (pkg->tags) {
411 for (group_index = 0; group < PK_GROUP_ENUM_LAST; group_index++) {
412@@ -706,9 +706,8 @@
413 }
414 }
415
416- pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size);
417+ pk_backend_details (backend, newid, NULL, group, pkg->description, NULL, pkg->size);
418 g_free (newid);
419- opkg_package_free(pkg);
420 pk_backend_finished (backend);
421 return TRUE;
422 }
diff --git a/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb b/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
deleted file mode 100644
index 1b60c470d..000000000
--- a/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
+++ /dev/null
@@ -1,65 +0,0 @@
1SUMMARY = "PackageKit package management abstraction"
2SECTION = "libs"
3LICENSE = "GPL-2.0+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
5DEPENDS = "gtk+ python polkit dbus dbus-glib glib-2.0 sqlite3 opkg intltool intltool-native"
6RDEPENDS_${PN} = "opkg bash"
7
8inherit gnome pythonnative
9
10SRC_URI = "http://www.freedesktop.org/software/PackageKit/releases/PackageKit-${PV}.tar.bz2;name=archive \
11 file://configurefix.patch \
12 file://opkgfixes.patch \
13 file://0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch \
14 "
15
16SRC_URI[archive.md5sum] = "33a3127e9ed41e26671786aee9fe56ff"
17SRC_URI[archive.sha256sum] = "8dae41493dfb011442746d252b3435bf3204e17bf7c47e396f90fbd215260e14"
18
19S = "${WORKDIR}/PackageKit-${PV}"
20
21PACKAGECONFIG ??= ""
22PACKAGECONFIG[service-packs] = "--enable-service-packs,--disable-service-packs,libarchive"
23
24EXTRA_OECONF = "--with-security-framework=dummy \
25 --with-default-backend=opkg \
26 --enable-opkg \
27 --disable-tests \
28 --disable-ruck \
29 --disable-qt \
30 --disable-gstreamer-plugin \
31 --disable-local \
32 --disable-networkmanager \
33 --disable-device-rebind \
34 ac_cv_path_XMLTO=no \
35"
36
37#do_configure_prepend() {
38# mkdir -p m4
39# echo "EXTRA_DIST=" > gtk-doc.make
40#}
41
42do_configure_append() {
43 for i in $(find . -name Makefile) ; do
44 sed -i -e s:${STAGING_DIR_NATIVE}::g \
45 -e s:/usr/bin/intltool-merge:${STAGING_BINDIR_NATIVE}/intltool-merge:g \
46 $i
47 done
48}
49
50PACKAGES =+ "${PN}-website"
51FILES_${PN}-website = "${datadir}/PackageKit/website"
52
53PACKAGES =+ "${PN}-python"
54FILES_${PN}-python = "${libdir}/python*"
55
56PACKAGES =+ "${PN}-gtkmodule"
57FILES_${PN}-gtkmodule = "${libdir}/gtk-2.0/*/*.so"
58
59FILES_${PN} += "${libdir}/packagekit-backend/*.so ${libdir}/pm-utils ${datadir}/dbus-1/system-services/ ${datadir}/PolicyKit ${datadir}/PackageKit"
60FILES_${PN}-dbg += "${libdir}/packagekit-backend/.debug/*.so ${libdir}/gtk-2.0/*/.debug"
61FILES_${PN}-dev += "${libdir}/packagekit-backend/*.la ${libdir}/gtk-2.0/*/*.la"
62FILES_${PN}-staticdev += "${libdir}/packagekit-backend/*.a ${libdir}/gtk-2.0/*/*.a"
63
64# PackageKit-0.5.6/backends/opkg/pk-backend-opkg.c:31:26: fatal error: libopkg/opkg.h: No such file or directory
65PNBLACKLIST[packagekit] ?= "BROKEN: depends on old deprecated libopkg which is currently disabled and will be removed soon - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc b/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
deleted file mode 100644
index f7d480f17..000000000
--- a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
+++ /dev/null
@@ -1,16 +0,0 @@
1DESCRIPTION = "Vala DBus Binding Tool"
2SECTION = "devel"
3DEPENDS = "vala libgee libxml2"
4HOMEPAGE = "http://wiki.freesmartphone.org/index.php/Implementations/vala-dbus-binding-tool"
5LICENSE = "GPLv3"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
7PE = "1"
8INC_PR = "r3"
9
10export XDG_DATA_DIRS = "${STAGING_DATADIR}"
11
12SRC_URI = "${SOURCEFORGE_MIRROR}/freesmartphone/sources/${BP}.tar.bz2"
13
14inherit autotools perlnative pkgconfig
15
16BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch b/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
deleted file mode 100644
index 14d84ae8a..000000000
--- a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From 8abed2e5bf8e7815b11df6d22042d5f0ac8efcb0 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Tue, 5 May 2015 13:43:35 +0200
4Subject: [PATCH] configure.ac: don't use dash in m4 macro names
5
6* otherwise it doesn't get expanded and vala-dbus-binding-tool ends with version 'vala-dbus-binding-tool_version'
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 configure.ac | 10 +++++-----
11 1 file changed, 5 insertions(+), 5 deletions(-)
12
13diff --git a/configure.ac b/configure.ac
14index 48f007c..18d0bde 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -1,9 +1,9 @@
18-m4_define([vala-dbus-binding-tool_released], [0])
19-m4_define([vala-dbus-binding-tool_base_version], [1.0])
20-m4_define([vala-dbus-binding-tool_maybe_gitrev], m4_if(vala-dbus-binding-tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
21-m4_define([vala-dbus-binding-tool_version], m4_if(vala-dbus-binding-tool_released, [1], [vala-dbus-binding-tool_base_version], [vala-dbus-binding-tool_base_version-vala-dbus-binding-tool_maybe_gitrev]))
22+m4_define([vala_dbus_binding_tool_released], [0])
23+m4_define([vala_dbus_binding_tool_base_version], [1.0])
24+m4_define([vala_dbus_binding_tool_maybe_gitrev], m4_if(vala_dbus_binding_tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
25+m4_define([vala_dbus_binding_tool_version], m4_if(vala_dbus_binding_tool_released, [1], [vala_dbus_binding_tool_base_version], [vala_dbus_binding_tool_base_version-vala_dbus_binding_tool_maybe_gitrev]))
26
27-AC_INIT([vala-dbus-binding-tool], [vala-dbus-binding-tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
28+AC_INIT([vala-dbus-binding-tool], [vala_dbus_binding_tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
29 AC_CONFIG_SRCDIR([src/Makefile.am])
30 AC_CONFIG_HEADERS(config.h)
31 AM_INIT_AUTOMAKE([dist-bzip2])
32--
332.3.5
34
diff --git a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb b/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
deleted file mode 100644
index 19e3dceca..000000000
--- a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require vala-dbus-binding-tool.inc
2
3SRC_URI[md5sum] = "59eab7abf38f35355d3786803bd2441f"
4SRC_URI[sha256sum] = "1e37ab2e6238eaef9f573560ea7379e6955570f7c9503083e50c4c185c1956df"
5
6PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/131628/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb b/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
deleted file mode 100644
index 32f34550d..000000000
--- a/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1require vala-dbus-binding-tool.inc
2
3# Temporary remove negative preference, because there are 2 versions of 0.4.0 archives:
4# the original one depending on libgee1.0 from
5# http://downloads.freesmartphone.org/sources/${BPN}/${BP}.tar.bz2
6# and new one depending on libgee0.8 from
7# http://sourceforge.net/projects/freesmartphone/files/sources/
8# The original one can be already deployed on various premirrors,
9# so prefer the git recipe which doesn't suffer from this issue
10# DEFAULT_PREFERENCE = "-1"
11
12SRCREV = "742c04c2bb0743891904522ce47e50f9e5c99b12"
13PV = "0.4.0+gitr${SRCPV}"
14
15SRC_URI = "git://github.com/freesmartphone/vala-dbus-binding-tool.git;protocol=https \
16 file://0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch \
17"
18S = "${WORKDIR}/git"
19
20PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130581/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index c23820094..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 336bb5a031077461ec6b2e5438738bf100f0dd2f Mon Sep 17 00:00:00 2001
2From: Lei Maohui <leimaohui@cn.fujitsu.com>
3Date: Mon, 3 Aug 2015 02:37:46 +0900
4Subject: [PATCH] fix lib64 can not be shiped in 64bit target
5
6Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
7---
8 CMakeLists.txt | 7 -------
9 1 file changed, 7 deletions(-)
10
11diff --git a/CMakeLists.txt b/CMakeLists.txt
12index 1ba3cd3..2411745 100644
13--- a/CMakeLists.txt
14+++ b/CMakeLists.txt
15@@ -35,13 +35,6 @@ if (DEBUG)
16 add_definitions("-DDEBUG_ENABLED")
17 endif (DEBUG)
18
19-# Set LIB_SUFFIX to 64 on 64bit architectures
20-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
21- set(LIB_SUFFIX "")
22-else(CMAKE_SIZEOF_VOID_P EQUAL 4)
23- SET(LIB_SUFFIX 64)
24-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
25-
26 # Find OpenLMIMacros when installed in other prefix than /usr (e.g. /usr/local)
27 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX})
28 include(OpenLMIMacros RESULT_VARIABLE LMIMACROS)
29--
301.8.4.2
31
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb b/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
deleted file mode 100644
index 081bd3bc0..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
1SUMMARY = "CIM providers for network management"
2DESCRIPTION = "\
3openlmi-networking is set of CMPI providers for network management using \
4Common Information Model (CIM)."
5HOMEPAGE = "http://www.openlmi.org/"
6LICENSE = "LGPL-2.1+"
7LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
8SECTION = "System/Management"
9DEPENDS = "openlmi-providers konkretcmpi konkretcmpi-native sblim-cmpi-devel cim-schema-exper networkmanager dbus libcheck glib-2.0"
10
11SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
12 file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
13 "
14SRC_URI[md5sum] = "f20de8c76fb6a80001b14c1eb035953e"
15SRC_URI[sha256sum] = "578eaa5c65fe924b5d7aeb635509dd46443166cd6a88b019bc42646e3518a460"
16
17inherit cmake
18
19EXTRA_OECMAKE = "${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
20 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
21 "
22
23
24do_configure_prepend() {
25 export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
26}
27
28
29FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI_Networking.so ${prefix}/libexec*"
30FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
31
32PNBLACKLIST[openlmi-networking] ?= "Depends on blacklisted openlmi-providers - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch b/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
deleted file mode 100644
index 4bcd1c4d9..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 764171866b84e0198b67538f63022abde3e628ad Mon Sep 17 00:00:00 2001
2From: Qian Lei <qianl.fnst@cn.fujitsu.com>
3Date: Fri, 16 Jan 2015 14:15:25 +0800
4Subject: [PATCH] fix error
5
6Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
7---
8 cmake/modules/OpenLMIMacros.cmake | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/cmake/modules/OpenLMIMacros.cmake b/cmake/modules/OpenLMIMacros.cmake
12index d55f983..dbc32ec 100644
13--- a/cmake/modules/OpenLMIMacros.cmake
14+++ b/cmake/modules/OpenLMIMacros.cmake
15@@ -89,7 +89,7 @@ macro(konkretcmpi_generate MOFS CIM_PROVIDERS CIM_HEADERS CIM_CLASSES)
16 endforeach(CLASS ${CIM_CLASS_NAMES})
17
18 # Generate headers for CIM classes
19- set(ENV{KONKRET_SCHEMA_DIR} "/usr/share/mof/cim-current")
20+ set(ENV{KONKRET_SCHEMA_DIR} "$ENV{CMAKE_INSTALL_DATDIR}/mof/cim-current")
21 execute_process(COMMAND ${KONKRETCMPI_KONKRET}
22 ${KONKRET_MOF_FILES}
23 ${GENERATE_PROVIDERS}
24--
251.8.3.1
26
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index 9c8ebe4c0..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 7cecfa95f033b33a1c3260c214b2d0e5e81b4fd3 Mon Sep 17 00:00:00 2001
2From: Lei Maohui <leimaohui@cn.fujitsu.com>
3Date: Mon, 3 Aug 2015 02:05:56 +0900
4Subject: [PATCH] fix lib64 can not be shiped in 64bit target
5
6Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
7---
8 CMakeLists.txt | 7 -------
9 1 file changed, 7 deletions(-)
10
11diff --git a/CMakeLists.txt b/CMakeLists.txt
12index 48ae206..3ead9c6 100644
13--- a/CMakeLists.txt
14+++ b/CMakeLists.txt
15@@ -21,13 +21,6 @@ else(HAS_STACK_PROTECTOR_STRONG)
16 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
17 endif()
18
19-# Set LIB_SUFFIX to 64 on 64bit architectures
20-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
21- set(LIB_SUFFIX "")
22-else(CMAKE_SIZEOF_VOID_P EQUAL 4)
23- SET(LIB_SUFFIX 64)
24-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
25-
26 if(NOT SYSCONF_INSTALL_DIR)
27 set(SYSCONF_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/etc)
28 endif(NOT SYSCONF_INSTALL_DIR)
29--
301.8.4.2
31
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb b/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
deleted file mode 100644
index 2eda65320..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
+++ /dev/null
@@ -1,56 +0,0 @@
1SUMMARY = "Set of basic CIM providers"
2DESCRIPTION = "\
3openlmi-providers is set of (usually) small CMPI providers (agents) for \
4basic monitoring and management of host system using Common Information \
5Model (CIM)."
6HOMEPAGE = "http://www.openlmi.org/"
7LICENSE = "LGPLv2+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
9SECTION = "System/Management"
10DEPENDS = "konkretcmpi-native konkretcmpi sblim-sfcb sblim-cmpi-devel cim-schema-exper lmsensors libuser swig swig-native dbus udev systemd-systemctl-native pciutils"
11
12SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
13 file://0001-fix-error.patch \
14 file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
15 "
16SRC_URI[md5sum] = "5904f23cf494946237cfbbdbe644a3cd"
17SRC_URI[sha256sum] = "e2b2fbeaec45a83905d0da3b87da83904d9cd94c1b86312f844587b3fff11f56"
18
19inherit cmake
20LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
21EXTRA_OECMAKE = " \
22 -DWITH-DEVASSISTANT=OFF \
23 -DWITH-JOURNALD=OFF \
24 -DWITH-SERVICE=OFF \
25 -DWITH-SERVICE-LEGACY=ON \
26 -DWITH-ACCOUNT=OFF \
27 -DWITH-PCP=OFF \
28 -DWITH-REALMD=OFF \
29 -DWITH-FAN=OFF \
30 -DWITH-LOCALE=OFF \
31 -DWITH-INDSENDER=OFF \
32 -DWITH-JOBMANAGER=OFF \
33 -DWITH-SSSD=OFF \
34 -DWITH-SELINUX=OFF \
35 -DWITH-SOFTWARE-DBUS=ON \
36 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
37 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
38 "
39
40do_configure_prepend() {
41 export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
42}
43
44do_install_append() {
45 if [ -d ${D}${prefix}${sysconfidr} ]; then
46 mv ${D}${prefix}${sysconfdir} ${D}${sysconfdir}
47 fi
48}
49
50FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI* ${prefix}/libexec*"
51FILES_${PN}-dev =+ "${datadir}/cmake*"
52FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
53
54RDEPENDS_${PN} = "python"
55
56PNBLACKLIST[openlmi-providers] ?= "Depends on blacklisted lmsensors - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb b/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
deleted file mode 100644
index f99b77ca4..000000000
--- a/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1SUMMARY = "CIM providers for storage management"
2DESCRIPTION = "\
3The openlmi-storage package contains CMPI providers for management of storage \
4using Common Information Managemen (CIM) protocol. \
5\
6The providers can be registered in any CMPI-aware CIMOM, both OpenPegasus and \
7SFCB were tested."
8HOMEPAGE = "http://www.openlmi.org/"
9LICENSE = "LGPL-2.1+"
10LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
11SECTION = "System/Management"
12DEPENDS = "openlmi-providers pywbem cmpi-bindings"
13RDEPENDS_${PN} += "bash"
14
15SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz"
16SRC_URI[md5sum] = "898cf0d8c03b8ad6b45d65f335ddee0d"
17SRC_URI[sha256sum] = "4a1ba9957750f94ea58a89cea28985564f38d7cc9aa00fcae20c51e7b32bd0a8"
18
19inherit setuptools
20
21do_install_append() {
22 install -m 755 -d ${D}${datadir}/${BPN}
23 install -m 644 ${S}/mof/* ${D}${datadir}/${BPN}/
24
25 install -m 755 -d ${D}${sysconfdir}/openlmi/storage
26 install -m 644 storage.conf ${D}${sysconfdir}/openlmi/storage/storage.conf
27
28 install -m 755 -d ${D}${libexecdir}/pegasus
29 install -m 755 pycmpiLMI_Storage-cimprovagt ${D}${libexecdir}/pegasus/
30}
31
32FILES_${PN} =+ "${sysconfdir}/openlmi/storage/storage.conf ${datadir}/${BPN}/*"
33
34PNBLACKLIST[openlmi-storage] ?= "Depends on blacklisted pywbem - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-extended/subsurface/subsurface_git.bb b/meta-oe/recipes-extended/subsurface/subsurface_git.bb
deleted file mode 100644
index 90adaf487..000000000
--- a/meta-oe/recipes-extended/subsurface/subsurface_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "Subsurface is an open source dive log program"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
4
5DEPENDS = "libdivecomputer gtk+ libxml2 glib-2.0 gconf"
6
7PNBLACKLIST[subsurface] ?= "Needs to be upgraded for compatibility with new libdivecomputer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9inherit gtk-icon-cache cmake
10
11inherit gitpkgv
12PKGV = "${GITPKGVTAG}"
13PV = "4.2"
14
15SRCREV = "f61ee20ba356ecfc4c5b247f548f52d588179c94"
16SRC_URI = "git://subsurface.hohndel.org/subsurface.git"
17S = "${WORKDIR}/git"
18
19#FILES_${PN} += "${datadir}/icons/hicolor/scalable/apps/subsurface.svg"
20RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconv-iso8859-15"
21
diff --git a/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch b/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
deleted file mode 100644
index da4f3f441..000000000
--- a/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3diff --git a/docs/Makefile.am b/docs/Makefile.am
4index f5375f5..c306f23 100644
5--- a/docs/Makefile.am
6+++ b/docs/Makefile.am
7@@ -1,4 +1,4 @@
8-SUBDIRS = reference tutorial
9+SUBDIRS = reference
10
11 EXTRA_DIST = \
12 COPYING \
diff --git a/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb b/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
deleted file mode 100644
index 34b7aa64a..000000000
--- a/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1SUMMARY = "Gtk+Extra is a set of custom widget for plots and images"
2HOMEPAGE = "http://gtkextra.sourceforge.net/"
3
4LICENSE = "LGPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
6
7SRC_URI = "${SOURCEFORGE_MIRROR}/gtkextra/${BP}.tar.gz \
8 file://remove-tutorial.patch \
9"
10
11SRC_URI[md5sum] = "486cea93666020f85f101ed8341baf41"
12SRC_URI[sha256sum] = "9cab6c5d6b792eb828d17cec2b9c1baba2ef57f789a290464afab80b53969e65"
13
14DEPENDS = "gtk+"
15
16inherit autotools pkgconfig gobject-introspection
17
18# | ./.libs/libgtkextra-x11-3.0.so: error: undefined reference to 'roundint'
19PNBLACKLIST[gtkextra] ?= "BROKEN: Fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch b/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
deleted file mode 100644
index b3eb3960c..000000000
--- a/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 4b17eed4b8588569d11ec4bd2b6fa3c063830e6e Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 16 May 2013 18:44:50 +0200
4Subject: [PATCH] tests/main.c: fix build with glib 2.36
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: project seems dead
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12---
13 tests/main.c | 2 ++
14 1 files changed, 2 insertions(+), 0 deletions(-)
15
16diff --git a/tests/main.c b/tests/main.c
17index 61cce82..18165ed 100644
18--- a/tests/main.c
19+++ b/tests/main.c
20@@ -30,7 +30,9 @@ main (gint argc, gchar **argv)
21 {
22 GtkWidget *browser;
23
24+#if !GLIB_CHECK_VERSION (2, 36, 0)
25 g_thread_init(NULL);
26+#endif
27
28 gtk_init (&argc, &argv);
29
30--
311.7.6.5
32
diff --git a/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb b/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
deleted file mode 100644
index 021b077de..000000000
--- a/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
+++ /dev/null
@@ -1,41 +0,0 @@
1SECTION = "libs"
2DEPENDS = "gtk+ glib-2.0 libxml2"
3SUMMARY = "A GTK+ HTML rendering library"
4LICENSE = "LGPLv2"
5LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
6
7SRCREV = "1161"
8PV = "2.11.0+svnr${SRCPV}"
9PR = "r5"
10
11SRC_URI = "svn://svn.gnome.org/svn/gtkhtml2/;module=trunk;protocol=http \
12 http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-stylesheet-user.patch;striplevel=0;name=patch2 \
13 http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-media.patch;striplevel=0;name=patch3 \
14 http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-end-element-signal.patch;striplevel=0;name=patch4 \
15 http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-dom-functions.patch;striplevel=0;name=patch5 \
16 http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/iain-mem-leak.patch;striplevel=0;name=patch6 \
17 file://0001-tests-main.c-fix-build-with-glib-2.36.patch \
18"
19
20SRC_URI[patch2.md5sum] = "05fc3627ca364095702dc804f41c8391"
21SRC_URI[patch2.sha256sum] = "df5cca50a8f95333505d7920929fea251daea3be25be6834a1c50a742d9eb674"
22
23SRC_URI[patch3.md5sum] = "d3fe4cda3545f3e4718f1acc186608ab"
24SRC_URI[patch3.sha256sum] = "3aefaa17ffa38143bf5df1161c51ab402d35bfbee41ab4643c313edf569165d5"
25
26SRC_URI[patch4.md5sum] = "651b1601d8a1b21c8a3040fadb729043"
27SRC_URI[patch4.sha256sum] = "d067e8331bf9c6851f1c6067d991a7f54327f532900b405ebdf8e149c071f381"
28
29SRC_URI[patch5.md5sum] = "041be9711a16e629d01487664ba97152"
30SRC_URI[patch5.sha256sum] = "42956fb41341cf82ae8bce18b4cf96a7e2aa631b1b60657afb6d7e9be7cd138c"
31
32SRC_URI[patch6.md5sum] = "4e11dc7899d68f2be2e06ccee01d296d"
33SRC_URI[patch6.sha256sum] = "1e2cc080e654c1839c5cb4b4adf4c62a23e7da208427f3ba0b16cfed9e5cfa98"
34
35S = "${WORKDIR}/trunk"
36
37inherit pkgconfig autotools
38
39EXTRA_OECONF = " --disable-accessibility"
40
41PNBLACKLIST[gtkhtml2] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130633/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-graphics/clutter/clutter-box2d.inc b/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
deleted file mode 100644
index 646b785ca..000000000
--- a/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
+++ /dev/null
@@ -1,15 +0,0 @@
1DESCRIPTION = "Clutter Box2D"
2HOMEPAGE = "http://www.clutter-project.org/"
3LICENSE = "LGPLv2.1+"
4
5# The main clutter lib is machine specific so we need to be too
6PACKAGE_ARCH = "${MACHINE_ARCH}"
7
8inherit autotools pkgconfig gtk-doc
9
10do_install_append () {
11 install -d ${D}${bindir}
12 install ${S}/examples/.libs/blockbox ${D}${bindir}
13}
14
15FILESPATH = "${FILE_DIRNAME}/clutter-box2d"
diff --git a/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb b/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
deleted file mode 100644
index d73e2f15e..000000000
--- a/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1require clutter-box2d.inc
2
3LIC_FILES_CHKSUM = "file://box2d/License.txt;md5=e5d39ad91f7dc4692dcdb1d85139ec6b"
4
5# 0.12.1+gitAUTOINC+de5452e56b-r1/git/clutter-box2d/clutter-box2d.h:226:47:
6# fatal error: clutter-box2d/clutter-box2d-child.h: No such file or directory
7# | #include <clutter-box2d/clutter-box2d-child.h>
8PNBLACKLIST[clutter-box2d] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9
10SRCREV = "de5452e56b537a11fd7f9453d048ff4b4793b5a2"
11PV = "0.12.1+git${SRCPV}"
12PR = "r1"
13
14SRC_URI = "git://git.gnome.org/clutter-box2d.git"
15
16S = "${WORKDIR}/git"
17
18DEPENDS += "clutter-1.0"
19PROVIDES = "clutter-box2d-1.6"
diff --git a/meta-oe/recipes-graphics/fim/files/cross_cc.patch b/meta-oe/recipes-graphics/fim/files/cross_cc.patch
deleted file mode 100644
index 85ab1ef4a..000000000
--- a/meta-oe/recipes-graphics/fim/files/cross_cc.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 9b0b322d86c7b2d2cddaa62f7dab4aa669739a48 Mon Sep 17 00:00:00 2001
2From: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
3Date: Wed, 19 Mar 2014 13:18:21 +0100
4Subject: [PATCH] Upstream-Status: Pending
5
6b2ba should be built by BUILD_CC in cross environment
7This is only used when configured with --enable-hardcoded-font
8
9Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
10---
11 src/Makefile.am | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/src/Makefile.am b/src/Makefile.am
15index a1d4330..a8150b9 100644
16--- a/src/Makefile.am
17+++ b/src/Makefile.am
18@@ -63,7 +63,7 @@ help-acm.cpp: fim.h
19 $(ECHO) '//#endif' >> $@
20
21 b2ba:
22- $(CC) -o b2ba b2ba.c
23+ $(BUILD_CC) -o b2ba b2ba.c
24
25 if FIM_WANT_CUSTOM_HARDCODED_CONSOLEFONT
26 default_font_byte_array.h: $(FIM_CUSTOM_HARDCODED_CONSOLEFONT) b2ba
27--
281.8.5.4
29
diff --git a/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb b/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
deleted file mode 100644
index 7d1a3aaa8..000000000
--- a/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
1SUMMARY = "Framebuffer (scriptable) image viewer"
2DESCRIPTION = "FIM (Fbi IMproved) aims to be a highly customizable and scriptable \
3 image viewer targeted at users who are comfortable with software \
4 like the Vim text editor or the Mutt mail user agent."
5SECTION = "utils"
6HOMEPAGE = "http://www.autistici.org/dezperado/fim/"
7
8LICENSE = "GPLv2"
9LIC_FILES_CHKSUM = "file://COPYING;md5=fa01bff138cc98a62b8840a157951c88"
10
11PNBLACKLIST[fim] ?= "BROKEN: doesn't build with B!=S (flex: can't open lex.lex) - the recipe will be removed on 2017-09-01 unless the issue is fixed"
12
13# flex with provide /usr/include/FlexLexer.h
14DEPENDS = "flex-native bison-native flex"
15
16SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/fbi-improved/${BPN}-${PV}.tar.gz \
17 file://cross_cc.patch"
18SRC_URI[md5sum] = "d7362dde5541c2b6439c35c6e2bd5046"
19SRC_URI[sha256sum] = "3f6bf2de2952b9adcbeb3db12c2a979e999a81dd1e314a03bc58e24f1ea9f686"
20
21PARALLEL_MAKE = ""
22
23inherit autotools pkgconfig
24
25# Don't use provided regex.c
26EXTRA_OECONF = "fim_cv_regex=no fim_cv_regex_broken=no \
27 --enable-framebuffer \
28 --disable-djvu \
29 --disable-ps \
30 --disable-xcftopnm \
31 --disable-convert \
32 --disable-inkscape \
33 --disable-xfig \
34 --disable-dia \
35 --disable-aa \
36 --disable-sdl \
37 --enable-read-dirs \
38 --enable-recursive-dirs \
39 --enable-custom-status-bar \
40"
41
42# Note: imlib2 is located in meta-efl layer.
43PACKAGECONFIG ?= "jpeg rl hf"
44PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
45PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
46PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
47PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib"
48PACKAGECONFIG[pdf] = "--enable-poppler,--disable-poppler,poppler"
49PACKAGECONFIG[magick] = "--enable-graphicsmagick,--disable-graphicsmagick,imagemagick"
50PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
51PACKAGECONFIG[rl] = "--enable-readline,--disable-readline,readline"
52PACKAGECONFIG[hf] = "--enable-hardcoded-font,--disable-hardcoded-font"
diff --git a/meta-oe/recipes-graphics/libsexy/libsexy.inc b/meta-oe/recipes-graphics/libsexy/libsexy.inc
deleted file mode 100644
index 5a11ca06a..000000000
--- a/meta-oe/recipes-graphics/libsexy/libsexy.inc
+++ /dev/null
@@ -1,15 +0,0 @@
1DESCRIPTION = "Libsexy is a collection of GTK+ widgets that extend the functionality of such standard widgets as GtkEntry and GtkLabel"
2HOMEPAGE = "http://wiki.chipx86.com/wiki/Libsexy"
3AUTHOR = "Christian Hammond <chipx86@chipx86.com>"
4SECTION = "x11/libs"
5
6LICENSE = "LGPLv2.1"
7LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
8
9DEPENDS = "gtk+ enchant libxml2"
10
11SRC_URI = "http://releases.chipx86.com/libsexy/${BPN}/${BP}.tar.gz \
12 file://libsexy-pkgconfig-fixes.patch"
13
14inherit autotools pkgconfig
15
diff --git a/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch b/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
deleted file mode 100644
index 61da9474d..000000000
--- a/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Index: libsexy-0.1.11/libsexy.pc.in
2===================================================================
3--- libsexy-0.1.11.orig/libsexy.pc.in 2005-11-10 10:21:18.000000000 +0000
4+++ libsexy-0.1.11/libsexy.pc.in 2008-03-05 14:36:39.000000000 +0000
5@@ -6,7 +6,8 @@
6 Name: libsexy
7 Description: Doing naughty things to good widgets
8 Version: @VERSION@
9-Libs: -L${libdir} -lsexy @PACKAGE_LIBS@
10-Cflags: -I${includedir} @PACKAGE_CFLAGS@
11
12+Requires: pango glib-2.0 gtk+-2.0 libxml-2.0
13+Libs: -L${libdir} -lsexy
14+Cflags: -I${includedir}
15
diff --git a/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb b/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
deleted file mode 100644
index 2ba1ebbb7..000000000
--- a/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
+++ /dev/null
@@ -1,8 +0,0 @@
1require libsexy.inc
2
3PR = "r2"
4
5SRC_URI[md5sum] = "33c079a253270ec8bfb9508e4bb30754"
6SRC_URI[sha256sum] = "8c4101a8cda5fccbba85ba1a15f46f2cf75deaa8b3c525ce5b135b9e1a8fe49e"
7
8PNBLACKLIST[libsexy] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130607/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch b/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch
deleted file mode 100644
index 566a2087c..000000000
--- a/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1From: Luca Falavigna <dktrkranz@debian.org>
2Date: Tue, 27 Jan 2015 01:26:04 +0000
3Subject: format_string
4
5---
6 client_examples/gtkvncviewer.c | 2 +-
7 1 file changed, 1 insertion(+), 1 deletion(-)
8
9diff --git a/client_examples/gtkvncviewer.c b/client_examples/gtkvncviewer.c
10index 261b2da..861e4e3 100644
11--- a/client_examples/gtkvncviewer.c
12+++ b/client_examples/gtkvncviewer.c
13@@ -588,7 +588,7 @@ static void GtkDefaultLog (const char *format, ...)
14
15 time (&log_clock);
16 strftime (buf, 255, "%d/%m/%Y %X ", localtime (&log_clock));
17- fprintf (stdout, buf);
18+ fprintf (stdout, "%s", buf);
19
20 vfprintf (stdout, format, args);
21 fflush (stdout);
diff --git a/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch b/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
deleted file mode 100644
index de82d6303..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
+++ /dev/null
@@ -1,343 +0,0 @@
1From 24e548a222f0aab4313d5ba8b04f0840b173000f Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Mon, 30 Aug 2010 01:24:54 +0000
4Subject: [PATCH 2/8] Fix image handling integer overflows
5
6Image loading memory allocation is based on the image width and height:
7 malloc(heigth * width * 3). Providing an image with large height and
8width values can cause the result of this calculation to exceed the
9maximum value of an unsigned int and thus causes an integer overflow.
10The result: too little memory is allocated and an heap overflow occurs.
11
12This patch was based by Niels Heinen <niels@freebsd.org>
13Thanks!
14
15Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
16
17git-svn-id: svn://svn.berlios.de/slim/trunk@176 7c53e7cc-98ea-0310-8f1f-a0b24da60408
18---
19 const.h | 3 ++
20 jpeg.c | 51 +++++++++++++++-----------
21 png.c | 122 ++++++++++++++++++++++++++++++++------------------------------
22 3 files changed, 96 insertions(+), 80 deletions(-)
23
24diff --git a/const.h b/const.h
25index df0989c..a18c6f3 100644
26--- a/const.h
27+++ b/const.h
28@@ -42,4 +42,7 @@
29 // variables replaced in pre-session_cmd and post-session_cmd
30 #define USER_VAR "%user"
31
32+// max height/width for images
33+#define MAX_DIMENSION 10000
34+
35 #endif
36diff --git a/jpeg.c b/jpeg.c
37index 1cf106c..e1f8352 100644
38--- a/jpeg.c
39+++ b/jpeg.c
40@@ -22,16 +22,22 @@
41 #include <string.h>
42
43 #include <jpeglib.h>
44+#include "const.h"
45
46 int
47 read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
48 {
49+ int ret = 0;
50 struct jpeg_decompress_struct cinfo;
51 struct jpeg_error_mgr jerr;
52 unsigned char *ptr = NULL;
53 unsigned int i, ipos;
54
55 FILE *infile = fopen(filename, "rb");
56+ if (infile == NULL) {
57+ fprintf(stderr, "Can not fopen file: %s\n",filename);
58+ return ret;
59+ }
60
61 cinfo.err = jpeg_std_error(&jerr);
62 jpeg_create_decompress(&cinfo);
63@@ -39,43 +45,39 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
64 jpeg_read_header(&cinfo, TRUE);
65 jpeg_start_decompress(&cinfo);
66
67+ /* Prevent against integer overflow */
68+ if(cinfo.output_width >= MAX_DIMENSION || cinfo.output_height >= MAX_DIMENSION) {
69+ fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
70+ goto close_file;
71+ }
72+
73 *width = cinfo.output_width;
74 *height = cinfo.output_height;
75
76 rgb[0] = malloc(3 * cinfo.output_width * cinfo.output_height);
77- if (rgb[0] == NULL)
78- {
79+ if (rgb[0] == NULL) {
80 fprintf(stderr, "Can't allocate memory for JPEG file.\n");
81- fclose(infile);
82- return(0);
83+ goto close_file;
84 }
85
86- if (cinfo.output_components == 3)
87- {
88+ if (cinfo.output_components == 3) {
89 ptr = rgb[0];
90- while (cinfo.output_scanline < cinfo.output_height)
91- {
92+ while (cinfo.output_scanline < cinfo.output_height) {
93 jpeg_read_scanlines(&cinfo, &ptr, 1);
94 ptr += 3 * cinfo.output_width;
95 }
96- }
97- else if (cinfo.output_components == 1)
98- {
99+ } else if (cinfo.output_components == 1) {
100 ptr = malloc(cinfo.output_width);
101- if (ptr == NULL)
102- {
103+ if (ptr == NULL) {
104 fprintf(stderr, "Can't allocate memory for JPEG file.\n");
105- fclose(infile);
106- return(0);
107+ goto rgb_free;
108 }
109
110 ipos = 0;
111- while (cinfo.output_scanline < cinfo.output_height)
112- {
113+ while (cinfo.output_scanline < cinfo.output_height) {
114 jpeg_read_scanlines(&cinfo, &ptr, 1);
115
116- for (i = 0; i < cinfo.output_width; i++)
117- {
118+ for (i = 0; i < cinfo.output_width; i++) {
119 memset(rgb[0] + ipos, ptr[i], 3);
120 ipos += 3;
121 }
122@@ -85,9 +87,16 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
123 }
124
125 jpeg_finish_decompress(&cinfo);
126- jpeg_destroy_decompress(&cinfo);
127
128+ ret = 1;
129+ goto close_file;
130+
131+rgb_free:
132+ free(rgb[0]);
133+
134+close_file:
135+ jpeg_destroy_decompress(&cinfo);
136 fclose(infile);
137
138- return(1);
139+ return(ret);
140 }
141diff --git a/png.c b/png.c
142index a2661c6..5c086c6 100644
143--- a/png.c
144+++ b/png.c
145@@ -22,12 +22,13 @@
146 #include <stdlib.h>
147
148 #include <png.h>
149+#include "const.h"
150
151 int
152 read_png(const char *filename, int *width, int *height, unsigned char **rgb,
153 unsigned char **alpha)
154 {
155- FILE *infile = fopen(filename, "rb");
156+ int ret = 0;
157
158 png_structp png_ptr;
159 png_infop info_ptr;
160@@ -38,31 +39,27 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
161 int bit_depth, color_type, interlace_type;
162 int i;
163
164+ FILE *infile = fopen(filename, "rb");
165+ if (infile == NULL) {
166+ fprintf(stderr, "Can not fopen file: %s\n",filename);
167+ return ret;
168+ }
169+
170 png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,
171 (png_voidp) NULL,
172 (png_error_ptr) NULL,
173 (png_error_ptr) NULL);
174- if (!png_ptr)
175- {
176- fclose(infile);
177- return(0);
178- }
179+ if (!png_ptr)
180+ goto file_close;
181
182 info_ptr = png_create_info_struct(png_ptr);
183- if (!info_ptr)
184- {
185+ if (!info_ptr) {
186 png_destroy_read_struct(&png_ptr, (png_infopp) NULL,
187 (png_infopp) NULL);
188- fclose(infile);
189- return(0);
190 }
191
192 if (setjmp(png_ptr->jmpbuf))
193- {
194- png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
195- fclose(infile);
196- return(0);
197- }
198+ goto png_destroy;
199
200 png_init_io(png_ptr, infile);
201 png_read_info(png_ptr, info_ptr);
202@@ -70,18 +67,23 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
203 png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
204 &interlace_type, (int *) NULL, (int *) NULL);
205
206+ /* Prevent against integer overflow */
207+ if(w >= MAX_DIMENSION || h >= MAX_DIMENSION) {
208+ fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
209+ goto png_destroy;
210+ }
211+
212 *width = (int) w;
213 *height = (int) h;
214
215 if (color_type == PNG_COLOR_TYPE_RGB_ALPHA
216- || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
217- {
218- alpha[0] = malloc(*width * *height);
219- if (alpha[0] == NULL)
220- {
221- fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
222- return(0);
223- }
224+ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
225+ alpha[0] = malloc(*width * *height);
226+ if (alpha[0] == NULL)
227+ {
228+ fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
229+ goto png_destroy;
230+ }
231 }
232
233 /* Change a paletted/grayscale image to RGB */
234@@ -94,68 +96,70 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
235 png_set_gray_to_rgb(png_ptr);
236
237 /* If the PNG file has 16 bits per channel, strip them down to 8 */
238- if (bit_depth == 16) png_set_strip_16(png_ptr);
239+ if (bit_depth == 16)
240+ png_set_strip_16(png_ptr);
241
242 /* use 1 byte per pixel */
243 png_set_packing(png_ptr);
244
245 row_pointers = malloc(*height * sizeof(png_bytep));
246- if (row_pointers == NULL)
247- {
248+ if (row_pointers == NULL) {
249 fprintf(stderr, "Can't allocate memory for PNG file.\n");
250- return(0);
251+ goto png_destroy;
252 }
253
254- for (i = 0; i < *height; i++)
255- {
256+ for (i = 0; i < *height; i++) {
257 row_pointers[i] = malloc(4 * *width);
258- if (row_pointers == NULL)
259- {
260+ if (row_pointers == NULL) {
261 fprintf(stderr, "Can't allocate memory for PNG line.\n");
262- return(0);
263+ goto rows_free;
264 }
265 }
266
267 png_read_image(png_ptr, row_pointers);
268
269 rgb[0] = malloc(3 * *width * *height);
270- if (rgb[0] == NULL)
271- {
272+ if (rgb[0] == NULL) {
273 fprintf(stderr, "Can't allocate memory for PNG file.\n");
274- return(0);
275+ goto rows_free;
276 }
277
278 if (alpha[0] == NULL)
279 {
280- ptr = rgb[0];
281- for (i = 0; i < *height; i++)
282- {
283- memcpy(ptr, row_pointers[i], 3 * *width);
284- ptr += 3 * *width;
285- }
286- }
287- else
288- {
289- int j;
290- ptr = rgb[0];
291- for (i = 0; i < *height; i++)
292- {
293- int ipos = 0;
294- for (j = 0; j < *width; j++)
295- {
296- *ptr++ = row_pointers[i][ipos++];
297- *ptr++ = row_pointers[i][ipos++];
298- *ptr++ = row_pointers[i][ipos++];
299- alpha[0][i * *width + j] = row_pointers[i][ipos++];
300+ ptr = rgb[0];
301+ for (i = 0; i < *height; i++) {
302+ memcpy(ptr, row_pointers[i], 3 * *width);
303+ ptr += 3 * *width;
304+ }
305+ } else {
306+ int j;
307+ ptr = rgb[0];
308+ for (i = 0; i < *height; i++) {
309+ int ipos = 0;
310+ for (j = 0; j < *width; j++) {
311+ *ptr++ = row_pointers[i][ipos++];
312+ *ptr++ = row_pointers[i][ipos++];
313+ *ptr++ = row_pointers[i][ipos++];
314+ alpha[0][i * *width + j] = row_pointers[i][ipos++];
315+ }
316 }
317- }
318 }
319
320- png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
321+ ret = 1; /* data reading is OK */
322+
323+rows_free:
324+ for (i = 0; i < *height; i++) {
325+ if (row_pointers[i] != NULL ) {
326+ free(row_pointers[i]);
327+ }
328+ }
329
330- for (i = 0; i < *height; i++) free(row_pointers[i]);
331 free(row_pointers);
332
333+png_destroy:
334+ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
335+
336+file_close:
337 fclose(infile);
338- return(1);
339+ return(ret);
340 }
341--
3421.6.6.1
343
diff --git a/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch b/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
deleted file mode 100644
index 471c4f51e..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 6aad913ddd5cdb473db9fa21a5e8ecec58de172b Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Wed, 12 Jan 2011 04:41:02 +0000
4Subject: [PATCH 3/8] Fix build failure with ld --as-needed.
5
6Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7
8git-svn-id: svn://svn.berlios.de/slim/trunk@177 7c53e7cc-98ea-0310-8f1f-a0b24da60408
9---
10 Makefile | 4 ++--
11 1 files changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/Makefile b/Makefile
14index 1219de4..fafa0ef 100644
15--- a/Makefile
16+++ b/Makefile
17@@ -4,7 +4,7 @@
18 # to fit into your operating system / distribution
19 #######################################################
20 CXX=/usr/bin/g++
21-CC=/usr/bin/gcc
22+CC=/usr/bin/gcc-4.5
23 CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
24 CXXFLAGS=$(CFLAGS)
25 LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
26@@ -33,7 +33,7 @@ endif
27 all: slim
28
29 slim: $(OBJECTS)
30- $(CXX) $(LDFLAGS) $(OBJECTS) -o $(NAME)
31+ $(CXX) $(OBJECTS) $(LDFLAGS) -o $(NAME)
32
33 .cpp.o:
34 $(CXX) $(CXXFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
35--
361.6.6.1
37
diff --git a/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch b/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
deleted file mode 100644
index f2087c010..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From c2067e8c16bfb721d339718ae0c99c70a994936b Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Fri, 17 Jun 2011 20:35:07 +0000
4Subject: [PATCH 4/8] Add support libpng15
5
6Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7
8git-svn-id: svn://svn.berlios.de/slim/trunk@178 7c53e7cc-98ea-0310-8f1f-a0b24da60408
9---
10 Makefile | 4 ++--
11 png.c | 6 +++++-
12 2 files changed, 7 insertions(+), 3 deletions(-)
13
14diff --git a/Makefile b/Makefile
15index fafa0ef..1202614 100644
16--- a/Makefile
17+++ b/Makefile
18@@ -5,9 +5,9 @@
19 #######################################################
20 CXX=/usr/bin/g++
21 CC=/usr/bin/gcc-4.5
22-CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
23+CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
24 CXXFLAGS=$(CFLAGS)
25-LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
26+LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
27 CUSTOM=-DHAVE_SHADOW
28 ifdef USE_PAM
29 LDFLAGS+= -lpam
30diff --git a/png.c b/png.c
31index 5c086c6..aa0f5e5 100644
32--- a/png.c
33+++ b/png.c
34@@ -57,8 +57,12 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
35 png_destroy_read_struct(&png_ptr, (png_infopp) NULL,
36 (png_infopp) NULL);
37 }
38-
39+
40+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
41+ if (setjmp(png_jmpbuf((data->png_ptr))))
42+#else
43 if (setjmp(png_ptr->jmpbuf))
44+#endif
45 goto png_destroy;
46
47 png_init_io(png_ptr, infile);
48--
491.6.6.1
50
diff --git a/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch b/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
deleted file mode 100644
index 566ae355e..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 4f69eb1aa85fbb395a0474b1f376505fab81ee22 Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Fri, 17 Jun 2011 20:35:10 +0000
4Subject: [PATCH 5/8] Remove path of gcc amd g++, and version of g++
5
6Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7
8git-svn-id: svn://svn.berlios.de/slim/trunk@179 7c53e7cc-98ea-0310-8f1f-a0b24da60408
9---
10 Makefile | 4 ++--
11 1 files changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/Makefile b/Makefile
14index 1202614..5c5fde1 100644
15--- a/Makefile
16+++ b/Makefile
17@@ -3,8 +3,8 @@
18 # Edit the following section to adjust the options
19 # to fit into your operating system / distribution
20 #######################################################
21-CXX=/usr/bin/g++
22-CC=/usr/bin/gcc-4.5
23+CXX=g++
24+CC=gcc
25 CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
26 CXXFLAGS=$(CFLAGS)
27 LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
28--
291.6.6.1
30
diff --git a/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch b/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
deleted file mode 100644
index a5b812584..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From e188d5fd3e3c0e40c3e35729fd8b81b138191a75 Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Fri, 17 Jun 2011 20:35:13 +0000
4Subject: [PATCH 6/8] Remove localhost from Authenticator of pam
5
6http://bugs.gentoo.org/346037
7https://developer.berlios.de/bugs/?func=detailbug&bug_id=17757&group_id=2663
8http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-misc/slim/files/346037-stop_setting_host_for_pam_ck_connector_so.patch?view=log
9
10Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
11
12git-svn-id: svn://svn.berlios.de/slim/trunk@180 7c53e7cc-98ea-0310-8f1f-a0b24da60408
13---
14 app.cpp | 2 --
15 1 files changed, 0 insertions(+), 2 deletions(-)
16
17diff --git a/app.cpp b/app.cpp
18index c80a73e..7177363 100644
19--- a/app.cpp
20+++ b/app.cpp
21@@ -236,8 +236,6 @@ void App::Run() {
22 pam.start("slim");
23 pam.set_item(PAM::Authenticator::TTY, DisplayName);
24 pam.set_item(PAM::Authenticator::Requestor, "root");
25- pam.set_item(PAM::Authenticator::Host, "localhost");
26-
27 }
28 catch(PAM::Exception& e){
29 cerr << APPNAME << ": " << e << endl;
30--
311.6.6.1
32
diff --git a/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch b/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
deleted file mode 100644
index fa2502bf0..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From da172fd6234b3b2b487ab36d63da72758829cb1d Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Fri, 17 Jun 2011 20:35:15 +0000
4Subject: [PATCH 7/8] Fix tty slowness
5
6Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7
8git-svn-id: svn://svn.berlios.de/slim/trunk@181 7c53e7cc-98ea-0310-8f1f-a0b24da60408
9---
10 app.cpp | 10 ++++++----
11 1 files changed, 6 insertions(+), 4 deletions(-)
12
13diff --git a/app.cpp b/app.cpp
14index 7177363..44ab099 100644
15--- a/app.cpp
16+++ b/app.cpp
17@@ -278,21 +278,23 @@ void App::Run() {
18 signal(SIGALRM, AlarmSignal);
19
20 #ifndef XNEST_DEBUG
21- OpenLog();
22-
23 if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
24 daemonmode = true;
25 }
26
27 // Daemonize
28 if (daemonmode) {
29- if (daemon(0, 1) == -1) {
30+ if (daemon(0, 0) == -1) {
31 cerr << APPNAME << ": " << strerror(errno) << endl;
32 exit(ERR_EXIT);
33 }
34- UpdatePid();
35 }
36
37+ OpenLog();
38+
39+ if (daemonmode)
40+ UpdatePid();
41+
42 CreateServerAuth();
43 StartServer();
44 alarm(2);
45--
461.6.6.1
47
diff --git a/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch b/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
deleted file mode 100644
index 0c5cfb742..000000000
--- a/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
+++ /dev/null
@@ -1,161 +0,0 @@
1From ee77a3d154443d2823ecbf2141daa1b5924f629f Mon Sep 17 00:00:00 2001
2From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
3Date: Fri, 17 Jun 2011 20:38:34 +0000
4Subject: [PATCH 8/8] restart Xserver if killed
5
6Patch from http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663.
7
8Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
9
10git-svn-id: svn://svn.berlios.de/slim/trunk@182 7c53e7cc-98ea-0310-8f1f-a0b24da60408
11---
12 app.cpp | 36 +++++++++---------------------------
13 app.h | 2 +-
14 2 files changed, 10 insertions(+), 28 deletions(-)
15
16diff --git a/app.cpp b/app.cpp
17index 44ab099..358a98f 100644
18--- a/app.cpp
19+++ b/app.cpp
20@@ -104,6 +104,11 @@ int conv(int num_msg, const struct pam_message **msg,
21
22 extern App* LoginApp;
23
24+int xioerror(Display *disp) {
25+ LoginApp->RestartServer();
26+ return 0;
27+}
28+
29 void CatchSignal(int sig) {
30 cerr << APPNAME << ": unexpected signal " << sig << endl;
31
32@@ -114,19 +119,6 @@ void CatchSignal(int sig) {
33 exit(ERR_EXIT);
34 }
35
36-
37-void AlarmSignal(int sig) {
38- int pid = LoginApp->GetServerPID();
39- if(waitpid(pid, NULL, WNOHANG) == pid) {
40- LoginApp->StopServer();
41- LoginApp->RemoveLock();
42- exit(OK_EXIT);
43- }
44- signal(sig, AlarmSignal);
45- alarm(2);
46-}
47-
48-
49 void User1Signal(int sig) {
50 signal(sig, User1Signal);
51 }
52@@ -275,7 +267,6 @@ void App::Run() {
53 signal(SIGHUP, CatchSignal);
54 signal(SIGPIPE, CatchSignal);
55 signal(SIGUSR1, User1Signal);
56- signal(SIGALRM, AlarmSignal);
57
58 #ifndef XNEST_DEBUG
59 if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
60@@ -297,7 +288,6 @@ void App::Run() {
61
62 CreateServerAuth();
63 StartServer();
64- alarm(2);
65 #endif
66
67 }
68@@ -613,6 +603,8 @@ void App::Login() {
69 int status;
70 while (wpid != pid) {
71 wpid = wait(&status);
72+ if (wpid == ServerPID)
73+ xioerror(Dpy); // Server died, simulate IO error
74 }
75 if (WIFEXITED(status) && WEXITSTATUS(status)) {
76 LoginPanel->Message("Failed to execute login command");
77@@ -658,9 +650,6 @@ void App::Login() {
78
79
80 void App::Reboot() {
81- // Stop alarm clock
82- alarm(0);
83-
84 #ifdef USE_PAM
85 try{
86 pam.end();
87@@ -683,9 +672,6 @@ void App::Reboot() {
88
89
90 void App::Halt() {
91- // Stop alarm clock
92- alarm(0);
93-
94 #ifdef USE_PAM
95 try{
96 pam.end();
97@@ -771,6 +757,7 @@ void App::RestartServer() {
98
99 StopServer();
100 RemoveLock();
101+ while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
102 Run();
103 }
104
105@@ -841,6 +828,7 @@ int App::WaitForServer() {
106
107 for(cycles = 0; cycles < ncycles; cycles++) {
108 if((Dpy = XOpenDisplay(DisplayName))) {
109+ XSetIOErrorHandler(xioerror);
110 return 1;
111 } else {
112 if(!ServerTimeout(1, (char *) "X server to begin accepting connections"))
113@@ -925,9 +913,6 @@ int App::StartServer() {
114 ServerPID = -1;
115 break;
116 }
117- alarm(15);
118- pause();
119- alarm(0);
120
121 // Wait for server to start up
122 if(WaitForServer() == 0) {
123@@ -962,15 +947,12 @@ int IgnoreXIO(Display *d) {
124
125
126 void App::StopServer() {
127- // Stop alars clock and ignore signals
128- alarm(0);
129 signal(SIGQUIT, SIG_IGN);
130 signal(SIGINT, SIG_IGN);
131 signal(SIGHUP, SIG_IGN);
132 signal(SIGPIPE, SIG_IGN);
133 signal(SIGTERM, SIG_DFL);
134 signal(SIGKILL, SIG_DFL);
135- signal(SIGALRM, SIG_DFL);
136
137 // Catch X error
138 XSetIOErrorHandler(IgnoreXIO);
139diff --git a/app.h b/app.h
140index dd7c281..2db1038 100644
141--- a/app.h
142+++ b/app.h
143@@ -34,6 +34,7 @@ public:
144 ~App();
145 void Run();
146 int GetServerPID();
147+ void RestartServer();
148 void StopServer();
149
150 bool serverStarted;
151@@ -49,7 +50,6 @@ private:
152 void Console();
153 void Exit();
154 void KillAllClients(Bool top);
155- void RestartServer();
156 void ReadConfig();
157 void OpenLog();
158 void CloseLog();
159--
1601.6.6.1
161
diff --git a/meta-oe/recipes-graphics/slim/slim_1.3.2.bb b/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
deleted file mode 100644
index 2fbdcab46..000000000
--- a/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
+++ /dev/null
@@ -1,82 +0,0 @@
1DESCRIPTION="Simple Login Manager"
2HOMEPAGE="http://slim.berlios.de"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
5
6PR = "r1"
7
8DEPENDS = "virtual/libx11 libxmu libpng jpeg freetype sessreg ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
9
10SRC_URI = " \
11 http://download.berlios.de/${BPN}/${BP}.tar.gz \
12 file://0002-Fix-image-handling-integer-overflows.patch \
13 file://0003-Fix-build-failure-with-ld-as-needed.patch \
14 file://0004-Add-support-libpng15.patch \
15 file://0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch \
16 file://0006-Remove-localhost-from-Authenticator-of-pam.patch \
17 file://0007-Fix-tty-slowness.patch \
18 file://0008-restart-Xserver-if-killed.patch \
19 file://slim-dynwm \
20 file://update_slim_wmlist \
21 file://Makefile.oe \
22 file://slim.pamd \
23 file://slim.service \
24"
25
26SRC_URI[md5sum] = "ca1ae6120e6f4b4969f2d6cf94f47b42"
27SRC_URI[sha256sum] = "f1560125005f253b9b88220598fed7a9575ef405716862c6ca3fcc72dbd482b8"
28
29
30EXTRA_OEMAKE += " \
31 USE_PAM=${@bb.utils.contains('DISTRO_FEATURES', 'pam', '1', '0', d)} \
32 PREFIX=${prefix} \
33 CFGDIR=${sysconfdir} \
34 MANDIR=${mandir} \
35 DESTDIR=${D} \
36 CFLAGS+=-I${STAGING_INCDIR}/freetype2 \
37 CXXFLAGS+=-I${STAGING_INCDIR}/freetype2 \
38"
39
40do_compile_prepend() {
41 cp -pP ${WORKDIR}/Makefile.oe ${S}/Makefile
42}
43
44do_install() {
45 oe_runmake install
46 install -d ${D}${bindir}
47 install -m 0755 ${WORKDIR}/slim-dynwm ${D}${bindir}/
48 install -m 0755 ${WORKDIR}/update_slim_wmlist ${D}${bindir}/
49 install -d ${D}${sysconfdir}/pam.d/
50 install -m 0644 ${WORKDIR}/slim.pamd ${D}${sysconfdir}/pam.d/slim
51
52 install -d ${D}${systemd_unitdir}/system/
53 install -m 0644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system/
54
55 echo 'sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
56 echo 'sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
57}
58
59
60RDEPENDS_${PN} = "perl xauth freetype sessreg "
61FILES_${PN} += "${systemd_unitdir}/system/"
62
63pkg_postinst_${PN} () {
64if test "x$D" != "x"; then
65 exit 1
66fi
67systemctl enable slim.service
68
69# Register SLiM as default DM
70mkdir -p ${sysconfdir}/X11/
71echo "${bindir}/slim" > ${sysconfdir}/X11/default-display-manager
72}
73
74pkg_postrm_${PN} () {
75if test "x$D" != "x"; then
76 exit 1
77fi
78systemctl disable slim.service
79sed -i /slim/d $D${sysconfdir}/X11/default-display-manager || true
80}
81
82PNBLACKLIST[slim] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb b/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
deleted file mode 100755
index 2af669770..000000000
--- a/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "Wayland-fits, the Wayland Functional Integration Test Suite"
2DESCRIPTION = "Wayland-fits is a fully automated functional integration \
3test suite. Its main purpose is to test the functionality and integration of \
4client-side (i.e. toolkit) and server-side (compositor) implementations of \
5the Wayland protocol."
6HOMEPAGE = "https://github.com/01org/wayland-fits"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://COPYING;md5=f8d34cadaf891753c0f00c6cd48f08f5 \
9 file://src/extensions/weston/weston-wfits.cpp;endline=21;md5=848c81e55cf3a30a9f6ed75f0dba7a97"
10
11SRC_URI = "git://github.com/01org/wayland-fits.git"
12SRCREV = "f108335e374772ae2818a30ae37fe6fcda81980f"
13
14S = "${WORKDIR}/git"
15
16inherit autotools pkgconfig
17
18DEPENDS = "libcheck boost wayland weston"
19RDEPENDS_${PN} = "weston"
20
21EXTRA_OECONF += "--enable-shared --disable-static --with-boost-libdir=${STAGING_LIBDIR}"
22
23PACKAGECONFIG ?= "gtk+3"
24
25PACKAGECONFIG[elementary] = "--enable-efl-tests,--disable-efl-tests,elementary"
26PACKAGECONFIG[gtk+3] = "--enable-gtk-tests,--disable-gtk-tests,gtk+3"
27
28do_install_append() {
29 rm -f ${D}/${libdir}/weston/*.la
30}
31
32FILES_${PN} += "${bindir}/wfits ${libdir}/weston/*.so"
33FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/weston/.debug ${prefix}/src"
34
35PNBLACKLIST[wayland-fits] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130632/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
deleted file mode 100644
index 771a2a8e1..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
+++ /dev/null
@@ -1,153 +0,0 @@
1diff --git a/src/multitouch.c b/src/multitouch.c
2index c55d742..4a8192d 100644
3--- a/src/multitouch.c
4+++ b/src/multitouch.c
5@@ -114,7 +114,7 @@ static int init_properties(DeviceIntPtr dev)
6 return Success;
7 }
8
9-static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
10+static int device_init(DeviceIntPtr dev, InputInfoPtr local)
11 {
12 struct mtev_mtouch *mt = local->private;
13 Atom atom;
14@@ -222,7 +222,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
15 xf86InitValuatorAxisStruct(dev, val, axes_labels[val],
16 min,
17 max,
18- 1, 0, 1);
19+ 1, 0, 1,Absolute);
20 xf86InitValuatorDefaults(dev, val);
21 }
22 }
23@@ -232,7 +232,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
24 return Success;
25 }
26
27-static int device_on(LocalDevicePtr local)
28+static int device_on(InputInfoPtr local)
29 {
30 struct mtev_mtouch *mt = local->private;
31 local->fd = xf86OpenSerial(local->options);
32@@ -248,7 +248,7 @@ static int device_on(LocalDevicePtr local)
33 return Success;
34 }
35
36-static int device_off(LocalDevicePtr local)
37+static int device_off(InputInfoPtr local)
38 {
39 struct mtev_mtouch *mt = local->private;
40 xf86RemoveEnabledDevice(local);
41@@ -259,12 +259,12 @@ static int device_off(LocalDevicePtr local)
42 return Success;
43 }
44
45-static int device_close(LocalDevicePtr local)
46+static int device_close(InputInfoPtr local)
47 {
48 return Success;
49 }
50
51-static void process_state(LocalDevicePtr local,
52+static void process_state(InputInfoPtr local,
53 const struct mtev_mtouch *mt)
54 {
55
56@@ -321,22 +321,22 @@ static void process_state(LocalDevicePtr local,
57 }
58
59 /* Some x-clients assume they get motion events before button down */
60+ xf86Msg(X_INFO,"down %d|pdown %d\n", down, pdown);
61 if (down)
62 xf86PostMotionEventP(local->dev, TRUE,
63 0, down * MT_AXIS_PER_FINGER, valuators);
64-
65 if(down && pdown == 0)
66 xf86PostButtonEventP(local->dev, TRUE,
67 1, 1,
68 0, down * MT_AXIS_PER_FINGER, valuators);
69- else if (down == 0 && pdown)
70- xf86PostButtonEvent(local->dev, TRUE, 1, 0, 0, 0);
71-
72+ else if (down == 0 && pdown){
73+ xf86PostButtonEvent(local->dev, TRUE, 1, 1, 0, 0);
74+ }
75 pdown = !!down;
76 }
77
78 /* called for each full received packet from the touchpad */
79-static void read_input(LocalDevicePtr local)
80+static void read_input(InputInfoPtr local)
81 {
82 struct mtev_mtouch *mt = local->private;
83 while (mtouch_read_synchronized_event(mt, local->fd)) {
84@@ -346,7 +346,7 @@ static void read_input(LocalDevicePtr local)
85
86 static Bool device_control(DeviceIntPtr dev, int mode)
87 {
88- LocalDevicePtr local = dev->public.devicePrivate;
89+ InputInfoPtr local = dev->public.devicePrivate;
90 switch (mode) {
91 case DEVICE_INIT:
92 xf86Msg(X_INFO, "device control: init\n");
93@@ -366,39 +366,29 @@ static Bool device_control(DeviceIntPtr dev, int mode)
94 }
95 }
96
97-static InputInfoPtr preinit(InputDriverPtr drv, IDevPtr dev, int flags)
98+static InputInfoPtr preinit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
99 {
100 struct mtev_mtouch *mt;
101- InputInfoPtr local = xf86AllocateInput(drv, 0);
102- if (!local)
103- goto error;
104+ int rc;
105+
106 mt = calloc(1, sizeof(struct mtev_mtouch));
107+
108 if (!mt)
109 goto error;
110
111- local->name = dev->identifier;
112- local->type_name = XI_TOUCHSCREEN;
113- local->device_control = device_control;
114- local->read_input = read_input;
115- local->private = mt;
116- local->flags = XI86_POINTER_CAPABLE |
117- XI86_SEND_DRAG_EVENTS;
118-
119- local->conf_idev = dev;
120-
121- xf86CollectInputOptions(local, NULL, NULL);
122- //xf86OptionListReport(local->options);
123- xf86ProcessCommonOptions(local, local->options);
124+ pInfo->private = mt;
125+ pInfo->type_name = "UNKNOWN";
126+ pInfo->device_control = device_control;
127+ pInfo->read_input = read_input;
128
129+ mt->swap_xy = xf86SetBoolOption(pInfo->options, "SwapAxes", FALSE);
130+ mt->invert_x = xf86SetBoolOption(pInfo->options, "InvertX", FALSE);
131+ mt->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE);
132
133- mt->swap_xy = xf86SetBoolOption(local->options, "SwapAxes", FALSE);
134- mt->invert_x = xf86SetBoolOption(local->options, "InvertX", FALSE);
135- mt->invert_y = xf86SetBoolOption(local->options, "InvertY", FALSE);
136-
137- local->flags |= XI86_CONFIGURED;
138+ return Success;
139
140 error:
141- return local;
142+ return !Success;
143 }
144
145 static void uninit(InputDriverPtr drv, InputInfoPtr local, int flags)
146@@ -415,7 +405,6 @@ static InputDriverRec MTEV = {
147 .PreInit = preinit,
148 .UnInit = uninit,
149 .module = NULL,
150- .refCount = 0
151 };
152
153 static XF86ModuleVersionInfo VERSION = {
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
deleted file mode 100644
index 5f2adec1a..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
1require recipes-graphics/xorg-driver/xorg-driver-input.inc
2SUMMARY = "X.Org X server -- multitouch input driver"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
5
6DEPENDS += "pixman"
7
8PNBLACKLIST[xf86-input-mtev] ?= "BROKEN: doesn't build with B!=S (Makefile without ${S} in sed call) - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9
10SRC_URI = "git://gitorious.org/xorg/xf86-input-mtev.git file://fix-it.patch"
11SRCREV = "1eb469166ffc095c5801475f057f911f97a6e641"
12S = "${WORKDIR}/git"
13PV = "1.0.0+gitr${SRCPV}"
14PR = "${INC_PR}.0"
15
16EXTRA_OEMAKE = "'INCLUDE=-I${STAGING_INCDIR}/xorg -I${STAGING_INCDIR}/pixman-1'"
17
18#skip xorg-driver-common.inc AC_CHECK_FILE mangling
19do_configure_prepend () {
20 sed 's#gcc#${CC}#g' -i Makefile
21 return
22}
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
deleted file mode 100644
index fcd2f684b..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 621d946e56efac2c779b83b1a5c6b645169c4ebd Mon Sep 17 00:00:00 2001
2From: "Brian A. Lloyd" <brian.lloyd@familyhonor.net>
3Date: Wed, 1 Oct 2014 12:35:18 +0300
4Subject: [PATCH] Add config.h include to src/lx_memory.c
5
6The src/lx_memory.c file uses the xf86.h header file. This file must have
7HAVE_STRNDUP defined before calling it when the building platform has a strndup
8function. When using config.h, this file doesn't have that define and so fails
9to compile.
10
11The attached patch adds the conditional config.h to this file so it may compile
12on the affected platforms.
13
14The patch is trivial and may be included and used under whatever licensing
15desired.
16
17Closes: Free Desktop Bug #84541
18
19Signed-off-by: Brian A. Lloyd <brian.lloyd@familyhonor.net>
20Upstream-Status: Backport
21---
22 src/lx_memory.c | 3 +++
23 1 file changed, 3 insertions(+)
24
25diff --git a/src/lx_memory.c b/src/lx_memory.c
26index f26d280..992446f 100644
27--- a/src/lx_memory.c
28+++ b/src/lx_memory.c
29@@ -22,6 +22,9 @@
30 * contributors may be used to endorse or promote products derived from this
31 * software without specific prior written permission.
32 */
33+#if HAVE_CONFIG_H
34+#include "config.h"
35+#endif
36
37 #include "xf86.h"
38 #include "geode.h"
39--
402.1.1
41
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
deleted file mode 100644
index e543413ad..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require recipes-graphics/xorg-driver/xorg-driver-video.inc
2LIC_FILES_CHKSUM = "file://COPYING;md5=e7f3e39474aeea5af381a8e103dafc36"
3
4SUMMARY = "X.org server -- Geode GX2/LX display driver"
5PR = "${INC_PR}.0"
6
7SRC_URI += "file://0001-Add-config.h-include-to-src-lx_memory.c.patch"
8SRC_URI[md5sum] = "35fa387f6a33f6b22a56ce4bda424392"
9SRC_URI[sha256sum] = "38fc1f55e29fb7985b90c9021a4b7e5295d42888bd669174f42f3b7f681fc1a7"
10
11COMPATIBLE_HOST = "i.86.*-linux"
12
13RDEPENDS_${PN} += "xserver-xorg-module-exa"
14
15# 2_2.11.16-r21.0/xf86-video-geode-2.11.16/src/gx_driver.c:376:20: error: implicit declaration of function 'xf86MapVidMem' [-Werror=implicit-function-declaration]
16PNBLACKLIST[xf86-video-geode] ?= "BROKEN, fails to build - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
deleted file mode 100644
index 25e83209d..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From f485e878bc8bb0e381a38a30009308c82fa8d672 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 16 Aug 2012 08:18:56 +0200
4Subject: [PATCH] fix build with KMS disabled
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 src/glamo.h | 3 +++
9 1 files changed, 3 insertions(+), 0 deletions(-)
10
11diff --git a/src/glamo.h b/src/glamo.h
12index d4a2f19..5fd5c04 100644
13--- a/src/glamo.h
14+++ b/src/glamo.h
15@@ -37,8 +37,11 @@
16 #include "xf86.h"
17 #include "exa.h"
18 #include <linux/fb.h>
19+
20+#ifdef HAVE_KMS
21 #include <libdrm/drm.h>
22 #include <libdrm/glamo_bo.h>
23+#endif
24
25 #define GLAMO_REG_BASE(c) ((c)->attr.address[0])
26 #define GLAMO_REG_SIZE(c) (0x2400)
27--
281.7.8.6
29
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
deleted file mode 100644
index fab0b238f..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1From 040ade8bb86a771fa4e71b41d2080254830ca9f3 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 16 Mar 2013 17:44:37 +0100
4Subject: [PATCH] glamo*driver: remove references to mibstore
5
6* fix build with xserver-1.14
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 src/glamo-driver.c | 2 --
11 src/glamo-kms-driver.c | 1 -
12 2 files changed, 3 deletions(-)
13
14diff --git a/src/glamo-driver.c b/src/glamo-driver.c
15index 10b7762..22f57d7 100644
16--- a/src/glamo-driver.c
17+++ b/src/glamo-driver.c
18@@ -14,7 +14,6 @@
19 #include "xf86_OSproc.h"
20
21 #include "mipointer.h"
22-#include "mibstore.h"
23 #include "micmap.h"
24 #include "colormapst.h"
25 #include "xf86cmap.h"
26@@ -612,7 +611,6 @@ GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
27 }
28
29 xf86SetBlackWhitePixels(pScreen);
30- miInitializeBackingStore(pScreen);
31 xf86SetBackingStore(pScreen);
32
33 /* software cursor */
34diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
35index c5c7a00..f192398 100644
36--- a/src/glamo-kms-driver.c
37+++ b/src/glamo-kms-driver.c
38@@ -415,7 +415,6 @@ Bool GlamoKMSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
39
40 GlamoKMSExaInit(pScrn);
41
42- miInitializeBackingStore(pScreen);
43 xf86SetBackingStore(pScreen);
44 xf86SetSilkenMouse(pScreen);
45 miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
46--
471.8.1.5
48
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
deleted file mode 100644
index 0d6374363..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 963c221aa01be2ea99d39578d91e4aa08ec3ab0a Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 23 May 2011 14:29:38 +0200
4Subject: [PATCH] glamo-kms-driver: drop unused xf86_config
5
6* gcc-4.6 doesn't like unused variables which are only set and never read
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 src/glamo-kms-driver.c | 2 --
11 1 files changed, 0 insertions(+), 2 deletions(-)
12
13diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
14index ce87caa..c5c7a00 100644
15--- a/src/glamo-kms-driver.c
16+++ b/src/glamo-kms-driver.c
17@@ -208,7 +208,6 @@ static const xf86CrtcConfigFuncsRec crtc_config_funcs = {
18
19 Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
20 {
21- xf86CrtcConfigPtr xf86_config;
22 GlamoPtr pGlamo;
23 rgb defaultWeight = { 0, 0, 0 };
24 int max_width, max_height;
25@@ -254,7 +253,6 @@ Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
26
27 /* Allocate an xf86CrtcConfig */
28 xf86CrtcConfigInit(pScrn, &crtc_config_funcs);
29- xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
30
31 max_width = 480;
32 max_height = 640;
33--
341.7.5.rc3
35
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
deleted file mode 100644
index cbdc6e762..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
+++ /dev/null
@@ -1,279 +0,0 @@
1From 57e8944e3cced03b9526bd075649d74d97c24899 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Tue, 20 Nov 2012 22:18:23 +0100
4Subject: [PATCH 3/3] glamo-driver: adapt to xserver-0.13 video API
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 src/compat-api.h | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
9 src/glamo-driver.c | 43 ++++++++++++------------
10 2 files changed, 118 insertions(+), 21 deletions(-)
11 create mode 100644 src/compat-api.h
12
13diff --git a/src/compat-api.h b/src/compat-api.h
14new file mode 100644
15index 0000000..b1591b1
16--- /dev/null
17+++ b/src/compat-api.h
18@@ -0,0 +1,96 @@
19+/*
20+ * Copyright 2012 Red Hat, Inc.
21+ *
22+ * Permission is hereby granted, free of charge, to any person obtaining a
23+ * copy of this software and associated documentation files (the "Software"),
24+ * to deal in the Software without restriction, including without limitation
25+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
26+ * and/or sell copies of the Software, and to permit persons to whom the
27+ * Software is furnished to do so, subject to the following conditions:
28+ *
29+ * The above copyright notice and this permission notice (including the next
30+ * paragraph) shall be included in all copies or substantial portions of the
31+ * Software.
32+ *
33+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
36+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
39+ * DEALINGS IN THE SOFTWARE.
40+ *
41+ * Author: Dave Airlie <airlied@redhat.com>
42+ */
43+
44+/* this file provides API compat between server post 1.13 and pre it,
45+ it should be reused inside as many drivers as possible */
46+#ifndef COMPAT_API_H
47+#define COMPAT_API_H
48+
49+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
50+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
51+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
52+#endif
53+
54+#ifndef XF86_HAS_SCRN_CONV
55+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
56+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
57+#endif
58+
59+#ifndef XF86_SCRN_INTERFACE
60+
61+#define SCRN_ARG_TYPE int
62+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
63+
64+#define SCREEN_ARG_TYPE int
65+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
66+
67+#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv
68+
69+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
70+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
71+
72+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
73+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
74+
75+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
76+
77+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
78+
79+#define FREE_SCREEN_ARGS_DECL int arg, int flags
80+#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0
81+
82+#define VT_FUNC_ARGS_DECL int arg, int flags
83+#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags)
84+
85+#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex)
86+#else
87+#define SCRN_ARG_TYPE ScrnInfoPtr
88+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
89+
90+#define SCREEN_ARG_TYPE ScreenPtr
91+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
92+
93+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
94+
95+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
96+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
97+
98+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
99+#define CLOSE_SCREEN_ARGS pScreen
100+
101+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
102+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
103+
104+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
105+#define FREE_SCREEN_ARGS(x) (x)
106+
107+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
108+#define VT_FUNC_ARGS(flags) pScrn
109+
110+#define XF86_ENABLEDISABLEFB_ARG(x) (x)
111+
112+#endif
113+
114+#endif
115diff --git a/src/glamo-driver.c b/src/glamo-driver.c
116index b13caae..10b7762 100644
117--- a/src/glamo-driver.c
118+++ b/src/glamo-driver.c
119@@ -43,6 +43,7 @@
120
121 #include <sys/mman.h>
122
123+#include "compat-api.h"
124
125 static Bool debug = 0;
126
127@@ -68,10 +69,10 @@ static Bool
128 GlamoPreInit(ScrnInfoPtr pScrn, int flags);
129
130 static Bool
131-GlamoScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
132+GlamoScreenInit(SCREEN_INIT_ARGS_DECL);
133
134 static Bool
135-GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen);
136+GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL);
137
138 static Bool
139 GlamoCrtcResize(ScrnInfoPtr scrn, int width, int height);
140@@ -86,10 +87,10 @@ static void
141 GlamoRestoreHW(ScrnInfoPtr pScren);
142
143 static Bool
144-GlamoEnterVT(int scrnIndex, int flags);
145+GlamoEnterVT(VT_FUNC_ARGS_DECL);
146
147 static void
148-GlamoLeaveVT(int scrnIndex, int flags);
149+GlamoLeaveVT(VT_FUNC_ARGS_DECL);
150
151 static void
152 GlamoLoadColormap(ScrnInfoPtr pScrn, int numColors, int *indices,
153@@ -248,8 +249,8 @@ GlamoUnmapMMIO(ScrnInfoPtr pScrn) {
154 }
155
156 static Bool
157-GlamoSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) {
158- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
159+GlamoSwitchMode(SWITCH_MODE_ARGS_DECL) {
160+ SCRN_INFO_PTR(arg);
161 xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn);
162 xf86OutputPtr output = config->output[config->compat_output];
163 Rotation rotation;
164@@ -286,7 +287,7 @@ GlamoFbdevProbe(DriverPtr drv, GDevPtr *devSections, int numDevSections)
165
166 for (i = 0; i < numDevSections; i++) {
167
168- dev = xf86FindOptionValue(devSections[i]->options, "Device");
169+ dev = (char *) xf86FindOptionValue(devSections[i]->options, "Device");
170 if (fbdevHWProbe(NULL, dev, NULL)) {
171 int entity;
172 pScrn = NULL;
173@@ -430,7 +431,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
174
175 pGlamo->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
176
177- fb_device = xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
178+ fb_device = (char *) xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
179
180 /* open device */
181 if (!fbdevHWInit(pScrn, NULL, fb_device))
182@@ -523,7 +524,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
183
184
185 static Bool
186-GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
187+GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
188 {
189 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
190 GlamoPtr pGlamo = GlamoPTR(pScrn);
191@@ -545,7 +546,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
192 #endif
193
194 if (NULL == (pGlamo->fbmem = fbdevHWMapVidmem(pScrn))) {
195- xf86DrvMsg(scrnIndex, X_ERROR, "mapping of video memory failed\n");
196+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mapping of video memory failed\n");
197 return FALSE;
198 }
199
200@@ -556,13 +557,13 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
201 /* mi layer */
202 miClearVisualTypes();
203 if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) {
204- xf86DrvMsg(scrnIndex, X_ERROR,
205+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
206 "visual type setup failed for %d bits per pixel [1]\n",
207 pScrn->bitsPerPixel);
208 return FALSE;
209 }
210 if (!miSetPixmapDepths()) {
211- xf86DrvMsg(scrnIndex, X_ERROR, "pixmap depth setup failed\n");
212+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "pixmap depth setup failed\n");
213 return FALSE;
214 }
215
216@@ -617,7 +618,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
217 /* software cursor */
218 miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
219
220- GlamoEnterVT(scrnIndex, 0);
221+ GlamoEnterVT(VT_FUNC_ARGS(0));
222
223 xf86CrtcScreenInit(pScreen);
224 #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,5,0,0,0)
225@@ -627,7 +628,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
226 /* colormap */
227 pGlamo->colormap = NULL;
228 if (!miCreateDefColormap(pScreen)) {
229- xf86DrvMsg(scrnIndex, X_ERROR,
230+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
231 "internal error: miCreateDefColormap failed "
232 "in GlamoScreenInit()\n");
233 return FALSE;
234@@ -652,9 +653,9 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
235 }
236
237 static Bool
238-GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
239+GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL)
240 {
241- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
242+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
243 GlamoPtr pGlamo = GlamoPTR(pScrn);
244
245 if (pGlamo->accel)
246@@ -675,7 +676,7 @@ GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
247
248 pScreen->CreateScreenResources = pGlamo->CreateScreenResources;
249 pScreen->CloseScreen = pGlamo->CloseScreen;
250- return (*pScreen->CloseScreen)(scrnIndex, pScreen);
251+ return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
252 }
253
254 static Bool
255@@ -826,8 +827,8 @@ GlamoRestoreHW(ScrnInfoPtr pScrn) {
256 }
257
258 static Bool
259-GlamoEnterVT(int scrnIndex, int flags) {
260- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
261+GlamoEnterVT(VT_FUNC_ARGS_DECL) {
262+ SCRN_INFO_PTR(arg);
263 GlamoPtr pGlamo = GlamoPTR(pScrn);
264
265 GlamoSaveHW(pScrn);
266@@ -842,8 +843,8 @@ GlamoEnterVT(int scrnIndex, int flags) {
267 }
268
269 static void
270-GlamoLeaveVT(int scrnIndex, int flags) {
271- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
272+GlamoLeaveVT(VT_FUNC_ARGS_DECL) {
273+ SCRN_INFO_PTR(arg);
274 GlamoPtr pGlamo = GlamoPTR(pScrn);
275
276 if (pGlamo->accel)
277--
2781.8.0
279
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
deleted file mode 100644
index a82037109..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 180a00634f351a09ceabc5695d8e1acc3e585501 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Fri, 12 Dec 2014 12:00:10 +0100
4Subject: [PATCH] glamo.h: use const for jbt6k74_state_path
5
6* fix build issue with xserver 1.16:
7 glamo-driver.c:501:32: error: assignment discards 'const' qualifier from pointer target type [-Werror]
8
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 src/glamo.h | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/src/glamo.h b/src/glamo.h
15index 5fd5c04..5e072be 100644
16--- a/src/glamo.h
17+++ b/src/glamo.h
18@@ -148,7 +148,7 @@ typedef struct {
19 #endif
20
21 #ifdef JBT6K74_SET_STATE
22- char *jbt6k74_state_path;
23+ const char *jbt6k74_state_path;
24 char saved_jbt6k74_state[14];
25 #endif
26
27--
282.1.3
29
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
deleted file mode 100644
index 5818d0cc9..000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1require recipes-graphics/xorg-driver/xorg-driver-video.inc
2SUMMARY = "X.Org X server -- Glamo display driver with KMS support"
3DEPENDS += "libdrm"
4RDEPENDS_${PN} += "xserver-xorg-module-exa"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
7
8PE = "2"
9PV = "1.0.0+gitr${SRCPV}"
10PR = "${INC_PR}.4"
11
12SRC_URI = "git://git.openmoko.org/git/xf86-video-glamo.git;branch=master \
13 file://0001-glamo-kms-driver-drop-unused-xf86_config.patch \
14 file://0001-fix-build-with-KMS-disabled.patch \
15 file://0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch \
16 file://0001-glamo-driver-remove-references-to-mibstore.patch \
17 file://0004-glamo.h-use-const-for-jbt6k74_state_path.patch \
18"
19
20S = "${WORKDIR}/git"
21SRCREV = "cb9ed17035a79e49dde26a1e7e2bc5f10fd8144b"
22
23EXTRA_OECONF = " --disable-kms "
24
25PNBLACKLIST[xf86-video-glamo] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130629/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-kernel/ktap/ktap-module_git.bb b/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
deleted file mode 100644
index 1119d4c90..000000000
--- a/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
1# Released under the MIT license (see COPYING.MIT for the terms)
2
3require ktap.inc
4
5SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
6
7inherit module
8
9# See https://github.com/ktap/ktap/issues/80
10PNBLACKLIST[ktap-module] ?= "Not compatible with 3.19 kernel - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12# Only build the module
13MAKE_TARGETS = "mod"
14
15# Kernel module packages MUST begin with 'kernel-module-', otherwise
16# multilib image generation can fail.
17#
18# The following line is only necessary if the recipe name does not begin
19# with kernel-module-.
20#
21PKG_${PN} = "kernel-module-${PN}"
22
diff --git a/meta-oe/recipes-kernel/ktap/ktap.inc b/meta-oe/recipes-kernel/ktap/ktap.inc
deleted file mode 100644
index c214a020d..000000000
--- a/meta-oe/recipes-kernel/ktap/ktap.inc
+++ /dev/null
@@ -1,26 +0,0 @@
1# Released under the MIT license (see COPYING.MIT for the terms)
2
3HOMEPAGE = "http://www.ktap.org"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://LICENSE-GPL;md5=eb723b61539feef013de476e68b5c50a"
6
7PV = "0.4+gitr${SRCPV}"
8SRCREV = "c8401e07c89cdec9a5f673da4ddb12b7982b522b"
9SRC_URI = "git://github.com/ktap/ktap.git"
10
11S = "${WORKDIR}/git"
12
13# Package config is abused as a general compile time configuration tool.
14
15# Only supports x86_64 for now!. Needs to be enabled for ktap-module too.
16PACKAGECONFIG[ffi] = ""
17
18# Needed to resolve symbols in DSO and for sdt
19PACKAGECONFIG[libelf] = ",,elfutils"
20
21PACKAGECONFIG ?= "libelf"
22
23EXTRA_OEMAKE = " \
24 ${@bb.utils.contains('PACKAGECONFIG', 'libelf', '', 'NO_LIBELF=1', d)} \
25 ${@bb.utils.contains('PACKAGECONFIG', 'ffi', 'FFI=1', '', d)} \
26"
diff --git a/meta-oe/recipes-kernel/ktap/ktap_git.bb b/meta-oe/recipes-kernel/ktap/ktap_git.bb
deleted file mode 100644
index a947b7fcc..000000000
--- a/meta-oe/recipes-kernel/ktap/ktap_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1# Released under the MIT license (see COPYING.MIT for the terms)
2
3require ktap.inc
4
5SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
6DEPENDS = "ktap-module"
7
8PNBLACKLIST[ktap] ?= "Depends on blacklisted kernel-module-ktapvm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
9
10# Only build the userspace app
11EXTRA_OEMAKE += "ktap"
12
13do_install() {
14 install -d ${D}${bindir}
15 install -m 0755 ${S}/ktap ${D}${bindir}/
16}
17
18PACKAGE_ARCH = "${MACHINE_ARCH}"
19RRECOMMENDS_${PN} = "kernel-module-ktapvm"
diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna.inc b/meta-oe/recipes-multimedia/minidlna/minidlna.inc
deleted file mode 100644
index b333fce0b..000000000
--- a/meta-oe/recipes-multimedia/minidlna/minidlna.inc
+++ /dev/null
@@ -1,39 +0,0 @@
1DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
2being fully compliant with DLNA/UPnP-AV clients."
3LICENSE = "GPL-2.0|BSD"
4DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
5
6# because it depends on libav which has commercial flag
7LICENSE_FLAGS = "commercial"
8
9inherit gettext autotools-brokensep update-rc.d systemd
10
11SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
12 file://minidlna-daemon.init.d \
13 file://minidlna.service "
14
15S = "${WORKDIR}/git"
16
17# This remove "--exclude=autopoint" option from autoreconf argument to avoid
18# configure.ac:30: error: required file './ABOUT-NLS' not found
19EXTRA_AUTORECONF = ""
20
21do_install_append(){
22 install -d ${D}${sysconfdir}
23 install -m 0755 minidlna.conf ${D}${sysconfdir}
24
25# Systemd script
26 install -d ${D}${nonarch_base_libdir}/systemd/system
27 install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system
28
29# Sysvinit script
30 install -d ${D}${sysconfdir}/init.d
31 install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna
32
33}
34
35SYSTEMD_SERVICE_${PN} = "minidlna.service"
36
37INITSCRIPT_NAME = "minidlna"
38INITSCRIPT_PARAMS = "defaults 90"
39
diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb b/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
deleted file mode 100644
index 81d700a7b..000000000
--- a/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require ${BPN}.inc
2
3SRCREV = "v1_1_5"
4LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
5
6PNBLACKLIST[minidlna] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130630/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch b/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
deleted file mode 100644
index e232595cd..000000000
--- a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 3541649b711a773aa2e42ac80d9b4c1b36fce23f Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 27 Mar 2014 00:08:54 +0100
4Subject: [PATCH] configure: don't disable ASS support when explicitly enabled
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 configure | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/configure b/configure
12index 60fd308..2f7df3b 100755
13--- a/configure
14+++ b/configure
15@@ -4346,7 +4346,7 @@ fi
16
17
18 echocheck "SSA/ASS support"
19-if test "$_ass" = auto ; then
20+if test "$_ass" = auto -o "$_ass" = yes ; then
21 if pkg_config_add libass ; then
22 _ass=yes
23 def_ass='#define CONFIG_ASS 1'
24--
251.9.1
26
diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch b/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
deleted file mode 100644
index b4d98412f..000000000
--- a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
+++ /dev/null
@@ -1,136 +0,0 @@
1From 0571bb4f1a6e1934ee7e093ce7aa517b9bac8e6a Mon Sep 17 00:00:00 2001
2From: Awais Belal <awais_belal@mentor.com>
3Date: Sun, 17 Jan 2016 14:46:10 +0500
4Subject: [PATCH] demux_ogg: partially port libtheora glue code to Theora 1.0
5 API
6
7This partially backports the following commit to allow building
8with gcc-5.x and otherwise fails to find the definition of
9the _ilog function the way it is used.
10
11https://github.com/pigoz/mplayer-svn/commit/85e51408cd00979fc209da8e3a39b6f0e7f325bc
12
13Signed-off-by: Awais Belal <awais_belal@mentor.com>
14---
15 libmpdemux/demux_ogg.c | 52 ++++++++++++++++++++++++++------------------------
16 1 file changed, 27 insertions(+), 25 deletions(-)
17
18diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
19index 9eea061..9144426 100644
20--- a/libmpdemux/demux_ogg.c
21+++ b/libmpdemux/demux_ogg.c
22@@ -50,8 +50,7 @@
23 #endif
24
25 #ifdef CONFIG_OGGTHEORA
26-#include <theora/theora.h>
27-int _ilog (unsigned int); /* defined in many places in theora/lib/ */
28+#include <theora/theoradec.h>
29 #endif
30
31 #define BLOCK_SIZE 4096
32@@ -62,9 +61,10 @@ int _ilog (unsigned int); /* defined in many places in theora/lib/ */
33 */
34 #ifdef CONFIG_OGGTHEORA
35 typedef struct theora_struct_st {
36- theora_state st;
37- theora_comment cc;
38- theora_info inf;
39+ th_setup_info *tsi;
40+ th_dec_ctx *tctx;
41+ th_comment tc;
42+ th_info ti;
43 } theora_struct_t;
44 #endif
45
46@@ -117,7 +117,7 @@ typedef struct ogg_stream {
47 float samplerate; /// granulpos 2 time
48 int64_t lastpos;
49 int32_t lastsize;
50- int keyframe_frequency_force;
51+ int keyframe_granule_shift;
52
53 // Logical stream state
54 ogg_stream_state stream;
55@@ -300,11 +300,10 @@ static unsigned char *demux_ogg_read_packet(ogg_stream_t *os, ogg_packet *pack,
56 have theora_state st, until all header packets were passed to the
57 decoder. */
58 if (!pack->bytes || !(*data&0x80)) {
59- int keyframe_granule_shift = _ilog(os->keyframe_frequency_force - 1);
60- int64_t iframemask = (1 << keyframe_granule_shift) - 1;
61+ int64_t iframemask = iframemask = (1 << os->keyframe_granule_shift) - 1;
62
63 if (pack->granulepos >= 0) {
64- os->lastpos = pack->granulepos >> keyframe_granule_shift;
65+ os->lastpos = pack->granulepos >> os->keyframe_granule_shift;
66 os->lastpos += pack->granulepos & iframemask;
67 *keyframe = (pack->granulepos & iframemask) == 0;
68 } else {
69@@ -888,14 +887,15 @@ int demux_ogg_open(demuxer_t *demuxer)
70 #ifdef CONFIG_OGGTHEORA
71 } else if (pack.bytes >= 7 && !strncmp (&pack.packet[1], "theora", 6)) {
72 int errorCode = 0;
73- theora_info inf;
74- theora_comment cc;
75+ th_info ti;
76+ th_comment tc;
77+ th_setup_info *tsi = NULL;
78
79- theora_info_init (&inf);
80- theora_comment_init (&cc);
81+ th_info_init (&ti);
82+ th_comment_init (&tc);
83
84- errorCode = theora_decode_header (&inf, &cc, &pack);
85- if (errorCode) {
86+ errorCode = th_decode_headerin(&ti, &tc, &tsi, &pack);
87+ if (errorCode < 0) {
88 mp_msg(MSGT_DEMUX, MSGL_ERR,
89 "Theora header parsing failed: %i \n", errorCode);
90 } else {
91@@ -904,30 +904,32 @@ int demux_ogg_open(demuxer_t *demuxer)
92 sh_v->bih = calloc(1, sizeof(*sh_v->bih));
93 sh_v->bih->biSize = sizeof(*sh_v->bih);
94 sh_v->bih->biCompression = sh_v->format = FOURCC_THEORA;
95- sh_v->fps = ((double)inf.fps_numerator) / (double)inf.fps_denominator;
96- sh_v->frametime = ((double)inf.fps_denominator) / (double)inf.fps_numerator;
97- sh_v->disp_w = sh_v->bih->biWidth = inf.frame_width;
98- sh_v->disp_h = sh_v->bih->biHeight = inf.frame_height;
99+ sh_v->fps = ((double)ti.fps_numerator) / (double)ti.fps_denominator;
100+ sh_v->frametime = ((double)ti.fps_denominator) / (double)ti.fps_numerator;
101+ sh_v->i_bps = ti.target_bitrate / 8;
102+ sh_v->disp_w = sh_v->bih->biWidth = ti.frame_width;
103+ sh_v->disp_h = sh_v->bih->biHeight = ti.frame_height;
104 sh_v->bih->biBitCount = 24;
105 sh_v->bih->biPlanes = 3;
106 sh_v->bih->biSizeImage = ((sh_v->bih->biBitCount / 8) * sh_v->bih->biWidth * sh_v->bih->biHeight);
107 ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
108 ogg_d->subs[ogg_d->num_sub].theora = 1;
109- ogg_d->subs[ogg_d->num_sub].keyframe_frequency_force = inf.keyframe_frequency_force;
110+ ogg_d->subs[ogg_d->num_sub].keyframe_granule_shift = ti.keyframe_granule_shift;
111 ogg_d->subs[ogg_d->num_sub].id = n_video;
112 n_video++;
113 mp_msg(MSGT_DEMUX, MSGL_INFO,
114 "[Ogg] stream %d: video (Theora v%d.%d.%d), -vid %d\n",
115 ogg_d->num_sub,
116- (int)inf.version_major,
117- (int)inf.version_minor,
118- (int)inf.version_subminor,
119+ (int)ti.version_major,
120+ (int)ti.version_minor,
121+ (int)ti.version_subminor,
122 n_video - 1);
123 if (mp_msg_test(MSGT_HEADER, MSGL_V))
124 print_video_header(sh_v->bih, MSGL_V);
125 }
126- theora_comment_clear(&cc);
127- theora_info_clear(&inf);
128+ th_comment_clear(&tc);
129+ th_info_clear(&ti);
130+ th_setup_free(tsi);
131 #endif /* CONFIG_OGGTHEORA */
132 } else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
133 sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio);
134--
1351.9.1
136
diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb b/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
deleted file mode 100644
index 1a4ae27e6..000000000
--- a/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
+++ /dev/null
@@ -1,159 +0,0 @@
1SUMMARY = "Open Source multimedia player"
2SECTION = "multimedia"
3HOMEPAGE = "http://www.mplayerhq.hu/"
4DEPENDS = "libvpx libdvdread libtheora virtual/libsdl ffmpeg xsp zlib \
5 libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses \
6 libxv virtual/libx11 libass speex faad2 libxscrnsaver"
7
8RDEPENDS_${PN} = "mplayer-common"
9PROVIDES = "mplayer"
10RPROVIDES_${PN} = "mplayer"
11RCONFLICTS_${PN} = "mplayer"
12
13# Depends on xsp, libxv, virtual/libx11, libxscrnsaver
14REQUIRED_DISTRO_FEATURES = "x11"
15
16# because it depends on libpostproc/libav which has commercial flag
17LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'postproc', 'commercial', '', d)}"
18
19LICENSE = "GPLv3"
20LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
21
22SRC_URI = "git://repo.or.cz/mplayer.git \
23 file://0001-configure-don-t-disable-ASS-support-when-explicitly-.patch \
24 file://0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch \
25"
26
27SRCREV = "2c378c71a4d9b1df382db9aa787b646628b4e3f9"
28
29ARM_INSTRUCTION_SET = "arm"
30
31PV = "2.0+gitr${SRCPV}"
32PR = "r13"
33
34PARALLEL_MAKE = ""
35
36S = "${WORKDIR}/git"
37
38FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/"
39CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \
40 /usr/etc/mplayer/example.conf \
41 /usr/etc/mplayer/codecs.conf \
42"
43
44inherit autotools-brokensep pkgconfig python3native
45
46EXTRA_OECONF = " \
47 --prefix=/usr \
48 --mandir=${mandir} \
49 --target=${SIMPLE_TARGET_SYS} \
50 \
51 --disable-lirc \
52 --disable-lircc \
53 --disable-joystick \
54 --disable-vm \
55 --disable-xf86keysym \
56 --enable-tv \
57 --enable-tv-v4l2 \
58 --disable-tv-bsdbt848 \
59 --enable-rtc \
60 --enable-networking \
61 --disable-smb \
62 --disable-dvdnav \
63 --enable-dvdread \
64 --disable-dvdread-internal \
65 --disable-libdvdcss-internal \
66 --disable-enca \
67 --disable-ftp \
68 --disable-vstream \
69 \
70 --disable-gif \
71 --enable-png \
72 --enable-jpeg \
73 --disable-libcdio \
74 --disable-qtx \
75 --disable-xanim \
76 --disable-real \
77 --disable-xvid \
78 \
79 --enable-speex \
80 --enable-theora \
81 --disable-ladspa \
82 --disable-libdv \
83 --enable-mad \
84 --disable-xmms \
85 --disable-musepack \
86 \
87 --disable-gl \
88 --enable-sdl \
89 --disable-caca \
90 --disable-directx \
91 --disable-dvb \
92 --enable-xv \
93 --disable-vm \
94 --disable-xinerama \
95 --enable-x11 \
96 --disable-directfb \
97 --disable-tga \
98 --disable-pnm \
99 --disable-md5sum \
100 \
101 --enable-alsa \
102 --enable-ossaudio \
103 --disable-pulse \
104 --disable-jack \
105 --disable-openal \
106 --enable-select \
107 --enable-libass \
108 \
109 --extra-libs=' -lXext -lX11 -lvorbis -ltheoradec -lasound ' \
110"
111# -ltheoradec is missing in:
112# libmpcodecs/vd_theora.o: undefined reference to symbol 'theora_decode_init@@libtheora.so.1.0'
113
114EXTRA_OECONF_append_armv6 = " --enable-armv6"
115EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon"
116
117PACKAGECONFIG ??= "vorbis postproc"
118PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
119PACKAGECONFIG[a52] = "--enable-liba52,--disable-liba52,liba52"
120PACKAGECONFIG[lame] = ",,lame"
121PACKAGECONFIG[postproc] = ",--disable-libpostproc,libpostproc"
122PACKAGECONFIG[vorbis] = ",--disable-libvorbis,libvorbis"
123PACKAGECONFIG[portaudio] = ",--disable-portaudio,portaudio-v19"
124PACKAGECONFIG[mpg123] = ",--disable-mpg123,mpg123"
125PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
126
127FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
128BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
129
130CFLAGS_append = " -I${S}/libdvdread4 "
131
132do_configure() {
133 sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure
134 sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure
135 sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure
136 sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure
137 sed -i 's|_install_strip="-s"|_install_strip=""|g' ${S}/configure
138 sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile
139 sed -i 's|extra_cflags="-I. $extra_cflags"|extra_cflags="-I. -I${STAGING_INCDIR}/directfb $extra_cflags"|g' ${S}/configure
140 export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)"
141 ./configure ${EXTRA_OECONF}
142
143}
144
145do_compile () {
146 oe_runmake
147}
148
149do_install() {
150 oe_runmake 'DESTDIR=${D}' install-no-man
151 install -d ${D}/usr/etc/mplayer
152 install ${S}/etc/input.conf ${D}/usr/etc/mplayer/
153 install ${S}/etc/example.conf ${D}/usr/etc/mplayer/
154 install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/
155 [ -e ${D}/usr/lib ] && rmdir ${D}/usr/lib
156}
157
158# http://errors.yoctoproject.org/Errors/Details/40734/
159PNBLACKLIST[mplayer2] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb b/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
deleted file mode 100644
index 4e821be5a..000000000
--- a/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
+++ /dev/null
@@ -1,114 +0,0 @@
1SUMMARY = "GDAL is a translator library for raster geospatial data formats"
2HOMEPAGE = "http://www.gdal.org/"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=0952e17969fab12227096b5228f23149"
5
6DEPENDS = "proj sqlite3 tiff json-c"
7
8SRC_URI = "ftp://download.osgeo.org/gdal/${PV}/${BP}.tar.xz"
9
10SRC_URI[md5sum] = "2e126d7c6605691d38f3e71b945f5c73"
11SRC_URI[sha256sum] = "20e1042cff15a71038459a299732fb342428aea9912f32df30c85790fcab6302"
12
13inherit autotools-brokensep lib_package binconfig
14
15EXTRA_OECONF = "--without-perl \
16 --without-php \
17 --without-ruby \
18 --without-python \
19 \
20 --without-grass \
21 --without-libgrass \
22 --without-cfitsio \
23 --without-dds \
24 --without-gta \
25 --without-pcidsk \
26 --without-ogdi \
27 --without-fme \
28 --without-hdf4 \
29 --without-hdf5 \
30 --without-pg \
31 --without-jpeg12 \
32 --without-ogdi \
33 --without-netcdf \
34 --without-openjpeg \
35 --without-fgdb \
36 --without-ecw \
37 --without-kakadu \
38 --without-mrsid \
39 --without-jp2mrsid \
40 --without-mrsid_lidar \
41 --without-msg \
42 --without-bsb \
43 --without-grib \
44 --without-mysql \
45 --without-ingres \
46 --without-odbc \
47 --without-dods_root \
48 --without-xml2 \
49 --without-spatialite \
50 --without-pcre \
51 --without-dwgdirect \
52 --without-dwgdirect \
53 --without-idb \
54 --without-sde \
55 --without-sde-version \
56 --without-epsilon \
57 --without-webp \
58 --without-opencl \
59 --without-opencl-include \
60 --without-opencl-lib \
61 --without-freexl \
62 --without-pam \
63 --without-poppler \
64 --without-podofo \
65 --without-podofo-lib \
66 --without-podofo-extra-lib-for-test \
67 --without-static_proj4 \
68 --without-perl \
69 --without-php \
70 --without-ruby \
71 --without-python \
72 --without-java \
73 --without-mdb \
74 --without-jvm-lib \
75 --without-jvm-lib-add-rpath \
76 --without-rasdaman \
77 --without-armadillo \
78 \
79 --with-pcraster=internal \
80 --with-geotiff=internal \
81 \
82 --with-sqlite3=${STAGING_EXECPREFIXDIR} \
83 --with-libtiff=${STAGING_EXECPREFIXDIR} \
84 --with-libjson-c=${STAGING_EXECPREFIXDIR} \
85 --with-expat=${STAGING_EXECPREFIXDIR} \
86"
87
88EXTRA_OEMAKE += "INST_DATA="${datadir}/gdal""
89
90PACKAGECONFIG ?= "geos png jasper"
91PACKAGECONFIG[geos] = "--with-geos,--without-geos,geos"
92PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
93PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
94PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib"
95PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
96PACKAGECONFIG[z] = "--with-libz,--without-libz,zlib"
97PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
98PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl"
99
100do_configure_prepend () {
101 # The configure script has many hardcoded paths to search
102 # for the library headers when using external libraries,
103 # workaround it.
104 sed -e 's,/usr/include,NON_EXISTENT_DIR,g' \
105 -e 's,/usr/lib,NON_EXISTENT_DIR,g' \
106 -i ${S}/configure.in
107}
108
109FILES_${PN} += "${libdir}/gdalplugins"
110
111# | gdalserver.c:124:21: error: storage size of 'sHints' isn't known
112# | struct addrinfo sHints;
113# | ^
114PNBLACKLIST[gdal] ?= "BROKEN: fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb b/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
deleted file mode 100644
index 534ba3b14..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
+++ /dev/null
@@ -1,56 +0,0 @@
1SECTION = "x11/network"
2SUMMARY = "Mail user agent"
3DEPENDS = "gtk+ libetpan openssl aspell curl libgcrypt"
4LICENSE = "GPLv3"
5LIC_FILES_CHKSUM = "file://COPYING;md5=e059bde2972c1790af786f3e86bac22e"
6
7PNBLACKLIST[claws-mail] ?= "depends on blacklisted libetpan - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9inherit autotools pkgconfig gettext
10
11# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774
12SRC_URI = "\
13 ${SOURCEFORGE_MIRROR}/project/claws-mail/Claws%20Mail/${PV}/claws-mail-${PV}.tar.bz2;name=archive "
14SRC_URI[archive.md5sum] = "4c5ac7b21f0ed17d0f6404124c2229a4"
15SRC_URI[archive.sha256sum] = "ed70975a5056b3ffc4fe6e977f0d9606febc1499763c090241b029a73ff24e65"
16
17do_configure_append() {
18 cd ${S}/po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done; cd ${B}
19}
20
21PACKAGECONFIG ??= "startup-notification dbus"
22PACKAGECONFIG[enchant] = "--enable-enchant,--disable-enchant,enchant"
23PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
24PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
25PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
26
27# FIXME: maemo builds may want --enable-maemo
28# FIXME: some platforms may want --enable-generic-umpc
29EXTRA_OECONF = " \
30 --disable-manual \
31 --disable-crash-dialog \
32 --disable-jpilot \
33 --disable-trayicon-plugin \
34 --disable-spamassassin-plugin \
35 --disable-bogofilter-plugin \
36 --disable-pgpcore-plugin \
37 --disable-pgpmime-plugin \
38 --disable-pgpinline-plugin \
39 --disable-dillo-viewer-plugin \
40 --disable-valgrind \
41"
42
43# Remove enchant references:
44do_install_prepend() {
45 sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc
46}
47
48# Work-around broken GPE icon lookup:
49do_install_append() {
50 rm -r ${D}${datadir}/icons
51 install -d ${D}${datadir}/pixmaps
52 install -m 0644 ${S}/claws-mail.png ${D}${datadir}/pixmaps/
53 sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop
54}
55
56RSUGGESTS_${PN} = "claws-plugin-gtkhtml2-viewer claws-plugin-mailmbox claws-plugin-rssyl"
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
deleted file mode 100644
index 222a79602..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1Index: gtkhtml2_viewer-0.31/configure.ac
2===================================================================
3--- gtkhtml2_viewer-0.31.orig/configure.ac 2011-08-27 08:08:55.000000000 +0000
4+++ gtkhtml2_viewer-0.31/configure.ac 2014-07-18 07:28:42.769518618 +0000
5@@ -1,33 +1,27 @@
6 AC_PREREQ(2.60)
7-AC_INIT(src/gtkhtml2_viewer.c)
8+
9+dnl plugin version
10+m4_define([plugin_major_version],[0])
11+m4_define([plugin_minor_version],[31])
12+m4_define([plugin_micro_version],[0])
13+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
14+
15+AC_INIT(gtkhml2_viewer, plugin_version)
16+AC_CONFIG_SRCDIR(src/gtkhtml2_viewer.c)
17 AC_CONFIG_AUX_DIR(config)
18 AM_MAINTAINER_MODE
19
20 PACKAGE=gtkhtml2_viewer
21
22-dnl plugin version
23-MAJOR_VERSION=0
24-MINOR_VERSION=31
25-MICRO_VERSION=0
26+MAJOR_VERSION=plugin_major_version
27+MINOR_VERSION=plugin_minor_version
28+MICRO_VERSION=plugin_micro_version
29 EXTRA_VERSION=0
30-
31-if test \( $EXTRA_VERSION -eq 0 \); then
32- if test \( $MICRO_VERSION -eq 0 \); then
33- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
34- else
35- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
36- fi
37-else
38- if test \( $MICRO_VERSION -eq 0 \); then
39- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
40- else
41- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
42- fi
43-fi
44+VERSION=plugin_version
45
46 AC_CANONICAL_SYSTEM
47
48-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
49+AM_INIT_AUTOMAKE([foreign no-define])
50 AC_CONFIG_HEADERS(config.h)
51 AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
52
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
deleted file mode 100644
index 29b41be93..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1SECTION = "x11/network"
2SUMMARY = "Mail user agent plugins"
3DEPENDS = "claws-mail gtkhtml2 curl"
4LICENSE = "GPLv3"
5LIC_FILES_CHKSUM = "file://COPYING;md5=977f04a8048c04684e521c06e2844a94"
6
7PNBLACKLIST[claws-plugin-gtkhtml2-viewer] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9PR = "r1"
10
11SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/gtkhtml2_viewer-${PV}.tar.gz \
12 file://configure.patch"
13SRC_URI[md5sum] = "a6c9dfa6f969ccd844796a5724b52167"
14SRC_URI[sha256sum] = "4d41f6d961efaac0f51705e5052bac732bc0bdafee2ef2082a9cf9d89f183ae5"
15
16inherit autotools pkgconfig gettext
17
18S = "${WORKDIR}/gtkhtml2_viewer-${PV}"
19
20FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
21FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
22FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
23FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
24
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
deleted file mode 100644
index 986b5d40d..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SECTION = "x11/network"
2SUMMARY = "Mail user agent plugins"
3DEPENDS = "claws-mail"
4LICENSE = "GPLv3"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
6
7PNBLACKLIST[claws-plugin-mailmbox] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/mailmbox-${PV}.tar.gz"
10SRC_URI[md5sum] = "7f72c68e6e1a8768f1247f455fd20b62"
11SRC_URI[sha256sum] = "633f7835261c88a0aa06de38553ac935a1799a7128120963a7fa87ace01dac18"
12
13inherit autotools pkgconfig
14
15S = "${WORKDIR}/mailmbox-${PV}"
16
17FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
18FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
19FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
20FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
deleted file mode 100644
index a7a38f30c..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1Index: rssyl-0.34/configure.ac
2===================================================================
3--- rssyl-0.34.orig/configure.ac 2014-07-18 07:37:28.981532959 +0000
4+++ rssyl-0.34/configure.ac 2014-07-18 07:39:45.881536690 +0000
5@@ -1,5 +1,13 @@
6+
7+dnl plugin version
8+m4_define([plugin_major_version],[0])
9+m4_define([plugin_minor_version],[34])
10+m4_define([plugin_micro_version],[0])
11+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
12+
13 AC_PREREQ(2.60)
14-AC_INIT(src/plugin.c)
15+AC_INIT(rssyl, plugin_version)
16+AC_CONFIG_SRCDIR(src/plugin.c)
17 AC_CONFIG_AUX_DIR(config)
18 AM_MAINTAINER_MODE
19 AC_CONFIG_HEADERS(config.h)
20@@ -7,28 +15,15 @@
21 PACKAGE=rssyl
22
23 dnl plugin version
24-MAJOR_VERSION=0
25-MINOR_VERSION=34
26-MICRO_VERSION=0
27+MAJOR_VERSION=plugin_major_version
28+MINOR_VERSION=plugin_minor_version
29+MICRO_VERSION=plugin_micro_version
30 EXTRA_VERSION=0
31-
32-if test \( $EXTRA_VERSION -eq 0 \); then
33- if test \( $MICRO_VERSION -eq 0 \); then
34- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
35- else
36- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
37- fi
38-else
39- if test \( $MICRO_VERSION -eq 0 \); then
40- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
41- else
42- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
43- fi
44-fi
45+VERSION=plugin_version
46
47 AC_CANONICAL_SYSTEM
48
49-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
50+AM_INIT_AUTOMAKE([foreign no-define])
51 AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
52
53 AC_PROG_CC
diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
deleted file mode 100644
index eec9a2d70..000000000
--- a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SECTION = "x11/network"
2SUMMARY = "Mail user agent plugins"
3DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=0c2348e0a084e573f0220f5e45d8097e"
6
7PNBLACKLIST[claws-plugin-rssyl] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
8
9SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/rssyl-${PV}.tar.gz \
10 file://configure.patch"
11SRC_URI[md5sum] = "49b45608e8d160b3625d3d50016ec2ca"
12SRC_URI[sha256sum] = "2e96a1cd6a1a5bb7f86cd2eb48f6e174665957fafe1f3b1e8361aac3bb967f79"
13inherit autotools pkgconfig gettext
14
15S = "${WORKDIR}/rssyl-${PV}"
16
17FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
18FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
19FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
20FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch b/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
deleted file mode 100644
index 1520e578a..000000000
--- a/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- sylpheed-2.7.1.orig/libsylph/defs.h 2009-06-10 09:55:46.000000000 +0200
2+++ sylpheed-2.7.1/libsylph/defs.h 2012-05-06 08:28:27.514746256 +0200
3@@ -24,8 +24,6 @@
4 # include "config.h"
5 #endif
6
7-#include <glibconfig.h>
8-
9 #ifdef G_OS_WIN32
10 # include <glib/gwin32.h>
11 #endif
diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb b/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
deleted file mode 100644
index 978d777ea..000000000
--- a/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
1SECTION = "x11/network"
2SUMMARY = "Mail user agent"
3DEPENDS = "gtk+ gpgme gnutls"
4LICENSE = "GPLv2 & LGPLv2.1"
5LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
6 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
7
8PR = "r2"
9
10SRC_URI = "http://sylpheed.sraoss.jp/sylpheed/v2.7/sylpheed-${PV}.tar.bz2 \
11 file://glib-2.32.patch \
12"
13SRC_URI[md5sum] = "1f470525c1fbe53253813a0978c18228"
14SRC_URI[sha256sum] = "8bb6457db4e2eea1877b487d9ac8513546372db9a6a2e4271d11229f4af84e23"
15
16FILES_${PN} += "${datadir}/pixmaps ${datadir}/applications"
17FILES_${PN}-doc += "${datadir}"
18
19EXTRA_OECONF = "--disable-ssl"
20
21CFLAGS += "-D_GNU_SOURCE"
22
23do_configure_prepend() {
24 mkdir -p m4
25 for i in $(find ${S} -name "Makefile.am") ; do
26 sed -i s:'-I$(includedir)'::g $i
27 done
28}
29
30inherit autotools pkgconfig
31
32
33PNBLACKLIST[sylpheed] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130651/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb b/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
deleted file mode 100644
index c8c54a413..000000000
--- a/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
+++ /dev/null
@@ -1,42 +0,0 @@
1SUMMARY = "Apcupsd a daemon for controlling APC UPSes"
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=c12853cc7fdf20d17b4fddefd26b7802"
5
6SRC_URI = "http://garr.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.10/apcupsd-${PV}.tar.gz"
7SRC_URI[md5sum] = "5928822d855c5cf7ac29655e3e0b8c23"
8SRC_URI[sha256sum] = "0707b5ec9916fbde9e44eb8d18037c8d8f75dfd6aeef51aba5487e189eef2032"
9
10PNBLACKLIST[apcupsd] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12inherit autotools
13
14LD = "${CXX}"
15
16EXTRA_OECONF = "--without-x \
17 --enable-usb \
18 --with-distname=${DISTRO}"
19
20do_configure() {
21 export topdir=${S}
22 cp -R --no-dereference --preserve=mode,links -v ${S}/autoconf/configure.in ${S}
23
24 if ! [ -d ${S}/platforms/${DISTRO} ] ; then
25 cp -R --no-dereference --preserve=mode,links -v ${S}/platforms/unknown ${S}/platforms/${DISTRO}
26 fi
27
28 gnu-configize --force
29 # install --help says '-c' is an ignored option, but it turns out that the argument to -c isn't ignored, so drop the complete '-c path/to/strip' line
30 sed -i -e 's:$(INSTALL_PROGRAM) $(STRIP):$(INSTALL_PROGRAM):g' ${S}/autoconf/targets.mak
31 # Searching in host dirs triggers the QA checks
32 sed -i -e 's:-I/usr/local/include::g' -e 's:-L/usr/local/lib64::g' -e 's:-L/usr/local/lib::g' ${S}/configure
33
34 # m4 macros are missing, using autotools_do_configure leads to linking errors with gethostname_re
35 oe_runconf
36}
37
38do_install_append() {
39 rm ${D}${datadir}/hal -rf
40}
41
42
diff --git a/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch b/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
deleted file mode 100644
index 4200301a3..000000000
--- a/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Fix linking problem:
2undefined reference to `__aeabi_unwind_cpp_pr0'
3undefined reference to `__aeabi_unwind_cpp_pr1'
4Index: emacs/src/Makefile.in
5===================================================================
6--- emacs.orig/src/Makefile.in 2008-08-16 14:20:18.000000000 +0000
7+++ emacs/src/Makefile.in 2008-08-16 14:51:25.000000000 +0000
8@@ -443,7 +443,7 @@
9 ask GCC explicitly where to find libgcc.a. */
10
11 #ifndef LINKER
12-#define LINKER $(CC) -nostdlib
13+#define LINKER $(CC) -nostdlib -lgcc_s
14 #endif
15
16 #ifndef LIB_GCC
diff --git a/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch b/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
deleted file mode 100644
index c15207a43..000000000
--- a/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
+++ /dev/null
@@ -1,104 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3diff -uNr emacs-23.4/Makefile.in emacs-23.4.new/Makefile.in
4--- emacs-23.4/Makefile.in 2012-01-11 13:35:01.000000000 +0100
5+++ emacs-23.4.new/Makefile.in 2012-07-31 00:54:07.223590866 +0200
6@@ -336,7 +336,7 @@
7 # all preloaded elisp files, and only then dump the actual src/emacs, which
8 # is not wrong, but is overkill in 99.99% of the cases.
9 src: Makefile FRC
10- boot=bootstrap-emacs$(EXEEXT); \
11+ boot=${QEMU} bootstrap-emacs$(EXEEXT); \
12 if [ ! -x "src/$$boot" ]; then \
13 cd $@; $(MAKE) all $(MFLAGS) \
14 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
15diff -uNr emacs-23.4/leim/Makefile.in emacs-23.4.new/leim/Makefile.in
16--- emacs-23.4/leim/Makefile.in 2012-01-11 13:35:01.000000000 +0100
17+++ emacs-23.4.new/leim/Makefile.in 2012-07-31 00:54:07.179590866 +0200
18@@ -51,7 +51,7 @@
19
20 # How to run Emacs.
21 RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
22- ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
23+ ${QEMU} ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
24
25 # Subdirectories to be made if ${srcdir} is different from the current
26 # directory.
27diff -uNr emacs-23.4/lib-src/Makefile.in emacs-23.4.new/lib-src/Makefile.in
28--- emacs-23.4/lib-src/Makefile.in 2012-01-11 13:35:01.000000000 +0100
29+++ emacs-23.4.new/lib-src/Makefile.in 2012-07-31 00:54:07.180590866 +0200
30@@ -23,7 +23,7 @@
31 SHELL = /bin/sh
32
33 # Following ../lisp/Makefile.in.
34-EMACS = ../src/emacs
35+EMACS = ${QEMU} ../src/emacs
36 EMACSOPT = -batch --no-site-file --multibyte
37
38 # ==================== Things `configure' will edit ====================
39@@ -372,7 +372,7 @@
40 clobbered too. */
41 test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
42 $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
43- ./test-distrib ${srcdir}/testfile
44+ ${QEMU} ./test-distrib ${srcdir}/testfile
45
46 /* We need the following in order to create a <getopt.h> when the system
47 does not have one that works with the given compiler. */
48diff -uNr emacs-23.4/lisp/Makefile.in emacs-23.4.new/lisp/Makefile.in
49--- emacs-23.4/lisp/Makefile.in 2012-01-11 13:35:01.000000000 +0100
50+++ emacs-23.4.new/lisp/Makefile.in 2012-07-31 00:54:07.195590866 +0200
51@@ -26,8 +26,7 @@
52 # You can specify a different executable on the make command line,
53 # e.g. "make EMACS=../src/emacs ...".
54
55-EMACS = ../src/emacs
56-
57+EMACS = "${QEMU} ../src/emacs"
58 # Command line flags for Emacs. This must include --multibyte,
59 # otherwise some files will not compile.
60
61diff -uNr emacs-23.4/src/Makefile.in emacs-23.4.new/src/Makefile.in
62--- emacs-23.4/src/Makefile.in 2012-01-12 11:27:54.000000000 +0100
63+++ emacs-23.4.new/src/Makefile.in 2012-07-31 00:55:30.344593847 +0200
64@@ -482,7 +482,7 @@
65 this with the shell''s ``for'' construct.
66 Note that some people do not have '.' in their paths, so we must
67 use ./prefix-args. */
68-#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
69+#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
70 #else
71 #define YMF_PASS_LDFLAGS(flags) flags
72 #endif
73@@ -919,9 +919,9 @@
74 $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
75
76 #ifdef HAVE_SHM
77-RUN_TEMACS = `/bin/pwd`/temacs -nl
78+RUN_TEMACS = ${QEMU} temacs -nl
79 #else
80-RUN_TEMACS = `/bin/pwd`/temacs
81+RUN_TEMACS = ${QEMU} temacs
82 #endif
83
84 all: emacs${EXEEXT} $(OTHER_FILES)
85@@ -936,7 +936,7 @@
86 @: This new Emacs is as functional and more efficient then
87 @: bootstrap-emacs, so let us replace it.
88 -ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
89- -./emacs -q -batch -f list-load-path-shadows
90+ -${QEMU} ./emacs -q -batch -f list-load-path-shadows
91 #endif /* ! defined (CANNOT_DUMP) */
92
93 /* We run make-docfile twice because the command line may get too long
94@@ -954,8 +954,8 @@
95 only in order to reduce the command line length. --Stef */
96 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
97 -rm -f ${etc}DOC
98- ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
99- ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
100+ ${QEMU}${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
101+ ${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
102
103 ${libsrc}make-docfile${EXEEXT}:
104 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
diff --git a/meta-oe/recipes-support/emacs/emacs.inc b/meta-oe/recipes-support/emacs/emacs.inc
deleted file mode 100644
index 5b905f93f..000000000
--- a/meta-oe/recipes-support/emacs/emacs.inc
+++ /dev/null
@@ -1,147 +0,0 @@
1DESCRIPTION = "Emacs"
2HOMEPAGE = "http://www.gnu.org/software/emacs/"
3LICENSE = "GPLv3"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
5SECTION = "editor"
6# and it needs to run some generated binaries..
7DEPENDS += "qemu-native"
8
9DEPENDS +=" liblockfile"
10
11X11DEPENDS = " \
12 libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \
13 jpeg xz pixman libpng librsvg tiff libcroco \
14 libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \
15 libxft libxpm libxrandr libxrender \
16 gdk-pixbuf glib-2.0 gtk+ pango libxcb harfbuzz icu \
17"
18
19EXTRA_OECONF = "--without-sound --with-crt-dir=${STAGING_LIBDIR} "
20
21PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
22PACKAGECONFIG[x11] = "--with-x-toolkit=gtk,--without-x --without-dbus,${X11DEPENDS}"
23
24
25inherit autotools
26
27PACKAGES =+ "${PN}-el"
28
29FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
30 ${datadir}/emacs/*/*/*/*.el.gz"
31
32FILES_${PN} += "${datadir}/emacs ${datadir}/icons"
33
34FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
35
36TREEDIR = "${WORKDIR}/qemu-treedir"
37
38QEMUARCH= "${TARGET_ARCH}"
39QEMUARCH_x86 = "i386"
40
41# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
42QEMU = "qemu-${QEMUARCH} ${QEMU_OPTIONS} -s 1048576 -L ${TREEDIR} "
43
44export LOGNAME = "$(whoami)"
45
46do_compile_prepend() {
47 sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
48 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TOOLCHAIN_PATH}/${TARGET_SYS}/lib"
49# Ugly hack, see files/use-qemu.patch for more:
50 ln -sf ../src/emacs lisp/emacs
51 ln -sf ../src/emacs lib-src/emacs
52 ln -sf ../src/emacs leim/emacs
53#copy STAGING_DIR_TARGET and libgcc_s.so* to WORKDIR/qemu-treedir #copied code from glibc-package.bbclass
54 treedir=${TREEDIR}
55 if [ -e $treedir ];then
56 rm -rf $treedir
57 fi
58
59 mkdir -p $treedir/${base_libdir}
60
61 if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
62 cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir}
63 fi
64 if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
65 cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir}
66 fi
67 # stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
68 # temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
69 if [ ! -f $treedir/${base_libdir}/libc.so ]; then
70 ln -s libc.so.6 $treedir/${base_libdir}/libc.so
71 fi
72
73 # copy only as much stuff as we need
74 # before: 5.5G ../../qemu-treedir/
75 # after: 17M ../../qemu-treedir/
76 cp -pPR \
77 ${STAGING_DIR_TARGET}/${base_libdir}/ld-* \
78 ${STAGING_DIR_TARGET}/${base_libdir}/libc.* \
79 ${STAGING_DIR_TARGET}/${base_libdir}/libc-* \
80 ${STAGING_DIR_TARGET}/${base_libdir}/libm-* \
81 ${STAGING_DIR_TARGET}/${base_libdir}/libm.* \
82 ${STAGING_DIR_TARGET}/${base_libdir}/libtinfo.so.* \
83 ${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
84 ${STAGING_DIR_TARGET}/${base_libdir}/libdl* \
85 ${STAGING_DIR_TARGET}/${base_libdir}/librt* \
86 ${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \
87 ${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/
88
89 if [ ! -z "${@bb.utils.filter('PACKAGECONFIG', 'x11', d)}" ]; then
90 echo "X11 build enabled"
91 # copy only as much stuff as we need
92 # before: 5.5G ../../qemu-treedir/
93 # after: 86M ../../qemu-treedir/
94 cp -pPR \
95 ${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
96 ${STAGING_DIR_TARGET}/${base_libdir}/libz.so.* \
97 ${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
98 ${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
99 ${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
100 ${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
101 ${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
102 ${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
103 ${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
104 ${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
105 ${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
106 ${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
107 ${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
108 ${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
109 ${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
110 ${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
111 ${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
112 ${STAGING_DIR_TARGET}/${libdir}/libpng1*.so.* \
113 ${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
114 ${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
115 ${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
116 ${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
117 ${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \
118 ${STAGING_DIR_TARGET}/${libdir}/libharfbuzz.so.* \
119 ${STAGING_DIR_TARGET}/${libdir}/libicule.so.* \
120 ${STAGING_DIR_TARGET}/${libdir}/libicuuc.so.* \
121 ${STAGING_DIR_TARGET}/${libdir}/libicudata.so.* $treedir/${base_libdir}/
122
123 # X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
124 cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
125
126 # gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
127 cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
128
129 # pango pangocairo pangoft2
130 cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
131
132 # xcb-render xcb-shm xcb
133 cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
134 fi
135}
136
137do_install_append() {
138 # freaks package.bbclass and whole bitbake call returns error code
139 # ERROR: runstrip: ''arm-oe-linux-gnueabi-strip' '/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed
140 mv ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.ko ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.KO
141 # Info dir listing isn't interesting at this point so remove it if it exists.
142 if [ -e "${D}${infodir}/dir" ]; then
143 rm -f ${D}${infodir}/dir
144 fi
145}
146
147EXTRA_OEMAKE += 'QEMU="${QEMU}"'
diff --git a/meta-oe/recipes-support/emacs/emacs_23.4.bb b/meta-oe/recipes-support/emacs/emacs_23.4.bb
deleted file mode 100644
index 3388ff01e..000000000
--- a/meta-oe/recipes-support/emacs/emacs_23.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require emacs.inc
2
3PR = "r4"
4
5PNBLACKLIST[emacs] ?= "qemu: uncaught target signal 11 (Segmentation fault) - core dumped - the recipe will be removed on 2017-09-01 unless the issue is fixed"
6
7SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \
8 file://use-qemu.patch \
9 file://nostdlib-unwind.patch \
10"
11SRC_URI[tarball.md5sum] = "34405165fcd978fbc8b304cbd99ccf4f"
12SRC_URI[tarball.sha256sum] = "b9a2b8434052771f797d2032772eba862ff9aa143029efc72295170607289c18"
diff --git a/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb b/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
deleted file mode 100644
index 14ce57aaf..000000000
--- a/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1DESCRIPTION = "FarSight is an audio/video conferencing framework specifically designed for Instant Messengers."
2HOMEPAGE = "http://farsight.sf.net"
3SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${BP}.tar.gz"
4
5LICENSE = "LGPLv2.1"
6LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
7
8PR = "r3"
9
10DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base"
11
12inherit autotools pkgconfig
13
14PACKAGECONFIG ??= ""
15PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
16
17EXTRA_OECONF = " \
18 --disable-debug \
19 --disable-gtk-doc \
20 --disable-python \
21"
22
23FILES_${PN} += "${libdir}/*/*.so"
24FILES_${PN}-dev += "${libdir}/*/*.la"
25FILES_${PN}-staticdev += "${libdir}/*/*.a"
26FILES_${PN}-dbg += "${libdir}/*/.debug"
27
28
29SRC_URI[md5sum] = "e1f540cf3ebab06c3d7db1f46b44ac88"
30SRC_URI[sha256sum] = "3ae59aa61a8071c9fad111e5fd606aabc27961eb4192f8729987a27dae6b3974"
31
32PNBLACKLIST[farsight2] ?= "Depends on blacklisted gstreamer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
33PNBLACKLIST[farsight2] ?= "Depends on blacklisted libnice - the recipe will be removed on 2017-09-01 unless the issue is fixed"
34PNBLACKLIST[farsight2] ?= "Depends on blacklisted gst-plugins-base - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/fftw/benchfft_3.1.bb b/meta-oe/recipes-support/fftw/benchfft_3.1.bb
deleted file mode 100644
index 49cc270fe..000000000
--- a/meta-oe/recipes-support/fftw/benchfft_3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "FFTW benchmarks"
2SECTION = "libs"
3LICENSE = "GPLv2"
4
5# single precision fftw is called fftwf
6DEPENDS = "virtual/fftw"
7
8SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz"
9
10EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
11
12inherit autotools pkgconfig
13
14do_compile_prepend() {
15 sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile
16}
17
18SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8"
19SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b"
20
21PNBLACKLIST[benchfft] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch b/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
deleted file mode 100644
index e1e7aed50..000000000
--- a/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1--- flite-1.3-release/configure.in.old 2008-01-06 02:17:47.000000000 -0600
2+++ flite-1.3-release/configure.in 2008-01-06 02:19:56.000000000 -0600
3@@ -220,7 +220,8 @@ dnl allow the user to override the one d
4 dnl
5 AC_ARG_WITH( audio,
6 [ --with-audio with specific audio support (none linux freebsd etc) ],
7- AUDIODRIVER=$with_audio )
8+ [AUDIODRIVER=$with_audio
9+ AUDIODEFS=])
10
11 if test "x$AUDIODEFS" = x; then
12 case "$AUDIODRIVER" in
diff --git a/meta-oe/recipes-support/flite/flite-alsa_1.3.bb b/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
deleted file mode 100644
index 0883c1ad4..000000000
--- a/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1require flite.inc
2
3PR = "r1"
4
5EXTRA_OECONF = "--with-audio=alsa --enable-shared"
6
7SRC_URI = "http://www.speech.cs.cmu.edu/flite/packed/flite-${PV}/flite-${PV}-release.tar.gz \
8 file://flite-1.3-alsa_support-1.2.diff \
9 file://flite-alsa-1.3-configure-with-audio.patch"
10
11SRC_URI[md5sum] = "ae0aca1cb7b4801f4372f3a75a9e52b5"
12SRC_URI[sha256sum] = "922225f7001e57a0fbace8833b0a48790a68f6c7b491f2d47c78ad537ab78a8b"
13
14# Looks like caused by flite-1.3-alsa_support-1.2.diff
15# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
16# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
17# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
18# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
19# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
20# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
21PNBLACKLIST[flite-alsa] ?= "OLD: wasn't updated in over 6 years, only navit was RSUGGESTing it and doesn't respect LDFLAGS - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/flite/flite.inc b/meta-oe/recipes-support/flite/flite.inc
deleted file mode 100644
index 0ef82c004..000000000
--- a/meta-oe/recipes-support/flite/flite.inc
+++ /dev/null
@@ -1,33 +0,0 @@
1DESCRIPTION = "flite - the festival light speech synthesizer"
2HOMEPAGE = "http://www.speech.cs.cmu.edu/flite/"
3SECTION = "console/utils"
4LICENSE = "flite"
5LIC_FILES_CHKSUM = "file://COPYING;md5=68a16b1ee49c96c36f232ccdcd287650"
6DEPENDS = "alsa-oss"
7
8PARALLEL_MAKE = ""
9
10S = "${WORKDIR}/flite-${PV}-release"
11
12CFLAGS += " -lasound "
13
14inherit autotools-brokensep
15
16PACKAGES += "lib${PN} lib${PN}-vox8 lib${PN}-vox16"
17
18FILES_${PN} = "${bindir}"
19
20FILES_lib${PN} ="${libdir}/libflite.so.* \
21 ${libdir}/libflite_cmu_time_awb.so.* \
22 ${libdir}/libflite_cmulex.so.* \
23 ${libdir}/libflite_usenglish.so.*"
24
25FILES_lib${PN}-vox8 = "${libdir}/libflite_cmu_us_kal.so.*"
26
27FILES_lib${PN}-vox16 = "${libdir}/libflite_cmu_us_kal16.so.*"
28
29LEAD_SONAME = "libflite.so"
30
31do_install() {
32 oe_runmake INSTALLBINDIR="${D}${bindir}" INSTALLLIBDIR="${D}${libdir}" INSTALLINCDIR="${D}${includedir}" install
33}
diff --git a/meta-oe/recipes-support/iksemel/iksemel_1.4.bb b/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
deleted file mode 100644
index 3dc22c590..000000000
--- a/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1SUMMARY = "Fast and portable XML parser and Jabber protocol library"
2AUTHOR = "Gurer Ozen <meduketto at gmail.com>"
3HOMEPAGE = "http://iksemel.googlecode.com"
4SECTION = "libs"
5LICENSE = "LGPLv2.1"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
7DEPENDS = "gnutls"
8
9PR = "r1"
10
11# http://errors.yoctoproject.org/Errors/Details/25825/
12PNBLACKLIST[iksemel] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14SRC_URI = "http://iksemel.googlecode.com/files/${BP}.tar.gz;name=archive \
15 file://r25.diff"
16SRC_URI[archive.md5sum] = "532e77181694f87ad5eb59435d11c1ca"
17SRC_URI[archive.sha256sum] = "458c1b8fb3349076a6cecf26c29db1d561315d84e16bfcfba419f327f502e244"
18
19inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/libdbi/libdbi-drivers.inc b/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
deleted file mode 100644
index b509532e4..000000000
--- a/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
+++ /dev/null
@@ -1,51 +0,0 @@
1# libdbi-drivers OE build file
2# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved
3# Released under the MIT license (see packages/COPYING)
4
5DESCRIPTION = "Database Drivers for libdbi"
6HOMEPAGE = "http://libdbi-drivers.sourceforge.net/"
7LICENSE = "LGPLv2.1"
8LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
9SECTION = "libs"
10
11PROVIDES = "libdbd-sqlite"
12DEPENDS = "libdbi sqlite sqlite3 mysql5 postgresql"
13
14SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz"
15
16inherit autotools
17
18PACKAGES += "libdbd-sqlite3 libdbd-sqlite libdbd-pgsql libdbd-mysql"
19
20EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \
21 --with-dbi-libdir=${STAGING_LIBDIR} \
22 --with-sqlite \
23 --with-sqlite3 \
24 --with-pgsql \
25 --with-mysql \
26 --with-sqlite-libdir=${STAGING_LIBDIR} \
27 --with-sqlite-incdir=${STAGING_INCDIR} \
28 --with-sqlite3-incdir=${STAGING_INCDIR} \
29 --with-sqlite3-libdir=${STAGING_LIBDIR} \
30 --with-mysql-incdir=${STAGING_INCDIR} \
31 --with-mysql-libdir=${STAGING_LIBDIR} \
32 --with-pgsql-incdir=${STAGING_INCDIR} \
33 --with-pgsql-libdir=${STAGING_LIBDIR} \
34 --disable-docs"
35
36FILES_${PN}-dbg += " ${libdir}/dbd/.debug/*.so"
37FILES_${PN}-dev += " ${libdir}/dbd/*.la"
38FILES_${PN}-staticdev += " ${libdir}/dbd/*.a"
39
40DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi"
41FILES_libdbd-sqlite = "${libdir}/dbd/libdbdsqlite.so"
42
43DESCRIPTION_libdbd-sqlite3 = "SQLite3 database driver for libdbi"
44FILES_libdbd-sqlite3 = "${libdir}/dbd/libdbdsqlite3.so"
45
46DESCRIPTION_libdbd-mysql = "MySQL4 database driver for libdbi"
47FILES_libdbd-mysql = "${libdir}/dbd/libdbdmysql.so"
48
49DESCRIPTION_libdbd-psql = "Postgres SQL database driver for libdbi"
50FILES_libdbd-pgsql = "${libdir}/dbd/libdbdpgsql.so"
51
diff --git a/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb b/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
deleted file mode 100644
index 8d2c5054a..000000000
--- a/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
1require ${PN}.inc
2
3
4SRC_URI[md5sum] = "4de79b323162a5a7652b65b608eca6cd"
5SRC_URI[sha256sum] = "4ab9944398ce769c0deeb64d2f73555c67bc25ccd2ade1ccf552226c7b2acf72"
6
7# libdbi-drivers-0.8.3-1/drivers/mysql/dbd_mysql.c:232:5: error: conflicting types for 'dbd_goto_row'
8PNBLACKLIST[libdbi-drivers] ?= "BROKEN: fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
deleted file mode 100644
index d05967da3..000000000
--- a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1Index: libetpan-0.57/configure.ac
2===================================================================
3--- libetpan-0.57.orig/configure.ac 2008-10-08 19:54:20.000000000 +0000
4+++ libetpan-0.57/configure.ac 2008-11-11 16:34:33.000000000 +0000
5@@ -106,6 +106,7 @@
6
7 # Check the C compiler.
8 AC_PROG_CC
9+AC_PROG_CXX
10
11 # Compiler flags.
12 AC_ARG_ENABLE(debug, [ --enable-debug setup flags (gcc) for debugging (default=no)],
diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
deleted file mode 100644
index 438f44f15..000000000
--- a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- libetpan-0.57/configure.ac~ 2009-09-21 23:31:42.000000000 +0200
2+++ libetpan-0.57/configure.ac 2009-09-21 23:31:42.000000000 +0200
3@@ -457,7 +457,7 @@
4 LDFLAGS="-$flag $LDFLAGS"
5 AC_TRY_LINK([], [pthread_create();],
6 [pthflag=yes; checkpthread=no],
7- [pthflag=no; LDFLAGS="$OLDCFLAGS"])
8+ [pthflag=no; LDFLAGS="$OLDFLAGS"])
9 AC_MSG_RESULT($pthflag)
10 fi
11 done
diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
deleted file mode 100644
index 4f0161727..000000000
--- a/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Index: libetpan-0.57/rules.mk
2===================================================================
3--- libetpan-0.57.orig/rules.mk
4+++ libetpan-0.57/rules.mk
5@@ -134,9 +134,9 @@ prepare-am: prepare-local
6 if test -e ../../$(subdir)/$${hdr}; then \
7 echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \
8 $(LN_S) -f ../../$(subdir)/$${hdr} .; \
9 else \
10- echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \
11- $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \
12+ echo "$(LN_S) -f $(srcdir)/$${hdr} ."; \
13+ $(LN_S) -f $(srcdir)/$${hdr} .; \
14 fi; \
15 fi; \
16 done; \
diff --git a/meta-oe/recipes-support/libetpan/libetpan_0.57.bb b/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
deleted file mode 100644
index 5cadf16ce..000000000
--- a/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \
2It supports the protocols SMTP, POP3, IMAP and NNTP."
3HOMEPAGE = "http://www.etpan.org"
4SECTION = "libs"
5DEPENDS = "gnutls liblockfile curl"
6LICENSE = "BSD"
7LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f18ebe7e452708c26f83954f81062ba7"
8
9PR = "r1"
10
11# http://errors.yoctoproject.org/Errors/Details/25823/
12PNBLACKLIST[libetpan] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
13
14SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \
15 file://libetpan-autoreconf.patch \
16 file://libetpan-ldflags.patch \
17 file://sepbuild.patch"
18
19inherit autotools pkgconfig gettext binconfig
20
21EXTRA_OECONF = "--without-openssl --without-sasl --with-gnutls --disable-db"
22
23PARALLEL_MAKE = ""
24
25FILES_${PN} = "${libdir}/lib*.so.*"
26FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig"
27
28
29SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0"
30SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011"
diff --git a/meta-oe/recipes-support/ode/ode/configure.patch b/meta-oe/recipes-support/ode/ode/configure.patch
deleted file mode 100644
index 246b2e2c2..000000000
--- a/meta-oe/recipes-support/ode/ode/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: ode-0.13/libccd/configure.ac
2===================================================================
3--- ode-0.13.orig/libccd/configure.ac 2013-08-19 17:48:03.000000000 +0000
4+++ ode-0.13/libccd/configure.ac 2014-07-17 22:04:16.580595690 +0000
5@@ -5,7 +5,7 @@
6 AC_INIT([libccd], [1.0], [danfis@danfis.cz])
7 AC_CONFIG_SRCDIR([src/ccd.c])
8 AC_CONFIG_HEADERS([src/config.h])
9-AM_INIT_AUTOMAKE
10+AM_INIT_AUTOMAKE([foreign])
11
12 # Checks for programs.
13 AC_PROG_CXX
diff --git a/meta-oe/recipes-support/ode/ode_0.13.bb b/meta-oe/recipes-support/ode/ode_0.13.bb
deleted file mode 100644
index c90c81954..000000000
--- a/meta-oe/recipes-support/ode/ode_0.13.bb
+++ /dev/null
@@ -1,31 +0,0 @@
1SUMMARY = "ODE is an Open Source Physics Engine"
2SECTION = "libs"
3HOMEPAGE = "http://www.ode.org"
4LICENSE = "LGPLv2.1 & BSD"
5LIC_FILES_CHKSUM = " \
6 file://COPYING;md5=1de906ee96808d9776dd72a5f9a79a22 \
7 file://LICENSE.TXT;md5=771782cb6245c7fbbe74bc0ec059beff \
8"
9# LICENSE-BSD.TXT is missing in 0.13 tarball, but COPYING still says it's dual licensed
10# and svn repo still contains LICENSE-BSD.TXT so maybe it will return in next tarball
11# file://LICENSE-BSD.TXT;md5=c74e6304a772117e059458fb9763a928
12
13
14SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-${PV}.tar.bz2 \
15 file://configure.patch"
16SRC_URI[md5sum] = "04b32c9645c147e18caff7a597a19f84"
17SRC_URI[sha256sum] = "34ce3e236e313bf109a0cb5546d2fca462aed99f29a42e62bc1463b803c31ef9"
18
19inherit autotools binconfig
20
21EXTRA_OECONF = "--disable-demos --enable-soname"
22
23FILES_${PN} = "${libdir}/lib*${SOLIBS}"
24
25PACKAGECONFIG ?= ""
26# if it isn't explicitly selected and "$build_os" == "$target_os", then configure will run
27# series of AC_TRY_RUN which won't work for cross-compilation and configure fails
28PACKAGECONFIG[double-precision] = "--enable-double-precision,--disable-double-precision"
29
30PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130599/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
31PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130620/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb b/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
deleted file mode 100644
index d3f2e789b..000000000
--- a/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1SUMMARY = "An encoder/decoder for the VCDIFF (RFC3284) format"
2DESCRIPTION = "A library with a simple API is included, as well as a \
3 command-line executable that can apply the encoder and \
4 decoder to source, target, and delta files. \
5 A slight variation from the draft standard is defined \
6 to allow chunk-by-chunk decoding when only a partial \
7 delta file window is available."
8HOMEPAGE = "http://code.google.com/p/open-vcdiff/"
9SECTION = "console/utils"
10
11LICENSE = "Apache-2.0"
12LIC_FILES_CHKSUM = "file://COPYING;md5=ff820d4ddc1ba05b6fd37b41a21506f9"
13
14SRC_URI = "https://drive.google.com/uc?id=0B5WpIi2fQU1aNGJwVE9hUjU5clU&export=download;downloadfilename=${BP}.tar.gz"
15SRC_URI[md5sum] = "5c0d378d907bebc38b51c3d7e4117011"
16SRC_URI[sha256sum] = "2b142b1027fb0a62c41347600e01a53fa274dad15445a7da48083c830c3138b3"
17
18inherit autotools
19
20# http://errors.yoctoproject.org/Errors/Details/68667/
21PNBLACKLIST[open-vcdiff] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb b/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
deleted file mode 100644
index 107184be4..000000000
--- a/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
+++ /dev/null
@@ -1,41 +0,0 @@
1SUMMARY = "Opencv : The Open Computer Vision Library"
2HOMEPAGE = "http://opencv.willowgarage.com/wiki/"
3SECTION = "libs"
4LICENSE = "BSD"
5
6DEPENDS = "opencv"
7
8LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14 \
9"
10SRCREV = "6fae07ba8867b8fd2c53344a774aab669afa7c5e"
11SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
12 "
13PV = "2.4.3+git${SRCPV}"
14
15S = "${WORKDIR}/git"
16
17do_install() {
18 cd samples/c
19 install -d ${D}/${bindir}
20 install -d ${D}/${datadir}/opencv/samples
21
22 cp * ${D}/${datadir}/opencv/samples || true
23
24 for i in *.c; do
25 echo "compiling $i"
26 ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` || true
27 install -m 0755 `basename $i .c` ${D}/${bindir} || true
28 rm ${D}/${datadir}/opencv/samples/`basename $i .c` || true
29 done
30 for i in *.cpp; do
31 echo "compiling $i"
32 ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` || true
33 install -m 0755 `basename $i .cpp` ${D}/${bindir} || true
34 rm ${D}/${datadir}/opencv/samples/`basename $i .cpp` || true
35 done
36}
37
38FILES_${PN}-dev += "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp* ${datadir}/opencv/samples/build*"
39FILES_${PN} += "${bindir} ${datadir}/opencv"
40
41PNBLACKLIST[opencv-samples] ?= "Depends on blacklisted opencv - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch b/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
deleted file mode 100644
index 7f809bce1..000000000
--- a/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 711f07a34ceb504e8f75e978692201efa58268ca Mon Sep 17 00:00:00 2001
2From: Dinar Valeev <dvaleev@suse.com>
3Date: Thu, 16 Jan 2014 21:53:49 +0100
4Subject: [PATCH] Use __vector instead of vector as suggests Eigen
5
6This fixes build on PowerPC where Eigen unsets vector, bool and pixel
7
8Signed-off-by: Dinar Valeev <dvaleev@suse.com>
9
10This patch is already part of OpenCV v3.0. The patch can be obtained
11from:
12
13 https://github.com/Itseez/opencv/commit/711f07a34ceb504e8f75e978692201efa58268ca.patch
14
15Upstream-Status: Backport [commit 711f07a34c, part of version 3.0]
16
17Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
18---
19 3rdparty/include/opencl/1.2/CL/cl_platform.h | 14 +++++++-------
20 1 file changed, 7 insertions(+), 7 deletions(-)
21
22diff --git a/3rdparty/include/opencl/1.2/CL/cl_platform.h b/3rdparty/include/opencl/1.2/CL/cl_platform.h
23index e94949a..42c35d5 100644
24--- a/3rdparty/include/opencl/1.2/CL/cl_platform.h
25+++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h
26@@ -332,13 +332,13 @@ typedef unsigned int cl_GLenum;
27 /* Define basic vector types */
28 #if defined( __VEC__ )
29 #include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
30- typedef vector unsigned char __cl_uchar16;
31- typedef vector signed char __cl_char16;
32- typedef vector unsigned short __cl_ushort8;
33- typedef vector signed short __cl_short8;
34- typedef vector unsigned int __cl_uint4;
35- typedef vector signed int __cl_int4;
36- typedef vector float __cl_float4;
37+ typedef __vector unsigned char __cl_uchar16;
38+ typedef __vector signed char __cl_char16;
39+ typedef __vector unsigned short __cl_ushort8;
40+ typedef __vector signed short __cl_short8;
41+ typedef __vector unsigned int __cl_uint4;
42+ typedef __vector signed int __cl_int4;
43+ typedef __vector float __cl_float4;
44 #define __CL_UCHAR16__ 1
45 #define __CL_CHAR16__ 1
46 #define __CL_USHORT8__ 1
47--
481.9.3
49
diff --git a/meta-oe/recipes-support/opencv/opencv_2.4.bb b/meta-oe/recipes-support/opencv/opencv_2.4.bb
deleted file mode 100644
index d17c640ac..000000000
--- a/meta-oe/recipes-support/opencv/opencv_2.4.bb
+++ /dev/null
@@ -1,106 +0,0 @@
1SUMMARY = "Opencv : The Open Computer Vision Library"
2HOMEPAGE = "http://opencv.org/"
3SECTION = "libs"
4
5LICENSE = "BSD-3-Clause"
6LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14"
7
8ARM_INSTRUCTION_SET_armv4 = "arm"
9ARM_INSTRUCTION_SET_armv5 = "arm"
10
11DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0"
12
13SRCREV = "2c9547e3147779001811d01936aed38f560929fc"
14SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
15 file://0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch"
16
17PV = "2.4.11+git${SRCPV}"
18
19S = "${WORKDIR}/git"
20
21# Do an out-of-tree build
22OECMAKE_SOURCEPATH = "${S}"
23OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}"
24
25EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
26 -DBUILD_PYTHON_SUPPORT=ON \
27 -DWITH_GSTREAMER=OFF \
28 -DWITH_1394=OFF \
29 -DCMAKE_SKIP_RPATH=ON \
30 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
31 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
32 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
33 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
34 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
35"
36
37PACKAGECONFIG ??= "eigen jpeg png tiff v4l libv4l \
38 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
39 ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
40
41PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
42PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+,"
43PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
44PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
45PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
46PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
47PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
48PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
49PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
50
51inherit distutils-base pkgconfig cmake
52
53export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
54export PYTHON="${STAGING_BINDIR_NATIVE}/python"
55
56TARGET_CC_ARCH += "-I${S}/include "
57
58PACKAGES += "${PN}-apps python-opencv"
59
60python populate_packages_prepend () {
61 cv_libdir = d.expand('${libdir}')
62 cv_libdir_dbg = d.expand('${libdir}/.debug')
63 do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
64 do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
65 do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
66 do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
67
68 pn = d.getVar('PN')
69 metapkg = pn + '-dev'
70 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
71 blacklist = [ metapkg ]
72 metapkg_rdepends = [ ]
73 packages = d.getVar('PACKAGES').split()
74 for pkg in packages[1:]:
75 if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
76 metapkg_rdepends.append(pkg)
77 d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
78}
79
80PACKAGES_DYNAMIC += "^libopencv-.*"
81
82FILES_${PN} = ""
83FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
84FILES_${PN}-dbg += "${libdir}/.debug"
85FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
86FILES_${PN}-doc = "${datadir}/OpenCV/doc"
87
88ALLOW_EMPTY_${PN} = "1"
89
90SUMMARY_python-opencv = "Python bindings to opencv"
91FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
92RDEPENDS_python-opencv = "python-core python-numpy"
93
94do_install_append() {
95 cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
96 sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
97
98 # Move Python files into correct library folder (for multilib build)
99 if [ "$libdir" != "/usr/lib" ]; then
100 mv ${D}/usr/lib/* ${D}/${libdir}/
101 rm -rf ${D}/usr/lib
102 fi
103}
104
105# http://errors.yoctoproject.org/Errors/Details/40660/
106PNBLACKLIST[opencv] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/openmotif/openmotif/configure.patch b/meta-oe/recipes-support/openmotif/openmotif/configure.patch
deleted file mode 100644
index 8868e805a..000000000
--- a/meta-oe/recipes-support/openmotif/openmotif/configure.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1--- a/configure.ac~ 2009-10-27 14:10:23.000000000 -0200
2+++ b/configure.ac 2011-05-31 10:51:00.207232036 -0300
3@@ -3,12 +3,6 @@
4 AC_CONFIG_SRCDIR([lib/Xm/Form.c])
5 AC_PREREQ(2.52)
6 AC_CONFIG_AUX_DIR(.)
7-AC_CHECK_FILE(/usr/X/include/X11/X.h,
8- AC_PREFIX_DEFAULT(/usr/X),
9- AC_PREFIX_DEFAULT(/usr))
10-AC_CHECK_FILE(/usr/X11R6/include/X11/X.h,
11- AC_PREFIX_DEFAULT(/usr/X11R6),
12- AC_PREFIX_DEFAULT(/usr))
13
14 dnl AM_MAINTAINER_MODE
15 AC_CANONICAL_TARGET
diff --git a/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb b/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
deleted file mode 100644
index 35c39cbe8..000000000
--- a/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
+++ /dev/null
@@ -1,48 +0,0 @@
1SECTION = "libs"
2SUMMARY = "OSM/Motif implementation"
3LICENSE = "OGPL"
4DEPENDS = "xbitmaps virtual/libx11 libxt libxft xproto"
5
6LIC_FILES_CHKSUM = "file://LICENSE;md5=14f692c82491db3d52419929d2f3b343"
7
8PR = "r3"
9
10PNBLACKLIST[openmotif] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
11
12SRC_URI = "http://motif.ics.com/sites/default/files/openmotif-2.3.3.tar.gz \
13 file://configure.patch;patch=1"
14
15SRC_URI[md5sum] = "fd27cd3369d6c7d5ef79eccba524f7be"
16SRC_URI[sha256sum] = "c85f5545e218fa0c59a3789192132d472fc5a33e914a221a568eee4fc10cd103"
17
18inherit autotools
19
20PACKAGECONFIG ??= ""
21PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
22PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
23
24EXTRA_OECONF = "X_CFLAGS=-I${STAGING_INCDIR} --disable-printing"
25
26PACKAGES += "${PN}-bin"
27
28FILES_${PN}-bin = "${bindir}"
29
30do_compile() {
31 (
32 # HACK: build a native binaries need during the build
33 unset CC LD CXX CCLD CFLAGS
34 oe_runmake -C config/util CC="${BUILD_CC}" LD="${BUILD_LD}" CXX="${BUILD_CXX}" LIBS="" makestrs
35 )
36 if [ "$?" != "0" ]; then
37 exit 1
38 fi
39 oe_runmake -C lib
40 oe_runmake -C include
41}
42
43do_install() {
44 oe_runmake DESTDIR=${D} -C lib install
45 oe_runmake DESTDIR=${D} -C include install
46}
47
48LEAD_SONAME = "libXm.so.4"
diff --git a/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb b/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
deleted file mode 100644
index e9142385b..000000000
--- a/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
+++ /dev/null
@@ -1,115 +0,0 @@
1SUMMARY = "Web Based Enterprise Management (WBEM) Implementation"
2DESCRIPTION = "OpenWBEM is a set of software components that help facilitate \
3deployment of the Common Information Model (CIM) and Web-Based \
4Enterprise Management (WBEM) technologies of the Distributed Management \
5Task Force (DMTF). \
6 \
7Web-Based Enterprise Management (WBEM) is a set of management and \
8Internet standard technologies developed to unify the management of \
9distributed computing environments. WBEM provides the ability for the \
10industry to deliver a well-integrated set of standards-based management \
11tools, facilitating the exchange of data across otherwise disparate \
12technologies and platforms. \
13 \
14For more information about DMTF and its technologies, visit \
15http://www.dmtf.org/standards. "
16SECTION = "System/Management"
17HOMEPAGE = "http://openwbem.sourceforge.net/"
18
19inherit autotools-brokensep pkgconfig
20
21SOURCE1="novell-openwbem-root-acl.mof"
22SOURCE2="loadmof.sh"
23SOURCE3="rmmof.sh"
24SOURCE4="openwbem-owcimomd.init"
25SOURCE5="openwbem-etc_pam.d_openwbem"
26SOURCE6="openwbem-rpmlintrc"
27
28SRC_URI = " \
29 git://github.com/kkaempf/openwbem.git \
30 file://${SOURCE1} \
31 file://${SOURCE2} \
32 file://${SOURCE3} \
33 file://${SOURCE4} \
34 file://${SOURCE5} \
35 file://${SOURCE6} \
36 file://checkserverkey \
37 file://owcimomd.service \
38"
39SRCREV = "5c688eefc1f8e35a4b1c58529aae5f114c25c2a8"
40S = "${WORKDIR}/git"
41LICENSE = "BSD-3-Clause"
42LIC_FILES_CHKSUM += "file://COPYING;md5=0504a2eb85e01aa92c9efd4125a34660"
43INSANE_SKIP_${PN} = "dev-so"
44DEPENDS += "openssl libpam bash"
45RDEPENDS_${PN} += "bash"
46EXTRA_OECONF = " \
47 --prefix=/usr \
48 --sysconfdir=/etc \
49 --libdir=${libdir} \
50 --localstatedir=/var/lib \
51 --libexecdir=${libdir}/openwbem/bin \
52 --mandir=/usr/share/man \
53 --enable-threads-run-as-user \
54"
55do_configure_prepend() {
56 autoreconf --force --install
57}
58
59do_install() {
60 oe_runmake DESTDIR=${D} install
61 install -d ${D}/etc/openwbem/openwbem.conf.d
62 install -d ${D}/var/adm/fillup-templates
63 install -m 644 etc/sysconfig/daemons/owcimomd ${D}/var/adm/fillup-templates/sysconfig.owcimomd
64
65 # fix up hardcoded paths
66 sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/owcimomd.service
67 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
68 install -d ${D}/${systemd_unitdir}/system
69 install -m 644 ${WORKDIR}/owcimomd.service ${D}/${systemd_unitdir}/system
70 install -m 755 ${WORKDIR}/checkserverkey ${D}${sysconfdir}/openwbem/
71 fi
72
73 install -d ${D}/etc/init.d
74 ln -sf ../../etc/init.d/owcimomd ${D}/usr/sbin/rcowcimomd
75 install -m 755 ${WORKDIR}/${SOURCE4} ${D}/etc/init.d/owcimomd
76 install -d ${D}${sbindir}
77 install -d ${D}/usr/bin
78 install -d ${D}/etc/pam.d
79 install -d ${D}/${libdir}/openwbem/cmpiproviders
80 install -m 644 etc/pam.d/openwbem ${D}/etc/pam.d
81 install -d ${D}/${libdir}/openwbem/c++providers
82 install -d ${D}/var/lib/openwbem
83 install -m 755 ${WORKDIR}/${SOURCE2} ${D}/usr/bin/ow-loadmof.sh
84 install -m 755 ${WORKDIR}/${SOURCE3} ${D}/usr/bin/ow-rmmof.sh
85 install -m 644 ${WORKDIR}/${SOURCE5} ${D}/etc/pam.d/openwbem
86
87 MOFPATH=${D}/usr/share/mof/openwbem
88 install -d $MOFPATH
89 mv ${D}/usr/share/openwbem/* $MOFPATH/
90 rmdir ${D}/usr/share/openwbem
91 install -m 644 ${WORKDIR}/${SOURCE1} $MOFPATH/
92
93 touch ${D}/var/lib/openwbem/{classassociation,instances,instassociation,namespaces,schema}.{dat,ndx,lock}
94}
95
96inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
97SYSTEMD_SERVICE_${PN} = "owcimomd.service"
98SYSTEMD_AUTO_ENABLE = "disable"
99FILES_${PN} += " \
100 ${libdir} \
101 ${datadir}/mof \
102 ${systemd_unitdir} \
103"
104FILES_${PN}-dbg += " \
105 ${libdir}/openwbem/c++providers/.debug \
106 ${libdir}/openwbem/provifcs/.debug \
107 ${libdir}/openwbem/bin/openwbem/.debug \
108"
109FILES_${PN}-dev = " \
110 ${includedir} \
111 ${datadir}/aclocal/openwbem.m4 \
112"
113
114# http://errors.yoctoproject.org/Errors/Details/68630/
115PNBLACKLIST[openwbem] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
deleted file mode 100644
index 7eda03875..000000000
--- a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1[PATCH] do not use the hardcode libdir
2
3Upstream-status: Pending
4
5Signed-off-by: Roy.Li <rongqing.li@windriver.com>
6Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
7---
8 configure.ac | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/configure.ac b/configure.ac
12index 9b88d4c..df5ad7a 100644
13--- a/configure.ac
14+++ b/configure.ac
15@@ -140,7 +140,7 @@ if test "$with_libpq" != yes; then
16 if test -d "$with_libpq"; then
17 PATH="$PATH:$with_libpq/bin"
18 CPPFLAGS="$CPPFLAGS -I$with_libpq/include"
19- LDFLAGS="$LDFLAGS -L$with_libpq/lib"
20+ LDFLAGS="$LDFLAGS -L$with_libpq/${base_libdir}"
21 else
22 if test -x "$with_libpq"; then
23 PG_CONFIG=$with_libpq
24--
252.8.1
26
diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
deleted file mode 100644
index a8f14e768..000000000
--- a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
+++ /dev/null
@@ -1,148 +0,0 @@
1Subject: [PATCH] psqlodbc: fixes for ptest support
2
3* Fix the LIBODBC since we don't use ODBC_CONFIG.
4* Fix the path for driver.
5* Add the default info of postgresql server.
6* Fix the output format for ptest.
7* Fix the results and exe dir.
8
9Upstream-Status: Inappropriate [OE ptest specific]
10
11Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
12---
13 test/Makefile.in | 2 +-
14 test/odbcini-gen.sh | 8 ++++----
15 test/runsuite.c | 26 +++++++++++++-------------
16 3 files changed, 18 insertions(+), 18 deletions(-)
17
18diff --git a/test/Makefile.in b/test/Makefile.in
19index 8710616..fcb470e 100644
20--- a/test/Makefile.in
21+++ b/test/Makefile.in
22@@ -18,7 +18,7 @@ CFLAGS = @CFLAGS@
23 ODBC_CONFIG = @ODBC_CONFIG@
24 PROVE = @PROVE@
25
26-LIBODBC := $(shell $(ODBC_CONFIG) --libs)
27+LIBODBC = -lodbc
28
29 all: $(TESTBINS) runsuite reset-db
30
31diff --git a/test/odbcini-gen.sh b/test/odbcini-gen.sh
32index d2c2c87..6068d9d 100755
33--- a/test/odbcini-gen.sh
34+++ b/test/odbcini-gen.sh
35@@ -6,7 +6,7 @@
36 outini=odbc.ini
37 outinstini=odbcinst.ini
38
39-drvr=../.libs/psqlodbcw
40+drvr=@LIBDIR@/psqlodbca
41 driver=${drvr}.so
42 if test ! -e $driver ; then
43 driver=${drvr}.dll
44@@ -33,10 +33,10 @@ Driver = psqlodbc test driver
45 Trace = No
46 TraceFile =
47 Database = contrib_regression
48-Servername =
49-Username =
50+Servername = localhost
51+Username = postgres
52 Password =
53-Port =
54+Port = 5432
55 ReadOnly = No
56 RowVersioning = No
57 ShowSystemTables = No
58diff --git a/test/runsuite.c b/test/runsuite.c
59index 583cf35..fd2a90e 100644
60--- a/test/runsuite.c
61+++ b/test/runsuite.c
62@@ -51,7 +51,7 @@ bailout(const char *fmt, ...)
63
64 /* Given a test program's name, get the test name */
65 void
66-parse_argument(const char *in, char *testname, char *binname)
67+parse_argument(const char *in, char *testname, char *binname, const char *inputdir)
68 {
69 const char *basename;
70 #ifdef WIN32
71@@ -65,7 +65,7 @@ parse_argument(const char *in, char *testname, char *binname)
72 if (strchr(in, DIR_SEP) == NULL)
73 {
74 strcpy(testname, in);
75- sprintf(binname, "exe%c%s-test", DIR_SEP, in);
76+ sprintf(binname, "%s%cexe%c%s-test", inputdir, DIR_SEP, DIR_SEP, in);
77 return;
78 }
79
80@@ -127,7 +127,7 @@ int main(int argc, char **argv)
81 failures = 0;
82 for (i = 1, j = 1; i <= numtests; i++, j++)
83 {
84- parse_argument(argv[j], testname, binname);
85+ parse_argument(argv[j], testname, binname, inputdir);
86 if (runtest(binname, testname, i, inputdir) != 0)
87 failures++;
88 }
89@@ -157,29 +157,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input
90 #ifndef WIN32
91 snprintf(cmdline, sizeof(cmdline),
92 "ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini "
93- "%s > results/%s.out",
94- binname, testname);
95+ "%s > %s/results/%s.out",
96+ binname, inputdir, testname);
97 #else
98 snprintf(cmdline, sizeof(cmdline),
99- "%s > results\\%s.out",
100- binname, testname);
101+ "%s > %s/results\\%s.out",
102+ binname, inputdir, testname);
103 #endif
104 rc = system(cmdline);
105
106 diff = rundiff(testname, inputdir);
107 if (rc != 0)
108 {
109- printf("not ok %d - %s test returned %d\n", testno, testname, rc);
110+ printf("FAIL: %d - %s\n\ttest returned %d\n", testno, testname, rc);
111 ret = 1;
112 }
113 else if (diff != 0)
114 {
115- printf("not ok %d - %s test output differs\n", testno, testname);
116+ printf("FAIL: %d - %s\n\ttest output differs\n", testno, testname);
117 ret = 1;
118 }
119 else
120 {
121- printf("ok %d - %s\n", testno, testname);
122+ printf("PASS: %d - %s\n", testno, testname);
123 ret = 0;
124 }
125 fflush(stdout);
126@@ -196,7 +196,7 @@ rundiff(const char *testname, const char *inputdir)
127 char *result;
128 size_t result_len;
129
130- snprintf(filename, sizeof(filename), "results/%s.out", testname);
131+ snprintf(filename, sizeof(filename), "%s/results/%s.out", inputdir, testname);
132 result = slurpfile(filename, &result_len);
133
134 outputno = 0;
135@@ -244,8 +244,8 @@ rundiff(const char *testname, const char *inputdir)
136 * files and print the smallest diff?
137 */
138 snprintf(cmdline, sizeof(cmdline),
139- "diff -c %s/expected/%s.out results/%s.out >> regression.diffs",
140- inputdir, testname, testname);
141+ "diff -c %s/expected/%s.out %s/results/%s.out >> regression.diffs",
142+ inputdir, testname, inputdir, testname);
143 if (system(cmdline) == -1)
144 printf("# diff failed\n");
145
146--
1472.8.2
148
diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
deleted file mode 100644
index 1d988182e..000000000
--- a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
+++ /dev/null
@@ -1,118 +0,0 @@
1Subject: [PATCH] remove some checks for cross-compiling
2
3some lib check is not suitable for
4cross-compiling, so remove them.
5
6Upstream-Status: Inappropriate [not a real bug,just for cross-compiling]
7
8Signed-off-by: Song.Li <Song.Li@windriver.com>
9Signed-off-by: Kai Kang <kai.kang@windriver.com>
10Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
11---
12 configure.ac | 66 +++++++-----------------------------------------------------
13 1 file changed, 7 insertions(+), 59 deletions(-)
14
15diff --git a/configure.ac b/configure.ac
16index df5ad7a..b72bd4c 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -46,57 +46,19 @@ AC_ARG_WITH(iodbc, [ --with-iodbc[[=DIR]] [[default=no]] DIR is the iODBC bas
20 if test "$with_iodbc" != no; then
21 with_unixodbc=no
22 AC_DEFINE(WITH_IODBC, 1, [Define to 1 to build with iODBC support])
23- if test "$with_iodbc" = yes; then
24- AC_PATH_PROGS(ODBC_CONFIG, iodbc-config)
25- else
26- ODBC_CONFIG=$with_iodbc
27- fi
28- if test ! -x "${ODBC_CONFIG}/bin/iodbc-config"; then
29- if test ! -x "${ODBC_CONFIG}"; then
30- AC_MSG_ERROR([iodbc-config not found (required for iODBC build)])
31- fi
32- else
33- ODBC_CONFIG=${ODBC_CONFIG}/bin/iodbc-config
34- fi
35 fi
36
37 if test "$with_unixodbc" != no; then
38 AC_DEFINE(WITH_UNIXODBC, 1,
39 [Define to 1 to build with unixODBC support])
40- if test "$with_unixodbc" = yes; then
41- AC_PATH_PROGS(ODBC_CONFIG, odbc_config)
42- else
43- ODBC_CONFIG=$with_unixodbc
44- fi
45- if test ! -x "${ODBC_CONFIG}/bin/odbc_config"; then
46- if test ! -x "${ODBC_CONFIG}"; then
47- AC_MSG_ERROR([odbc_config not found (required for unixODBC build)])
48- fi
49- else
50- ODBC_CONFIG=${ODBC_CONFIG}/bin/odbc_config
51- fi
52 fi
53
54 #
55 # ODBC include and library
56 #
57-
58-if test "$ODBC_CONFIG" != ""; then
59- if test "$with_iodbc" != no; then
60- ODBC_INCLUDE=`${ODBC_CONFIG} --cflags`
61- CPPFLAGS="$CPPFLAGS ${ODBC_INCLUDE}"
62- # Linking libiodoc is rather problematic
63- [ODBC_LIBDIR=`${ODBC_CONFIG} --libs | sed -e "s/^\(-L\|.*[ \t]-L\)\([^ \n\r\f\t]*\).*$/-L\2/"`]
64- LDFLAGS="$LDFLAGS ${ODBC_LIBDIR}"
65- else
66- ODBC_INCLUDE=`${ODBC_CONFIG} --include-prefix`
67- CPPFLAGS="$CPPFLAGS -I${ODBC_INCLUDE}"
68- # Linking libodoc is rather problematic
69- ODBC_LIBDIR=`${ODBC_CONFIG} --lib-prefix`
70- LDFLAGS="$LDFLAGS -L${ODBC_LIBDIR}"
71- fi
72- AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBDIR])
73-fi
74+ODBC_LIBS="-lodbcinst"
75+LIBS="$LIBS ${ODBC_LIBS}"
76+AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBS])
77
78 #
79 # SQLCOLATTRIBUTE_SQLLEN check
80@@ -176,18 +138,10 @@ PGAC_ARG_BOOL(enable, pthreads, yes,
81 # Find libpq headers and libraries
82 #
83
84-if test -z "$PG_CONFIG"; then
85- AC_PATH_PROGS(PG_CONFIG, pg_config)
86-fi
87-
88-if test -n "$PG_CONFIG"; then
89- pg_includedir=`"$PG_CONFIG" --includedir`
90- pg_libdir=`"$PG_CONFIG" --libdir`
91- CPPFLAGS="$CPPFLAGS -I$pg_includedir"
92- LDFLAGS="$LDFLAGS -L$pg_libdir"
93-fi
94-
95-
96+pg_includedir=""
97+pg_libdir=""
98+CPPFLAGS="$CPPFLAGS"
99+LDFLAGS="$LDFLAGS"
100
101 # 1. Programs
102
103@@ -211,12 +165,6 @@ if test "$with_iodbc" != no; then
104 [AC_MSG_ERROR([iODBC library "iodbcinst" not found])])
105 fi
106
107-if test "$enable_pthreads" = yes; then
108- AC_CHECK_LIB(pthreads, pthread_create,
109- [],
110- [AC_CHECK_LIB(pthread, pthread_create)])
111-fi
112-
113 AC_CHECK_LIB(pq, PQsetSingleRowMode, [],
114 [AC_MSG_ERROR([libpq library version >= 9.2 is required])])
115
116--
1172.8.1
118
diff --git a/meta-oe/recipes-support/psqlodbc/psqlodbc.inc b/meta-oe/recipes-support/psqlodbc/psqlodbc.inc
deleted file mode 100644
index 5337b4569..000000000
--- a/meta-oe/recipes-support/psqlodbc/psqlodbc.inc
+++ /dev/null
@@ -1,50 +0,0 @@
1SUMMARY = "ODBC driver for PostgreSQL"
2DESCRIPTION = "\
3 This package provides a driver that allows ODBC-enabled applications to \
4 access PostgreSQL databases. ODBC is an abstraction layer that allows \
5 applications written for that layer to access databases in a manner \
6 that is relatively independent of the particular database management \
7 system. \
8 . \
9 You need to install this package if you want to use an application that \
10 provides database access through ODBC and you want that application to \
11 access a PostgreSQL database. This package would need to be installed \
12 on the same machine as that client application; the PostgreSQL database \
13 server can be on a different machine and does not need any additional \
14 software to accept ODBC clients. \
15"
16SECTION = "libs"
17HOMEPAGE = "http://psqlodbc.projects.postgresql.org/"
18
19DEPENDS += "postgresql unixodbc"
20
21EXTRA_OECONF = "\
22 ac_cv_lib_ltdl_lt_dlopen=no \
23 ac_cv_lib_pq_PQconnectdb=yes \
24 --with-unixodbc=yes \
25 --with-libpq=${STAGING_LIBDIR}/.. \
26 --enable-pthreads \
27 --disable-unicode \
28 LIBS="-lpthread" \
29"
30
31inherit autotools pkgconfig ptest
32
33do_compile_ptest() {
34 oe_runmake -C ${B}/test
35}
36
37do_install_ptest() {
38 install -d ${D}${PTEST_PATH}
39 cp -a --no-preserve=ownership ${B}/test/exe ${S}/test/expected ${D}${PTEST_PATH}
40 install -m 0755 ${B}/test/reset-db ${D}${PTEST_PATH}
41 install -m 0755 ${B}/test/runsuite ${D}${PTEST_PATH}
42 install -m 0755 ${S}/test/odbcini-gen.sh ${D}${PTEST_PATH}
43 install -m 0755 ${S}/test/sampletables.sql ${D}${PTEST_PATH}
44 sed -i -e 's|@LIBDIR@|${libdir}|' ${D}${PTEST_PATH}/odbcini-gen.sh
45}
46
47FILES_${PN} += "${libdir}"
48
49# The tests need a local PostgreSQL server running
50RDEPENDS_${PN}-ptest = "postgresql"
diff --git a/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb b/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
deleted file mode 100644
index 97326a20e..000000000
--- a/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require ${PN}.inc
2
3LICENSE = "LGPLv2"
4LIC_FILES_CHKSUM = "file://license.txt;md5=6db3822fc7512e83087ba798da013692"
5
6SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \
7 file://psqlodbc-remove-some-checks-for-cross-compiling.patch \
8 file://psqlodbc-donot-use-the-hardcode-libdir.patch \
9 file://psqlodbc-fix-for-ptest-support.patch \
10 file://run-ptest \
11"
12
13SRC_URI[md5sum] = "4c6e0b22187d7bb1c998ffac89e50f6b"
14SRC_URI[sha256sum] = "9521f328bf28aaaf5c8488dc89792b614f9d6271742c0baf9bb41c97537764a8"
15
16PNBLACKLIST[psqlodbc] ?= "Depends on blacklisted postgresql - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb b/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
deleted file mode 100644
index 1219cb8ed..000000000
--- a/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "A lightweight Terminal Emulator based on libvte, written in Vala"
2SECTION = "x11/applications"
3DEPENDS = "vte9 intltool-native"
4SRCREV = "0fefa38087581f85fa0631b40500b9428369c146"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
7PV = "1.3+gitr${SRCPV}"
8PE = "1"
9PR = "r1"
10
11PNBLACKLIST[vala-terminal] ?= "BROKEN: Doesn't work with B!=S, touch: cannot touch `src/.stamp': No such file or directory - the recipe will be removed on 2017-09-01 unless the issue is fixed"
12
13inherit autotools perlnative vala
14
15SRC_URI = "${FREESMARTPHONE_GIT}/vala-terminal.git;branch=master"
16S = "${WORKDIR}/git"
17
18RDEPENDS_${PN} = "ttf-liberation-mono"
19RREPLACES_${PN} = "openmoko-terminal2"
20RPROVIDES_${PN} = "openmoko-terminal2"
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
deleted file mode 100644
index c7bae1c08..000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
+++ /dev/null
@@ -1,72 +0,0 @@
1SUMMARY = "VirtualBox Linux Guest Drivers"
2SECTION = "core"
3LICENSE = "GPL-2.0"
4LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
5
6DEPENDS = "virtual/kernel"
7
8inherit module kernel-module-split
9
10COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
11
12VBOX_NAME = "VirtualBox-${PV}"
13
14SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
15 file://Makefile.utils \
16"
17SRC_URI[md5sum] = "8635387dec6cbfd576ba453355d4dc0c"
18SRC_URI[sha256sum] = "af0776df6d03b2709cb76a69f055487bf12bdb3b4163e2a82959860300283046"
19
20S = "${WORKDIR}/vbox_module"
21
22export BUILD_TARGET_ARCH="${ARCH}"
23export BUILD_TARGET_ARCH_x86-64="amd64"
24export KERN_DIR="${STAGING_KERNEL_DIR}"
25
26addtask export_sources before do_patch after do_unpack
27
28do_export_sources() {
29 mkdir -p "${S}"
30 ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz
31 tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
32
33 # add a mount utility to use shared folder from VBox Addition Source Code
34 mkdir -p "${S}/utils"
35 install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
36 install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
37 install ${S}/../Makefile.utils ${S}/utils/Makefile
38
39}
40
41# compile and install mount utility
42do_compile_append() {
43 oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
44 if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
45 echo "ERROR: One of vbox*.ko modules wasn't built"
46 exit 1
47 fi
48}
49
50module_do_install() {
51 MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
52 install -d $MODULE_DIR
53 install -m 644 vboxguest.ko $MODULE_DIR
54 install -m 644 vboxsf.ko $MODULE_DIR
55 install -m 644 vboxvideo.ko $MODULE_DIR
56}
57
58do_install_append() {
59 install -d ${D}${base_sbindir}
60 install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
61}
62
63PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
64RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
65
66FILES_${PN} = "${base_sbindir}"
67
68# autoload if installed
69KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
70
71# http://errors.yoctoproject.org/Errors/Details/83333/
72PNBLACKLIST[vboxguestdrivers] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
deleted file mode 100644
index cfa2f6c7f..000000000
--- a/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- a/configure.in 2014-08-18 01:25:43.911597023 -0700
2+++ b/configure.in 2014-08-18 01:26:27.763786629 -0700
3@@ -8,7 +8,7 @@
4 AC_CONFIG_HEADERS([config.h])
5 AC_CONFIG_SRCDIR([configure.in])
6
7-AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define])
8+AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 subdir-objects no-define])
9
10 AM_MAINTAINER_MODE
11 AC_PROG_CC
diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
deleted file mode 100644
index 4394e5257..000000000
--- a/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
+++ /dev/null
@@ -1,78 +0,0 @@
1diff -ur xchat-2.8.8-orig/plugins/perl/perl.c xchat-2.8.8/plugins/perl/perl.c
2--- xchat-2.8.8-orig/plugins/perl/perl.c 2014-08-30 14:09:05.125116286 -0700
3+++ xchat-2.8.8/plugins/perl/perl.c 2014-08-30 14:09:45.281106532 -0700
4@@ -31,7 +31,7 @@
5 #endif
6
7 #undef PACKAGE
8-#include "../../config.h" /* for #define OLD_PERL */
9+#include <config.h> /* for #define OLD_PERL */
10 #include "xchat-plugin.h"
11
12 static xchat_plugin *ph; /* plugin handle */
13diff -ur xchat-2.8.8-orig/src/common/network.c xchat-2.8.8/src/common/network.c
14--- xchat-2.8.8-orig/src/common/network.c 2014-08-30 14:09:05.137116222 -0700
15+++ xchat-2.8.8/src/common/network.c 2014-08-30 14:13:52.729116323 -0700
16@@ -24,7 +24,7 @@
17 #include <unistd.h>
18 #include <glib.h>
19
20-#include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */
21+#include <config.h> /* grab USE_IPV6 and LOOKUPD defines */
22
23 #define WANTSOCKET
24 #define WANTARPA
25diff -ur xchat-2.8.8-orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c
26--- xchat-2.8.8-orig/src/common/ssl.c 2014-08-30 14:09:05.137116222 -0700
27+++ xchat-2.8.8/src/common/ssl.c 2014-08-30 14:14:08.449133899 -0700
28@@ -23,7 +23,7 @@
29 #include <string.h> /* strncpy() */
30 #include "ssl.h" /* struct cert_info */
31 #include "inet.h"
32-#include "../../config.h" /* HAVE_SNPRINTF */
33+#include <config.h> /* HAVE_SNPRINTF */
34
35 #ifndef HAVE_SNPRINTF
36 #define snprintf g_snprintf
37diff -ur xchat-2.8.8-orig/src/common/util.c xchat-2.8.8/src/common/util.c
38--- xchat-2.8.8-orig/src/common/util.c 2014-08-30 14:09:05.133116243 -0700
39+++ xchat-2.8.8/src/common/util.c 2014-08-30 14:10:23.633116070 -0700
40@@ -41,7 +41,7 @@
41 #include "xchatc.h"
42 #include <ctype.h>
43 #include "util.h"
44-#include "../../config.h"
45+#include <config.h>
46
47 #define WANTSOCKET
48 #include "inet.h"
49diff -ur xchat-2.8.8-orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h
50--- xchat-2.8.8-orig/src/common/xchat.h 2014-08-30 14:09:05.133116243 -0700
51+++ xchat-2.8.8/src/common/xchat.h 2014-08-30 14:13:42.797116472 -0700
52@@ -1,4 +1,4 @@
53-#include "../../config.h"
54+#include <config.h>
55
56 #include <glib.h>
57 #include <time.h> /* need time_t */
58diff -ur xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h xchat-2.8.8/src/fe-gtk/fe-gtk.h
59--- xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h 2014-08-30 14:09:05.129116272 -0700
60+++ xchat-2.8.8/src/fe-gtk/fe-gtk.h 2014-08-30 14:10:13.309115951 -0700
61@@ -1,4 +1,4 @@
62-#include "../../config.h"
63+#include <config.h>
64
65 #ifdef WIN32
66 /* If you're compiling this for Windows, your release is un-official
67diff -ur xchat-2.8.8-orig/src/fe-gtk/xtext.c xchat-2.8.8/src/fe-gtk/xtext.c
68--- xchat-2.8.8-orig/src/fe-gtk/xtext.c 2014-08-30 14:09:05.129116272 -0700
69+++ xchat-2.8.8/src/fe-gtk/xtext.c 2014-08-30 14:10:00.313138254 -0700
70@@ -51,7 +51,7 @@
71 #include <gtk/gtkwindow.h>
72
73 #ifdef XCHAT
74-#include "../../config.h" /* can define USE_XLIB here */
75+#include <config.h> /* can define USE_XLIB here */
76 #else
77 #define USE_XLIB
78 #endif
diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
deleted file mode 100644
index c9bce6a9c..000000000
--- a/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1--- xchat-2.8.8.orig/src/common/xchat.h 2009-08-16 11:40:16.000000000 +0200
2+++ xchat-2.8.8/src/common/xchat.h 2012-05-06 08:30:16.125755497 +0200
3@@ -1,10 +1,6 @@
4 #include "../../config.h"
5
6-#include <glib/gslist.h>
7-#include <glib/glist.h>
8-#include <glib/gutils.h>
9-#include <glib/giochannel.h>
10-#include <glib/gstrfuncs.h>
11+#include <glib.h>
12 #include <time.h> /* need time_t */
13
14 #ifndef XCHAT_H
15--- xchat-2.8.8.orig/src/common/servlist.c 2010-05-16 09:24:26.000000000 +0200
16+++ xchat-2.8.8/src/common/servlist.c 2012-05-06 08:30:45.681758019 +0200
17@@ -24,7 +24,6 @@
18 #include <unistd.h>
19
20 #include "xchat.h"
21-#include <glib/ghash.h>
22
23 #include "cfgfiles.h"
24 #include "fe.h"
25--- xchat-2.8.8.orig/src/common/util.c 2009-08-16 11:40:16.000000000 +0200
26+++ xchat-2.8.8/src/common/util.c 2012-05-06 08:31:10.389760122 +0200
27@@ -39,7 +39,6 @@
28 #include <errno.h>
29 #include "xchat.h"
30 #include "xchatc.h"
31-#include <glib/gmarkup.h>
32 #include <ctype.h>
33 #include "util.h"
34 #include "../../config.h"
35--- xchat-2.8.8.orig/src/common/text.c 2010-05-30 04:14:41.000000000 +0200
36+++ xchat-2.8.8/src/common/text.c 2012-05-06 08:31:22.300761137 +0200
37@@ -28,7 +28,6 @@
38 #include <sys/mman.h>
39
40 #include "xchat.h"
41-#include <glib/ghash.h>
42 #include "cfgfiles.h"
43 #include "chanopt.h"
44 #include "plugin.h"
diff --git a/meta-oe/recipes-support/xchat/xchat_2.8.8.bb b/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
deleted file mode 100644
index 408c700bb..000000000
--- a/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
1SUMMARY = "Full-featured IRC chat client with scripting support"
2LICENSE = "GPLv2+"
3HOMEPAGE = "http://www.xchat.org"
4SECTION = "x11/network"
5
6DEPENDS = "libgcrypt zlib gtk+ libsexy"
7DEPENDS += "gdk-pixbuf-native"
8
9LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
10
11PR = "r2"
12
13SRC_URI = "http://xchat.org/files/source/2.8/xchat-${PV}.tar.bz2 \
14 file://glib-2.32.patch \
15 file://automake-foreign.patch \
16 file://fix-includes-for-separate-build.patch \
17"
18
19inherit autotools gettext pkgconfig
20
21PACKAGECONFIG ??= "dbus"
22PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus-glib"
23PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
24PACKAGECONFIG[python] = "--enable-python,--disable-python,python"
25
26EXTRA_OECONF = "\
27 --enable-maintainer-mode \
28 --disable-perl \
29 --disable-tcl \
30"
31
32RDEPENDS_${PN} += "dbus"
33FILES_${PN} += "${datadir}/dbus-1"
34FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug"
35
36SRC_URI[md5sum] = "6775c44f38e84d06c06c336b32c4a452"
37SRC_URI[sha256sum] = "0d6d69437b5e1e45f3e66270fe369344943de8a1190e498fafa5296315a27db0"
38
39PNBLACKLIST[xchat] ?= "Depends on blacklisted libsexy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/meta-python/recipes-extended/python-meh/files/tweak-native-language-support.patch b/meta-python/recipes-extended/python-meh/files/tweak-native-language-support.patch
deleted file mode 100644
index 41cfaddc9..000000000
--- a/meta-python/recipes-extended/python-meh/files/tweak-native-language-support.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 6e7689bced8ef56cfb5969560d23706f8e039807 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Mon, 11 Apr 2016 23:01:19 -0400
4Subject: [PATCH] tweak native language support
5
6- Only support en_GB only.
7
8Upstream-Status: Inappropriate [oe specific]
9
10Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
11---
12 Makefile | 9 ++++++++-
13 1 file changed, 8 insertions(+), 1 deletion(-)
14
15diff --git a/Makefile b/Makefile
16index d0a9784..db152c4 100644
17--- a/Makefile
18+++ b/Makefile
19@@ -24,7 +24,7 @@ test:
20 PYTHONPATH=. python $(TESTSUITE) -v
21
22 install:
23- python setup.py install --root=$(DESTDIR)
24+ python setup.py install --root=$(DESTDIR) --install-lib=${PYTHON_SITEPACKAGES_DIR} --prefix=${prefix}
25 $(MAKE) -C po install
26
27 ChangeLog:
28@@ -61,6 +61,13 @@ rpmlog:
29 @git log --pretty="format:- %s (%ae)" $(TAG).. |sed -e 's/@.*)/)/'
30 @echo
31
32+po-empty:
33+ for lingua in "en_GB" ; do \
34+ [ -f po/$$lingua.po ] || \
35+ msginit -i po/$(PKGNAME).pot -o po/$$lingua.po -l $$lingua --no-translator || \
36+ exit 1 ; \
37+ done
38+
39 potfile:
40 $(MAKE) -C po potfile
41
42--
431.9.1
44
diff --git a/meta-ruby/recipes-devtools/ruby/bundler_git.bb b/meta-ruby/recipes-devtools/ruby/bundler_git.bb
deleted file mode 100644
index df89520b6..000000000
--- a/meta-ruby/recipes-devtools/ruby/bundler_git.bb
+++ /dev/null
@@ -1,33 +0,0 @@
1SUMMARY = "Makes sure Ruby applications run the same code on every machine."
2DESCRIPTION = "Bundler makes sure Ruby applications run the same code \
3on every machine. It does this by managing the gems that the \
4application depends on. Given a list of gems, it can automatically \
5download and install those gems, as well as any other gems needed by \
6the gems that are listed. Before installing gems, it checks the \
7versions of every gem to make sure that they are compatible, and can \
8all be loaded at the same time. After the gems have been installed, \
9Bundler can help you update some or all of them when new versions \
10become available. Finally, it records the exact versions that have \
11been installed, so that others can install the exact same gems."
12
13LICENSE = "MIT"
14LIC_FILES_CHKSUM = "file://LICENSE.md;md5=196bb963e601609817d7e9ac9a64a867"
15
16SRCREV = "06dc8472b9142fd6aaefff780d6d252c20dc2a04"
17
18BRANCH = "1-9-stable"
19PV = "1.9.4"
20
21S = "${WORKDIR}/git"
22
23SRC_URI = " \
24 git://github.com/bundler/bundler.git;branch=${BRANCH} \
25 "
26
27inherit ruby
28
29RDEPENDS_${PN} = "git"
30
31BBCLASSEXTEND = "native"
32
33PNBLACKLIST[bundler] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130640/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"