From b48b7b4109868a8c0ddda090992e936e821c7ea6 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Wed, 17 Aug 2016 15:04:38 -0500 Subject: Squashed 'import-layers/meta-openembedded/' content from commit 247b126 Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0 git-subtree-dir: import-layers/meta-openembedded git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a Signed-off-by: Patrick Williams --- import-layers/meta-openembedded/.gitignore | 5 + import-layers/meta-openembedded/COPYING.MIT | 17 + import-layers/meta-openembedded/README | 4 + .../meta-openembedded/contrib/oe-stylize.py | 411 + import-layers/meta-openembedded/contrib/pw-am.sh | 15 + .../meta-openembedded/contrib/tesseract-langs.sh | 92 + .../meta-openembedded/meta-efl/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-efl/README | 18 + .../meta-efl/classes/e-base.bbclass | 14 + .../meta-openembedded/meta-efl/classes/e.bbclass | 22 + .../meta-openembedded/meta-efl/classes/efl.bbclass | 66 + .../conf/distro/include/efl-from-svn-recipes.inc | 43 + .../meta-openembedded/meta-efl/conf/layer.conf | 35 + .../recipes-core/meta/meta-toolchain-efl.bb | 6 + .../recipes-devtools/python/python-edbus.inc | 50 + .../recipes-devtools/python/python-edbus_1.7.0.bb | 6 + .../recipes-devtools/python/python-efl.inc | 75 + .../recipes-devtools/python/python-efl_1.15.0.bb | 4 + .../recipes-devtools/python/python-efl_git.bb | 9 + .../meta-efl/recipes-efl/e17/cpu/configure.patch | 13 + .../meta-efl/recipes-efl/e17/cpu_svn.bb | 10 + .../meta-efl/recipes-efl/e17/diskio_svn.bb | 10 + .../meta-efl/recipes-efl/e17/e-module.inc | 19 + .../0001-dbus-stuff-Convert-to-eldbus.patch | 204 + .../meta-efl/recipes-efl/e17/e-tasks_git.bb | 32 + .../recipes-efl/e17/e-wm-theme-b-and-w_svn.bb | 31 + .../e17/e-wm-theme-illume-efenniht/LICENSE | 25 + .../e17/e-wm-theme-illume-efenniht_svn.bb | 35 + .../meta-efl/recipes-efl/e17/e-wm.inc | 202 + .../e17/e-wm/0001-Fix-incorrect-message-type.patch | 28 + .../e17/e-wm/0001-configure.ac-add-foreign.patch | 29 + .../recipes-efl/e17/e-wm/applications.menu | 105 + .../recipes-efl/e17/e-wm/enlightenment_start.oe | 9 + .../meta-efl/recipes-efl/e17/e-wm_0.18.8.bb | 15 + .../meta-efl/recipes-efl/e17/e-wm_0.19.10.bb | 19 + .../meta-efl/recipes-efl/e17/e-wm_git.bb | 14 + .../meta-efl/recipes-efl/e17/edje-viewer_svn.bb | 16 + .../meta-efl/recipes-efl/e17/elbow_git.bb | 26 + .../meta-efl/recipes-efl/e17/elfe_git.bb | 15 + .../recipes-efl/e17/elmdentica/configure.patch | 13 + .../meta-efl/recipes-efl/e17/elmdentica_svn.bb | 23 + .../meta-efl/recipes-efl/e17/emprint_svn.bb | 14 + ...position-as-percent-and-define-a-1-second.patch | 133 + .../meta-efl/recipes-efl/e17/enjoy/configure.patch | 13 + .../meta-efl/recipes-efl/e17/enjoy_git.bb | 48 + .../recipes-efl/e17/ephoto/configure.patch | 13 + .../meta-efl/recipes-efl/e17/ephoto_svn.bb | 19 + .../recipes-efl/e17/exalt-client/configure.patch | 28 + .../meta-efl/recipes-efl/e17/exalt-client_svn.bb | 25 + .../meta-efl/recipes-efl/e17/exalt_svn.bb | 34 + .../recipes-efl/e17/exquisite-theme-illume.bb | 35 + .../recipes-efl/e17/exquisite-theme-illume/LICENSE | 25 + .../recipes-efl/e17/exquisite/exquisite-init | 40 + .../meta-efl/recipes-efl/e17/exquisite/splashfuncs | 29 + .../meta-efl/recipes-efl/e17/exquisite_svn.bb | 41 + .../meta-efl/recipes-efl/e17/flame/configure.patch | 13 + .../meta-efl/recipes-efl/e17/flame_svn.bb | 15 + .../recipes-efl/e17/forecasts/configure.patch | 13 + .../meta-efl/recipes-efl/e17/forecasts_svn.bb | 10 + ...file-update-KEYBOARDS_DIR-for-new-illume2.patch | 23 + .../recipes-efl/e17/illume-keyboards-shr/LICENSE | 25 + .../recipes-efl/e17/illume-keyboards-shr_git.bb | 100 + .../meta-efl/recipes-efl/e17/news_svn.bb | 14 + .../recipes-efl/e17/places/configure.patch | 13 + .../meta-efl/recipes-efl/e17/places_svn.bb | 16 + .../meta-efl/recipes-efl/e17/rage_svn.bb | 15 + .../meta-efl/recipes-efl/e17/rain/configure.patch | 13 + .../meta-efl/recipes-efl/e17/rain_svn.bb | 16 + .../screenshot/screenshot-fix-mkinstalldirs.patch | 23 + .../meta-efl/recipes-efl/e17/screenshot_svn.bb | 16 + .../meta-efl/recipes-efl/e17/terminology.inc | 22 + .../meta-efl/recipes-efl/e17/terminology_0.9.1.bb | 8 + .../recipes-efl/e17/uptime/configure.patch | 13 + .../meta-efl/recipes-efl/e17/uptime_svn.bb | 10 + ...e-old-ecore_string_init-and-ecore_string_.patch | 54 + .../meta-efl/recipes-efl/efl/azy_svn.bb | 37 + .../recipes-efl/efl/e-wm-illume-dict-pl_git.bb | 18 + .../efl/ecore/fix-ecore-fb-initialization.patch | 41 + .../meta-efl/recipes-efl/efl/edb_svn.bb | 16 + .../meta-efl/recipes-efl/efl/edbus.inc | 29 + .../meta-efl/recipes-efl/efl/edbus_1.7.9.bb | 8 + .../meta-efl/recipes-efl/efl/edje-fpu.inc | 6 + .../meta-efl/recipes-efl/efl/efl.inc | 287 + ...igure.ac-Don-t-check-for-Xprint-extension.patch | 27 + .../efl/efl/0001-evas_3d-Add-Eet.h-includes.patch | 51 + .../efl/efl/0002-evas_3d-Add-Eet.h-includes.patch | 51 + .../meta-efl/recipes-efl/efl/efl_1.15.1.bb | 29 + .../efl/elementary-theme-efenniht/LICENSE | 25 + .../efl/elementary-theme-efenniht_svn.bb | 38 + .../meta-efl/recipes-efl/efl/elementary.inc | 89 + ...e-elementary_codegen-defined-in-configure.patch | 29 + .../meta-efl/recipes-efl/efl/elementary_1.15.1.bb | 16 + .../recipes-efl/efl/emotion-generic-players.inc | 14 + .../efl/emotion-generic-players_1.15.0.bb | 8 + .../meta-efl/recipes-efl/efl/engrave_svn.bb | 15 + ...am-use-common-auth-instead-of-system-auth.patch | 26 + .../recipes-efl/efl/entrance/entrance.service | 8 + .../meta-efl/recipes-efl/efl/entrance_svn.bb | 43 + ...alias-functions-poppler-has-dropped-them-.patch | 132 + ...r_postscript.cpp-fix-build-for-poppler-AP.patch | 45 + .../meta-efl/recipes-efl/efl/epdf_svn.bb | 27 + .../recipes-efl/efl/evas-generic-loaders.inc | 71 + .../recipes-efl/efl/evas-generic-loaders_1.15.0.bb | 8 + .../meta-efl/recipes-efl/efl/expedite.inc | 25 + .../meta-efl/recipes-efl/efl/expedite_1.7.9.bb | 8 + .../meta-efl/recipes-efl/efl/expedite_git.bb | 11 + .../meta-efl/recipes-efl/efl/imlib2_git.bb | 45 + .../efl/libeflvala/disable.eina.test.patch | 44 + .../meta-efl/recipes-efl/efl/libeflvala_svn.bb | 21 + .../meta-efl/recipes-efl/efl/libeweather_svn.bb | 46 + .../packagegroups/packagegroup-efl-sdk.bb | 17 + .../packagegroups/packagegroup-efl-sdk.inc | 12 + .../packagegroup-efl-standalone-sdk-target.bb | 17 + .../packagegroups/packagegroup-x11-illume.bb | 24 + .../meta-efl/recipes-efl/webkit/webkit-efl.inc | 69 + ...on.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch | 46 + ...rs.cmake-Add-Wno-error-deprecated-declara.patch | 45 + .../0003-FEBlendNEON.h-fix-missing-semicolon.patch | 35 + ...ld-with-EFL-1.12-https-bugs.webkit.org-sh.patch | 146 + .../0005-Fix-the-build-with-cmake-3.patch | 104 + ...sEfl.cmake-Fix-build-with-newer-CMake-3.4.patch | 30 + .../recipes-efl/webkit/webkit-efl_1.11.0.bb | 12 + .../id3-plugin-support-out-of-tree-build.patch | 11 + .../lightmediascanner/lightmediascanner_0.5.1.bb | 62 + .../recipes-navigation/mcnavi/mcnavi_0.3.4.bb | 19 + .../meta-openembedded/meta-filesystems/COPYING.MIT | 17 + .../meta-openembedded/meta-filesystems/README | 140 + .../meta-filesystems/conf/layer.conf | 16 + .../fuse-exfat/fuse-exfat_1.2.3.bb | 20 + .../recipes-filesystems/ifuse/ifuse_1.1.2.bb | 15 + .../logfsprogs/logfsprogs_git.bb | 26 + .../ntfs-3g-ntfsprogs_2013.1.13.bb | 39 + .../recipes-filesystems/owfs/owfs/owhttpd | 60 + .../recipes-filesystems/owfs/owfs/owserver | 59 + .../recipes-filesystems/owfs/owfs_2.9p1.bb | 68 + .../simple-mtpfs/simple-mtpfs_git.bb | 13 + ...CK_MODULES-to-found-headers-and-libraries.patch | 42 + .../smbnetfs/smbnetfs/configure.patch | 11 + .../recipes-filesystems/smbnetfs/smbnetfs_git.bb | 26 + .../sshfs-fuse/sshfs-fuse_2.5.bb | 17 + .../unionfs-fuse/unionfs-fuse_0.26.bb | 17 + .../recipes-filesystems/yaffs2/yaffs2-utils_git.bb | 36 + ...-fuse-fix-the-return-value-of-help-option.patch | 28 + .../recipes-support/fuse/files/aarch64.patch | 33 + .../recipes-support/fuse/files/fuse.conf | 1 + .../fuse/files/gold-unversioned-symbol.patch | 92 + .../recipes-support/fuse/fuse_2.9.4.bb | 64 + .../recipes-support/physfs/physfs_2.0.3.bb | 11 + ...dd-tool-concept-to-Makefile-for-cross-com.patch | 29 + .../aufs-util-don-t-strip-executables.patch | 37 + .../recipes-utils/aufs-util/aufs-util/aufs_type.h | 419 + .../recipes-utils/aufs-util/aufs-util_git.bb | 53 + .../recipes-utils/dmapi/dmapi_2.2.12.bb | 31 + .../files/dmapi_aarch64_configure_support.patch | 37 + .../dmapi/files/remove-install-as-user.patch | 205 + .../recipes-utils/exfat-utils/exfat-utils_1.2.3.bb | 21 + ...emove-AC_CHECK_FILE-for-cross-compilation.patch | 32 + .../recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb | 17 + .../xfsdump/files/remove-install-as-user.patch | 205 + .../recipes-utils/xfsdump/xfsdump_3.1.4.bb | 36 + .../files/drop-configure-check-for-aio.patch | 93 + .../xfsprogs/files/remove-install-as-user.patch | 205 + ...nerate-crctable-which-is-moved-into-runti.patch | 170 + .../recipes-utils/xfsprogs/xfsprogs_3.2.3.bb | 52 + .../recipes-utils/xorriso/xorriso_1.4.0.bb | 29 + .../meta-openembedded/meta-gnome/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-gnome/README | 17 + .../meta-openembedded/meta-gnome/conf/layer.conf | 15 + .../recipes-apps/cheese/cheese_2.30.1.bb | 22 + .../epdfview/epdfview/browser_command.patch | 17 + .../epdfview/epdfview/fix-format.patch | 19 + .../epdfview/epdfview/glib-single-include.patch | 17 + .../epdfview/epdfview/swap-colors.patch | 43 + .../recipes-apps/epdfview/epdfview_0.1.8.bb | 25 + .../recipes-apps/gnome-mplayer/gmtk_1.0.5.bb | 16 + .../gnome-mplayer/gnome-mplayer_1.0.5.bb | 32 + .../recipes-apps/pinpoint/pinpoint_git.bb | 21 + .../network-manager-applet_1.0.10.bb | 36 + .../obex/obexd/ssize_t_definition.patch | 32 + .../recipes-connectivity/obex/obexd_0.48.bb | 23 + .../recipes-devtools/glade/glade3_%.bbappend | 1 + .../recipes-extended/gparted/files/gparted_polkit | 10 + .../org.yoctoproject.pkexec.run-gparted.policy | 20 + .../recipes-extended/gparted/gparted_0.24.0.bb | 38 + .../gtk-theme-torturer/gtk-theme-torturer_git.bb | 25 + ...saurus-Makefile.am-remove-uncomplete-opti.patch | 39 + .../recipes-gnome/abiword/abiword_3.0.1.bb | 124 + .../recipes-gnome/bonobo/files/gcc5.patch | 12 + .../recipes-gnome/bonobo/files/gtk-doc.m4 | 53 + .../recipes-gnome/bonobo/files/gtk-doc.make | 173 + .../meta-gnome/recipes-gnome/bonobo/libbonobo.inc | 29 + .../0001-Remove-use-of-G_DISABLE_DEPRECATED.patch | 47 + .../libbonobo/do-not-use-srcdir-variable.patch | 24 + .../recipes-gnome/bonobo/libbonobo_2.32.1.bb | 8 + .../recipes-gnome/bonobo/libbonoboui_2.24.5.bb | 21 + .../meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb | 29 + .../desktop-file-utils/desktop-file-utils_0.18.bb | 18 + .../recipes-gnome/devilspie/devilspie2_0.33.bb | 30 + .../recipes-gnome/devilspie/files/default.lua | 46 + .../devilspie/files/devilspie2.desktop | 5 + ...lace-the-Novell-sample-contact-with-somet.patch | 215 + .../0002-Fix-for-automake-1.12.x.patch | 32 + .../0003-Disable-Werror-for-automake.patch | 97 + ...ix-libical-pkg-config-trying-to-use-host-.patch | 39 + ...-soup-adapt-to-new-libxml2-API-from-2.9.0.patch | 77 + ...6-configure.ac-do-not-overwrite-localedir.patch | 34 + .../eds/evolution-data-server/iconv-detect.h | 5 + .../recipes-gnome/eds/evolution-data-server_git.bb | 117 + .../evince/0001-help-remove-YELP-macro.patch | 24 + .../recipes-gnome/evince/evince_3.18.2.bb | 48 + .../faenza-icon-theme/faenza-icon-theme_1.3.bb | 26 + .../gcalctool/gcalctool/fix-includedir.patch | 31 + .../recipes-gnome/gcalctool/gcalctool_5.32.0.bb | 20 + .../recipes-gnome/gdm/gdm/%gconf-tree.xml | 492 + .../gdm/gdm/0001-Remove-user-switch-applet.patch | 2281 +++ ...nager.c-avoid-displaying-system-users-in-.patch | 34 + .../meta-gnome/recipes-gnome/gdm/gdm/Default | 96 + .../recipes-gnome/gdm/gdm/cross-xdetection.diff | 96 + .../meta-gnome/recipes-gnome/gdm/gdm/gdm | 89 + .../meta-gnome/recipes-gnome/gdm/gdm/gdm-pam | 11 + .../meta-gnome/recipes-gnome/gdm/gdm/gdm.conf | 80 + .../recipes-gnome/gdm/gdm/gdm.service.in | 10 + .../gdm/gdm/sysrooted-pkg-config.patch | 37 + .../meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb | 105 + .../0001-workaround-void-pointer-arithmetic.patch | 57 + .../meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb | 28 + .../gnome-backgrounds/gnome-backgrounds_2.32.0.bb | 19 + .../gnome-bluetooth/gnome-bluetooth_3.18.2.bb | 17 + .../gnome-control-center_2.32.1.bb | 32 + .../gnome-desktop/gnome-desktop_2.32.1.bb | 25 + .../0001-Add-support-for-DeviceAutomountHint.patch | 74 + .../0002-Require-libnotify-0.6.1.patch | 49 + .../gnome-disk-utility/disable-scrollkeeper.patch | 27 + .../gnome-disk-utility/fix-dbus-interfaces.patch | 34 + .../gnome-disk-utility/sysrooted-pkg-config.patch | 37 + .../gnome-disk-utility_2.32.0.bb | 37 + .../gnome-keyring/gnome-keyring/egg-asn1x.patch | 55 + .../gnome-keyring/gnome-keyring_2.32.1.bb | 43 + .../gnome-keyring/libgnome-keyring_2.32.0.bb | 20 + .../gnome-menus/gnome-menus3_3.10.1.bb | 26 + .../gnome-menus/gnome-menus_2.30.5.bb | 22 + .../gnome-mime-data/pkgconfig.patch | 14 + .../gnome-mime-data/gnome-mime-data_2.18.0.bb | 19 + .../gnome-panel/0001-Fix-build-with-gcc-5.patch | 35 + .../gnome-panel/gnome-panel/as-needed.patch | 36 + .../gnome-panel/gnome-panel/idl-sysroot.patch | 22 + .../gnome-panel/gnome-panel3_3.0.2.bb | 51 + .../gnome-panel/gnome-panel_2.32.1.bb | 45 + .../0001-Makefile.am-don-t-build-help-man.patch | 37 + .../sysrooted-pkg-config.patch | 35 + .../gnome-power-manager_2.32.0.bb | 54 + .../gnome-session/use_G_GINT64_FORMAT.patch | 61 + .../gnome-session/gnome-session_2.32.1.bb | 29 + .../files/0001-Require-libnotify-0.6.0.patch | 81 + .../gnome-settings-daemon_2.32.1.bb | 42 + .../files/0001-Fix-glib-includes.patch | 101 + ...0002-src-procman.cpp-include-main-gtkmm.h.patch | 49 + ...ove-pkg-config-check-for-gnome-icon-theme.patch | 30 + .../gnome-system-monitor_2.28.2.bb | 32 + ...kefile.am-remove-DG_DISABLE_DEPRECATED-to.patch | 77 + .../do-not-use-srcdir-variable.patch | 22 + .../gnome-vfs-2.24.4/gconftool-lossage.patch | 13 + .../gnome-vfs-2.24.4/gnome-vfs-no-kerberos.patch | 53 + .../recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb | 60 + .../0001-Makefile.am-do-not-build-help.patch | 28 + .../recipes-gnome/gnome/gnome-terminal_2.30.2.bb | 19 + .../libgnomecups/libgnomecups-0.2.3-cups-1.6.patch | 288 + .../libgnomecups/libgnomecups-0.2.3-glib.h.patch | 42 + .../recipes-gnome/gnome/libgnomecups_0.2.3.bb | 23 + ...0001-configure-use-pkgconfig-for-freetype.patch | 37 + .../gnome/libgnomeprint/bison3-support.patch | 30 + .../gnome/libgnomeprint/fix.includes.patch | 11 + .../gnome/libgnomeprint/freetype.patch | 38 + .../recipes-gnome/gnome/libgnomeprint_2.18.8.bb | 26 + ...n-drop-introspection-macros-replace-them-.patch | 84 + .../gnumeric/gnumeric/do-not-use-srcdir.patch | 15 + .../recipes-gnome/gnumeric/gnumeric_1.12.0.bb | 47 + .../recipes-gnome/gthumb/files/parallel.patch | 158 + .../recipes-gnome/gthumb/gthumb_2.12.4.bb | 28 + .../gtksourceview/gtksourceview2/acinclude.m4 | 90 + .../gtksourceview/gtksourceview2/gtk-doc.m4 | 53 + .../gtksourceview/gtksourceview2/gtk-doc.make | 173 + .../gtksourceview/gtksourceview2_2.10.5.bb | 28 + .../files/0001-Add-support-for-libsystemd.patch | 49 + .../meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb | 62 + .../recipes-gnome/gweather/libgweather3_3.0.2.bb | 28 + .../recipes-gnome/gweather/libgweather_2.30.3.bb | 23 + .../libart-lgpl/libart-lgpl/Makefile.am.patch | 17 + .../libart-lgpl/libart-lgpl/aarch64/art_config.h | 10 + .../libart-lgpl/libart-lgpl/aarch64be/art_config.h | 10 + .../libart-lgpl/aarch64be_32/art_config.h | 10 + .../libart-lgpl/libart-lgpl/arm/art_config.h | 10 + .../libart-lgpl/libart-lgpl/armeb/art_config.h | 10 + .../libart-lgpl/libart-lgpl/i386/art_config.h | 10 + .../libart-lgpl/libart-lgpl/i586/art_config.h | 10 + .../libart-lgpl/libart-lgpl/i686/art_config.h | 10 + .../libart-lgpl/libart-lgpl/mips/art_config.h | 10 + .../libart-lgpl/libart-lgpl/mips64/art_config.h | 10 + .../libart-lgpl/libart-lgpl/mips64el/art_config.h | 10 + .../libart-lgpl/libart-lgpl/mipsel/art_config.h | 10 + .../libart-lgpl/libart-lgpl/powerpc/art_config.h | 10 + .../libart-lgpl/libart-lgpl/powerpc64/art_config.h | 10 + .../libart-lgpl/libart-lgpl/x86_64/art_config.h | 10 + .../libart-lgpl/libart-lgpl_2.3.21.bb | 28 + .../recipes-gnome/libgdata/libgdata_0.16.1.bb | 27 + ...nome-Makefile.am-allow-deprecated-symbols.patch | 35 + .../recipes-gnome/libgnome/libgnome_2.32.1.bb | 36 + .../libgnome/libgnomecanvas_2.30.3.bb | 20 + .../recipes-gnome/libgnome/libgnomekbd_2.32.0.bb | 19 + .../recipes-gnome/libgnome/libgnomeui.inc | 24 + .../libgnome/libgnomeui/gnome-stock-pixbufs.h | 4030 ++++ .../libgnome/libgnomeui/no-pixbuf-csource.patch | 11 + .../recipes-gnome/libgnome/libgnomeui_2.24.3.bb | 7 + ...c-drop-a-copy-paste-of-introspection.m4-m.patch | 103 + .../recipes-gnome/libgsf/libgsf_1.14.29.bb | 29 + .../recipes-gnome/libgtkstylus/files/gtkstylus.sh | 5 + .../recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb | 27 + .../recipes-gnome/libgtop/libgtop_2.30.0.bb | 12 + .../recipes-gnome/libidl/libidl-native_0.8.14.bb | 10 + .../meta-gnome/recipes-gnome/libidl/libidl.inc | 12 + .../recipes-gnome/libidl/libidl_0.8.14.bb | 13 + .../recipes-gnome/libwnck/libwnck_2.31.0.bb | 22 + .../recipes-gnome/libxklavier/libxklavier_5.3.bb | 26 + .../metacity/remove-yelp-help-rules-var.patch | 28 + .../recipes-gnome/metacity/metacity_2.34.13.bb | 32 + .../nautilus/nautilus/idl-sysroot.patch | 7 + .../nautilus/no-G_DISABLE_DEPRECATED.patch | 44 + .../nautilus/nautilus/no-try-run-strftime.diff | 28 + .../nautilus/nautilus3/no-try-run-strftime.diff | 41 + .../recipes-gnome/nautilus/nautilus3_3.2.1.bb | 54 + .../recipes-gnome/nautilus/nautilus_2.32.2.bb | 41 + ...-src-Makefile.am-fix-build-with-glib-2.36.patch | 34 + ...LAGS-instead-of-INCLUDES-and-fix-problem-.patch | 42 + .../orbit2/orbit2/configure-lossage.patch | 37 + .../orbit2/orbit2/pkgconfig-fix.patch | 12 + .../recipes-gnome/orbit2/orbit2_2.14.19.bb | 41 + .../meta-gnome/recipes-gnome/pimlico/contacts.inc | 28 + .../contacts-conditionally-install-schema.patch | 37 + .../recipes-gnome/pimlico/contacts/make-382.patch | 16 + .../pimlico/contacts/stock_contact.png | Bin 0 -> 2311 bytes .../pimlico/contacts/stock_person.png | Bin 0 -> 2280 bytes .../recipes-gnome/pimlico/contacts_0.9.bb | 18 + .../recipes-gnome/pimlico/contacts_git.bb | 19 + .../meta-gnome/recipes-gnome/pimlico/dates.inc | 11 + ...ew-evolution-data-server-e_source_-color-.patch | 72 + .../dates/dso_linking_change_build_fix.patch | 44 + .../recipes-gnome/pimlico/dates/make-382.patch | 18 + .../uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch | 37 + .../meta-gnome/recipes-gnome/pimlico/dates_git.bb | 19 + .../meta-gnome/recipes-gnome/pimlico/tasks.inc | 10 + .../meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb | 13 + .../meta-gnome/recipes-gnome/pimlico/tasks_git.bb | 9 + .../add-angstrom-distro.patch | 41 + .../system-tools-backends | 74 + .../system-tools/system-tools-backends_2.10.2.bb | 54 + .../gnome-themes/drop-localedir-override.patch | 22 + .../themes/gnome-themes/iconpath-option.patch | 52 + .../recipes-gnome/themes/gnome-themes_2.32.1.bb | 33 + ...se-foreign-mode-to-avoid-errors-with-miss.patch | 29 + .../recipes-gnome/wv/wv-1.2.4/pkgconfig.patch | 13 + .../meta-gnome/recipes-gnome/wv/wv_1.2.4.bb | 20 + .../files/0001-Makefile.am-don-t-build-help.patch | 39 + .../recipes-gnome/zenity/zenity_2.32.1.bb | 21 + .../florence/files/0001-Fix-glib-includes.patch | 33 + .../recipes-support/florence/florence_0.5.1.bb | 20 + ...igure.ac-fix-paths-to-introspection-tools.patch | 41 + .../recipes-support/goffice/goffice/c99math.patch | 12 + .../recipes-support/goffice/goffice/nodolt.patch | 12 + .../goffice/goffice/pcre-8.30.patch | 19 + .../recipes-support/goffice/goffice_0.10.1.bb | 49 + .../recipes-support/tracker/files/90tracker | 4 + .../tracker/files/tracker-dbus.service | 15 + .../tracker/files/tracker-miner-fs.service | 12 + .../tracker/files/tracker-store.service | 12 + ...-Fix-missing-gobject-introspection-checks.patch | 17 + .../enable-sqlite-crosscompile.patch | 13 + .../fix-removable-media-detection.patch | 30 + .../recipes-support/tracker/tracker_0.14.2.bb | 82 + .../meta-openembedded/meta-gnome/site/arm-64 | 13 + .../meta-openembedded/meta-gnome/site/x86_64-linux | 17 + import-layers/meta-openembedded/meta-gpe/README | 17 + .../meta-openembedded/meta-gpe/conf/layer.conf | 15 + ...ering-of-LDADD-options-to-fix-a-compilati.patch | 28 + .../gpe-scap/gpe-scap/use.libsoup-2.4.patch | 42 + .../recipes-graphics/gpe-scap/gpe-scap_1.4.bb | 23 + .../libgpewidget/libgpewidget/glib-2.32.patch | 11 + .../libgpewidget/libgpewidget/pkgconfig.patch | 11 + .../libgpewidget/libgpewidget_0.117.bb | 23 + .../minilite/minilite/makefile-fix.patch | 11 + .../recipes-graphics/minilite/minilite_0.50.bb | 16 + .../fbreader/fbreader-0.12.10/Makefile.patch | 22 + .../fbreader/fbreader-0.12.10/gcc45.patch | 20 + .../recipes-support/fbreader/fbreader_0.12.10.bb | 42 + .../recipes-support/fbreader/fbreader_git.bb | 42 + ...ation-of-the-icons-when-RESOLUTION-is-set.patch | 40 + .../meta-openembedded/meta-initramfs/COPYING.MIT | 17 + .../meta-openembedded/meta-initramfs/README | 37 + .../meta-initramfs/classes/klibc.bbclass | 15 + .../meta-initramfs/conf/layer.conf | 21 + .../recipes-bsp/images/initramfs-debug-image.bb | 22 + .../images/initramfs-kexecboot-image.bb | 24 + .../images/initramfs-kexecboot-klibc-image.bb | 7 + .../recipes-bsp/initrdscripts/files/init-debug.sh | 31 + .../initrdscripts/initramfs-debug_1.0.bb | 14 + .../files/0001-kexecboot-fix-build-when-S-B.patch | 61 + .../0002-kexecboot-fix-configure-warnings.patch | 33 + ...0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch | 97 + ...-workaround-for-absolute-kernel-and-initr.patch | 135 + .../files/0005-rgb.h-fix-build-with-gcc5.patch | 35 + .../recipes-bsp/kexecboot/kexecboot-cfg/icon.xpm | 43 + .../recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb | 60 + .../recipes-bsp/kexecboot/kexecboot_0.6.bb | 75 + .../recipes-devtools/dracut/dracut_git.bb | 61 + .../recipes-devtools/klibc/klcc-cross_2.0.4.bb | 40 + .../klibc/klibc-2.0.4/armv4-fix-v4bx.patch | 15 + .../klibc/klibc-2.0.4/klcc-consider-sysroot.patch | 14 + .../klibc/klibc-2.0.4/klibc-config-eabi.patch | 14 + .../klibc/klibc-2.0.4/klibc-linux-libc-dev.patch | 22 + .../klibc/klibc-2.0.4/staging.patch | 144 + .../klibc/klibc-2.0.4/use-env-for-perl.patch | 25 + .../klibc/klibc-static-utils_2.0.4.bb | 12 + .../recipes-devtools/klibc/klibc-utils.inc | 60 + .../recipes-devtools/klibc/klibc-utils_2.0.4.bb | 14 + .../recipes-devtools/klibc/klibc.inc | 51 + .../recipes-devtools/klibc/klibc_2.0.4.bb | 24 + .../0001-Makefile-only-build-ubi-utils.patch | 87 + .../0002-common.mk-for-klibc-CC-is-klcc.patch | 27 + .../0003-libubi.c-add-klibc-specific-fixes.patch | 76 + .../0004-common.h-klibc-fixes-1.patch | 84 + .../0005-common.h-klibc-fixes-2.patch | 61 + ...rser-remove-unused-function-needing-float.patch | 85 + .../recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb | 50 + .../kexec-tools-klibc-2.0.2/arm_crashdump.patch | 12 + .../kexec-tools-klibc-2.0.2/cflags_static.patch | 11 + .../fix-out-of-tree-build.patch | 54 + .../kexec-tools-klibc-2.0.2/ifdown_errno.patch | 11 + .../kexec-tools-klibc-2.0.2/kexec-elf-rel.patch | 61 + .../kexec-tools-klibc-2.0.2/kexec-syscall.patch | 44 + .../kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch | 18 + .../kexec-tools-klibc-2.0.2/purgatory_flags.patch | 21 + .../kexec-tools-klibc-2.0.2/purgatory_string.patch | 9 + .../kexec/kexec-tools-klibc-2.0.2/sha256.patch | 13 + .../sysconf_nrprocessors.patch | 13 + .../kexec-tools-klibc-2.0.2/x86_basename.patch | 14 + .../kexec-tools-klibc-2.0.2/x86_kexec_test.patch | 13 + .../kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch | 21 + .../kexec-tools-klibc-2.0.2/x86_vfscanf.patch | 27 + .../kexec/kexec-tools-klibc_2.0.2.bb | 40 + .../revert-check-console.patch | 47 + .../linux/linux-yocto-tiny-kexecboot_4.4.bb | 29 + .../meta-openembedded/meta-multimedia/COPYING.MIT | 17 + .../meta-openembedded/meta-multimedia/README | 20 + .../meta-multimedia/conf/layer.conf | 25 + .../recipes-connectivity/gupnp/gssdp.inc | 20 + .../recipes-connectivity/gupnp/gssdp_0.14.8.bb | 9 + .../recipes-connectivity/gupnp/gupnp-av.inc | 13 + .../recipes-connectivity/gupnp/gupnp-av_0.12.6.bb | 8 + .../recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb | 17 + .../recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb | 14 + .../gupnp/gupnp-tools_0.8.10.bb | 12 + .../recipes-connectivity/gupnp/gupnp.inc | 25 + .../recipes-connectivity/gupnp/gupnp_0.20.14.bb | 8 + .../avoid-redefining-strnlen-and-strndup.patch | 47 + .../libupnp/libupnp/sepbuildfix.patch | 60 + .../recipes-connectivity/libupnp/libupnp_1.6.19.bb | 19 + .../recipes-connectivity/rygel/rygel_0.28.2.bb | 59 + .../recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb | 106 + .../recipes-dvb/oscam/oscam/respect-cflags.patch | 38 + .../meta-multimedia/recipes-dvb/oscam/oscam_svn.bb | 20 + ...end-specific-LD-CFLAGS-into-a-helper-vari.patch | 92 + .../recipes-dvb/tvheadend/tvheadend_git.bb | 31 + ...on-t-run-python-distutils-to-find-STAGING.patch | 31 + ...d-ios-Add-memory-barriers-to-atomic-Add-S.patch | 97 + ...d-ios-Add-memory-barriers-to-cas-assembly.patch | 69 + ...igure-cope-with-ld-is-gold-DISTRO_FEATURE.patch | 43 + .../xbmc/configure.in-Avoid-running-code.patch | 32 + .../recipes-mediacentre/xbmc/xbmc_git.bb | 99 + .../recipes-mkv/libebml/libebml_1.3.0.bb | 33 + .../recipes-mkv/libmatroska/libmatroska_1.4.1.bb | 35 + .../recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb | 57 + .../cdparanoia/cdparanoia_10.2.bb | 26 + ...0001-Use-DESTDIR-in-install-Makefile-rule.patch | 70 + .../0002-interface-remove-C-reserved-keyword.patch | 605 + .../coriander/coriander/cross-compile.patch | 17 + .../coriander/coriander_2.0.2.bb | 17 + .../dleyna/dleyna-connector-dbus_0.3.0.bb | 18 + .../recipes-multimedia/dleyna/dleyna-core_0.6.0.bb | 18 + .../dleyna/dleyna-renderer_0.6.0.bb | 23 + .../dleyna/dleyna-server_0.6.0.bb | 21 + .../dleyna/media-service-upnp_0.5.0.bb | 24 + .../dleyna/renderer-service-upnp_0.3.0.bb | 29 + .../recipes-multimedia/faac/faac_1.28.bb | 21 + .../recipes-multimedia/faac/files/build-fix.patch | 332 + .../fluidsynth/fluidsynth_1.1.6.bb | 23 + .../0001-aacdec-check-channel-count.patch | 34 + .../0001-alac-fix-nb_samples-order-case.patch | 30 + .../0001-alsdec-check-block-length.patch | 61 + ...ac3dec-Check-coding-mode-against-channels.patch | 37 + ...util-fix-signedness-in-sizeof-comparissio.patch | 40 + ...le-use-av_image_get_linesize-to-calculate.patch | 50 + ...c-parser-reset-indexes-on-realloc-failure.patch | 50 + ...a-Perform-pointer-advance-and-checks-befo.patch | 81 + .../0001-avcodec-smc-fix-off-by-1-error.patch | 32 + ...egtsenc-Check-data-array-size-in-mpegts_w.patch | 69 + .../0001-eamad-fix-out-of-array-accesses.patch | 29 + ...-error-concealment-initialize-block-index.patch | 29 + ...alment-Check-that-the-picture-is-not-in-a.patch | 37 + .../0001-ffserver-set-oformat.patch | 36 + ...t-ref-count-check-and-limit-fix-out-of-ar.patch | 29 + ...t-parameters-from-SPS-whenever-it-changes.patch | 145 + ...rror-concealment-when-SPS-and-slices-are-.patch | 33 + .../0001-h264_sei-Fix-infinite-loop.patch | 39 + ...01-huffyuvdec-Check-init_vlc-return-codes.patch | 87 + .../0001-huffyuvdec-Skip-len-0-cases.patch | 61 + ...f-compute-probe-buffer-size-more-reliably.patch | 45 + .../0001-mjpegdec-check-SE.patch | 32 + ...heck-RLE-size-before-copying.-Fix-out-of-.patch | 34 + ...er-dont-access-out-of-array-elements-at-t.patch | 44 + ...array-index-before-use-fix-out-of-array-a.patch | 30 + .../0001-qdm2dec-fix-buffer-overflow.patch | 58 + ...001-roqvideodec-check-dimensions-validity.patch | 36 + ...Check-that-the-last-indexes-are-within-th.patch | 32 + ...-vp3-Copy-all-3-frames-for-thread-updates.patch | 32 + ...-read-for-negative-tokens-and-memleaks-on.patch | 183 + ...o-check-chunk-sizes-before-reading-chunks.patch | 51 + ...egdec-check-bits-per-pixel-for-changes-si.patch | 68 + .../gst-ffmpeg-0.10.13/configure-fix.patch | 22 + .../gst-ffmpeg-CVE-2013-0855.patch | 100 + .../gst-ffmpeg-CVE-2013-3674.patch | 26 + .../gst-ffmpeg-fix-CVE-2011-4352.patch | 64 + .../gst-ffmpeg-fix-CVE-2014-7933.patch | 38 + .../gst-ffmpeg-fix-CVE-2014-8542.patch | 38 + .../gst-ffmpeg-fix-CVE-2014-8543.patch | 35 + .../gst-ffmpeg-fix-CVE-2014-8544.patch | 56 + .../gst-ffmpeg-fix-CVE-2014-8545.patch | 36 + .../gst-ffmpeg-fix-CVE-2014-8546.patch | 35 + .../gst-ffmpeg-fix-CVE-2014-8547.patch | 59 + .../gst-ffmpeg-fix-CVE-2014-9318.patch | 37 + .../gst-ffmpeg-fix-CVE-2014-9603.patch | 41 + .../gst-ffmpeg-0.10.13/h264_qpel_mmx.patch | 57 + .../gst-ffmpeg-0.10.13/libav-9.patch | 9304 +++++++++ .../gst-ffmpeg-0.10.13/libav_e500mc.patch | 21 + .../gst-ffmpeg-0.10.13/libav_e5500.patch | 19 + .../gst-ffmpeg-0.10.13/lower-rank.diff | 16 + .../gstreamer-0.10/gst-ffmpeg_0.10.13.bb | 103 + .../gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb | 14 + .../gst-fluendo-mpegdemux_0.10.85.bb | 12 + .../gstreamer-0.10/gst-fluendo.inc | 14 + .../gstreamer-0.10/gst-meta-base_0.10.bb | 73 + .../gstreamer-0.10/gst-openmax/gcc_4.6.patch | 18 + .../gstreamer-0.10/gst-openmax/ptr-array.patch | 46 + .../gstreamer-0.10/gst-openmax_0.10.1.bb | 35 + .../gst-plugins-bad/buffer-overflow-mp4.patch | 36 + .../gstreamer-0.10/gst-plugins-bad_0.10.23.bb | 60 + ...le-Fix-build-on-x86-if-emmintrin.h-is-ava.patch | 37 + .../configure.ac-fix-subparse-plugin.patch | 27 + .../gst-plugins-base-tremor.patch | 20 + .../gstreamer-0.10/gst-plugins-base_0.10.36.bb | 43 + ...-conditional-gl-framebuffer-undefined-use.patch | 35 + .../gstreamer-0.10/gst-plugins-gl_0.10.3.bb | 25 + ...ild-with-recent-kernels-the-v4l2_buffer-i.patch | 33 + ...define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch | 45 + .../0407-mulawdec-fix-integer-overrun.patch | 47 + .../gstreamer-0.10/gst-plugins-good_0.10.31.bb | 48 + ...sate-for-libcdio-s-recent-cd-text-api-cha.patch | 193 + .../0002-Fix-opencore-include-paths.patch | 58 + .../gstreamer-0.10/gst-plugins-ugly_0.10.19.bb | 35 + .../gstreamer-0.10/gst-plugins.inc | 29 + ...ecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch | 34 + .../gstreamer-0.10/gst-rtsp_0.10.8.bb | 18 + ...ix-self-comparison-always-evaluates-to-tr.patch | 32 + ...01-parse-make-grammar.y-work-with-Bison-3.patch | 35 + .../gstreamer-0.10.36/check_fix.patch | 19 + .../gst-inspect-check-error.patch | 16 + .../gstreamer-0.10.36/gstregistrybinary.c | 487 + .../gstreamer-0.10.36/gstregistrybinary.h | 194 + .../gstreamer-0.10/gstreamer_0.10.36.bb | 52 + .../gstreamer/files/display.patch | 60 + .../recipes-multimedia/gstreamer/gst123_0.3.1.bb | 17 + .../recipes-multimedia/libao/libao_1.2.0.bb | 34 + .../libavc1394/libavc1394_0.5.4.bb | 15 + .../libdc1394/files/install_examples.patch | 14 + .../recipes-multimedia/libdc1394/libdc1394_git.bb | 22 + .../libdvbpsi/libdvbpsi_1.3.0.bb | 12 + .../libdvdnav/libdvdnav_5.0.3.bb | 14 + .../libiec61883/libiec61883_1.2.0.bb | 16 + .../recipes-multimedia/mpg123/mpg123_1.22.4.bb | 65 + .../musicbrainz/files/allow-libdir-override.patch | 21 + .../musicbrainz/libmusicbrainz_git.bb | 41 + .../musicpd/libmpd-11.8.17/glibc-2.20.patch | 10 + .../recipes-multimedia/musicpd/libmpd_11.8.17.bb | 13 + .../recipes-multimedia/musicpd/mpd/mpd.conf.in | 420 + .../recipes-multimedia/musicpd/mpd_0.19.10.bb | 59 + .../openal/openal-soft_1.15.1.bb | 23 + .../opencore-amr/opencore-amr_0.1.3.bb | 13 + .../opencore-amr/vo-aacenc_0.1.3.bb | 13 + .../opencore-amr/vo-amrwbenc_0.1.3.bb | 13 + .../rtmpdump/rtmpdump/fix-racing-build-issue.patch | 18 + .../recipes-multimedia/rtmpdump/rtmpdump_2.4.bb | 22 + .../sample-content/bigbuckbunny-1080p.bb | 17 + .../sample-content/bigbuckbunny-480p.bb | 17 + .../sample-content/bigbuckbunny-720p.bb | 17 + .../sample-content/tearsofsteel-1080p.bb | 16 + .../schroedinger/schroedinger/configure.ac.patch | 20 + .../schroedinger/schroedinger_1.0.11.bb | 22 + .../recipes-multimedia/sox/sox_14.4.0.bb | 38 + .../recipes-multimedia/vlc/libdvdcss_1.3.0.bb | 12 + .../meta-multimedia/recipes-multimedia/vlc/vlc.inc | 106 + .../vlc/vlc/0001-enable-subdir-objects.patch | 13 + .../vlc/0002-glibc-does-not-provide-strlcpy.patch | 17 + .../vlc/vlc/0003-use-am-path-libgcrypt.patch | 46 + .../0004-modules-gui-qt4-out-of-tree-build.patch | 19 + .../vlc/vlc/0005-libpostproc-header-check.patch | 17 + .../vlc/vlc/0006-make-opencv-configurable.patch | 29 + .../vlc/vlc/0007-use-vorbisidec.patch | 19 + .../vlc/vlc/0008-fix-luaL-checkint.patch | 279 + ...codec-swscale-use-AV_PIX_FMT-consistently.patch | 293 + .../0010-SWSCALE-fix-compilation-with-4.x.patch | 45 + .../recipes-multimedia/vlc/vlc_2.2.2.bb | 19 + ...oggenc-Fix-large-alloca-on-bad-AIFF-input.patch | 49 + .../vorbis-tools/vorbis-tools_1.4.0.bb | 24 + .../libmediaart/libmediaart-2.0_1.9.0.bb | 7 + .../recipes-support/libmediaart/libmediaart.inc | 14 + .../libmediaart/libmediaart_0.7.0.bb | 4 + .../liboil-0.3.17/0001-Fix-enable-vfp-flag.patch | 41 + .../liboil-0.3.17/fix-unaligned-whitelist.patch | 19 + .../liboil/liboil-0.3.17/liboil_fix_for_x32.patch | 222 + .../liboil/liboil-0.3.17/no-tests.patch | 24 + .../recipes-support/liboil/liboil_0.3.17.bb | 27 + .../recipes-support/libsrtp/libsrtp_1.5.2.bb | 18 + .../meta-openembedded/meta-networking/COPYING.MIT | 17 + .../meta-openembedded/meta-networking/MAINTAINERS | 38 + .../meta-openembedded/meta-networking/README | 40 + .../meta-networking/classes/waf-samba.bbclass | 95 + .../meta-networking/conf/layer.conf | 23 + .../meta-networking/files/waf-cross-answers/README | 3 + .../waf-cross-answers/cross-answers-aarch64.txt | 38 + .../files/waf-cross-answers/cross-answers-arm.txt | 39 + .../files/waf-cross-answers/cross-answers-i586.txt | 39 + .../files/waf-cross-answers/cross-answers-i686.txt | 39 + .../files/waf-cross-answers/cross-answers-mips.txt | 39 + .../waf-cross-answers/cross-answers-mips64.txt | 38 + .../waf-cross-answers/cross-answers-mipsel.txt | 39 + .../waf-cross-answers/cross-answers-powerpc.txt | 39 + .../waf-cross-answers/cross-answers-powerpc64.txt | 39 + .../waf-cross-answers/cross-answers-x86_64.txt | 38 + .../meta-networking/licenses/DMTF | 34 + .../meta-networking/licenses/copyleft-next-0.3.0 | 219 + .../meta-networking/licenses/netperf | 43 + .../meta-networking/licenses/radvd | 37 + .../do-not-run-ldconfig-if-destdir-is-set.patch | 21 + .../fix-linking-of-libraries-used-by-reglib.patch | 50 + .../recipes-connectivity/crda/crda_3.18.bb | 41 + .../recipes-connectivity/daq/daq_2.0.6.bb | 26 + ...le-run-test-program-while-cross-compiling.patch | 31 + .../recipes-connectivity/dhcpcd/dhcpcd_6.10.1.bb | 24 + .../0001-rcp-fix-to-work-with-large-files.patch | 31 + .../inetutils/inetutils/fix-disable-ipv6.patch | 60 + ...tf-parse-pull-in-features.h-for-__GLIBC__.patch | 29 + .../inetutils/inetutils-1.8-0003-wchar.patch | 14 + .../inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch | 26 + ...ls-only-check-pam_appl.h-when-pam-enabled.patch | 40 + .../inetutils/inetutils/rexec.xinetd.inetutils | 20 + .../inetutils/inetutils/rlogin.xinetd.inetutils | 23 + .../inetutils/inetutils/rsh.xinetd.inetutils | 21 + .../inetutils/inetutils/telnet.xinetd.inetutils | 13 + .../inetutils/inetutils/tftpd.xinetd.inetutils | 19 + .../inetutils/inetutils/version.patch | 17 + .../inetutils/inetutils_1.9.4.bb | 179 + .../recipes-connectivity/lftp/lftp_4.6.3a.bb | 26 + .../recipes-connectivity/libdnet/libdnet_1.12.bb | 15 + .../recipes-connectivity/mbedtls/mbedtls_1.3.10.bb | 37 + .../openconnect/openconnect_git.bb | 18 + .../recipes-connectivity/relayd/relayd_git.bb | 14 + .../samba-4.4.2/00-fix-typos-in-man-pages.patch | 108 + ...006-avoid-using-colon-in-the-checking-msg.patch | 32 + .../16-do-not-check-xsltproc-manpages.patch | 43 + ...-import-target-module-while-cross-compile.patch | 58 + .../21-add-config-option-without-valgrind.patch | 63 + .../samba/samba-4.4.2/volatiles.03_samba | 3 + .../recipes-connectivity/samba/samba_4.4.2.bb | 320 + .../files/sethdlc-fix-host-contamination.patch | 42 + .../recipes-connectivity/sethdlc/sethdlc.bb | 33 + ...fix-do_package-failed-since-snort-2.9.7.0.patch | 35 + .../0001-libpcap-search-sysroot-for-headers.patch | 31 + .../snort/snort/disable-dap-address-space-id.patch | 52 + .../snort/snort/disable-daq-flow-id.patch | 50 + .../snort/snort/disable-daq-verdict-retry.patch | 51 + .../snort/snort/disable-inaddr-none.patch | 75 + .../recipes-connectivity/snort/snort/snort.init | 109 + .../recipes-connectivity/snort/snort_2.9.7.5.bb | 89 + .../ufw/ufw/0001-optimize-boot.patch | 25 + .../ufw/ufw/0002-lp1044361.patch | 118 + .../ufw/ufw/0003-fix-typeerror-on-error.patch | 20 + .../ufw/ufw/0004-lp1039729.patch | 40 + .../ufw/ufw/0005-lp1191197.patch | 32 + ...dd-an-option-to-specify-iptables-location.patch | 107 + .../ufw/setup-only-make-one-reference-to-env.patch | 77 + .../recipes-connectivity/ufw/ufw_0.33.bb | 56 + .../vlan/vlan-1.9/no-HOME-includes.patch | 22 + .../recipes-connectivity/vlan/vlan_1.9.bb | 29 + .../recipes-connectivity/vpnc/vpnc/default.conf | 19 + .../recipes-connectivity/vpnc/vpnc/long-help | 168 + .../recipes-connectivity/vpnc/vpnc/makeman.patch | 11 + .../vpnc/vpnc/vpnc-install.patch | 35 + .../recipes-connectivity/vpnc/vpnc_0.5.3.bb | 45 + .../recipes-connectivity/wolfssl/wolfssl_3.9.0.bb | 21 + .../recipes-daemons/atftp/atftp/atftpd.service | 10 + .../recipes-daemons/atftp/atftp_git.bb | 63 + .../files/atftp-0.7-sorcerers_apprentice.patch | 94 + ...tpd-0.7_circumvent_tftp_size_restrictions.patch | 163 + .../atftpd-0.7_unprotected_assignments_crash.patch | 152 + .../recipes-daemons/atftp/files/atftpd.init | 37 + ...emd-allow-with-systemd-to-take-a-path-arg.patch | 47 + .../autofs/autofs/Makefile.rules-cross.patch | 23 + .../autofs/autofs/add-the-needed-stdarg.h.patch | 24 + .../autofs-5.0.7-do-not-check-for-modprobe.patch | 75 + .../autofs/autofs/autofs-5.0.7-fix-lib-deps.patch | 28 + ...7-include-linux-nfs.h-directly-in-rpc_sub.patch | 32 + .../autofs/autofs/autofs-additional-distros.patch | 12 + .../recipes-daemons/autofs/autofs/cross.patch | 44 + ...x-the-YACC-rule-to-fix-a-building-failure.patch | 62 + .../autofs/autofs/fix_disable_ldap.patch | 42 + .../autofs/autofs/force-STRIP-to-emtpy.patch | 25 + .../autofs/libtirpc-name-clash-backout.patch | 28 + .../recipes-daemons/autofs/autofs/libtirpc.patch | 26 + .../recipes-daemons/autofs/autofs/no-bash.patch | 20 + .../autofs/autofs/remove-bashism.patch | 120 + ...-pkg-config-to-detect-libxml-2.0-and-krb5.patch | 39 + .../recipes-daemons/autofs/autofs_5.1.1.bb | 72 + .../cyrus-sasl/Fix-hardcoded-libdir.patch | 25 + .../cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch | 46 + .../cyrus-sasl/debian_patches_0009_sasldb_al.diff | 14 + .../debian_patches_0014_avoid_pic_overwrite.diff | 27 + ...l.h-include-stddef.h-for-size_t-on-NetBSD.patch | 31 + .../cyrus-sasl/cyrus-sasl/saslauthd.conf | 11 + .../cyrus-sasl/cyrus-sasl/saslauthd.service | 12 + .../cyrus-sasl/cyrus-sasl_2.1.26.bb | 95 + .../recipes-daemons/dnrd/dnrd/dnrd.conf.sample | 21 + .../recipes-daemons/dnrd/dnrd/dnrd.init | 94 + .../recipes-daemons/dnrd/dnrd/dnrd.service | 12 + .../recipes-daemons/dnrd/dnrd_2.20.3.bb | 41 + .../files/99_iscsi-initiator-utils | 2 + .../iscsi-initiator-utils/files/initd.debian | 119 + .../iscsi-initiator-utils/files/iscsi-initiator | 4 + .../files/iscsi-initiator-targets.service | 15 + .../iscsi-initiator-utils-dont-use-static.patch | 21 + .../iscsi-initiator-utils-use-var-for-config.patch | 240 + .../files/iscsi-initiator.service | 12 + .../iscsi-initiator-utils_2.0-873.bb | 113 + .../recipes-daemons/lldpd/files/lldpd.default | 2 + .../recipes-daemons/lldpd/files/lldpd.init.d | 128 + .../recipes-daemons/lldpd/lldpd_0.9.2.bb | 65 + .../ncftp-configure-use-BUILD_CC-for-ccdv.patch | 32 + .../recipes-daemons/ncftp/ncftp_3.2.5.bb | 27 + .../opensaf/opensaf/0001-plmcd-error-fix.patch | 43 + .../opensaf/install-samples-from-srcdir.patch | 11 + .../recipes-daemons/opensaf/opensaf_4.7.0.bb | 66 + .../recipes-daemons/postfix/files/aliasesdb | 20 + .../postfix/files/check_hostname.sh | 13 + .../recipes-daemons/postfix/files/install.patch | 93 + .../postfix/files/internal_recipient | 1 + .../recipes-daemons/postfix/files/main.cf_2.0 | 102 + .../recipes-daemons/postfix/files/makedefs.patch | 116 + .../recipes-daemons/postfix/files/postfix | 94 + .../recipes-daemons/postfix/files/postfix.service | 16 + .../recipes-daemons/postfix/postfix.inc | 251 + .../recipes-daemons/postfix/postfix_3.0.3.bb | 4 + .../proftpd/files/CVE-2016-3125.patch | 247 + .../recipes-daemons/proftpd/files/basic.conf.patch | 21 + .../proftpd/files/build_fixup.patch | 112 + .../files/close-RequireValidShell-check.patch | 27 + .../recipes-daemons/proftpd/files/contrib.patch | 42 + .../recipes-daemons/proftpd/files/default | 9 + .../proftpd/files/proftpd-basic.init | 220 + .../recipes-daemons/proftpd/files/proftpd.service | 7 + .../recipes-daemons/proftpd/proftpd_1.3.5a.bb | 115 + .../ptpd/ptpd/ptpd-use-pkgconfig.patch | 35 + .../recipes-daemons/ptpd/ptpd/ptpd.conf | 7 + .../recipes-daemons/ptpd/ptpd/ptpd.service | 10 + .../recipes-daemons/ptpd/ptpd_2.3.1.bb | 58 + ...coded-usr-local-includes-from-configure.a.patch | 39 + .../pure-ftpd/pure-ftpd/nostrip.patch | 31 + .../recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb | 22 + .../recipes-daemons/radvd/files/radvd.default | 1 + .../recipes-daemons/radvd/files/radvd.init | 135 + .../recipes-daemons/radvd/files/radvd.service | 11 + .../recipes-daemons/radvd/files/volatiles.03_radvd | 2 + .../recipes-daemons/radvd/radvd.inc | 67 + .../recipes-daemons/radvd/radvd_2.11.bb | 5 + .../Add-default-entry-for-cross-compile.patch | 31 + .../squid/files/CVE-2016-3947.patch | 48 + ...flawed-dynamic-ldb-link-test-in-configure.patch | 43 + .../squid/files/Set-up-for-cross-compilation.patch | 29 + .../squid/files/Skip-AC_RUN_IFELSE-tests.patch | 64 + .../recipes-daemons/squid/files/run-ptest | 3 + ...d-use-serial-tests-config-needed-by-ptest.patch | 31 + .../recipes-daemons/squid/files/volatiles.03_squid | 2 + .../recipes-daemons/squid/squid_3.5.7.bb | 79 + .../files/add-error-check-for-disk-filled-up.patch | 81 + .../recipes-daemons/tftp-hpa/files/default | 3 + .../tftp-hpa/files/fix-writing-emtpy-file.patch | 39 + .../recipes-daemons/tftp-hpa/files/init | 105 + .../tftp-hpa/files/tftp-0.40-remap.patch | 25 + .../tftp-hpa/files/tftp-0.42-tftpboot.patch | 60 + .../tftp-hpa/files/tftp-0.49-chk_retcodes.patch | 21 + .../tftp-hpa/files/tftp-0.49-cmd_arg.patch | 165 + .../tftp-hpa/files/tftp-hpa-0.39-tzfix.patch | 24 + .../files/tftp-hpa-0.49-fortify-strcpy-crash.patch | 32 + .../tftp-hpa/files/tftp-hpa-0.49-stats.patch | 20 + .../tftp-hpa/files/tftp-hpa-5.2-pktinfo.patch | 29 + .../tftp-hpa-bug-fix-on-separated-CR-and-LF.patch | 38 + .../recipes-daemons/tftp-hpa/files/tftp-xinetd | 18 + .../recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb | 76 + .../recipes-daemons/vblade/files/cross.patch | 16 + .../recipes-daemons/vblade/vblade_20.bb | 20 + .../vsftpd/files/change-secure_chroot_dir.patch | 55 + .../recipes-daemons/vsftpd/files/init | 50 + .../vsftpd/files/volatiles.99_vsftpd | 1 + .../recipes-daemons/vsftpd/files/vsftpd.conf | 139 + .../recipes-daemons/vsftpd/files/vsftpd.ftpusers | 15 + .../recipes-daemons/vsftpd/files/vsftpd.service | 9 + .../recipes-daemons/vsftpd/files/vsftpd.user_list | 20 + .../vsftpd/vsftpd-3.0.3/makefile-destdir.patch | 44 + .../vsftpd/vsftpd-3.0.3/makefile-libs.patch | 21 + .../vsftpd/vsftpd-3.0.3/makefile-strip.patch | 17 + .../vsftpd-3.0.3/nopam-with-tcp_wrappers.patch | 17 + .../vsftpd/vsftpd-3.0.3/nopam.patch | 16 + .../vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch | 77 + .../vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch | 25 + .../recipes-daemons/vsftpd/vsftpd_3.0.3.bb | 109 + .../access-sk_v6_daddr-iff-IPV6-defined.patch | 28 + ...pdated_bio_struct_of_linux_v4.3_and_above.patch | 75 + ...rors-observed-with-linux-3.19-and-greater.patch | 198 + ...use-kernel-makefile-to-get-kernel-version.patch | 67 + .../iscsitarget/iscsitarget_1.4.20.3+svn502.bb | 57 + .../conntrack-tools/conntrack-tools_1.4.2.bb | 33 + ...build-fix-crash-when-optional-kernel-modu.patch | 85 + .../conntrack-tools/files/conntrack-failover | 77 + .../recipes-filter/conntrack-tools/files/init | 87 + .../ebtables-2.0.10-4/01debian_defaultconfig.patch | 50 + .../ebtables/ebtables-2.0.10-4/ebtables.common | 163 + .../ebtables/ebtables-2.0.10-4/ebtables.init | 26 + .../ebtables/ebtables-2.0.10-4/ebtables.service | 11 + .../ebtables-2.0.10-4/installnonroot.patch | 43 + .../ebtables/ebtables-2.0.10-4/no-as-needed.patch | 25 + .../recipes-filter/ebtables/ebtables_2.0.10-4.bb | 90 + .../recipes-filter/libmnl/libmnl_1.0.3.bb | 13 + .../libnetfilter/files/replace-VLAs-in-union.patch | 89 + .../libnetfilter/libnetfilter-conntrack_1.0.4.bb | 17 + .../libnetfilter/libnetfilter-cthelper_1.0.0.bb | 15 + .../libnetfilter/libnetfilter-cttimeout_1.0.0.bb | 14 + .../libnetfilter/libnetfilter-log_1.0.1.bb | 15 + .../libnetfilter/libnetfilter-queue_1.0.2.bb | 15 + .../libnfnetlink/libnfnetlink_1.0.1.bb | 18 + .../recipes-filter/libnftnl/libnftnl_1.0.5.bb | 13 + .../nftables/files/fix-to-generate-ntf.8.patch | 26 + .../recipes-filter/nftables/nftables_0.5.bb | 17 + .../meta-networking/recipes-irc/znc/znc_git.bb | 31 + ...1-testmmap-fix-compile-issue-with-gcc-5.x.patch | 33 + .../netmap/files/makefile_fixup.patch | 97 + .../recipes-kernel/netmap/netmap-modules_git.bb | 89 + .../recipes-kernel/netmap/netmap.inc | 17 + .../recipes-kernel/netmap/netmap_git.bb | 34 + .../netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch | 28 + .../recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb | 46 + .../netkit-rpc/netkit-rpc/gcc4.patch | 39 + .../recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb | 38 + .../netkit-rsh/netkit-rsh/fix-host-variable.patch | 27 + .../netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch | 30 + .../netkit-rsh/netkit-rsh/no_pam_build_fix.patch | 39 + .../recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam | 10 + .../netkit-rsh/netkit-rsh/rexec.xinetd.netkit | 20 + .../netkit-rsh/netkit-rsh/rlogin.pam | 12 + .../netkit-rsh/netkit-rsh/rlogin.xinetd.netkit | 23 + .../netkit-rsh/rsh-redone_link_order_file.patch | 77 + .../recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam | 10 + .../netkit-rsh/netkit-rsh/rsh.xinetd.netkit | 21 + .../recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb | 100 + ...rusersd-Makefile-fix-parallel-build-issue.patch | 30 + .../netkit-rusers/netkit-rusers_0.17.bb | 70 + .../recipes-netkit/netkit-rwho/netkit-rwho/rwhod | 71 + .../netkit-rwho/netkit-rwho/rwhod.default | 2 + .../recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb | 83 + .../files/To-aviod-buffer-overflow-in-telnet.patch | 1217 ++ .../files/Warning-fix-in-the-step-of-install.patch | 41 + .../netkit-telnet/files/cross-compile.patch | 48 + .../netkit-telnet/files/telnet-xinetd | 14 + .../netkit-telnet/netkit-telnet_0.17.bb | 59 + .../netkit-tftp/netkit-tftp/tftp.conf | 11 + .../recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb | 54 + .../recipes-protocols/accel-ppp/accel-ppp_git.bb | 42 + .../recipes-protocols/net-snmp/files/init | 66 + .../recipes-protocols/net-snmp/files/snmpd.conf | 422 + .../net-snmp/files/snmptrapd.conf | 18 + .../0001-config_os_headers-Error-Fix.patch | 37 + .../net-snmp/0001-config_os_libs2-Error-Fix.patch | 31 + ...tools.c-Don-t-check-for-return-from-EVP_M.patch | 33 + .../dont-return-incompletely-parsed-varbinds.patch | 131 + .../net-snmp/net-snmp/fix-libtool-finish.patch | 25 + ...snmp-add-knob-whether-nlist.h-are-checked.patch | 35 + ...p-testing-add-the-output-format-for-ptest.patch | 37 + .../recipes-protocols/net-snmp/net-snmp/run-ptest | 4 + .../net-snmp/net-snmp/snmpd.service | 13 + .../net-snmp/net-snmp/snmptrapd.service | 13 + .../net-snmp/net-snmp/systemd-support.patch | 1652 ++ .../recipes-protocols/net-snmp/net-snmp_5.7.3.bb | 180 + .../recipes-protocols/openflow/openflow.inc | 38 + .../recipes-protocols/openflow/openflow_1.0.bb | 4 + .../recipes-protocols/openflow/openflow_git.bb | 4 + ...kefile-modify-CFLAGS-to-aviod-build-error.patch | 106 + .../openl2tp-simplify-gcc-warning-hack.patch | 41 + .../recipes-protocols/openl2tp/openl2tp_1.8.bb | 36 + .../pptp-linux/pptp-linux-1.8.0/options.pptp | 30 + .../pptp-linux/pptp-linux_1.8.0.bb | 32 + ...heck-ospf6-before-using-it-in-ospf6_clean.patch | 28 + ...c-zebra-routing-table-with-the-kernel-one.patch | 48 + ...ose-the-stdout-stderr-as-in-other-daemons.patch | 50 + .../recipes-protocols/quagga/files/babeld.service | 14 + .../recipes-protocols/quagga/files/bgpd.service | 16 + .../recipes-protocols/quagga/files/isisd.service | 14 + .../recipes-protocols/quagga/files/ospf6d.service | 16 + .../recipes-protocols/quagga/files/ospfd.service | 16 + .../quagga-Avoid-duplicate-connected-address.patch | 54 + .../recipes-protocols/quagga/files/quagga.default | 13 + .../recipes-protocols/quagga/files/quagga.init | 200 + .../recipes-protocols/quagga/files/quagga.pam | 13 + .../ripd-fix-two-bugs-after-received-SIGHUP.patch | 50 + .../recipes-protocols/quagga/files/ripd.service | 16 + .../recipes-protocols/quagga/files/ripngd.service | 16 + .../quagga/files/volatiles.03_quagga | 3 + .../quagga/files/watchquagga.default | 12 + .../quagga/files/watchquagga.init | 64 + .../recipes-protocols/quagga/files/zebra.service | 17 + .../recipes-protocols/quagga/quagga.inc | 251 + .../recipes-protocols/quagga/quagga_0.99.24.1.bb | 10 + .../Modify-configure.in-and-etc-Makefile.am.patch | 84 + .../config-site.radiusclient-ng-0.5.6 | 1 + .../radiusclient-ng/radiusclient-ng_0.5.6.bb | 36 + .../rp-pppoe-3.12/configure.in-Error-fix.patch | 59 + .../rp-pppoe/rp-pppoe-3.12/configure.patch | 11 + .../rp-pppoe-3.12/configure_in_cross.patch | 156 + .../discard-use-of-dnl-in-Makefile.am.patch | 27 + .../rp-pppoe-3.12/dont-swallow-errors.patch | 28 + .../rp-pppoe/rp-pppoe-3.12/pppoe-server.default | 22 + .../rp-pppoe/rp-pppoe-3.12/pppoe-server.init | 59 + .../rp-pppoe/rp-pppoe-3.12/pppoe-server.service | 11 + .../rp-pppoe-3.12/pppoe-src-restrictions.patch | 20 + .../rp-pppoe/rp-pppoe-3.12/top-autoconf.patch | 27 + .../rp-pppoe/rp-pppoe-3.12/update-config.patch | 32 + .../recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb | 74 + .../recipes-protocols/tsocks/tsocks_1.8beta5.bb | 23 + .../recipes-protocols/xl2tpd/xl2tpd.inc | 44 + .../fix-inline-functions-errors-with-gcc-5.x.patch | 134 + .../recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb | 7 + .../recipes-protocols/xl2tpd/xl2tpd_git.bb | 8 + .../zeroconf/zeroconf/compilefix.patch | 19 + .../zeroconf/zeroconf/debian-zeroconf | 51 + .../zeroconf/zeroconf/zeroconf-default | 17 + .../recipes-protocols/zeroconf/zeroconf_0.9.bb | 34 + .../aoetools/aoetools/aoe-stat-no-bashism.patch | 27 + .../recipes-support/aoetools/aoetools_36.bb | 25 + .../arptables-arpt-get-target-fix.patch | 30 + .../arptables-compile-install.patch | 61 + .../arptables-0.0.3-4/arptables-init-busybox.patch | 77 + .../arptables-remove-bashism.patch | 37 + .../recipes-support/arptables/arptables_0.0.3-4.bb | 33 + .../recipes-support/bridge-utils/bridge-utils.inc | 28 + ...5-check-error-returns-from-write-to-sysfs.patch | 87 + ...5-fix-error-message-for-incorrect-command.patch | 33 + ...utils-1.5-fix-incorrect-command-in-manual.patch | 33 + .../bridge-utils/bridge-utils/kernel-headers.patch | 22 + .../bridge-utils/bridge-utils_1.5.bb | 11 + .../recipes-support/c-ares/c-ares_1.11.0.bb | 13 + .../recipes-support/cifs/cifs-utils_git.bb | 34 + .../cim-schema/cim-schema-docs_2.40.0.bb | 25 + .../cim-schema/cim-schema-exper_2.39.0.bb | 29 + .../cim-schema/cim-schema-final_2.40.0.bb | 34 + .../recipes-support/cim-schema/cim-schema.inc | 9 + .../cim-schema/cim-schema/files/LICENSE | 34 + .../recipes-support/cim-schema/files/LICENSE | 34 + .../01-support-cross-compile-for-linux-os.patch | 24 + .../ctdb/02-link-rep_snprintf-for-ltdbtool.patch | 16 + ...rvice-ensure-the-PID-directory-is-created.patch | 25 + .../recipes-support/ctdb/ctdb_2.5.1.bb | 54 + .../example21.cpp-remove-deprecated-code.patch | 47 + .../curlpp/curlpp/pkgconfig_fix.patch | 38 + .../recipes-support/curlpp/curlpp_0.7.3.bb | 31 + .../recipes-support/dnsmasq/dnsmasq.inc | 83 + .../recipes-support/dnsmasq/dnsmasq/lua.patch | 29 + .../recipes-support/dnsmasq/dnsmasq_2.75.bb | 9 + .../recipes-support/dnsmasq/files/99_dnsmasq | 1 + .../dnsmasq/files/dnsmasq-noresolvconf.service | 15 + .../dnsmasq/files/dnsmasq-resolvconf-helper | 62 + .../dnsmasq/files/dnsmasq-resolvconf.service | 17 + .../recipes-support/dnsmasq/files/dnsmasq.conf | 293 + .../dnsmasq/files/dnsmasq.resolvconf | 84 + .../recipes-support/dnsmasq/files/init | 117 + .../dnssec-conf/dnssec-conf_2.02.bb | 35 + ...c-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch | 66 + .../dovecot/dovecot/dovecot.service | 14 + .../recipes-support/dovecot/dovecot/dovecot.socket | 14 + .../recipes-support/dovecot/dovecot_2.2.21.bb | 67 + ...1-Makefile.in-don-t-compile-documentation.patch | 38 + ...e.in-fix-permission-bits-for-drbd.service.patch | 25 + .../recipes-support/drbd/drbd-utils_8.9.3.bb | 41 + .../recipes-support/esmtp/esmtp_1.2.bb | 40 + .../recipes-support/fetchmail/fetchmail_6.3.26.bb | 18 + .../recipes-support/fping/fping_3.5.bb | 25 + .../recipes-support/geoip/files/run-ptest | 11 + .../recipes-support/geoip/geoip-perl/run-ptest | 15 + .../recipes-support/geoip/geoip-perl_1.45.bb | 40 + .../recipes-support/geoip/geoip_1.6.6.bb | 93 + .../geoip/geoipupdate-2.2.1/GeoIP.conf | 11 + .../geoip/geoipupdate-2.2.1/geoipupdate.cron | 5 + .../recipes-support/geoip/geoipupdate_2.2.1.bb | 30 + .../recipes-support/ifenslave/ifenslave_1.1.0.bb | 18 + .../recipes-support/iftop/iftop_1.0pre4.bb | 14 + ...y-avoid-potential-null-pointer-dereferenc.patch | 33 + .../0002-Don-t-link-against-libfl.patch | 87 + .../ipsec-tools/ipsec-tools/configure.patch | 13 + .../ipsec-tools/fix-CVE-2015-4047.patch | 36 + .../ipsec-tools/ipsec-tools/glibc-2.20.patch | 23 + ...PDATE-message-when-received-EINTR-message.patch | 220 + .../ipsec-tools/racoon-check-invalid-ivm.patch | 26 + .../racoon-check-invalid-pointers.patch | 61 + .../ipsec-tools/ipsec-tools/racoon.conf | 8 + .../ipsec-tools/ipsec-tools/racoon.conf.sample | 40 + .../ipsec-tools/ipsec-tools/racoon.service | 11 + .../ipsec-tools/ipsec-tools_0.8.2.bb | 92 + ...001-Modify-the-Makefile-for-cross-compile.patch | 97 + .../0002-Replace-nl_handle-to-nl_sock.patch | 63 + .../0003-ipvsadm-remove-dependency-on-bash.patch | 39 + .../recipes-support/ipvsadm/ipvsadm_1.26.bb | 35 + .../libesmtp/libesmtp/include-topdir.patch | 48 + .../recipes-support/libesmtp/libesmtp_1.0.6.bb | 36 + .../libldb/avoid-openldap-unless-wanted.patch | 13 + ...-import-target-module-while-cross-compile.patch | 58 + .../recipes-support/libldb/libldb_1.1.26.bb | 49 + .../libmemcached/files/crosscompile.patch | 30 + .../recipes-support/libmemcached/libmemcached.inc | 14 + .../libmemcached/libmemcached_1.0.15.bb | 6 + .../libmemcached/libmemcached_1.0.7.bb | 4 + .../libtalloc/avoid-attr-unless-wanted.patch | 20 + .../recipes-support/libtalloc/libtalloc_2.1.6.bb | 42 + .../libtdb/do-not-check-xsltproc-manpages.patch | 15 + .../recipes-support/libtdb/libtdb_1.3.8.bb | 31 + .../libtevent/avoid-attr-unless-wanted.patch | 20 + .../libtevent/do-not-check-xsltproc-manpages.patch | 16 + .../recipes-support/libtevent/libtevent_0.9.28.bb | 34 + .../linux-atm/linux-atm/install-from-buildir.patch | 19 + .../linux-atm/linux-atm/link-with-ldflags.patch | 38 + .../recipes-support/linux-atm/linux-atm_2.5.2.bb | 27 + .../lksctp-tools/lksctp-tools/run-ptest | 5 + .../lksctp-tools/lksctp-tools/v4test.sh | 11 + .../lksctp-tools/lksctp-tools/v6test.sh | 11 + .../lksctp-tools/lksctp-tools_1.0.16.bb | 65 + .../lowpan-tools/lowpan-tools/no-help2man.patch | 41 + .../lowpan-tools/lowpan-tools_git.bb | 28 + .../recipes-support/macchanger/macchanger_1.5.0.bb | 24 + .../memcached/memcached/configure.patch | 13 + .../memcached/memcached-add-hugetlbfs-check.patch | 32 + .../recipes-support/memcached/memcached_1.4.17.bb | 53 + .../recipes-support/mtr/mtr_0.86.bb | 19 + .../recipes-support/nbd/nbd_3.11.bb | 19 + .../recipes-support/ndisc6/ndisc6_1.0.2.bb | 58 + .../recipes-support/netcat/netcat-openbsd_1.105.bb | 42 + .../recipes-support/netcat/netcat.inc | 15 + .../netcat/make-netcat_flag_count_work.patch | 34 + .../netcat/netcat/netcat-locale_h.patch | 25 + .../netcat/netcat/obsolete_autoconf_macros.patch | 32 + .../recipes-support/netcat/netcat_0.7.1.bb | 22 + .../recipes-support/netcf/netcf_git.bb | 66 + .../recipes-support/netperf/files/cpu_set.patch | 30 + .../recipes-support/netperf/files/init | 62 + .../recipes-support/netperf/files/vfork.patch | 58 + .../recipes-support/netperf/netperf_2.6.0.bb | 66 + .../recipes-support/nis/files/ypbind.init | 107 + .../meta-networking/recipes-support/nis/nis.inc | 31 + .../nis/yp-tools/domainname.service | 12 + ...rovide-an-in-place-version-of-mapv4v6addr.patch | 110 + .../recipes-support/nis/yp-tools_2.14.bb | 34 + .../recipes-support/nis/yp-tools_3.3.bb | 48 + .../recipes-support/nis/ypbind-mt/ypbind.service | 14 + .../recipes-support/nis/ypbind-mt_1.38.bb | 58 + .../recipes-support/nis/ypbind-mt_2.2.bb | 53 + .../ntimed/ntimed/use-ldflags.patch | 16 + .../recipes-support/ntimed/ntimed_git.bb | 41 + .../ntp/ntp/ntp-4.2.4_p6-nano.patch | 17 + .../recipes-support/ntp/ntp/ntp.conf | 17 + .../meta-networking/recipes-support/ntp/ntp/ntpd | 84 + .../recipes-support/ntp/ntp/ntpd.list | 1 + .../recipes-support/ntp/ntp/ntpd.service | 11 + .../recipes-support/ntp/ntp/ntpdate | 54 + .../recipes-support/ntp/ntp/ntpdate.default | 7 + .../recipes-support/ntp/ntp/ntpdate.service | 11 + .../meta-networking/recipes-support/ntp/ntp/sntp | 1 + .../recipes-support/ntp/ntp/sntp.service | 11 + .../recipes-support/ntp/ntp_4.2.8p7.bb | 160 + .../recipes-support/nuttcp/nuttcp_7.2.1.bb | 29 + .../recipes-support/openvpn/openvpn/openvpn | 104 + .../openvpn/openvpn/openvpn-volatile.conf | 1 + .../openvpn/openvpn/openvpn@.service | 12 + .../recipes-support/openvpn/openvpn_2.3.8.bb | 67 + .../recipes-support/pimd/pimd_2.1.8.bb | 19 + .../recipes-support/smcroute/smcroute_2.0.0.bb | 13 + .../files/0001-Makefile-tweak-install-dir.patch | 35 + .../recipes-support/ssmping/ssmping_0.9.1.bb | 17 + .../strongswan/files/fix-funtion-parameter.patch | 98 + .../files/install-strongswan-swanctl-service.patch | 22 + .../strongswan/files/support-newer-systemd.patch | 69 + .../recipes-support/strongswan/strongswan_5.3.2.bb | 57 + .../recipes-support/stunnel/stunnel_5.28.bb | 20 + .../tcpdump/tcpdump/add-ptest.patch | 38 + .../recipes-support/tcpdump/tcpdump/run-ptest | 5 + .../tcpdump/tcpdump/tcpdump-configure-dlpi.patch | 31 + .../tcpdump/unnecessary-to-check-libpcap.patch | 33 + .../recipes-support/tcpdump/tcpdump_4.7.4.bb | 51 + .../tcpdump/tcpslice/tcpslice-1.2a3-time.patch | 75 + .../tcpslice/tcpslice-CVS.20010207-bpf.patch | 15 + .../recipes-support/tcpdump/tcpslice_1.2a3.bb | 36 + .../files/tcpreplay-3.4.4-cross-compile.patch | 92 + ...ay-3.4.4-fix-unable-to-link-libpcap-issue.patch | 17 + ...cpreplay-3.4.4-improve-search-for-libpcap.patch | 33 + .../files/tcpreplay-3.4.4-no-bfp-support.patch | 15 + .../recipes-support/tcpreplay/tcpreplay_3.4.4.bb | 23 + .../tnftp/tnftp/tnftp-autotools.patch | 42 + .../recipes-support/tnftp/tnftp_20130505.bb | 36 + .../filter-out-the-patches-from-subdirs.patch | 47 + .../traceroute/traceroute_2.0.21.bb | 45 + .../recipes-support/tunctl/tunctl.inc | 15 + .../recipes-support/tunctl/tunctl_1.5.bb | 4 + .../recipes-support/wireshark/README | 45 + .../files/Do-not-set-CC_FOR_BUILD-flags.patch | 46 + .../recipes-support/wireshark/wireshark_2.0.2.bb | 60 + .../meta-openembedded/meta-oe/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-oe/README | 15 + .../meta-oe/classes/breakpad.bbclass | 33 + .../meta-oe/classes/gitpkgv.bbclass | 113 + .../meta-oe/classes/gitver.bbclass | 75 + .../meta-openembedded/meta-oe/classes/gpe.bbclass | 17 + .../meta-oe/classes/machine_kernel_pr.bbclass | 8 + .../meta-oe/classes/socorro-syms.bbclass | 231 + .../conf/distro/include/meta_oe_security_flags.inc | 7 + .../meta-openembedded/meta-oe/conf/layer.conf | 75 + .../meta-openembedded/meta-oe/licenses/GD | 53 + .../licenses/GPL-2.0-with-lmbench-restriction | 108 + .../meta-openembedded/meta-oe/licenses/ImageMagick | 103 + .../meta-openembedded/meta-oe/licenses/Intel | 21 + .../meta-openembedded/meta-oe/licenses/Kilgard | 5 + .../meta-openembedded/meta-oe/licenses/ManishSingh | 19 + .../meta-openembedded/meta-oe/licenses/OGPL | 104 + .../meta-openembedded/meta-oe/licenses/OpenLDAP | 47 + .../meta-openembedded/meta-oe/licenses/QWTv1.0 | 543 + .../meta-openembedded/meta-oe/licenses/TLWG | 150 + .../meta-openembedded/meta-oe/licenses/flite | 32 + .../meta-openembedded/meta-oe/licenses/gnuplot | 29 + .../meta-openembedded/meta-oe/licenses/iozone3 | 62 + .../meta-openembedded/meta-oe/licenses/nbench-byte | 10 + .../meta-openembedded/meta-oe/licenses/unRAR | 41 + .../meta-openembedded/meta-oe/licenses/vim | 81 + .../meta-openembedded/meta-oe/licenses/zsh | 37 + .../analyze-suspend/analyze-suspend_git.bb | 29 + .../recipes-benchmark/bonnie/bonnie++_1.03e.bb | 32 + .../bonnie/files/gcc-4.3-fixes.patch | 19 + .../cpuburn/cpuburn-neon_20140626.bb | 30 + .../meta-oe/recipes-benchmark/dbench/dbench_4.0.bb | 25 + .../recipes-benchmark/dbench/files/destdir.patch | 28 + .../recipes-benchmark/dbench/files/makefile.patch | 18 + .../meta-oe/recipes-benchmark/fio/fio_2.2.6.bb | 41 + ...ace-should-be-destoryed-after-the-wl_wind.patch | 34 + ...-packages-to-be-used-by-the-enabled-flavo.patch | 43 + .../recipes-benchmark/glmark2/glmark2_git.bb | 52 + .../iozone3/iozone3/copyright.txt | 62 + .../recipes-benchmark/iozone3/iozone3_414.bb | 114 + .../iperf-2.0.5/0001-fix-out-of-tree-config.patch | 52 + .../iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch | 8 + .../meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb | 19 + .../iperf3/iperf3/automake-foreign.patch | 17 + .../meta-oe/recipes-benchmark/iperf3/iperf3_git.bb | 28 + ...rl-lib-to-directory-perl-instead-of-perl5.patch | 39 + ....py-not-use-hard-coded-path-.-obj-hugeadm.patch | 43 + ...x-lib64-can-not-be-shiped-in-64bit-target.patch | 75 + ...s-avoid-search-host-library-path-for-cros.patch | 99 + ...ugetlbfs-avoid-using-restrict-as-var-name.patch | 34 + ...s-elf_i386-avoid-search-host-library-path.patch | 40 + ...ng-LIB32-and-LIB64-if-they-point-to-the-s.patch | 23 + ...Makefile-install-static-4G-edge-testcases.patch | 17 + .../libhugetlbfs/libhugetlbfs_git.bb | 66 + .../fix-lmbench-memory-check-failure.patch | 206 + .../lmbench_result_html_report.patch | 61 + .../lmbench/lmbench-3.0-a9/obey-ranlib.patch | 30 + .../lmbench-3.0-a9/update-config-script.patch | 12 + .../lmbench-3.0-a9/update-results-script.patch | 160 + .../use-base_libdir-instead-of-hardcoded-lib.patch | 32 + .../0001-avoid-gcc-optimize-away-the-loops.patch | 79 + .../recipes-benchmark/lmbench/lmbench/lmbench-run | 23 + .../lmbench/lmbench/rename-line-binary.patch | 19 + .../recipes-benchmark/lmbench/lmbench_3.0-a9.bb | 79 + .../memtester/files/Makefile.patch | 28 + .../recipes-benchmark/memtester/memtester_4.3.0.bb | 25 + ...kefile-add-more-dependencies-to-pointer.h.patch | 23 + .../nbench-byte/nbench-byte/nbench_32bits.patch | 46 + .../nbench-byte/nbench-byte_2.2.3.bb | 27 + .../phoronix-test-suite_6.0.1.bb | 35 + .../tinymembench/tinymembench_git.bb | 27 + ...-of-crc32-function-to-fix-build-using-GCC.patch | 30 + .../tiobench-0.3.3/avoid-glibc-clashes.patch | 57 + .../tiobench-0.3.3/tiobench-makefile.patch | 49 + .../recipes-benchmark/tiobench/tiobench_0.3.3.bb | 29 + .../obsolete_automake_macros.patch | 14 + .../bluez/bluez-hcidump_2.5.bb | 24 + .../bluez/bluez4-4.101/bluetooth.conf | 16 + .../bluez/bluez4-4.101/fix-udev-paths.patch | 37 + .../bluez/bluez4-4.101/fix_encrypt_collision.patch | 110 + .../bluez/bluez4-4.101/install-test-script.patch | 26 + ...ork-fix-network-Connect-method-parameters.patch | 30 + .../bluez4-4.101/obsolete_automake_macros.patch | 14 + .../bluez/bluez4-4.101/sbc_mmx.patch | 24 + .../meta-oe/recipes-connectivity/bluez/bluez4.inc | 51 + .../recipes-connectivity/bluez/bluez4_4.101.bb | 50 + .../bluez/gst-plugin-bluetooth_4.101.bb | 41 + .../recipes-connectivity/gammu/gammu/gammu-smsdrc | 80 + .../recipes-connectivity/gammu/gammu/gammurc | 173 + .../recipes-connectivity/gammu/gammu_1.32.0.bb | 68 + .../recipes-connectivity/gnokii/gnokii_0.6.31.bb | 33 + ...n-t-add-usr-include-and-usr-lib-to-config.patch | 58 + .../recipes-connectivity/hostapd/hostapd/defconfig | 145 + .../hostapd/hostapd/hostapd.service | 11 + .../recipes-connectivity/hostapd/hostapd/init | 58 + .../recipes-connectivity/hostapd/hostapd_2.5.bb | 46 + .../recipes-connectivity/irssi/irssi_0.8.16-rc1.bb | 22 + ...d-parameter-to-disable-keyutils-detection.patch | 33 + ...AKERB-context-aliasing-bugs-CVE-2015-2696.patch | 739 + ...AKERB-context-export-import-CVE-2015-2698.patch | 134 + ...PNEGO-context-aliasing-bugs-CVE-2015-2695.patch | 572 + ...-build_principal-memory-bug-CVE-2015-2697.patch | 58 + .../krb5/krb5/crosscompile_nm.patch | 29 + .../debian-suppress-usr-lib-in-krb5-config.patch | 48 + .../krb5/krb5/etc/default/krb5-admin-server | 6 + .../krb5/krb5/etc/default/krb5-kdc | 5 + .../krb5/krb5/etc/init.d/krb5-admin-server | 140 + .../krb5/krb5/etc/init.d/krb5-kdc | 133 + .../krb5/krb5/krb5-CVE-2016-3119.patch | 36 + .../recipes-connectivity/krb5/krb5_1.13.2.bb | 107 + .../files/configure-fix-largefile.patch | 38 + .../files/inline-without-definition.patch | 31 + .../libimobiledevice/libimobiledevice_1.1.4.bb | 23 + .../recipes-connectivity/libmbim/libmbim_1.12.2.bb | 16 + .../libmtp/libmtp-1.1.5/69-libmtp.rules | 999 + .../libmtp/libmtp-1.1.5/glibc-2.20.patch | 36 + .../recipes-connectivity/libmtp/libmtp_1.1.5.bb | 61 + .../recipes-connectivity/libndp/libndp_1.5.bb | 10 + .../recipes-connectivity/libnet/libnet_1.2-rc3.bb | 19 + .../recipes-connectivity/libqmi/libqmi_1.12.6.bb | 16 + .../don-t-run-code-while-configuring-package.patch | 94 + .../libtorrent/libtorrent_0.13.3.bb | 17 + ...build-Allow-CC-and-prefix-to-be-overriden.patch | 37 + .../recipes-connectivity/linuxptp/linuxptp_1.6.bb | 20 + .../meta-oe/recipes-connectivity/lirc/lirc.inc | 13 + .../recipes-connectivity/lirc/lirc/lirc.tmpfiles | 1 + .../lirc/lirc/lirc_options.conf | 24 + .../recipes-connectivity/lirc/lirc/lircd.conf | 315 + .../recipes-connectivity/lirc/lirc/lircd.init | 40 + .../recipes-connectivity/lirc/lirc/lircd.service | 20 + .../recipes-connectivity/lirc/lirc/lircexec.init | 37 + .../recipes-connectivity/lirc/lirc_0.9.2.bb | 71 + .../04-use-pkg-config-for-gnutls.patch | 23 + .../loudmouth/loudmouth-1.4.3/glib-2.32.patch | 10 + .../loudmouth/loudmouth_1.4.3.bb | 21 + .../modemmanager/modemmanager_1.4.12.bb | 49 + .../recipes-connectivity/mosh/mosh_1.2.4.bb | 47 + .../networkmanager/networkmanager-openvpn_1.0.8.bb | 31 + ...o-run-sbin-dhclient-to-get-the-version-nu.patch | 36 + .../0002-add-pkg-config-for-libgcrypt.patch | 41 + ...ilure-to-configure-routes-due-to-wrong-de.patch | 54 + ...-clear-ppp_watch_id-upon-pppd-termination.patch | 29 + ...date-ip_iface-only-if-IP-interface-exists.patch | 45 + .../0006-Fix-nm-version-macro-includes.patch | 58 + .../networkmanager/networkmanager_1.0.10.bb | 124 + .../obex/obex-data-server_0.4.6.bb | 15 + .../obex/openobex-1.5/disable-cable-test.patch | 16 + .../openobex-1.5/libusb_crosscompile_check.patch | 11 + .../obex/openobex-1.5/separate_builddir.patch | 16 + .../recipes-connectivity/obex/openobex_1.5.bb | 35 + .../obexftp/Remove_some_printf_in_obexftpd.patch | 34 + .../recipes-connectivity/obexftp/obexftp_0.23.bb | 19 + .../packagegroups/packagegroup-tools-bluetooth.bb | 37 + .../phonet-utils/phonet-utils_git.bb | 13 + .../rabbitmq-c/rabbitmq-c_0.7.0.bb | 18 + ...file-don-t-use-t-the-OE-install-wrapper-d.patch | 30 + .../dont.call.git.rev-parse.on.parent.dir.patch | 31 + .../recipes-connectivity/rfkill/rfkill_0.5.bb | 27 + .../don-t-run-code-while-configuring-package.patch | 94 + .../rtorrent/rtorrent_0.9.3.bb | 15 + .../recipes-connectivity/ser2net/ser2net_2.9.1.bb | 15 + .../smstools3/fix-makefile-override.patch | 24 + .../smstools3/sms_binpath_and_psops.patch | 19 + .../smstools3/smstools3_3.1.15.bb | 46 + .../recipes-connectivity/soft66/files/fix-ar.patch | 13 + .../recipes-connectivity/soft66/soft66_git.bb | 20 + .../telepathy/libtelepathy/doublefix.patch | 18 + .../telepathy/libtelepathy/prefer_python_2.5.patch | 15 + .../telepathy/libtelepathy_0.3.3.bb | 23 + .../telepathy/telepathy-glib_0.24.0.bb | 16 + .../telepathy-idle/fix-svc-gtk-doc.h-target.patch | 15 + .../telepathy/telepathy-idle_0.2.0.bb | 17 + .../tmc-Makefile-fix-race.patch | 76 + .../telepathy/telepathy-mission-control_5.16.1.bb | 51 + .../telepathy-python-0.15.19/parallel_make.patch | 43 + .../remove_duplicate_install.patch | 26 + .../telepathy-python_fix_for_automake_1.12.patch | 26 + .../telepathy/telepathy-python_0.15.19.bb | 32 + .../meta-oe/recipes-connectivity/umip/umip_1.0.bb | 20 + .../recipes-connectivity/usbmuxd/usbmuxd_git.bb | 24 + .../wvdial/wvdial/typo_pon.wvdial.1.patch | 20 + .../recipes-connectivity/wvdial/wvdial_1.61.bb | 30 + .../wvdial/wvstreams/04_signed_request.diff | 13 + .../wvdial/wvstreams/05_gcc.diff | 41 + .../wvdial/wvstreams/06_gcc-4.7.diff | 18 + .../wvdial/wvstreams/07_buildflags.diff | 32 + .../recipes-connectivity/wvdial/wvstreams_4.6.1.bb | 48 + .../zabbix/zabbix/0001-Fix-configure.ac.patch | 23 + .../zabbix/zabbix/zabbix-agent.service | 12 + .../recipes-connectivity/zabbix/zabbix_2.4.7.bb | 72 + .../0002-Modify-Makefile-for-cross-compile.patch | 292 + .../zeroc-ice/zeroc-ice_3.5.1.bb | 87 + .../recipes-connectivity/zeromq/cppzmq_git.bb | 19 + .../recipes-connectivity/zeromq/files/run-ptest | 10 + .../recipes-connectivity/zeromq/zeromq_4.1.4.bb | 30 + .../recipes-core/dbus/dbus-daemon-proxy_git.bb | 22 + .../recipes-core/eggdbus/eggdbus/gtk-doc.patch | 34 + .../recipes-core/eggdbus/eggdbus/marshal.patch | 28 + .../meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb | 33 + .../fakeroot/fakeroot-native_1.18.4.bb | 15 + .../recipes-core/fakeroot/fakeroot_1.18.4.bb | 30 + .../glib-2.0/glibmm/remove-examples.patch | 30 + .../meta-oe/recipes-core/glib-2.0/glibmm_2.44.0.bb | 31 + .../libsigc++-2.0/libsigc++-2.0_2.2.11.bb | 21 + .../libxml/libxml++/libxml++_ptest.patch | 82 + .../meta-oe/recipes-core/libxml/libxml++/run-ptest | 3 + .../meta-oe/recipes-core/libxml/libxml++_2.38.1.bb | 28 + .../meta-oe/recipes-core/llvm/llvm-common.bb | 22 + .../recipes-core/llvm/llvm-common/llvm-config | 10 + .../meta-oe/recipes-core/llvm/llvm.inc | 162 + ...r-output-from-configure-if-CFLAGS-is-set-.patch | 52 + .../llvm/llvm3.3/arm_fenv_uclibc.patch | 14 + .../meta-oe/recipes-core/llvm/llvm3.3_3.3.bb | 22 + .../recipes-core/meta/distro-feed-configs.bb | 33 + .../recipes-core/mm-common/mm-common_0.9.8.bb | 12 + .../packagegroups/packagegroup-basic.bb | 56 + .../packagegroups/packagegroup-boot.bb | 34 + .../packagegroups/packagegroup-cli-tools.bb | 45 + .../recipes-core/plymouth/plymouth_0.9.2.bb | 61 + .../create-as-shared-lib.patch | 31 + .../proxy-libintl-20100902/soname.patch | 23 + .../proxy-libintl-20100902/stub-only.patch | 72 + .../proxy-libintl/proxy-libintl_20100902.bb | 34 + .../meta-oe/recipes-core/toybox/toybox_0.6.0.bb | 65 + .../meta-oe/recipes-core/usleep/files/GPLv2.patch | 347 + .../meta-oe/recipes-core/usleep/files/usleep.1 | 25 + .../meta-oe/recipes-core/usleep/files/usleep.c | 82 + .../meta-oe/recipes-core/usleep/usleep_1.0.bb | 26 + .../autoconf-archive/autoconf-archive.inc | 15 + .../autoconf-archive_2012.04.07.bb | 13 + ...g-add-rudimentary-support-for-ARM-cpuinfo.patch | 49 + ...c-os-release-and-use-PRETTY_NAME-for-the-.patch | 39 + .../recipes-devtools/bootchart/bootchart_git.bb | 21 + .../recipes-devtools/breakpad/breakpad_svn.bb | 89 + .../cgdb/cgdb/remove-help2man.patch | 47 + .../meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb | 21 + ...e-as-interpreter-for-sketches-instead-of-.patch | 29 + .../cloud9/cloud9/cloud9-avahi.service | 10 + .../recipes-devtools/cloud9/cloud9/cloud9.service | 11 + .../recipes-devtools/cloud9/cloud9/index.js | 2 + .../meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb | 118 + .../concurrencykit/concurrencykit/cross.patch | 55 + .../concurrencykit/concurrencykit_git.bb | 41 + .../recipes-devtools/cppunit/cppunit_1.13.1.bb | 14 + ...e.am-do-not-preserve-file-flags-when-copy.patch | 31 + .../recipes-devtools/cscope/cscope_15.8b.bb | 24 + .../meta-oe/recipes-devtools/ctags/ctags_5.8.bb | 25 + .../meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb | 19 + .../cunit/files/fixup-install-docdir.patch | 36 + .../debootstrap/debootstrap/devices.tar.gz | Bin 0 -> 767 bytes .../debootstrap/debootstrap_1.0.67.bb | 35 + .../dejagnu/dejagnu/configure.patch | 45 + .../recipes-devtools/dejagnu/dejagnu_1.4.4.bb | 14 + ...op-using-relative-path-for-scsilib.c-link.patch | 29 + .../recipes-devtools/dt/dt/Use-tcsh-shell.patch | 92 + .../dt/dt/dt-default-source-define.patch | 18 + .../dt/dt/dt-wformat-security.patch | 48 + .../meta-oe/recipes-devtools/dt/dt_18.32.bb | 47 + ...001-configure.ac-remove-additional-c-test.patch | 47 + .../meta-oe/recipes-devtools/geany/geany_1.26.bb | 16 + .../recipes-devtools/giflib/giflib_4.1.6.bb | 22 + ...gnome-doc-utils.make-sysrooted-pkg-config.patch | 51 + .../meta-oe/recipes-devtools/glade/glade3_3.8.5.bb | 27 + .../files/0001-Makefile.am-no-examples.patch | 27 + .../icon-slicer/icon-slicer_0.3.bb | 13 + .../0001-src-Fix-error-in-cross-compile.patch | 138 + .../recipes-devtools/iptraf/iptraf_3.0.0.bb | 35 + .../meta-oe/recipes-devtools/jq/jq_1.5.bb | 23 + .../meta-oe/recipes-devtools/lemon/files/lemon.1 | 63 + .../meta-oe/recipes-devtools/lemon/lemon.inc | 25 + .../meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb | 7 + .../libedit/libedit_20150325-3.1.bb | 20 + .../recipes-devtools/libfribidi/fribidi_0.19.2.bb | 17 + .../recipes-devtools/libgee/libgee_0.18.0.bb | 24 + .../libubox/libubox/0001-version-libraries.patch | 28 + .../libubox/libubox/fix-libdir.patch | 40 + .../recipes-devtools/libubox/libubox_git.bb | 29 + .../recipes-devtools/log4cplus/log4cplus_1.2.0.bb | 15 + .../ltp-ddt/ltp-Do-not-link-against-libfl.patch | 31 + .../recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb | 97 + ...-ltrace-fix-gcc-5-logical-not-parentheses.patch | 38 + ...onfigure-allow-to-disable-selinux-support.patch | 36 + .../ltrace/ltrace-0.7.2-unused-typedef.patch | 49 + .../meta-oe/recipes-devtools/ltrace/ltrace_git.bb | 33 + .../meta-oe/recipes-devtools/lua/lua/lua.pc.in | 10 + .../meta-oe/recipes-devtools/lua/lua/run-ptest | 19 + .../recipes-devtools/lua/lua/uclibc-pthread.patch | 13 + .../meta-oe/recipes-devtools/lua/lua_5.3.2.bb | 61 + ...p-automatically-this-leaves-the-stripping.patch | 33 + .../recipes-devtools/luajit/luajit_2.0.4.bb | 63 + .../recipes-devtools/mcpp/files/ice-mcpp.patch | 208 + .../meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb | 16 + .../recipes-devtools/memstat/memstat_1.0.bb | 30 + .../mercurial/mercurial-native_3.4.1.bb | 26 + .../meta-oe/recipes-devtools/mpich/mpich_3.1.1.bb | 39 + .../recipes-devtools/msr-tools/msr-tools_1.3.bb | 21 + .../recipes-devtools/ninja/ninja-native_1.6.0.bb | 25 + .../nodejs/nodejs/no-registry.patch | 59 + .../recipes-devtools/nodejs/nodejs_4.4.3.bb | 84 + .../packagegroups/packagegroup-sdk-target.bb | 28 + ...deprecated-glib-functions-and-use-the-new.patch | 166 + .../packagekit/packagekit-0.5.6/configurefix.patch | 13 + .../packagekit/packagekit-0.5.6/opkgfixes.patch | 422 + .../packagekit/packagekit_0.5.6.bb | 65 + .../meta-oe/recipes-devtools/perl/ipc-run_0.94.bb | 23 + .../recipes-devtools/perl/libio-pty-perl_1.12.bb | 16 + .../change-AC_TRY_RUN-to-AC_TRY_LINK.patch | 56 + .../meta-oe/recipes-devtools/php/php.inc | 272 + ...cinclude-use-pkgconfig-for-libxml2-config.patch | 90 + ...01-php-don-t-use-broken-wrapper-for-mkdir.patch | 26 + .../recipes-devtools/php/php/70_mod_php5.conf | 12 + .../php/php/acinclude-xml2-config.patch | 25 + .../recipes-devtools/php/php/configure.patch | 11 + .../meta-oe/recipes-devtools/php/php/iconv.patch | 32 + .../php/php/imap-fix-autofoo.patch | 46 + .../recipes-devtools/php/php/pear-makefile.patch | 18 + .../recipes-devtools/php/php/phar-makefile.patch | 35 + .../recipes-devtools/php/php/php-fpm-apache.conf | 6 + .../meta-oe/recipes-devtools/php/php/php-fpm.conf | 510 + .../recipes-devtools/php/php/php-fpm.service | 10 + .../recipes-devtools/php/php/php_exec_native.patch | 18 + .../php/php/pthread-check-threads-m4.patch | 30 + .../meta-oe/recipes-devtools/php/php_5.5.32.bb | 6 + .../meta-oe/recipes-devtools/php/php_5.6.18.bb | 7 + .../meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb | 66 + ...tch-to-dynamic-buffer-for-huge-ACPI-table.patch | 66 + .../recipes-devtools/pmtools/pmtools_git.bb | 29 + .../recipes-devtools/protobuf/protobuf_2.6.1.bb | 25 + .../python/python-futures_3.0.5.bb | 14 + .../python/python-simplejson_3.8.2.bb | 27 + ...01-Add-option-to-enable-internal-loopback.patch | 81 + .../0001-Makefile-Change-order-of-link-flags.patch | 34 + .../0002-Restore-original-loopback-config.patch | 49 + .../serialcheck/serialcheck_1.0.0.bb | 30 + .../tclap/tclap/Makefile.am-disable-docs.patch | 31 + .../meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb | 16 + .../tk/configure.use.fontconfig.with.xft.patch | 13 + .../recipes-devtools/tcltk/tk/confsearch.diff | 32 + .../meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff | 16 + .../recipes-devtools/tcltk/tk/non-linux.diff | 27 + .../recipes-devtools/tcltk/tk/tklibrary.diff | 22 + .../recipes-devtools/tcltk/tk/tkprivate.diff | 41 + .../meta-oe/recipes-devtools/tcltk/tk_8.6.4.bb | 79 + .../uw-imap/uw-imap/imap-2007e-shared.patch | 82 + .../uw-imap/imap-2007f-format-security.patch | 20 + .../uw-imap/uw-imap/quote_cctype.patch | 12 + .../recipes-devtools/uw-imap/uw-imap_2007f.bb | 44 + .../vala-dbus-binding-tool.inc | 16 + ...igure.ac-don-t-use-dash-in-m4-macro-names.patch | 34 + .../vala-dbus-binding-tool_0.4.0.bb | 4 + .../vala-dbus-binding-tool_git.bb | 18 + .../recipes-devtools/xerces-c/xerces-c_3.1.3.bb | 46 + .../meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb | 18 + .../recipes-extended/acpica/acpica_20150515.bb | 46 + .../acpica/acpitests/aapits-linux.patch | 336 + .../acpica/acpitests/aapits-makefile.patch | 34 + .../recipes-extended/acpica/acpitests_20140828.bb | 35 + .../recipes-extended/acpica/files/no-werror.patch | 32 + .../recipes-extended/acpitool/acpitool_0.5.1.bb | 13 + .../cmpi-bindings/0001-Fix-error.patch | 26 + .../cmpi-bindings/0001-Modify-cmakelist.patch | 41 + .../0001-fix-the-build-error-when-python-3.0.patch | 31 + .../cmpi-bindings-0.4.17-no-ruby-perl.patch | 47 + .../cmpi-bindings-0.4.17-sblim-sigsegv.patch | 22 + .../cmpi-bindings-0.9.5-python-lib-dir.patch | 17 + .../cmpi-bindings/cmpi-bindings_git.bb | 37 + .../0001-conditionally-check-libvirt.patch | 39 + .../collectd/0001-redefine-the-dependence.patch | 28 + .../collectd/collectd/collectd-version.patch | 29 + .../collectd/collectd/collectd.init | 212 + .../collectd/collectd/collectd.service | 12 + .../collectd/collectd/no-gcrypt-badpath.patch | 30 + .../recipes-extended/collectd/collectd_5.5.0.bb | 84 + .../recipes-extended/corosync/corosync_2.3.5.bb | 56 + .../meta-oe/recipes-extended/dash/dash_0.5.8.bb | 27 + .../recipes-extended/ddrescue/ddrescue_1.19.bb | 45 + .../recipes-extended/dialog/dialog_1.2-20150920.bb | 30 + .../meta-oe/recipes-extended/dlm/dlm_4.0.2.bb | 49 + .../recipes-extended/efibootmgr/efibootmgr_0.12.bb | 29 + .../efibootmgr/files/ldflags.patch | 17 + .../efivar/0001-efivar-fix-for-cross-compile.patch | 31 + ...ptions-not-supported-by-lower-version-gcc.patch | 71 + .../meta-oe/recipes-extended/efivar/efivar_0.21.bb | 39 + .../recipes-extended/flashrom/flashrom_0.9.6.1.bb | 15 + .../meta-oe/recipes-extended/fwts/fwts_git.bb | 22 + .../lua-loadlibs-configure-in-fix.patch | 16 + .../gnuplot/gnuplot-4.6.5/subdirs.patch | 11 + .../meta-oe/recipes-extended/gnuplot/gnuplot.inc | 41 + .../gnuplot/gnuplot/gnuplot.desktop | 8 + .../recipes-extended/gnuplot/gnuplot/gnuplot.png | Bin 0 -> 9383 bytes .../recipes-extended/gnuplot/gnuplot/qtopia.trm | 483 + .../recipes-extended/gnuplot/gnuplot_4.6.5.bb | 14 + .../haveged/haveged/remove-systemd-unit-503.patch | 20 + .../recipes-extended/haveged/haveged_1.9.1.bb | 32 + .../hexedit/0001-don-t-strip-when-installing.patch | 30 + .../recipes-extended/hexedit/hexedit_1.2.13.bb | 17 + .../hplip/hplip-3.12.6/configure.patch | 14 + .../hplip/hplip-3.12.6/cups-1.6.patch | 395 + .../hplip/hplip-3.12.6/fix-libusb-paths.patch | 35 + .../setup-add-sleep-after-cups-reset.patch | 12 + .../meta-oe/recipes-extended/hplip/hplip_3.12.6.bb | 75 + .../recipes-extended/indent/indent_2.2.10.bb | 22 + .../meta-oe/recipes-extended/iotop/iotop_0.6.bb | 24 + .../recipes-extended/jansson/jansson_2.4.bb | 12 + .../konkretcmpi/konkretcmpi-native_0.9.2.bb | 28 + ...txt-fix-lib64-can-not-be-shiped-in-64bit-.patch | 31 + ...x-lib64-can-not-be-shiped-in-64bit-target.patch | 36 + ...-0.9.2-fix-returning-instance-from-method.patch | 38 + .../konkretcmpi/konkretcmpi_0.9.2.bb | 34 + .../meta-oe/recipes-extended/lcdproc/lcdproc5.inc | 81 + .../recipes-extended/lcdproc/lcdproc_0.5.6.bb | 23 + .../leveldb/0001-Explicitly-disable-tcmalloc.patch | 48 + .../recipes-extended/leveldb/leveldb_git.bb | 27 + .../meta-oe/recipes-extended/libcec/libcec_git.bb | 23 + .../recipes-extended/libconfig/libconfig_1.5.bb | 14 + .../libdivecomputer/files/fix-ar.patch | 18 + .../libdivecomputer/libdivecomputer_git.bb | 20 + ...CAL_AMFLAGS-isnot-supported-by-autoreconf.patch | 21 + .../recipes-extended/libgxim/libgxim_0.5.0.bb | 25 + .../libimobiledevice/files/fix-parallel-make.patch | 21 + .../libimobiledevice/libplist_1.8.bb | 22 + .../liblockfile/liblockfile-1.09/configure.patch | 25 + .../liblockfile/liblockfile-1.09/glibc-2.4.patch | 70 + .../liblockfile/liblockfile-1.09/install.patch | 48 + .../liblockfile/liblockfile-1.09/ldflags.patch | 21 + .../liblockfile-fix-install-so-to-man-dir.patch | 20 + .../liblockfile-fix-nfslib-and-soname.patch | 54 + .../liblockfile/liblockfile_1.09.bb | 34 + .../liblogging/liblogging_1.0.5.bb | 23 + .../recipes-extended/liblognorm/liblognorm.inc | 17 + .../liblognorm/liblognorm_1.0.1.bb | 5 + .../recipes-extended/libmodbus/libmodbus.inc | 13 + .../recipes-extended/libmodbus/libmodbus_3.0.6.bb | 4 + .../recipes-extended/libmodbus/libmodbus_3.1.2.bb | 7 + .../meta-oe/recipes-extended/libqb/libqb_0.17.1.bb | 26 + .../libuio/replace_inline_with_static-inline.patch | 121 + .../recipes-extended/libuio/libuio_0.2.1.bb | 18 + ...001-configure-use-pkg-config-for-freetype.patch | 67 + .../libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch | 31 + .../libwmf/libwmf-0.2.8.4-useafterfree.patch | 14 + .../recipes-extended/libwmf/libwmf_0.2.8.4.bb | 30 + .../0001-assume-zero-is-valid-address.patch | 26 + .../libx86-1/libx86-1.1/libx86-mmap-offset.patch | 190 + .../recipes-extended/libx86-1/libx86-1_1.1.bb | 24 + .../lockfile-progs/lockfile-progs_0.1.17.bb | 24 + .../recipes-extended/logcheck/logcheck_1.3.17.bb | 38 + .../recipes-extended/logwatch/logwatch_7.4.1.bb | 58 + .../meta-oe/recipes-extended/lprng/lprng_3.8.C.bb | 19 + .../meta-oe/recipes-extended/lssci/lsscsi_0.28.bb | 12 + .../md5deep/files/wrong-variable-expansion.patch | 39 + .../recipes-extended/md5deep/md5deep_4.4.bb | 16 + ...-include-cstdio-to-get-printf-definitions.patch | 28 + .../mml-widget/gtkmathview/use_hostcxx.patch | 18 + .../mml-widget/gtkmathview_0.8.0.bb | 23 + ...0001-add-support-for-big-endian-32bit-ARM.patch | 26 + ...-not-include-RequiredDefines.h-for-depend.patch | 35 + ...ozjs17.0.0-fix-the-compile-bug-of-powerpc.patch | 36 + .../mozjs/mozjs/0001-regenerate-configure.patch | 3238 ++++ ...02-Move-JS_BYTES_PER_WORD-out-of-config.h.patch | 75 + .../mozjs/mozjs/0003-Add-AArch64-support.patch | 76 + ...4-mozbug746112-no-decommit-on-large-pages.patch | 103 + .../mozjs/mozjs/0005-aarch64-64k-page.patch | 44 + ...010-fix-cross-compilation-on-i586-targets.patch | 46 + .../mozjs/fix-the-compile-error-of-powerpc64.patch | 18 + .../mozjs/mozjs/fix_milestone_compile_issue.patch | 20 + .../meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb | 73 + .../nana/nana/change-mandir-to-DESTDIR.patch | 40 + .../modify-acinclude.m4-and-configure.in.patch | 137 + .../meta-oe/recipes-extended/nana/nana_2.5.bb | 34 + .../recipes-extended/nicstat/nicstat_1.95.bb | 20 + ...x-lib64-can-not-be-shiped-in-64bit-target.patch | 31 + .../openlmi/openlmi-networking_0.3.1.bb | 30 + .../openlmi/openlmi-providers/0001-fix-error.patch | 26 + ...x-lib64-can-not-be-shiped-in-64bit-target.patch | 31 + .../openlmi/openlmi-providers_0.6.0.bb | 54 + .../openlmi/openlmi-storage_0.8.1.bb | 32 + .../openlmi/openlmi-tools_0.10.5.bb | 23 + .../libssl-is-required-if-eventint-supported.patch | 17 + .../openwsman/openwsman/openwsmand.service | 12 + .../recipes-extended/openwsman/openwsman_2.6.2.bb | 67 + ...do_not_override_compiler_and_do_not_strip.patch | 31 + .../meta-oe/recipes-extended/p7zip/p7zip_9.20.1.bb | 35 + .../files/50-org.freedesktop.NetworkManager.rules | 8 + .../files/50-org.freedesktop.timedate1.rules | 8 + .../polkit/files/gtk-doc-check.patch | 12 + .../recipes-extended/polkit/polkit-gnome_0.105.bb | 26 + .../polkit/polkit-group-rule-datetime.bb | 14 + .../polkit/polkit-group-rule-network.bb | 14 + .../recipes-extended/polkit/polkit-group-rule.inc | 10 + .../0001-make-netgroup-support-configurable.patch | 107 + .../polkit/polkit/polkit-1_pam.patch | 23 + .../recipes-extended/polkit/polkit_0.113.bb | 49 + .../recipes-extended/pywbem/pywbem_0.8.0.bb | 36 + .../rarpd/rarpd/0001-rarpd.8-add-man-file.patch | 89 + .../0002-Makefile-modify-compile-parameters.patch | 26 + .../rarpd/rarpd/0003-rarpd.c-bug-fix.patch | 263 + .../rarpd/0004-rarpd.init-add-new-init-file.patch | 116 + .../rarpd/rarpd/0005-ethernet.c-remove-it.patch | 244 + .../recipes-extended/rarpd/rarpd/ethers.sample | 1 + .../recipes-extended/rarpd/rarpd/rarpd.service | 14 + .../recipes-extended/rarpd/rarpd_ss981107.bb | 53 + .../hiredis-use-default-CC-if-it-is-set.patch | 30 + .../recipes-extended/redis/redis/init-redis-server | 40 + ...Makefile-to-use-environment-build-setting.patch | 71 + .../redis/redis/oe-use-libc-malloc.patch | 34 + .../recipes-extended/redis/redis/redis.conf | 550 + .../meta-oe/recipes-extended/redis/redis_3.0.2.bb | 34 + .../recipes-extended/rrdtool/rrdtool_1.5.4.bb | 120 + .../rsyslog/rsyslog/enable_tls_ptests.patch | 28 + .../recipes-extended/rsyslog/rsyslog/initscript | 118 + .../rsyslog/rsyslog/json-0.12-fix.patch | 47 + .../replace_deprecated_GnuTLS_functions.patch | 73 + .../rsyslog/rsyslog-fix-ptest-not-finish.patch | 96 + .../recipes-extended/rsyslog/rsyslog/rsyslog.conf | 86 + .../rsyslog/rsyslog/rsyslog.logrotate | 39 + .../recipes-extended/rsyslog/rsyslog/run-ptest | 3 + .../rsyslog/use-pkgconfig-to-check-libgcrypt.patch | 48 + ...icate_type_set_priority_only_if_available.patch | 79 + .../recipes-extended/rsyslog/rsyslog_7.6.1.bb | 178 + .../sblim-cmpi-devel-2.0.3-docdir.patch | 17 + .../sblim-cmpi-devel/sblim-cmpi-devel_2.0.3.bb | 18 + .../sblim-sfc-common/sblim-sfc-common_1.0.1.bb | 25 + .../recipes-extended/sblim-sfcb/files/sfcb.service | 11 + .../sblim-sfcb-1.3.15-fix-provider-debugging.patch | 12 + .../sblim-sfcb-1.3.16-maxMsgLen.patch | 14 + .../sblim-sfcb-1.3.16-multilib-man-cfg.patch | 41 + ...blim-sfcb-1.3.9-sfcbrepos-schema-location.patch | 42 + .../sblim-sfcb-1.4.5-service.patch | 27 + .../sblim-sfcb-1.4.8-default-ecdh-curve-name.patch | 26 + .../sblim-sfcb-1.4.9-fix-ftbfs.patch | 12 + .../sblim-sfcb/sblim-sfcb_1.4.9.bb | 83 + .../sblim-sfcc/sblim-sfcc_2.2.8.bb | 15 + .../scsirastools/scsirastools_1.6.4.bb | 41 + .../sgpio/sgpio/Makefile-error-fix.patch | 127 + .../recipes-extended/sgpio/sgpio_1.2.0.10.bb | 26 + .../smartmontools/files/initd.smartd | 112 + .../smartmontools/files/smartd.service | 12 + .../smartmontools/files/smartmontools.default | 6 + .../smartmontools/smartmontools_6.4.bb | 54 + .../recipes-extended/socketcan/can-utils_git.bb | 16 + ...nutils-candump-Add-error-frame-s-handling.patch | 94 + .../recipes-extended/socketcan/canutils_4.0.6.bb | 20 + ...e-strcmp-instead-of-sizeof-on-char-string.patch | 39 + .../socketcan/libsocketcan_0.0.9.bb | 20 + .../recipes-extended/subsurface/subsurface_git.bb | 21 + ...ith-musl-backtrace-APIs-are-glibc-specifi.patch | 50 + .../0001-libsinsp-Port-to-build-with-lua-5.2.patch | 108 + .../meta-oe/recipes-extended/sysdig/sysdig_git.bb | 35 + .../t1lib/t1lib-5.1.2/configure.patch | 128 + .../t1lib/t1lib-5.1.2/libtool.patch | 116 + .../meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb | 28 + .../recipes-extended/tcsh/files/01_build.1.patch | 16 + .../recipes-extended/tcsh/files/01_build.2.patch | 13 + .../recipes-extended/tcsh/files/01_build.3.patch | 13 + .../tcsh/files/12_unknown_lscolors.patch | 24 + .../recipes-extended/tcsh/files/15_no-strip.patch | 14 + .../tcsh/files/disable-broken-test.patch | 14 + .../tcsh/files/disable-lexical.at-31.patch | 30 + .../tcsh/files/disable-test-nice.patch | 23 + .../tcsh/files/disable-test-notty.patch | 30 + .../tcsh/files/tcsh-6.17.02-multibyte.patch | 18 + .../meta-oe/recipes-extended/tcsh/tcsh_6.18.01.bb | 49 + ...0001-Makefile-for-cross-compile-SoftFloat.patch | 348 + ...0002-Makefile-for-cross-compile-TestFloat.patch | 396 + .../recipes-extended/testfloat/testfloat_3a.bb | 35 + .../recipes-extended/tipcutils/tipcutils_2.0.6.bb | 43 + .../meta-oe/recipes-extended/tiptop/tiptop_2.3.bb | 26 + .../meta-oe/recipes-extended/tmux/tmux_2.1.bb | 21 + .../uml-utilities-20040406/fix-ldflags.patch | 16 + .../uml-utilities-20040406/unstrip.patch | 84 + .../uml-utilities/uml-utilities_20040406.bb | 26 + .../files/support-cross-compile-for-linux.patch | 36 + .../meta-oe/recipes-extended/wipe/wipe_git.bb | 26 + .../meta-oe/recipes-extended/zram/zram/init | 85 + .../recipes-extended/zram/zram/zram.service | 12 + .../meta-oe/recipes-extended/zram/zram_0.1.bb | 33 + .../meta-oe/recipes-extended/zsh/zsh_5.0.5.bb | 61 + .../meta-oe/recipes-gnome/atk/atkmm_2.22.7.bb | 19 + .../meta-oe/recipes-gnome/gtk+/gtkmm_2.24.3.bb | 20 + .../gtkextra/files/remove-tutorial.patch | 12 + .../recipes-gnome/gtkextra/gtkextra_3.0.5.bb | 19 + ...001-tests-main.c-fix-build-with-glib-2.36.patch | 32 + .../meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb | 39 + ...-use-LIBTOOL-instead-of-hardcoded-libtool.patch | 27 + .../recipes-gnome/libunique/libunique/build.patch | 421 + .../libunique/fix_for_compile_with_gcc-4.6.0.patch | 36 + .../libunique/libunique/noconst.patch | 130 + .../recipes-gnome/libunique/libunique_1.1.6.bb | 27 + .../meta-oe/recipes-graphics/babl/babl_0.1.16.bb | 13 + .../recipes-graphics/cairo/cairomm_1.11.2.bb | 16 + .../recipes-graphics/clutter/clutter-box2d.inc | 15 + .../recipes-graphics/clutter/clutter-box2d_git.bb | 19 + .../recipes-graphics/dietsplash/dietsplash_git.bb | 20 + .../meta-oe/recipes-graphics/fbgrab/fbgrab_1.2.bb | 18 + .../meta-oe/recipes-graphics/fbida/fbida_2.10.bb | 66 + .../recipes-graphics/fim/files/cross_cc.patch | 29 + .../meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb | 52 + .../fontforge/fontforge_20150824.bb | 60 + .../recipes-graphics/gegl/gegl/pkgconfig.patch | 21 + .../meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb | 30 + ...igure-ac-do-not-check-for-freetype-config.patch | 38 + .../gimp/gimp/bump_Babl-GEGL_versions.patch | 53 + .../meta-oe/recipes-graphics/gimp/gimp_2.8.14.bb | 32 + .../glcompbench/glbench-compile-fix.patch | 35 + .../glcompbench/glcompbench_2012.08.bb | 16 + .../0001-configure.ac-remove-AM_PO_SUBDIRS.patch | 26 + ...k-for-popt-with-GP_CHECK_LIBRARY-function.patch | 32 + .../recipes-graphics/gphoto2/gphoto2_2.5.8.bb | 22 + .../0001-configure.ac-remove-AM_PO_SUBDIRS.patch | 48 + .../10-camera-libgphoto2-device.fdi | 9533 ++++++++++ .../libgphoto2-2.5.8/10-camera-libgphoto2.fdi | 19018 +++++++++++++++++++ .../gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules | 1955 ++ .../recipes-graphics/gphoto2/libgphoto2_2.5.8.bb | 55 + .../recipes-graphics/gtkperf/gtkperf/Makevars | 25 + .../recipes-graphics/gtkperf/gtkperf_0.40.bb | 27 + .../recipes-graphics/jasper/jasper_1.900.1.bb | 17 + .../recipes-graphics/leptonica/leptonica_1.70.bb | 14 + .../meta-oe/recipes-graphics/libsexy/libsexy.inc | 15 + .../libsexy/libsexy/libsexy-pkgconfig-fixes.patch | 15 + .../recipes-graphics/libsexy/libsexy_0.1.11.bb | 6 + .../0001-remove-webclients-build.patch | 28 + .../libvncserver/0002-common-add-sha1.patch | 524 + .../libvncserver/libvncserver_0.9.10.bb | 24 + ...conf.in-blacklist-root-for-release-images.patch | 29 + .../lxdm/0002-let-autotools-create-lxdm.conf.patch | 35 + .../meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam | 13 + .../recipes-graphics/lxdm/lxdm/lxdm-pam-debug | 13 + .../meta-oe/recipes-graphics/lxdm/lxdm/lxdm.conf | 4 + .../meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb | 78 + .../recipes-graphics/mesa/mesa-glut_8.0.1.bb | 16 + .../recipes-graphics/numlockx/numlockx_1.2.bb | 23 + ...-avoid-race-when-creating-autostart-direc.patch | 54 + .../recipes-graphics/openbox/openbox_3.6.1.bb | 53 + .../recipes-graphics/openjpeg/openjpeg_2.1.0.bb | 19 + .../packagegroups/packagegroup-fonts-truetype.bb | 40 + .../recipes-graphics/pango/pangomm_2.36.0.bb | 21 + .../recipes-graphics/qrencode/qrencode_git.bb | 16 + ...0002-Fix-image-handling-integer-overflows.patch | 343 + .../0003-Fix-build-failure-with-ld-as-needed.patch | 37 + .../slim/slim/0004-Add-support-libpng15.patch | 50 + ...Remove-path-of-gcc-amd-g-and-version-of-g.patch | 30 + ...emove-localhost-from-Authenticator-of-pam.patch | 32 + .../slim/slim/0007-Fix-tty-slowness.patch | 47 + .../slim/slim/0008-restart-Xserver-if-killed.patch | 161 + .../meta-oe/recipes-graphics/slim/slim/Makefile.oe | 64 + .../meta-oe/recipes-graphics/slim/slim/slim-dynwm | 8 + .../meta-oe/recipes-graphics/slim/slim/slim.pamd | 19 + .../recipes-graphics/slim/slim/slim.service | 11 + .../recipes-graphics/slim/slim/update_slim_wmlist | 76 + .../meta-oe/recipes-graphics/slim/slim_1.3.2.bb | 82 + .../takao-fonts/takao-fonts_003.03.01.bb | 19 + .../terminus-font/terminus-font_4.38.bb | 45 + .../tesseract/tesseract-lang-afr_3.02.bb | 9 + .../tesseract/tesseract-lang-ara_3.02.bb | 9 + .../tesseract/tesseract-lang-aze_3.02.bb | 9 + .../tesseract/tesseract-lang-bel_3.02.bb | 9 + .../tesseract/tesseract-lang-ben_3.02.bb | 9 + .../tesseract/tesseract-lang-bul_3.02.bb | 9 + .../tesseract/tesseract-lang-cat_3.02.bb | 9 + .../tesseract/tesseract-lang-ces_3.02.bb | 9 + .../tesseract/tesseract-lang-chi-sim_3.02.bb | 9 + .../tesseract/tesseract-lang-chi-tra_3.02.bb | 9 + .../tesseract/tesseract-lang-chr_3.02.bb | 9 + .../tesseract/tesseract-lang-dan_3.02.bb | 9 + .../tesseract/tesseract-lang-deu_3.02.bb | 9 + .../tesseract/tesseract-lang-ell_3.02.bb | 9 + .../tesseract/tesseract-lang-eng_3.02.bb | 9 + .../tesseract/tesseract-lang-enm_3.02.bb | 9 + .../tesseract/tesseract-lang-epo-alt_3.02.bb | 9 + .../tesseract/tesseract-lang-epo_3.02.bb | 9 + .../tesseract/tesseract-lang-equ_3.02.bb | 9 + .../tesseract/tesseract-lang-est_3.02.bb | 9 + .../tesseract/tesseract-lang-eus_3.02.bb | 9 + .../tesseract/tesseract-lang-fin_3.02.bb | 9 + .../tesseract/tesseract-lang-fra_3.02.bb | 9 + .../tesseract/tesseract-lang-frk_3.02.bb | 9 + .../tesseract/tesseract-lang-frm_3.02.bb | 9 + .../tesseract/tesseract-lang-glg_3.02.bb | 9 + .../tesseract/tesseract-lang-grc_3.02.bb | 9 + .../tesseract/tesseract-lang-heb_3.02.bb | 9 + .../tesseract/tesseract-lang-hin_3.02.bb | 9 + .../tesseract/tesseract-lang-hrv_3.02.bb | 9 + .../tesseract/tesseract-lang-hun_3.02.bb | 9 + .../tesseract/tesseract-lang-ind_3.02.bb | 9 + .../tesseract/tesseract-lang-isl_3.02.bb | 9 + .../tesseract/tesseract-lang-ita-old_3.02.bb | 9 + .../tesseract/tesseract-lang-ita_3.02.bb | 9 + .../tesseract/tesseract-lang-jpn_3.02.bb | 9 + .../tesseract/tesseract-lang-kan_3.02.bb | 9 + .../tesseract/tesseract-lang-kor_3.02.bb | 9 + .../tesseract/tesseract-lang-lav_3.02.bb | 9 + .../tesseract/tesseract-lang-lit_3.02.bb | 9 + .../tesseract/tesseract-lang-mal_3.02.bb | 9 + .../tesseract/tesseract-lang-mkd_3.02.bb | 9 + .../tesseract/tesseract-lang-mlt_3.02.bb | 9 + .../tesseract/tesseract-lang-msa_3.02.bb | 9 + .../tesseract/tesseract-lang-nld_3.02.bb | 9 + .../tesseract/tesseract-lang-nor_3.02.bb | 9 + .../tesseract/tesseract-lang-pol_3.02.bb | 9 + .../tesseract/tesseract-lang-por_3.02.bb | 9 + .../tesseract/tesseract-lang-ron_3.02.bb | 9 + .../tesseract/tesseract-lang-rus_3.02.bb | 9 + .../tesseract/tesseract-lang-slk_3.02.bb | 9 + .../tesseract/tesseract-lang-slv_3.02.bb | 9 + .../tesseract/tesseract-lang-spa-old_3.02.bb | 9 + .../tesseract/tesseract-lang-spa_3.02.bb | 9 + .../tesseract/tesseract-lang-sqi_3.02.bb | 9 + .../tesseract/tesseract-lang-srp_3.02.bb | 9 + .../tesseract/tesseract-lang-swa_3.02.bb | 9 + .../tesseract/tesseract-lang-swe_3.02.bb | 9 + .../tesseract/tesseract-lang-tam_3.02.bb | 9 + .../tesseract/tesseract-lang-tel_3.02.bb | 9 + .../tesseract/tesseract-lang-tgl_3.02.bb | 9 + .../tesseract/tesseract-lang-tha_3.02.bb | 9 + .../tesseract/tesseract-lang-tur_3.02.bb | 9 + .../tesseract/tesseract-lang-ukr_3.02.bb | 9 + .../tesseract/tesseract-lang-vie_3.02.bb | 9 + .../recipes-graphics/tesseract/tesseract-lang.inc | 15 + .../tesseract/tesseract_3.02.02.bb | 23 + .../44-source-han-sans-cn.conf | 19 + .../ttf-fonts/source-han-sans-cn-fonts_1.004.bb | 34 + .../44-source-han-sans-jp.conf | 19 + .../ttf-fonts/source-han-sans-jp-fonts_1.004.bb | 34 + .../44-source-han-sans-kr.conf | 19 + .../ttf-fonts/source-han-sans-kr-fonts_1.004.bb | 34 + .../44-source-han-sans-tw.conf | 19 + .../ttf-fonts/source-han-sans-tw-fonts_1.004.bb | 34 + .../ttf-fonts/ttf-arphic-uming_20080216.bb | 19 + .../ttf-fonts/ttf-dejavu/30-dejavu-aliases.conf | 16 + .../recipes-graphics/ttf-fonts/ttf-dejavu_2.35.bb | 44 + .../recipes-graphics/ttf-fonts/ttf-droid_git.bb | 27 + .../recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb | 37 + .../ttf-fonts/ttf-hunkyfonts_0.3.0.bb | 20 + .../ttf-fonts/ttf-inconsolata/OFL.txt | 97 + .../ttf-fonts/ttf-inconsolata_20100526.bb | 26 + .../ttf-fonts/ttf-liberation_0.2.bb | 23 + .../recipes-graphics/ttf-fonts/ttf-mplus_027.bb | 28 + .../recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb | 39 + .../ttf-fonts/ttf-sazanami_20040629.bb | 35 + .../recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb | 27 + .../ttf-fonts/ttf-ubuntu-font-family_0.80.bb | 20 + .../ttf-fonts/ttf-wqy-zenhei_0.9.45.bb | 27 + .../meta-oe/recipes-graphics/ttf-fonts/ttf.inc | 12 + .../recipes-graphics/wayland/wayland-fits_git.bb | 33 + .../recipes-graphics/x11vnc/files/endian-fix.patch | 24 + .../x11vnc/files/starting-fix.patch | 25 + .../recipes-graphics/x11vnc/x11vnc_0.9.13.bb | 26 + .../xcursorgen/xcursorgen_1.0.5.bb | 12 + .../xdotool/xdotool_1.20100416.2809.bb | 23 + .../recipes-graphics/xorg-app/bdftopcf_1.0.5.bb | 13 + .../recipes-graphics/xorg-app/iceauth_1.0.7.bb | 16 + .../sessreg/0001-Makefile.am-Error-Fix.patch | 33 + .../recipes-graphics/xorg-app/sessreg_1.1.0.bb | 8 + .../recipes-graphics/xorg-app/setxkbmap_1.3.1.bb | 19 + .../meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb | 15 + .../recipes-graphics/xorg-app/xclock_1.0.5.bb | 11 + .../recipes-graphics/xorg-app/xfontsel_1.0.5.bb | 13 + .../recipes-graphics/xorg-app/xgamma_1.0.6.bb | 15 + .../recipes-graphics/xorg-app/xkbevd_1.1.4.bb | 13 + .../recipes-graphics/xorg-app/xkbprint_1.0.4.bb | 13 + .../recipes-graphics/xorg-app/xkbutils_1.0.4.bb | 19 + .../recipes-graphics/xorg-app/xlsatoms_1.1.2.bb | 14 + .../recipes-graphics/xorg-app/xlsclients_1.1.3.bb | 14 + .../recipes-graphics/xorg-app/xlsfonts_1.0.5.bb | 10 + .../recipes-graphics/xorg-app/xmag_1.0.5.bb | 11 + .../recipes-graphics/xorg-app/xmessage_1.0.4.bb | 10 + .../recipes-graphics/xorg-app/xrdb_1.1.0.bb | 9 + .../recipes-graphics/xorg-app/xrefresh_1.0.5.bb | 13 + .../recipes-graphics/xorg-app/xsetmode_1.0.0.bb | 15 + .../recipes-graphics/xorg-app/xsetroot_1.1.1.bb | 14 + .../recipes-graphics/xorg-app/xstdcmap_1.0.3.bb | 15 + .../meta-oe/recipes-graphics/xorg-app/xterm_320.bb | 30 + .../meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb | 11 + .../recipes-graphics/xorg-app/xwud_1.0.4.bb | 12 + .../recipes-graphics/xorg-data/xbitmaps_1.1.1.bb | 11 + .../xorg-data/xorg-data-common.inc | 10 + .../recipes-graphics/xorg-doc/xorg-doc-common.inc | 12 + .../xorg-doc/xorg-sgml-doctools_1.7.bb | 12 + .../xorg-driver/xf86-input-mtev/fix-it.patch | 153 + .../xorg-driver/xf86-input-mtev_git.bb | 22 + .../xf86-input-tslib/10-x11-input-tslib.fdi | 11 + .../xf86-input-tslib/99-xf86-input-tslib.rules | 5 + .../xf86-input-tslib/double-free-crash.patch | 20 + ...f86-input-tslib-0.0.6-xf86XInputSetScreen.patch | 31 + .../xf86-input-tslib-port-ABI-12-r48.patch | 196 + .../xserver-174-XGetPointerControl.patch | 34 + .../xorg-driver/xf86-input-tslib_0.0.6.bb | 35 + .../xorg-driver/xf86-input-void_1.4.1.bb | 8 + .../xorg-driver/xf86-video-ati_7.6.1.bb | 20 + ...1-Add-config.h-include-to-src-lx_memory.c.patch | 41 + .../xorg-driver/xf86-video-geode_2.11.16.bb | 16 + .../0001-fix-build-with-KMS-disabled.patch | 29 + ...lamo-driver-remove-references-to-mibstore.patch | 48 + ...-glamo-kms-driver-drop-unused-xf86_config.patch | 35 + ...mo-driver-adapt-to-xserver-0.13-video-API.patch | 279 + ...-glamo.h-use-const-for-jbt6k74_state_path.patch | 29 + .../xorg-driver/xf86-video-glamo_git.bb | 23 + .../xorg-driver/xf86-video-nouveau_1.0.12.bb | 17 + .../xorg-font/font-adobe-100dpi_1.0.3.bb | 18 + .../xorg-font/font-adobe-utopia-100dpi_1.0.4.bb | 18 + .../xorg-font/font-bh-100dpi_1.0.3.bb | 18 + .../font-bh-lucidatypewriter-100dpi_1.0.3.bb | 18 + .../xorg-font/font-bitstream-100dpi_1.0.3.bb | 18 + .../xorg-font/font-cursor-misc_1.0.3.bb | 17 + .../xorg-font/font-misc-misc_1.1.2.bb | 17 + .../xorg-font/xorg-fonts-100dpi.bb | 14 + .../xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch | 55 + .../recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb | 14 + .../recipes-graphics/xorg-lib/libxaw_1.0.13.bb | 28 + .../recipes-graphics/xorg-lib/libxkbui_1.0.2.bb | 10 + .../0001-COPYING-add-GPLv2-license-file.patch | 364 + .../0002-add-setdpi-Xinit.d-script.patch | 112 + ...0003-add-89xdgautostart-Xsession.d-script.patch | 29 + ...0005-add-XWindowManager-Xsession.d-script.patch | 23 + ...06-add-support-for-etc-X11-xserver-system.patch | 26 + ...nctions-file-instead-etc-init.d-functions.patch | 87 + ...mon-add-dpi-and-nocursor-params-for-gta01.patch | 40 + ...mon-add-support-for-n900-alias-nokia_rx-5.patch | 32 + ...mon-add-support-for-nexus-S-alias-herring.patch | 27 + ...mon-add-support-for-nexus-one-alias-mahim.patch | 28 + ...mon-add-support-for-gta04-alias-OpenPhoen.patch | 33 + ...mon-add-support-for-tuna-alias-Galaxy-Nex.patch | 33 + ...erver-Start-Xsession-like-x11-common-does.patch | 26 + ...15-xserver-common-disable-TCP-connections.patch | 24 + .../xserver-common/xserver-common_1.34.bb | 45 + .../xserver-nodm-init-2.0/gplv2-license.patch | 353 + .../xserver-nodm-init-2.0/xserver-nodm | 60 + .../xserver-nodm-init-2.0/xserver-nodm.conf | 1 + .../xserver-nodm-init-2.0/xserver-nodm.service | 9 + .../xserver-nodm-init/xserver-nodm-init_2.0.bb | 41 + .../crash/0001-cross_add_configure_option.patch | 34 + .../crash/7001force_define_architecture.patch | 13 + .../crash/crash/7003cross_ranlib.patch | 10 + .../crash/crash/config-site.crash-7.0.9 | 1 + .../donnot-extract-gdb-during-do-compile.patch | 32 + ...gdb_build_jobs_and_not_write_crash_target.patch | 26 + ...move-unrecognized-gcc-option-m32-for-mips.patch | 33 + ...mon-sim-arange-fix-extern-inline-handling.patch | 79 + .../sim-ppc-drop-LIBS-from-psim-dependency.patch | 37 + .../meta-oe/recipes-kernel/crash/crash_7.1.3.bb | 112 + .../meta-oe/recipes-kernel/ktap/ktap-module_git.bb | 22 + .../meta-oe/recipes-kernel/ktap/ktap.inc | 26 + .../meta-oe/recipes-kernel/ktap/ktap_git.bb | 19 + .../meta-oe/recipes-kernel/linux/linux.inc | 131 + .../alsa/alsa-oss-1.0.17/libio.patch | 43 + .../recipes-multimedia/alsa/alsa-oss_1.0.17.bb | 22 + .../audiofile/audiofile_0.2.7.bb | 15 + .../recipes-multimedia/cdrkit/cdrkit_1.1.11.bb | 18 + ...te-a-run-test-to-determine-order-of-bitfi.patch | 53 + .../esound/esound/configure-fix.patch | 10 + .../esound/esound/esound_0.2.36-1ubuntu5.diff.gz | Bin 0 -> 44925 bytes .../recipes-multimedia/esound/esound/no-docs.patch | 11 + .../recipes-multimedia/esound/esound_0.2.36.bb | 33 + .../meta-oe/recipes-multimedia/faad2/faad2_2.7.bb | 28 + .../id3lib/id3lib/acdefine.patch | 42 + .../recipes-multimedia/id3lib/id3lib_3.8.3.bb | 18 + .../jack/jack/jack_fix_TWL4030_alsa_capture.patch | 31 + .../jack/jack/remove-wrong-host-test.patch | 68 + .../recipes-multimedia/jack/jack_0.121.0.bb | 40 + .../meta-oe/recipes-multimedia/libass/libass.inc | 28 + .../recipes-multimedia/libass/libass_0.10.1.bb | 5 + .../recipes-multimedia/libburn/libburn_1.4.0.bb | 11 + .../recipes-multimedia/libcdio/libcdio_0.93.bb | 25 + .../libdvdread/libdvdread_5.0.3.bb | 13 + .../recipes-multimedia/libmms/libmms_0.6.4.bb | 12 + .../libmodplug/libmodplug_0.8.8.5.bb | 21 + .../recipes-multimedia/libopus/libopus_1.1.2.bb | 50 + .../libsdl-image/libsdl-image/configure.patch | 43 + .../libsdl-image/libsdl-image_1.2.12.bb | 32 + .../libsdl-image/libsdl2-image_2.0.1.bb | 31 + .../libsdl-mixer/libsdl-mixer/configure.patch | 21 + .../libsdl-mixer/libsdl-mixer_1.2.12.bb | 40 + .../libsdl-mixer/libsdl2-mixer_2.0.1.bb | 27 + .../live555/files/config.linux-cross | 17 + .../meta-oe/recipes-multimedia/live555/live555.inc | 58 + .../recipes-multimedia/live555/live555_20130430.bb | 7 + .../recipes-multimedia/mikmod/libmikmod_3.3.6.bb | 26 + .../recipes-multimedia/minidlna/minidlna.inc | 39 + .../minidlna/minidlna/minidlna-daemon.init.d | 54 + .../minidlna/minidlna/minidlna.service | 10 + .../recipes-multimedia/minidlna/minidlna_1.1.5.bb | 4 + .../recipes-multimedia/mplayer/mplayer-common.bb | 23 + .../mplayer/mplayer-common/mplayer.conf | 15 + ...on-t-disable-ASS-support-when-explicitly-.patch | 26 + ...artially-port-libtheora-glue-code-to-Theo.patch | 136 + .../recipes-multimedia/mplayer/mplayer2_git.bb | 159 + .../opus-tools/opus-tools_0.1.8.bb | 15 + .../pulseaudio/pavucontrol_3.0.bb | 13 + .../sound-themes/sound-theme-freedesktop_0.8.bb | 16 + ...a-ctl-Don-t-install-libmediactl-and-libv4.patch | 41 + .../v4l-utils/export-mediactl-headers.patch | 15 + .../v4l2apps/v4l-utils/mediactl-pkgconfig.patch | 12 + .../recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb | 45 + ...mode-to-allow-streaming-over-the-network-.patch | 961 + .../recipes-multimedia/v4l2apps/yavta_git.bb | 25 + .../recipes-multimedia/wavpack/wavpack_4.60.1.bb | 10 + .../libvpx-configure-support-blank-prefix.patch | 43 + .../recipes-multimedia/webm/libvpx_1.5.0.bb | 49 + .../recipes-multimedia/xpext/xpext/auxdir.patch | 13 + .../recipes-multimedia/xpext/xpext_1.0-5.bb | 17 + .../recipes-multimedia/xsp/xsp/xsp-fix-pc.patch | 10 + .../meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb | 15 + .../foxtrotgps/foxtrotgps_1.1.1.bb | 26 + .../meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb | 114 + .../geoclue/files/soup-session-fix.patch | 30 + .../recipes-navigation/geoclue/geoclue_2.0.0.bb | 33 + .../geos-config-Add-includedir-variable.patch | 39 + .../meta-oe/recipes-navigation/geos/geos.inc | 21 + .../meta-oe/recipes-navigation/geos/geos_3.4.2.bb | 6 + ..._STDC_NO_ATOMICS__-before-using-stdatomic.patch | 25 + .../0001-Include-stdatomic.h-only-in-C-mode.patch | 43 + ...prefix-includepy-with-sysroot-and-drop-sy.patch | 75 + ...struct-respect-sysroot-also-in-SPLINTOPTS.patch | 33 + ...e-Fix-issue-with-ACTIVATE-hook-not-being-.patch | 35 + ...for-C11-and-check-we-have-C11-before-usin.patch | 57 + .../gpsd-3.14/0002-SConstruct-remove-rpath.patch | 45 + ...k-for-C11-not-for-not-C11-in-stdatomic.h-.patch | 26 + ...disable-html-and-man-docs-building-becaus.patch | 52 + .../gpsd/gpsd-machine-conf_1.0.bb | 7 + .../recipes-navigation/gpsd/gpsd/60-gpsd.rules | 47 + .../meta-oe/recipes-navigation/gpsd/gpsd/gpsd | 136 + .../recipes-navigation/gpsd/gpsd/gpsd-default | 5 + .../recipes-navigation/gpsd/gpsd/gpsd.service | 10 + .../meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb | 145 + ...g_type_init-is-deprecated-for-glib-2.35.0.patch | 114 + .../recipes-navigation/gypsy/files/fixups.patch | 21 + .../meta-oe/recipes-navigation/gypsy/gypsy.inc | 25 + .../meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb | 15 + .../meta-oe/recipes-navigation/gypsy/gypsy_git.bb | 22 + .../libspatialite-4.2.0/geos-config.patch | 17 + .../libspatialite/libspatialite_4.2.0.bb | 23 + .../meta-oe/recipes-navigation/navit/navit-fpu.inc | 6 + .../meta-oe/recipes-navigation/navit/navit.inc | 95 + .../navit/navit/configure.add.imlib2.option.patch | 16 + .../navit/navit/freetype-include-path.patch | 28 + .../recipes-navigation/navit/navit/maps.xml | 24 + .../recipes-navigation/navit/navit/navit.xml | 45 + .../meta-oe/recipes-navigation/navit/navit/osd.xml | 15 + .../recipes-navigation/navit/navit/plugins.xml | 6 + .../recipes-navigation/navit/navit/speech.xml | 8 + .../meta-oe/recipes-navigation/navit/navit_svn.bb | 11 + .../recipes-navigation/orrery/orrery/orrery.png | Bin 0 -> 19475 bytes .../orrery/orrery/use.GdkPixbuf.patch | 59 + .../recipes-navigation/orrery/orrery_2.7.bb | 32 + .../meta-oe/recipes-navigation/proj/proj_4.8.0.bb | 14 + .../recipes-sato/claws-mail/claws-mail_3.9.0.bb | 56 + .../claws-plugin-gtkhtml2-viewer/configure.patch | 52 + .../claws-plugin-gtkhtml2-viewer_0.31.bb | 24 + .../claws-mail/claws-plugin-mailmbox_1.15.bb | 20 + .../claws-mail/claws-plugin-rssyl/configure.patch | 53 + .../claws-mail/claws-plugin-rssyl_0.34.bb | 20 + .../claws-mail/sylpheed/glib-2.32.patch | 11 + .../recipes-sato/claws-mail/sylpheed_2.7.1.bb | 31 + .../recipes-support/anthy/anthy/2ch_t.patch | 5062 +++++ .../anthy/anthy/native-helpers.patch | 50 + .../anthy/anthy/not_build_elc.patch | 16 + .../anthy/anthy/target-helpers.patch | 111 + .../meta-oe/recipes-support/anthy/anthy_9100h.bb | 42 + .../recipes-support/apcupsd/apcupsd_3.14.10.bb | 42 + .../meta-oe/recipes-support/asio/asio.inc | 15 + .../meta-oe/recipes-support/asio/asio_1.10.1.bb | 6 + .../atop/atop/fix-permissions.patch | 52 + .../atop/atop/remove-bashisms.patch | 33 + .../atop/atop/sysvinit-implement-status.patch | 27 + .../recipes-support/atop/atop/volatiles.99_atop | 1 + .../recipes-support/atop/atop/volatiles.atop.conf | 1 + .../meta-oe/recipes-support/atop/atop_2.2.3.bb | 62 + .../canonical-multitouch/frame_2.5.0.bb | 21 + .../canonical-multitouch/geis_2.2.17.bb | 54 + .../canonical-multitouch/grail_3.1.0.bb | 23 + .../ccid/ccid/no-dep-on-libfl.patch | 18 + .../meta-oe/recipes-support/ccid/ccid_1.4.19.bb | 18 + .../meta-oe/recipes-support/ckermit/ckermit_302.bb | 60 + .../cpufrequtils/0001-dont-unset-cflags.patch | 30 + .../cpufrequtils/cpufrequtils_008.bb | 37 + .../recipes-support/cryptsetup/cryptsetup_1.7.0.bb | 33 + .../ctapi-common/ctapi-common_1.1-11.bb | 23 + .../recipes-support/daemonize/daemonize_git.bb | 14 + ...or.h-include-errno.h-instead-of-extern-int.diff | 25 + ....c-.-supervise-may-be-a-symlink-if-it-s-da.diff | 47 + .../daemontools/daemontools/cross-compile.patch | 45 + .../daemontools/daemontools_0.76.bb | 47 + .../devicekit/devicekit-power_014.bb | 30 + .../meta-oe/recipes-support/devmem2/devmem2.bb | 22 + .../devmem2/devmem2/devmem2-fixups-2.patch | 91 + .../dfu-util/dfu-util-native_0.9.bb | 16 + ...1-Revert-Makefile.am-Drop-static-dfu-util.patch | 68 + .../recipes-support/dfu-util/dfu-util_0.9.bb | 14 + .../digitemp/digitemp/makefile-fix.patch | 20 + .../recipes-support/digitemp/digitemp_3.6.0.bb | 27 + .../meta-oe/recipes-support/dstat/dstat_0.7.2.bb | 23 + .../recipes-support/edac-utils/edac-utils_git.bb | 34 + .../files/add-restart-to-initscript.patch | 33 + ...cript-be-able-to-automatically-load-EDAC-.patch | 98 + .../eject/eject/eject-2.1.1-verbose.patch | 19 + .../eject/eject/eject-2.1.5-error-return.patch | 12 + .../eject/eject/eject-2.1.5-spaces.patch | 66 + .../eject/eject/eject-timeout.patch | 17 + .../meta-oe/recipes-support/eject/eject_2.1.5.bb | 35 + .../emacs/emacs-23.4/nostdlib-unwind.patch | 16 + .../emacs/emacs-23.4/use-qemu.patch | 104 + .../meta-oe/recipes-support/emacs/emacs.inc | 147 + .../meta-oe/recipes-support/emacs/emacs_23.4.bb | 12 + .../recipes-support/enca/enca/configure-hack.patch | 12 + .../enca/enca/configure-remove-dumbness.patch | 26 + .../recipes-support/enca/enca/dont-run-tests.patch | 13 + .../enca/enca/libenca-003-iconv.patch | 28 + .../enca/enca/makefile-remove-tools.patch | 13 + .../meta-oe/recipes-support/enca/enca_1.9.bb | 37 + .../engine-pkcs11/engine-pkcs11_0.2.0.bb | 29 + .../meta-oe/recipes-support/epeg/epeg_git.bb | 13 + .../recipes-support/espeak/espeak-data_1.37.bb | 27 + .../meta-oe/recipes-support/espeak/espeak.inc | 10 + .../meta-oe/recipes-support/espeak/espeak_1.37.bb | 44 + .../recipes-support/eventlog/eventlog_0.2.13.bb | 20 + .../meta-oe/recipes-support/evtest/evtest_git.bb | 17 + .../recipes-support/farsight/farsight2_0.0.22.bb | 30 + .../recipes-support/farsight/libnice_0.0.13.bb | 40 + .../fbset-2.1/fbset-2.1-fix-makefile-dep.patch | 31 + .../recipes-support/fbset/fbset-2.1/makefile.patch | 11 + .../meta-oe/recipes-support/fbset/fbset-modes.bb | 22 + .../recipes-support/fbset/fbset-modes/fb.modes | 3 + .../fbset/fbset-modes/om-gta01/fb.modes | 29 + .../fbset/fbset-modes/omap3-pandora/fb.modes | 6 + .../fbset/fbset-modes/qemuarm/fb.modes | 17 + .../fbset/fbset-modes/qemumips/fb.modes | 17 + ...ding-asm-types.h-is-needed-on-all-linux-s.patch | 34 + .../meta-oe/recipes-support/fbset/fbset_2.1.bb | 37 + .../meta-oe/recipes-support/fbtest/fb-test_git.bb | 20 + .../meta-oe/recipes-support/fftw/benchfft_3.1.bb | 21 + .../meta-oe/recipes-support/fftw/fftw.inc | 25 + .../meta-oe/recipes-support/fftw/fftw_3.3.4.bb | 6 + .../meta-oe/recipes-support/fftw/fftwf_3.3.4.bb | 11 + .../meta-oe/recipes-support/fftw/fftwl_3.3.4.bb | 9 + .../flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff | 6615 +++++++ .../flite-alsa-1.3-configure-with-audio.patch | 12 + .../recipes-support/flite/flite-alsa_1.3.bb | 12 + .../meta-oe/recipes-support/flite/flite.inc | 33 + .../recipes-support/fltk/fltk/disable_test.patch | 11 + .../fltk/fltk/fix-boolean-issue-with-jpeg9.patch | 40 + .../fltk/fltk/fltk-no-freetype-config.patch | 20 + .../meta-oe/recipes-support/fltk/fltk_1.3.3.bb | 49 + ...er_1_0-fix-build-failure-for-new-gstreame.patch | 71 + .../winpr-makecert-Build-with-install-RPATH.patch | 31 + .../meta-oe/recipes-support/freerdp/freerdp_git.bb | 90 + .../meta-oe/recipes-support/gd/gd_2.1.1.bb | 47 + .../meta-oe/recipes-support/glog/glog.inc | 11 + .../meta-oe/recipes-support/glog/glog_0.3.3.bb | 6 + .../meta-oe/recipes-support/gnulib/gnulib_git.bb | 34 + .../recipes-support/gperftools/gperftools_2.4.bb | 12 + .../gpm/gpm-1.99.7/eglibc-2.17.patch | 12 + .../meta-oe/recipes-support/gpm/gpm-1.99.7/init | 32 + .../recipes-support/gpm/gpm-1.99.7/no-docs.patch | 18 + .../gpm/gpm-1.99.7/processcreds.patch | 12 + .../meta-oe/recipes-support/gpm/gpm_1.99.7.bb | 52 + .../gradm/gradm/0001-Makefile-remove-strip.patch | 61 + .../meta-oe/recipes-support/gradm/gradm_3.1.bb | 50 + .../meta-oe/recipes-support/gsl/gsl.inc | 9 + .../meta-oe/recipes-support/gsl/gsl_1.15.bb | 7 + .../meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb | 42 + .../hddtemp-0.3-beta15-autodetect-717479.patch | 90 + .../hddtemp/hddtemp/hddtemp-no-nls-support.patch | 66 + .../recipes-support/hddtemp/hddtemp/hddtemp.db | 531 + .../hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff | 2256 +++ .../meta-oe/recipes-support/hddtemp/hddtemp/init | 100 + .../recipes-support/hddtemp/hddtemp_0.3-beta15.bb | 32 + .../meta-oe/recipes-support/hidapi/hidapi_git.bb | 15 + .../meta-oe/recipes-support/htop/htop_1.0.3.bb | 22 + .../recipes-support/hunspell/hunspell_1.3.3.bb | 18 + .../meta-oe/recipes-support/hwdata/hwdata_0.288.bb | 21 + .../recipes-support/iksemel/iksemel-1.4/r25.diff | 32 + .../meta-oe/recipes-support/iksemel/iksemel_1.4.bb | 19 + .../imagemagick/imagemagick_6.9.2.bb | 89 + .../meta-oe/recipes-support/inih/libinih_git.bb | 19 + .../ipmiutil/ipmiutil/fix_systemd_path.patch | 318 + .../recipes-support/ipmiutil/ipmiutil_2.9.6.bb | 60 + .../meta-oe/recipes-support/joe/joe_3.1.bb | 15 + .../meta-oe/recipes-support/lcms/lcms_2.7.bb | 15 + .../meta-oe/recipes-support/lcov/lcov_1.11.bb | 28 + .../libatasmart/libatasmart_0.19.bb | 19 + ...tk-and-gtk3-version-for-canberra_gtk_play.patch | 92 + .../libcanberra/libcanberra_0.30.bb | 63 + .../recipes-support/libdbi/libdbi-drivers.inc | 51 + .../libdbi/libdbi-drivers_0.8.3-1.bb | 8 + .../meta-oe/recipes-support/libdbi/libdbi.inc | 17 + .../meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb | 6 + .../meta-oe/recipes-support/libee/libee.inc | 39 + .../meta-oe/recipes-support/libee/libee/ezapi1.sh | 14 + .../libee/libee/libee-parallel-make.patch | 20 + .../meta-oe/recipes-support/libee/libee/run-ptest | 3 + .../meta-oe/recipes-support/libee/libee_0.4.1.bb | 4 + ...Lists.txt-install-FindEigen3.cmake-script.patch | 28 + .../recipes-support/libeigen/libeigen_3.2.6.bb | 23 + .../recipes-support/libestr/libestr_0.1.10.bb | 11 + .../libetpan-0.57/libetpan-autoreconf.patch | 12 + .../libetpan/libetpan-0.57/libetpan-ldflags.patch | 11 + .../libetpan/libetpan-0.57/sepbuild.patch | 16 + .../recipes-support/libetpan/libetpan_0.57.bb | 30 + .../meta-oe/recipes-support/libftdi/libftdi_1.2.bb | 31 + .../recipes-support/libjs/libjs-jquery_1.7.2.bb | 24 + .../recipes-support/libjs/libjs-sizzle_1.10.18.bb | 18 + .../liblinebreak/liblinebreak_1.2.bb | 11 + .../recipes-support/libmcrypt/libmcrypt_2.5.8.bb | 12 + .../libmicrohttpd/libmicrohttpd_0.9.34.bb | 27 + .../recipes-support/liboauth/liboauth_1.0.3.bb | 16 + .../recipes-support/libol/libol/configure.patch | 14 + .../meta-oe/recipes-support/libol/libol_0.3.18.bb | 19 + .../meta-oe/recipes-support/libp11/libp11_0.3.0.bb | 23 + .../recipes-support/libraw1394/libraw1394_2.1.0.bb | 11 + .../files/use.pkg-config.for.freetype2.patch | 57 + .../libsdl-ttf/libsdl-ttf_2.0.11.bb | 27 + .../libsdl-ttf/libsdl2-ttf_2.0.14.bb | 27 + .../libsmi/libsmi-fix-the-test-dump-files.patch | 277 + .../meta-oe/recipes-support/libsmi/libsmi/smi.conf | 48 + .../meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb | 30 + .../meta-oe/recipes-support/libsoc/libsoc_0.7.1.bb | 17 + .../recipes-support/libsodium/libsodium_1.0.8.bb | 11 + .../meta-oe/recipes-support/libssh/libssh_0.7.1.bb | 33 + .../recipes-support/libssh2/libssh2_1.6.0.bb | 24 + .../libtinyxml/libtinyxml/enforce-use-stl.patch | 20 + .../libtinyxml/libtinyxml/entity-encoding.patch | 62 + .../recipes-support/libtinyxml/libtinyxml_2.6.2.bb | 45 + .../libtinyxml2/libtinyxml2_3.0.0.bb | 15 + .../libusbg/0001-Fix-out-of-tree-builds.patch | 39 + .../meta-oe/recipes-support/libusbg/libusbg_git.bb | 16 + .../recipes-support/libutempter/libutempter.bb | 39 + .../libutempter/0001-Fix-macro-error.patch | 36 + .../recipes-support/links/files/ac-prog-cxx.patch | 11 + .../recipes-support/links/files/links2.desktop | 14 + .../meta-oe/recipes-support/links/links-x11_2.7.bb | 31 + .../meta-oe/recipes-support/links/links.inc | 17 + .../meta-oe/recipes-support/links/links_2.7.bb | 13 + .../recipes-support/lio-utils/lio-utils_4.1.bb | 60 + .../lm_sensors/lmsensors-config/fancontrol | 2 + .../lm_sensors/lmsensors-config/sensord | 16 + .../lm_sensors/lmsensors-config/sensord.cgi | 10 + .../lm_sensors/lmsensors-config/sensord.conf | 16 + .../lm_sensors/lmsensors-config/sensors.conf | 2 + .../lm_sensors/lmsensors-config_1.0.bb | 63 + .../lm_sensors/lmsensors/fancontrol.init | 47 + .../lm_sensors/lmsensors/sensord.init | 49 + .../recipes-support/lm_sensors/lmsensors_3.4.0.bb | 133 + .../meta-oe/recipes-support/lockdev/lockdev_git.bb | 20 + .../log4c/log4c/fix_configure_with-expat.patch | 21 + .../meta-oe/recipes-support/log4c/log4c_1.2.4.bb | 17 + .../recipes-support/log4cpp/files/fix-pc.patch | 20 + .../recipes-support/log4cpp/log4cpp_1.1.1.bb | 23 + .../meta-oe/recipes-support/lvm2/lvm2.inc | 68 + ...01-implement-libc-specific-_reopen_stream.patch | 139 + ..._MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch | 44 + ...0003-Guard-use-of-mallinfo-with-__GLIBC__.patch | 30 + ...cntl.h-for-O_-defines-and-fcntl-signature.patch | 29 + .../meta-oe/recipes-support/lvm2/lvm2/lvm.conf | 326 + .../meta-oe/recipes-support/lvm2/lvm2_2.02.138.bb | 4 + .../meta-oe/recipes-support/lzip/lzip_1.16.bb | 41 + .../recipes-support/mailcap/mailcap_2.1.45.bb | 23 + .../recipes-support/mbuffer/mbuffer_20140310.bb | 23 + .../recipes-support/mcelog/mce-inject_git.bb | 20 + .../mcelog/mcelog/mcelog-debash.patch | 36 + .../recipes-support/mcelog/mcelog/run-ptest | 3 + .../meta-oe/recipes-support/mcelog/mcelog_1.09.bb | 36 + .../mg/files/remove_ncurses_check.patch | 36 + .../meta-oe/recipes-support/mg/mg_20110905.bb | 23 + .../mime-support/mime-support_3.48.bb | 58 + .../recipes-support/mini-iconv/mini-iconv.bb | 20 + .../meta-oe/recipes-support/minini/minini_1.2.b.bb | 39 + ...to-use-build-settings-from-environment-va.patch | 67 + .../meta-oe/recipes-support/mongodb/mongodb_git.bb | 57 + .../files/0001-multipathd.service-Error-fix.patch | 36 + .../files/always-use-libdevmapper-kpartx.patch | 29 + .../files/always-use-libdevmapper.patch | 44 + .../do-not-link-libmpathpersist-to-TMPDIR.patch | 30 + .../multipath-tools/files/makefile_inc.patch | 39 + .../multipath-tools/files/multipathd.oe | 146 + .../multipath-tools/multipath-tools_git.bb | 76 + .../recipes-support/mysql/mariadb-native_5.5.46.bb | 19 + .../meta-oe/recipes-support/mysql/mariadb.inc | 286 + .../mariadb/configure.cmake-fix-valgrind.patch | 41 + .../mysql/mariadb/fix-a-building-failure.patch | 31 + .../mysql/mariadb/fix-cmake-module-path.patch | 29 + .../mysql/mariadb/fix-mysqlclient-r-version.patch | 161 + .../recipes-support/mysql/mariadb/install_db | 13 + .../mysql/mariadb/install_db.service | 17 + .../meta-oe/recipes-support/mysql/mariadb/my.cnf | 25 + .../mysql/mariadb/mysql-systemd-start | 66 + .../recipes-support/mysql/mariadb/mysqld.service | 25 + .../mysql/mariadb/remove-bad-path.patch | 18 + .../recipes-support/mysql/mariadb_5.5.46.bb | 27 + .../recipes-support/mysql/mysql-python_1.2.5.bb | 17 + .../nano/nano-2.2.5/ncursesw.includedir.patch | 12 + .../meta-oe/recipes-support/nano/nano.inc | 19 + .../meta-oe/recipes-support/nano/nano_2.2.5.bb | 8 + .../meta-oe/recipes-support/ne10/ne10_1.2.1.bb | 42 + .../meta-oe/recipes-support/nmon/nmon_13g.bb | 29 + .../numactl/0001-define-run-test-target.patch | 32 + .../numactl/Fix-the-test-output-format.patch | 64 + .../recipes-support/numactl/numactl/Makefile | 7 + .../numactl/numactl/fix-null-pointer.patch | 28 + .../recipes-support/numactl/numactl/run-ptest | 9 + .../recipes-support/numactl/numactl_2.0.11.bb | 57 + .../recipes-support/ode/ode/configure.patch | 13 + .../meta-oe/recipes-support/ode/ode/install.patch | 23 + .../meta-oe/recipes-support/ode/ode_0.13.bb | 28 + .../recipes-support/onig/files/configure.patch | 13 + .../onig/files/do-not-use-system-headers.patch | 44 + .../meta-oe/recipes-support/onig/onig_5.9.3.bb | 17 + .../open-vcdiff/open-vcdiff_0.8.4.bb | 18 + .../openct/etc-openct.udev.in-disablePROGRAM.patch | 31 + .../openct/etc-openct_usb.in-modify-UDEVINFO.patch | 35 + .../recipes-support/openct/openct/openct.init | 89 + .../recipes-support/openct/openct/openct.service | 13 + .../recipes-support/openct/openct/openct.sysconfig | 5 + .../recipes-support/openct/openct_0.6.20.bb | 92 + .../recipes-support/opencv/opencv-samples_2.4.bb | 41 + ...01-3rdparty-ippicv-Use-pre-downloaded-ipp.patch | 28 + ...ector-instead-of-vector-as-suggests-Eigen.patch | 49 + .../opencv/opencv/fixpkgconfig.patch | 29 + .../meta-oe/recipes-support/opencv/opencv_2.4.bb | 108 + .../meta-oe/recipes-support/opencv/opencv_3.1.bb | 149 + .../recipes-support/openldap/openldap/initscript | 35 + .../openldap/openldap/install-strip.patch | 14 + .../openldap/openldap/kill-icu.patch | 30 + .../openldap/openldap-2.4.28-gnutls-gcrypt.patch | 17 + .../openldap/openldap/openldap-m4-pthread.patch | 20 + .../openldap/openldap/slapd.service | 10 + .../openldap/openldap/thread_stub.patch | 20 + .../openldap/openldap/use-urandom.patch | 38 + .../recipes-support/openldap/openldap_2.4.43.bb | 254 + .../openmotif/openmotif/configure.patch | 15 + .../recipes-support/openmotif/openmotif_2.3.3.bb | 48 + .../recipes-support/opensc/opensc_0.15.0.bb | 45 + .../recipes-support/opensync/libsyncml_0.5.4.bb | 21 + .../recipes-support/opensync/wbxml2_0.10.8.bb | 23 + .../openwbem/openwbem/checkserverkey | 20 + .../recipes-support/openwbem/openwbem/loadmof.sh | 118 + .../openwbem/openwbem/novell-openwbem-root-acl.mof | 21 + .../openwbem/openwbem/openwbem-etc_pam.d_openwbem | 7 + .../openwbem/openwbem/openwbem-owcimomd.init | 131 + .../openwbem/openwbem/openwbem-rpmlintrc | 2 + .../openwbem/openwbem/owcimomd.service | 12 + .../recipes-support/openwbem/openwbem/rmmof.sh | 53 + .../recipes-support/openwbem/openwbem_3.2.3.bb | 112 + .../p910nd/p910nd/fix-var-lock.patch | 30 + .../meta-oe/recipes-support/p910nd/p910nd_0.95.bb | 22 + .../pam-passwdqc/files/1000patch-219201.patch | 156 + .../pam-passwdqc/files/7000Makefile-fix-CC.patch | 11 + .../pam-passwdqc/pam-passwdqc_1.0.5.bb | 35 + .../recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb | 33 + .../meta-oe/recipes-support/picocom/picocom_1.7.bb | 18 + .../pidgin/libotr/fix_qa-issue_include.patch | 18 + .../recipes-support/pidgin/libotr/sepbuild.patch | 16 + .../meta-oe/recipes-support/pidgin/libotr_4.0.0.bb | 15 + .../ignore_extra-portability_warnings.patch | 19 + .../recipes-support/pidgin/pidgin-otr_4.0.0.bb | 21 + .../pidgin/pidgin/pidgin-cross-python-265.patch | 34 + .../pidgin/pidgin/purple-OE-branding-25.patch | 16 + .../pidgin/pidgin/sanitize-configure.ac.patch | 33 + .../recipes-support/pidgin/pidgin_2.10.12.bb | 120 + .../pkcs11-helper/pkcs11-helper_1.11.bb | 29 + .../recipes-support/pngcheck/pngcheck_2.3.0.bb | 23 + .../meta-oe/recipes-support/poco/poco/run-ptest | 9 + .../meta-oe/recipes-support/poco/poco_1.7.1.bb | 107 + .../recipes-support/poppler/poppler-data_0.4.7.bb | 36 + ...h-C-11-compilers-that-don-t-define-isinfi.patch | 39 + ...dd-manadatory-options-to-find-qt4-qt5-moc.patch | 91 + .../recipes-support/poppler/poppler_0.41.0.bb | 55 + .../recipes-support/portaudio/portaudio-v19_svn.bb | 32 + ...0001-Use-pkg-config-for-libxml2-detection.patch | 43 + .../postgresql/files/not-check-libperl.patch | 31 + .../files/postgresql-CVE-2016-0766.patch | 35 + .../files/postgresql-CVE-2016-0773.patch | 222 + .../postgresql/files/postgresql-bashprofile | 4 + .../postgresql/files/postgresql-setup | 73 + .../postgresql/files/postgresql.init | 193 + .../postgresql/files/postgresql.pam | 4 + .../postgresql/files/postgresql.service | 27 + .../files/remove.autoconf.version.check.patch | 16 + .../recipes-support/postgresql/postgresql.inc | 391 + .../recipes-support/postgresql/postgresql_9.4.5.bb | 14 + .../recipes-support/pps-tools/pps-tools_git.bb | 16 + .../from-debian-to-fix-compile-errors.patch | 606 + .../procmail/from-debian-to-fix-man-file.patch | 83 + .../from-debian-to-modify-parameters.patch | 127 + .../procmail/man-file-mailstat.1-from-debian.patch | 60 + .../recipes-support/procmail/procmail_3.22.bb | 44 + .../meta-oe/recipes-support/pv/pv_1.5.3.bb | 11 + .../recipes-support/pxaregs/pxaregs-1.14/Makefile | 3 + .../recipes-support/pxaregs/pxaregs-1.14/i2c.patch | 15 + .../pxaregs/pxaregs-1.14/munmap.patch | 22 + .../recipes-support/pxaregs/pxaregs-1.14/pxaregs.c | 1975 ++ .../pxaregs/pxaregs-1.14/serial.patch | 14 + .../recipes-support/pxaregs/pxaregs-1.14/usb.patch | 17 + .../recipes-support/pxaregs/pxaregs_1.14.bb | 25 + .../recipes-support/re2c/re2c/configure.patch | 18 + .../meta-oe/recipes-support/re2c/re2c_0.13.5.bb | 15 + ...emove-check-for-x86.h-we-don-t-build-get-.patch | 28 + .../recipes-support/read-edid/read-edid_2.0.0.bb | 23 + .../rsnapshot/configure-fix-cmd_rsync.patch | 44 + .../recipes-support/rsnapshot/rsnapshot_git.bb | 43 + .../samsung-soc-utils/s3c24xx-gpio_svn.bb | 22 + .../samsung-soc-utils/s3c64xx-gpio_svn.bb | 21 + .../samsung-soc-utils/sjf2410-linux-native_svn.bb | 32 + .../sdparm/files/make-sysroot-work.patch | 27 + .../meta-oe/recipes-support/sdparm/sdparm_1.09.bb | 23 + .../serial-utils/pty-forward-native.bb | 20 + .../serial-utils/serial-forward_git.bb | 12 + .../recipes-support/sg3-utils/sg3-utils_1.41.bb | 20 + .../sharutils-4.14/fix-for-cross-compiling.patch | 29 + .../recipes-support/sharutils/sharutils_4.14.bb | 18 + .../meta-oe/recipes-support/smem/smem_1.4.bb | 27 + .../recipes-support/soci/soci/soci_libdir.patch | 28 + .../meta-oe/recipes-support/soci/soci_3.2.2.bb | 49 + .../recipes-support/spitools/spitools_git.bb | 14 + .../sqlite-2.8.17/mainmk_build_dynamic.patch | 32 + .../sqlite/sqlite-2.8.17/mainmk_no_tcl.patch | 20 + .../recipes-support/sqlite/sqlite-2.8.17/sqlite.pc | 12 + .../recipes-support/sqlite/sqlite_2.8.17.bb | 59 + ...stop-daemon-Accept-SIG-prefixed-signal-na.patch | 39 + .../start-stop-daemon/start-stop-daemon_1.17.25.bb | 36 + .../meta-oe/recipes-support/synergy/synergy_git.bb | 34 + .../Fix-the-memory-leak-problem-for-mutex.patch | 58 + ...ry-leak-problem-when-HAVE_ENVIRON-defined.patch | 27 + .../files/afsql-afsql_dd_insert_db-refactor.patch | 494 + ...c-add-option-enable-thread-tls-to-manage-.patch | 50 + .../syslog-ng/files/configure.patch | 23 + .../recipes-support/syslog-ng/files/dbifix.patch | 20 + ...init-the-new-config-when-reverting-to-the.patch | 36 + .../fix-a-memory-leak-in-log_driver_free.patch | 33 + .../syslog-ng/files/fix-config-libnet.patch | 66 + .../syslog-ng/files/fix-invalid-ownership.patch | 28 + .../files/free-global-LogTemplateOptions.patch | 30 + .../recipes-support/syslog-ng/files/initscript | 62 + .../logwriter-dont-allocate-a-new-buffer.patch | 26 + .../rewrite-expr-grammar.ym-Free-up-token.patch | 17 + .../files/still-free-the-unconsumed-item.patch | 90 + .../syslog-ng-verify-the-list-before-del.patch | 38 + .../recipes-support/syslog-ng/files/syslog-ng.conf | 155 + .../syslog-ng.service-the-syslog-ng-service.patch | 32 + .../syslog-ng/files/volatiles.03_syslog-ng | 1 + .../recipes-support/syslog-ng/syslog-ng.inc | 118 + .../recipes-support/syslog-ng/syslog-ng_3.6.4.bb | 15 + .../system-config-keyboard_1.4.0.bb | 29 + .../system-setup-keyboard_0.8.8.bb | 31 + .../tbb/allow-to-build-for-older-arm-cores.patch | 30 + .../recipes-support/tbb/tbb/cross-compile.patch | 25 + .../meta-oe/recipes-support/tbb/tbb/tbb.pc | 11 + .../meta-oe/recipes-support/tbb/tbb_4.1.bb | 40 + .../tomoyo-tools/tomoyo-tools_2.5.0.bb | 30 + .../recipes-support/toscoterm/toscoterm_git.bb | 27 + .../meta-oe/recipes-support/tree/tree_1.7.0.bb | 21 + .../0001-fix-build-with-newer-glibc-versions.patch | 29 + .../udisks/udisks/optional-depends.patch | 484 + .../udisks/udisks-1.0.5-fix-service-file.patch | 33 + .../recipes-support/udisks/udisks2_2.1.5.bb | 35 + .../meta-oe/recipes-support/udisks/udisks_1.0.5.bb | 39 + .../uim/uim/0001-fix-bug-for-cross-compile.patch | 28 + .../uim/uim/uim-module-manager.patch | 11 + .../meta-oe/recipes-support/uim/uim_1.8.6.bb | 152 + .../recipes-support/upower/upower_0.9.14.bb | 35 + .../usb-modeswitch/usb-modeswitch-data_20140529.bb | 17 + .../usb-modeswitch/usb-modeswitch_2.2.0.bb | 19 + .../usbpath/usbpath/configure.patch | 11 + .../meta-oe/recipes-support/usbpath/usbpath_svn.bb | 21 + .../meta-oe/recipes-support/uthash/uthash_1.9.7.bb | 16 + .../recipes-support/utouch/utouch-evemu_git.bb | 17 + .../recipes-support/utouch/utouch-frame_git.bb | 17 + .../recipes-support/utouch/utouch-mtview_git.bb | 19 + .../vala-terminal/vala-terminal_git.bb | 20 + .../vboxguestdrivers/Makefile.utils | 43 + .../vboxguestdrivers/vboxguestdrivers_4.3.36.bb | 65 + .../vim/files/disable_acl_header_check.patch | 27 + .../vim-add-knob-whether-elf.h-are-checked.patch | 38 + .../recipes-support/vim/vim-tiny_7.4.769.bb | 13 + .../meta-oe/recipes-support/vim/vim_7.4.769.bb | 109 + .../recipes-support/wmiconfig/wmiconfig_svn.bb | 22 + .../xchat/xchat-2.8.8/automake-foreign.patch | 11 + .../fix-includes-for-separate-build.patch | 78 + .../xchat/xchat-2.8.8/glib-2.32.patch | 44 + .../meta-oe/recipes-support/xchat/xchat_2.8.8.bb | 37 + .../recipes-support/xdelta/xdelta3_3.0.11.bb | 18 + ...001-usage2c.awk-fix-wrong-basename-regexp.patch | 37 + .../xmlstarlet/files/configure.ac.patch | 28 + .../recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb | 33 + .../zile/files/remove-help2man.patch | 28 + .../meta-oe/recipes-support/zile/zile_2.4.9.bb | 15 + .../meta-oe/recipes-test/fwts/fwts_git.bb | 24 + ...install-command-for-libraries-and-headers.patch | 40 + .../cmake-gmock.pc.in-Add-pkg-config-support.patch | 56 + .../meta-oe/recipes-test/gmock/gmock_1.7.0.bb | 23 + ...gtest.pc.in-Add-pkg-config-support-to-gte.patch | 55 + ...install-command-for-libraries-and-headers.patch | 39 + .../meta-oe/recipes-test/gtest/gtest_1.7.0.bb | 23 + .../meta-openembedded/meta-oe/site/endian-big | 2 + .../meta-openembedded/meta-oe/site/endian-little | 2 + .../meta-openembedded/meta-perl/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-perl/README | 92 + .../meta-openembedded/meta-perl/conf/layer.conf | 16 + .../fix-mime-construct-help-return-value.patch | 39 + .../mime-construct/mime-construct_1.11.bb | 28 + .../recipes-perl/adduser/adduser_3.114.bb | 55 + ...-M-option-for-useradd-when-no-create-home.patch | 57 + .../libalgorithm/libalgorithm-diff-perl_1.15.bb | 23 + .../recipes-perl/libauthen/files/run-ptest | 16 + .../libauthen/libauthen-sasl-perl_2.16.bb | 28 + .../libcapture/libcapture-tiny-perl_0.36.bb | 37 + .../libclass-method-modifiers-perl_2.12.bb | 28 + .../libcrypt/libcrypt-openssl-random-perl_0.11.bb | 15 + .../libcrypt/libcrypt-openssl-rsa-perl_0.28.bb | 24 + .../recipes-perl/libcurses/libcurses-perl_1.34.bb | 26 + .../libdb/libdbd-sqlite-perl/sqlite-perl-test.pl | 69 + .../recipes-perl/libdb/libdbd-sqlite-perl_1.50.bb | 39 + .../recipes-perl/libdb/libdbi-perl_1.634.bb | 26 + .../libdevel-globaldestruction-perl_0.13.bb | 23 + .../recipes-perl/libdigest/files/run-ptest | 16 + .../libdigest/libdigest-hmac-perl_1.03.bb | 25 + .../libdigest/libdigest-sha1-perl_2.13.bb | 25 + .../libencode/libencode-locale-perl_1.05.bb | 21 + .../recipes-perl/libencode/libencode-perl_2.83.bb | 54 + .../libextutils/libextutils-config-perl_0.008.bb | 24 + .../libextutils/libextutils-cppguess-perl_0.09.bb | 37 + .../libextutils/libextutils-helpers-perl_0.022.bb | 29 + .../libextutils-installpaths-perl_0.011.bb | 25 + .../libextutils/libextutils-parsexs-perl_3.24.bb | 47 + .../libhtml/files/bin-htmltree-fix-shebang.patch | 25 + .../libhtml/libhtml-parser-perl_3.72.bb | 25 + .../recipes-perl/libhtml/libhtml-tree-perl_5.03.bb | 42 + .../libimport/libimport-into-perl_1.002004.bb | 32 + .../meta-perl/recipes-perl/libio/files/run-ptest | 16 + .../libio/libio-socket-ssl-perl_1.997.bb | 43 + .../recipes-perl/libio/libio-stringy-perl_2.111.bb | 31 + .../recipes-perl/libipc/libipc-signal-perl_1.00.bb | 18 + .../meta-perl/recipes-perl/libmime/files/run-ptest | 16 + .../libmime/libmime-types-perl_2.04.bb | 26 + .../libmodule/libmodule-build-perl_0.31.bb | 27 + .../libmodule/libmodule-build-tiny-perl_0.036.bb | 54 + .../libmodule/libmodule-pluggable-perl_5.2.bb | 39 + .../libmodule/libmodule-runtime-perl_0.015.bb | 35 + .../recipes-perl/libmoo/libmoo-perl_2.000002.bb | 44 + ...ay-perl-Disable-test-that-fails-with-open.patch | 70 + ...2-betas-have-dropped-the-SSLv3_method-fun.patch | 75 + .../meta-perl/recipes-perl/libnet/files/run-ptest | 16 + .../recipes-perl/libnet/libnet-dns-perl_0.81.bb | 25 + .../libidn-wr-cross-compile.patch | 49 + .../recipes-perl/libnet/libnet-libidn-perl_0.12.bb | 34 + .../recipes-perl/libnet/libnet-ssleay-perl_1.65.bb | 51 + .../libproc/libproc-waitstat-perl_1.00.bb | 20 + .../librole/librole-tiny-perl_2.000001.bb | 29 + .../libstrictures/libstrictures-perl_2.000002.bb | 45 + .../libsub-exporter-progressive-perl_0.001011.bb | 30 + .../libtest/libtest-harness-perl_3.36.bb | 80 + .../recipes-perl/libtext/libtext-diff-perl_1.41.bb | 27 + .../recipes-perl/libtext/libtext-iconv-perl_1.7.bb | 24 + .../libxml/libxml-filter-buffertext-perl_1.01.bb | 25 + .../libxml-libxml-perl/disable-libxml2-check.patch | 79 + .../fix-CATALOG-conditional-compile.patch | 31 + .../using-DOCB-conditional.patch | 91 + .../libxml/libxml-libxml-perl_2.0121.bb | 43 + .../libxml/libxml-sax-writer-perl_0.56.bb | 25 + .../meta-openembedded/meta-python/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-python/README | 51 + .../meta-python/classes/pypi.bbclass | 23 + .../meta-openembedded/meta-python/conf/layer.conf | 17 + .../meta-openembedded/meta-python/licenses/Unicode | 37 + .../gateone/gateone/80oe.conf.in | 24 + .../gateone/gateone/gateone-avahi.service | 10 + .../gateone/gateone/gateone-init.in | 47 + .../gateone/gateone/gateone.service.in | 10 + .../recipes-connectivity/gateone/gateone_git.bb | 89 + .../python-pyro4/python-pyro4_4.39.bb | 16 + .../python-thrift/python-thrift_0.9.2.bb | 16 + .../python-txws/python-txws_0.9.1.bb | 15 + .../recipes-devtools/python/pyrtm_0.2.bb | 9 + .../python/python-autobahn_0.8.6.bb | 16 + .../python/python-backports-ssl_3.4.0.2.bb | 16 + .../recipes-devtools/python/python-bcrypt_2.0.0.bb | 15 + .../recipes-devtools/python/python-behave_1.2.5.bb | 10 + .../python/python-bitarray_0.8.1.bb | 11 + .../recipes-devtools/python/python-blinker_1.4.bb | 8 + .../recipes-devtools/python/python-certifi.inc | 11 + .../python/python-certifi_2016.2.28.bb | 2 + .../recipes-devtools/python/python-cffi_1.5.2.bb | 11 + .../python/python-chardet_2.3.0.bb | 8 + .../python/python-cheetah_2.4.4.bb | 16 + .../python/python-cloudeebus_0.6.0.bb | 35 + .../recipes-devtools/python/python-cmd2_0.6.8.bb | 11 + .../python/python-cryptography-vectors_1.1.bb | 14 + .../Comment_lingering_SSLv2_symbol.patch | 24 + .../Remove_SSLv2_bindings.patch | 75 + .../build_fix_openssl_1.0.1g.patch | 28 + .../python/python-cryptography/run-ptest | 2 + .../python/python-cryptography_1.1.bb | 52 + .../recipes-devtools/python/python-cython.inc | 21 + .../recipes-devtools/python/python-cython_0.24.bb | 6 + .../python/python-daemonize_2.4.6.bb | 16 + .../recipes-devtools/python/python-dateutil.inc | 21 + .../python/python-dateutil_2.5.2.bb | 2 + ...nality-to-add-own-objects-to-internal-obj.patch | 53 + ...ibility-to-import-templates-from-packages.patch | 29 + .../python/python-dbusmock_0.10.1.bb | 21 + .../recipes-devtools/python/python-decorator.inc | 15 + .../python/python-decorator_4.0.9.bb | 2 + .../python/python-django-south_1.0.2.bb | 13 + .../recipes-devtools/python/python-django_1.8.8.bb | 14 + .../python/python-dominate_2.2.0.bb | 10 + .../recipes-devtools/python/python-enum34_1.1.2.bb | 8 + .../recipes-devtools/python/python-epydoc_3.0.1.bb | 11 + .../recipes-devtools/python/python-evdev_0.6.0.bb | 12 + .../python/python-feedformatter.inc | 11 + .../python/python-feedformatter_0.4.bb | 2 + .../python/python-feedparser_5.2.1.bb | 9 + .../python/python-flask-bcrypt_0.7.1.bb | 12 + .../python/python-flask-bootstrap_3.3.5.7.bb | 10 + .../recipes-devtools/python/python-flask-login.inc | 14 + .../python/python-flask-login_0.2.11.bb | 2 + .../python/python-flask-navigation_0.2.0.bb | 12 + .../python/python-flask-pymongo.inc | 13 + .../python/python-flask-pymongo_0.4.0.bb | 2 + .../python/python-flask-sqlalchemy_2.1.bb | 12 + .../import-simplejson-as-json.patch | 28 + .../python/python-flask-wtf_0.12.bb | 17 + .../recipes-devtools/python/python-flask.inc | 14 + .../recipes-devtools/python/python-flask_0.10.1.bb | 2 + .../python/python-flufl-enum_4.1.bb | 24 + .../recipes-devtools/python/python-gdata_1.2.4.bb | 17 + .../python/python-gevent_0.13.8.bb | 15 + .../python/python-greenlet_0.4.7.bb | 11 + .../python/python-html5lib_0.9999999.bb | 8 + .../recipes-devtools/python/python-idna_2.1.bb | 11 + .../python/python-ipaddress_1.0.16.bb | 11 + .../python/python-iso8601_0.1.11.bb | 8 + .../python/python-itsdangerous.inc | 9 + .../python/python-itsdangerous_0.24.bb | 2 + .../recipes-devtools/python/python-jinja2.inc | 15 + .../recipes-devtools/python/python-jinja2_2.8.bb | 2 + .../python/python-jsonpatch_1.13.bb | 12 + .../python/python-jsonpointer_1.10.bb | 11 + .../python/python-ldap/setup.cfg.patch | 14 + .../recipes-devtools/python/python-ldap_2.3.9.bb | 12 + .../recipes-devtools/python/python-ldap_2.4.10.bb | 24 + .../recipes-devtools/python/python-lxml.inc | 43 + .../recipes-devtools/python/python-lxml_3.6.0.bb | 2 + .../python-m2crypto/0001-M2Crypto-Error-fix.patch | 162 + ...y-link-in-sysroot-not-in-host-directories.patch | 36 + .../python/python-m2crypto_0.23.0.bb | 52 + .../recipes-devtools/python/python-markupsafe.inc | 14 + .../python/python-markupsafe_0.23.bb | 2 + .../python/python-matplotlib/fix_setup.patch | 29 + .../python/python-matplotlib/fix_setupext.patch | 40 + .../python/python-matplotlib_1.1.0.bb | 36 + .../recipes-devtools/python/python-mccabe_0.4.0.bb | 14 + .../recipes-devtools/python/python-mock_1.3.0.bb | 16 + .../python/python-monotonic_1.0.bb | 10 + .../python/python-msgpack_0.4.7.bb | 11 + .../python/python-netaddr_0.7.18.bb | 8 + .../python/python-numeric/no-lapack.patch | 33 + .../recipes-devtools/python/python-numeric_24.2.bb | 14 + .../python/python-paho-mqtt_1.1.bb | 15 + .../recipes-devtools/python/python-pam_1.8.2.bb | 12 + .../python/python-parse-type_0.3.4.bb | 11 + .../recipes-devtools/python/python-parse_1.6.6.bb | 8 + .../recipes-devtools/python/python-passlib.inc | 14 + .../python/python-passlib_1.6.5.bb | 2 + .../recipes-devtools/python/python-paste_2.0.3.bb | 14 + .../recipes-devtools/python/python-pep8_1.7.0.bb | 14 + .../recipes-devtools/python/python-pip_8.1.1.bb | 11 + .../python/python-pretend_1.0.8.bb | 8 + .../python/python-prettytable_0.7.2.bb | 22 + .../recipes-devtools/python/python-psutil_4.1.0.bb | 12 + .../recipes-devtools/python/python-py_1.4.31.bb | 8 + .../python/python-pyalsaaudio_0.4.bb | 15 + .../recipes-devtools/python/python-pyasn1_0.1.9.bb | 11 + .../python/python-pycparser_2.14.bb | 10 + .../python/python-pyflakes_1.1.0.bb | 14 + .../python/python-pygpgme/run-ptest | 3 + .../recipes-devtools/python/python-pygpgme_0.3.bb | 22 + .../python/python-pyhamcrest_1.9.0.bb | 10 + .../recipes-devtools/python/python-pyinotify.inc | 11 + .../python/python-pyinotify_0.9.6.bb | 2 + .../recipes-devtools/python/python-pymisp.inc | 10 + .../recipes-devtools/python/python-pymisp_2.3.bb | 2 + .../recipes-devtools/python/python-pymongo.inc | 12 + .../python/python-pymongo_3.2.2.bb | 2 + .../python/python-pyopenssl_0.15.1.bb | 18 + .../python/python-pyparsing_2.1.1.bb | 10 + .../import-simplejson-as-json.patch | 26 + .../python/python-pyroute2_0.3.14.bb | 24 + .../recipes-devtools/python/python-pyserial.inc | 16 + .../python/python-pyserial_3.0.1.bb | 2 + .../recipes-devtools/python/python-pytest_2.9.1.bb | 10 + .../recipes-devtools/python/python-pytz_2016.3.bb | 14 + .../python/python-pyudev_0.19.0.bb | 20 + .../python/python-pyusb_1.0.0b2.bb | 10 + .../recipes-devtools/python/python-pyyaml/setup.py | 64 + .../recipes-devtools/python/python-pyyaml_3.11.bb | 24 + .../python/python-pyzmq/club-rpath-out.patch | 26 + .../recipes-devtools/python/python-pyzmq_14.7.0.bb | 24 + .../recipes-devtools/python/python-redis.inc | 9 + .../recipes-devtools/python/python-redis_2.10.5.bb | 2 + .../recipes-devtools/python/python-requests.inc | 9 + .../python/python-requests_2.9.1.bb | 4 + .../recipes-devtools/python/python-six.inc | 16 + .../recipes-devtools/python/python-six_1.10.0.bb | 2 + .../python/python-slip-dbus_0.6.0.bb | 27 + .../recipes-devtools/python/python-smbus_3.1.1.bb | 20 + .../python/python-snakefood_1.4.bb | 51 + .../recipes-devtools/python/python-sparts_0.7.3.bb | 22 + .../python/python-sqlalchemy_0.7.9.bb | 14 + .../python/python-tornado-redis_2.4.18.bb | 18 + .../recipes-devtools/python/python-tornado.inc | 24 + .../0001-disable-AI_ADDRCONFIG-flag.patch | 32 + .../python/python-tornado_2.2.1.bb | 16 + .../recipes-devtools/python/python-tornado_4.3.bb | 3 + .../python/python-twisted_13.2.0.bb | 245 + .../recipes-devtools/python/python-ujson_1.35.bb | 13 + .../recipes-devtools/python/python-urllib3_1.14.bb | 11 + .../python/python-vcversioner_2.14.0.0.bb | 21 + .../python/python-visitor_0.1.2.bb | 8 + .../python/python-vobject_0.8.1c.bb | 16 + .../recipes-devtools/python/python-webdav_0.1.2.bb | 19 + .../recipes-devtools/python/python-werkzeug.inc | 30 + .../python/python-werkzeug_0.11.5.bb | 2 + .../recipes-devtools/python/python-whoosh.inc | 14 + .../recipes-devtools/python/python-whoosh_2.7.4.bb | 2 + .../python/python-wtforms_2.0.2.bb | 13 + .../recipes-devtools/python/python-xlrd.inc | 10 + .../recipes-devtools/python/python-xlrd_0.9.4.bb | 2 + .../python/python-zopeinterface_4.1.1.bb | 18 + .../python/python3-certifi_2016.2.28.bb | 2 + .../recipes-devtools/python/python3-cython_0.24.bb | 18 + .../python/python3-dateutil_2.5.2.bb | 2 + .../python/python3-decorator_4.0.9.bb | 2 + .../python/python3-feedformatter_0.4.bb | 2 + .../python/python3-flask-login_0.2.11.bb | 2 + .../python/python3-flask-pymongo_0.4.0.bb | 2 + .../python/python3-flask_0.10.1.bb | 2 + .../python/python3-itsdangerous_0.24.bb | 2 + .../recipes-devtools/python/python3-jinja2_2.8.bb | 2 + .../recipes-devtools/python/python3-lxml_3.6.0.bb | 2 + .../python/python3-markupsafe_0.23.bb | 2 + .../python/python3-passlib_1.6.5.bb | 2 + .../python/python3-pyinotify_0.9.6.bb | 2 + .../recipes-devtools/python/python3-pymisp_2.3.bb | 2 + .../python/python3-pymongo_3.2.2.bb | 2 + .../python/python3-pyserial_3.0.1.bb | 7 + .../python/python3-redis_2.10.5.bb | 2 + .../python/python3-requests_2.9.1.bb | 2 + .../recipes-devtools/python/python3-six_1.10.0.bb | 2 + .../recipes-devtools/python/python3-tornado_4.3.bb | 2 + .../python/python3-werkzeug_0.11.5.bb | 2 + .../python/python3-whoosh_2.7.4.bb | 2 + .../recipes-devtools/python/python3-xlrd_0.9.4.bb | 2 + .../0001-fix-version-float-check.patch | 26 + .../python-pyparted/python-pyparted_3.10.7.bb | 27 + .../meta-openembedded/meta-ruby/COPYING.MIT | 17 + import-layers/meta-openembedded/meta-ruby/README | 17 + .../meta-ruby/classes/ruby.bbclass | 131 + .../meta-openembedded/meta-ruby/conf/layer.conf | 15 + .../meta-ruby/recipes-devtools/ruby/bundler_git.bb | 31 + .../meta-openembedded/meta-systemd/README | 26 + .../meta-openembedded/meta-systemd/conf/layer.conf | 32 + .../recipes-bsp/keymaps/keymaps_1.0.bbappend | 4 + .../recipes-connectivity/avahi/avahi_%.bbappend | 4 + .../connman/connman_%.bbappend | 3 + .../dhcp/dhcp/dhclient.service | 13 + .../recipes-connectivity/dhcp/dhcp_%.bbappend | 24 + .../recipes-connectivity/ofono/ofono_%.bbappend | 5 + .../openssh/openssh_%.bbappend | 3 + .../portmap/portmap_6.0.bbappend | 5 + .../wpa-supplicant/wpa-supplicant_%.bbappend | 3 + .../recipes-core/busybox/busybox_%.bbappend | 3 + .../oe-core/recipes-core/dbus/dbus_%.bbappend | 3 + .../recipes-core/dropbear/dropbear_%.bbappend | 4 + .../recipes-core/systemd/systemd_%.bbappend | 3 + .../recipes-core/util-linux/util-linux_%.bbappend | 3 + .../oe-core/recipes-extended/at/at_%.bbappend | 4 + .../recipes-extended/cronie/cronie_%.bbappend | 3 + .../recipes-extended/lighttpd/lighttpd_%.bbappend | 3 + .../recipes-extended/rpcbind/rpcbind_%.bbappend | 3 + .../systemd/systemd-machine-units_1.0.bb | 13 + .../meta-openembedded/meta-webserver/COPYING.MIT | 17 + .../meta-openembedded/meta-webserver/README | 70 + .../meta-webserver/conf/layer.conf | 24 + .../meta-openembedded/meta-webserver/licenses/OML | 28 + .../meta-webserver/licenses/Xdebug | 60 + .../apache-mod/apache-websocket_git.bb | 33 + .../recipes-httpd/apache2/apache2-native_2.4.20.bb | 45 + .../apache2/apache2/apache-configure_perlbin.patch | 20 + .../apache2/apache2/apache-ssl-ltmain-rpath.patch | 84 + .../apache2/apache2/fix-libtool-name.patch | 55 + .../apache2/apache2/httpd-2.4.1-corelimit.patch | 37 + .../apache2/apache2/httpd-2.4.1-selinux.patch | 63 + .../apache2/apache2/httpd-2.4.4-export.patch | 22 + .../replace-lynx-to-curl-in-apachectl-script.patch | 52 + .../apache2/apache2/server-makefile.patch | 11 + .../recipes-httpd/apache2/apache2_2.4.20.bb | 181 + ...nfigure-use-pkg-config-for-PCRE-detection.patch | 52 + .../apache2/files/apache2-volatile.conf | 2 + .../recipes-httpd/apache2/files/apache2.service | 14 + ...onfigure-allow-to-disable-selinux-support.patch | 40 + ...httpd-2.4.3-fix-race-issue-of-dir-install.patch | 21 + .../recipes-httpd/apache2/files/init | 230 + .../cherokee-install-configured.py-once.patch | 40 + .../recipes-httpd/cherokee/cherokee/cherokee.init | 32 + .../cherokee/cherokee/cherokee.service | 10 + .../recipes-httpd/cherokee/cherokee_1.2.98.bb | 68 + .../recipes-httpd/hiawatha/files/hiawatha-init | 44 + .../recipes-httpd/hiawatha/files/hiawatha.service | 16 + .../recipes-httpd/hiawatha/hiawatha_9.2.bb | 65 + .../recipes-httpd/monkey/files/monkey.init | 34 + .../recipes-httpd/monkey/files/monkey.service | 12 + .../recipes-httpd/monkey/monkey_1.5.6.bb | 65 + .../recipes-httpd/nginx/files/nginx-cross.patch | 218 + .../recipes-httpd/nginx/files/nginx-volatile.conf | 2 + .../recipes-httpd/nginx/files/nginx.conf | 118 + .../recipes-httpd/nginx/files/nginx.init | 52 + .../recipes-httpd/nginx/files/nginx.service | 12 + .../nginx/nginx-1.9.14/nginx-cross.patch | 211 + .../meta-webserver/recipes-httpd/nginx/nginx.inc | 137 + .../recipes-httpd/nginx/nginx_1.8.1.bb | 6 + .../recipes-httpd/nginx/nginx_1.9.14.bb | 12 + ...ile-add-possibility-to-override-variables.patch | 141 + .../recipes-httpd/nostromo/files/nhttpd.conf | 55 + .../recipes-httpd/nostromo/files/nostromo | 34 + .../recipes-httpd/nostromo/files/tmpfiles.conf | 1 + .../recipes-httpd/nostromo/files/volatiles | 2 + .../recipes-httpd/nostromo/nostromo_1.9.5.bb | 69 + .../recipes-httpd/sthttpd/sthttpd/init | 52 + .../recipes-httpd/sthttpd/sthttpd/thttpd.conf | 1 + .../recipes-httpd/sthttpd/sthttpd/thttpd.service | 10 + .../recipes-httpd/sthttpd/sthttpd_2.26.4.bb | 45 + .../Port-content-spoofing-fix-CVE-2015-7873.patch | 48 + .../recipes-php/phpmyadmin/phpmyadmin/apache.conf | 42 + .../phpmyadmin/phpmyadmin-CVE-2015-8669.patch | 18 + .../recipes-php/phpmyadmin/phpmyadmin_4.5.0.2.bb | 38 + .../recipes-php/xdebug/xdebug_2.2.6.bb | 34 + .../fcgi/fcgi/Fix_EOF_not_declared_issue.patch | 17 + .../fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch | 18 + .../recipes-support/fcgi/fcgi_2.4.0.bb | 15 + .../spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch | 35 + .../recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb | 16 + .../webmin/files/disable-version-check.patch | 45 + .../webmin/files/exports-lib.pl.patch | 32 + .../webmin/files/init-exclude.patch | 78 + .../recipes-webadmin/webmin/files/media-tomb.patch | 65 + .../webmin/files/mount-excludefs.patch | 25 + .../webmin/files/mysql-config-fix.patch | 50 + .../webmin/files/net-generic.patch | 21 + .../recipes-webadmin/webmin/files/net-lib.pl.patch | 19 + .../recipes-webadmin/webmin/files/nfs-export.patch | 39 + .../webmin/files/proftpd-config-fix.patch | 18 + .../webmin/files/remove-python2.3.patch | 25 + .../webmin/files/remove-startup-option.patch | 29 + .../webmin/files/samba-config-fix.patch | 32 + .../recipes-webadmin/webmin/files/setup.sh | 340 + .../recipes-webadmin/webmin/webmin_1.750.bb | 155 + import-layers/meta-openembedded/meta-xfce/README | 23 + .../meta-xfce/classes/thunar-plugin.bbclass | 10 + .../meta-xfce/classes/xfce-app.bbclass | 4 + .../meta-xfce/classes/xfce-git.bbclass | 7 + .../meta-xfce/classes/xfce-panel-plugin.bbclass | 11 + .../meta-xfce/classes/xfce.bbclass | 22 + .../meta-openembedded/meta-xfce/conf/layer.conf | 23 + .../meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb | 11 + .../recipes-apps/mousepad/mousepad_0.4.0.bb | 19 + .../meta-xfce/recipes-apps/orage/orage_4.12.1.bb | 19 + .../recipes-apps/ristretto/ristretto_0.8.0.bb | 15 + .../recipes-apps/xarchiver/xarchiver_git.bb | 24 + .../recipes-apps/xfce-polkit/xfce-polkit_0.2.bb | 11 + .../recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb | 14 + .../xfce4-notifyd/xfce4-notifyd_0.2.4.bb | 20 + ...m-create-ouput-directory-for-desktop-file.patch | 29 + .../xfce4-screenshooter_1.8.2.bb | 23 + .../xfce4-taskmanager/xfce4-taskmanager_1.1.0.bb | 10 + .../xfce4-terminal/xfce4-terminal_0.6.3.bb | 12 + .../recipes-art/cursor-themes/openzone_1.2.3.bb | 29 + .../rodent-icon-theme/rodent-icon-theme_5.0.bb | 16 + .../xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb | 19 + .../xfwm4-themes/xfwm4-themes_4.10.0.bb | 19 + .../recipes-bindings/vala/xfce4-vala_4.10.3.bb | 16 + .../recipes-core/images/core-image-minimal-xfce.bb | 17 + .../imsettings/gtk-is-required-by-notify.patch | 18 + ...CAL_AMFLAGS-isnot-supported-by-autoreconf.patch | 21 + .../meta-xfce/recipes-extended/imsettings_1.6.8.bb | 30 + .../packagegroups/packagegroup-xfce-multimedia.bb | 11 + .../recipes-multimedia/parole/parole_0.8.1.bb | 36 + .../xfce4-mpc-plugin/xfce4-mpc-plugin_0.4.5.bb | 15 + .../recipes-multimedia/xfmpc/xfmpc_0.2.2.bb | 13 + .../fix-build-on-aarch64.patch | 34 + .../battery/xfce4-battery-plugin_1.0.5.bb | 11 + .../calculator/xfce4-calculator-plugin_0.5.1.bb | 9 + .../clipman/xfce4-clipman-plugin_1.2.6.bb | 18 + .../closebutton/xfce4-closebutton-plugin_git.bb | 18 + .../cpufreq/xfce4-cpufreq-plugin_1.1.2.bb | 9 + .../cpugraph/xfce4-cpugraph-plugin_1.0.5.bb | 9 + .../datetime/xfce4-datetime-plugin_0.6.2.bb | 9 + .../diskperf/xfce4-diskperf-plugin_2.5.5.bb | 9 + .../embed/xfce4-embed-plugin_1.0.0.bb | 12 + .../equake/xfce4-equake-plugin_1.3.8.bb | 12 + .../eyes/xfce4-eyes-plugin_4.4.4.bb | 11 + .../fsguard/xfce4-fsguard-plugin_1.0.2.bb | 9 + ...-period-to-be-set-at-250ms-resolution.-Pa.patch | 36 + .../genmon/xfce4-genmon-plugin_3.4.0.bb | 13 + .../hotcorner/xfce4-hotcorner-plugin_0.0.2.bb | 11 + .../kbdleds/xfce4-kbdleds-plugin_0.0.6.bb | 15 + .../mailwatch/xfce4-mailwatch-plugin_1.2.0.bb | 11 + .../mount/xfce4-mount-plugin_0.6.4.bb | 10 + .../netload/xfce4-netload-plugin_1.2.4.bb | 9 + ...atus-icon.c-remove-deprecated-g_type_init.patch | 32 + .../notes/xfce4-notes-plugin_1.8.1.bb | 19 + .../places/xfce4-places-plugin_1.7.0.bb | 12 + .../pulseaudio/xfce4-pulseaudio-plugin_0.2.4.bb | 17 + .../sensors/xfce4-sensors-plugin_1.2.6.bb | 27 + .../xfce4-smartbookmark-plugin_0.4.6.bb | 9 + .../systemload/xfce4-systemload-plugin_1.1.2.bb | 11 + .../time-out/xfce4-time-out-plugin_1.0.2.bb | 10 + .../timer/xfce4-timer-plugin_1.6.0.bb | 10 + .../verve/xfce4-verve-plugin_1.1.0.bb | 9 + .../wavelan/xfce4-wavelan-plugin_0.5.12.bb | 9 + .../weather/xfce4-weather-plugin_0.8.7.bb | 13 + .../whiskermenu/xfce4-whiskermenu-plugin_1.5.3.bb | 9 + .../xkb/xfce4-xkb-plugin_0.7.1.bb | 16 + .../meta-xfce/recipes-support/vim/vim_%.bbappend | 6 + .../archive/thunar-archive-plugin_0.3.1.bb | 12 + .../media-tags/thunar-media-tags-plugin_0.2.1.bb | 11 + .../meta-xfce/recipes-xfce/exo/exo/configure.patch | 43 + .../recipes-xfce/exo/exo/exo-no-tests-0.8.patch | 31 + .../exo/exo/reduce-build-to-exo-csource-only.patch | 82 + .../meta-xfce/recipes-xfce/exo/exo_0.10.6.bb | 36 + ...ations.menu-don-t-bloat-settings-menu-by-.patch | 35 + .../meta-xfce/recipes-xfce/garcon/garcon_0.4.0.bb | 13 + .../gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb | 26 + ...-private-xfce4-keyboard-shortcuts.xml-fix.patch | 31 + .../recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb | 33 + .../libxfce4util/libxfce4util_4.12.1.bb | 10 + .../packagegroups/packagegroup-xfce-base.bb | 35 + .../packagegroups/packagegroup-xfce-extended.bb | 68 + .../thunar-volman/thunar-volman_0.8.1.bb | 15 + .../meta-xfce/recipes-xfce/thunar/thunar_1.6.10.bb | 33 + ...01-configure-use-pkg-config-for-freetype2.patch | 45 + .../recipes-xfce/tumbler/tumbler_0.1.31.bb | 29 + .../xfce4-appfinder/xfce4-appfinder_4.12.0.bb | 12 + .../xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb | 23 + ...r-warning-in-clock-plugin-about-shadowed-.patch | 606 + ...make-change-of-system-s-timezone-change-t.patch | 42 + .../recipes-xfce/xfce4-panel/xfce4-panel_4.12.0.bb | 41 + .../xfce4-power-manager_1.4.4.bb | 42 + .../recipes-xfce/xfce4-session/machine-host.bb | 17 + ...01-configure.in-hard-code-path-to-iceauth.patch | 40 + .../xfce4-session/xfce4-session_4.12.1.bb | 30 + .../0001-xsettings.xml-Set-default-themes.patch | 33 + .../xfce4-settings/xfce4-settings_git.bb | 38 + .../meta-xfce/recipes-xfce/xfconf/xfconf_4.12.0.bb | 15 + .../recipes-xfce/xfdesktop/xfdesktop_4.12.3.bb | 15 + ...-display-events-when-time-is-set-backward.patch | 33 + .../meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.3.bb | 29 + 2990 files changed, 192783 insertions(+) create mode 100644 import-layers/meta-openembedded/.gitignore create mode 100644 import-layers/meta-openembedded/COPYING.MIT create mode 100644 import-layers/meta-openembedded/README create mode 100755 import-layers/meta-openembedded/contrib/oe-stylize.py create mode 100755 import-layers/meta-openembedded/contrib/pw-am.sh create mode 100755 import-layers/meta-openembedded/contrib/tesseract-langs.sh create mode 100644 import-layers/meta-openembedded/meta-efl/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-efl/README create mode 100644 import-layers/meta-openembedded/meta-efl/classes/e-base.bbclass create mode 100644 import-layers/meta-openembedded/meta-efl/classes/e.bbclass create mode 100644 import-layers/meta-openembedded/meta-efl/classes/efl.bbclass create mode 100644 import-layers/meta-openembedded/meta-efl/conf/distro/include/efl-from-svn-recipes.inc create mode 100644 import-layers/meta-openembedded/meta-efl/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-core/meta/meta-toolchain-efl.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/diskio_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-module.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/applications.menu create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/edje-viewer_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elbow_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elfe_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/emprint_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/exquisite-init create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/splashfuncs create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/news_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rage_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology_0.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime/configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/azy_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edb_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus_1.7.9.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edje-fpu.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl_1.15.1.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary_1.15.1.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/engrave_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/entrance.service create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_1.7.9.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/imlib2_git.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeweather_svn.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl.inc create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-filesystems/README create mode 100644 import-layers/meta-openembedded/meta-filesystems/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb create mode 100755 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd create mode 100755 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.4.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-generate-crctable-which-is-moved-into-runti.patch create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-gnome/README create mode 100644 import-layers/meta-openembedded/meta-gnome/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.0.10.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-devtools/glade/glade3_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/gparted_polkit create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.24.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.m4 create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.make create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/0001-Remove-use-of-G_DISABLE_DEPRECATED.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/do-not-use-srcdir-variable.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/default.lua create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/devilspie2.desktop create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-contact-Replace-the-Novell-sample-contact-with-somet.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-Fix-for-automake-1.12.x.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-Disable-Werror-for-automake.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.18.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/%gconf-tree.xml create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch create mode 100755 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/Default create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/cross-xdetection.diff create mode 100755 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm-pam create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.conf create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.service.in create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/egg-asn1x.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/0001-multiple-Makefile.am-remove-DG_DISABLE_DEPRECATED-to.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/do-not-use-srcdir-variable.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gconftool-lossage.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gnome-vfs-no-kerberos.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-cups-1.6.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-glib.h.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/files/parallel.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4 create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4 create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/Makefile.am.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be_32/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/arm/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/armeb/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i386/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i586/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i686/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64el/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mipsel/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc64/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/x86_64/art_config.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl_2.3.21.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome/0001-libgnome-Makefile.am-allow-deprecated-symbols.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/gnome-stock-pixbufs.h create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/no-pixbuf-csource.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl_0.8.14.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/remove-yelp-help-rules-var.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-try-run-strftime.diff create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3/no-try-run-strftime.diff create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0001-linc2-src-Makefile.am-fix-build-with-glib-2.36.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0002-Use-AM_CPPFLAGS-instead-of-INCLUDES-and-fix-problem-.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/configure-lossage.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/pkgconfig-fix.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_contact.png create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_person.png create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/dso_linking_change_build_fix.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks.inc create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_git.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/iconpath-option.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/florence/florence_0.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/c99math.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/nodolt.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/90tracker create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-dbus.service create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-miner-fs.service create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-store.service create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch create mode 100644 import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb create mode 100644 import-layers/meta-openembedded/meta-gnome/site/arm-64 create mode 100644 import-layers/meta-openembedded/meta-gnome/site/x86_64-linux create mode 100644 import-layers/meta-openembedded/meta-gpe/README create mode 100644 import-layers/meta-openembedded/meta-gpe/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_git.bb create mode 100644 import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-initramfs/README create mode 100644 import-layers/meta-openembedded/meta-initramfs/classes/klibc.bbclass create mode 100644 import-layers/meta-openembedded/meta-initramfs/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0005-rgb.h-fix-build-with-gcc5.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg/icon.xpm create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0002-common.mk-for-klibc-CC-is-klcc.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0006-libiniparser-remove-unused-function-needing-float.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot/revert-check-console.patch create mode 100644 import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_4.4.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-multimedia/README create mode 100644 import-layers/meta-openembedded/meta-multimedia/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.10.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.14.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/avoid-redefining-strnlen-and-strndup.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/sepbuildfix.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.6.19.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.28.2.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch create mode 100755 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch create mode 100644 import-layers/meta-openembedded/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 create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch create mode 100644 import-layers/meta-openembedded/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 create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb create mode 100755 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch create mode 100755 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.22.4.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.10.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb create mode 100644 import-layers/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-networking/MAINTAINERS create mode 100644 import-layers/meta-openembedded/meta-networking/README create mode 100644 import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass create mode 100644 import-layers/meta-openembedded/meta-networking/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/README create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt create mode 100644 import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt create mode 100644 import-layers/meta-openembedded/meta-networking/licenses/DMTF create mode 100644 import-layers/meta-openembedded/meta-networking/licenses/copyleft-next-0.3.0 create mode 100644 import-layers/meta-openembedded/meta-networking/licenses/netperf create mode 100644 import-layers/meta-openembedded/meta-networking/licenses/radvd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.6.3a.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.10.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/00-fix-typos-in-man-pages.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/0006-avoid-using-colon-in-the-checking-msg.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/16-do-not-check-xsltproc-manpages.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/20-do-not-import-target-module-while-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/21-add-config-option-without-valgrind.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/volatiles.03_samba create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-libpcap-search-sysroot-for-headers.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/default.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/long-help create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp/atftpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/cross.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/99_iscsi-initiator-utils create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/initd.debian create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-targets.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_4.7.0.bb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/internal_recipient create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/CVE-2016-3125.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/basic.conf.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/close-RequireValidShell-check.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd-basic.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5a.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/CVE-2016-3947.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/volatiles.03_squid create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.7.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.40-remap.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.42-tftpboot.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-chk_retcodes.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-cmd_arg.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.39-tzfix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-fortify-strcpy-crash.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-stats.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-5.2-pktinfo.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-xinetd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/change-secure_chroot_dir.patch create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/volatiles.99_vsftpd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.ftpusers create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.user_list create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrack-failover create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmpd.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmptrapd.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmptrapd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babeld.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/bgpd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/isisd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospf6d.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospfd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.pam create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripngd.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/zebra.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_0.99.24.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools/aoe-stat-no-bashism.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools_36.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-error-message-for-incorrect-command.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-incorrect-command-in-manual.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.11.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.39.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/cim-schema/files/LICENSE create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.75.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/99_dnsmasq create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-noresolvconf.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf-helper create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.resolvconf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/dovecot.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot/dovecot.socket create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.21.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-don-t-compile-documentation.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/esmtp/esmtp_1.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.1/GeoIP.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate-2.2.1/geoipupdate.cron create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/geoip/geoipupdate_2.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.1.26.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/crosscompile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.7.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.6.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.8.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/do-not-check-xsltproc-manpages.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.28.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v4test.sh create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v6test.sh create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/no-help2man.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached/configure.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.17.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.86.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.11.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat/make-netcat_flag_count_work.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat/netcat-locale_h.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat/obsolete_autoconf_macros.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat_0.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netperf/files/cpu_set.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netperf/files/init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netperf/files/vfork.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/netperf/netperf_2.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/files/ypbind.init create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/nis.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/domainname.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_2.14.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt/ypbind.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed/use-ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntp.conf create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpd create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpd.list create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpd.service create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpdate create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpdate.default create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/ntpdate.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/sntp create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp/sntp.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p7.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.8.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.1.8.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/install-strongswan-swanctl-service.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/support-newer-systemd.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.3.2.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.28.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/tcpdump-configure-dlpi.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.7.4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb create mode 100755 import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20130505.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute/filter-out-the-patches-from-subdirs.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tunctl/tunctl.inc create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/tunctl/tunctl_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/README create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch create mode 100644 import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-oe/README create mode 100644 import-layers/meta-openembedded/meta-oe/classes/breakpad.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/classes/gitpkgv.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/classes/gpe.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/classes/machine_kernel_pr.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/classes/socorro-syms.bbclass create mode 100644 import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc create mode 100644 import-layers/meta-openembedded/meta-oe/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/GD create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/GPL-2.0-with-lmbench-restriction create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/ImageMagick create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/Intel create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/Kilgard create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/ManishSingh create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/OGPL create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/OpenLDAP create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/QWTv1.0 create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/TLWG create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/flite create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/gnuplot create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/iozone3 create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/nbench-byte create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/unRAR create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/vim create mode 100644 import-layers/meta-openembedded/meta-oe/licenses/zsh create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammu-smsdrc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammurc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-aliasing-bugs-CVE-2015-2696.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-export-import-CVE-2015-2698.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-SPNEGO-context-aliasing-bugs-CVE-2015-2695.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-build_principal-memory-bug-CVE-2015-2697.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/crosscompile_nm.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/debian-suppress-usr-lib-in-krb5-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-kdc create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-admin-server create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-kdc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-CVE-2016-3119.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.13.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.0.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-add-pkg-config-for-libgcrypt.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle/fix-svc-gtk-doc.h-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_2.4.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.44.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++_2.38.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/meta/distro-feed-configs.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/GPLv2.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.1 create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.c create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2012.04.07.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/index.js create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany/0001-configure.ac-remove-additional-c-test.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.26.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/files/0001-Makefile.am-no-examples.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/files/lemon.1 create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20150325-3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/fix-libdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-ltrace-fix-gcc-5-logical-not-parentheses.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/configure-allow-to-disable-selinux-support.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/ltrace-0.7.2-unused-typedef.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/lua.pc.in create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/memstat/memstat_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_3.4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja-native_1.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.4.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.18/change-AC_TRY_RUN-to-AC_TRY_LINK.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.5.32.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.18.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-simplejson_3.8.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007e-shared.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007f-format-security.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpica_20150515.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-linux.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests_20140828.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/files/no-werror.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-redefine-the-dependence.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd-version.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.3.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.2-20150920.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/files/ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/efivar-drop-options-not-supported-by-lower-version-gcc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.21.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/fwts/fwts_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/lua-loadlibs-configure-in-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/subdirs.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.png create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_4.6.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-to-fix-lib64-can-not-be-shiped-in-64bit-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc5.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_0.5.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/glibc-2.4.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_0.17.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-assume-zero-is-valid-address.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-add-support-for-big-endian-32bit-ARM.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/openwsmand.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_9.20.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.NetworkManager.rules create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.timedate1.rules create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/ethers.sample create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/rarpd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/init-redis-server create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.5.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/enable_tls_ptests.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/initscript create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/json-0.12-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/replace_deprecated_GnuTLS_functions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use_gnutls_certificate_type_set_priority_only_if_available.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_7.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel/sblim-cmpi-devel-2.0.3-docdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel_2.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.15-fix-provider-debugging.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-maxMsgLen.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-multilib-man-cfg.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.5-service.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-ftbfs.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/initd.smartd create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartmontools.default create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils/0001-canutils-candump-Add-error-frame-s-handling.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan/0001-Use-strcmp-instead-of-sizeof-on-char-string.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.1.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.2.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.3.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/12_unknown_lscolors.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/15_no-strip.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-broken-test.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-lexical.at-31.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-nice.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-notty.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/tcsh-6.17.02-multibyte.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.18.01.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_2.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/files/support-cross-compile-for-linux.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/zram.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.22.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/cairo/cairomm_1.11.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/Makevars create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.70.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-lxdm.conf.in-blacklist-root-for-release-images.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam-debug create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/mesa/mesa-glut_8.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.36.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-afr_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ara_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-aze_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bel_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ben_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bul_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-cat_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ces_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-sim_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-tra_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chr_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-dan_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-deu_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ell_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eng_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-enm_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo-alt_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-equ_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-est_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eus_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fin_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fra_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frk_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frm_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-glg_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-grc_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-heb_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hin_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hrv_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hun_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ind_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-isl_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita-old_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-jpn_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kan_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kor_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lav_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lit_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mal_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mkd_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mlt_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-msa_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nld_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nor_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-pol_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-por_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ron_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-rus_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slk_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slv_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa-old_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-sqi_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-srp_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swa_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swe_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tam_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tel_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tgl_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tha_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tur_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ukr_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-vie_3.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_3.02.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu/30-dejavu-aliases.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.35.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata/OFL.txt create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf.inc create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_320.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.6.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0003-add-89xdgautostart-Xsession.d-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0005-add-XWindowManager-Xsession.d-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0014-Xserver-Start-Xsession-like-x11-common-does.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/gplv2-license.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9 create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20130430.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.19.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/devicekit/devicekit-power_014.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.0.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fix-boolean-issue-with-jpeg9.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk_1.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_1.99.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.288.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_6.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee.inc create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_3.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/links/links.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-_reopen_stream.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-use-PTHREAD_MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-Guard-use-of-mallinfo-with-__GLIBC__.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0004-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/lvm.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.138.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.45.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/mcelog-debash.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.09.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mg/mg_20110905.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/do-not-link-libmpathpersist-to-TMPDIR.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.46.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.46.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.2.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch create mode 100755 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.43.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.15.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/picocom/picocom_1.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.10.12.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Compile-with-C-11-compilers-that-don-t-define-isinfi.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.41.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0766.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0773.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.09.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.41.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/dbifix.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb_4.1.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.9.14.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.9.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch create mode 100644 import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-oe/site/endian-big create mode 100644 import-layers/meta-openembedded/meta-oe/site/endian-little create mode 100644 import-layers/meta-openembedded/meta-perl/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-perl/README create mode 100644 import-layers/meta-openembedded/meta-perl/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-extended/mime-construct/files/fix-mime-construct-help-return-value.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.114.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libauthen/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.36.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libcurses/libcurses-perl_1.34.bb create mode 100755 import-layers/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl/sqlite-perl-test.pl create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.50.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdb/libdbi-perl_1.634.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.13.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdigest/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.83.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.09.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.022.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.24.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libio/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_1.997.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmime/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-types-perl_2.04.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.31.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.036.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.015.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.000002.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/files/0001-libnet-ssleay-perl-Disable-test-that-fails-with-open.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/files/0002-Recent-1.0.2-betas-have-dropped-the-SSLv3_method-fun.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/files/run-ptest create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_0.81.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl-0.12/libidn-wr-cross-compile.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.65.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000001.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000002.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001011.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.36.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/disable-libxml2-check.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/fix-CATALOG-conditional-compile.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/using-DOCB-conditional.patch create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0121.bb create mode 100644 import-layers/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.56.bb create mode 100644 import-layers/meta-openembedded/meta-python/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-python/README create mode 100644 import-layers/meta-openembedded/meta-python/classes/pypi.bbclass create mode 100644 import-layers/meta-openembedded/meta-python/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-python/licenses/Unicode create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.39.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_2.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-blinker_1.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2016.2.28.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.5.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-chardet_2.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.6.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Comment_lingering_SSLv2_symbol.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Remove_SSLv2_bindings.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/build_fix_openssl_1.0.1g.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/run-ptest create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.24.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.6.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.5.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.9.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.8.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.5.7.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login_0.2.11.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flufl-enum_4.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.7.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib_0.9999999.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.16.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-iso8601_0.1.11.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.13.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer_1.10.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_3.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-M2Crypto-Error-fix.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.23.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mock_1.3.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.4.7.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr_0.7.18.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric_24.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.3.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.6.6.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.6.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pip_8.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_4.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.4.31.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.1.9.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.14.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_0.15.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.3.14.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial_3.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_2.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2016.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev_0.19.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb_1.0.0b2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml/setup.py create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.11.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis_2.10.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.10.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-snakefood_1.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado/0001-disable-AI_ADDRCONFIG-flag.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_2.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ujson_1.35.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.14.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.14.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-visitor_0.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.11.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_0.9.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2016.2.28.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.24.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.5.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.0.9.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.2.11.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.10.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.8.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_3.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_0.23.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.6.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.0.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_2.10.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.9.1.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-six_1.10.0.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.3.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.11.5.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_0.9.4.bb create mode 100644 import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch create mode 100644 import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb create mode 100644 import-layers/meta-openembedded/meta-ruby/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-ruby/README create mode 100644 import-layers/meta-openembedded/meta-ruby/classes/ruby.bbclass create mode 100644 import-layers/meta-openembedded/meta-ruby/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-ruby/recipes-devtools/ruby/bundler_git.bb create mode 100644 import-layers/meta-openembedded/meta-systemd/README create mode 100644 import-layers/meta-openembedded/meta-systemd/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-bsp/keymaps/keymaps_1.0.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/avahi/avahi_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/connman/connman_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp/dhclient.service create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/ofono/ofono_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/openssh/openssh_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/portmap/portmap_6.0.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-core/busybox/busybox_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-core/dbus/dbus_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-core/dropbear/dropbear_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-core/systemd/systemd_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-core/util-linux/util-linux_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-extended/at/at_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-extended/cronie/cronie_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-extended/lighttpd/lighttpd_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/oe-core/recipes-extended/rpcbind/rpcbind_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-systemd/recipes-core/systemd/systemd-machine-units_1.0.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/COPYING.MIT create mode 100644 import-layers/meta-openembedded/meta-webserver/README create mode 100644 import-layers/meta-openembedded/meta-webserver/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/licenses/OML create mode 100644 import-layers/meta-openembedded/meta-webserver/licenses/Xdebug create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.20.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/fix-libtool-name.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.20.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/apache2.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch create mode 100755 import-layers/meta-openembedded/meta-webserver/recipes-httpd/apache2/files/init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/cherokee-install-configured.py-once.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/cherokee.init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/cherokee.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_1.2.98.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/files/hiawatha-init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/files/hiawatha.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/hiawatha/hiawatha_9.2.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/files/nginx-volatile.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/files/nginx.conf create mode 100755 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/files/nginx.init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/files/nginx.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx-1.9.14/nginx-cross.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.9.14.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/files/nostromo create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/files/volatiles create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.5.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd/init create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd/thttpd.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd/thttpd.service create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.26.4.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin/Port-content-spoofing-fix-CVE-2015-7873.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin/apache.conf create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin/phpmyadmin-CVE-2015-8669.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.5.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-php/xdebug/xdebug_2.2.6.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/Fix_EOF_not_declared_issue.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/exports-lib.pl.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-lib.pl.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/nfs-export.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-python2.3.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch create mode 100755 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/setup.sh create mode 100644 import-layers/meta-openembedded/meta-webserver/recipes-webadmin/webmin/webmin_1.750.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/README create mode 100644 import-layers/meta-openembedded/meta-xfce/classes/thunar-plugin.bbclass create mode 100644 import-layers/meta-openembedded/meta-xfce/classes/xfce-app.bbclass create mode 100644 import-layers/meta-openembedded/meta-xfce/classes/xfce-git.bbclass create mode 100644 import-layers/meta-openembedded/meta-xfce/classes/xfce-panel-plugin.bbclass create mode 100644 import-layers/meta-openembedded/meta-xfce/classes/xfce.bbclass create mode 100644 import-layers/meta-openembedded/meta-xfce/conf/layer.conf create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/orage/orage_4.12.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.8.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/files/0001-Makefile.am-create-ouput-directory-for-desktop-file.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.8.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.6.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-extended/imsettings/gtk-is-required-by-notify.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-extended/imsettings/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-extended/imsettings_1.6.8.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-multimedia/parole/parole_0.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.4.5.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin/fix-build-on-aarch64.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.5.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.2.6.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.6.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.5.5.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/files/0001-Allow-timer-period-to-be-set-at-250ms-resolution.-Pa.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_3.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_0.6.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.7.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.2.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.6.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.4.6.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.1.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.6.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.5.12.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.7.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_1.5.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.7.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-support/vim/vim_%.bbappend create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.3.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.2.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/exo/exo/configure.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/exo/exo_0.10.6.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/garcon/files/0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_0.4.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/files/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.12.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_1.6.10.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/tumbler/tumbler_0.1.31.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.12.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-Fix-compiler-warning-in-clock-plugin-about-shadowed-.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-clock-time-make-change-of-system-s-timezone-change-t.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.4.4.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session/0001-configure.in-hard-code-path-to-iceauth.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.0.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.3.bb create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/files/0001-don-t-block-display-events-when-time-is-set-backward.patch create mode 100644 import-layers/meta-openembedded/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.3.bb diff --git a/import-layers/meta-openembedded/.gitignore b/import-layers/meta-openembedded/.gitignore new file mode 100644 index 000000000..b093583d7 --- /dev/null +++ b/import-layers/meta-openembedded/.gitignore @@ -0,0 +1,5 @@ +/*.patch +*.swp +*.orig +*.rej +*~ diff --git a/import-layers/meta-openembedded/COPYING.MIT b/import-layers/meta-openembedded/COPYING.MIT new file mode 100644 index 000000000..fb950dc69 --- /dev/null +++ b/import-layers/meta-openembedded/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/README b/import-layers/meta-openembedded/README new file mode 100644 index 000000000..204966ac8 --- /dev/null +++ b/import-layers/meta-openembedded/README @@ -0,0 +1,4 @@ +Collection of layers for the OE-core universe + +Please see the respective READMEs in the layer subdirectories + diff --git a/import-layers/meta-openembedded/contrib/oe-stylize.py b/import-layers/meta-openembedded/contrib/oe-stylize.py new file mode 100755 index 000000000..db8a3632d --- /dev/null +++ b/import-layers/meta-openembedded/contrib/oe-stylize.py @@ -0,0 +1,411 @@ +#!/usr/bin/env python + +"""\ +Sanitize a bitbake file following the OpenEmbedded style guidelines, +see http://openembedded.org/wiki/StyleGuide + +(C) 2006 Cyril Romain +MIT license + +TODO: + - add the others OpenEmbedded variables commonly used: + - parse command arguments and print usage on misuse + . prevent giving more than one .bb file in arguments + - write result to a file + - backup the original .bb file + - make a diff and ask confirmation for patching ? + - do not use startswith only: + /!\ startswith('SOMETHING') is not taken into account due to the previous startswith('S'). + - count rule breaks and displays them in the order frequence +""" + +from __future__ import print_function +import fileinput +import string +import re + +__author__ = "Cyril Romain " +__version__ = "$Revision: 0.5 $" + +# The standard set of variables often found in .bb files in the preferred order +OE_vars = [ + 'SUMMARY', + 'DESCRIPTION', + 'AUTHOR', + 'HOMEPAGE', + 'SECTION', + 'LICENSE', + 'LIC_FILES_CHKSUM', + 'DEPENDS', + 'PROVIDES', + 'SRCREV', + 'SRCDATE', + 'PE', + 'PV', + 'PR', + 'INC_PR', + 'SRC_URI', + 'S', + 'GPE_TARBALL_SUFFIX', + 'inherit', + 'EXTRA_', + 'export', + 'do_fetch', + 'do_unpack', + 'do_patch', + 'WORKDIR', + 'acpaths', + 'do_configure', + 'do_compile', + 'do_install', + 'PACKAGES', + 'PACKAGE_ARCH', + 'RDEPENDS', + 'RRECOMMENDS', + 'RSUGGESTS', + 'RPROVIDES', + 'RCONFLICTS', + 'FILES', + 'do_package', + 'do_stage', + 'addhandler', + 'addtask', + 'bindir', + 'headers', + 'include', + 'includedir', + 'python', + 'qtopiadir', + 'pkg_preins', + 'pkg_prerm', + 'pkg_postins', + 'pkg_postrm', + 'require', + 'sbindir', + 'basesysconfdir', + 'sysconfdir', + 'ALLOW_EMPTY', + 'ALTERNATIVE_NAME', + 'ALTERNATIVE_PATH', + 'ALTERNATIVE_LINK', + 'ALTERNATIVE_PRIORITY', + 'ALTNAME', + 'AMD_DRIVER_LABEL', + 'AMD_DRIVER_VERSION', + 'ANGSTROM_EXTRA_INSTALL', + 'APPDESKTOP', + 'APPIMAGE', + 'APPNAME', + 'APPTYPE', + 'APPWEB_BUILD', + 'APPWEB_HOST', + 'AR', + 'ARCH', + 'ARM_INSTRUCTION_SET', + 'ARM_MUTEX', + 'ART_CONFIG', + 'B', + 'BJAM_OPTS', + 'BJAM_TOOLS', + 'BONOBO_HEADERS', + 'BOOTSCRIPTS', + 'BROKEN', + 'BUILD_CPPFLAGS', + 'CFLAGS', + 'CCFLAGS', + 'CMDLINE', + 'COLLIE_MEMORY_SIZE', + 'COMPATIBLE_HOST', + 'COMPATIBLE_MACHINE', + 'COMPILE_HERMES', + 'CONFFILES', + 'CONFLICTS', + 'CORE_EXTRA_D', + 'CORE_IMAGE_EXTRA_INSTALL', + 'CORE_PACKAGES_D', + 'CORE_PACKAGES_RD', + 'CPPFLAGS', + 'CVSDATE', + 'CXXFLAGS', + 'DEBIAN_NOAUTONAME', + 'DEBUG_APPS', + 'DEFAULT_PREFERENCE', + 'DB4_CONFIG', + 'EXCLUDE_FROM_SHLIBS', + 'EXCLUDE_FROM_WORLD', + 'FIXEDSRCDATE', + 'GLIBC_ADDONS', + 'GLIBC_EXTRA_OECONF', + 'GNOME_VFS_HEADERS', + 'HEADERS', + 'INHIBIT_DEFAULT_DEPS', + 'INITSCRIPT_PACKAGES', + 'INITSCRIPT_NAME', + 'INITSCRIPT_PARAMS', + 'INSANE_SKIP', + 'PACKAGE_INSTALL', + 'KERNEL_IMAGETYPE', + 'KERNEL_IMAGEDEST', + 'KERNEL_OUTPUT', + 'KERNEL_RELEASE', + 'KERNEL_PRIORITY', + 'KERNEL_SOURCE', + 'KERNEL_SUFFIX', + 'KERNEL_VERSION', + 'K_MAJOR', + 'K_MICRO', + 'K_MINOR', + 'HHV', + 'KV', + 'LDFLAGS', + 'LD', + 'LD_SO', + 'LDLIBS', + 'LEAD_SONAME', + 'LIBTOOL', + 'LIBBDB_EXTRA', + 'LIBV', + 'MACHINE_ESSENTIAL_EXTRA_RDEPENDS', + 'MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS', + 'MACHINE_EXTRA_RDEPENDS', + 'MACHINE_EXTRA_RRECOMMENDS', + 'MACHINE_FEATURES', + 'MACHINE_TASKS', + 'MACHINE', + 'MACHTYPE', + 'MAKE_TARGETS', + 'MESSAGEUSER', + 'MESSAGEHOME', + 'MIRRORS', + 'MUTEX', + 'OE_QMAKE_INCDIR_QT', + 'OE_QMAKE_CXXFLAGS', + 'ORBIT_IDL_SRC', + 'PARALLEL_MAKE', + 'PAKCAGE_ARCH', + 'PCMCIA_MANAGER', + 'PKG_BASENAME', + 'PKG', + 'QEMU', + 'QMAKE_PROFILES', + 'QPEDIR', + 'QPF_DESCRIPTION', + 'QPF_PKGPATTERN', + 'QT_CONFIG_FLAGS', + 'QT_LIBRARY', + 'ROOTFS_POSTPROCESS_COMMAND', + 'RREPLACES', + 'TARGET_CFLAGS', + 'TARGET_CPPFLAGS', + 'TARGET_LDFLAGS', + 'UBOOT_MACHINE', + 'UCLIBC_BASE', + 'UCLIBC_PATCHES', + 'USERADD_PACKAGES', + 'USERADD_PARAM', + 'VIRTUAL_NAME', + 'XORG_PN', + 'XSERVER', + 'others' +] + +varRegexp = r'^([a-zA-Z_0-9${}-]*)([ \t]*)([+.:]?=[+.]?)([ \t]*)([^\t]+)' +routineRegexp = r'^([a-zA-Z0-9_ ${}-]+?)\(' + +# Variables seen in the processed .bb +seen_vars = {} +for v in OE_vars: + seen_vars[v] = [] + +# _Format guideline #0_: +# No spaces are allowed at the beginning of lines that define a variable or +# a do_ routine +def respect_rule0(line): + return line.lstrip()==line +def conformTo_rule0(line): + return line.lstrip() + +# _Format guideline #1_: +# No spaces are allowed behind the line continuation symbol '\' +def respect_rule1(line): + if line.rstrip().endswith('\\'): + return line.endswith('\\') + else: + return True +def conformTo_rule1(line): + return line.rstrip() + +# _Format guideline #2_: +# Tabs should not be used (use spaces instead). +def respect_rule2(line): + return line.count('\t')==0 +def conformTo_rule2(line): + return line.expandtabs() + +# _Format guideline #3_: +# Comments inside bb files are allowed using the '#' character at the +# beginning of a line. +def respect_rule3(line): + if line.lstrip().startswith('#'): + return line.startswith('#') + else: + return True +def conformTo_rule3(line): + return line.lstrip() + +# _Format guideline #4_: +# Use quotes on the right hand side of assignments FOO = "BAR" +def respect_rule4(line): + r = re.search(varRegexp, line) + if r is not None: + r2 = re.search(r'("?)([^"\\]*)(["\\]?)', r.group(5)) + # do not test for None it because always match + return r2.group(1)=='"' and r2.group(3)!='' + return False +def conformTo_rule4(line): + r = re.search(varRegexp, line) + return ''.join([r.group(1), ' ', r.group(3), ' "', r.group(5), r.group(5).endswith('"') and '' or '"']) + +# _Format guideline #5_: +# The correct spacing for a variable is FOO = "BAR". +def respect_rule5(line): + r = re.search(varRegexp, line) + return r is not None and r.group(2)==" " and r.group(4)==" " +def conformTo_rule5(line): + r = re.search(varRegexp, line) + return ''.join([r.group(1), ' ', r.group(3), ' ', r.group(5)]) + +# _Format guideline #6_: +# Don't use spaces or tabs on empty lines +def respect_rule6(line): + return not line.isspace() or line=="\n" +def conformTo_rule6(line): + return "" + +# _Format guideline #7_: +# Indentation of multiline variables such as SRC_URI is desireable. +def respect_rule7(line): + return True +def conformTo_rule7(line): + return line + +rules = ( + (respect_rule0, conformTo_rule0, "No spaces are allowed at the beginning of lines that define a variable or a do_ routine"), + (respect_rule1, conformTo_rule1, "No spaces are allowed behind the line continuation symbol '\\'"), + (respect_rule2, conformTo_rule2, "Tabs should not be used (use spaces instead)"), + (respect_rule3, conformTo_rule3, "Comments inside bb files are allowed using the '#' character at the beginning of a line"), + (respect_rule4, conformTo_rule4, "Use quotes on the right hand side of assignments FOO = \"BAR\""), + (respect_rule5, conformTo_rule5, "The correct spacing for a variable is FOO = \"BAR\""), + (respect_rule6, conformTo_rule6, "Don't use spaces or tabs on empty lines"), + (respect_rule7, conformTo_rule7, "Indentation of multiline variables such as SRC_URI is desireable"), +) + +# Function to check that a line respects a rule. If not, it tries to conform +# the line to the rule. Reminder or Disgression message are dump accordingly. +def follow_rule(i, line): + oldline = line + # if the line does not respect the rule + if not rules[i][0](line): + # try to conform it to the rule + line = rules[i][1](line) + # if the line still does not respect the rule + if not rules[i][0](line): + # this is a rule disgression + print ("## Disgression: ", rules[i][2], " in: '", oldline, "'") + else: + # just remind user about his/her errors + print ("## Reminder: ", rules[i][2], " in : '", oldline, "'") + return line + + +if __name__ == "__main__": + + # -- retrieves the lines of the .bb file -- + lines = [] + for line in fileinput.input(): + # use 'if True' to warn user about all the rule he/she breaks + # use 'if False' to conform to rules{2,1,6} without warnings + if True: + lines.append(line) + else: + # expandtabs on each line so that rule2 is always respected + # rstrip each line so that rule1 is always respected + line = line.expandtabs().rstrip() + # ignore empty lines (or line filled with spaces or tabs only) + # so that rule6 is always respected + if line is not '': + lines.append(line) + + # -- parse the file -- + var = "" + in_routine = False + commentBloc = [] + olines = [] + for line in lines: + originalLine = line + # rstrip line to remove line breaks characters + line = line.rstrip() + line = follow_rule(2, line) + line = follow_rule(1, line) + line = follow_rule(6, line) + + # ignore empty lines + if line.isspace() or line is '': + # flush comments into the olines + for c in commentBloc: olines.append(c) + commentBloc = [] + continue + + if line.startswith('}'): + in_routine=False + keep = line.endswith('\\') or in_routine + + # handles commented lines + if line.lstrip().startswith('#'): + # check and follow rule3 if not in a variables or routines + if not in_routine: + line = follow_rule(3, line) + commentBloc.append(line) + continue + + if var in seen_vars: + for c in commentBloc: seen_vars[var].append(c) + commentBloc = [] + seen_vars[var].append(line) + else: + for k in OE_vars: + if line.startswith(k): + var = k + break + if re.match(routineRegexp, line) is not None: + in_routine=True + line = follow_rule(0, line) + elif re.match(varRegexp, line) is not None: + line = follow_rule(0, line) + line = follow_rule(4, line) + line = follow_rule(5, line) + if var == "": + if not in_routine: + print ("## Warning: unknown variable/routine \"%s\"" % originalLine.rstrip('\n')) + var = 'others' + for c in commentBloc: seen_vars[var].append(c) + commentBloc = [] + seen_vars[var].append(line) + if not keep and not in_routine: var = "" + + # -- dump the sanitized .bb file -- + addEmptyLine = False + # write comments that are not related to variables nor routines + for l in commentBloc: olines.append(l) + # write variables and routines + previourVarPrefix = "unknown" + for k in OE_vars: + if k=='SRC_URI': addEmptyLine = True + if seen_vars[k] != []: + if addEmptyLine and not k.startswith(previourVarPrefix): + olines.append("") + for l in seen_vars[k]: + olines.append(l) + previourVarPrefix = k.split('_')[0]=='' and "unknown" or k.split('_')[0] + for line in olines: print(line) + diff --git a/import-layers/meta-openembedded/contrib/pw-am.sh b/import-layers/meta-openembedded/contrib/pw-am.sh new file mode 100755 index 000000000..8987eee8e --- /dev/null +++ b/import-layers/meta-openembedded/contrib/pw-am.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Idea and implementation: Koen Kooi +# Multiple patches support: Marcin Juszkiewicz +# +# This script will fetch an 'mbox' patch from patchwork and git am it +# usage: pw-am.sh +# example: 'pw-am.sh 221' will get the patch from http://patchwork.openembedded.org/patch/221/ + +for patchnumber in $@; +do + wget -nv http://patches.openembedded.org/patch/$patchnumber/mbox/ -O pw-am-$patchnumber.patch + git am -s pw-am-$patchnumber.patch + rm pw-am-$patchnumber.patch +done diff --git a/import-layers/meta-openembedded/contrib/tesseract-langs.sh b/import-layers/meta-openembedded/contrib/tesseract-langs.sh new file mode 100755 index 000000000..50873c139 --- /dev/null +++ b/import-layers/meta-openembedded/contrib/tesseract-langs.sh @@ -0,0 +1,92 @@ +#! /bin/sh + +# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved +# Released under the MIT license (see meta-openembedded layer's COPYING.MIT) + +PV='3.02' + +# Sometimes the software package has a minor version, but language +# packages have not. Example: +# software package: tesseract-ocr-3.02.02.tar.gz +# language package: tesseract-ocr-3.02.por.tar.gz +MINOR_PV=02 + +recipes_dir=$1 + +usage() { + echo "Usage: `basename $0` [ ]" +} + +if [ -z "$recipes_dir" ]; then + usage + exit 1 +fi +mkdir -p "$recipes_dir" + +file_list_uri='https://code.google.com/p/tesseract-ocr/downloads/list' +file_list=`mktemp` + +remove_dl_dir= +if [ -z "$2" ]; then + remove_dl_dir=1 + dl_dir=`mktemp -d` +else + dl_dir="$2" +fi + +mkdir -p $dl_dir + +tesseract_langs() { + wget -q -O "$file_list" "$file_list_uri" + + grep -E 'a href="detail\?name=tesseract-ocr-'${PV}'\.[^\.]+.tar.gz&can=2&q=">' "$file_list" | \ + sed -r -e 's/.*tesseract-ocr-'${PV}'\.*([^\.]+)\.tar\.gz.*/\1/' | \ + grep -Ev '('${MINOR_PV}'|'${MINOR_PV}'-doc-html)' | \ + sort -u +} + +download_lang_files() { + local langs="$1" + local uri + for lang in $langs; do + if [ ! -e "$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz" ]; then + uri="https://tesseract-ocr.googlecode.com/files/tesseract-ocr-${PV}.${lang}.tar.gz" + echo "Downloading $uri" + wget -q -P "$dl_dir" "$uri" + fi + done +} + +create_recipe() { + local lang=$1 + local tarball + + tarball="$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz" + + md5sum=`md5sum $tarball | awk '{print $1}'` + sha256sum=`sha256sum $tarball | awk '{print $1}'` + + cat > $recipes_dir/tesseract-lang-`echo ${lang} | sed s/_/-/g`_${PV}.bb < diff --git a/import-layers/meta-openembedded/meta-efl/classes/e-base.bbclass b/import-layers/meta-openembedded/meta-efl/classes/e-base.bbclass new file mode 100644 index 000000000..e0ae2285d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/classes/e-base.bbclass @@ -0,0 +1,14 @@ +HOMEPAGE = "http://www.enlightenment.org" +SRCNAME ?= "${BPN}" +SRCVER ?= "${PV}" + +EFL_SRCREV ?= "82070" + +ARM_INSTRUCTION_SET = "arm" + +S = "${WORKDIR}/${SRCNAME}-${SRCVER}" + +# each efl or e17 module is installing module.so in different directory, disable shlibs providers for them +# evas-engine-gl-x11-1.7.7 evas-engine-software-16-1.7.7 evas-engine-software-16-x11-1.7.7 evas-engine-software-x11-1.7.7 evas-engine-wayland-shm-1.7.7 evas-cserve2-bmp-1.7.7 evas-cserve2-eet-1.7.7 evas-cserve2-ico-1.7.7 evas-cserve2-jpeg-1.7.7 evas-cserve2-pmaps-1.7.7 evas-cserve2-png-1.7.7 evas-cserve2-psd-1.7.7 evas-cserve2-tga-1.7.7 evas-cserve2-tiff-1.7.7 evas-cserve2-wbmp-1.7.7 evas-cserve2-xpm-1.7.7 evas-loader-bmp-1.7.7 evas-loader-generic-1.7.7 evas-loader-gif-1.7.7 evas-loader-ico-1.7.7 evas-loader-jpeg-1.7.7 evas-loader-pmaps-1.7.7 evas-loader-png-1.7.7 evas-loader-psd-1.7.7 evas-loader-tga-1.7.7 evas-loader-tiff-1.7.7 evas-loader-wbmp-1.7.7 evas-loader-xpm-1.7.7 evas-saver-jpeg-1.7.7 evas-saver-png-1.7.7 evas-saver-tiff-1.7.7 evas-engine-fb-1.7.7 +# emotion-1.7.7 elementary-1.7.7 elementary-tests-1.7.7 elementary-accessibility-1.7.7 e-wm-0.17.3 elfe-0.0.1+svnr82070 shr-e-gadgets-0.0.0+gitr1+27b6c17d73 cpu-0.0.1+svnr82070 places-0.1.0+svnr82070 forecasts-0.2.0+svnr82070 uptime-0.0.2+svnr82070 screenshot-0.3.0+svnr82070 exalt-client-0.0.1+svnr82070 diskio-0.0.1+svnr82070 rain-0.0.3+svnr82070 news-0.1.0+svnr82070 flame-0.0.3+svnr82070 +PRIVATE_LIBS = "module.so" diff --git a/import-layers/meta-openembedded/meta-efl/classes/e.bbclass b/import-layers/meta-openembedded/meta-efl/classes/e.bbclass new file mode 100644 index 000000000..4ee80bf57 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/classes/e.bbclass @@ -0,0 +1,22 @@ +SECTION = "e/apps" + +inherit e-base autotools pkgconfig binconfig + +do_prepsources () { + make clean distclean || true +} +addtask prepsources after do_patch before do_configure + +do_configure_append() { + find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g +} + +export CURL_CONFIG = "${STAGING_BINDIR_CROSS}/curl-config" +export FREETYPE_CONFIG = "${STAGING_BINDIR_CROSS}/freetype-config" + +PACKAGES =+ "${PN}-themes" +PACKAGES += "${PN}-lib" + +FILES_${PN}-lib = "${libdir}/lib*.so.*" +FILES_${PN}-themes = "${datadir}/${PN}/themes ${datadir}/${PN}/data ${datadir}/${PN}/fonts ${datadir}/${PN}/pointers ${datadir}/${PN}/images ${datadir}/${PN}/users ${datadir}/${PN}/images ${datadir}/${PN}/styles" +FILES_${PN}-dev += "${includedir} ${libdir}/lib*.so" diff --git a/import-layers/meta-openembedded/meta-efl/classes/efl.bbclass b/import-layers/meta-openembedded/meta-efl/classes/efl.bbclass new file mode 100644 index 000000000..eb40e4bc3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/classes/efl.bbclass @@ -0,0 +1,66 @@ +SECTION = "e/libs" +LICENSE = "MIT & BSD" +DEPENDS += "pkgconfig-native" + +# revision 0d93ec84b30bc1bee2caaee72d667f87bc468a70 made SRCDATE and hence PV go backwards, so we need to up PE to unbreak builds and feeds :( +PE = "2" + +inherit e-base autotools + +# evas-native looks at this var, so keep it + +do_configure_prepend() { + autopoint || touch config.rpath +} + +do_install_prepend () { + for i in `find ${B}/ -name "*.pc" -type f` ; do \ + sed -i -e 's:-L${STAGING_LIBDIR}:-L\$\{libdir\}:g' -e 's:-I${STAGING_LIBDIR}:-I\$\{libdir\}:g' -e 's:-I${STAGING_INCDIR}:-I\$\{includedir\}:g' $i + done +} + +PACKAGES =+ "${PN}-themes" +PACKAGES += "${PN}-tests" +PACKAGES += "${PN}-eolian" + +FILES_${PN} = "${libdir}/*.so.* \ + ${libdir}/edje/modules/${PN}/*/module.so \ + ${libdir}/${PN}/plugins/*.so \ + ${datadir}/dbus-1/services/* \ +" + + +FILES_${PN}-themes = "${datadir}/${PN}/themes \ + ${datadir}/${PN}/data \ + ${libdir}/${PN}/plugins/data/*.edj \ + ${datadir}/${PN}/fonts \ + ${datadir}/${PN}/pointers \ + ${datadir}/${PN}/images \ + ${datadir}/${PN}/users \ + ${datadir}/${PN}/images \ + ${datadir}/${PN}/styles" + +FILES_${PN}-dev += "${bindir}/${PN}-config \ + ${libdir}/pkgconfig/* \ + ${libdir}/lib*.la \ + ${libdir}/*.so \ + ${libdir}/${PN}/*.la \ + ${libdir}/${PN}/*/*.la \ + ${datadir}/${PN}/edje_externals \ + ${libdir}/edje/modules/${PN}/*/module.la \ +" + +FILES_${PN}-eolian = " \ + ${datadir}/eolian/include \ +" + +FILES_${PN}-staticdev += "${libdir}/${BPN}/*/*.a" + +FILES_${PN}-dbg += "${libdir}/${PN}/.debug \ + ${libdir}/${PN}/*/.debug \ + ${libdir}/edje/modules/${PN}/*/.debug/module.so \ +" + +FILES_${PN}-tests = "${bindir}/${PN} \ + ${bindir}/*_* \ + ${datadir}/${PN}" diff --git a/import-layers/meta-openembedded/meta-efl/conf/distro/include/efl-from-svn-recipes.inc b/import-layers/meta-openembedded/meta-efl/conf/distro/include/efl-from-svn-recipes.inc new file mode 100644 index 000000000..23a8eaeca --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/conf/distro/include/efl-from-svn-recipes.inc @@ -0,0 +1,43 @@ +EFL_PREFERRED_VERSION ?= "1.7.4+svn%" +EFL_PREFERRED_PYTHON_VERSION ?= "1.7.0+svn%" + +PREFERRED_VERSION_e-wm ?= "0.17.0+svnr%" + +PREFERRED_VERSION_ecore ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_ecore-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_edbus ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_edbus-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_edje ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_edje-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_edje-nativesdk ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eeze ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eeze-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_efreet ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_efreet-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eina ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eina-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_embryo ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_embryo-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_evas ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_evas-generic-loaders ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_evas-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_expedite ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_expedite-native ?= "${EFL_PREFERRED_VERSION}" + +PREFERRED_VERSION_eet ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eet-native ?= "${EFL_PREFERRED_VERSION}" + +PREFERRED_VERSION_eio ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_eio-native ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_emotion ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_ethumb ?= "${EFL_PREFERRED_VERSION}" +PREFERRED_VERSION_elementary ?= "${EFL_PREFERRED_VERSION}" + +PREFERRED_VERSION_python-elementary ?= "${EFL_PREFERRED_PYTHON_VERSION}" +PREFERRED_VERSION_python-ecore ?= "${EFL_PREFERRED_PYTHON_VERSION}" +PREFERRED_VERSION_python-edbus ?= "${EFL_PREFERRED_PYTHON_VERSION}" +PREFERRED_VERSION_python-edje ?= "${EFL_PREFERRED_PYTHON_VERSION}" +PREFERRED_VERSION_python-emotion ?= "${EFL_PREFERRED_PYTHON_VERSION}" +PREFERRED_VERSION_python-evas ?= "${EFL_PREFERRED_PYTHON_VERSION}" + +PREFERRED_VERSION_terminology ?= "0.2.0+svn%" diff --git a/import-layers/meta-openembedded/meta-efl/conf/layer.conf b/import-layers/meta-openembedded/meta-efl/conf/layer.conf new file mode 100644 index 000000000..ea90ce28d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/conf/layer.conf @@ -0,0 +1,35 @@ +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "efl-layer" +BBFILE_PATTERN_efl-layer := "^${LAYERDIR}/" +BBFILE_PRIORITY_efl-layer = "7" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_efl-layer = "1" + +LAYERDEPENDS_efl-layer = "core openembedded-layer" + +E_MIRROR = "http://download.enlightenment.org/releases" +E_RELEASES = "http://download.enlightenment.org/rel" +E_SVN = "svn://svn.enlightenment.org/svn/e" + +# RDEPENDS on update-alternatives provider opkg-utils +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\ + exquisite-theme-illume->opkg-utils \ +" + +# RDEPENDS on e-wm +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\ + e-wm-theme-illume-efenniht->e-wm \ + e-wm-theme-illume-neo->e-wm \ + e-wm-theme-b-and-w->e-wm \ +" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + packagegroup-efl-sdk->packagegroup-core-sdk \ +" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-core/meta/meta-toolchain-efl.bb b/import-layers/meta-openembedded/meta-efl/recipes-core/meta/meta-toolchain-efl.bb new file mode 100644 index 000000000..b7b7fca89 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-core/meta/meta-toolchain-efl.bb @@ -0,0 +1,6 @@ +TOOLCHAIN_TARGET_EFLTASK ?= "packagegroup-efl-standalone-sdk-target packagegroup-efl-standalone-sdk-target-dbg" +TOOLCHAIN_TARGET_TASK = "${TOOLCHAIN_TARGET_EFLTASK}" +TOOLCHAIN_OUTPUTNAME = "${SDK_NAME}-toolchain-efl-${DISTRO_VERSION}" +require recipes-core/meta/meta-toolchain.bb + +TOOLCHAIN_NEED_CONFIGSITE_CACHE += "zlib" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus.inc b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus.inc new file mode 100644 index 000000000..3e72261e2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus.inc @@ -0,0 +1,50 @@ +DESCRIPTION = "${PN} bindings" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" +AUTHOR = "Gustavo Sverzut Barbieri " +# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython, +# we need to build pyrex otherwise cython doesn't get called to build +# the extension modules. +DEPENDS = "python-cython-native python-pyrex-native python-numeric eina edbus python-dbus" +RDEPENDS_${PN} += "python-lang python-dbus" + +# necessary to let the call for python-config succeed +export BUILD_SYS +export HOST_SYS + +inherit e-base autotools pkgconfig distutils-base + +SRCNAME = "python-e_dbus" +SRCVER = "${PV}" + +SRC_URI = "\ + ${E_MIRROR}/BINDINGS/python/${SRCNAME}-${SRCVER}.tar.bz2 \ +" +S = "${WORKDIR}/${SRCNAME}-${SRCVER}" + + +do_configure_prepend() { + # prefix CYTHON_.*_INCLUDEDIR with path to STAGING_DIR_HOST also use $PKG_CONFIG instead of pkg-config directly + sed -i "s#=\`\$PKG_CONFIG --variable=includedir \"python-evas#=${STAGING_DIR_HOST}\`\$PKG_CONFIG --variable=includedir \"python-evas#g" ${S}/configure.ac +} + +do_install_append() { + if [ -e examples ]; then + for i in `find examples -name "*.edc"`; do + cd ${S}/`dirname $i` + echo "Generating .edj file for $i..." + edje_cc `basename $i` + echo "Removing sources in this directory..." + rm -f *.edc *.png *.ttf *.jpeg + done + cd ${S} + install -d ${D}${datadir}/${PN}/ + cp -R --no-dereference --preserve=mode,links -v examples ${D}${datadir}/${PN}/ + find ${D}${datadir}/${PN}/examples -name ".svn" | xargs rm -rf + fi +} + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" + +PACKAGES += "${PN}-examples" +FILES_${PN}-examples = "${datadir}/${PN}/examples" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb new file mode 100644 index 000000000..9e5ff0a02 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb @@ -0,0 +1,6 @@ +require ${BPN}.inc + +PR = "r1" + +SRC_URI[md5sum] = "40b479444bb06147429a276127981890" +SRC_URI[sha256sum] = "78e5ca334ee25185748660b4e612f984f4d3bced018f062278701429868f117b" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl.inc b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl.inc new file mode 100644 index 000000000..92a26eddb --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl.inc @@ -0,0 +1,75 @@ +DESCRIPTION = "${PN} bindings" + +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" +# there is also GPLv3.0 in COPYING;md5=d32239bcb673463ab874e80d47fae504 but no file seems to use that + +AUTHOR = "Gustavo Sverzut Barbieri " +# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython, +# we need to build pyrex otherwise cython doesn't get called to build +# the extension modules. +DEPENDS = "python-cython-native python-pyrex-native python-numeric python-dbus lua efl elementary" +RDEPENDS_${PN} += "python-lang" + +PROVIDES = "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas" + +# necessary to let the call for python-config succeed +export BUILD_SYS +export HOST_SYS + +inherit e-base distutils pkgconfig + +SRCVER = "${PV}" + +SRC_URI = "\ + ${E_RELEASES}/bindings/python/${SRCNAME}-${SRCVER}.tar.gz \ +" +S = "${WORKDIR}/${SRCNAME}-${SRCVER}" + +do_install_append() { + # drop all .pyo, pyc files + find ${D}${libdir}/${PYTHON_DIR}/site-packages -name \*.pyo -o -name \*.pyc | xargs rm -f +} + +PACKAGES += "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas python-ethumb ${PN}-examples" + +FILES_${PN} = " \ + ${libdir}/${PYTHON_DIR}/site-packages/python_efl*egg-info \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/eo.so \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/utils \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/__init__.py \ +" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" +FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/*/*.la" + +FILES_${PN}-examples = "${datadir}/${PN}/examples" + +FILES_python-ecore = " \ + ${libdir}/${PYTHON_DIR}/site-packages/ecore/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore*.so \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore \ +" +FILES_python-eldbus = " \ + ${libdir}/${PYTHON_DIR}/site-packages/e_dbus/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/dbus_mainloop.so \ +" +FILES_python-edje = " \ + ${libdir}/${PYTHON_DIR}/site-packages/edje/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/edje*.so \ +" +FILES_python-elementary = " \ + ${libdir}/${PYTHON_DIR}/site-packages/elementary/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/elementary/ \ +" +FILES_python-emotion = " \ + ${libdir}/${PYTHON_DIR}/site-packages/emotion/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/emotion.so \ +" +FILES_python-evas = " \ + ${libdir}/${PYTHON_DIR}/site-packages/evas/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/evas.so \ +" +FILES_python-ethumb = " \ + ${libdir}/${PYTHON_DIR}/site-packages/ethumb/ \ + ${libdir}/${PYTHON_DIR}/site-packages/efl/ethumb*so \ +" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb new file mode 100644 index 000000000..7abbc32d9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_1.15.0.bb @@ -0,0 +1,4 @@ +require ${BPN}.inc + +SRC_URI[md5sum] = "f7c5d557336ea9df69bcca09c420711a" +SRC_URI[sha256sum] = "11e607b465cb66dafe05c66e02d61e09335b370fe9fd2a74d88282b3ee597bcc" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_git.bb new file mode 100644 index 000000000..83a01ac69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-devtools/python/python-efl_git.bb @@ -0,0 +1,9 @@ +require ${BPN}.inc + +SRCREV = "71ed20ebf662a7b72e60913df94ce6933236bf09" +PV = "1.12.0+git${SRCPV}" +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "git://git.enlightenment.org/bindings/python/${BPN}.git;branch=python-efl-1.12" + +S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu/configure.patch new file mode 100644 index 000000000..87c85de9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu/configure.patch @@ -0,0 +1,13 @@ +Index: cpu/configure.ac +=================================================================== +--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 ++++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu_svn.bb new file mode 100644 index 000000000..14eb08f71 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/cpu_svn.bb @@ -0,0 +1,10 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" + +PV = "0.0.1+svnr${SRCREV}" +PR = "${INC_PR}.0" + +require e-module.inc + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/diskio_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/diskio_svn.bb new file mode 100644 index 000000000..a26186e44 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/diskio_svn.bb @@ -0,0 +1,10 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=68be76d8126face2fbbecdf1bcbe2b10" + +PV = "0.0.1+svnr${SRCPV}" +PR = "${INC_PR}.0" + +PNBLACKLIST[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." + +require e-module.inc diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-module.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-module.inc new file mode 100644 index 000000000..092357572 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-module.inc @@ -0,0 +1,19 @@ +DESCRIPTION = "E17 ${PN} module" +SECTION = "x11/multimedia" +DEPENDS = "e-wm" + +SRCREV = "${EFL_SRCREV}" +INC_PR = "r0" + +SRCNAME = "E-MODULES-EXTRA/${PN}" + +inherit e gettext +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +FILES_${PN} += "${libdir}/enlightenment/modules/${PN}" +FILES_${PN}-dbg += "${libdir}/enlightenment/modules/${PN}/*/.debug" +FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/${PN}/*/*.a" + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch new file mode 100644 index 000000000..f92a772fe --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch @@ -0,0 +1,204 @@ +From 37223289b3d85ea8876e7ba7c9ff97ec428073ba Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 22 Feb 2014 14:36:38 +0100 +Subject: [PATCH] dbus-stuff: Convert to eldbus + +Signed-off-by: Martin Jansa +--- + configure.ac | 2 +- + src/Makefile.am | 2 +- + src/dbus-stuff.c | 95 ++++++++++++++++++++++++++++++++------------------------ + src/dbus-stuff.h | 13 ++------ + src/main.c | 2 +- + 5 files changed, 61 insertions(+), 53 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b3e4d12..4ace32a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -15,7 +15,7 @@ AC_HEADER_STDC + + AM_PROG_LIBTOOL + +-PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 edbus sqlite3]) ++PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 eldbus sqlite3]) + + AC_OUTPUT([ + Makefile +diff --git a/src/Makefile.am b/src/Makefile.am +index 2143dc9..31d5253 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -8,7 +8,7 @@ AM_CPPFLAGS = \ + $(TASKS_CFLAGS) + + AM_CFLAGS =\ +- $(EDBUS_CFLAGS) \ ++ $(ELDBUS_CFLAGS) \ + -Wall\ + -g + +diff --git a/src/dbus-stuff.c b/src/dbus-stuff.c +index 50809bc..9f02ef3 100644 +--- a/src/dbus-stuff.c ++++ b/src/dbus-stuff.c +@@ -1,8 +1,7 @@ + /*************************************************************************** + * dbus-stuff.c + * +- * Copyright 2009 cchandel +- * ++ * Copyright 2009 cchandel + ****************************************************************************/ + + /* +@@ -21,51 +20,67 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA + */ + #include "dbus-stuff.h" +-#include +-#include +-#include ++#include "Eldbus.h" + +-void occupy_cpu(void) ++void on_usage_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) ++{ ++ const char *errname, *errmsg; ++ if (eldbus_message_error_get(msg, &errname, &errmsg)) ++ fprintf(stderr, "Error: %s %s\n", errname, errmsg); ++} ++ ++int ousaged_resource(const char *resource, int used) + { +- e_dbus_init(); +- conn = e_dbus_bus_get(DBUS_BUS_SYSTEM); +- +- DBusMessage *msg; +- msg = dbus_message_new_method_call( +- "org.freesmartphone.ousaged", +- "/org/freesmartphone/Usage", +- "org.freesmartphone.Usage", +- "RequestResource" +- ); +- +- const char *resource = "CPU"; +- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID); ++ eldbus_init(); ++ const char *REQUEST = "RequestResource"; ++ const char *RELEASE = "ReleaseResource"; ++ const int PREQUEST = 1; + +- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL); +- dbus_message_unref(msg); +-} ++ Eldbus_Connection *conn; ++ Eldbus_Object *obj; ++ Eldbus_Proxy *usage; ++ Eldbus_Pending *pending; ++ conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); ++ if (!conn) ++ { ++ fprintf(stderr, "Error: could not get system bus\n"); ++ return EXIT_FAILURE; ++ } + +-void release_cpu(void) +-{ +- DBusMessage *msg; +- msg = dbus_message_new_method_call( +- "org.freesmartphone.ousaged", +- "/org/freesmartphone/Usage", +- "org.freesmartphone.Usage", +- "ReleaseResource" +- ); +- +- const char *resource = "CPU"; +- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID); ++ obj = eldbus_object_get(conn, "org.freesmartphone.ousaged", "/org/freesmartphone/Usage"); ++ if (!obj) ++ { ++ fprintf(stderr, "Error: could not get object\n"); ++ return EXIT_FAILURE; ++ } + +- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL); +- dbus_message_unref(msg); ++ usage = eldbus_proxy_get(obj, "org.freesmartphone.Usage"); ++ if (!usage) ++ { ++ fprintf(stderr, "Error: could not get proxy\n"); ++ return EXIT_FAILURE; ++ } ++ ++ pending = eldbus_proxy_call(usage, used == PREQUEST ? REQUEST : RELEASE, on_usage_cb, NULL, -1, "ss", resource); ++ if (!pending) ++ { ++ fprintf(stderr, "Error: could not call\n"); ++ return EXIT_FAILURE; ++ } ++ eldbus_proxy_unref(usage); ++ eldbus_object_unref(obj); ++ eldbus_connection_unref(conn); ++ ++ eldbus_shutdown(); ++ return EXIT_SUCCESS; + } + +-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error) ++int request_cpu(void) + { +- if (dbus_error_is_set(error)) { +- printf("Error: %s - %s\n", error->name, error->message); +- } ++ return ousaged_resource("CPU", 1); + } + ++int release_cpu(void) ++{ ++ return ousaged_resource("CPU" , 0); ++} +diff --git a/src/dbus-stuff.h b/src/dbus-stuff.h +index 83d4778..a3c72cb 100644 +--- a/src/dbus-stuff.h ++++ b/src/dbus-stuff.h +@@ -2,8 +2,7 @@ + * dbus.h + * + * Fri Mar 6 12:32:57 2009 +- * Copyright 2009 nidhin +- * ++ * Copyright 2009 nidhin + ****************************************************************************/ + + /* +@@ -22,11 +21,5 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA + */ + +-#include +-#include +- +-void occupy_cpu(void); +-void release_cpu(void); +-void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error); +- +-E_DBus_Connection *conn; ++int request_cpu(void); ++int release_cpu(void); +diff --git a/src/main.c b/src/main.c +index 92d21de..4e4bbe2 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -76,7 +76,7 @@ elm_main(int argc, char **argv) + //restore state + restore_state(); + +- occupy_cpu(); ++ request_cpu(); + + elm_run(); + //clean up stuff +-- +1.8.5.3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks_git.bb new file mode 100644 index 000000000..606515783 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-tasks_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "e-tasks is a todo program for Openmoko phones" +HOMEPAGE = "http://code.google.com/p/e-tasks/" +AUTHOR = "cchandel" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" +SECTION = "e/apps" +DEPENDS = "elementary eina eldbus sqlite3" + +inherit autotools + +SRCREV = "890f5ee37d1a5fd1ceb2495950d15151d4cf756b" +PV = "0.0.2+gitr${SRCPV}" + +SRC_URI = "git://github.com/shr-project/e-tasks.git" +SRC_URI += "file://0001-dbus-stuff-Convert-to-eldbus.patch" + +S = "${WORKDIR}/git" + +do_install_append() { + install -d "${D}/${datadir}/pixmaps" + install -m 0644 "${S}/resources/e-tasks.png" "${D}/${datadir}/pixmaps" + install -d "${D}/${datadir}/applications" + install -m 0644 "${S}/resources/e-tasks.desktop" "${D}/${datadir}/applications" + install -d "${D}/${datadir}/e-tasks" + for ico in "${S}/resources/"*.png; do + if [ "$(basename $ico)" != "e-tasks.png" ]; then + install -m 0644 $ico "${D}/${datadir}/e-tasks" + fi + done +} + +FILES_${PN} += "/usr/share/e-tasks/* /usr/share/applications/* /usr/share/pixmaps/*" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb new file mode 100644 index 000000000..ae1b8a6c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "b-and-w theme was default E17 theme before alpha3 and some people still prefers it." +SECTION = "e/utils" +DEPENDS = "edje-native" +RDEPENDS_${PN} = "e-wm" +LICENSE = "MIT & BSD" +# upstream was asked to include license infor in THEME dir +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit allarch + +SRCREV = "${EFL_SRCREV}" +PV = "0.0+svnr${SRCPV}" + +inherit e-base + +SRCNAME = "b_and_w" +SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http" +S = "${WORKDIR}/${SRCNAME}/e" + +do_compile() { + # unfortunately hardcoded edje_cc in Makefile + sed -i "s#\tedje_cc#\t${STAGING_BINDIR_NATIVE}/edje_cc#g" Makefile + make +} + +do_install() { + install -d ${D}${datadir}/enlightenment/data/themes/ + install -m 0644 ${S}/b_and_w.edj ${D}${datadir}/enlightenment/data/themes/ +} + +FILES_${PN} = "${datadir}/enlightenment/data/themes/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE new file mode 100644 index 000000000..61bb2f603 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE @@ -0,0 +1,25 @@ +Copyright notice for Enlightenment: + +Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb new file mode 100644 index 000000000..965e4e995 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "efenniht illume theme - Efenniht was devised to be clean \ +and neutral. Its name (which means equinox) comes from the chromatic duality \ +that was decided at the very beginning, with a dark theme (black and orange) \ +and a bright one (white and blue) to be developed so that more people feel \ +comfortable using it. Efenniht uses few animations, discrete contrasts between \ +shades of gray and fine lines (colored) that outline the selected elements." +SECTION = "e/utils" +HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht" +DEPENDS = "edje-native" +RDEPENDS_${PN} = "e-wm" +RSUGGESTS_${PN} = "elementary-theme-efenniht" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" + +SRCREV = "${EFL_SRCREV}" +PV = "0.0+svnr${SRCPV}" + +inherit e-base allarch + +SRCNAME = "efenniht" +SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \ + file://LICENSE \ +" +S = "${WORKDIR}/${SRCNAME}" + +do_compile() { + ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images ${S}/efenniht.edc -o ${S}/efenniht.edj +} + +do_install() { + install -d ${D}${datadir}/enlightenment/data/themes/ + install -m 0644 ${S}/efenniht.edj ${D}${datadir}/enlightenment/data/themes/ +} + +FILES_${PN} = "${datadir}/enlightenment/data/themes/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm.inc new file mode 100644 index 000000000..444ec8959 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm.inc @@ -0,0 +1,202 @@ +DESCRIPTION = "The Enlightenment Window Manager Version 17" +DEPENDS = "eet evas eina ecore edje efreet edbus eeze eio elementary libxcb xcb-util-keysyms" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d" +SRCNAME = "e" + +inherit e update-alternatives gettext pkgconfig +S = "${WORKDIR}/${SRCNAME}" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" +PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam" +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" + + +EXTRA_OECONF = "\ + --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ + --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-simple-x11 \ +" + +do_configure_prepend() { + autopoint || true + sed '/^ *EFL_PKG_CHECK_VAR/ s/systemduserunitdir/systemdsystemunitdir/g' -i ${S}/configure.ac +} + +do_install_append() { + # customising - should rather make this simple upstream + install -m 755 ${WORKDIR}/enlightenment_start.oe ${D}/${bindir} + + # security reasons, e-wm checks that in runtime + # xinit[418]: ERROR: CONFIGURATION FILE HAS BAD PERMISSIONS + chmod 600 ${D}/${sysconfdir}/enlightenment/sysactions.conf + + install -d ${D}/${sysconfdir}/xdg/menus + install -m 644 ${WORKDIR}/applications.menu ${D}/${sysconfdir}/xdg/menus/ + for I in `find ${D}/${libdir}/enlightenment -name "*.a" -print`; do rm -f $I; done + for I in `find ${D}/${libdir}/enlightenment -name "*.la" -print`; do rm -f $I; done + + # work around for issue caused in r78978, more infor in: + # http://sourceforge.net/mailarchive/forum.php?thread_name=20121118194904.GA3438%40jama.jama.net&forum_name=enlightenment-devel + mv ${D}/${libdir}/enlightenment/modules/policies ${D}/${libdir}/enlightenment/modules/illume2/ \ + || echo "illume2 policies are in correct place now" + mv ${D}/${libdir}/enlightenment/modules/keyboards ${D}/${libdir}/enlightenment/modules/illume2/ \ + || echo "illume2 keyboards are in correct place now" +} + +RDEPENDS_${PN} += "\ + shared-mime-info \ + mime-support \ + setxkbmap \ + edje-utils \ + ${PN}-utils \ + dbus-x11 \ +" + +# Uclibc build don't have 'glibc-utils' +RDEPENDS_${PN}_append_libc-glibc = " glibc-utils " + +# The systray module used to be external, but is part of e-wm now +RREPLACES_${PN} = "systray" + +RREPLACES_${PN}-config-mobile = "${PN}-config-illume2" +RCONFLICTS_${PN}-config-mobile = "${PN}-config-illume2" +RPROVIDES_${PN}-config-mobile = "${PN}-config-illume2" + +PACKAGES =+ "\ + ${PN}-config-default \ + ${PN}-config-mobile \ + ${PN}-config-minimalist \ + ${PN}-config-netbook \ + ${PN}-config-scaleable \ + ${PN}-config-standard \ + ${PN}-config-tiling \ + ${PN}-theme-default \ + ${PN}-background-dark-gradient \ + ${PN}-background-light-gradient \ + ${PN}-backgrounds \ + ${PN}-images \ + ${PN}-icons \ + ${PN}-other \ + ${PN}-input-methods \ + ${PN}-sysactions \ + ${PN}-utils \ + ${PN}-menu \ + efm-desktop-icon \ + illume-keyboard-default-alpha \ + illume-keyboard-default-numeric \ + illume-keyboard-default-terminal \ +" + +ESYSACTIONS ?= "${PN}-sysactions" + +RRECOMMENDS_${PN} = "\ + ${PN}-config-default \ + ${PN}-images \ + ${PN}-icons \ + ${PN}-other \ + ${PN}-input-methods \ + ${ESYSACTIONS} \ + efreet \ + evas-generic-loader-svg \ +" + +FILES_${PN} = "\ + ${bindir}/* \ + ${libdir}/enlightenment/utils/* \ + ${libdir}/enlightenment/modules/*/*.* \ + ${libdir}/enlightenment/modules/*/*/* \ + ${libdir}/enlightenment/modules/*/*/.order \ + ${libdir}/enlightenment/modules/keyboards/ignore_built_in_keyboards \ + ${libdir}/enlightenment/*plugins/*/*/* \ + ${libdir}/enlightenment/preload/e_precache.so \ + ${datadir}/enlightenment/data/icons \ + ${datadir}/enlightenment/data/favorites \ + ${datadir}/enlightenment/data/input_methods \ + ${datadir}/enlightenment/data/config/profile.cfg \ + ${datadir}/enlightenment/AUTHORS \ + ${datadir}/enlightenment/COPYING \ + ${datadir}/xsessions/enlightenment.desktop \ + ${sysconfdir}/xdg \ + ${systemd_unitdir} \ +" + +FILES_${PN}-config-default = "${datadir}/enlightenment/data/config/default" +FILES_${PN}-config-mobile = "${datadir}/enlightenment/data/config/mobile" +FILES_${PN}-config-minimalist = "${datadir}/enlightenment/data/config/minimalist" +FILES_${PN}-config-netbook = "${datadir}/enlightenment/data/config/netbook" +FILES_${PN}-config-scaleable = "${datadir}/enlightenment/data/config/scaleable" +FILES_${PN}-config-standard = "${datadir}/enlightenment/data/config/standard" +FILES_${PN}-config-tiling = "${datadir}/enlightenment/data/config/tiling" +FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj" +FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj" +FILES_${PN}-background-dark-gradient = "${datadir}/enlightenment/data/backgrounds/Dark_Gradient.edj" +FILES_${PN}-background-light-gradient = "${datadir}/enlightenment/data/backgrounds/Light_Gradient.edj" +FILES_${PN}-backgrounds = "${datadir}/enlightenment/data/backgrounds/*.edj" +FILES_${PN}-images = "${datadir}/enlightenment/data/images ${datadir}/enlightenment/data/flags" +FILES_${PN}-icons = "${datadir}/enlightenment/data/icons" +FILES_${PN}-other = "${datadir}/enlightenment/data/other" +FILES_${PN}-input-methods = "${datadir}/enlightenment/data/input_methods" +FILES_${PN}-sysactions = "${sysconfdir}/enlightenment/sysactions.conf" +FILES_${PN}-utils = "${libdir}/enlightenment/utils/*" +FILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu" + +FILES_efm-desktop-icon = "\ + ${datadir}/applications/efm.desktop \ + ${datadir}/applications/enlightenment_filemanager.desktop \ + ${datadir}/icons/e-module-fileman.png \ +" + +KEYBOARDS_DIR="${libdir}/enlightenment/modules/illume-keyboard/keyboards" +FILES_illume-keyboard-default-alpha = "\ + ${KEYBOARDS_DIR}/Default.kbd \ + ${KEYBOARDS_DIR}/alpha.png \ +" +FILES_illume-keyboard-default-numeric = "\ + ${KEYBOARDS_DIR}/Numbers.kbd \ + ${KEYBOARDS_DIR}/numeric.png \ +" +FILES_illume-keyboard-default-terminal = "\ + ${KEYBOARDS_DIR}/Terminal.kbd \ + ${KEYBOARDS_DIR}/qwerty.png \ +" + +RRECOMMENDS_${PN}-config-default = "${PN}-theme-default" +RRECOMMENDS_${PN}-config-mobile = "\ + illume-keyboard-default-alpha \ + illume-keyboard-default-numeric \ + illume-keyboard-default-terminal \ +" + +RRECOMMENDS_${PN}-config-minimalist = "\ + ${PN}-background-light-gradient \ + ${PN}-theme-default \ +" +RRECOMMENDS_${PN}-config-netbook = "\ + ${PN}-background-dark-gradient \ + ${PN}-theme-default \ +" +RRECOMMENDS_${PN}-config-scaleable = "${PN}-theme-default" +RRECOMMENDS_${PN}-config-standard = "${PN}-theme-default" + +FILES_${PN}-dbg += "\ + ${libdir}/enlightenment/modules/*/*/.debug/ \ + ${libdir}/enlightenment/modules/policies/.debug/ \ + ${libdir}/enlightenment/preload/.debug/ \ + ${libdir}/enlightenment/utils/.debug/ \ + ${libdir}/enlightenment/*plugins/*/*/.debug \ +" + +FILES_${PN}-doc += "\ + ${datadir}/enlightenment/doc \ +" + +CONFFILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu" +CONFFILES_${PN}-sysactions = "/etc/enlightenment/sysactions.conf" + +ALTERNATIVE_${PN} = "x-window-manager" +ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/enlightenment_start.oe" +ALTERNATIVE_PRIORITY[x-window-manager] = "16" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch new file mode 100644 index 000000000..e718ef3db --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch @@ -0,0 +1,28 @@ +From 0aef43c9cd1656413cf2eb3dc7c19b355ee7ed52 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Sun, 1 Jun 2014 14:45:49 +0200 +Subject: [PATCH] Fix incorrect message type + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani +--- + src/bin/e_desk.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c +index b156e19..77d7520 100644 +--- a/src/bin/e_desk.c ++++ b/src/bin/e_desk.c +@@ -221,7 +221,7 @@ e_desk_show(E_Desk *desk) + E_Event_Desk_Show *ev; + E_Event_Desk_Before_Show *eev; + E_Event_Desk_After_Show *eeev; +- Edje_Message_Float_Set *msg; ++ Edje_Message_Int_Set *msg; + Eina_List *l; + E_Shelf *es; + int was_zone = 0, x, y, dx = 0, dy = 0; +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch new file mode 100644 index 000000000..c7a574c90 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch @@ -0,0 +1,29 @@ +From 19e59b6e8148388e7a17f10d4390176a50e2917f Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 25 Aug 2014 16:06:03 +0200 +Subject: [PATCH] configure.ac: add foreign + +* fixes: + | configure.ac:312: error: required file './ABOUT-NLS' not found + +Signed-off-by: Martin Jansa +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 51ad0ba..cd77739 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -34,7 +34,7 @@ AH_BOTTOM([ + #endif /* EFL_CONFIG_H__ */ + ]) + +-AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability]) ++AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability foreign]) + AM_SILENT_RULES([yes]) + + AC_USE_SYSTEM_EXTENSIONS +-- +2.3.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/applications.menu b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/applications.menu new file mode 100644 index 000000000..ed9b90662 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/applications.menu @@ -0,0 +1,105 @@ + + + + Applications + + + + /usr/share/applications + + + + Office + Office.directory + + + Office + + + + + + Multimedia + Multimedia.directory + + + AudioVideo + + + + + + Graphics + Graphics.directory + + + Graphics + + + + + + Games + Games.directory + + + + Game + Games + + + + + + + Internet + Internet.directory + + + + Internet + Network + + + + + + + Settings + Settings.directory + + + + SystemSettings + Settings + + + System + + + + + + + Accessories + Accessories.directory + + + + Applications + Utility + + + System + Office + Internet + AudioVideo + Graphics + Games + + + + + + + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe new file mode 100644 index 000000000..ff8617275 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe @@ -0,0 +1,9 @@ +#!/bin/sh + +E_PROFILE="" +if [ -r /etc/enlightenment/default_profile ]; then + . /etc/enlightenment/default_profile +fi + +renice -2 -p $$ +exec enlightenment_start $E_PROFILE diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb new file mode 100644 index 000000000..6b4c9fc54 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb @@ -0,0 +1,15 @@ +require ${BPN}.inc + +SRCNAME = "enlightenment" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +SRC_URI = "\ + ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ + file://enlightenment_start.oe \ + file://applications.menu \ + file://0001-Fix-incorrect-message-type.patch \ +" + +SRC_URI[md5sum] = "79c9f524e1d0510061c62c4b038a8ece" +SRC_URI[sha256sum] = "14c9bde4334d2f8b0776c6113d02b923ab159eea1cbf7013489e4f3bf37a51bb" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb new file mode 100644 index 000000000..86ce03d81 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_0.19.10.bb @@ -0,0 +1,19 @@ +require ${BPN}.inc + +SRCNAME = "enlightenment" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +# couple of modules needed for illume2 (mobile) profile were removed in +# http://git.enlightenment.org/core/enlightenment.git/commit/src/modules/Makefile.mk?id=1be76d599ca27f820b58b8186c5f73d9844c67ca +# and replacements aren't included yet, if you want to use e-wm on device with small screen, better stay with 0.18 release +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "\ + ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ + file://enlightenment_start.oe \ + file://applications.menu \ +" + +SRC_URI[md5sum] = "9063617760329445ada8635270a4e627" +SRC_URI[sha256sum] = "484d305bcf403303b18c46a3a498445b93689cd325010ae8d0601551926469d8" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_git.bb new file mode 100644 index 000000000..9eb839bea --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/e-wm_git.bb @@ -0,0 +1,14 @@ +require ${BPN}.inc + +PV = "0.19.4+git${SRCPV}" +DEFAULT_PREFERENCE = "-2" + +SRC_URI = " \ + git://git.enlightenment.org/core/enlightenment.git;branch=enlightenment-0.19 \ + file://0001-configure.ac-add-foreign.patch \ + file://enlightenment_start.oe \ + file://applications.menu \ +" +S = "${WORKDIR}/git" + +SRCREV = "4545d4a70031e0b2565b8d83d5f756bff1a584d0" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/edje-viewer_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/edje-viewer_svn.bb new file mode 100644 index 000000000..2b927a0dd --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/edje-viewer_svn.bb @@ -0,0 +1,16 @@ +SUMMARY = "Edje_Viewer is just that" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=e01359041001e8bf24c09acca556e792" + +DEPENDS = "elementary" +PV = "0.0.0+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit e + +SRCNAME = "edje_viewer" +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +FILES_${PN} += "${datadir}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elbow_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elbow_git.bb new file mode 100644 index 000000000..06ed2c959 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elbow_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "EFL based browser" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" +DEPENDS = "evas ecore edje eina elementary webkit-efl sqlite3" + +PV = "0.0.1+gitr${SRCPV}" +SRCREV = "b41fd0bc9514ff61bb2a50d957efe4155fa3e6a8" + +# webkit-efl isn't available for < armv7a +COMPATIBLE_MACHINE = "(-)" +COMPATIBLE_MACHINE_x86 = "(.*)" +COMPATIBLE_MACHINE_x86-64 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" + +inherit e gettext cmake + +EXTRA_OECMAKE = "-DDATA_INSTALL_DIR=${datadir}" + +SRC_URI = " \ + git://github.com/bunhere/elbow.git;protocol=https \ +" +S = "${WORKDIR}/git" + +FILES_${PN} += "${datadir}/themes" + +PNBLACKLIST[elbow] ?= "Depends on blacklisted webkit-efl" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elfe_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elfe_git.bb new file mode 100644 index 000000000..fcb97a972 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elfe_git.bb @@ -0,0 +1,15 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" +PV = "0.0.1+gitr${SRCPV}" +PE = "1" + +require e-module.inc + +SRC_URI = " \ + git://git.enlightenment.org/enlightenment/modules/${BPN}.git \ +" +S = "${WORKDIR}/git" + +SRCREV = "1ec0e7713c3ca901014811ff78277d9e2aaac981" + +DEPENDS += "elementary" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica/configure.patch new file mode 100644 index 000000000..79a981b47 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica/configure.patch @@ -0,0 +1,13 @@ +Index: elmdentica/configure.ac +=================================================================== +--- elmdentica.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000 ++++ elmdentica/configure.ac 2014-07-17 21:51:34.960574935 +0000 +@@ -3,7 +3,7 @@ + AM_CONFIG_HEADER(config.h) + AC_CONFIG_MACRO_DIR([m4]) + +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AC_PROG_CC + AC_GNU_SOURCE diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica_svn.bb new file mode 100644 index 000000000..56a74c5a7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/elmdentica_svn.bb @@ -0,0 +1,23 @@ +SUMMARY = "A indenti.ca client for E" +DEPENDS = "glib-2.0 gconf curl elementary sqlite3-native azy" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SECTION = "e/apps" +HOMEPAGE = "http://elmdentica.googlecode.com" +AUTHOR = "seabra" + +inherit e gettext +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +PV = "0.9.9+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +RDEPENDS_${PN} = "${PN}-themes" + +SRC_URI += "file://configure.patch" + +PNBLACKLIST[elmdentica] ?= "OLD and depends on broken azy" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/emprint_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/emprint_svn.bb new file mode 100644 index 000000000..e4c9816fd --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/emprint_svn.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Emprint is a utility for taking screenshots of the entire screen, a specific window, or a specific region." +LICENSE = "MIT & BSD" +DEPENDS = "imlib2 virtual/libx11 ecore evas edje eina" +PV = "0.0.1+svnr${SRCPV}" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" +SRCREV = "${EFL_SRCREV}" + +inherit e +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +FILES_${PN}-dbg += "${libdir}/${PN}/modules/.debug" + +PNBLACKLIST[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/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch new file mode 100644 index 000000000..09624503b --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch @@ -0,0 +1,133 @@ +From 751505501e0db31cf766ec0ae95a6968b4d1eb93 Mon Sep 17 00:00:00 2001 +From: Alban Browaeys +Date: Wed, 5 Sep 2012 02:58:26 +0000 +Subject: [PATCH] always use position as percent and define a 1 seconds + tolerance. + +Fix "reverb" effect: ie loop between setting the slider to match +the position and handling slider to position (seek). +--- + data/themes/default.edc | 8 +++----- + src/bin/win.c | 28 ++++++++++++++++++++++------ + 2 files changed, 25 insertions(+), 11 deletions(-) + +diff --git a/data/themes/default.edc b/data/themes/default.edc +index ebf8ba4..7a906b1 100644 +--- a/data/themes/default.edc ++++ b/data/themes/default.edc +@@ -186,7 +186,6 @@ collections { + group { + name: "nowplaying"; + script { +- public cur_length; + public mute; + + public get_time_str(Float:time, time_str[6]) +@@ -201,16 +200,15 @@ collections { + new Float:position = getfarg(2); + new Float:length = getfarg(3); + if (length > 0) +- external_param_set_float(PART:"progress.slider", "value", position / length * 100); ++ external_param_set_float(PART:"progress.slider", "value", position * 100); + else + external_param_set_float(PART:"progress.slider", "value", 0); + + new time_str[6]; +- get_time_str(position, time_str); ++ get_time_str(position * length, time_str); + set_text(PART:"ejy.text.current_time", time_str); + get_time_str(length, time_str); + set_text(PART:"ejy.text.total_time", time_str); +- set_float(cur_length, length); + } else if (type == MSG_INT && id == MSG_SHUFFLE) { + external_param_set_bool(PART:"buttons.shuffle", "state", getarg(2)); + } else if (type == MSG_INT && id == MSG_LOOP) { +@@ -689,7 +687,7 @@ collections { + source: "progress.slider"; + signal: "changed"; + script { +- send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") * get_float(cur_length) / 100)); ++ send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") / 100)); + } + } + program { +diff --git a/src/bin/win.c b/src/bin/win.c +index 2f65953..428e268 100644 +--- a/src/bin/win.c ++++ b/src/bin/win.c +@@ -194,8 +194,8 @@ _win_play_eval(Win *w) + { + Edje_Message_Float_Set *mf; + +- w->play.position = emotion_object_position_get(w->emotion); + w->play.length = emotion_object_play_length_get(w->emotion); ++ w->play.position = emotion_object_position_get(w->emotion) / w->play.length; + + if ((w->song) && (w->song->length != (int)w->play.length)) + db_song_length_set(w->db, w->song, w->play.length); +@@ -542,8 +542,14 @@ _win_edje_msg(void *data, Evas_Object *o __UNUSED__, Edje_Message_Type type, int + else + { + Edje_Message_Float *m = msg; ++ ++ if ((((m->val - w->play.position) * w->play.length) < 1.0) ++ && (((w->play.position - m->val) * w->play.length) < 1.0)) ++ return; ++ + w->play.position = m->val; +- emotion_object_position_set(w->emotion, w->play.position); ++ emotion_object_position_set(w->emotion, w->play.position ++ * w->play.length); + ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); + } + break; +@@ -617,16 +623,21 @@ enjoy_control_seek(uint64_t position) + { + Win *w = &_win; + double seek_to; ++ double new_pos = w->play.length / ((double)position / 1e6); + + if (!w->db) return; +- seek_to = w->play.position + w->play.length / ((double)position / 1e6); ++ ++ if ((((new_pos - w->play.position) * w->play.length) < 1.0) ++ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return; ++ ++ seek_to = w->play.position + new_pos; + if (seek_to <= 0.0) + seek_to = 0.0; + else if (seek_to >= 1.0) + seek_to = 1.0; + + w->play.position = seek_to; +- emotion_object_position_set(w->emotion, w->play.position); ++ emotion_object_position_set(w->emotion, w->play.position * w->play.length); + ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); + } + +@@ -692,15 +703,20 @@ EAPI void + enjoy_position_set(int32_t position) + { + Win *w = &_win; ++ double new_pos = w->play.length / ((double)position / 1e6); + + if (!w->db) return; +- w->play.position = w->play.length / ((double)position / 1e6); ++ ++ if ((((new_pos - w->play.position) * w->play.length) < 1.0) ++ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return; ++ ++ w->play.position = new_pos; + if (w->play.position < 0.0) + w->play.position = 0.0; + else if (w->play.position > 1.0) + w->play.position = 1.0; + +- emotion_object_position_set(w->emotion, w->play.position); ++ emotion_object_position_set(w->emotion, w->play.position * w->play.length); + ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); + } + +-- +1.8.5.2 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/configure.patch new file mode 100644 index 000000000..6e0ed7461 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy/configure.patch @@ -0,0 +1,13 @@ +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2014-07-17 21:48:51.284570474 +0000 ++++ git/configure.ac 2014-07-17 21:53:39.104578318 +0000 +@@ -26,7 +26,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6 dist-bzip2) ++AM_INIT_AUTOMAKE([dist-bzip2 foreign]) + AC_CONFIG_HEADERS(config.h) + _XTERM_COLORS + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy_git.bb new file mode 100644 index 000000000..297cbd523 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/enjoy_git.bb @@ -0,0 +1,48 @@ +SUMMARY = "Enjoy music player" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" +DEPENDS = "evas ecore edje elementary emotion lightmediascanner eldbus gst-plugins-good" + +SRCREV = "aa8fec69e885eec048a849c2b34059ec58404e02" +PV = "0.1.0+gitr${SRCPV}" + +#1st needed for all formats +#2nd needed for mp3 playback +#3d needed for ogg playback +#4th needed for flac playback +#5th needed binary to create db +RDEPENDS_${PN} += "\ + gst-plugins-base-typefindfunctions gst-plugins-base-playbin gst-plugins-base-volume gst-plugins-base-decodebin2 gst-plugins-good-autodetect \ + gst-plugins-base-ogg gst-plugins-base-ivorbisdec \ + gst-plugins-good-flac \ + lightmediascanner-test \ +" + +inherit e gettext +SRC_URI = " \ + git://git.enlightenment.org/apps/enjoy.git \ + file://0001-always-use-position-as-percent-and-define-a-1-second.patch \ + file://configure.patch \ +" +S = "${WORKDIR}/git" + +FILES_${PN} += "${datadir}/icons/" + +EXTRA_OECONF = "\ + --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ +" + +PACKAGECONFIG[mad] = ",,gst-plugins-ugly,gst-plugins-ugly-mad" +PACKAGECONFIG[id3demux] = ",,,gst-plugins-good-id3demux" + +do_configure_prepend() { + autopoint || touch config.rpath +} + +pkg_postinst_${PN} () { + echo "enjoy: SCAN and LIBRARY MANAGER are not implemeted yet!" + echo "enjoy: Meanwhile please run:" + echo "enjoy: test-lms -m mono -p id3 -i 5000 -s /path/to/your/music/dir /home/root/.config/enjoy/media.db" + echo "enjoy:" + echo "enjoy: Use test-lms -P to see available formats that can be scanned" +} diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto/configure.patch new file mode 100644 index 000000000..59466f8af --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto/configure.patch @@ -0,0 +1,13 @@ +Index: ephoto/configure.ac +=================================================================== +--- ephoto.orig/configure.ac 2014-07-17 21:48:51.028570467 +0000 ++++ ephoto/configure.ac 2014-07-17 21:52:56.120577146 +0000 +@@ -27,7 +27,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6 dist-bzip2) ++AM_INIT_AUTOMAKE([dist-bzip2 foreign]) + AM_CONFIG_HEADER(src/bin/config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto_svn.bb new file mode 100644 index 000000000..5cecda588 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/ephoto_svn.bb @@ -0,0 +1,19 @@ +LICENSE = "MIT & GPL-3.0" +PV = "0.1.0+svnr${SRCREV}" +PR = "${INC_PR}.0" + +LIC_FILES_CHKSUM = "file://COPYING;md5=fdffcddb366d0cc78e0e46c4ea70c8d9 \ + file://COPYING.icons;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +require e-module.inc + +inherit gettext + +DEPENDS += "elementary ethumb ecore eio" + +SRCNAME = "${PN}" + +# autotools-brokensep +B = "${S}" + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client/configure.patch new file mode 100644 index 000000000..d4ff801ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client/configure.patch @@ -0,0 +1,28 @@ +Index: exalt-client/configure.ac +=================================================================== +--- exalt-client.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000 ++++ exalt-client/configure.ac 2014-07-17 21:47:56.880568991 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.8) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + + AC_PROG_CC +@@ -29,7 +29,6 @@ + + m4_ifdef([AM_GNU_GETTEXT], [ + AM_GNU_GETTEXT([external]) +-po_makefile_in=po/Makefile.in + AM_CONDITIONAL([HAVE_PO], [true]) + ],[ + AM_CONDITIONAL([HAVE_PO], [false]) +@@ -101,6 +100,5 @@ + src/Makefile + module.desktop + e_modules-exalt-client.spec +-$po_makefile_in + ], [ + ]) diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client_svn.bb new file mode 100644 index 000000000..f70860154 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt-client_svn.bb @@ -0,0 +1,25 @@ +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +PV = "0.0.1+svnr${SRCPV}" + +require e-module.inc + +DEPENDS += "elementary exalt edje-native" + +CFLAGS += " -I${STAGING_INCDIR}/exalt -I${STAGING_INCDIR}/exalt_dbus" + +do_configure_prepend() { + sed -i -e /po/d ${S}/configure.ac + sed -i -e s:\ po::g ${S}/Makefile.am +} + +FILES_${PN} += "${libdir}/enlightenment/modules/*/*.desktop \ + ${libdir}/enlightenment/modules/*/*.edj \ + ${libdir}/enlightenment/modules/*/*/*.so" + +FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/*/*/*.a" +FILES_${PN}-dev += "${libdir}/enlightenment/modules/*/*/*.la" +FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug" + +SRC_URI += "file://configure.patch" \ No newline at end of file diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt_svn.bb new file mode 100644 index 000000000..1f1c8505d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exalt_svn.bb @@ -0,0 +1,34 @@ +SUMMARY = "Exalt is a network manager for the windows manager Enlightenment DR17" +HOMEPAGE = "http://watchwolf.fr/wiki/doku.php?id=exalt" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" + +DEPENDS = "elementary vpnc wpa-supplicant ecore eet edbus" +RDEPENDS_${PN} = "vpnc wpa-supplicant" + +PV = "0.9+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit e +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = " \ +--with-wpa_supplicant=${sbindir}/wpa_supplicant \ +--with-vpnc=${sbindir}/vpnc \ +--with-vpnc-disconnect=${sbindir}/vpnc-disconnect \ +" + +do_install_append() { + # install dbus config file + install -d ${D}${sysconfdir}/dbus-1/system.d/ + install -m 0644 ${S}/data/daemon/dbus/exalt.conf ${D}${sysconfdir}/dbus-1/system.d/exalt.conf + + # install dbus service file + install -d ${D}${datadir}/dbus-1/system-services/ + install -m 0644 ${B}/org.e.Exalt.service ${D}${datadir}/dbus-1/system-services/ +} + +FILES_${PN} += "${datadir}/dbus-1" + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb new file mode 100644 index 000000000..aad064647 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb @@ -0,0 +1,35 @@ +DDESCRIPTION = "A theme for exquisite" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" +SECTION = "x11" +DEPENDS = "edje-native" +PV = "1.0+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit e-base update-alternatives allarch + +ALTERNATIVE_NAME = "exquisite-config" +ALTERNATIVE_LINK = "${sysconfdir}/exquisite/config" +ALTERNATIVE_PATH = "${sysconfdir}/exquisite/config-illume" +ALTERNATIVE_PRIORITY = "10" + +SRCNAME = "b_and_w" + +SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \ + file://LICENSE \ +" +S = "${WORKDIR}/${SRCNAME}" + +do_compile() { + ${STAGING_BINDIR_NATIVE}/edje_cc exquisite.edc illume.edj +} + +do_install() { + install -d ${D}${sysconfdir}/exquisite + install -d ${D}${datadir}/exquisite/data/themes + install -m 0644 ${S}/illume.edj ${D}${datadir}/exquisite/data/themes/ + echo 'THEME="-t illume"' > ${D}${sysconfdir}/exquisite/config-illume +} + +CONFFILES_${PN} = "${sysconfdir}/exquisite/config-illume" +FILES_${PN} = "${sysconfdir}/exquisite ${datadir}/exquisite/data/themes" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE new file mode 100644 index 000000000..61bb2f603 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE @@ -0,0 +1,25 @@ +Copyright notice for Enlightenment: + +Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/exquisite-init b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/exquisite-init new file mode 100644 index 000000000..2de6774ff --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/exquisite-init @@ -0,0 +1,40 @@ +#!/bin/sh + +for x in $(cat /proc/cmdline); do + case $x in + splash=false) + echo "Splash Disabled" + exit 0; + ;; + esac +done + +. /etc/init.d/functions + +### Default config here - gets overriden later +THEME="-t default" +FPS="-fps 30" +### Override config - if there is a config file - load it. +if test -f /etc/exquisite/config; then + . /etc/exquisite/config +fi + +args='' +case `machine_id` in + "hp_ipaq_h3100"|"hp_ipaq_h3800") + args='-rot 90' ;; + "hp_ipaq_3600"|"hp_ipaq_3700"|"hp_ipaq_h3900"|"htc_universal"|*collie|*poodle|*akita|*spitz|*borzoi) + args='-rot 270' ;; +esac +args=$args" $FPS $THEME" + +export EXDIR=/mnt/.splash +export EXQUISITE_IPC=$EXDIR/exquisite +mount tmpfs -t tmpfs $EXDIR -o,size=40k +exquisite -fb -fs $args & + +exquisite-write -wait 120 +exquisite-write "PULSATE" +setterm -blank 0 +setterm -powersave off +setterm -powerdown 0 diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/splashfuncs b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/splashfuncs new file mode 100644 index 000000000..ada2a96dd --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite/splashfuncs @@ -0,0 +1,29 @@ +status() { + if type splash-write >/dev/null 2>&1; then + (TMPDIR="/mnt/.splash" EXQUISITE_IPC="$TMPDIR/exquisite" splash-write "$1" || true) & + fi +} + +status_position() { + status "PROGRESS $1" +} + +status_title() { + status "TITLE $1" +} + +status_text() { + if test -n "$1"; then + status "MSG $1" + else + status "CLEAR" + fi +} + +status_pulse() { + status "PULSATE" +} + +status_tick() { + status "TICK" +} diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite_svn.bb new file mode 100644 index 000000000..8f2d25d7d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/exquisite_svn.bb @@ -0,0 +1,41 @@ +SUMMARY = "A psplash replacement for display" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=14defa372a91118e755133bc8e6aff83" +DEPENDS = "eet evas ecore embryo edje" +PV = "0.0.1+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" +RRECOMMENDS_${PN} = "exquisite-themes" +RCONFLICTS_${PN} = "psplash virtual-psplash" + +SRCNAME = "exquisite" + +inherit e +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +SRC_URI += "file://exquisite-init" +SRC_URI += "file://splashfuncs" + +inherit update-rc.d + +do_install_prepend() { + install -d ${D}/mnt/.splash/ + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/exquisite-init ${D}${sysconfdir}/init.d/exquisite + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/splashfuncs ${D}${sysconfdir}/default/splashfuncs + install -d ${D}${bindir} + ln -s exquisite-write ${D}${bindir}/splash-write +} + + +do_install_append() { + rm -rf ${D}${datadir}/exquisite/data/fonts/* +} + +INITSCRIPT_NAME = "exquisite" +INITSCRIPT_PARAMS = "start 01 S . stop 20 0 1 6 ." + +FILES_${PN} += "/mnt/.splash/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame/configure.patch new file mode 100644 index 000000000..87c85de9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame/configure.patch @@ -0,0 +1,13 @@ +Index: cpu/configure.ac +=================================================================== +--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 ++++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame_svn.bb new file mode 100644 index 000000000..58c79a840 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/flame_svn.bb @@ -0,0 +1,15 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" + +PV = "0.0.3+svnr${SRCPV}" +PR = "${INC_PR}.0" + +require e-module.inc + +do_configure_prepend() { + sed -i -e /po/d ${S}/configure.ac + sed -i -e s:\ po::g ${S}/Makefile.am +} + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts/configure.patch new file mode 100644 index 000000000..87c85de9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts/configure.patch @@ -0,0 +1,13 @@ +Index: cpu/configure.ac +=================================================================== +--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 ++++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts_svn.bb new file mode 100644 index 000000000..473bdb9d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/forecasts_svn.bb @@ -0,0 +1,10 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=51328cfb73bfec3eed7cfd3dbed73988" + +PV = "0.2.0+svnr${SRCREV}" +PR = "${INC_PR}.0" + +require e-module.inc + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch new file mode 100644 index 000000000..b18a69b0b --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch @@ -0,0 +1,23 @@ +From 9316e3973c44b981e73b953b2861060c6902de47 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 23 Aug 2010 12:54:05 +0200 +Subject: [PATCH] Makefile: update KEYBOARDS_DIR for new illume2 + +--- + Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Makefile b/Makefile +index 46e9420..3d8757c 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,5 +1,5 @@ + +-INSTBASE = /usr/lib/enlightenment/modules/illume/keyboards ++INSTBASE = /usr/lib/enlightenment/modules/illume-keyboard/keyboards + + FILES-arabic = Arabic.kbd Arabic.png + FILES-persian = Persian.kbd Persian.png +-- +1.7.2 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE new file mode 100644 index 000000000..61bb2f603 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE @@ -0,0 +1,25 @@ +Copyright notice for Enlightenment: + +Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb new file mode 100644 index 000000000..6925c872a --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb @@ -0,0 +1,100 @@ +SECTION = "x11/data" + +SRC_URI = "git://git.shr-project.org/repo/illume-keyboards.git;protocol=http;branch=master \ + file://0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch \ + file://LICENSE" +S = "${WORKDIR}/git" + +SRCREV = "4064489f359a1addf572089b582f317dff5f50e1" +PV = "0.0+gitr${SRCPV}" +PE = "1" +PR = "r5" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" + +CLEANBROKEN = "1" + +PACKAGES = "\ +illume-keyboard-alpha \ +illume-keyboard-arabic \ +illume-keyboard-browse \ +illume-keyboard-danish \ +illume-keyboard-default-alt \ +illume-keyboard-dutch \ +illume-keyboard-dvorak \ +illume-keyboard-finnish \ +illume-keyboard-french \ +illume-keyboard-german \ +illume-keyboard-hebrew \ +illume-keyboard-numeric-alt \ +illume-keyboard-russian \ +illume-keyboard-russian-terminal \ +illume-keyboard-persian \ +" + +inherit allarch +KEYBOARDS_DIR="${libdir}/enlightenment/modules/illume-keyboard/keyboards" + +AUTHOR_illume-keyboard-alpha = "Jesus McCloud" +DESCRIPTION_illume-keyboard-alpha = "Illume keyboard with phone-like layout" +FILES_illume-keyboard-alpha = "${KEYBOARDS_DIR}/Alpha.kbd" + +AUTHOR_illume-keyboard-arabic = "Mohammad Fahmi / Tom Hacohen" +DESCRIPTION_illume-keyboard-arabic = "Illume keyboard with arabic layout" +FILES_illume-keyboard-arabic = "${KEYBOARDS_DIR}/Arabic.kbd ${KEYBOARDS_DIR}/Arabic.png" + +AUTHOR_illume-keyboard-browse = "Pander" +DESCRIPTION_illume-keyboard-browse = "Illume keyboard with a layout optimized for browsing" +FILES_illume-keyboard-browse = "${KEYBOARDS_DIR}/Browse.kbd ${KEYBOARDS_DIR}/end-browse.png ${KEYBOARDS_DIR}/pagedown-browse.png ${KEYBOARDS_DIR}/browse.png ${KEYBOARDS_DIR}/home-browse.png ${KEYBOARDS_DIR}/pageup-browse.png ${KEYBOARDS_DIR}/space-browse.png" + +AUTHOR_illume-keyboard-danish = "Esben Damgaard" +DESCRIPTION_illume-keyboard-danish = "Illume keyboard with danish layout" +FILES_illume-keyboard-danish = "${KEYBOARDS_DIR}/Danish.kbd ${KEYBOARDS_DIR}/danish.png" + +AUTHOR_illume-keyboard-default-alt = "Pander" +DESCRIPTION_illume-keyboard-default-alt = "Illume keyboard with an alternative default layout" +FILES_illume-keyboard-default-alt = "${KEYBOARDS_DIR}/Default-alt.kbd" + +AUTHOR_illume-keyboard-dutch = "Pander" +DESCRIPTION_illume-keyboard-dutch = "Illume keyboard with dutch layout" +FILES_illume-keyboard-dutch = "${KEYBOARDS_DIR}/capslock-negative.png ${KEYBOARDS_DIR}/end.png ${KEYBOARDS_DIR}/pagedown.png ${KEYBOARDS_DIR}/qwerty-dutch-nl.png ${KEYBOARDS_DIR}/Terminal-dutch-nl.kbd ${KEYBOARDS_DIR}/capslock.png ${KEYBOARDS_DIR}/home.png ${KEYBOARDS_DIR}/pageup.png ${KEYBOARDS_DIR}/space.png" + +AUTHOR_illume-keyboard-dvorak = "Gabor Adam TOTH" +DESCRIPTION_illume-keyboard-dvorak = "Illume keyboard with dvorak layout" +FILES_illume-keyboard-dvorak = "${KEYBOARDS_DIR}/Dvorak.kbd ${KEYBOARDS_DIR}/dvorak.png" + +AUTHOR_illume-keyboard-finnish = "Olof Sjöbergh / Jussi Timperi" +DESCRIPTION_illume-keyboard-finnish = "Illume keyboard with finnish layout" +FILES_illume-keyboard-finnish = "${KEYBOARDS_DIR}/Finnish.kbd ${KEYBOARDS_DIR}/Finnish.png" + +DESCRIPTION_illume-keyboard-french = "Illume keyboard with french layout" +FILES_illume-keyboard-french = "${KEYBOARDS_DIR}/Azerty.kbd ${KEYBOARDS_DIR}/Azerty.png" + +AUTHOR_illume-keyboard-german = "Florian Hackenberger" +DESCRIPTION_illume-keyboard-german = "Illume keyboard with german layout" +FILES_illume-keyboard-german = "${KEYBOARDS_DIR}/German.kbd ${KEYBOARDS_DIR}/German.png" + +AUTHOR_illume-keyboard-hebrew = "Tom Hacohen" +DESCRIPTION_illume-keyboard-hebrew = "Illume keyboard with hebrew layout" +FILES_illume-keyboard-hebrew = "${KEYBOARDS_DIR}/Hebrew.kbd ${KEYBOARDS_DIR}/Alpha-hebrew-il.png" + +AUTHOR_illume-keyboard-numeric-alt = "Pander" +DESCRIPTION_illume-keyboard-numeric-alt = "Illume keyboard with an alternative numeric layout" +FILES_illume-keyboard-numeric-alt = "${KEYBOARDS_DIR}/Numbers-alt.kbd ${KEYBOARDS_DIR}/numeric-alt.png" + +AUTHOR_illume-keyboard-russian = "lucky" +DESCRIPTION_illume-keyboard-russian = "Illume keyboard with russian layout" +FILES_illume-keyboard-russian = "${KEYBOARDS_DIR}/X8_Russian.kbd ${KEYBOARDS_DIR}/X8-russian-ru.png" + +AUTHOR_illume-keyboard-russian-terminal = "lucky" +DESCRIPTION_illume-keyboard-russian-terminal = "Illume keyboard with russian layout for the Terminal" +FILES_illume-keyboard-russian-terminal = "${KEYBOARDS_DIR}/Terminal_Russian.kbd ${KEYBOARDS_DIR}/Terminal-russian-ru.png" + +AUTHOR_illume-keyboard-persian = "slave" +DESCRIPTION_illume-keyboard-persian = "Illume keyboard with persian layout" +FILES_illume-keyboard-persian = "${KEYBOARDS_DIR}/Persian.kbd ${KEYBOARDS_DIR}/Persian.png" + +do_install() { + make DESTDIR=${D} install +} + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/news_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/news_svn.bb new file mode 100644 index 000000000..f08cab60a --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/news_svn.bb @@ -0,0 +1,14 @@ +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +PV = "0.1.0+svnr${SRCPV}" +PR = "${INC_PR}.0" + +require e-module.inc + +do_configure_prepend() { + sed -i -e /po/d configure.ac + sed -i -e s:\ po::g Makefile.am +} + +PNBLACKLIST[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/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places/configure.patch new file mode 100644 index 000000000..f8f48345c --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places/configure.patch @@ -0,0 +1,13 @@ +Index: places/configure.ac +=================================================================== +--- places.orig/configure.ac 2014-07-17 21:51:01.276574017 +0000 ++++ places/configure.ac 2014-07-17 21:52:07.096575810 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.8) ++AM_INIT_AUTOMAKE([foreign]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + AM_CONFIG_HEADER(config.h) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places_svn.bb new file mode 100644 index 000000000..54f0e0154 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/places_svn.bb @@ -0,0 +1,16 @@ +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" + +PV = "0.1.0+svnr${SRCPV}" +PR = "${INC_PR}.0" + +require e-module.inc + +do_configure_prepend() { + autopoint || touch config.rpath +} + +# Calls /usr/bin/eject for media +RRECOMMENDS_${PN} += "eject" + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rage_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rage_svn.bb new file mode 100644 index 000000000..a65aa9eb6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rage_svn.bb @@ -0,0 +1,15 @@ +SUMMARY = "Rage is a media center application based on EFL" +AUTHOR = "Carsten 'The Rasterman' Haitzler" +HOMEPAGE = "http://www.rasterman.com" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" +DEPENDS = "emotion evas ecore edje" +SECTION = "x11/multimedia" +PV = "0.3.0.042+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit e +SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +PNBLACKLIST[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/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain/configure.patch new file mode 100644 index 000000000..87c85de9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain/configure.patch @@ -0,0 +1,13 @@ +Index: cpu/configure.ac +=================================================================== +--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 ++++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain_svn.bb new file mode 100644 index 000000000..cf67a4cd5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/rain_svn.bb @@ -0,0 +1,16 @@ +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" + +PV = "0.0.3+svnr${SRCPV}" +PR = "${INC_PR}.0" + +require e-module.inc + +do_configure_prepend() { + sed -i -e /po/d ${S}/configure.ac + sed -i -e s:\ po::g ${S}/Makefile.am +} + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch new file mode 100644 index 000000000..14f1141f1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot/screenshot-fix-mkinstalldirs.patch @@ -0,0 +1,23 @@ +From: Dmitry Eremin-Solenikov +Subject: fix screenshot po/ building +Upstream-Status: Pending + +Somehow configure doesn't substitute @MKINSTALLDIRS@ by default anymore, +however this substitution is required for po/Makefile + +Fix that by calling AM_MKINSTALLDIRS from configure.ac + +Signed-off-by: Dmitry Eremin-Solenikov + +Index: E-MODULES-EXTRA/screenshot/configure.ac +=================================================================== +--- E-MODULES-EXTRA.orig/screenshot/configure.ac 2011-08-17 15:49:22.000000000 +0400 ++++ E-MODULES-EXTRA/screenshot/configure.ac 2011-08-17 15:49:34.000000000 +0400 +@@ -24,6 +24,7 @@ + define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl + AC_PROG_LIBTOOL + ++AM_MKINSTALLDIRS + m4_ifdef([AM_GNU_GETTEXT_VERSION], [ + AM_GNU_GETTEXT_VERSION([0.14]) + ]) diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot_svn.bb new file mode 100644 index 000000000..6dec194d6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/screenshot_svn.bb @@ -0,0 +1,16 @@ +LICENSE = "MIT" +PV = "0.3.0+svnr${SRCREV}" +PR = "${INC_PR}.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" +SRC_URI += "file://screenshot-fix-mkinstalldirs.patch" + +require e-module.inc + +DEPENDS += "emprint" +RDEPENDS_${PN} += "emprint" + +do_configure_prepend() { + sed -i -e 's:AC_MSG_ERROR(emprint not found):echo foo:g' ${S}/configure.ac +} + +PNBLACKLIST[screenshot] ?= "depends on blacklisted emprint" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology.inc new file mode 100644 index 000000000..24f789f59 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology.inc @@ -0,0 +1,22 @@ +DESCRIPTION = "Enlightenment Terminal Emulator" +LICENSE = "MIT & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=4efac6b05b3256ba7da66301ac1ee6c6" +DEPENDS = "evas ecore edje elementary eina eet emotion" + +inherit e gettext + +# Because latest release we have is 0.1.0 which sorts lower then 0.1.0+svnr${SRCPV} already in feeds +PE = "2" + +EXTRA_OECONF = "\ + --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ +" + +FILES_${PN} += "\ + ${datadir}/icons/terminology.png \ +" + +# doesn't start without own theme +# ERR<770>:terminology utils.c:26 theme_apply() Could not load any theme for group=terminology/background: No Error +# CRI<770>:terminology main.c:448 elm_main() Couldn't find terminology theme! Forgot 'make install'? +RDEPENDS_${PN} += "${PN}-themes" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology_0.9.1.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology_0.9.1.bb new file mode 100644 index 000000000..482bd60d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/terminology_0.9.1.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +SRC_URI[md5sum] = "c7ce2e8ebc5f311d3d3f59ecfdf18f61" +SRC_URI[sha256sum] = "7fb864a14202490e9181c5f254a7e772019216a3aa75c3952d0f12cd32113896" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime/configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime/configure.patch new file mode 100644 index 000000000..87c85de9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime/configure.patch @@ -0,0 +1,13 @@ +Index: cpu/configure.ac +=================================================================== +--- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 ++++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 +@@ -10,7 +10,7 @@ + AC_CANONICAL_HOST + AC_ISC_POSIX + +-AM_INIT_AUTOMAKE(1.6) ++AM_INIT_AUTOMAKE([foreign]) + AM_CONFIG_HEADER(config.h) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime_svn.bb new file mode 100644 index 000000000..5c9bfa9ea --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/uptime_svn.bb @@ -0,0 +1,10 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ + file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" + +PV = "0.0.2+svnr${SRCREV}" +PR = "${INC_PR}.0" + +require e-module.inc + +SRC_URI += "file://configure.patch" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch new file mode 100644 index 000000000..2e9d1046d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch @@ -0,0 +1,54 @@ +From b6296958d5516a735053ee4140e85e2b3a896182 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 30 Jan 2011 00:27:57 +0100 +Subject: [PATCH] waker: remove old ecore_string_init and ecore_string_shutdown + +Signed-off-by: Martin Jansa +--- + src/bin/waker_main.c | 2 -- + src/bin/waker_tool.c | 2 -- + 2 files changed, 0 insertions(+), 4 deletions(-) + +diff --git a/src/bin/waker_main.c b/src/bin/waker_main.c +index b229cf0..dd54b31 100644 +--- a/src/bin/waker_main.c ++++ b/src/bin/waker_main.c +@@ -568,7 +568,6 @@ main(int argc, char **argv) + E_DBus_Connection *c; + + ecore_init(); +- ecore_string_init(); + ecore_app_args_set(argc, (const char **)argv); + e_dbus_init(); + +@@ -586,7 +585,6 @@ main(int argc, char **argv) + + e_dbus_connection_close(c); + e_dbus_shutdown(); +- ecore_string_shutdown(); + ecore_shutdown(); + + return 0; +diff --git a/src/bin/waker_tool.c b/src/bin/waker_tool.c +index 3344fd2..52515c9 100644 +--- a/src/bin/waker_tool.c ++++ b/src/bin/waker_tool.c +@@ -93,7 +93,6 @@ main(int argc, char **argv) + } + + ecore_init(); +- ecore_string_init(); + ecore_app_args_set(argc, (const char **)argv); + e_dbus_init(); + +@@ -301,7 +300,6 @@ main(int argc, char **argv) + + e_dbus_connection_close(c); + e_dbus_shutdown(); +- ecore_string_shutdown(); + ecore_shutdown(); + + return 0; +-- +1.7.4.rc3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/azy_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/azy_svn.bb new file mode 100644 index 000000000..dec247516 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/azy_svn.bb @@ -0,0 +1,37 @@ +DESCRIPTION = "Azy is a library meant for implementing rpc clients and servers in a simple manner." +DEPENDS = "pkgconfig zlib openssl eina gnutls ecore libxml2 re2c-native mysql5 azy-native glib-2.0" +DEPENDS_class-native = "pkgconfig-native zlib-native openssl-native eina-native gnutls-native ecore-native libxml2-native re2c-native mysql5-native glib-2.0-native" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +PV = "1.0.0+svnr${SRCPV}" +PR = "r2" + +SRCREV = "${EFL_SRCREV}" + +# to provide native lemon binary +BBCLASSEXTEND = "native" + +EXTRA_OECONF += " --disable-mysql-tests" + +do_configure_prepend_class-target() { + sed -i "s#\./lemon#${STAGING_BINDIR_NATIVE}/azy_lemon#g" ${S}/src/bin/Makefile.am + 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 + 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 +} + +do_install_append_class-native() { + install -d ${D}/${bindir} + install -m 0755 ${B}/src/bin/lemon ${D}/${bindir}/azy_lemon +} + +inherit efl + +SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +# azy/2_1.0.0+svnr82070-r2/azy/src/lib/extras/pugixml.cpp:33: +# sysroots/qemuarm/usr/include/c++/5.2.0/bits/basic_string.h:4780:5: error: reference to 'basic_string' is ambiguous +# basic_string<_CharT, _Traits, _Alloc> +# ^ +PNBLACKLIST[azy] ?= "OLD and doesn't build with gcc-5" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb new file mode 100644 index 000000000..657adcd92 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Polish dictionary for Illume keyboard" +SECTION = "x11/data" +SRCREV = "38fdd9bb0d8296e984bb6443466801eea6f62f00" +PV = "1.0+gitr${SRCPV}" +PE = "1" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" + +SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master" + +S = "${WORKDIR}/git/e-wm/${PN}" + +FILES_${PN} = "${libdir}/enlightenment/modules/illume/dicts/Polish.dic" + +do_install() { + install -d ${D}${libdir}/enlightenment/modules/illume/dicts + install -m 0644 ${S}/Polish.dic ${D}${libdir}/enlightenment/modules/illume/dicts/Polish.dic +} diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch new file mode 100644 index 000000000..55773a3b9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch @@ -0,0 +1,41 @@ +From 657571197c9d369e12ae31b6777a1929fe3680ef Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 29 Oct 2011 00:16:55 +0200 +Subject: [PATCH] ecore-fb: fix ts init + +Upstream-Status: Pending + +The whole ecore-fb init logic is somewhat flawed; with this patch we +get at least a working touchscreen w/ tslib again. + +Signed-off-by: Michael 'Mickey' Lauer +Signed-off-by: Martin Jansa +--- + ecore/src/lib/ecore_fb/ecore_fb.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/lib/ecore_fb/ecore_fb.c b/src/lib/ecore_fb/ecore_fb.c +index 5b2b84b..a1904b3 100644 +--- a/src/lib/ecore_fb/ecore_fb.c ++++ b/src/lib/ecore_fb/ecore_fb.c +@@ -46,6 +46,9 @@ ecore_fb_init(const char *name __UNUSED__) + if (!ecore_fb_vt_init()) + return --_ecore_fb_init_count; + ++ if (!ecore_fb_ts_init()) ++ return --_ecore_fb_init_count; ++ + if (!oldhand) + { + oldhand = signal(SIGINT, nosigint); +@@ -77,6 +80,7 @@ ecore_fb_shutdown(void) + oldhand = NULL; + } + ++ ecore_fb_ts_shutdown(); + ecore_fb_vt_shutdown(); + + return _ecore_fb_init_count; +-- +1.7.8.6 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edb_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edb_svn.bb new file mode 100644 index 000000000..7c6abdaf0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edb_svn.bb @@ -0,0 +1,16 @@ +SUMMARY = "Edb is the Enlightenment database library" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8a7c08df3bc3280208b959be7215c25 \ + file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035" + +DEPENDS = "zlib" +PV = "1.0.5.050+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit efl + +PACKAGECONFIG ??= "" +PACKAGECONFIG[ncurses] = "--enable-ncurses,--disable-ncurses,ncurses" + +SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus.inc new file mode 100644 index 000000000..03d0ee58d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus.inc @@ -0,0 +1,29 @@ +DESCRIPTION = "DBus and HAL convenience wrappers for EFL" +DEPENDS = "dbus ecore eina" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=550b8cea13dacc4bf00508a8cce1074c" + +inherit efl + +# -dev and -dbg packages wants ${PN} which is empty here +ALLOW_EMPTY_${PN} = "1" + +BBCLASSEXTEND = "native" +INC_PR = "r0" + +SRCNAME = "e_dbus" + +# it needs to be disabled, because creates circular dependency on elementary +EXTRA_OECONF += "--disable-edbus-performance-test" + +PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal ${PN}-econnman ${PN}-eofono ${PN}-eukit ${PN}-ebluez" +FILES_${PN}-enotify = "${libdir}/libenotify.so.* ${bindir}/e-notify-send" +FILES_${PN}-edbus = "${libdir}/libedbus.so.*" +FILES_${PN}-enm = "${libdir}/libenm.so.*" +FILES_${PN}-ehal = "${libdir}/libehal.so.*" +FILES_${PN}-econnman = "${libdir}/libeconnman.so.* ${libdir}/libeconnman0_7x.so.*" +FILES_${PN}-eofono = "${libdir}/libeofono.so.*" +FILES_${PN}-eukit = "${libdir}/libeukit.so.*" +FILES_${PN}-ebluez = "${libdir}/libebluez.so.*" +FILES_${PN} += "${datadir}/e_dbus/logo.png" + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus_1.7.9.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus_1.7.9.bb new file mode 100644 index 000000000..64e77e61a --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edbus_1.7.9.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +SRC_URI[md5sum] = "8f72da14e5664aad8c45eeeca0e3ff5f" +SRC_URI[sha256sum] = "c328c4cf1424629cb67c83689ccc1f95967abcb4c03dffd437e93b799ff151c1" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edje-fpu.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edje-fpu.inc new file mode 100644 index 000000000..3f2aacffb --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/edje-fpu.inc @@ -0,0 +1,6 @@ + +def get_edje_fpu_setting(bb, d): + if d.getVar('TARGET_FPU', 1) in [ 'soft' ]: + return "--enable-fixed-point" + return "" + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl.inc new file mode 100644 index 000000000..31aff8731 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl.inc @@ -0,0 +1,287 @@ +SUMMARY = "EFL" +LICENSE = "MIT & BSD & LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=ca7873210523dcfd32694b94286dca60" + +DEPENDS_class-native = "freetype-native libxext-native libpng-native jpeg-native tiff-native libfribidi-native glib-2.0-native dbus-native openssl-native" +DEPENDS = "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" + +inherit efl gettext pkgconfig + +BBCLASSEXTEND = "native" + +PROVIDES += "ecore edje eet eeze efreet eina eio embryo emotion ethumb evas eldbus" + +# we don't have bullet for physics +# You have chosen to disable physics support. This disables lots of +# core functionality and is effectively never tested. You are going +# to find features that suddenly don't work and as a result cause +# a series of breakages. This is simply not tested so you are on +# your own in terms of ensuring everything works if you do this +EXTRA_OECONF = " \ + --disable-physics \ + --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 \ +" +EXTRA_OECONF_append_class-target = " \ + --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ + --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \ + --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \ + --with-elua=${STAGING_BINDIR_NATIVE}/elua \ +" +EXTRA_OECONF_append_class-native = " \ + --disable-fontconfig \ + --disable-audio \ + --disable-physics \ + --disable-multisense \ + --disable-cserve \ + --disable-libeeze \ + --with-x11=none \ + --disable-image-loader-bmp \ + --disable-image-loader-eet \ + --disable-image-loader-generic \ + --disable-image-loader-gif \ + --disable-image-loader-ico \ + --disable-image-loader-jp2k \ + --disable-image-loader-pmaps \ + --disable-image-loader-psd \ + --disable-image-loader-tga \ + --disable-image-loader-wbmp \ + --disable-image-loader-webp \ + --disable-image-loader-xpm \ + --disable-image-loader-tgv \ + --disable-image-loader-dds \ +" + +PACKAGECONFIG ?= "egl opengl-es gstreamer1 pulseaudio luajit ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}" +PACKAGECONFIG_class-native = "luajit" + +PACKAGECONFIG[wayland] = "--enable-wayland --enable-wayland-ivi-shell,--disable-wayland --disable-wayland-ivi-shell,wayland" +PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" +# sort of tri-state +PACKAGECONFIG[opengl-full] = "--with-opengl=full,,virtual/libgl" +PACKAGECONFIG[opengl-es] = "--with-opengl=es,,virtual/libgles2" +PACKAGECONFIG[opengl-none] = "--with-opengl=none,," +# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make +# sure that all your builders have g++ which supports -std=gnu++11 +PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings" +PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer" +PACKAGECONFIG[gstreamer1] = "--enable-gstreamer1,--disable-gstreamer1,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" +PACKAGECONFIG[luajit] = "--disable-lua-old,--enable-lua-old,luajit" +PACKAGECONFIG[lua-old] = "--enable-lua-old,--disable-lua-old,lua" +PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" +# currently we don't provide doxygen-native +PACKAGECONFIG[doc] = "--enable-doc,--disable-doc,doxygen-native" + +do_install_append() { + # don't ship precompiled lua files + rm -f ${datadir}/elua/*/*.luac +} + +PACKAGES =+ "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" + +# upgrade path from 1.7 +DEBIAN_NOAUTONAME_ecore-audio = "1" +DEBIAN_NOAUTONAME_ecore-input-evas = "1" +DEBIAN_NOAUTONAME_ecore-input = "1" +DEBIAN_NOAUTONAME_ecore-imf-evas = "1" +DEBIAN_NOAUTONAME_ecore-imf = "1" +DEBIAN_NOAUTONAME_ecore-file = "1" +DEBIAN_NOAUTONAME_ecore-con = "1" +DEBIAN_NOAUTONAME_ecore-ipc = "1" +DEBIAN_NOAUTONAME_ecore-x = "1" +DEBIAN_NOAUTONAME_ecore-evas = "1" +DEBIAN_NOAUTONAME_embryo = "1" + +ALLOW_EMPTY_ecore = "1" +RDEPENDS_ecore = "ecore-audio ecore-input-evas ecore-input ecore-imf-evas ecore-imf ecore-file ecore-con ecore-ipc ecore-x ecore-evas" + +python populate_packages_prepend () { + for plugin_type in "engines loaders savers".split(): + bb.note( "splitting packages for evas %s..." % plugin_type ) + basedir = d.expand( '${libdir}/evas/modules/%s' % plugin_type) + + do_split_packages(d, basedir, '^(.*)', + output_pattern = 'evas-' + plugin_type[:-1] + "-%s", + description = 'Evas module %s', + allow_dirs=True, recursive=False, extra_depends="" ) + + plugin_type = "cserve2" + bb.note( "splitting packages for evas %s..." % plugin_type ) + basedir = d.expand( '${libdir}/evas/%s/loaders' % plugin_type) + + do_split_packages(d, basedir, '^(.*)', + output_pattern = 'evas-' + plugin_type + "-%s", + description = 'Evas csever2 loader module %s', + allow_dirs=True, recursive=False, extra_depends="" ) +} + +PACKAGES += "evas-loader-png evas-engine-software-generic evas-engine-fb" +PACKAGES_DYNAMIC += "^evas-engine-.* ^evas-loader-.* ^evas-saver-.* ^evas-cserve2-.*" + +# PACKAGES_DYNAMIC + do_split_packages isn't used for all libe libs, +# because PACKAGES_DYNAMIC would be catching too many patterns +# (or need to list all possible prefixes) and not all original packages +# were splitted like that, so it would need RCONFLICTS/RPROVIDES/RREPLACES +# combos at least in few places for upgrade path. + +FILES_efreet-trash = " \ + ${libdir}/libefreet_trash${SOLIBS} \ +" +FILES_efreet-mime = " \ + ${libdir}/libefreet_mime${SOLIBS} \ +" +FILES_libeet = " \ + ${libdir}/libeet${SOLIBS} \ +" +FILES_libefreet = " \ + ${libdir}/libefreet${SOLIBS} \ +" +FILES_ecore-audio = "\ + ${libdir}/libecore_audio${SOLIBS} \ +" +FILES_ecore-input-evas = "\ + ${libdir}/libecore_input_evas${SOLIBS} \ +" +FILES_ecore-input = "\ + ${libdir}/libecore_input${SOLIBS} \ +" +FILES_ecore-imf-evas = "\ + ${libdir}/libecore_imf_evas${SOLIBS} \ + ${libdir}/ecore-imf/modules/*/*/module.so \ +" +FILES_ecore-imf = "\ + ${libdir}/libecore_imf${SOLIBS} \ +" + +FILES_ecore-file = "\ + ${libdir}/libecore_file${SOLIBS} \ +" +FILES_ecore-con = "\ + ${libdir}/libecore_con${SOLIBS} \ +" +FILES_ecore-ipc = "\ + ${libdir}/libecore_ipc${SOLIBS} \ +" +FILES_ecore-x = "\ + ${libdir}/libecore_x${SOLIBS} \ + ${libdir}/ecore_x/bin/v-*/ecore_x_vsync \ +" +FILES_ecore-evas = "\ + ${libdir}/libecore_evas${SOLIBS} \ + ${libdir}/ecore-evas/engines/*/*/module.so \ +" +FILES_eio = "\ + ${libdir}/libeio${SOLIBS} \ +" +FILES_eina = "\ + ${libdir}/libeina${SOLIBS} \ + ${bindir}/eina-bench-cmp \ +" +FILES_edje-utils = "\ + ${bindir}/edje_* \ + ${datadir}/edje/include/edje.inc \ +" +FILES_eldbus = "\ + ${libdir}/libeldbus${SOLIBS} \ +" +FILES_eo = "\ + ${libdir}/libeo${SOLIBS} \ +" +FILES_libemotion = "\ + ${libdir}/libemotion${SOLIBS} \ +" +FILES_efreet = " \ + ${datadir}/dbus-1/services/*Efreet* \ + ${libdir}/efreet/*/efreet*create \ + ${bindir}/efreetd \ + ${datadir}/efreet \ +" +FILES_eet = " \ + ${bindir}/eet \ + ${bindir}/eetpack \ + ${bindir}/vieet \ + ${bindir}/diffeet \ + ${libdir}/libeet${SOLIBS} \ +" +FILES_emotion = " \ + ${datadir}/emotion \ + ${libdir}/emotion/modules/gstreamer1/*/module.so \ +" +FILES_embryo-tests = " \ + ${datadir}/embryo/ \ +" +FILES_embryo-utils = " \ + ${binddir}/embryo_* \ +" +FILES_embryo = " \ + ${libdir}/libembryo${SOLIBS} \ +" +FILES_ethumb = " \ + ${datadir}/dbus-1/services/*Ethumb* \ + ${libdir}/libethumb${SOLIBS} \ + ${libdir}/libethumb_client${SOLIBS} \ + ${bindir}/ethumbd \ + ${bindir}/ethumbd_client \ + ${bindir}/ethumb \ + ${libdir}/ethumb/*/*/*/module.so \ + ${libdir}/ethumb/*/*/*/*.edj \ + ${libdir}/ethumb_client/utils/*/ethumbd_slave \ + ${datadir}/ethumb* \ +" +FILES_ecore = " \ + ${libdir}/libecore${SOLIBS} \ + ${libdir}/ecore*/*/*/*/module.so \ + ${datadir}/ecore* \ +" +FILES_evas = " \ + ${libdir}/libevas${SOLIBS} \ + ${libdir}/evas*/*/*/*/*/module.so \ + ${libdir}/evas*/*/*/*/*/*.edj \ + ${libdir}/evas/cserve2/bin/*/evas_cserve2* \ + ${datadir}/evas* \ + ${bindir}/evas_cserve2_* \ +" + +FILES_eeze = " \ + ${libdir}/libeeze${SOLIBS} \ + ${libdir}/eeze*/*/*/*/*/module.so \ + ${datadir}/eeze \ + ${bindir}/eeze_* \ +" +FILES_edje = " \ + ${libdir}/libedje${SOLIBS} \ + ${libdir}/edje*/*/*/*/module.so \ + ${libdir}/edje/utils/*/epp \ + ${datadir}/edje \ + ${datadir}/mime \ +" +FILES_elua = " \ + ${bindir}/elua \ + ${datadir}/elua \ +" +FILES_${PN}-dbg += " \ + ${libdir}/efreet/*/.debug \ + ${libdir}/ecore*/*/*/*/.debug \ + ${libdir}/ecore*/*/*/.debug \ + ${libdir}/evas*/*/*/*/*/.debug \ + ${libdir}/evas/cserve2/bin/*/.debug \ + ${libdir}/eeze*/*/*/*/*/.debug \ + ${libdir}/edje*/*/*/*/.debug \ + ${libdir}/edje/utils/*/.debug \ + ${libdir}/ethumb/*/*/*/.debug \ + ${libdir}/ethumb_client/utils/*/.debug \ + ${libdir}/emotion/modules/gstreamer1/*/.debug \ +" +FILES_${PN}-dev += " \ + ${libdir}/cmake \ + ${libdir}/ecore*/*/*/*/module.la \ + ${libdir}/evas*/*/*/*/*/module.la \ + ${libdir}/ethumb*/*/*/*/module.la \ + ${libdir}/eeze*/*/*/*/*/module.la \ + ${libdir}/edje*/*/*/*/module.la \ + ${libdir}/emotion/modules/gstreamer1/*/module.la \ + ${datadir}/gdb/auto-load \ + ${datadir}/eo/gdb \ + ${bindir}/eldbus-codegen \ +" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch new file mode 100644 index 000000000..fa85f817e --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch @@ -0,0 +1,27 @@ +From 27aedcdcdafbf079dc022bab72ec309cf7db3172 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Fri, 10 Jan 2014 17:07:13 +0100 +Subject: [PATCH 1/3] configure.ac: Don't check for Xprint extension + +* it's long gone + +Signed-off-by: Martin Jansa +--- + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c108b1b..f019bfc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3474,7 +3474,6 @@ if test "x${want_x11_xlib}" = "xyes" ; then + ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xext], [DPMSQueryExtension]) + ECORE_CHECK_X_EXTENSION([Xfixes], [Xfixes.h], [Xfixes], [XFixesExpandRegion]) + ECORE_CHECK_X_EXTENSION([Xinerama], [Xinerama.h], [Xinerama], [XineramaQueryScreens]) +- ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens]) + ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRGetScreenResourcesCurrent]) + ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat]) + ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent]) +-- +2.3.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch new file mode 100644 index 000000000..d0f26c7dd --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0001-evas_3d-Add-Eet.h-includes.patch @@ -0,0 +1,51 @@ +From 2e50fd2dfc68b77e7acddc79550f22987778a897 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 2 Dec 2014 12:21:10 +0100 +Subject: [PATCH] evas_3d: Add Eet.h includes + +* with some very restrictive options like we use in efl-native, the build is complaining + about missing symbols from Eet.h, add include where needed + +Signed-off-by: Martin Jansa +--- + src/lib/evas/canvas/evas_canvas3d_eet.c | 1 + + src/modules/evas/model_loaders/eet/evas_model_load_eet.c | 1 + + src/modules/evas/model_savers/eet/evas_model_save_eet.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c b/src/lib/evas/canvas/evas_canvas3d_eet.c +index 281f69d..a604076 100644 +--- a/src/lib/evas/canvas/evas_canvas3d_eet.c ++++ b/src/lib/evas/canvas/evas_canvas3d_eet.c +@@ -1,3 +1,4 @@ ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +diff --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 +index 803846d..7ebaf8e 100644 +--- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c ++++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c +@@ -3,6 +3,7 @@ + #endif + + #include ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +diff --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 +index 71e094a..4d56977 100644 +--- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c ++++ b/src/modules/evas/model_savers/eet/evas_model_save_eet.c +@@ -2,6 +2,7 @@ + #include "config.h" + #endif + ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch new file mode 100644 index 000000000..aa7fd4bf5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch @@ -0,0 +1,51 @@ +From b3cbe31c38a088af7b0dade82545475fc9b72492 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 2 Dec 2014 12:21:10 +0100 +Subject: [PATCH 2/3] evas_3d: Add Eet.h includes + +* with some very restrictive options like we use in efl-native, the build is complaining + about missing symbols from Eet.h, add include where needed + +Signed-off-by: Martin Jansa +--- + src/lib/evas/canvas/evas_3d_eet.c | 1 + + src/modules/evas/model_loaders/eet/evas_model_load_eet.c | 1 + + src/modules/evas/model_savers/eet/evas_model_save_eet.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/src/lib/evas/canvas/evas_3d_eet.c b/src/lib/evas/canvas/evas_3d_eet.c +index 1515f5a..a438217 100644 +--- a/src/lib/evas/canvas/evas_3d_eet.c ++++ b/src/lib/evas/canvas/evas_3d_eet.c +@@ -1,3 +1,4 @@ ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +diff --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 +index 815b9f1..bff2cea 100644 +--- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c ++++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c +@@ -3,6 +3,7 @@ + #endif + + #include ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +diff --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 +index e445dca..2e1cf4e 100644 +--- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c ++++ b/src/modules/evas/model_savers/eet/evas_model_save_eet.c +@@ -2,6 +2,7 @@ + #include "config.h" + #endif + ++#include + #include + #include "evas_common_private.h" + #include "evas_private.h" +-- +2.3.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl_1.15.1.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl_1.15.1.bb new file mode 100644 index 000000000..9f18531de --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/efl_1.15.1.bb @@ -0,0 +1,29 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ + file://0001-configure.ac-Don-t-check-for-Xprint-extension.patch \ + file://0001-evas_3d-Add-Eet.h-includes.patch \ +" + +SRC_URI[md5sum] = "dc91bcab73275f678e1748a2dea8d88a" +SRC_URI[sha256sum] = "2a6d0ab28020b4741be20b32ad0ffeb8f97f766c5c32175bacc2f2d0dc52f98c" + +# Temporary disable until error like the one following are fixed +# efl-native/2_1.8.4-r0/efl-1.8.4/src/lib/eet/.libs/libeet.so: file not recognized: File truncated +# collect2: error: ld returned 1 exit status +# x86_64-linux-libtool: install: error: relink `modules/evas/savers/tiff/module.la' with the above command before installing it +# Makefile:11031: recipe for target 'install-savertiffpkgLTLIBRARIES' failed +PARALLEL_MAKE_class-native = "" + +#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 +#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 +#Makefile:30738: recipe for target 'lib/evas/canvas/evas_line.eo.c' failed +#make[2]: *** [lib/evas/canvas/evas_line.eo.c] Error 1 +#Makefile:2163: recipe for target 'all-recursive' failed +# autotools-brokensep +B = "${S}" + +#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 +#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 +CFLAGS += "-fPIC" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE new file mode 100644 index 000000000..61bb2f603 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE @@ -0,0 +1,25 @@ +Copyright notice for Enlightenment: + +Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb new file mode 100644 index 000000000..494e743f5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "efenniht elementary theme - Efenniht was devised to be clean \ +and neutral. Its name (which means equinox) comes from the chromatic duality \ +that was decided at the very beginning, with a dark theme (black and orange) \ +and a bright one (white and blue) to be developed so that more people feel \ +comfortable using it. Efenniht uses few animations, discrete contrasts between \ +shades of gray and fine lines (colored) that outline the selected elements." +SECTION = "e/utils" +HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht" +DEPENDS = "edje-native" +RSUGGESTS_${PN} = "e-wm-theme-illume-efenniht" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" + +SRCREV_THM_REV ?= "${EFL_SRCREV}" +SRCREV_ELM_REV ?= "${EFL_SRCREV}" + +SRCREV_FORMAT = "THM_REV" +PV = "0.0+svnr${SRCPV}" +PR = "r1" + +inherit e-base allarch + +SRCNAME = "efenniht" +SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http;name=THM_REV" +SRC_URI += "${E_SVN}/trunk/elementary/data;module=themes;protocol=http;name=ELM_REV" +SRC_URI += "file://LICENSE" +S = "${WORKDIR}/${SRCNAME}" + +do_compile() { + ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images -id ${WORKDIR}/themes/images ${S}/elm-efenniht.edc -o ${S}/elm-efenniht.edj +} + +do_install() { + install -d ${D}${datadir}/elementary/themes/ + install -m 0644 ${S}/elm-efenniht.edj ${D}${datadir}/elementary/themes/ +} + +FILES_${PN} = "${datadir}/elementary/themes/" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary.inc new file mode 100644 index 000000000..f0a92dfe9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary.inc @@ -0,0 +1,89 @@ +DESCRIPTION = "EFL based widget set for mobile devices" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=a173054a93896e933df53e3382d472c2" +DEPENDS = "eet-native edje-native elementary-native efreet evas ecore edje eet eldbus ethumb poppler eio" +DEPENDS_class-native = "efl-native" + +inherit efl gettext + +EXTRA_OECONF_append_class-target = "\ + --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ + --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \ + --with-elementary-codegen=${STAGING_BINDIR_NATIVE}/elementary_codegen \ + --with-elm-prefs-cc=${STAGING_BINDIR_NATIVE}/elm_prefs_cc \ + --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \ + --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \ +" + +BBCLASSEXTEND = "native" + +PACKAGECONFIG[eweather] = "--enable-eweather,--disable-eweather,libeweather" +PACKAGECONFIG[ewebkit] = "--with-elementary-web-backend=ewebkit,--with-elementary-web-backend=none,webkit-efl" +# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make +# sure that all your builders have g++ which supports -std=gnu++11 +PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings" + +do_configure_prepend() { + # prefix returned eolian paths with STAGING_DIR_HOST + sed -i 's%^\(DEPS_EOLIAN_FLAGS=`.*\)`$%\1 | sed "s#-I\\${prefix}#-I\\${STAGING_DIR_HOST}\\${prefix}#g"`%g' ${S}/configure.ac +} + +do_compile_append_class-target() { + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + elementary.pc +} + +PACKAGES += "${PN}-configs ${PN}-accessibility" + +RDEPENDS_${PN}_class-native = "" + +RDEPENDS_${PN} = "\ + ${PN}-themes \ + ${PN}-configs \ +" +RSUGGESTS_${PN} = "${PN}-tests ${PN}-accessibility" + +FILES_${PN} += "\ + ${libdir}/edje/modules/elm \ + ${libdir}/elementary/modules/datetime_input_ctxpopup/*/module.so \ + ${libdir}/elementary/modules/prefs/*/module.so \ + ${libdir}/elementary/modules/prefs/*/*.edj \ +" + +FILES_${PN}-dev += "\ + ${bindir}/elm_prefs_cc \ + ${libdir}/elementary/modules/*/*/module.la \ + ${libdir}/cmake \ +" + +FILES_${PN}-themes = "\ + ${datadir}/elementary/themes \ +" + +FILES_${PN}-configs = "\ + ${datadir}/elementary/config \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/elementary/modules/*/*/.debug \ + ${libdir}/edje/modules/elm/*/.debug \ +" + +FILES_${PN}-tests = "\ + ${bindir}/elementary* \ + ${datadir}/elementary/images \ + ${datadir}/elementary/objects \ + ${datadir}/elementary/examples \ + ${datadir}/applications/* \ + ${datadir}/icons/* \ + ${libdir}/elementary/modules/test_entry/* \ + ${libdir}/elementary/modules/test_map/* \ +" + +FILES_${PN}-accessibility = "\ + ${libdir}/elementary/modules/access_output/* \ +" + +# Some upgrade path tweaking, as in evas +AUTO_LIBNAME_PKGS = "" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch new file mode 100644 index 000000000..9524c70d7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch @@ -0,0 +1,29 @@ +From 75d104d105aa03dd9d446fa7d84fa95e0f566cf9 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 11 Jan 2014 12:55:59 +0100 +Subject: [PATCH] Makefile: Use elementary_codegen defined in configure + +* using binaries from top_buildir doesn't work when cross-compiling elementary + where we need to pass native binaries in configure params + +Signed-off-by: Martin Jansa +--- + src/examples/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am +index fc35c75..1e10b0b 100644 +--- a/src/examples/Makefile.am ++++ b/src/examples/Makefile.am +@@ -29,7 +29,7 @@ LDADD = \ + @ELEMENTARY_X_LIBS@ \ + $(top_builddir)/src/lib/libelementary.la + +-ELEMENTARY_CODEGEN = $(top_builddir)/src/bin/@ELEMENTARY_CODEGEN_PRG@ ++ELEMENTARY_CODEGEN = @elementary_codegen@ + ELEMENTARY_CODEGEN_FLAGS = --prefix=codegen_example + + SRCS = \ +-- +1.9.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary_1.15.1.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary_1.15.1.bb new file mode 100644 index 000000000..f53eb44a7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/elementary_1.15.1.bb @@ -0,0 +1,16 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +# only for target, because configure doesn't default to sane default when +# these paths aren't passed in -native build +SRC_URI_append_class-target = " file://0001-Makefile-Use-elementary_codegen-defined-in-configure.patch" + +SRC_URI[md5sum] = "bde4d85fa10ee8a7c0aeb74e69d7cd06" +SRC_URI[sha256sum] = "ae5540c2103fcdc69fd7469277ce25a8a00a0f701fc2c20771dc0108401e53a0" + +# autotools-brokensep - configure updates Elementary.h correctly in ${B}, but then build is using Elementary.h from ${S} +# which includes #define ELM_EMAP (instead of #undef ELM_EMAP) and building fails +B = "${S}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players.inc new file mode 100644 index 000000000..4ab89ae32 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players.inc @@ -0,0 +1,14 @@ +DESCRIPTION = "Emotion generic players" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a0f11eedf8706bf6d4d6639fb67eb8ae" + +DEPENDS = "emotion" + +inherit efl + +SRCNAME = "emotion_generic_players" + +# creates empty packages until you get vlc-2 and enable it here +PACKAGECONFIG ?= "" +# needs eina and ecore from efl and vlc-2 (currently we have 1.11) +PACKAGECONFIG[vlc] = "--with-vlc,--without-vlc,vlc efl" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb new file mode 100644 index 000000000..1a184bd04 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/emotion-generic-players_1.15.0.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +SRC_URI[md5sum] = "68627c1aabf5b7fe084299adcc0b73c1" +SRC_URI[sha256sum] = "10bad633480a691585b0ba470c573b14da0a010008d9d59d0792cea8c621d423" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/engrave_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/engrave_svn.bb new file mode 100644 index 000000000..f34be98e0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/engrave_svn.bb @@ -0,0 +1,15 @@ +SUMMARY = "Engrave is an Edje Editing Library" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=edf2d968b9eb026bfa82cccbd0e6f9f5" +# also requires yacc and lex on host +DEPENDS = "evas ecore flex" +PV = "0.0.0+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit efl autotools-brokensep +SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +# engrave.l:5:35: fatal error: libengrave_la-engrave.h: No such file or directory +# http://errors.yoctoproject.org/Errors/Details/56597/ +PNBLACKLIST[engrave] ?= "BROKEN: fails to build with latest oe-core" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch new file mode 100644 index 000000000..a82d1ed3c --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch @@ -0,0 +1,26 @@ +From 14396c52a2556b1ab778a310a318ec19c2829735 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Thu, 24 Nov 2011 13:25:33 +0100 +Subject: [PATCH] pam: use common-auth instead of system-auth + +Signed-off-by: Martin Jansa +--- + PROTO/entrance/data/entrance | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/data/entrance b/data/entrance +index 872c83d..2b98c3a 100644 +--- a/data/entrance ++++ b/data/entrance +@@ -1,4 +1,4 @@ +-auth include system-auth +-account include system-auth +-password include system-auth +-session include system-auth ++auth include common-auth ++account include common-account ++password include common-password ++session include common-session +-- +1.7.8.6 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/entrance.service b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/entrance.service new file mode 100644 index 000000000..482868695 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance/entrance.service @@ -0,0 +1,8 @@ +[Unit] +Description=Login manager for Enlightenment + +[Service] +ExecStart=/usr/sbin/entrance + +[Install] +Alias=display-manager.service diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance_svn.bb new file mode 100644 index 000000000..2888dc8dc --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/entrance_svn.bb @@ -0,0 +1,43 @@ +SUMMARY = "Login manager for Enlightenment" +DEPENDS = "efreet eina eet ecore elementary" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "e/apps" + +inherit e gettext systemd +SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \ + file://0001-pam-use-common-auth-instead-of-system-auth.patch \ + file://entrance.service \ +" +S = "${WORKDIR}/${SRCNAME}" + +PNBLACKLIST[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." + +PACKAGECONFIG ??= "" +PACKAGECONFIG[consolekit] = "--enable-consolekit,--disable-consolekit,consolekit" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-pam', d)}" + +PR = "r7" +PV = "0.0.4+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +RDEPENDS_${PN} += "${PN}-themes sessreg xauth" +CONFFILES_${PN} += "${sysconfdir}/entrance.conf" + +RCONFLICTS_${PN} += "xserver-nodm-init" +RREPLACES_${PN} += "xserver-nodm-init" + +RCONFLICTS_${PN} += "xserver-nodm-init-systemd" +RREPLACES_${PN} += "xserver-nodm-init-systemd" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" + +SYSTEMD_SERVICE_${PN} = "entrance.service" + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/entrance.service ${D}${systemd_unitdir}/system +} diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch new file mode 100644 index 000000000..728ffa6e3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0001-remove-antialias-functions-poppler-has-dropped-them-.patch @@ -0,0 +1,132 @@ +From 6691ac5fcbac0e766d4410ae649a13957ae85289 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 22 Oct 2015 16:27:52 +0200 +Subject: [PATCH 1/2] remove antialias functions - poppler has dropped them in + the API +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The functions removed were not used. + +Upstream-Status: pending + +Signed-off-by: Andreas Müller +--- + src/lib/epdf_main.h | 45 ----------------------------------- + src/lib/mupdf/epdf_mupdf_main.c | 18 -------------- + src/lib/poppler/epdf_poppler_main.cpp | 21 ---------------- + 3 files changed, 84 deletions(-) + +diff --git a/src/lib/epdf_main.h b/src/lib/epdf_main.h +index 54a57ca..0a79bad 100644 +--- a/src/lib/epdf_main.h ++++ b/src/lib/epdf_main.h +@@ -29,49 +29,4 @@ EAPI int epdf_shutdown(); + */ + EAPI const char *epdf_backend_version_get (void); + +-/** +- * @brief Return the state of fonts antialiasing in Poppler +- * +- * @return EINA_TRUE if fonts antialiasing enabled, EINA_FALSE otherwise. +- * +- * Return EINA_TRUE if the state of fonts antialiasing is enabled in +- * Poppler, EINA_FALSE otherwise. +- * +- * @ingroup Epdf_Main +- */ +-EAPI Eina_Bool epdf_fonts_antialias_get (void); +- +-/** +- * @brief Sets fonts antialiasing mode in Poppler +- * +- * @param on EINA_TRUE to enable fonts antialiasing, EINA_FALSE to disable +- * +- * Set @p on to EINA_TRUE to enable fonts antialiasing in Poppler, +- * EINA_FALSE to disable it. +- */ +-EAPI void epdf_fonts_antialias_set (Eina_Bool on); +- +-/** +- * @brief Return the state of lines antialiasing in Poppler +- * +- * @return EINA_TRUE if lines antialiasing enabled, EINA_FALSE otherwise. +- * +- * Return EINA_TRUE if the state of lines antialiasing is enabled in +- * Poppler, EINA_FALSE otherwise. +- * +- * @ingroup Epdf_Main +- */ +-EAPI Eina_Bool epdf_lines_antialias_get (void); +- +-/** +- * @brief Sets lines antialiasing mode in Poppler +- * +- * @param on EINA_TRUE to enable lines antialiasing, EINA_FALSE to disable +- * +- * Set @p on to EINA_TRUE to enable lines antialiasing in Poppler, +- * EINA_FALSE to disable it. +- */ +-EAPI void epdf_lines_antialias_set (Eina_Bool on); +- +- + #endif /* __EPDF_MAIN_H__ */ +diff --git a/src/lib/mupdf/epdf_mupdf_main.c b/src/lib/mupdf/epdf_mupdf_main.c +index 17bb830..27c6de2 100644 +--- a/src/lib/mupdf/epdf_mupdf_main.c ++++ b/src/lib/mupdf/epdf_mupdf_main.c +@@ -37,21 +37,3 @@ epdf_backend_version_get (void) + { + return "0.5"; + } +- +-Eina_Bool epdf_fonts_antialias_get(void) +-{ +- return EINA_TRUE; +-} +- +-void epdf_fonts_antialias_set(Eina_Bool on) +-{ +-} +- +-Eina_Bool epdf_lines_antialias_get(void) +-{ +- return EINA_TRUE; +-} +- +-void epdf_lines_antialias_set(Eina_Bool on) +-{ +-} +diff --git a/src/lib/poppler/epdf_poppler_main.cpp b/src/lib/poppler/epdf_poppler_main.cpp +index 9841987..9efdbe8 100644 +--- a/src/lib/poppler/epdf_poppler_main.cpp ++++ b/src/lib/poppler/epdf_poppler_main.cpp +@@ -46,24 +46,3 @@ epdf_backend_version_get (void) + { + return POPPLER_VERSION; + } +- +-Eina_Bool epdf_fonts_antialias_get (void) +-{ +- return globalParams->getAntialias(); +-} +- +-void epdf_fonts_antialias_set (Eina_Bool on) +-{ +- /* Nice API */ +- globalParams->setAntialias((char*)(on ? "yes" : "no")); +-} +- +-Eina_Bool epdf_lines_antialias_get (void) +-{ +- return globalParams->getVectorAntialias(); +-} +- +-void epdf_lines_antialias_set (Eina_Bool on) +-{ +- globalParams->setVectorAntialias((char*)(on ? "yes" : "no")); +-} +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch new file mode 100644 index 000000000..c9adaa731 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf/0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch @@ -0,0 +1,45 @@ +From a84c16fdc606f22b993f870b1cea56dd060a35e6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 22 Oct 2015 16:55:30 +0200 +Subject: [PATCH 2/2] epdf_poppler_postscript.cpp: fix build for poppler API + change +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Poppler API was changed in [1]. The patch not only shows the change but also +inspires how to fix. + +[1] http://cgit.freedesktop.org/poppler/poppler/commit/?id=9caf7525409d699c16896653528486451123b485 + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/lib/poppler/epdf_poppler_postscript.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/lib/poppler/epdf_poppler_postscript.cpp b/src/lib/poppler/epdf_poppler_postscript.cpp +index 0c2836b..656193b 100644 +--- a/src/lib/poppler/epdf_poppler_postscript.cpp ++++ b/src/lib/poppler/epdf_poppler_postscript.cpp +@@ -82,11 +82,14 @@ epdf_postscript_print (const Epdf_Postscript *postscript) + + // FIXME: fix postscript title + #ifdef HAVE_POPPLER_0_20 ++ std::vector pages; ++ for (int i = postscript->first_page; i <= postscript->last_page; ++i) { ++ pages.push_back(i); ++ } + PSOutputDev ps_dev(postscript->filename, + postscript->pdfdoc, + (char *)"PS title", +- postscript->first_page, +- postscript->last_page, ++ pages, + psModePS, + (int)postscript->width, + (int)postscript->height, +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf_svn.bb new file mode 100644 index 000000000..e32a5fdb0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/epdf_svn.bb @@ -0,0 +1,27 @@ +SUMMARY = "Epdf is the glue between EFL and libpoppler" + +DEPENDS = "poppler evas ecore" +PV = "0.1.0+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit efl + +LICENSE = "GPLv2 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \ +" + +SRC_URI = " \ + ${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \ + file://0001-remove-antialias-functions-poppler-has-dropped-them-.patch \ + file://0002-epdf_poppler_postscript.cpp-fix-build-for-poppler-AP.patch \ +" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = "\ + --enable-poppler \ + --disable-mupdf \ +" + +# Some upgrade path tweaking, as in evas +AUTO_LIBNAME_PKGS = "" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders.inc new file mode 100644 index 000000000..5cd9ec188 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders.inc @@ -0,0 +1,71 @@ +DESCRIPTION = "Evas generic loaders" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a87563ed30add2b0e3460272d3138a00" +DEPENDS = "eina poppler librsvg cairo" + +inherit efl + +SRCNAME = "evas_generic_loaders" + +EXTRA_OECONF = " \ + --enable-poppler \ + --enable-svg \ + --disable-gstreamer \ + --disable-libraw \ + --disable-spectre \ +" + +PACKAGESPLITFUNCS_prepend = "split_evas_loader_packages " + +python split_evas_loader_packages () { + bb.note( "splitting packages for evas generic loaders" ) + basedir = d.expand( '${libdir}/evas/utils') + + do_split_packages(d, basedir, 'evas_image_loader\.(.*)$', + output_pattern = "evas-generic-loader-%s", + description = 'Evas generic loaders - module %s', + allow_dirs=True, recursive=False, extra_depends="" ) + + do_split_packages(d, basedir, 'evas_generic_pdf_loader\.(.*)$', + output_pattern = "evas-generic-pdf-loader-%s", + description = 'Evas generic pdf loaders - module %s', + allow_dirs=True, recursive=False, extra_depends="" ) +} + +# add symlinks for different format (it doesn't make much sense to package them in separate packages) +FILES_evas-generic-loader-xcf += " \ + ${libdir}/evas/utils/evas_image_loader.xcf.gz \ +" +FILES_evas-generic-loader-svg += " \ + ${libdir}/evas/utils/evas_image_loader.svg.gz \ + ${libdir}/evas/utils/evas_image_loader.svgz \ +" +FILES_evas-generic-loader-pdf += " \ + ${libdir}/evas/utils/evas_image_loader.doc \ + ${libdir}/evas/utils/evas_image_loader.docx \ + ${libdir}/evas/utils/evas_image_loader.odp \ + ${libdir}/evas/utils/evas_image_loader.ods \ + ${libdir}/evas/utils/evas_image_loader.odt \ + ${libdir}/evas/utils/evas_image_loader.ppt \ + ${libdir}/evas/utils/evas_image_loader.pptx \ + ${libdir}/evas/utils/evas_image_loader.rtf \ + ${libdir}/evas/utils/evas_image_loader.xls \ + ${libdir}/evas/utils/evas_image_loader.xlsx \ +" +FILES_evas-generic-pdf-loader-libreoffice += " \ + ${libdir}/evas/utils/evas_generic_pdf_loader.doc \ + ${libdir}/evas/utils/evas_generic_pdf_loader.docx \ + ${libdir}/evas/utils/evas_generic_pdf_loader.odp \ + ${libdir}/evas/utils/evas_generic_pdf_loader.ods \ + ${libdir}/evas/utils/evas_generic_pdf_loader.odt \ + ${libdir}/evas/utils/evas_generic_pdf_loader.ppt \ + ${libdir}/evas/utils/evas_generic_pdf_loader.pptx \ + ${libdir}/evas/utils/evas_generic_pdf_loader.rtf \ + ${libdir}/evas/utils/evas_generic_pdf_loader.xls \ + ${libdir}/evas/utils/evas_generic_pdf_loader.xlsx \ +" + +FILES_${PN}-dbg += "${libdir}/evas/utils/.debug" + +PACKAGES += "evas-generic-loader-svg" +PACKAGES_DYNAMIC += "^evas-generic-loader-.* ^evas-generic-pdf-loader-.*" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb new file mode 100644 index 000000000..911ce8ca4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/evas-generic-loaders_1.15.0.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +SRC_URI[md5sum] = "3ca8443b8cbf177845595c5e02fbc49c" +SRC_URI[sha256sum] = "caa22c9ba1ae9629c16a3fe809ea927f60b8f0d80cdb7f145159b997b9ae2bcd" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite.inc new file mode 100644 index 000000000..60e85974c --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite.inc @@ -0,0 +1,25 @@ +DESCRIPTION = "Expedite is a comprehensive benchmarking suite for Evas" +DEPENDS = "eet evas libsdl" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d70bc65d46237e4ef386beebe7d0fe5b" + +INC_PR = "r0" + +inherit e + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-simple-x11 \ +\ + --enable-software-x11 \ + --enable-xrender-x11 \ + --enable-software-16-x11 \ + --enable-opengl-x11 \ + --enable-fb \ + --disable-software-ddraw \ + --disable-direct3d \ +" + +FILES_${PN} += "${datadir}" +RDEPENDS_${PN} = "expedite-themes evas-engine-fb evas-engine-software-generic evas-engine-software-x11 evas-engine-gl-x11 evas-loader-png" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_1.7.9.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_1.7.9.bb new file mode 100644 index 000000000..cee2d607b --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_1.7.9.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI = "\ + ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \ +" + +SRC_URI[md5sum] = "954fe8e40fec6a561190ff0fb75b6bdd" +SRC_URI[sha256sum] = "a05be096c911e0d66d4bdc497ebb935a04ad23696de9084aed9959b5172a593e" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_git.bb new file mode 100644 index 000000000..5b44cf039 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/expedite_git.bb @@ -0,0 +1,11 @@ +require ${BPN}.inc + +SRCREV = "a5e6af917af52877b378090811cf836c16d0bfbb" +PV = "1.7.99+gitr${SRCPV}" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "\ + git://git.enlightenment.org/tools/${BPN}.git \ +" +S = "${WORKDIR}/${SRCNAME}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/imlib2_git.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/imlib2_git.bb new file mode 100644 index 000000000..355b3341f --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/imlib2_git.bb @@ -0,0 +1,45 @@ +SUMMARY = "A graphic library for file loading, saving, rendering, and manipulation" +LICENSE = "MIT & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" + +DEPENDS = "freetype libpng jpeg virtual/libx11 libxext" +PROVIDES = "virtual/imlib2" +PV = "1.4.6+gitr${SRCPV}" +SRCREV = "560a58e61778d84953944f744a025af6ce986334" + +inherit efl binconfig +SRC_URI = "git://git.enlightenment.org/legacy/${BPN}.git" +S = "${WORKDIR}/git" + +# autotools-brokensep +B = "${S}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib" +PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff" +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" +PACKAGECONFIG[id3] = "--with-id3,--without-id3,libid3tag" + +EXTRA_OECONF = "--with-x \ + --x-includes=${STAGING_INCDIR} \ + --x-libraries=${STAGING_LIBDIR} " + +# TODO: Use more fine granular version +#OE_LT_RPATH_ALLOW=":${libdir}/imlib2/loaders:${libdir}/imlib2/filters:" +OE_LT_RPATH_ALLOW = "any" +OE_LT_RPATH_ALLOW[export]="1" + +PACKAGES =+ "imlib2-loaders-dbg imlib2-filters-dbg imlib2-loaders imlib2-filters" +FILES_${PN} = "${libdir}/lib*.so.* ${libdir}/imlib2/*/*.so" +FILES_${PN}-dbg = "${libdir}/.debug/ ${bindir}/.debug/ ${prefix}/src/debug/" +FILES_${PN}-dev += "${bindir}/imlib2-config ${libdir}/*.so ${includedir}" +FILES_${PN}-bin = "${bindir}" +FILES_imlib2-loaders = "${libdir}/imlib2/loaders/*.so" +FILES_imlib2-filters = "${libdir}/imlib2/filters/*.so" +FILES_imlib2-loaders-dbg += "${libdir}/imlib2/loaders/.debug" +FILES_imlib2-filters-dbg += "${libdir}/imlib2/filters/.debug" + +# png.so jpeg.so id3.so are also provided by lightmediascanner +PRIVATE_LIBS_imlib2-loaders = "pnm.so lbm.so argb.so tiff.so zlib.so bmp.so tga.so gif.so xpm.so bz2.so" + +PRIVATE_LIBS_imlib2-filters = "bumpmap.so colormod.so testfilter.so" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch new file mode 100644 index 000000000..84be133f6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch @@ -0,0 +1,44 @@ +It causes testeina.c build to fail linking to internal eina_.*_{init,shutdown} symbols +as reported in: +http://lists.alioth.debian.org/pipermail/pkg-fso-maint/2010-May/003056.html + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa + +diff -uNr vala/tests/testeina.vala ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala +--- vala/tests/testeina.vala 2014-01-13 16:16:53.984999035 +0100 ++++ ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala 2010-02-26 09:02:06.000000000 +0100 +@@ -153,22 +153,22 @@ + + void test_eina_benchmark() + { +- assert( Eina.Module.init() ); +- assert( Eina.List.init() ); +- assert( Eina.Array.init() ); +- assert( Eina.Benchmark.init() ); +- assert( Eina.Mempool.init() ); ++// assert( Eina.Module.init() ); ++// assert( Eina.List.init() ); ++// assert( Eina.Array.init() ); ++// assert( Eina.Benchmark.init() ); ++// assert( Eina.Mempool.init() ); + var b = new Eina.Benchmark( "test", "test"); + assert( b.register( "bogus", spec_one, 0, 100, 5 ) ); + unowned Eina.Array result = b.run(); + assert( result.count_get() == 2 ); + result = null; + b = null; +- assert( Eina.Mempool.shutdown() ); +- assert( Eina.Benchmark.shutdown() ); +- assert( Eina.Array.shutdown() ); +- assert( Eina.List.shutdown() ); +- assert( Eina.Module.shutdown() ); ++// assert( Eina.Mempool.shutdown() ); ++// assert( Eina.Benchmark.shutdown() ); ++// assert( Eina.Array.shutdown() ); ++// assert( Eina.List.shutdown() ); ++// assert( Eina.Module.shutdown() ); + } + + //=========================================================================== diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala_svn.bb new file mode 100644 index 000000000..4922b1b37 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeflvala_svn.bb @@ -0,0 +1,21 @@ +SUMMARY = "Vala meets the Enlightenment Foundation Libraries" +AUTHOR = "Michael 'Mickey' Lauer " +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +SECTION = "devel" +DEPENDS = "vala-native glib-2.0 dbus dbus-glib eina eet evas ecore edje elementary tiff" +PV = "2011.01.13.1+svnr${SRCPV}" +PE = "1" +PR = "r2" +SRCREV = "${EFL_SRCREV}" +SRCNAME = "vala" + +inherit e-base autotools-brokensep pkgconfig vala + +SRC_URI = "${E_SVN}/trunk/BINDINGS;module=${SRCNAME};protocol=http \ + file://disable.eina.test.patch \ +" +S = "${WORKDIR}/${SRCNAME}" + +PACKAGES =+ "${PN}-examples" +FILES_${PN}-examples = "${datadir}/libeflvala ${bindir}/*" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeweather_svn.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeweather_svn.bb new file mode 100644 index 000000000..eff858617 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/efl/libeweather_svn.bb @@ -0,0 +1,46 @@ +SUMMARY = "EFL-based weather widget library" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" + +DEPENDS = "ecore edje" +PV = "0.0.0+svnr${SRCPV}" +SRCREV = "${EFL_SRCREV}" + +inherit efl +SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep" +S = "${WORKDIR}/${SRCNAME}" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +RSUGGESTS_${PN} = "elementary-tests" + +do_compile_append() { + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + eweather.pc +} + +PACKAGES += "${PN}-plugins" + +FILES_${PN}-themes = "\ + ${datadir} \ +" + +FILES_${PN}-plugins = "\ + ${libdir}/eweather/plugins/*.so \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/eweather/plugins/.debug \ +" + +FILES_${PN}-dev += "\ + ${libdir}/eweather/plugins/*.a \ + ${libdir}/eweather/plugins/*.la \ +" + +RRECOMMENDS_${PN} = "\ + ${PN}-themes \ + ${PN}-plugins \ +" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb new file mode 100644 index 000000000..5ead412ef --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb @@ -0,0 +1,17 @@ +SUMMARY = "Efl Software Development Kit" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +ALLOW_EMPTY_${PN} = "1" + +PR = "r1" + +require packagegroup-efl-sdk.inc + +PACKAGES = "${PN}" + +RDEPENDS_${PN} = "\ + packagegroup-core-sdk \ + ${SDK-EFL} \ + ${SDK-EXTRAS}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc new file mode 100644 index 000000000..f2b0456d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc @@ -0,0 +1,12 @@ +SDK-EFL = " \ + efl-dev \ + elementary-dev \ + edbus-dev \ + luajit-dev \ +" + +SDK-EXTRAS ?= "" +SDK-EXTRAS_qemux86 ?= " valgrind lttng-ust-dev" +SDK-EXTRAS_qemux86-64 ?= " lttng-ust-dev" +SDK-EXTRAS_qemuppc ?= " lttng-ust-dev" +SDK-EXTRAS_qemuarm ?= " lttng-ust-dev" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb new file mode 100644 index 000000000..6a3f33dc6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb @@ -0,0 +1,17 @@ +SUMMARY = "Efl Software Development Kit" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +ALLOW_EMPTY_${PN} = "1" + +PR = "r1" + +require packagegroup-efl-sdk.inc + +PACKAGES = "${PN} ${PN}-dbg" + +RDEPENDS_${PN} = "\ + packagegroup-core-standalone-sdk-target \ + ${SDK-EFL} \ + ${SDK-EXTRAS}" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb new file mode 100644 index 000000000..999782868 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "The Illume Windowing Environment -- install this task to get the Enlightenment Window Manager + the Illume environment." +SECTION = "x11/wm" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${TOPDIR}/meta-openembedded/meta-efl/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +PV = "1.0" +PR = "r5" + +inherit packagegroup allarch + +# Default theme and config +ETHEME ?= "e-wm-theme-default" +ECONFIG ?= "e-wm-config-mobile" + +RRECOMMENDS_${PN} = "\ + ${ETHEME} \ +" + +RDEPENDS_${PN} = "\ + packagegroup-core-x11-xserver \ + packagegroup-core-x11-utils \ + \ + e-wm \ + ${ECONFIG} \ +" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl.inc b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl.inc new file mode 100644 index 000000000..c6ef97612 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl.inc @@ -0,0 +1,69 @@ +DESCRIPTION = "Webkit browser engine, EFL edition" +LICENSE = "GPLv2+ & LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ +" + +# you need harfbuzz with icu enabled, you can add this to your config: +# PACKAGECONFIG_append_pn-harfbuzz = " icu" +DEPENDS = "icu libxslt sqlite3 gperf-native bison-native flex-native jpeg \ + libpng libxt fontconfig cairo freetype glib-2.0 libsoup-2.4 \ + libxml2 pango eina ecore evas edje eldbus harfbuzz enchant \ + ruby-native elementary" + +PE = "1" + +SRCVER ?= "${PV}" +SRC_URI = "\ + ${E_RELEASES}/libs/webkit-efl/ewebkit-${SRCVER}.tar.xz \ +" +S = "${WORKDIR}/ewebkit" + +inherit cmake lib_package pkgconfig perlnative pythonnative + +ARM_INSTRUCTION_SET = "arm" + +EXTRA_OECMAKE = " \ + -DPORT=Efl \ + -DSHARED_CORE=On \ + -DENABLE_DRAG_SUPPORT=On \ + -DENABLE_WEB_AUDIO=Off \ + -DENABLE_VIDEO=Off \ + -DENABLE_VIDEO_TRACK=Off \ + -DENABLE_ACCESSIBILITY=Off \ + -DENABLE_BATTERY_STATUS=Off \ +" +# generated ASM code isn't compatible with armv[45] +# it was removed from macro assembler in upstream commit 121885 +# https://bugs.webkit.org/show_bug.cgi?id=90198 +EXTRA_OECMAKE_append_armv4 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off" +EXTRA_OECMAKE_append_armv5 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off" + +# hack it in OptionsEfl.cmake because that overrules -DENABLE_LLINT=Off +do_configure_prepend_armv4() { + 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 +} +do_configure_prepend_armv5() { + 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 +} + +# and disabled LLINT currently isn't supported, so restrict to armv7a and x86* +COMPATIBLE_MACHINE = "(-)" +COMPATIBLE_MACHINE_x86 = "(.*)" +COMPATIBLE_MACHINE_x86-64 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" + +LEAD_SONAME = "libewebkit.so" +PACKAGES =+ "${PN}launcher-dbg ${PN}launcher ${PN}-inspector" + +FILES_${PN} += "${datadir}/ewebkit2-1/themes/default.edj" +FILES_${PN}-dev += "${libdir}/cmake" +FILES_${PN}launcher = "${bindir}/EWebLauncher" +FILES_${PN}launcher-dbg = "${bindir}/.debug/EWebLauncher" +FILES_${PN}-inspector += "${datadir}/ewebkit2-1/inspector" + +# http://errors.yoctoproject.org/Errors/Details/40659/ +PNBLACKLIST[webkit-efl] ?= "Old and unmaintaned fork with many security issues" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch new file mode 100644 index 000000000..19b7bb88d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch @@ -0,0 +1,46 @@ +From e6caaf6e80b9c80dc2b860b471a8f05e825f6dfa Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Thu, 14 Aug 2014 01:00:21 +0200 +Subject: [PATCH 1/3] OptionsCommon.cmake: don't mix CXX_FLAGS into C_FLAGS + +* it was added in https://bugs.webkit.org/show_bug.cgi?id=130261 +* causes build failures in udis86 which explicitly asks for gcc but then + gets g++ flags from CMAKE_CXX_FLAGS. + +cc1: error: command line option '-fvisibility-inlines-hidden' is valid +for C++/ObjC++ but not for C [-Werror] +cc1: error: command line option '-fpermissive' is valid for C++/ObjC++ +but not for C [-Werror] +cc1: all warnings being treated as errors +Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:11182: +recipe for target +'Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o' +failed +make[2]: *** +[Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o] +Error 1 +make[2]: *** Waiting for unfinished jobs.... +make[2]: Leaving directory +'/OE/build/oe-core/tmp-eglibc/work/core2-64-oe-linux/webkit-efl/1_1.10.0+1.11.0-beta1-r0/build' + +Signed-off-by: Martin Jansa +--- + Source/cmake/OptionsCommon.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake +index e304a99..045c614 100644 +--- a/Source/cmake/OptionsCommon.cmake ++++ b/Source/cmake/OptionsCommon.cmake +@@ -25,7 +25,7 @@ endif () + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + + if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") +- set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-exceptions -fno-strict-aliasing -fno-rtti") + endif () + +-- +2.1.3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch new file mode 100644 index 000000000..627a9e82b --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch @@ -0,0 +1,45 @@ +From de93951f89e851b6689718022eebb4b8b1d14c06 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 13 Jan 2014 17:21:25 +0100 +Subject: [PATCH 2/3] WebKitHelpers.cmake: Add + -Wno-error=deprecated-declarations -Wno-error=cast-align + -Wno-error=type-limits + +Signed-off-by: Martin Jansa +--- + Source/cmake/WebKitHelpers.cmake | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake +index 227b9ee..ae52ef6 100644 +--- a/Source/cmake/WebKitHelpers.cmake ++++ b/Source/cmake/WebKitHelpers.cmake +@@ -40,6 +40,25 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) + # FIXME: When we use -fno-tree-dce to support the jsCStack branch merge, build error occurs due to the uninitialization. Temporarily we set + # uninitialized as build warning in order to support the jsCStack merge. https://bugs.webkit.org/show_bug.cgi?id=127777. + set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized -Wno-error=literal-suffix ${OLD_COMPILE_FLAGS}") ++ # 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] ++ set(OLD_COMPILE_FLAGS "-Wno-error=deprecated-declarations ${OLD_COMPILE_FLAGS}") ++ # 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] ++ set(OLD_COMPILE_FLAGS "-Wno-error=cast-align ${OLD_COMPILE_FLAGS}") ++ # 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] ++ set(OLD_COMPILE_FLAGS "-Wno-error=type-limits ${OLD_COMPILE_FLAGS}") ++ # 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] ++ # this one is new with efl-1.12 ++ set(OLD_COMPILE_FLAGS "-Wno-error=missing-field-initializers ${OLD_COMPILE_FLAGS}") ++ # 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] ++ # this one is new with gcc-5.2 ++ set(OLD_COMPILE_FLAGS "-Wno-error=strict-overflow ${OLD_COMPILE_FLAGS}") ++ # 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] ++ # this one is new with gcc-5.2 ++ set(OLD_COMPILE_FLAGS "-Wno-error=parentheses ${OLD_COMPILE_FLAGS}") ++ # 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] ++ # this one is new with gcc-5.2 ++ set(OLD_COMPILE_FLAGS "-Wno-error=logical-not-parentheses ${OLD_COMPILE_FLAGS}") ++ + endif () + + set_target_properties(${_target} PROPERTIES +-- +2.1.3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch new file mode 100644 index 000000000..e718ee1c1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch @@ -0,0 +1,35 @@ +From a076d76b8e8862bd641cd991190e82cfd478cc66 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 20 Aug 2014 00:52:03 +0200 +Subject: [PATCH 3/3] FEBlendNEON.h: fix missing semicolon + +* Otherwise fails with: +In file included from ewebkit/Source/WebCore/platform/graphics/filters/FEBlend.cpp:29:0: +ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h: In member function 'virtual void WebCore::FEBlend::platformApplySoftware()': +ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected primary-expression before '}' token + } + ^ +ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: return-statement with a value, in function returning 'void' [-fpermissive] +ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected ';' before '}' token + +Signed-off-by: Martin Jansa +--- + Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h +index 1c50765..f4b6f46 100644 +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h ++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h +@@ -126,7 +126,7 @@ void FEBlend::platformApplySoftware() + + if (pixelArrayLength >= 8) { + platformApplyNEON(srcPixelArrayA->data(), srcPixelArrayB->data(), dstPixelArray->data(), pixelArrayLength); +- return ++ return; + } + // If there is just one pixel we expand it to two. + ASSERT(pixelArrayLength > 0); +-- +2.1.3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch new file mode 100644 index 000000000..bfa3052b1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch @@ -0,0 +1,146 @@ +From baebc004111289ef658c78a42f8332f3dceef41e Mon Sep 17 00:00:00 2001 +From: "ryuan.choi@navercorp.com" +Date: Thu, 13 Nov 2014 07:07:16 +0000 +Subject: [PATCH 4/4] Fix the build with EFL 1.12 + https://bugs.webkit.org/show_bug.cgi?id=138245 + +Reviewed by Gyuyoung Kim. + +Source/WebKit2: + +* UIProcess/API/efl/EwkView.cpp: +First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because +Evas_GL.h can't be included in UniquePtrEfl.h +It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL. +Second, provided the version of GLES in Evas_GL_Config not to break build with +EFL 1.12 +(EwkView::EwkView): +(EwkView::~EwkView): +(EwkView::displayTimerFired): +(EwkView::createGLSurface): +* UIProcess/API/efl/EwkView.h: + +Source/WTF: + +* wtf/efl/UniquePtrEfl.h: +Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because +it should not be included with official GL headers. + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176066 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WTF/wtf/efl/UniquePtrEfl.h | 2 -- + Source/WebKit2/UIProcess/API/efl/EwkView.cpp | 24 ++++++++++++++++-------- + Source/WebKit2/UIProcess/API/efl/EwkView.h | 3 ++- + 3 files changed, 18 insertions(+), 11 deletions(-) + +diff --git a/Source/WTF/wtf/efl/UniquePtrEfl.h b/Source/WTF/wtf/efl/UniquePtrEfl.h +index ba0110a..038d3fb 100644 +--- a/Source/WTF/wtf/efl/UniquePtrEfl.h ++++ b/Source/WTF/wtf/efl/UniquePtrEfl.h +@@ -33,7 +33,6 @@ + #include + #include + #include +-#include + + namespace WTF { + +@@ -51,7 +50,6 @@ using EflUniquePtr = std::unique_ptr>; + macro(Eina_Hash, eina_hash_free) \ + macro(Eina_Module, eina_module_free) \ + macro(Evas_Object, evas_object_del) \ +- macro(Evas_GL, evas_gl_free) + + #define WTF_DEFINE_EFLPTR_DELETER(typeName, deleterFunc) \ + template<> struct EflPtrDeleter \ +diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp +index 50d34ed..6ff3394 100755 +--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp ++++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp +@@ -299,9 +299,11 @@ EwkView::EwkView(WKViewRef view, Evas_Object* evasObject) + + // FIXME: Remove when possible. + static_cast(webView())->setEwkView(this); +- m_evasGL = EflUniquePtr(evas_gl_new(evas_object_evas_get(m_evasObject))); ++ ++ // FIXME: Consider it to move into EvasGLContext. ++ m_evasGL = evas_gl_new(evas_object_evas_get(m_evasObject)); + if (m_evasGL) +- m_evasGLContext = EvasGLContext::create(m_evasGL.get()); ++ m_evasGLContext = EvasGLContext::create(m_evasGL); + + if (!m_evasGLContext) { + WARN("Failed to create Evas_GL, falling back to software mode."); +@@ -333,6 +335,9 @@ EwkView::~EwkView() + { + ASSERT(wkPageToEvasObjectMap().get(wkPage()) == m_evasObject); + wkPageToEvasObjectMap().remove(wkPage()); ++ ++ if (m_evasGL) ++ evas_gl_free(m_evasGL); + } + + EwkView* EwkView::create(WKViewRef webView, Evas* canvas, Evas_Smart* smart) +@@ -587,7 +592,7 @@ void EwkView::displayTimerFired(Timer*) + return; + } + +- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context()); ++ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context()); + + WKViewPaintToCurrentGLContext(wkView()); + +@@ -828,21 +833,24 @@ bool EwkView::createGLSurface() + EVAS_GL_DEPTH_BIT_8, + EVAS_GL_STENCIL_NONE, + EVAS_GL_OPTIONS_NONE, +- EVAS_GL_MULTISAMPLE_NONE ++ EVAS_GL_MULTISAMPLE_NONE, ++#if defined(EVAS_GL_API_VERSION) && EVAS_GL_API_VERSION >= 2 ++ EVAS_GL_GLES_2_X ++#endif + }; + + // Recreate to current size: Replaces if non-null, and frees existing surface after (OwnPtr). +- m_evasGLSurface = EvasGLSurface::create(m_evasGL.get(), &evasGLConfig, deviceSize()); ++ m_evasGLSurface = EvasGLSurface::create(m_evasGL, &evasGLConfig, deviceSize()); + if (!m_evasGLSurface) + return false; + + Evas_Native_Surface nativeSurface; +- evas_gl_native_surface_get(m_evasGL.get(), m_evasGLSurface->surface(), &nativeSurface); ++ evas_gl_native_surface_get(m_evasGL, m_evasGLSurface->surface(), &nativeSurface); + evas_object_image_native_surface_set(smartData()->image, &nativeSurface); + +- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context()); ++ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context()); + +- Evas_GL_API* gl = evas_gl_api_get(m_evasGL.get()); ++ Evas_GL_API* gl = evas_gl_api_get(m_evasGL); + + WKPoint boundsEnd = WKViewUserViewportToScene(wkView(), WKPointMake(deviceSize().width(), deviceSize().height())); + gl->glViewport(0, 0, boundsEnd.x, boundsEnd.y); +diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.h b/Source/WebKit2/UIProcess/API/efl/EwkView.h +index 1c482cf..68dab87 100644 +--- a/Source/WebKit2/UIProcess/API/efl/EwkView.h ++++ b/Source/WebKit2/UIProcess/API/efl/EwkView.h +@@ -39,6 +39,7 @@ + #endif + + typedef struct _cairo_surface cairo_surface_t; ++typedef struct _Evas_GL Evas_GL; + + namespace WebKit { + class ContextMenuClientEfl; +@@ -241,7 +242,7 @@ private: + Evas_Object* m_evasObject; + RefPtr m_context; + RefPtr m_pageGroup; +- EflUniquePtr m_evasGL; ++ Evas_GL* m_evasGL; + std::unique_ptr m_evasGLContext; + std::unique_ptr m_evasGLSurface; + bool m_pendingSurfaceResize; +-- +2.1.3 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch new file mode 100644 index 000000000..7e8e295c7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0005-Fix-the-build-with-cmake-3.patch @@ -0,0 +1,104 @@ +From a00a7097b85567ae6eb7a00b3ce7ef021841203c Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Thu, 24 Sep 2015 18:03:52 +0200 +Subject: [PATCH 5/5] Fix the build with cmake 3 + +* the same issue as in GTK port: + https://bugs.webkit.org/show_bug.cgi?id=141796 + http://trac.webkit.org/changeset/180502 + +* otherwise linking fails with couple undefined symbols +| CMakeFiles/WebKit2.dir/PluginProcess/unix/PluginProcessMainUnix.cpp.o: In function `WebKit::webkitXError(_XDisplay*, XErrorEvent*)': +| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:63: undefined reference to `XGetErrorText' +| CMakeFiles/WebKit2.dir/PluginProcess/unix/PluginProcessMainUnix.cpp.o: In function `WebKit::PluginProcessMain::parseCommandLine(int, char**)': +| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:102: undefined reference to `XSetErrorHandler' +| ewebkit/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp:102: undefined reference to `XSetErrorHandler' +| CMakeFiles/WebKit2.dir/WebProcess/efl/WebProcessMainEfl.cpp.o: In function `WebKit::WebProcessMain::platformInitialize()': +| ewebkit/Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:67: undefined reference to `XSetExtensionErrorHandler' +| ewebkit/Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:67: undefined reference to `XSetExtensionErrorHandler' +| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPostInitializeWindowed(bool, unsigned long)': +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:170: undefined reference to `XFlush' +| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPostInitializeWindowless()': +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:195: undefined reference to `XGetVisualInfo' +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:199: undefined reference to `XFree' +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:202: undefined reference to `XCreateColormap' +| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformDestroy()': +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:251: undefined reference to `XFreeColormap' +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:255: undefined reference to `XFreePixmap' +| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformGeometryDidChange()': +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:293: undefined reference to `XCreatePixmap' +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:286: undefined reference to `XFreePixmap' +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:295: undefined reference to `XSync' +| CMakeFiles/WebKit2.dir/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp.o: In function `WebKit::NetscapePlugin::platformPaint(WebCore::GraphicsContext*, WebCore::IntRect const&, bool)': +| ewebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:343: undefined reference to `XSync' +| collect2: error: ld returned 1 exit status +| Source/WebKit2/CMakeFiles/WebKit2.dir/build.make:16145: recipe for target 'lib/libewebkit2.so.1.11.0' failed +| make[2]: *** [lib/libewebkit2.so.1.11.0] Error 1 + +Signed-off-by: Martin Jansa +--- + Source/WebCore/PlatformEfl.cmake | 1 + + Source/WebKit2/PlatformEfl.cmake | 3 +++ + Source/cmake/OptionsEfl.cmake | 1 + + Tools/WebKitTestRunner/PlatformEfl.cmake | 1 + + 4 files changed, 6 insertions(+) + +diff --git a/Source/WebCore/PlatformEfl.cmake b/Source/WebCore/PlatformEfl.cmake +index 41ffc15..63b7861 100644 +--- a/Source/WebCore/PlatformEfl.cmake ++++ b/Source/WebCore/PlatformEfl.cmake +@@ -404,6 +404,7 @@ if (WTF_USE_3D_GRAPHICS) + ) + endif () + ++ find_package(X11 REQUIRED) + list(APPEND WebCore_LIBRARIES + ${X11_X11_LIB} + ) +diff --git a/Source/WebKit2/PlatformEfl.cmake b/Source/WebKit2/PlatformEfl.cmake +index 8c66d1b..d96f0bd 100644 +--- a/Source/WebKit2/PlatformEfl.cmake ++++ b/Source/WebKit2/PlatformEfl.cmake +@@ -331,12 +331,15 @@ if (ENABLE_SECCOMP_FILTERS) + endif () + + if (ENABLE_ECORE_X) ++ find_package(X11 REQUIRED) + list(APPEND WebProcess_LIBRARIES + ${ECORE_X_LIBRARIES} + ${X11_Xext_LIB} + ) + list(APPEND WebKit2_LIBRARIES + ${ECORE_X_LIBRARIES} ++ ${X11_X11_LIB} ++ ${X11_Xext_LIB} + ) + endif () + +diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake +index 8585f19..1aa9002 100644 +--- a/Source/cmake/OptionsEfl.cmake ++++ b/Source/cmake/OptionsEfl.cmake +@@ -181,6 +181,7 @@ endif () + + if (WTF_OS_UNIX) + set(ENABLE_X11_TARGET ON) ++ find_package(X11 REQUIRED) + add_definitions(-DXP_UNIX) + endif (WTF_OS_UNIX) + +diff --git a/Tools/WebKitTestRunner/PlatformEfl.cmake b/Tools/WebKitTestRunner/PlatformEfl.cmake +index 1873279..a905f2a 100644 +--- a/Tools/WebKitTestRunner/PlatformEfl.cmake ++++ b/Tools/WebKitTestRunner/PlatformEfl.cmake +@@ -53,6 +53,7 @@ list(APPEND WebKitTestRunnerInjectedBundle_LIBRARIES + ) + + if (ENABLE_ECORE_X) ++ find_package(X11 REQUIRED) + list(APPEND WebKitTestRunner_INCLUDE_DIRECTORIES + ${ECORE_X_INCLUDE_DIRS} + ) +-- +2.6.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch new file mode 100644 index 000000000..05626349b --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl/0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch @@ -0,0 +1,30 @@ +From 993882f81fe991b8baf1099392703337cc13fac0 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 27 Jan 2016 18:40:23 +0100 +Subject: [PATCH] OptionsEfl.cmake: Fix build with newer CMake 3.4 + +* otherwise it fails with: + | CMake Error at Source/cmake/OptionsEfl.cmake:251 (CHECK_INCLUDE_FILES): + | Unknown CMake command "CHECK_INCLUDE_FILES". +* https://bugs.webkit.org/show_bug.cgi?id=150117 + +Signed-off-by: Martin Jansa +--- + Source/cmake/OptionsEfl.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake +index 1aa9002..05216d0 100644 +--- a/Source/cmake/OptionsEfl.cmake ++++ b/Source/cmake/OptionsEfl.cmake +@@ -253,6 +253,7 @@ if (ENABLE_WEBGL OR WTF_USE_TILED_BACKING_STORE) + set(WTF_USE_EGL 1) + add_definitions(-DWTF_USE_EGL=1) + else () ++ include(CheckIncludeFiles) + CHECK_INCLUDE_FILES("GL/glx.h" OPENGLX_FOUND) + add_definitions(-DWTF_USE_GLX=1) + endif () +-- +2.7.0 + diff --git a/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb new file mode 100644 index 000000000..96ad83029 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb @@ -0,0 +1,12 @@ +require ${BPN}.inc + +SRC_URI += "\ + file://0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch \ + file://0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch \ + file://0003-FEBlendNEON.h-fix-missing-semicolon.patch \ + file://0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch \ + file://0005-Fix-the-build-with-cmake-3.patch \ + file://0006-OptionsEfl.cmake-Fix-build-with-newer-CMake-3.4.patch \ +" +SRC_URI[md5sum] = "90fa970ebf8646319d292c2bb5bff5db" +SRC_URI[sha256sum] = "d8d21e27f4a21cd77c41914548c184ddb98693ba23851aa66c8e51c0be4b90b7" diff --git a/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch b/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch new file mode 100644 index 000000000..9528bec79 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch @@ -0,0 +1,11 @@ +--- a/src/plugins/Makefile.am 2015-10-25 16:12:29.331415823 +0000 ++++ b/src/plugins/Makefile.am 2015-10-25 16:14:37.593415808 +0000 +@@ -93,7 +93,7 @@ + id3_id3_la_SOURCES = id3/id3.c id3/id3v1_genres.c + id3_id3_la_LIBADD = $(PLUGINS_LIBADD) + +-id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk ++$(srcdir)/id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk + $(AWK) -f $(srcdir)/id3/id3v1_genres_gen.awk $(srcdir)/id3/id3v1_genres.def > $@ + + EXTRA_DIST += id3/id3v1_genres.def id3/id3v1_genres_gen.awk diff --git a/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb b/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb new file mode 100644 index 000000000..9870fac3d --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb @@ -0,0 +1,62 @@ +SUMMARY = "Lightweight media scanner" +DESCRIPTION = "Lightweight media scanner meant to be used in not-so-powerful devices, like embedded systems or old machines." +SECTION = "libs/multimedia" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://src/lib/lightmediascanner.c;endline=21;md5=6d8889bccb4c6c27e8b786342a3eb267" + +DEPENDS = "file gawk glib-2.0 sqlite3" + +PV = "0.5.1+git${SRCPV}" +SRCREV = "adfddb3486276a5ed2f5008c9e43a811e1271cc9" +SRC_URI = "git://github.com/profusion/lightmediascanner.git \ + file://id3-plugin-support-out-of-tree-build.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-static --disable-mp4" + +PACKAGECONFIG ??= "ogg flac wave id3 m3u pls asf rm jpeg png" +PACKAGECONFIG[generic] = "--enable-generic,--disable-generic,libav" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg libvorbis libtheora" +PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" +PACKAGECONFIG[wave] = "--enable-wave,--disable-wave" +PACKAGECONFIG[id3] = "--enable-id3,--disable-id3" +PACKAGECONFIG[m3u] = "--enable-m3u,--disable-m3u" +PACKAGECONFIG[pls] = "--enable-pls,--disable-pls" +PACKAGECONFIG[asf] = "--enable-asf,--disable-asf" +PACKAGECONFIG[rm] = "--enable-rm,--disable-rm" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg" +PACKAGECONFIG[png] = "--enable-png,--disable-png" + +do_install_append() { + # Install "test" binary for corresponding package + install -d ${D}/${bindir} + install -m 755 ${B}/src/bin/.libs/test ${D}/${bindir}/test-lms + # Remove .la files for loadable modules + rm -f ${D}/${libdir}/${PN}/plugins/*.la +} + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug" + +PACKAGES_prepend = "${PN}-test " +FILES_${PN}-test_prepend = "${bindir}/test-lms " + +PACKAGES += "${PN}-meta" +ALLOW_EMPTY_${PN}-meta = "1" + +PACKAGES_DYNAMIC = "${PN}-plugin-*" + +python populate_packages_prepend () { + lms_libdir = d.expand('${libdir}/${PN}') + pkgs = [] + + pkgs += do_split_packages(d, oe.path.join(lms_libdir, "plugins"), '^(.*)\.so$', d.expand('${PN}-plugin-%s'), 'LightMediaScanner plugin for %s', prepend=True, extra_depends=d.expand('${PN}')) + metapkg = d.getVar('PN', True) + '-meta' + d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs)) +} diff --git a/import-layers/meta-openembedded/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb b/import-layers/meta-openembedded/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb new file mode 100644 index 000000000..2b5722b47 --- /dev/null +++ b/import-layers/meta-openembedded/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb @@ -0,0 +1,19 @@ +SUMMARY = "Free GPS navigation for car and outdoor with OpenStreetMap maps" +HOMEPAGE = "http://www.gps-routes.info/index.php?name=Content&pa=showpage&pid=1" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" +DEPENDS = "ecore evas imlib2 gpsd edje edje-native mysql5 intltool-native" + +SRC_URI = "http://www.gps-routes.info/debian/pool/main/m/mcnavi/mcnavi_${PV}.tar.gz" +SRC_URI[md5sum] = "6860cde5c02a9f93c829da4b10e5a226" +SRC_URI[sha256sum] = "ee7f65155e91386175875fc4f72f4bc94e4e9cdb8258112632da94520ef2c349" + +S = "${WORKDIR}/${PN}" + +inherit autotools + +PNBLACKLIST[mcnavi] ?= "BROKEN: latest version 0.3.4 is 3 years old and now broken with more strict ejde_cc from efl-1.13" +# | 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. +# | 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. +# | 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. +# | 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/import-layers/meta-openembedded/meta-filesystems/COPYING.MIT b/import-layers/meta-openembedded/meta-filesystems/COPYING.MIT new file mode 100644 index 000000000..89de35479 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/meta-filesystems/README b/import-layers/meta-openembedded/meta-filesystems/README new file mode 100644 index 000000000..026c13238 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/README @@ -0,0 +1,140 @@ +This README file contains information on the contents of the +filesystems layer. + +Please see the corresponding sections below for details. + + +Dependencies +============ + +This layer depends on: + + URI: git://git.openembedded.org/bitbake + branch: 1.28 + + URI: git://git.openembedded.org/openembedded-core + layers: meta + branch: krogoth + + URI: git://git.openembedded.org/meta-openembedded + layers: meta-oe + branch: krogoth + +Patches +======= + +Please submit any patches against the filesystems layer to the +OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org) +with '[meta-filesystems][krogoth]' in the subject. + +Maintainers List: + physfs Andreas Müller + + fuse Koen Kooi + Philip Balister + hongxu jia + + ifuse Sander van Grieken + Koen Kooi + + sshfs-fuse Philip Balister + Koen Kooi + + owfs Otavio Salvador + Koen Kooi + hongxu jia + + ntfs-3g-ntfsprogs Otavio Salvador + hongxu jia + + cramfs Koen Kooi + + smbnetfs Sander van Grieken + Koen Kooi + + fuse-exfat hongxu jia + + exfat-utils hongxu jia + + f2fs-tools Martin Jansa + Koen Kooi + + xfsprogs Koen Kooi + hongxu jia + +When sending single patches, please use something like: + + git send-email -1 -M \ + --to openembedded-devel@lists.openembedded.org \ + --subject-prefix=meta-filesystems][krogoth][PATCH + +krogoth Branch Maintainer: +Armin Kuster + +Table of Contents +================= + + I. Adding the filesystems layer to your build + II. Misc + + +I. Adding the filesystems layer to your build +================================================= + +In order to use this layer, you need to make the build system aware of +it. + +Assuming the filesystems layer exists at the top-level of your +yocto build tree, you can add it to the build system by adding the +location of the filesystems layer to bblayers.conf, along with any +other layers needed. e.g.: + + BBLAYERS ?= " \ + /path/to/yocto/meta \ + /path/to/yocto/meta-oe \ + /path/to/yocto/meta-filesystems \ + " + + +II. Misc +======== + + --- physfs --- + A library to provide abstract access to various archives + + --- fuse --- + Filesystem in Userspace (FUSE) is a simple interface for userspace programs + to export a virtual filesystem to the Linux kernel. + + --- ifuse --- + A fuse filesystem to access the contents of an iPhone or iPod Touch + + --- sshfs-fuse --- + A filesystem client based on the SSH File Transfer Protocol + + --- owfs --- + An easy way to use the 1-Wire file system + + --- ntfs-3g-ntfsprogs --- + The ntfs-3g is a freely available read/write NTFS driver for Linux and + ntfsprogs includes utilities for doing all required tasks to NTFS partitions. + + --- cramfs --- + Builds cramfs filesystems for embedded systems + + --- smbnetfs --- + SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft + network in the same manner as the network neighborhood in Microsoft Windows. + + --- fuse-exfat --- + A read and write exFAT driver for FUSE + + --- exfat-utils --- + Utilities to create, check, label and dump exFAT filesystem + + --- f2fs-tools --- + Tools needed for creating and managing f2fs partitions + + --- xfsprogs --- + It provides XFS filesystem utilities. + diff --git a/import-layers/meta-openembedded/meta-filesystems/conf/layer.conf b/import-layers/meta-openembedded/meta-filesystems/conf/layer.conf new file mode 100644 index 000000000..9ed6d1b73 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/conf/layer.conf @@ -0,0 +1,16 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "filesystems-layer" +BBFILE_PATTERN_filesystems-layer = "^${LAYERDIR}/" +BBFILE_PRIORITY_filesystems-layer = "6" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_filesystems-layer = "1" + +LAYERDEPENDS_filesystems-layer = "core openembedded-layer" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb new file mode 100644 index 000000000..639e33cfa --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "read and write exFAT driver for FUSE" +DESCRIPTION = "fuse-exfat is a read and write driver implementing the \ +extended file allocation table as a filesystem in userspace. A mounthelper \ +is provided under the name mount.exfat-fuse. \ +" +HOMEPAGE = "http://code.google.com/p/exfat/" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \ +" +DEPENDS = "fuse virtual/libc" +RRECOMMENDS_${PN} = "util-linux-mount" + +inherit autotools pkgconfig + +SRC_URI[md5sum] = "fca71e6598f79d037a3c7c969cb5710c" +SRC_URI[sha256sum] = "f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9" + +S = "${WORKDIR}/${PN}-${PV}" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb new file mode 100644 index 000000000..f0b58b967 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "A fuse filesystem to access the contents of an iPhone or iPod Touch" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7" +HOMEPAGE ="http://www.libimobiledevice.org/" + +DEPENDS = "fuse libimobiledevice" + +SRC_URI = " \ + http://www.libimobiledevice.org/downloads/ifuse-${PV}.tar.bz2 \ +" + +SRC_URI[md5sum] = "4152526b2ac3c505cb41797d997be14d" +SRC_URI[sha256sum] = "47835c8afb72588b3202fe0b206d7ea37a68663d9aa4eaf73f0a4bcb6215fc05" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb new file mode 100644 index 000000000..32ebec83d --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "LogFS Programs: used to create LogFS file system" +DESCRIPTION = "\ +LogFS is a Linux log-structured and scalable flash file system, intended \ +for use on large devices of flash memory. It is written by Jörn Engel and \ +in part sponsored by the CE Linux Forum. \ +LogFS is included in the mainline Linux kernel and was introduced in \ +version 2.6.34, released on May 16, 2010." +HOMEPAGE = "https://github.com/prasad-joshi/logfsprogs" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02" +DEPENDS = "zlib" + +SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git" +SRCREV = "45b72c81ce3c6fa17ca19bafc207ea93e76312f4" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "CC="${CC}" LD="${LD}" AR="${AR}"" + +do_install () { + mkdir -p ${D}${bindir} + install -m 0755 ${S}/mklogfs ${D}${bindir}/mklogfs +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb new file mode 100644 index 000000000..6957ea92b --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support." +HOMEPAGE = "http://www.ntfs-3g.org/" +DEPENDS = "fuse libgcrypt" +PROVIDES = "ntfsprogs ntfs-3g" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" + +SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz" +S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" + +SRC_URI[md5sum] = "2d6fb47ddf62b51733227126fe9227fe" +SRC_URI[sha256sum] = "4b383f0074a3ab7683339d1f18222b107aaeb4983db119292c43c2b275cefb27" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux" + +# required or it calls ldconfig at install step +EXTRA_OEMAKE = "LDCONFIG=echo" + +PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g" + +FILES_ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs" +RDEPENDS_ntfs-3g += "fuse" +RRECOMMENDS_ntfs-3g = "util-linux-mount" + +FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*" +FILES_libntfs-3g = "${libdir}/*${SOLIBS}" + +do_install_append() { + # Standard mount will execute the program /sbin/mount.TYPE + # when called. Add the symbolic to let mount could find ntfs. + ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs +} + +# Satisfy the -dev runtime dependency +ALLOW_EMPTY_${PN} = "1" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd new file mode 100755 index 000000000..5d74d13d9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owhttpd @@ -0,0 +1,60 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/bin + +DAEMON="owhttpd" + +test -f /usr/bin/${DAEMON} || exit 0 + +if test -f /etc/default/${DAEMON} ; then +. /etc/default/${DAEMON} +else +: +fi + +if [ "$START_OWHTTPD" != "yes" ] +then + exit 0 +fi + + +startdaemon(){ + echo -n "Starting ${DAEMON}: " + start-stop-daemon --start -x /usr/bin/${DAEMON} -- ${CMDLINE} --pid_file /var/run/${DAEMON}.pid + echo "done" +} + +stopdaemon(){ + echo -n "Stopping ${DAEMON}: " + start-stop-daemon --stop -p /var/run/${DAEMON}.pid + echo "done" +} + + + +case "$1" in + start) + startdaemon + ;; + stop) + stopdaemon + ;; + force-reload) + stopdaemon + startdaemon + ;; + restart) + stopdaemon + startdaemon + ;; + reload) + stopdaemon + startdaemon + ;; + *) + echo "Usage: ${DAEMON} { start | stop | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver new file mode 100755 index 000000000..b69ea53e3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs/owserver @@ -0,0 +1,59 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/bin + +DAEMON="owserver" + +test -f /usr/bin/${DAEMON} || exit 0 + +if test -f /etc/default/${DAEMON} ; then +. /etc/default/${DAEMON} +else +: +fi + +if [ "$START_OWSERVER" != "yes" ] +then + exit 0 +fi + +startdaemon(){ + echo -n "Starting ${DAEMON}: " + start-stop-daemon --start -x /usr/bin/${DAEMON} -- ${CMDLINE} --pid_file /var/run/${DAEMON}.pid + echo "done" +} + +stopdaemon(){ + echo -n "Stopping ${DAEMON}: " + start-stop-daemon --stop -p /var/run/${DAEMON}.pid + echo "done" +} + + + +case "$1" in + start) + startdaemon + ;; + stop) + stopdaemon + ;; + force-reload) + stopdaemon + startdaemon + ;; + restart) + stopdaemon + startdaemon + ;; + reload) + stopdaemon + startdaemon + ;; + *) + echo "Usage: ${DAEMON} { start | stop | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb new file mode 100644 index 000000000..21fd7e93e --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb @@ -0,0 +1,68 @@ +SUMMARY = "1-Wire file system" +DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim" +HOMEPAGE = "http://www.owfs.org/" +SECTION = "console/network" + +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a0bc427f423a41220ab79a0b392218bd \ + file://COPYING.LIB;md5=865c4bd642d9e04f43925ad7e929ae87" + +DEPENDS = "fuse virtual/libusb0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/owfs/owfs-${PV}.tar.gz \ + file://owhttpd \ + file://owserver " +SRC_URI[md5sum] = "56ba145be208002e58775a7203369851" +SRC_URI[sha256sum] = "9d22dbff72d235476688c02669f7171b23e21dffadf40bbdd3b8263908218424" + +inherit autotools-brokensep update-rc.d + +EXTRA_OECONF = " \ + --with-fuseinclude=${STAGING_INCDIR} \ + --with-fuselib=${STAGING_LIBDIR} \ + --enable-owfs \ + --enable-owhttpd \ + --enable-w1 \ + --disable-swig \ + --disable-owtcl \ + --disable-owphp \ + --disable-owpython \ + --disable-owperl \ +" + +do_install_prepend() { + install -d ${D}${sysconfdir}/default/ + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd + install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver +} + +PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap" + +DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access" +DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control" +DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control" +DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access" +DESCRIPTION_libowcapi = "easy C-language 1-wire interface " +DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol" +DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol" +DESCRIPTION_owmon = "Monitor for owserver settings and statistics" +DESCRIPTION_owtap = "Packet sniffer for the owserver protocol" + +FILES_owftpd = "${bindir}/owftpd" +FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd" +FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver" +FILES_owshell = "${bindir}/owread ${bindir}/owwrite \ + ${bindir}/owdir ${bindir}/owpresent \ + ${bindir}/owget ${bindir}/owside" +FILES_owmon = "${bindir}/owmon" +FILES_owtap = "${bindir}/owtap" +FILES_libowcapi = "${libdir}/libowcapi-*" +FILES_libow = "${libdir}/libow-*" +FILES_libownet = "${libdir}/libownet-*" + +INITSCRIPT_PACKAGES = "owhttpd owserver" +INITSCRIPT_NAME_owserver = "owserver" +INITSCRIPT_NAME_owhttpd = "owhttpd" +INITSCRIPT_PARAMS_owserver = "defaults 20" +INITSCRIPT_PARAMS_owhttpd = "defaults 21" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb new file mode 100644 index 000000000..f85977fd5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB" +HOMEPAGE = "https://github.com/phatina/simple-mtpfs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +DEPENDS = "fuse libmtp" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master" +SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404" + +S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch new file mode 100644 index 000000000..f05f09f61 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch @@ -0,0 +1,42 @@ +From 7a524d49b3d4459280f18942df2980603400ec52 Mon Sep 17 00:00:00 2001 +From: Bian Naimeng +Date: Fri, 19 Jun 2015 11:54:44 +0900 +Subject: [PATCH] Using PKG_CHECK_MODULES to found headers and libraries of + smbclient + +Signed-off-by: Bian Naimeng +--- + configure.in | 5 +++++ + src/Makefile.am | 3 +++ + 2 files changed, 8 insertions(+) + +diff --git a/configure.in b/configure.in +index ce21aef..ecd7119 100644 +--- a/configure.in ++++ b/configure.in +@@ -125,6 +125,11 @@ AC_CHECK_LIB(smbclient, smbc_setOptionUserData, + )] + ) + ++dnl ***************************************************************** ++dnl *** Check libsmbclient by pkgconfig to get cflags and ldflags *** ++dnl ***************************************************************** ++PKG_CHECK_MODULES(SMBCLIENT, smbclient) ++ + dnl ****************** + dnl *** Final step *** + dnl ****************** +diff --git a/src/Makefile.am b/src/Makefile.am +index 41519d8..9fc97e9 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -16,3 +16,6 @@ smbnetfs_SOURCES = \ + event.c event.h \ + reconfigure.c reconfigure.h \ + main.c ++ ++smbnetfs_CFLAGS=${SMBCLIENT_CFLAGS} ++smbnetfs_LDFLAGS=${SMBCLIENT_LDFLAGS} +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch new file mode 100644 index 000000000..c80fed187 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch @@ -0,0 +1,11 @@ +Index: git/configure.in +=================================================================== +--- git.orig/configure.in 2014-06-18 16:06:16.040721349 +0000 ++++ git/configure.in 2014-07-18 07:49:17.085552256 +0000 +@@ -1,5 +1,5 @@ + AC_INIT([SMBNetFS],[0.5.3а]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + AC_CONFIG_HEADERS([src/config.h]) + AC_PROG_CC + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb new file mode 100644 index 000000000..f1420fbed --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "FUSE module for mounting an entire SMB/NMB network in a single directory" +DESCRIPTION = "SMBNetFS is a Linux/FreeBSD filesystem that allow you to use \ + samba/microsoft network in the same manner as the network \ + neighborhood in Microsoft Windows. Please donate me to help \ + in SMBNetFS development." + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" +HOMEPAGE ="http://sourceforge.net/projects/smbnetfs" + +DEPENDS = "fuse samba" + +inherit autotools gitpkgv pkgconfig + +PKGV = "${GITPKGVTAG}" + +SRCREV = "ace1c519d45fe488b9b7e6cc77a2bcadb6c83464" + +SRC_URI = "git://smbnetfs.git.sourceforge.net/gitroot/smbnetfs/smbnetfs;branch=master \ + file://configure.patch \ + file://Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring=yes,--with-gnome-keyring=no,libgnome-keyring" + +S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb new file mode 100644 index 000000000..c54cfcbd2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb @@ -0,0 +1,17 @@ +SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE" +AUTHOR = "Miklos Szeredi " +HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html" +SECTION = "console/network" +LICENSE = "GPLv2" +DEPENDS = "glib-2.0 fuse" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/${BP}.tar.gz" +S = "${WORKDIR}/${BP}" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/sshnodelay.so" + +SRC_URI[md5sum] = "17494910db8383a366b1301e5f5148a9" +SRC_URI[sha256sum] = "e9171452e5d0150b9c6a2158fd2e2dcefb5d5d03ba4d208949e00a3a46c6e63e" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb new file mode 100644 index 000000000..7df9c39a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb @@ -0,0 +1,17 @@ +SUMMARY = "A FUSE based implemention of unionfs" +HOMEPAGE = "http://podgorny.cz/moin/UnionFsFuse" +SECTION = "console/network" +LICENSE = "BSD-3-Clause" +DEPENDS = "fuse" +LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32" + +SRC_URI = "http://podgorny.cz/unionfs-fuse/releases/${BP}.tar.xz" + +SRC_URI[md5sum] = "689c636484756f6f7a728ef354cbeac2" +SRC_URI[sha256sum] = "8d5c9dcb51ecb9a9b03890e16d17e37d602b0c1f23ed6a9ddec2b0f719c9f662" + +do_install() { + oe_runmake install DESTDIR=${D} PREFIX=${exec_prefix} +} + +RDEPENDS_${PN} += "bash" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb new file mode 100644 index 000000000..253ea627b --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb @@ -0,0 +1,36 @@ +SUMMARY = "Yet Another Flash File System" +DESCRIPTION = "Tools for managing 'yaffs2' file systems." + +SECTION = "base" +HOMEPAGE = "http://www.yaffs.net" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=12;endline=14;md5=5f5464f9b3e981ca574e65b00e438561" + +PV = "0.0+git${SRCPV}" + +DEPENDS = "mtd-utils" + +# Source is the HEAD of master branch at the time of writing this recipe +SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master" +SRCREV = "bc76682d93955cfb33051beb503ad9f8a5450578" +S = "${WORKDIR}/git" + +CFLAGS_append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_compile() { + cd utils && oe_runmake +} + +INSTALL_FILES = "mkyaffsimage \ + mkyaffs2image \ + " +do_install() { + install -d ${D}${sbindir}/ + for i in ${INSTALL_FILES}; do + install -m 0755 utils/$i ${D}${sbindir}/ + done +} + +BBCLASSEXTEND = "native" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch new file mode 100644 index 000000000..577dbb5b2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch @@ -0,0 +1,28 @@ +From 2182c423c6cd235c052e6c420203f24ec9bcd6ab Mon Sep 17 00:00:00 2001 +From: Lu Chong +Date: Wed, 30 Oct 2013 15:27:00 +0800 +Subject: [PATCH] fuse: fix the return value of "--help" option + +Upstream-Status: Pending + +Signed-off-by: Lu Chong +--- + util/fusermount.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/fusermount.c b/util/fusermount.c +index b2e87d9..70d7c75 100644 +--- a/util/fusermount.c ++++ b/util/fusermount.c +@@ -1168,7 +1168,7 @@ static void usage(void) + " -q quiet\n" + " -z lazy unmount\n", + progname); +- exit(1); ++ exit(0); + } + + static void show_version(void) +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch new file mode 100644 index 000000000..050d1146a --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/aarch64.patch @@ -0,0 +1,33 @@ +fuse: add aarch64 support + +u64/u32 is not defined in sys/types.h, include linux/types.h like +the kernel version of fuse.h does. Patch sent to upstream mailing list. + +Upstream-Status: Submitted +Signed-off-by: Riku Voipio +Signed-off-by: Hongxu Jia +--- + include/fuse_kernel.h | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h +index c632b58..e804278 100644 +--- a/include/fuse_kernel.h ++++ b/include/fuse_kernel.h +@@ -88,12 +88,7 @@ + #ifndef _LINUX_FUSE_H + #define _LINUX_FUSE_H + +-#include +-#define __u64 uint64_t +-#define __s64 int64_t +-#define __u32 uint32_t +-#define __s32 int32_t +-#define __u16 uint16_t ++#include + + /* + * Version negotiation: +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf new file mode 100644 index 000000000..a517c488f --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/fuse.conf @@ -0,0 +1 @@ +fuse diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch new file mode 100644 index 000000000..d47f692c0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch @@ -0,0 +1,92 @@ +fuse: Fix linking issues with gold linker + +fuse has problems when linking with gold since it uses version +scripts in a way thats so perticular to bfd ld + +/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstro +error: symbol __fuse_exited has undefined version +| collect2: ld returned 1 exit status +| make[1]: *** [libfuse.la] Error 1 +| make[1]: *** Waiting for unfinished jobs.... + +For more details + +http://blog.flameeyes.eu/2011/06/01/gold-readiness-obstacle-2-base-versioning +http://sources.redhat.com/bugzilla/show_bug.cgi?id=10861 +http://comments.gmane.org/gmane.comp.file-systems.fuse.devel/9524 +http://www.airs.com/blog/archives/300 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +Signed-off-by: Koen Kooi +Signed-off-by: Hongxu Jia +--- + lib/fuse.c | 10 +++++----- + lib/fuse_mt.c | 2 +- + lib/fuse_versionscript | 3 +++ + lib/helper.c | 6 +++--- + 4 files changed, 12 insertions(+), 9 deletions(-) + +diff --git a/lib/fuse.c b/lib/fuse.c +index 067d0dc..6d27711 100644 +--- a/lib/fuse.c ++++ b/lib/fuse.c +@@ -4873,11 +4873,11 @@ struct fuse *fuse_new_compat1(int fd, int flags, + 11); + } + +-FUSE_SYMVER(".symver fuse_exited,__fuse_exited@"); +-FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@"); +-FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@"); +-FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@"); +-FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@"); ++FUSE_SYMVER(".symver fuse_exited,__fuse_exited@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2"); + + #endif /* __FreeBSD__ || __NetBSD__ */ +diff --git a/lib/fuse_mt.c b/lib/fuse_mt.c +index f6dbe71..fd5ac23 100644 +--- a/lib/fuse_mt.c ++++ b/lib/fuse_mt.c +@@ -119,4 +119,4 @@ int fuse_loop_mt(struct fuse *f) + return res; + } + +-FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@"); ++FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED"); +diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript +index 8d91887..de16ab2 100644 +--- a/lib/fuse_versionscript ++++ b/lib/fuse_versionscript +@@ -1,3 +1,6 @@ ++FUSE_UNVERSIONED { ++}; ++ + FUSE_2.2 { + global: + fuse_destroy; +diff --git a/lib/helper.c b/lib/helper.c +index b644012..c5349bf 100644 +--- a/lib/helper.c ++++ b/lib/helper.c +@@ -436,10 +436,10 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[]) + return fuse_mount_compat22(mountpoint, NULL); + } + +-FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@"); ++FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2"); +-FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@"); +-FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@"); ++FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2"); + + #endif /* __FreeBSD__ || __NetBSD__ */ +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb new file mode 100644 index 000000000..8cc6dbd16 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb @@ -0,0 +1,64 @@ +SUMMARY = "Implementation of a fully functional filesystem in a userspace program" +DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \ + programs to export a virtual filesystem to the Linux kernel. FUSE \ + also aims to provide a secure method for non privileged users to \ + create and mount their own filesystem implementations. \ + " +HOMEPAGE = "http://fuse.sf.net" +SECTION = "libs" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/fuse-${PV}.tar.gz \ + file://gold-unversioned-symbol.patch \ + file://aarch64.patch \ + file://0001-fuse-fix-the-return-value-of-help-option.patch \ + file://fuse.conf \ +" +SRC_URI[md5sum] = "ecb712b5ffc6dffd54f4a405c9b372d8" +SRC_URI[sha256sum] = "6be9c0bff6af8c677414935f31699ea5a7f8f5f791cfa5205be02ea186b97ce1" + +inherit autotools pkgconfig update-rc.d systemd + +INITSCRIPT_NAME = "fuse" + +SYSTEMD_SERVICE_${PN} = "" + +DEPENDS = "gettext-native" + +PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg" + +# Fusermount requires features from the util-linux version of mount. +RDEPENDS_${PN} += "util-linux-mount" + +RRECOMMENDS_${PN} = "kernel-module-fuse libulockmgr fuse-utils" + +FILES_${PN} += "${libdir}/libfuse.so.*" +FILES_${PN}-dev += "${libdir}/libfuse*.la" + +FILES_libulockmgr = "${libdir}/libulockmgr.so.*" +FILES_libulockmgr-dev += "${libdir}/libulock*.la" +FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*" + +# Forbid auto-renaming to libfuse-utils +FILES_fuse-utils = "${bindir} ${base_sbindir}" +FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug" +DEBIAN_NOAUTONAME_fuse-utils = "1" +DEBIAN_NOAUTONAME_fuse-utils-dbg = "1" + +do_install_append() { + rm -rf ${D}${base_prefix}/dev + + # systemd class remove the sysv_initddir only if systemd_system_unitdir + # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then + rm -rf ${D}${sysconfdir}/init.d/ + fi + + # Install systemd related configuration file + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/modules-load.d + install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d + fi +} diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb new file mode 100644 index 000000000..5618f28a6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb @@ -0,0 +1,11 @@ +SUMMARY = "PhysicsFS is a library to provide abstract access to various archives" +HOMEAPAGE = "http://icculus.org/physfs" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5d94e3eaaa10b00ca803ba35a3e87cde" +DEPENDS = "readline zlib" + +inherit cmake + +SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2" +SRC_URI[md5sum] = "c2c727a8a8deb623b521b52d0080f613" +SRC_URI[sha256sum] = "ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch new file mode 100644 index 000000000..5c3558689 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch @@ -0,0 +1,29 @@ +Subject: [PATCH] aufs-util: add tool concept to Makefile for cross compiling + purpose + +In a cross compilation environment, c2sh, c2tmac and ver need to be created first. +Add a tools target to Makefile to allow for this. + +Upstream-Status: Pending + +Signed-off-by: Chen Qi +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2f905ad..49c3cd5 100644 +--- a/Makefile ++++ b/Makefile +@@ -85,7 +85,7 @@ aufs.5: aufs.in.5 c2tmac + chmod a-w $@ + + c2sh c2tmac ver: CC = ${HOSTCC} +-.INTERMEDIATE: c2sh c2tmac ver ++tools: c2sh c2tmac ver + + Install = install -o root -g root -p + install_sbin: File = auibusy auplink mount.aufs umount.aufs +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch new file mode 100644 index 000000000..fe2a6a576 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch @@ -0,0 +1,37 @@ +From 244863eca77fcaa1187884836c3e28d6b6d1504a Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Tue, 9 Apr 2013 18:50:34 -0700 +Subject: [PATCH] aufs-util: don't strip executables + +By default, aufs-util strips its binaries. This produces QA warnings +as follows: + + WARNING: File '/sbin/mount.aufs' from aufs-util was already stripped, this will prevent future debugging! + WARNING: File '/sbin/auplink' from aufs-util was already stripped, this will prevent future debugging! + WARNING: File '/sbin/umount.aufs' from aufs-util was already stripped, this will prevent future debugging! + WARNING: File '/sbin/auibusy' from aufs-util was already stripped, this will prevent future debugging! + WARNING: File '/usr/lib/libau.so.2.6' from aufs-util was already stripped, this will prevent future debugging! + +To prevent this, we remove -s from LDFLAGS. + +Signed-off-by: Bruce Ashfield +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2f905ad..e0c6dcd 100644 +--- a/Makefile ++++ b/Makefile +@@ -56,7 +56,7 @@ all: ver_test ${Man} ${Bin} ${Etc} + ver_test: ver + ./ver + +-${Bin}: override LDFLAGS += -static -s ++${Bin}: override LDFLAGS += -static + ${Bin}: LDLIBS = -L. -lautil + ${BinObj}: %.o: %.c ${LibUtilHdr} ${LibUtil} + +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h new file mode 100644 index 000000000..c948033a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h @@ -0,0 +1,419 @@ +/* + * Copyright (C) 2005-2015 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __AUFS_TYPE_H__ +#define __AUFS_TYPE_H__ + +#define AUFS_NAME "aufs" + +#ifdef __KERNEL__ +/* + * define it before including all other headers. + * sched.h may use pr_* macros before defining "current", so define the + * no-current version first, and re-define later. + */ +#define pr_fmt(fmt) AUFS_NAME " %s:%d: " fmt, __func__, __LINE__ +#include +#undef pr_fmt +#define pr_fmt(fmt) \ + AUFS_NAME " %s:%d:%.*s[%d]: " fmt, __func__, __LINE__, \ + (int)sizeof(current->comm), current->comm, current->pid +#else +#include +#include +#endif /* __KERNEL__ */ + +#include + +#define AUFS_VERSION "3.18-20150406" + +/* todo? move this to linux-2.6.19/include/magic.h */ +#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_BRANCH_MAX_127 +typedef int8_t aufs_bindex_t; +#define AUFS_BRANCH_MAX 127 +#else +typedef int16_t aufs_bindex_t; +#ifdef CONFIG_AUFS_BRANCH_MAX_511 +#define AUFS_BRANCH_MAX 511 +#elif defined(CONFIG_AUFS_BRANCH_MAX_1023) +#define AUFS_BRANCH_MAX 1023 +#elif defined(CONFIG_AUFS_BRANCH_MAX_32767) +#define AUFS_BRANCH_MAX 32767 +#endif +#endif + +#ifdef __KERNEL__ +#ifndef AUFS_BRANCH_MAX +#error unknown CONFIG_AUFS_BRANCH_MAX value +#endif +#endif /* __KERNEL__ */ + +/* ---------------------------------------------------------------------- */ + +#define AUFS_FSTYPE AUFS_NAME + +#define AUFS_ROOT_INO 2 +#define AUFS_FIRST_INO 11 + +#define AUFS_WH_PFX ".wh." +#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1) +#define AUFS_WH_TMP_LEN 4 +/* a limit for rmdir/rename a dir and copyup */ +#define AUFS_MAX_NAMELEN (NAME_MAX \ + - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\ + - 1 /* dot */\ + - AUFS_WH_TMP_LEN) /* hex */ +#define AUFS_XINO_FNAME "." AUFS_NAME ".xino" +#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME +#define AUFS_XINO_DEF_SEC 30 /* seconds */ +#define AUFS_XINO_DEF_TRUNC 45 /* percentage */ +#define AUFS_DIRWH_DEF 3 +#define AUFS_RDCACHE_DEF 10 /* seconds */ +#define AUFS_RDCACHE_MAX 3600 /* seconds */ +#define AUFS_RDBLK_DEF 512 /* bytes */ +#define AUFS_RDHASH_DEF 32 +#define AUFS_WKQ_NAME AUFS_NAME "d" +#define AUFS_MFS_DEF_SEC 30 /* seconds */ +#define AUFS_MFS_MAX_SEC 3600 /* seconds */ +#define AUFS_FHSM_CACHE_DEF_SEC 30 /* seconds */ +#define AUFS_PLINK_WARN 50 /* number of plinks in a single bucket */ + +/* pseudo-link maintenace under /proc */ +#define AUFS_PLINK_MAINT_NAME "plink_maint" +#define AUFS_PLINK_MAINT_DIR "fs/" AUFS_NAME +#define AUFS_PLINK_MAINT_PATH AUFS_PLINK_MAINT_DIR "/" AUFS_PLINK_MAINT_NAME + +#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */ +#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME + +#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME +#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk" +#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph" + +/* doubly whiteouted */ +#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME +#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME +#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME + +/* branch permissions and attributes */ +#define AUFS_BRPERM_RW "rw" +#define AUFS_BRPERM_RO "ro" +#define AUFS_BRPERM_RR "rr" +#define AUFS_BRATTR_COO_REG "coo_reg" +#define AUFS_BRATTR_COO_ALL "coo_all" +#define AUFS_BRATTR_FHSM "fhsm" +#define AUFS_BRATTR_UNPIN "unpin" +#define AUFS_BRATTR_ICEX "icex" +#define AUFS_BRATTR_ICEX_SEC "icexsec" +#define AUFS_BRATTR_ICEX_SYS "icexsys" +#define AUFS_BRATTR_ICEX_TR "icextr" +#define AUFS_BRATTR_ICEX_USR "icexusr" +#define AUFS_BRATTR_ICEX_OTH "icexoth" +#define AUFS_BRRATTR_WH "wh" +#define AUFS_BRWATTR_NLWH "nolwh" +#define AUFS_BRWATTR_MOO "moo" + +#define AuBrPerm_RW 1 /* writable, hardlinkable wh */ +#define AuBrPerm_RO (1 << 1) /* readonly */ +#define AuBrPerm_RR (1 << 2) /* natively readonly */ +#define AuBrPerm_Mask (AuBrPerm_RW | AuBrPerm_RO | AuBrPerm_RR) + +#define AuBrAttr_COO_REG (1 << 3) /* copy-up on open */ +#define AuBrAttr_COO_ALL (1 << 4) +#define AuBrAttr_COO_Mask (AuBrAttr_COO_REG | AuBrAttr_COO_ALL) + +#define AuBrAttr_FHSM (1 << 5) /* file-based hsm */ +#define AuBrAttr_UNPIN (1 << 6) /* rename-able top dir of + branch. meaningless since + linux-3.18-rc1 */ + +/* ignore error in copying XATTR */ +#define AuBrAttr_ICEX_SEC (1 << 7) +#define AuBrAttr_ICEX_SYS (1 << 8) +#define AuBrAttr_ICEX_TR (1 << 9) +#define AuBrAttr_ICEX_USR (1 << 10) +#define AuBrAttr_ICEX_OTH (1 << 11) +#define AuBrAttr_ICEX (AuBrAttr_ICEX_SEC \ + | AuBrAttr_ICEX_SYS \ + | AuBrAttr_ICEX_TR \ + | AuBrAttr_ICEX_USR \ + | AuBrAttr_ICEX_OTH) + +#define AuBrRAttr_WH (1 << 12) /* whiteout-able */ +#define AuBrRAttr_Mask AuBrRAttr_WH + +#define AuBrWAttr_NoLinkWH (1 << 13) /* un-hardlinkable whiteouts */ +#define AuBrWAttr_MOO (1 << 14) /* move-up on open */ +#define AuBrWAttr_Mask (AuBrWAttr_NoLinkWH | AuBrWAttr_MOO) + +#define AuBrAttr_CMOO_Mask (AuBrAttr_COO_Mask | AuBrWAttr_MOO) + +/* #warning test userspace */ +#ifdef __KERNEL__ +#ifndef CONFIG_AUFS_FHSM +#undef AuBrAttr_FHSM +#define AuBrAttr_FHSM 0 +#endif +#ifndef CONFIG_AUFS_XATTR +#undef AuBrAttr_ICEX +#define AuBrAttr_ICEX 0 +#undef AuBrAttr_ICEX_SEC +#define AuBrAttr_ICEX_SEC 0 +#undef AuBrAttr_ICEX_SYS +#define AuBrAttr_ICEX_SYS 0 +#undef AuBrAttr_ICEX_TR +#define AuBrAttr_ICEX_TR 0 +#undef AuBrAttr_ICEX_USR +#define AuBrAttr_ICEX_USR 0 +#undef AuBrAttr_ICEX_OTH +#define AuBrAttr_ICEX_OTH 0 +#endif +#endif + +/* the longest combination */ +/* AUFS_BRATTR_ICEX and AUFS_BRATTR_ICEX_TR don't affect here */ +#define AuBrPermStrSz sizeof(AUFS_BRPERM_RW \ + "+" AUFS_BRATTR_COO_REG \ + "+" AUFS_BRATTR_FHSM \ + "+" AUFS_BRATTR_UNPIN \ + "+" AUFS_BRATTR_ICEX_SEC \ + "+" AUFS_BRATTR_ICEX_SYS \ + "+" AUFS_BRATTR_ICEX_USR \ + "+" AUFS_BRATTR_ICEX_OTH \ + "+" AUFS_BRWATTR_NLWH) + +typedef struct { + char a[AuBrPermStrSz]; +} au_br_perm_str_t; + +static inline int au_br_writable(int brperm) +{ + return brperm & AuBrPerm_RW; +} + +static inline int au_br_whable(int brperm) +{ + return brperm & (AuBrPerm_RW | AuBrRAttr_WH); +} + +static inline int au_br_wh_linkable(int brperm) +{ + return !(brperm & AuBrWAttr_NoLinkWH); +} + +static inline int au_br_cmoo(int brperm) +{ + return brperm & AuBrAttr_CMOO_Mask; +} + +static inline int au_br_fhsm(int brperm) +{ + return brperm & AuBrAttr_FHSM; +} + +/* ---------------------------------------------------------------------- */ + +/* ioctl */ +enum { + /* readdir in userspace */ + AuCtl_RDU, + AuCtl_RDU_INO, + + AuCtl_WBR_FD, /* pathconf wrapper */ + AuCtl_IBUSY, /* busy inode */ + AuCtl_MVDOWN, /* move-down */ + AuCtl_BR, /* info about branches */ + AuCtl_FHSM_FD /* connection for fhsm */ +}; + +/* borrowed from linux/include/linux/kernel.h */ +#ifndef ALIGN +#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1) +#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask)) +#endif + +/* borrowed from linux/include/linux/compiler-gcc3.h */ +#ifndef __aligned +#define __aligned(x) __attribute__((aligned(x))) +#endif + +#ifdef __KERNEL__ +#ifndef __packed +#define __packed __attribute__((packed)) +#endif +#endif + +struct au_rdu_cookie { + uint64_t h_pos; + int16_t bindex; + uint8_t flags; + uint8_t pad; + uint32_t generation; +} __aligned(8); + +struct au_rdu_ent { + uint64_t ino; + int16_t bindex; + uint8_t type; + uint8_t nlen; + uint8_t wh; + char name[0]; +} __aligned(8); + +static inline int au_rdu_len(int nlen) +{ + /* include the terminating NULL */ + return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1, + sizeof(uint64_t)); +} + +union au_rdu_ent_ul { + struct au_rdu_ent *e; + uint64_t ul; +}; + +enum { + AufsCtlRduV_SZ, + AufsCtlRduV_End +}; + +struct aufs_rdu { + /* input */ + union { + uint64_t sz; /* AuCtl_RDU */ + uint64_t nent; /* AuCtl_RDU_INO */ + }; + union au_rdu_ent_ul ent; + uint16_t verify[AufsCtlRduV_End]; + + /* input/output */ + uint32_t blk; + + /* output */ + union au_rdu_ent_ul tail; + /* number of entries which were added in a single call */ + uint64_t rent; + uint8_t full; + uint8_t shwh; + + struct au_rdu_cookie cookie; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_wbr_fd { + uint32_t oflags; + int16_t brid; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_ibusy { + uint64_t ino, h_ino; + int16_t bindex; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +/* error code for move-down */ +/* the actual message strings are implemented in aufs-util.git */ +enum { + EAU_MVDOWN_OPAQUE = 1, + EAU_MVDOWN_WHITEOUT, + EAU_MVDOWN_UPPER, + EAU_MVDOWN_BOTTOM, + EAU_MVDOWN_NOUPPER, + EAU_MVDOWN_NOLOWERBR, + EAU_Last +}; + +/* flags for move-down */ +#define AUFS_MVDOWN_DMSG 1 +#define AUFS_MVDOWN_OWLOWER (1 << 1) /* overwrite lower */ +#define AUFS_MVDOWN_KUPPER (1 << 2) /* keep upper */ +#define AUFS_MVDOWN_ROLOWER (1 << 3) /* do even if lower is RO */ +#define AUFS_MVDOWN_ROLOWER_R (1 << 4) /* did on lower RO */ +#define AUFS_MVDOWN_ROUPPER (1 << 5) /* do even if upper is RO */ +#define AUFS_MVDOWN_ROUPPER_R (1 << 6) /* did on upper RO */ +#define AUFS_MVDOWN_BRID_UPPER (1 << 7) /* upper brid */ +#define AUFS_MVDOWN_BRID_LOWER (1 << 8) /* lower brid */ +#define AUFS_MVDOWN_FHSM_LOWER (1 << 9) /* find fhsm attr for lower */ +#define AUFS_MVDOWN_STFS (1 << 10) /* req. stfs */ +#define AUFS_MVDOWN_STFS_FAILED (1 << 11) /* output: stfs is unusable */ +#define AUFS_MVDOWN_BOTTOM (1 << 12) /* output: no more lowers */ + +/* index for move-down */ +enum { + AUFS_MVDOWN_UPPER, + AUFS_MVDOWN_LOWER, + AUFS_MVDOWN_NARRAY +}; + +/* + * additional info of move-down + * number of free blocks and inodes. + * subset of struct kstatfs, but smaller and always 64bit. + */ +struct aufs_stfs { + uint64_t f_blocks; + uint64_t f_bavail; + uint64_t f_files; + uint64_t f_ffree; +}; + +struct aufs_stbr { + int16_t brid; /* optional input */ + int16_t bindex; /* output */ + struct aufs_stfs stfs; /* output when AUFS_MVDOWN_STFS set */ +} __aligned(8); + +struct aufs_mvdown { + uint32_t flags; /* input/output */ + struct aufs_stbr stbr[AUFS_MVDOWN_NARRAY]; /* input/output */ + int8_t au_errno; /* output */ +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +union aufs_brinfo { + /* PATH_MAX may differ between kernel-space and user-space */ + char _spacer[4096]; + struct { + int16_t id; + int perm; + char path[0]; + }; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +#define AuCtlType 'A' +#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu) +#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu) +#define AUFS_CTL_WBR_FD _IOW(AuCtlType, AuCtl_WBR_FD, \ + struct aufs_wbr_fd) +#define AUFS_CTL_IBUSY _IOWR(AuCtlType, AuCtl_IBUSY, struct aufs_ibusy) +#define AUFS_CTL_MVDOWN _IOWR(AuCtlType, AuCtl_MVDOWN, \ + struct aufs_mvdown) +#define AUFS_CTL_BRINFO _IOW(AuCtlType, AuCtl_BR, union aufs_brinfo) +#define AUFS_CTL_FHSM_FD _IOW(AuCtlType, AuCtl_FHSM_FD, int) + +#endif /* __AUFS_TYPE_H__ */ diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb new file mode 100644 index 000000000..8980980ee --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb @@ -0,0 +1,53 @@ +SUMMARY = "Tools for managing AUFS mounts" +SECTION = "base" +HOMEPAGE = "http://aufs.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" + +DEPENDS = "aufs-util-native" +DEPENDS_class-native = "" + +SRCREV = "b59a2167a135ceea37581ee33997de278cf8a30a" +SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs3.14 \ + file://aufs-util-don-t-strip-executables.patch \ + file://aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch \ + file://aufs_type.h \ +" + +PV = "3.14+git${SRCPV}" + +S = "${WORKDIR}/git" + +do_configure_append () { + install -d ${S}/include/linux/ + cp ${WORKDIR}/aufs_type.h ${S}/include/linux/ +} + +do_configure_append_class-target () { + for i in ver c2sh c2tmac; do + cp ${STAGING_BINDIR_NATIVE}/aufs-util-${PV}/$i ./ + done +} + +do_compile () { + oe_runmake CPPFLAGS="-I${S}/include -I${S}/libau" +} + +do_compile_class-native () { + oe_runmake tools CPPFLAGS="-I${S}/include -I${S}/libau" +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install_sbin install_ubin install_etc +} + +do_install_class-native () { + install -d ${D}${bindir}/aufs-util-${PV} + for i in ver c2sh c2tmac; do + install -m 755 $i ${D}${bindir}/aufs-util-${PV}/$i + done +} + +RRECOMMENDS_${PN} += "kernel-module-aufs" + +BBCLASSEXTEND = "native" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb new file mode 100644 index 000000000..4ff95f977 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/dmapi_2.2.12.bb @@ -0,0 +1,31 @@ +SUMMARY = "Library functions to get attribute bits" +DESCRIPTION = "The Data Management API (DMAPI/XDSM) allows implementation \ + of hierarchical storage management software with no kernel \ + modifications as well as high-performance dump programs \ + without requiring "raw" access to the disk and knowledge \ + of filesystem structures.This interface is implemented by \ + the libdm library." + +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=1678edfe8de9be9564d23761ae2fa794" +DEPENDS = "xfsprogs" + +SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/dmapi-${PV}.tar.gz \ + file://remove-install-as-user.patch \ + file://dmapi_aarch64_configure_support.patch \ + " +SRC_URI[md5sum] = "cd825d4e141c16011367e0a0dd98c9c5" +SRC_URI[sha256sum] = "b18e34f47374f6adf7c164993c26df36986a009b86aa004ef9444102653aea69" + +inherit autotools-brokensep + +PARALLEL_MAKE = "" +EXTRA_OEMAKE += "LIBTOOL="${HOST_SYS}-libtool --tag=CC" V=1" + +do_install () { + export DIST_ROOT=${D} + install -d ${D}${libdir} + oe_runmake install install-dev PKG_DEVLIB_DIR=${libdir} +} diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch new file mode 100644 index 000000000..98753b742 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/dmapi_aarch64_configure_support.patch @@ -0,0 +1,37 @@ +Add config support to cross compile dmapi for +aarch64 architecture + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- dmapi-2.2.12_org/config.sub 2012-12-12 23:03:05.000000000 +0530 ++++ dmapi-2.2.12/config.sub 2014-03-24 16:49:56.771993523 +0530 +@@ -246,6 +246,7 @@ case $basic_machine in + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | aarch64 | aarch64be \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ +@@ -326,6 +327,7 @@ case $basic_machine in + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | aarch64-* | aarch64be-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ +--- dmapi-2.2.12_org/config.guess 2012-12-12 23:03:05.000000000 +0530 ++++ dmapi-2.2.12/config.guess 2014-03-24 16:49:56.771993523 +0530 +@@ -864,6 +864,9 @@ EOF + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; ++ aarch64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch new file mode 100644 index 000000000..e761db371 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/dmapi/files/remove-install-as-user.patch @@ -0,0 +1,205 @@ +remove install as user + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Hongxu Jia +--- + include/buildmacros | 2 +- + include/install-sh | 95 ++++++++--------------------------------------------- + 2 files changed, 14 insertions(+), 83 deletions(-) + +diff --git a/include/buildmacros b/include/buildmacros +index 7a01880..0840d55 100644 +--- a/include/buildmacros ++++ b/include/buildmacros +@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + IMAGES_DIR = $(TOPDIR)/all-images + DIST_DIR = $(TOPDIR)/dist +diff --git a/include/install-sh b/include/install-sh +index c952a71..b9d66f7 100755 +--- a/include/install-sh ++++ b/include/install-sh +@@ -24,11 +24,11 @@ + # set set | yes yes + # + _usage() { +- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory" +- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file" +- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory" ++ echo "Usage: $prog [-m mode] -d directory" ++ echo "or $prog [-m mode] file directory/file" ++ echo "or $prog [-m mode] file [file ...] directory" + echo "or $prog -S file target (creates \"target\" symlink)" +- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory" ++ echo "or $prog -T lt_arg [-m mode] libtool.lai directory" + echo "" + echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the" + echo "behaviour of this command - see comments in the script." +@@ -38,32 +38,6 @@ _usage() { + exit 1 + } + +-_chown () +-{ +- _st=255 +- if [ $# -eq 3 ] ; then +- chown $1:$2 $3 +- _st=$? +- if [ $_st -ne 0 ] ; then +- if [ $REAL_UID != '0' ] ; then +- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then +- echo '===============================================' +- echo Ownership of files under ${DIST_ROOT:-/} +- echo cannot be changed +- echo '===============================================' +- if [ -n "$DIST_ROOT" ] ; then +- touch $DIST_ROOT/.chown.quiet +- fi +- fi +- _st=0 +- fi +- fi +- fi +- +- return $_st +-} +- +- + _manifest () + { + echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null} +@@ -77,9 +51,6 @@ Sflag=false + Tflag=false + DIRMODE=755 + FILEMODE=644 +-OWNER=`id -u` +-GROUP=`id -g` +-REAL_UID=$OWNER + + # default is to install and don't append manifest + INSTALL=true +@@ -94,24 +65,16 @@ MANIFEST=: + + if $INSTALL + then +- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown ++ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; + else +- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true ++ CP=true; LN=true; MKDIR=true; CHMOD=true; + fi + +-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true +- +-while getopts "Dcm:d:S:o:g:T:" c $* ++while getopts "Dcm:d:S:T:" c $* + do + case $c in + c) + ;; +- g) +- GROUP=$OPTARG +- ;; +- o) +- OWNER=$OPTARG +- ;; + m) + DIRMODE=`expr $OPTARG` + FILEMODE=$DIRMODE +@@ -146,18 +109,7 @@ then + # first usage + # + $MKDIR -p $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHMOD $DIRMODE $dir +- status=$? +- fi +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT} ++ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT} + elif $Sflag + then + # +@@ -203,7 +155,7 @@ then + install_name=$target/$solib + $CP $solib $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT} + break + fi + done +@@ -254,7 +206,7 @@ then + install_name=$target/$old_library + $CP $old_library $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT} + ;; + *) + echo "$prog: -T $lt_install invalid" +@@ -267,7 +219,6 @@ then + if [ $status -eq 0 ] + then + $CHMOD $FILEMODE $install_name +- $CHOWN $OWNER $GROUP $install_name + fi + ;; + esac +@@ -292,23 +243,10 @@ else + then + if [ -f $dir/$f ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + else + $CHMOD $FILEMODE $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT} + fi + fi + else +@@ -334,14 +272,7 @@ else + status=$? + if [ $status -eq 0 ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + fi + [ $status -ne 0 ] && break + done +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb new file mode 100644 index 000000000..3019db7ab --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb @@ -0,0 +1,21 @@ +SUMMARY = "utilities to create, check, label and dump exFAT filesystem" +DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \ +This package provides tools to create, check and label the filesystem. It \ +contains \ + - dumpexfat to dump properties of the filesystem \ + - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \ + - exfatlabel to label a exFAT filesystem \ + - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \ +" +HOMEPAGE = "http://code.google.com/p/exfat/" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +SRC_URI = "${DEBIAN_MIRROR}/main/e/exfat-utils/exfat-utils_${PV}.orig.tar.gz \ +" +DEPENDS = "virtual/libc" + +inherit pkgconfig autotools + +SRC_URI[md5sum] = "f4e564450aa8159e26dde2869563d242" +SRC_URI[sha256sum] = "80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch new file mode 100644 index 000000000..cf844bf87 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch @@ -0,0 +1,32 @@ +From 3b3c6e6376babcd9a0b0db312b0e1e3bb3ab833e Mon Sep 17 00:00:00 2001 +From: Sven Ebenfeld +Date: Wed, 26 Nov 2014 10:36:44 +0100 +Subject: [PATCH] Remove AC_CHECK_FILE for cross compilation + +--- + configure.ac | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0111e72..8c286d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version, + [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]), + [Minor version for f2fs-tools]) + +-AC_CHECK_FILE(.git, +- AC_DEFINE([F2FS_TOOLS_DATE], +- "m4_bpatsubst(f2fs_tools_gitdate, +- [\([0-9-]*\)\(\w\|\W\)*], [\1])", +- [f2fs-tools date based on Git commits]), + AC_DEFINE([F2FS_TOOLS_DATE], + "f2fs_tools_date", +- [f2fs-tools date based on Source releases])) ++ [f2fs-tools date based on Source releases]) + + AC_CONFIG_SRCDIR([config.h.in]) + AC_CONFIG_HEADER([config.h]) +-- +1.8.1.rc3 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb new file mode 100644 index 000000000..1a558e715 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Tools for Flash-Friendly File System (F2FS)" +HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3" + +# to provide libuuid +DEPENDS = "util-linux" + +SRCREV = "baac4b4e6f41ceb02511da49dd3707674f3fea21" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \ + file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch" +S = "${WORKDIR}/git" + +inherit pkgconfig autotools + +BBCLASSEXTEND = "native" diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch new file mode 100644 index 000000000..e761db371 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch @@ -0,0 +1,205 @@ +remove install as user + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Hongxu Jia +--- + include/buildmacros | 2 +- + include/install-sh | 95 ++++++++--------------------------------------------- + 2 files changed, 14 insertions(+), 83 deletions(-) + +diff --git a/include/buildmacros b/include/buildmacros +index 7a01880..0840d55 100644 +--- a/include/buildmacros ++++ b/include/buildmacros +@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + IMAGES_DIR = $(TOPDIR)/all-images + DIST_DIR = $(TOPDIR)/dist +diff --git a/include/install-sh b/include/install-sh +index c952a71..b9d66f7 100755 +--- a/include/install-sh ++++ b/include/install-sh +@@ -24,11 +24,11 @@ + # set set | yes yes + # + _usage() { +- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory" +- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file" +- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory" ++ echo "Usage: $prog [-m mode] -d directory" ++ echo "or $prog [-m mode] file directory/file" ++ echo "or $prog [-m mode] file [file ...] directory" + echo "or $prog -S file target (creates \"target\" symlink)" +- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory" ++ echo "or $prog -T lt_arg [-m mode] libtool.lai directory" + echo "" + echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the" + echo "behaviour of this command - see comments in the script." +@@ -38,32 +38,6 @@ _usage() { + exit 1 + } + +-_chown () +-{ +- _st=255 +- if [ $# -eq 3 ] ; then +- chown $1:$2 $3 +- _st=$? +- if [ $_st -ne 0 ] ; then +- if [ $REAL_UID != '0' ] ; then +- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then +- echo '===============================================' +- echo Ownership of files under ${DIST_ROOT:-/} +- echo cannot be changed +- echo '===============================================' +- if [ -n "$DIST_ROOT" ] ; then +- touch $DIST_ROOT/.chown.quiet +- fi +- fi +- _st=0 +- fi +- fi +- fi +- +- return $_st +-} +- +- + _manifest () + { + echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null} +@@ -77,9 +51,6 @@ Sflag=false + Tflag=false + DIRMODE=755 + FILEMODE=644 +-OWNER=`id -u` +-GROUP=`id -g` +-REAL_UID=$OWNER + + # default is to install and don't append manifest + INSTALL=true +@@ -94,24 +65,16 @@ MANIFEST=: + + if $INSTALL + then +- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown ++ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; + else +- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true ++ CP=true; LN=true; MKDIR=true; CHMOD=true; + fi + +-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true +- +-while getopts "Dcm:d:S:o:g:T:" c $* ++while getopts "Dcm:d:S:T:" c $* + do + case $c in + c) + ;; +- g) +- GROUP=$OPTARG +- ;; +- o) +- OWNER=$OPTARG +- ;; + m) + DIRMODE=`expr $OPTARG` + FILEMODE=$DIRMODE +@@ -146,18 +109,7 @@ then + # first usage + # + $MKDIR -p $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHMOD $DIRMODE $dir +- status=$? +- fi +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT} ++ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT} + elif $Sflag + then + # +@@ -203,7 +155,7 @@ then + install_name=$target/$solib + $CP $solib $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT} + break + fi + done +@@ -254,7 +206,7 @@ then + install_name=$target/$old_library + $CP $old_library $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT} + ;; + *) + echo "$prog: -T $lt_install invalid" +@@ -267,7 +219,6 @@ then + if [ $status -eq 0 ] + then + $CHMOD $FILEMODE $install_name +- $CHOWN $OWNER $GROUP $install_name + fi + ;; + esac +@@ -292,23 +243,10 @@ else + then + if [ -f $dir/$f ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + else + $CHMOD $FILEMODE $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT} + fi + fi + else +@@ -334,14 +272,7 @@ else + status=$? + if [ $status -eq 0 ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + fi + [ $status -ne 0 ] && break + done +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.4.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.4.bb new file mode 100644 index 000000000..e053a6ef2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "XFS Filesystem Dump Utility" +DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \ + number of other utilities for administering XFS filesystems.\ + xfsdump examines files in a filesystem, determines which \ + need to be backed up, and copies those files to a \ + specified disk, tape or other storage medium." +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc" +DEPENDS = "xfsprogs attr" + +SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/${BPN}-${PV}.tar.gz \ + file://remove-install-as-user.patch \ + " +SRC_URI[md5sum] = "a8b1761be5feb363131e7b506639ad4c" +SRC_URI[sha256sum] = "570eafd0721515bdd79cb0e295b701d49cdf81e71a0a0ff0df6d4c5cc1960943" + +inherit autotools-brokensep + +PARALLEL_MAKE = "" +PACKAGECONFIG ??= "" +PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext" + +EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1" + +do_configure () { + export DEBUG="-DNDEBUG" + oe_runconf +} + +do_install () { + export DIST_ROOT=${D} + oe_runmake install + oe_runmake install-dev +} diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch new file mode 100644 index 000000000..760109506 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch @@ -0,0 +1,93 @@ +xfsprogs: drop configure check for aio + +It's unused and breaks compilation with uclibc. + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia +--- + configure.ac | 6 +++--- + m4/Makefile | 1 - + m4/package_aiodev.m4 | 36 ------------------------------------ + 3 files changed, 3 insertions(+), 40 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b968977..4e2a263 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,6 +47,9 @@ AC_ARG_ENABLE(lib64, + enable_lib64=yes) + AC_SUBST(enable_lib64) + ++librt="-lrt" ++AC_SUBST(librt) ++ + # + # If the user specified a libdir ending in lib64 do not append another + # 64 to the library names. +@@ -92,9 +95,6 @@ AC_PACKAGE_GLOBALS(xfsprogs) + AC_PACKAGE_UTILITIES(xfsprogs) + AC_MULTILIB($enable_lib64) + +-AC_PACKAGE_NEED_AIO_H +-AC_PACKAGE_NEED_LIO_LISTIO +- + AC_PACKAGE_NEED_UUID_H + AC_PACKAGE_NEED_UUIDCOMPARE + +diff --git a/m4/Makefile b/m4/Makefile +index 654a4fb..d282f0a 100644 +--- a/m4/Makefile ++++ b/m4/Makefile +@@ -14,7 +14,6 @@ CONFIGURE = \ + + LSRCFILES = \ + manual_format.m4 \ +- package_aiodev.m4 \ + package_blkid.m4 \ + package_globals.m4 \ + package_libcdev.m4 \ +diff --git a/m4/package_aiodev.m4 b/m4/package_aiodev.m4 +index 490d9c8..8b13789 100644 +--- a/m4/package_aiodev.m4 ++++ b/m4/package_aiodev.m4 +@@ -1,37 +1 @@ +-# +-# Check if we have a libaio.h installed +-# +-AC_DEFUN([AC_PACKAGE_WANT_AIO], +- [ AC_CHECK_HEADERS(libaio.h, [ have_aio=true ], [ have_aio=false ]) +- AC_SUBST(have_aio) +- ]) +- +-# +-# Check if we have an aio.h installed +-# +-AC_DEFUN([AC_PACKAGE_NEED_AIO_H], +- [ AC_CHECK_HEADERS(aio.h) +- if test $ac_cv_header_aio_h = no; then +- echo +- echo 'FATAL ERROR: could not find a valid header.' +- exit 1 +- fi +- ]) +- +-# +-# Check if we have the lio_listio routine in either libc/librt +-# +-AC_DEFUN([AC_PACKAGE_NEED_LIO_LISTIO], +- [ AC_CHECK_FUNCS(lio_listio) +- if test $ac_cv_func_lio_listio = yes; then +- librt="" +- else +- AC_CHECK_LIB(rt, lio_listio,, [ +- echo +- echo 'FATAL ERROR: could not find a library with lio_listio.' +- exit 1],[-lpthread]) +- librt="-lrt" +- fi +- AC_SUBST(librt) +- ]) + +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch new file mode 100644 index 000000000..e761db371 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch @@ -0,0 +1,205 @@ +remove install as user + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Hongxu Jia +--- + include/buildmacros | 2 +- + include/install-sh | 95 ++++++++--------------------------------------------- + 2 files changed, 14 insertions(+), 83 deletions(-) + +diff --git a/include/buildmacros b/include/buildmacros +index 7a01880..0840d55 100644 +--- a/include/buildmacros ++++ b/include/buildmacros +@@ -30,7 +30,7 @@ OBJECTS = $(ASFILES:.s=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + IMAGES_DIR = $(TOPDIR)/all-images + DIST_DIR = $(TOPDIR)/dist +diff --git a/include/install-sh b/include/install-sh +index c952a71..b9d66f7 100755 +--- a/include/install-sh ++++ b/include/install-sh +@@ -24,11 +24,11 @@ + # set set | yes yes + # + _usage() { +- echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory" +- echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file" +- echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory" ++ echo "Usage: $prog [-m mode] -d directory" ++ echo "or $prog [-m mode] file directory/file" ++ echo "or $prog [-m mode] file [file ...] directory" + echo "or $prog -S file target (creates \"target\" symlink)" +- echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory" ++ echo "or $prog -T lt_arg [-m mode] libtool.lai directory" + echo "" + echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the" + echo "behaviour of this command - see comments in the script." +@@ -38,32 +38,6 @@ _usage() { + exit 1 + } + +-_chown () +-{ +- _st=255 +- if [ $# -eq 3 ] ; then +- chown $1:$2 $3 +- _st=$? +- if [ $_st -ne 0 ] ; then +- if [ $REAL_UID != '0' ] ; then +- if [ ! -f $DIST_ROOT/.chown.quiet ] ; then +- echo '===============================================' +- echo Ownership of files under ${DIST_ROOT:-/} +- echo cannot be changed +- echo '===============================================' +- if [ -n "$DIST_ROOT" ] ; then +- touch $DIST_ROOT/.chown.quiet +- fi +- fi +- _st=0 +- fi +- fi +- fi +- +- return $_st +-} +- +- + _manifest () + { + echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null} +@@ -77,9 +51,6 @@ Sflag=false + Tflag=false + DIRMODE=755 + FILEMODE=644 +-OWNER=`id -u` +-GROUP=`id -g` +-REAL_UID=$OWNER + + # default is to install and don't append manifest + INSTALL=true +@@ -94,24 +65,16 @@ MANIFEST=: + + if $INSTALL + then +- CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown ++ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; + else +- CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true ++ CP=true; LN=true; MKDIR=true; CHMOD=true; + fi + +-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true +- +-while getopts "Dcm:d:S:o:g:T:" c $* ++while getopts "Dcm:d:S:T:" c $* + do + case $c in + c) + ;; +- g) +- GROUP=$OPTARG +- ;; +- o) +- OWNER=$OPTARG +- ;; + m) + DIRMODE=`expr $OPTARG` + FILEMODE=$DIRMODE +@@ -146,18 +109,7 @@ then + # first usage + # + $MKDIR -p $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHMOD $DIRMODE $dir +- status=$? +- fi +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT} ++ $MANIFEST d $DIRMODE ${dir#$DIST_ROOT} + elif $Sflag + then + # +@@ -203,7 +155,7 @@ then + install_name=$target/$solib + $CP $solib $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$solib ${install_name#$DIST_ROOT} + break + fi + done +@@ -254,7 +206,7 @@ then + install_name=$target/$old_library + $CP $old_library $install_name + status=$? +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$old_library ${install_name#$DIST_ROOT} + ;; + *) + echo "$prog: -T $lt_install invalid" +@@ -267,7 +219,6 @@ then + if [ $status -eq 0 ] + then + $CHMOD $FILEMODE $install_name +- $CHOWN $OWNER $GROUP $install_name + fi + ;; + esac +@@ -292,23 +243,10 @@ else + then + if [ -f $dir/$f ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + else + $CHMOD $FILEMODE $dir +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT} ++ $MANIFEST f $FILEMODE $HERE/$dir ${dir#$DIST_ROOT} + fi + fi + else +@@ -334,14 +272,7 @@ else + status=$? + if [ $status -eq 0 ] + then +- $CHMOD $FILEMODE $dir/$f +- status=$? +- if [ $status -eq 0 ] +- then +- $CHOWN $OWNER $GROUP $dir/$f +- status=$? +- fi +- $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f ++ $MANIFEST f $FILEMODE $HERE/$f ${dir#$DIST_ROOT}/$f + fi + [ $status -ne 0 ] && break + done +-- +1.8.1.2 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-generate-crctable-which-is-moved-into-runti.patch b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-generate-crctable-which-is-moved-into-runti.patch new file mode 100644 index 000000000..b204195bf --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-generate-crctable-which-is-moved-into-runti.patch @@ -0,0 +1,170 @@ +From e58cb210a7c15352040a411d11a8383eac0defda Mon Sep 17 00:00:00 2001 +From: Jianchuan Wang +Date: Tue, 30 Sep 2014 12:16:17 +0800 +Subject: [PATCH] xfsprogs: generate crctable which is moved into runtime from + compile + +After upgraded, There is a compile error except x86, +Because crc32.c need two arraies crc32table_le and crc32ctable_le from crc32table.h, +which are generated by gen_crc32table.c relative to different platforms. +For this, move the function implementation from gen_crc32table.c to crc.c + +Upstream-Status: Pending + +Signed-off-by: Jianchuan Wang +--- + libxfs/Makefile | 23 ++---------------- + libxfs/crc32.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 2 files changed, 75 insertions(+), 23 deletions(-) + +diff --git a/libxfs/Makefile b/libxfs/Makefile +index ae15a5d..7670159 100644 +--- a/libxfs/Makefile ++++ b/libxfs/Makefile +@@ -10,7 +10,7 @@ LT_CURRENT = 0 + LT_REVISION = 0 + LT_AGE = 0 + +-HFILES = xfs.h init.h xfs_dir2_priv.h crc32defs.h crc32table.h ++HFILES = xfs.h init.h xfs_dir2_priv.h crc32defs.h + CFILES = cache.c \ + crc32.c \ + init.c kmem.c logitem.c radix-tree.c rdwr.c trans.c util.c \ +@@ -43,7 +43,6 @@ CFILES = cache.c \ + CFILES += $(PKG_PLATFORM).c + PCFILES = darwin.c freebsd.c irix.c linux.c + LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g") +-LSRCFILES += gen_crc32table.c + + # + # Tracing flags: +@@ -61,25 +60,7 @@ LTLIBS = $(LIBPTHREAD) $(LIBRT) + # don't try linking xfs_repair with a debug libxfs. + DEBUG = -DNDEBUG + +-LDIRT = gen_crc32table crc32table.h crc32selftest +- +-default: crc32selftest ltdepend $(LTLIBRARY) +- +-crc32table.h: gen_crc32table.c +- @echo " [CC] gen_crc32table" +- $(Q) $(CC) $(CFLAGS) -o gen_crc32table $< +- @echo " [GENERATE] $@" +- $(Q) ./gen_crc32table > crc32table.h +- +-# The selftest binary will return an error if it fails. This is made a +-# dependency of the build process so that we refuse to build the tools on broken +-# systems/architectures. Hence we make sure that xfsprogs will never use a +-# busted CRC calculation at build time and hence avoid putting bad CRCs down on +-# disk. +-crc32selftest: gen_crc32table.c crc32table.h crc32.c +- @echo " [TEST] CRC32" +- $(Q) $(CC) $(CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@ +- $(Q) ./$@ ++default: ltdepend $(LTLIBRARY) + + include $(BUILDRULES) + +diff --git a/libxfs/crc32.c b/libxfs/crc32.c +index 0f847d2..be5fbc3 100644 +--- a/libxfs/crc32.c ++++ b/libxfs/crc32.c +@@ -55,8 +55,6 @@ typedef __u32 u64; + # define tobe(x) (x) + #endif + +-#include "crc32table.h" +- + #if CRC_LE_BITS > 8 || CRC_BE_BITS > 8 + + /* implements slicing-by-4 or slicing-by-8 algorithm */ +@@ -183,13 +181,86 @@ u32 __pure crc32c_le(u32 crc, unsigned char const *p, size_t len) + return crc32_le_generic(crc, p, len, NULL, CRC32C_POLY_LE); + } + #else ++ ++#include ++#include "crc32defs.h" ++#include ++ ++#define ENTRIES_PER_LINE 4 ++ ++#if CRC_LE_BITS > 8 ++# define LE_TABLE_ROWS (CRC_LE_BITS/8) ++# define LE_TABLE_SIZE 256 ++#else ++# define LE_TABLE_ROWS 1 ++# define LE_TABLE_SIZE (1 << CRC_LE_BITS) ++#endif ++ ++#if CRC_BE_BITS > 8 ++# define BE_TABLE_ROWS (CRC_BE_BITS/8) ++# define BE_TABLE_SIZE 256 ++#else ++# define BE_TABLE_ROWS 1 ++# define BE_TABLE_SIZE (1 << CRC_BE_BITS) ++#endif ++ ++static uint32_t crc32table_le[LE_TABLE_ROWS][256]; ++static uint32_t crc32ctable_le[LE_TABLE_ROWS][256]; ++ ++static uint32_t crc32table_le_init = 0; ++static uint32_t crc32ctable_le_init = 0; ++ ++/* ++ * big endian ordered CRC not used by XFS. ++static uint32_t crc32table_be[BE_TABLE_ROWS][256]; ++ */ ++ ++/** ++ * crc32init_le() - allocate and initialize LE table data ++ * ++ * crc is the crc of the byte i; other entries are filled in based on the ++ * fact that crctable[i^j] = crctable[i] ^ crctable[j]. ++ * ++ */ ++static void crc32init_le_generic(const uint32_t polynomial, ++ uint32_t (*tab)[256]) ++{ ++ unsigned i, j; ++ uint32_t crc = 1; ++ ++ tab[0][0] = 0; ++ ++ for (i = LE_TABLE_SIZE >> 1; i; i >>= 1) { ++ crc = (crc >> 1) ^ ((crc & 1) ? polynomial : 0); ++ for (j = 0; j < LE_TABLE_SIZE; j += 2 * i) ++ tab[0][i + j] = crc ^ tab[0][j]; ++ } ++ for (i = 0; i < LE_TABLE_SIZE; i++) { ++ crc = tab[0][i]; ++ for (j = 1; j < LE_TABLE_ROWS; j++) { ++ crc = tab[0][crc & 0xff] ^ (crc >> 8); ++ tab[j][i] = crc; ++ } ++ } ++} ++ + u32 __pure crc32_le(u32 crc, unsigned char const *p, size_t len) + { ++ if (crc32table_le_init == 0) { ++ crc32init_le_generic(CRCPOLY_LE, crc32table_le); ++ crc32table_le_init == 1; ++ } ++ + return crc32_le_generic(crc, p, len, + (const u32 (*)[256])crc32table_le, CRCPOLY_LE); + } + u32 __pure crc32c_le(u32 crc, unsigned char const *p, size_t len) + { ++ if (crc32ctable_le_init == 0) { ++ crc32init_le_generic(CRC32C_POLY_LE, crc32ctable_le); ++ crc32ctable_le_init == 1; ++ } ++ + return crc32_le_generic(crc, p, len, + (const u32 (*)[256])crc32ctable_le, CRC32C_POLY_LE); + } +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.2.3.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.2.3.bb new file mode 100644 index 000000000..f38239c37 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.2.3.bb @@ -0,0 +1,52 @@ +SUMMARY = "XFS Filesystem Utilities" +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv2.1" +LICENSE_libhandle = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=dbdb5f4329b7e7145de650e9ecd4ac2a" +DEPENDS = "util-linux" + +SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/${BP}.tar.gz \ + file://xfsprogs-generate-crctable-which-is-moved-into-runti.patch \ + file://remove-install-as-user.patch \ + file://drop-configure-check-for-aio.patch \ +" + +SRC_URI[md5sum] = "9f383e36682709e62b12c125e5d8b895" +SRC_URI[sha256sum] = "7a5124a880997939551b519610a2e54bd4cd0b0adfd563ce3f4de30827109ac9" + +inherit autotools-brokensep + +PACKAGES =+ "${PN}-fsck ${PN}-mkfs libhandle" + +RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs" + +FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs" +FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs" +FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}" + +EXTRA_OECONF = "--enable-gettext=no" +do_configure () { + # Prevent Makefile from calling configure without arguments, + # when do_configure gets called for a second time. + rm -f include/builddefs include/platform_defs.h + # Recreate configure script. + rm -f configure + oe_runmake configure + # Configure. + export DEBUG="-DNDEBUG" + gnu-configize --force + oe_runconf +} + +LIBTOOL = "${HOST_SYS}-libtool" +EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'" +TARGET_CC_ARCH += "${LDFLAGS}" +PARALLEL_MAKE = "" + +do_install () { + export DIST_ROOT=${D} + oe_runmake install + # needed for xfsdump + oe_runmake install-dev +} diff --git a/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb new file mode 100644 index 000000000..b26709e97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \ +into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \ +manipulation of such filesystems" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa" +SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56" + +PACKAGECONFIG ??= "acl attr zlib bzip2 readline" +PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl," +PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," +PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2," +PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline," + +inherit autotools-brokensep pkgconfig distro_features_check + +do_configure_prepend () { + touch NEWS +} + +RDEPENDS_${PN} = "tk" +REQUIRED_DISTRO_FEATURES = "x11" + +BBCLASSEXTEND = "native" diff --git a/import-layers/meta-openembedded/meta-gnome/COPYING.MIT b/import-layers/meta-openembedded/meta-gnome/COPYING.MIT new file mode 100644 index 000000000..fb950dc69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/meta-gnome/README b/import-layers/meta-openembedded/meta-gnome/README new file mode 100644 index 000000000..2a889e47c --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/README @@ -0,0 +1,17 @@ +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +branch: krogoth +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +branch: krogoth +revision: HEAD + +Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome][krogoth]' in the subject' + +When sending single patches, please using something like: +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][krogoth][PATCH' + +krogoth Branch Maintainer: +Armin Kuster diff --git a/import-layers/meta-openembedded/meta-gnome/conf/layer.conf b/import-layers/meta-openembedded/meta-gnome/conf/layer.conf new file mode 100644 index 000000000..58e12a9cd --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/conf/layer.conf @@ -0,0 +1,15 @@ +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "gnome-layer" +BBFILE_PATTERN_gnome-layer := "^${LAYERDIR}/" +BBFILE_PRIORITY_gnome-layer = "7" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_gnome-layer = "1" + +LAYERDEPENDS_gnome-layer = "core openembedded-layer" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb new file mode 100644 index 000000000..6e0e0aab0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "Take photos and videos with your webcam, with fun graphical effects" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf" + +DEPENDS = "gtk+ gstreamer gst-plugins-base libcanberra udev librsvg gnome-desktop evolution-data-server intltool-native" + +PR = "r2" + +inherit gnome + +SRC_URI[archive.md5sum] = "1599fded8a1797ea51fb010af4e6c45b" +SRC_URI[archive.sha256sum] = "48f03470c6f527caa0e3b269d3afcff86ae0939a74f66ce030d4eed3bc3cbd9a" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN} += "${datadir}/dbus-1" +RRECOMMENDS_${PN} = "gst-plugins-good-meta gst-plugins-base-meta" + +EXTRA_OECONF += "--disable-scrollkeeper" + +do_configure_prepend() { + sed -i -e "s: help : :g" ${S}/Makefile.am +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch new file mode 100644 index 000000000..75e45e0ab --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/browser_command.patch @@ -0,0 +1,17 @@ +Imported from Debian 0.1.8-3 + +Upstream-Status: Pending + +diff --git a/src/Config.cxx b/src/Config.cxx +index 28f37ab..bc58819 100644 +--- a/src/Config.cxx ++++ b/src/Config.cxx +@@ -22,7 +22,7 @@ + using namespace ePDFView; + + // Constants +-static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "firefox %s"; ++static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "x-www-browser %s"; + static const gchar *DEFAULT_OPEN_FILE_FOLDER = NULL; + static const gchar *DEFAULT_SAVE_FILE_FOLDER = NULL; + static const gboolean DEFAULT_SHOW_STATUSBAR = TRUE; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch new file mode 100644 index 000000000..8ad5b97ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/fix-format.patch @@ -0,0 +1,19 @@ +Imported from Debian 0.1.8-3 + +Upstream-Status: Pending + +diff --git a/src/gtk/MainView.cxx b/src/gtk/MainView.cxx +index b983bff..f87de28 100644 +--- a/src/gtk/MainView.cxx ++++ b/src/gtk/MainView.cxx +@@ -634,8 +634,9 @@ MainView::showErrorMessage (const gchar *title, const gchar *body) + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, ++ "%s", + title); +- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), ++ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), "%s", + body); + gtk_dialog_run (GTK_DIALOG (errorDialog)); + gtk_widget_destroy (errorDialog); diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch new file mode 100644 index 000000000..84a491386 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/glib-single-include.patch @@ -0,0 +1,17 @@ +Imported from Debian 0.1.8-3 + +Upstream-Status: Pending + +diff --git a/src/gtk/StockIcons.h b/src/gtk/StockIcons.h +index c142a7a..58fcf2e 100644 +--- a/src/gtk/StockIcons.h ++++ b/src/gtk/StockIcons.h +@@ -18,7 +18,7 @@ + #if !defined (__STOCK_ICONS_H__) + #define __STOCK_ICONS_H__ + +-#include ++#include + + G_BEGIN_DECLS + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch new file mode 100644 index 000000000..282bfb184 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview/swap-colors.patch @@ -0,0 +1,43 @@ +Imported from Debian 0.1.8-3 + +Upstream-Status: Pending + +Index: trunk/src/PDFDocument.cxx +=================================================================== +--- trunk/src/PDFDocument.cxx (revision 361) ++++ trunk/src/PDFDocument.cxx (revision 367) +@@ -21,4 +21,5 @@ + #include + #include ++#include + #include "epdfview.h" + +@@ -33,4 +34,22 @@ + static PageMode convertPageMode (gint pageMode); + static gchar *getAbsoluteFileName (const gchar *fileName); ++ ++namespace ++{ ++ void ++ convert_bgra_to_rgba (guint8 *data, int width, int height) ++ { ++ using std::swap; ++ ++ for (int y = 0; y < height; y++) ++ { ++ for (int x = 0; x < width; x++) ++ { ++ swap(data[0], data[2]); ++ data += 4; ++ } ++ } ++ } ++} + + /// +@@ -651,4 +670,5 @@ + cairo_destroy(context); + cairo_surface_destroy (surface); ++ convert_bgra_to_rgba(renderedPage->getData (), width, height); + #else // !HAVE_POPPLER_0_17_0 + // Create the pixbuf from the data and render to it. diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb new file mode 100644 index 000000000..d40f51db3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/epdfview/epdfview_0.1.8.bb @@ -0,0 +1,25 @@ +SUMMARY = "A lightweight PDF viewer based on gtk and poppler" +HOMEPAGE = "http://www.emma-soft.com/projects/epdfview/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +SECTION = "x11/applications" +DEPENDS = "gtk+ poppler" + +PR = "r3" + +EXTRA_OECONF += "--without-cups" + +inherit autotools gettext + +SRC_URI = "http://www.emma-soft.com/projects/${BPN}/chrome/site/releases/${BP}.tar.bz2 \ + file://browser_command.patch \ + file://fix-format.patch \ + file://glib-single-include.patch \ + file://swap-colors.patch \ +" +SRC_URI[md5sum] = "e50285b01612169b2594fea375f53ae4" +SRC_URI[sha256sum] = "948648ae7c9d7b3b408d738bd4f48d87375b1196cae1129d6b846a8de0f2f8f0" + +PNBLACKLIST[epdfview] ?= "BROKEN: images are not displayed anymore" +# There will be no further development / upstream is gone [1] +# [1] https://bugzilla.redhat.com/show_bug.cgi?id=906121 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb new file mode 100644 index 000000000..d455f1447 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb @@ -0,0 +1,16 @@ +SUMMARY = "GTK+ widget and function libraries for gnome-mplayer" +HOMEPAGE = "http://code.google.com/p/gmtk" +SECTION = "libs" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "gtk+ alsa-lib glib-2.0 virtual/libx11 intltool-native pulseaudio gtk+3" + +SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz" +SRC_URI[md5sum] = "e06e9ca8d61d74910343bb3ef4348f7f" +SRC_URI[sha256sum] = "a07130d62719e8c1244f8405dd97445798df5204fc0f3f2f2b669b125114b468" + +EXTRA_OECONF = "--disable-gconf --with-gio --with-alsa --enable-keystore" + +inherit gettext pkgconfig autotools gconf diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb new file mode 100644 index 000000000..ef460f13d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb @@ -0,0 +1,32 @@ +SUMMARY = "A GTK+ interface to MPlayer" +HOMEPAGE = "http://code.google.com/p/gnome-mplayer" +SECTION = "multimedia" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +PNBLACKLIST[gnome-mplayer] ?= "rdepends on blacklisted mplayer" +PR = "r2" + +DEPENDS = "gmtk gtk+ alsa-lib libnotify glib-2.0 dbus-glib virtual/libx11 libxscrnsaver" + +SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz" +SRC_URI[md5sum] = "1d3ab24c5501b5528e357931ca4dc6da" +SRC_URI[sha256sum] = "ac3c179345baecb4ca5237782aa33e83253a87bf8b42ce6eb3a9207a340f61b2" + +EXTRA_OECONF = "--with-gio --with-alsa --with-dbus --with-libnotify" + +FILES_${PN} += "${datadir}/gnome-control-center/default-apps/${PN}.xml" +PACKAGES =+ "${PN}-nautilus-extension" +FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so \ + ${libdir}/nautilus/extensions-3.0/*.so" +FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \ + ${libdir}/nautilus/extensions-3.0/*.la" +FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \ + ${libdir}/nautilus/extensions-3.0/*.a" +FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug \ + ${libdir}/nautilus/extensions-3.0/.debug" + +inherit gettext pkgconfig mime gtk-icon-cache autotools + +RDEPENDS_${PN} = "mplayer" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb new file mode 100644 index 000000000..a90e5cd49 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "A simple presentation tool for hackers" +DESCRIPTION = "Pinpoint is a simple presentation tool that hopes to avoid audience death \ + by bullet point and instead encourage presentations containing beautiful \ + images and small amounts of concise text in slides." +SECTION = "x11/multimedia" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://pinpoint.c;beginline=6;endline=17;md5=201d438283607da393fae6aca085454c" + +DEPENDS = "gnome-common glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-3.0 librsvg" + +inherit autotools gettext pkgconfig + +SRC_URI = "git://git.gnome.org/pinpoint" + +SRCREV = "80a056c57e819d0b75035424638813b0670830e1" +PV = "0.1.4+gitr${SRCPV}" + +S = "${WORKDIR}/git" + +RRECOMMENDS_${PN} = "gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.0.10.bb b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.0.10.bb new file mode 100644 index 000000000..d3e08cadb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.0.10.bb @@ -0,0 +1,36 @@ +SUMMARY = "GTK+ applet for NetworkManager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "gtk+3 libnotify libsecret networkmanager dbus-glib gconf libgnome-keyring iso-codes nss" + +inherit gnomebase gsettings gtk-icon-cache gobject-introspection + +GNOME_COMPRESS_TYPE = "xz" + +SRC_URI[archive.md5sum] = "86b17e1bf1a37c649874883b587c6db6" +SRC_URI[archive.sha256sum] = "b045ac3eaa68ccbbefe91510ad67b4002a7e09d1e5ce1c4bf9a67619bd2cf0eb" + +PACKAGECONFIG[bluetooth] = "--with-bluetooth,--without-bluetooth,gnome-bluetooth,gnome-bluetooth" +PACKAGECONFIG[modemmanager] = "--with-modem-manager-1,--without-modem-manager-1,modemmanager" +PACKAGECONFIG ??= "" + +do_configure_append() { + # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror + for i in $(find ${B} -name "Makefile") ; do + sed -i -e s:-Werror::g $i + done +} + +RDEPENDS_${PN} =+ "networkmanager" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/nm-applet/ \ + ${datadir}/libnm-gtk/wifi.ui \ +" + +FILES_${PN} += "${libdir}/gnome-bluetooth/plugins/*.so" +FILES_${PN}-dev += "${libdir}/gnome-bluetooth/plugins/libnma.la" +FILES_${PN}-staticdev += "${libdir}/gnome-bluetooth/plugins/libnma.a" +FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch new file mode 100644 index 000000000..2009dcd22 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch @@ -0,0 +1,32 @@ +include unistd.h to get ssize_t definitions + +Fixes errors like + +| In file included from plugins/mas.c:36:0: +| ./src/obex.h:39:1: error: unknown type name 'ssize_t' +| ./src/obex.h:49:1: error: unknown type name 'ssize_t' +| ./src/obex.h:50:1: error: unknown type name 'ssize_t' +| In file included from plugins/mas.c:38:0: +| ./src/mimetype.h:36:2: error: expected specifier-qualifier-list before 'ssize_t' +| In file included from plugins/mas.c:39:0: +| plugins/filesystem.h:24:1: error: unknown type name 'ssize_t' +| plugins/mas.c:550:1: error: unknown type name 'ssize_t' +| plugins/mas.c:557:1: error: unknown type name 'ssize_t' +| plugins/mas.c: In function 'any_read': +| plugins/mas.c:560:2: error: unknown type name 'ssize_t' + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +Index: obexd-0.44/plugins/mas.c +=================================================================== +--- obexd-0.44.orig/plugins/mas.c 2012-01-11 14:53:53.000000000 -0800 ++++ obexd-0.44/plugins/mas.c 2013-01-08 12:51:12.681882174 -0800 +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + #include "obexd.h" + #include "plugin.h" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb new file mode 100644 index 000000000..6096bed73 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb @@ -0,0 +1,23 @@ +SUMMARY = "OBEX Server and Client" +# obexd was integrated into bluez5 +DEPENDS = "glib-2.0 dbus libical" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/obexd-${PV}.tar.gz \ + file://ssize_t_definition.patch \ +" +SRC_URI[md5sum] = "d03cf9bad2983243837f4f6d76ef14a6" +SRC_URI[sha256sum] = "eaa9d8d9542700e6750918d72a3ce00f8cf3a2771d3e2516efd1be5a05f78582" + +inherit autotools-brokensep pkgconfig + +PACKAGES =+ "obex-client obex-plugins" + +FILES_${PN} += "${datadir}/dbus-1/services/${PN}.service" +FILES_obex-client = "${libexecdir}/obex-client \ + ${datadir}/dbus-1/services/obex-client.service" +# currently the plugins are empty +FILES_obex-plugins = "${libdir}/obex/plugins" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-devtools/glade/glade3_%.bbappend b/import-layers/meta-openembedded/meta-gnome/recipes-devtools/glade/glade3_%.bbappend new file mode 100644 index 000000000..3abacfb86 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-devtools/glade/glade3_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG ??= "gnome" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/gparted_polkit b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/gparted_polkit new file mode 100644 index 000000000..feabd0eeb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/gparted_polkit @@ -0,0 +1,10 @@ +#!/bin/sh + +# polkit installed? +if [ $(which pkexec) ]; then + pkexec --disable-internal-agent "%sbindir%/gparted" "$@" +else + %sbindir%/gparted "$@" +fi + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy new file mode 100644 index 000000000..77a91923e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy @@ -0,0 +1,20 @@ + + + + + + Run the GParted program + Authentication is required to run the GParted Partition Editor + gparted + + auth_admin + auth_admin + auth_admin + + /usr/sbin/gparted + true + + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.24.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.24.0.bb new file mode 100644 index 000000000..2f38977fd --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gparted/gparted_0.24.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "A partition editor to graphically manage disk partitions " +HOMEPAGE = "http://gparted.org/index.php" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig gtk-icon-cache + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ + file://org.yoctoproject.pkexec.run-gparted.policy \ + file://gparted_polkit \ +" +SRC_URI[md5sum] = "b8480274c68876acff5965d4346710e7" +SRC_URI[sha256sum] = "02398ab33894a59b0bd8707e598c46d8bb56f1413cd54de48eed61e2920ecd60" + +DEPENDS = "glib-2.0 gtkmm parted gnome-doc-utils-native" + +do_install_append() { + # Add a script which checks if polkit is installed. + # If yes: a policy is requested from polkit / otherwise start as usual + install ${WORKDIR}/gparted_polkit ${D}${sbindir} + sed -i 's:%sbindir%:${sbindir}:g' ${D}${sbindir}/gparted_polkit + # relink menu entry to use our script + sed -i 's:${sbindir}/gparted:${sbindir}/gparted_polkit:g' ${D}${datadir}/applications/gparted.desktop + + install -d ${D}${datadir}/polkit-1/actions + install ${WORKDIR}/org.yoctoproject.pkexec.run-gparted.policy ${D}${datadir}/polkit-1/actions/org.yoctoproject.pkexec.run-gparted.policy +} + +EXTRA_OECONF = "--disable-scrollkeeper --disable-doc" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/icons \ + ${datadir}/polkit-1 \ +" + +RDEPENDS_${PN} = "dosfstools mtools e2fsprogs" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb new file mode 100644 index 000000000..2621d1540 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-extended/gtk-theme-torturer/gtk-theme-torturer_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "GTK+ Theme benchmark program" +DEPENDS = "gtk+" +HOMEPAGE = "http://wiki.laptop.org/go/GTK_for_OLPC" +SECTION = "devel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://appwindow.c;endline=13;md5=8c09920de460c7ea1f64ee56986aabd9" + +SRCREV = "99962ae39bb5aadb31929b25c58e1a053f9c9545" +PV = "0.0.0+git${SRCPV}" + +SRC_URI = "git://dev.laptop.org/projects/soc-gtk/" +S = "${WORKDIR}/git/gtk-theme-torturer" + +CFLAGS += "-Wl,-rpath-link,${STAGING_LIBDIR}" + +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +do_install() { + install -d ${D}${bindir} + install -m 0755 torturer ${D}${bindir} +} + +# http://errors.yoctoproject.org/Errors/Details/35132/ +PNBLACKLIST[gtk-theme-torturer] ?= "BROKEN: gmacros.h:182:53: error: size of array '_GStaticAssertCompileTimeAssertion_2' is negative" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch new file mode 100644 index 000000000..0dff1411d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch @@ -0,0 +1,39 @@ +From c646159ce817506131b58fdab1cdc1cd6364df7a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 7 Feb 2016 21:45:20 +0100 +Subject: [PATCH] plugins/aiksaurus/Makefile.am: remove uncomplete options + WITH_BUILTIN_AIKSAURUS_GTK +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* with gtk2 we won't use it +* it is missing in configure.ac causing + +| plugins/aiksaurus/Makefile.am:5: error: WITH_BUILTIN_AIKSAURUS_GTK does not appear in AM_CONDITIONAL + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/aiksaurus/Makefile.am | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/plugins/aiksaurus/Makefile.am b/plugins/aiksaurus/Makefile.am +index d402c58..1034e2a 100644 +--- a/plugins/aiksaurus/Makefile.am ++++ b/plugins/aiksaurus/Makefile.am +@@ -2,10 +2,6 @@ SUBDIRS = + + if TOOLKIT_GTK + +-if WITH_BUILTIN_AIKSAURUS_GTK +-SUBDIRS += aiksaurusgtk3 +-platform_lib = aiksaurusgtk3/libAiksaurusGtk3.la +-endif + + endif + +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.1.bb new file mode 100644 index 000000000..962a56cb9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/abiword/abiword_3.0.1.bb @@ -0,0 +1,124 @@ +SUMMARY = "AbiWord is free word processing program similar to Microsoft(r) Word" +HOMEPAGE = "http://www.abiword.org" +SECTION = "x11/office" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=ecd3ac329fca77e2d0e412bec38e1c20" +DEPENDS = "perl-native wv libglade libfribidi jpeg libpng \ + librsvg libwmf-native gtkmathview asio gtk+ evolution-data-server \ + ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'redland rasqal', '', d)}" +RDEPENDS_${PN} = "glibc-gconv-ibm850 glibc-gconv-cp1252 \ + glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" +RCONFLICTS_${PN} = "${PN}-embedded" + +SRC_URI = " \ + http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \ + file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a" + +SRC_URI[md5sum] = "f3f8052e7b4979a43b75775a381e6cb8" +SRC_URI[sha256sum] = "e094f6fbf0afc5c5538b4894888e7c346f8ee8f49c9d24821dd696d0734865c6" + +#want 3.x from 3.x.y for the installation directory +SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" + +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ??= " \ + collab-backend-xmpp collab-backend-tcp \ + ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libical', '', d)} \ +" +PACKAGECONFIG[libical] = "--with-libical,--without-libical,libical raptor2" +PACKAGECONFIG[spell] = "--enable-spell,--disable-spell,enchant" +PACKAGECONFIG[collab-backend-xmpp] = "--enable-collab-backend-xmpp,--disable-collab-backend-xmpp,libgsf libxml2 loudmouth" +PACKAGECONFIG[collab-backend-tcp] = "--enable-collab-backend-tcp,--disable-collab-backend-tcp,libgsf libxml2" +PACKAGECONFIG[collab-backend-service] = "--enable-collab-backend-service,--disable-collab-backend-service,libgsf libxml2 libsoup-2.4 gnutls" +PACKAGECONFIG[collab-backend-telepathy] = "--enable-collab-backend-telepathy,--disable-collab-backend-telepathy,libgsf libxml2 telepathy-glib telepathy-mission-control" +PACKAGECONFIG[collab-backend-sugar] = "--enable-collab-backend-sugar,--disable-collab-backend-sugar,libgsf libxml2 dbus-glib" + +EXTRA_OECONF = " --disable-static \ + --enable-plugins \ + --enable-clipart \ + --enable-templates \ + --without-gnomevfs \ + --with-gtk2 \ + --with-libwmf-config=${STAGING_DIR} \ +" + +do_compile() { + cd goffice-bits2 + make goffice-paths.h + make libgoffice.la + cd ${B} + oe_runmake +} + +PACKAGES += " ${PN}-clipart ${PN}-strings ${PN}-systemprofiles ${PN}-templates " + +FILES_${PN} += " \ + ${libdir}/lib${PN}-*.so \ + ${datadir}/mime-info \ + ${datadir}/icons/* \ + ${datadir}/${PN}-${SHRT_VER}/glade \ + ${datadir}/${PN}-${SHRT_VER}/scripts \ + ${datadir}/${PN}-${SHRT_VER}/system.profile-en \ + ${datadir}/${PN}-${SHRT_VER}/system.profile-en_GB \ + ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt-en_GB \ + ${datadir}/${PN}-${SHRT_VER}/templates/Employee-Directory.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Business-Report.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Fax-Coversheet.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Resume.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Two-Columns.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Memo.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Press-Release.awt \ + ${datadir}/${PN}-${SHRT_VER}/certs \ + ${datadir}/${PN}-${SHRT_VER}/ui \ + ${datadir}/${PN}-${SHRT_VER}/xsl* \ + ${datadir}/${PN}-${SHRT_VER}/mime-info \ + ${datadir}/${PN}-${SHRT_VER}/Pr*.xml \ +" + +# don't steal /usr/lib/libabiword-3.0.so from ${PN} +# in this case it's needed in ${PN} +FILES_${PN}-dev = " \ + ${includedir} \ + ${libdir}/pkgconfig \ + ${libdir}/${PN}*.la \ + ${libdir}/lib${PN}*.la \ + ${libdir}/${PN}-${SHRT_VER}/plugins/*.la \ +" +FILES_${PN}-dbg += "${libdir}/${PN}-${SHRT_VER}/plugins/.debug" +FILES_${PN}-doc += "${datadir}/${PN}-*/readme*" + +FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/strings" +FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/system.profile*" +FILES_${PN}-clipart += "${datadir}/${PN}-${SHRT_VER}/clipart" +FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/AbiWord/strings" +FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/AbiWord/system.profile*" +FILES_${PN}-templates += "${datadir}/${PN}-${SHRT_VER}/templates" + +PACKAGES_DYNAMIC += "^${PN}-meta.* ^${PN}-plugin-.*" + +python populate_packages_prepend () { + abiword_libdir = d.expand('${libdir}/${PN}-${SHRT_VER}/plugins') + do_split_packages(d, abiword_libdir, '(.*)\.so$', 'abiword-plugin-%s', 'Abiword plugin for %s', extra_depends='') + + metapkg = "abiword-meta" + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + d.setVar('FILES_' + metapkg, "") + blacklist = [ 'abiword-plugins-dbg', 'abiword-plugins', 'abiword-plugins-doc', 'abiword-plugins-dev', 'abiword-plugins-locale' ] + metapkg_rdepends = [] + packages = d.getVar('PACKAGES', 1).split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale") and not pkg.count("abiword-doc"): + print "Modifying ", pkg + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) + d.setVar('DESCRIPTION_' + metapkg, 'abiword-plugin meta package') + packages.append(metapkg) + d.setVar('PACKAGES', ' '.join(packages)) +} + +FILES_${PN}-plugin-openxml += "${datadir}/${PN}-${SHRT_VER}/omml_xslt" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch new file mode 100644 index 000000000..f7528adad --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch @@ -0,0 +1,12 @@ +Index: libbonoboui-2.24.5/tools/browser/Makefile.am +=================================================================== +--- libbonoboui-2.24.5.orig/tools/browser/Makefile.am ++++ libbonoboui-2.24.5/tools/browser/Makefile.am +@@ -2,7 +2,6 @@ INCLUDES = \ + -DBONOBO_BROWSER_DATADIR=\""$(datadir)"\" \ + -DBONOBO_SUPPORT_LOCALEDIR=\""$(datadir)/locale"\" \ + -I$(srcdir) -I$(top_srcdir) \ +- -I$(top_srcdir)/bonobo-browser \ + $(BONOBOUI_CFLAGS) \ + $(WARN_CFLAGS) + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.m4 b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.m4 new file mode 100644 index 000000000..3ec41666b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.m4 @@ -0,0 +1,53 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + dnl for overriding the documentation installation directory + AC_ARG_WITH(html-dir, + AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST(HTML_DIR) + + dnl enable/disable documentation building + AC_ARG_ENABLE(gtk-doc, + AC_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [default=no]]),, + enable_gtk_doc=no) + + have_gtk_doc=no + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + if test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists gtk-doc; then + have_gtk_doc=yes + fi + + dnl do we want to do a version check? +ifelse([$1],[],, + [gtk_doc_min_version=$1 + if test "$have_gtk_doc" = yes; then + AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version]) + if $PKG_CONFIG --atleast-version $gtk_doc_min_version gtk-doc; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + have_gtk_doc=no + fi + fi +]) + if test x$enable_gtk_doc = xyes; then + if test "$have_gtk_doc" != yes; then + enable_gtk_doc=no + fi + fi + + AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) + AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL") +]) diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.make b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.make new file mode 100644 index 000000000..354ffb7c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/files/gtk-doc.make @@ -0,0 +1,173 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + -installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(srcdir)/html/index.sgml' ; \ + $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ + which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ + fi + + +uninstall-local: + rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc new file mode 100644 index 000000000..e0f616869 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc @@ -0,0 +1,29 @@ +DESCRIPTION = "Bonobo CORBA interfaces library" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" +SECTION = "x11/gnome/libs" +DEPENDS = "glib-2.0 orbit2 intltool-native libxml2 dbus dbus-glib" + +inherit gnomebase gtk-doc lib_package + +ORBIT_IDL_SRC = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" + +RDEPENDS_${PN}-bin = "${PN} perl" +FILES_${PN} += "${libdir}/orbit-2.0/*.so ${libdir}/bonobo/monikers/*.so" +FILES_${PN}-dbg += "${libdir}/bonobo/monikers/.debug \ + ${libdir}/bonobo-2.0/samples/.debug ${libdir}/orbit-2.0/.debug" +FILES_${PN}-dev += "${libdir}/orbit-2.0/*.la ${libdir}/bonobo/monikers/*.la ${libdir}/bonobo-2.0/samples" +FILES_${PN}-staticdev += "${libdir}/orbit-2.0/*.a ${libdir}/bonobo/monikers/*.a" + +LEAD_SONAME = "libbonobo-2.so" + +PARALLEL_MAKE = "" + +do_compile() { + oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" +} + +do_install() { + oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" DESTDIR="${D}" install +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/0001-Remove-use-of-G_DISABLE_DEPRECATED.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/0001-Remove-use-of-G_DISABLE_DEPRECATED.patch new file mode 100644 index 000000000..44cf1f9fa --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/0001-Remove-use-of-G_DISABLE_DEPRECATED.patch @@ -0,0 +1,47 @@ +From fef13a371fc91f6d9b42518126c2a8b459fdf0e8 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 2 May 2013 14:17:38 -0400 +Subject: [PATCH] Remove use of G_DISABLE_DEPRECATED +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This now trips up on GStaticRecMutex; I'm not going to bother to port, +realistically no one is actively maintaining this code anymore. + +Upstream-Status: Applied + +Signed-off-by: Andreas Müller +--- + activation-server/Makefile.am | 1 - + configure.in | 2 +- + 2 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/activation-server/Makefile.am b/activation-server/Makefile.am +index efb18a8..ffa90f6 100644 +--- a/activation-server/Makefile.am ++++ b/activation-server/Makefile.am +@@ -17,7 +17,6 @@ INCLUDES= \ + $(SERVER_CFLAGS) \ + $(WARN_CFLAGS) \ + -DSERVER_CONFDIR=\"$(sysconfdir)\" \ +- -DG_DISABLE_DEPRECATED \ + -DG_LOG_DOMAIN=\"Bonobo-Activation-Server\" \ + $(NULL) + +diff --git a/configure.in b/configure.in +index 70a4e26..6be2bca 100644 +--- a/configure.in ++++ b/configure.in +@@ -132,7 +132,7 @@ AC_SUBST(SERVER_LIBS) + AC_SUBST(SERVER_CFLAGS) + + if test "$enable_maintainer_mode" = "yes"; then +- DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES" ++ DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES" + AC_SUBST(DISABLE_DEPRECATED_CFLAGS) + fi + +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/do-not-use-srcdir-variable.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/do-not-use-srcdir-variable.patch new file mode 100644 index 000000000..a20edda84 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo/do-not-use-srcdir-variable.patch @@ -0,0 +1,24 @@ +| tests/Makefile.am:55: error: using '$(srcdir)' in TESTS is currently broken: '$(srcdir)/te +st-properties.sh' +| tests/test-activation/Makefile.am:76: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS +' (or '*_CPPFLAGS') +| utils/Makefile.am:9: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS +') +| autoreconf: automake failed with exit status: 1 + +Signed-off-by: Khem Raj +Upstream-Status: Not Submitted + +Index: libbonobo-2.32.1/tests/Makefile.am +=================================================================== +--- libbonobo-2.32.1.orig/tests/Makefile.am 2010-08-29 04:56:00.000000000 -0700 ++++ libbonobo-2.32.1/tests/Makefile.am 2014-04-25 15:38:22.024744384 -0700 +@@ -55,7 +55,7 @@ + MODELS_DIR="$(srcdir)/models" + + TESTS = test-moniker$(EXEEXT) test-event-source$(EXEEXT) test-object$(EXEEXT) \ +- test-stream-mem$(EXEEXT) $(srcdir)/test-properties.sh test-storage-mem$(EXEEXT) \ ++ test-stream-mem$(EXEEXT) test-properties.sh test-storage-mem$(EXEEXT) \ + test-main-loop$(EXEEXT) + + # TESTS += test-generic-factory.sh diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb new file mode 100644 index 000000000..fd4d81210 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb @@ -0,0 +1,8 @@ +require libbonobo.inc + +SRC_URI += "file://0001-Remove-use-of-G_DISABLE_DEPRECATED.patch \ + file://do-not-use-srcdir-variable.patch \ + " +SRC_URI[archive.md5sum] = "27fa902d4fdf6762ee010e7053aaf77b" +SRC_URI[archive.sha256sum] = "9160d4f277646400d3bb6b4fa73636cc6d1a865a32b9d0760e1e9e6ee624976b" +GNOME_COMPRESS_TYPE="bz2" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb new file mode 100644 index 000000000..627f37ed9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb @@ -0,0 +1,21 @@ +SECTION = "x11/gnome/libs" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" + +inherit gnomebase pkgconfig gtk-doc + +SRC_URI += "file://gcc5.patch" + +SRC_URI[archive.md5sum] = "853be8e28aaa4ce48ba60be7d9046bf4" +SRC_URI[archive.sha256sum] = "fab5f2ac6c842d949861c07cb520afe5bee3dce55805151ce9cd01be0ec46fcd" +GNOME_COMPRESS_TYPE="bz2" + +DEPENDS = "libgnomecanvas libbonobo libgnome glib-2.0 gconf libxml2 libglade gnome-common intltool-native" + +FILES_${PN} += "${libdir}/libglade/2.0/*.so" +FILES_${PN}-dev += "${libdir}/libglade/2.0/*.la ${datadir}/gnome-2.0/ui \ + ${libdir}/bonobo-2.0/samples" +FILES_${PN}-staticdev += "${libdir}/libglade/2.0/*.a" +FILES_${PN}-dbg += "${libdir}/bonobo-2.0/samples/.debug \ + ${libdir}/libglade/2.0/.debug" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb new file mode 100644 index 000000000..2b6f15e82 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb @@ -0,0 +1,29 @@ +SUMMARY = "configuation database system" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SECTION = "x11/gnome" + +inherit gnomebase gsettings +SRC_URI[archive.md5sum] = "69a12ed68893f2e1e81ac4e531bc1515" +SRC_URI[archive.sha256sum] = "109b1bc6078690af1ed88cb144ef5c5aee7304769d8bdc82ed48c3696f10c955" +GNOME_COMPRESS_TYPE = "xz" + +DEPENDS = "glib-2.0 gtk+3 libxml2" + +inherit vala gtk-doc + +EXTRA_OECONF += "--disable-man" + +PACKAGES =+ "dconf-editor" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${libdir}/gio/modules/*.so \ +" +FILES_dconf-editor = " \ + ${bindir}/dconf-editor \ + ${datadir}/icons \ + ${datadir}/bash-completion \ +" +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/libdconfsettings.so" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb new file mode 100644 index 000000000..57a8720f2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb @@ -0,0 +1,18 @@ +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils" +DESCRIPTION = "desktop-file-utils contains a few command line utilities for working with desktop entries:" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "glib-2.0" + +PR = "r1" + +SRC_URI = "http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${PV}.tar.bz2" +SRC_URI[md5sum] = "d966b743eb394650f98d5dd56b9aece1" +SRC_URI[sha256sum] = "d9449956c1c8caa75281a3322b2bb433db42610942f0ceeaa65ccd9636c04231" + +inherit autotools pkgconfig + +CACHED_CONFIGUREVARS += "ac_cv_prog_EMACS=no" + +BBCLASSEXTEND = "native" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb new file mode 100644 index 000000000..b00a44935 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Devilspie2 is a window matching utility, allowing the user to perform scripted actions on windows as they are created" +HOMEPAGE = "http://www.gusnan.se/devilspie2" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \ + file://GPL3.txt;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "gtk+ glib-2.0 libwnck lua virtual/libx11" + +SRC_URI = " \ + http://www.gusnan.se/devilspie2/download/devilspie2_${PV}-src.tar.gz \ + file://default.lua \ + file://devilspie2.desktop \ +" +SRC_URI[md5sum] = "99c88f702e134d2b2f2f8caad4b1ef03" +SRC_URI[sha256sum] = "01a2ebcece14065c9a2e47decd81341e2a6f63e3bf43ff446103686718748356" + +inherit pkgconfig + +do_compile() { + export GTK2=1 + oe_runmake CC="${CC}" CPPFLAGS="${CPPFLAGS}" LDFLAGS=" -ldl -lm ${LDFLAGS}" +} + +do_install() { + oe_runmake DESTDIR="${D}" PREFIX="${prefix}" install + install -d ${D}/${sysconfdir}/devilspie2 + install -m 644 ${WORKDIR}/default.lua ${D}/${sysconfdir}/devilspie2 + install -d ${D}/${sysconfdir}/xdg/autostart + install -m 644 ${WORKDIR}/devilspie2.desktop ${D}/${sysconfdir}/xdg/autostart +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/default.lua b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/default.lua new file mode 100644 index 000000000..22a17fe98 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/default.lua @@ -0,0 +1,46 @@ +-- Copyright (c) 2012 Andreas Müller +-- +-- this is an example +-- * undecorating all windows opened maximized +-- * maximizing and undecorating all appplication's windows in apps_list +-- for further information see +-- http://www.gusnan.se/devilspie2/manual.php + +wnd_type = get_window_type() + +if(wnd_type == "WINDOW_TYPE_NORMAL") then + + -- add only applications you want maximized+undecorated and + -- which don't keep maximized state + apps_list = + { + "Terminal", + "ristretto", + "xarchiver", + } + + app_name = get_application_name() + + -- to have some informational output, start devilspie2 with --debug + -- option and uncomment the following lines: + + --debug_print ("Window Name: " .. get_window_name()) + --debug_print ("Application name: " .. app_name) + --debug_print ("window-type: " .. wnd_type) + + -- undecorate all windows starting maximized + if (get_window_is_maximized()) then + undecorate_window() + + -- maximize/undecorate all windows in apps_list + -- (unfortunately for some also their settings) + else + for line, str in ipairs(apps_list) do + if (string.find(app_name, str)) then + maximize() + undecorate_window() + break + end + end + end +end diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/devilspie2.desktop b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/devilspie2.desktop new file mode 100644 index 000000000..e34e881cd --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/devilspie/files/devilspie2.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=Devilspie2 +Exec=devilspie2 -f /etc/devilspie2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-contact-Replace-the-Novell-sample-contact-with-somet.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-contact-Replace-the-Novell-sample-contact-with-somet.patch new file mode 100644 index 000000000..b77e7b9bd --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-contact-Replace-the-Novell-sample-contact-with-somet.patch @@ -0,0 +1,215 @@ +From 4df8bd8ae4258289663b27af1207027c7ee06340 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 4 Aug 2013 09:13:25 +0200 +Subject: [PATCH 1/5] contact: Replace the Novell sample contact with something + more appropriate + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Martin Jansa +--- + addressbook/backends/file/Makefile.am | 1 + + addressbook/libedata-book/ximian-vcard.h | 179 ++++++++++++++++++------------- + 2 files changed, 103 insertions(+), 77 deletions(-) + +diff --git a/addressbook/backends/file/Makefile.am b/addressbook/backends/file/Makefile.am +index 08cf58f..17e7149 100644 +--- a/addressbook/backends/file/Makefile.am ++++ b/addressbook/backends/file/Makefile.am +@@ -2,6 +2,7 @@ ebook_backend_LTLIBRARIES = libebookbackendfile.la + + libebookbackendfile_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ ++ -DCREATE_DEFAULT_VCARD \ + -DG_LOG_DOMAIN=\"libebookbackend\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ +diff --git a/addressbook/libedata-book/ximian-vcard.h b/addressbook/libedata-book/ximian-vcard.h +index 782d37b..5b0b250 100644 +--- a/addressbook/libedata-book/ximian-vcard.h ++++ b/addressbook/libedata-book/ximian-vcard.h +@@ -1,80 +1,105 @@ + #define XIMIAN_VCARD \ + "BEGIN:VCARD\n" \ +-"X-EVOLUTION-FILE-AS:Novell Ximian Group\n" \ +-"ADR;TYPE=WORK:;Suite 500;8 Cambridge Center;Cambridge;MA;02142;USA\n" \ +-"LABEL;TYPE=WORK:8 Cambridge Center, Suite 500\\nCambridge\\, MA\\n02142\\nUSA\n" \ +-"TEL;WORK;VOICE:(617) 613-2000\n" \ +-"TEL;WORK;FAX:(617) 613-2001\n" \ +-"EMAIL;INTERNET:hello@ximian.com\n" \ +-"URL:http://www.ximian.com/\n" \ +-"ORG:Novell;Ximian Group\n" \ +-"PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQEARwBHAAD//gAXQ3JlYXRlZCB3aXRo\n" \ +-" IFRoZSBHSU1Q/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCM\n" \ +-" cHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMj\n" \ +-" IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAbgBkAwEiAAIRAQMRAf/EA\n" \ +-" BwAAAIDAQEBAQAAAAAAAAAAAAAHBQYIBAMBAv/EAEYQAAEDAwEFBgMEBgQPAAAAAAECAwQABREG\n" \ +-" BxIhMWETIkFRcYEUkaEIMkLBFSNSsbLRFmJydRgkMzY3Q0RGgpKTosLh8P/EABsBAQACAwEBAAA\n" \ +-" AAAAAAAAAAAAEBQIDBgEH/8QALREAAQMCAwYGAgMAAAAAAAAAAQACAwQREiFRBRMiMUFhMnGBkb\n" \ +-" HRBsEUofD/2gAMAwEAAhEDEQA/AH/RRRREVwXe9W2wwFzbpNZixkc1uqwPQeZ6CoHXevLfom1ds\n" \ +-" 9h6a6D8PGCsFZHMk+CR4n86yzdbrqfaZqYBSnp0hRPZMoG62ynoOSR1Pua8Lg0XPJegX5Jv6k+0\n" \ +-" bBjrWxp22LlkcBIlHs0HqEjiR64peT9umupqyWrhHhpP4WI6eHureNW7Tmw+DGaTI1FJVJdxksM\n" \ +-" qKG09CrmfbFMCHpCw2xATDs8JrH4gykq+Z4mqifbMUZsxpd/QUllK53M2SCb2xa+bXvf0gcV0Uw\n" \ +-" 0R/DVktH2hdUwlpFxjQrg1490tLPuOH0pvv2qE4jdchx1p8lNAj91Va87OtM3RCt+2Nx3Dyci/q\n" \ +-" yPYcD7g1EZ+RR4rSMI9b/S2mhdbhKsmkdtWmNTuNxnXVW2cvgGZRASo+SV8j74PSmOlQUMpORWP\n" \ +-" NU7MrjY0rlQFmdDTxOE4cQOo8R1Hyqe2Z7ZJ2m32bXfHnJVpJCUuqO8uP7+Kenh4eVXkFRFUMxx\n" \ +-" G4UOSN0Zs4LU1FeEOWxOityYzqHWXEhSFoOQoHkQa963rBFFFFERUdfr1E09Y5d1mr3Y8ZsrV5n\n" \ +-" yA6k4A6mpGkL9ojUym0W/TrLmAsGU+AeYBwgfPJ/4RREqrrcb1tJ1oUpBXLmObqUZ7rSByT0SkZ\n" \ +-" J8zk1pHQmiLXo+zpbabC3SAp55Q7zyvM9PIUudiGmURbS7fpCMvzFFton8LSTxx6qH0FM7VV9VY\n" \ +-" 9MzZ7aQt5tASw3+26ohKB/zEVSVFVvZzGMw02tqe/kpbI8LMR6/C/Xxq9QagfbbP+IW1QQ4Rycf\n" \ +-" xncHRAIJ/rEfsmu2a9Fgsl2XIZjtj8bqwgfM1+9L2VFksESAV9o6hG886ebjqjvLWepUSarutdn\n" \ +-" MXV+obRcZks/CwCQ5DKMpeBOTxzwzgA9KwfTtfxPOSB5GQUXc9pOjoC+zXe2HV5xiOC6PmkEfWp\n" \ +-" xe6tAWghSVDIIOQRXxekNOx4b0WPZYLLTram19mwlJKSMHjjNUzQd2dZM7SNxczcLOsttqVzdYz\n" \ +-" 3FewI9iKpK2mjMZdFe7ed9NfT9qZDI4OAd1Vkko50ndoui22kuXq2NBOO9JZSOH9sD9/z86c8gc\n" \ +-" DUJNQlaFJUkKSoYII4EVGoKp9PIHt9e6lyRNlZhcqlsJ2guQpydL3F4mO7kw1KP3Fcyj0PEjrnz\n" \ +-" rSAIIyOVYfvsJ3TGqlCKpTfYuJfjLHMDOR8jw9q2Foy+o1FpWBckY/XMpUoeRxxHsciu/jeJGB7\n" \ +-" eRXPvaWuLT0U/RRRWaxQeVY82x3BVw2oXbJyhgoZR0AQM/UmthK+6fSsWbRQW9pV73x/tZPtwNE\n" \ +-" Wj9Nw0WuwwIKQAGI6G/cAZ+tRW0lx5nTEW4Ntqdat9xjy5CEjJLSFZP5H2qaYdCkpUk5BGQa7Ap\n" \ +-" DrSm3EpWhYKVJUMgg8wRXz+kqyyTG7VXUsV22Clrfc48+CzMiPIejvIC23EHIUDXNe79b7HbXbh\n" \ +-" c5SI8ZvmtZ5nyA5k9BS7d0nfdMPuSdD3JtEZaitdom5Uznx3DzT6cPWkvq/V1611fGW5nZtBCgy\n" \ +-" zFbXhtCycE5JxknxPhXR07RUeB3D11H+9lAfwcxmrrqLbxcHpikWGAw1FScByUkqWvrgEBPpxqi\n" \ +-" ztdXWdqmNqIIjx7gykJUphJCXAM/eBJ5g4PQCmBZNiDKWEu364uF0jJYh4AT6qUDn2FVu6bPIkT\n" \ +-" aTB08xKeMOU2H99eCtKRvZGQMZ7hwceNZxVGzsbmMzIBv5dfNeOjnsCdUwbTtKsV8nJgIccZkqw\n" \ +-" lJcThDqvJJz8s4zUtLVzpc2vZZKt+qBIkyUKt0V0ONKSe+7g5SCPDr9Kv0tznXP1cNMyQfxnXBC\n" \ +-" tqUyuB3gslftPjJLkGWB3u82o/Ij86bf2e7iqRoxyIpWfhpC0JHQ4V/5GlVtJcBt0RPiXif+00w\n" \ +-" Ps5BQtNxP4TJP8Ka6rZZJpW37/Kq68ATlPeiiirBQ0HlWR9t9qVbtpEp/dwiY0h5J8Mgbp/h+ta\n" \ +-" 4pM7fdKLumn2rxGbKn4BKl4HEtn73ywD7GiL7o28JuulLbKCsqLKUL/tJ7p+oqyIe4c6RGyzU4g\n" \ +-" THLNJc3WpCt9gk8A54j3GPcdaZuoosy82V23QpaYpkEIdeIJKUeIAHieXPkTXA11DuassJsCefY\n" \ +-" /SvYZN5FiGZU9edRwLDAXJny2mRukoStQBWQOQHjSjg7PYE7ZmzcZb7cG6KK5CZD6txOCcJQvPg\n" \ +-" QAQfAn2q6RNOWi1D9J3R5dwlR2xmZPVv9mlI8ByTj59ar09Lm0jUIQl5Y0zAUMrQSPiXfHHpyz4\n" \ +-" D1qTRvMQIieQAQXOtllfIDre/X2WqVmI8Qz6D9q0bP9SO37SrSpW8ZUVXw7q+YcKeSgeRyMZ65q\n" \ +-" qammvWTalEv1yjOJtaWfh25CBvBOUkHPlxUeHlyq/MiPCitxorSGWG07qG0DASK45xZlx3GJDaH\n" \ +-" WljCkLGQR6VGinY2ofIG8Lri2gOi37hxYG3zC+uT2HY6ZDbyFMrAUlwK7pB5HNRcp7nxqpzdN3G\n" \ +-" CFQ7NObTa3nApcaSN/suOe4SDw6VK3O4swojsp9WGmxk9fIDrW4UzWkbt2K/v691vjec8YtZUTa\n" \ +-" BL+IuMaIjiWWytXQn/wBD608tgtrVC0W2+tOFSFqd9icD6AVnmFFl6n1AhoAmRPdwcfgR4n2H7q\n" \ +-" 2Ppi1N2exRojaQlKEBIHkAK7Gmi3MTWaLn6iTeSF+qmaKKK3rSiuedEanQ3I7qQpC0kEEZzXRRR\n" \ +-" FjnaRoSVoq/KcYQv9HOr3mHB/qzz3SenhVi0ftAbnNNwLo6G5iQEodUcJd9fJX760ZqLTkHUdsd\n" \ +-" hTWEOtuJwQoVl/XGyS7aakOPwGnJcDORujK0DqPH2qJV0cdUzC/0Oi3QTuhddqY84IuFukwnFFK\n" \ +-" JDSmlEcwFDGR86ISI1tgtQ4jYaYaTuoSP/udJS1azvFoAZLnbsp4dm/klPQHmKs0faVEWkfEw32\n" \ +-" 1f1CFj8q56XZNSwYG5t7fSt46yB5ucimM5L4c643pXWqU5tCteMpRKUfIIH86ipmvnnAUwoQSf2\n" \ +-" 3lZ+g/nWEey5yfCtrquBo8Su0+4sQ46pEp1LTSeZUfoPOlnfr67fZKQlK0QkK/VtficV5nrXOkX\n" \ +-" XUk9KQHp0gnghI7qPyAp1bOdkCmH2rneQHHxxQjHdb9OvWr2j2c2Didm74VZVVplGFuQXRsc2fO\n" \ +-" Qgb1cmsSXQN1JH+TT4D+dPEAAADkK848duMylppISkDGBXrVkoCKKKKIiiqrrbX9m0JARIua1re\n" \ +-" dJDMdoArcI58+AA8zVLsO26RqiS9Gsukpct5lHaKbTLaSrd8wFEZ9s0RN6vGRGZktlDqAoHzFKq\n" \ +-" JtomzrPOuzGjZvwEBRTJfckttpbUOae9jJ5cBk8R514Wrbo7e489+3aTlvtQGTIkqElsdm2Mkq4\n" \ +-" 4zyPKiKf1Hsj09flKdXEQh4/jR3VfMUvJ/2et1ZMOe8keSgFfyqz2LbfJ1M9IZs2kJsx2O0XnEN\n" \ +-" yEAhA4ZwcZ58hxr7ZdtkvUS5SbTo2fJMRsuPkPoSG0jzKsDPPhz4HyoipDewC47+FXFWOjYH51Y\n" \ +-" bTsAgtrSqc88/jwWrA+QxUlYtujupZ6oNo0nLlSUtqdKEyW04SMZOVYHiKjP8ACUt5/wB3pX/XT\n" \ +-" /KiJnWLQ1nsTSURorad39lIFWZKUoThIAHSlNqDbLP0siKu96MnQ0ygSyVyGzvYxnlnB4jga87F\n" \ +-" ttlamXJbs2j50xcZvtXUtyEZCfPB5+gyaIm9RSetm3J68RbhJgaSmPM25vtZaviW09knjxIOM8j\n" \ +-" y8q7LHtzstwv/AOhrlBftkkudkFOLS43v5xgqSeHHx5daImrRX5QtK0hSTkGiiLMP2ho8wa1iSn\n" \ +-" QoxVRQ20fAKClFQ9eIqq7LLJe7vreG7ZZCoZhqD8iZjustjnnwORkY8c+Wa1ZqbStt1PBMa4MId\n" \ +-" Rz7wzg+dL8bEbA1vpa7RtK+CkpdWAfXjRFB7UpCNe6Kdm6NnJft1qluKuUJlvdKznPbYH3hzPXJ\n" \ +-" PMGqZsk/zc2gf3G5/Cumc3sRsTO92Rcb3uB3XVjP1r4jYfYGwoN76QsYUEurGR5HjREudhUt2BP\n" \ +-" 1TMYID0eyuuoJGRvJII+oq96I2iwtVz7rb7ZZWbalyzyJ9wKUjLsrKEkjH4cE8+Jz049bew+wNb\n" \ +-" 3Z76N4YO66sZHlzob2H2Bkktb6CRglLqxkeXOiJZbAv9IMj+7X/wB6ag9lGnEaj17CRJA+BhZmy\n" \ +-" lK+6EI44PQq3R6E06W9h9gZVvNb6FYxlLqwcfOhvYhYWt7s99G8MK3XVjI68aIo7UxgbR9IajhQ\n" \ +-" 7/Du9yiSF3S3tMNrStlkAAt94DPDI4eJFUvYfNetqNYz4xAfjWZx5skZAUnJHD1FMVrYhYWVbzW\n" \ +-" +2ojGUOrBx86EbD7A0FBvfRvDCt11YyPI8aIo23zdP6i2e621TaUJiXCfa1IucFPJt5KVnfHRWS\n" \ +-" euPPNZ2YadfkNsspUp1aglCU8yTyrTSNh9gbCgjfSFjCgl1YyPI8al9PbItP2WamUywkuJ5KOVE\n" \ +-" emeVEVw02ZH9H4YkEqdDYCifE4oqXbaS02lCRhIGBRRF//Z\n" \ ++"VERSION:3.0\n" \ ++"FN:Yocto Project\n" \ ++"URL:http://www.yoctoproject.org/\n" \ ++"EMAIL:yocto@yoctoproject.org\n" \ ++"TEL;TYPE=VOICE:+00 000 000 0000\n" \ ++"ADR;TYPE=HOME:;1720 Beaver Creek;Dam #4;Planet Earth\n" \ ++"LABEL:1720 Beaver Creek\\nDam #4\\nPlanet Earth\n" \ ++"PHOTO;ENCODING=b:iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pV\n" \ ++" UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAFE9JREFUeJztnXmQHNV9xz\n" \ ++" +ve86dvU/tanUiCVwRQuaIhSEOMsIiEsbGRtiVGFy4EsdU4bINOICPUtkQHOxgYoiDTVJxCBiwM\n" \ ++" CBxBjAlsIUlEQzISAhZN5JW2l3tvbNz9JU/fu/N7CwgVquVmEr194/t7enu97p73vf9zvcbCBEi\n" \ ++" RIgQIUKECDH5UB/0DYwXwZv/Mh8AK3ISgBs4AwAR29oCwNwFfQBKLXY/mDucHFgf9A2EKEXZMiT\n" \ ++" YdtdUADff+QCA5Q/9BQB+Xk7w9a27vpxP8g0AO9J4IYA64/qOE3m/k4WQIWWGsmJI/q0fn2P+t5\n" \ ++" zerwFYDK0ACAgCAMsXRuCLqPDTQ7LvBgogSDY8DODWLvguQOLkv9t6Qm5+khAypMwQfiFlhkmZs\n" \ ++" vY/9rOzAXK59EkAEc87BDD9c99cC6CU8t7tumD/PQ0A/uCOHwF4Vm6pOWbnc20AlvIDOTnQF8nU\n" \ ++" hJOT3XQ/AK7jyJRWUSXHIw1vAQQV078BEJ1/7f9MwqMed4QMKTNMiCF/uP/ONgC7Y/ODAF52YCE\n" \ ++" ArhcBwMIDiMZiLkAsVX8fwClfvfOrALldd5wGYGe6HgRQQfpkABXxi/fjCKkCX6ihtJ6rtFAP8i\n" \ ++" Ny3nAfAJ4dk/OiCQBsZSn5vLoXIJ+aezVAxfxvPDCRZz5RCBlSZpgQQzbe+qXzAYLcwAMAgRM0A\n" \ ++" UTQ072Sf6JKmo8HWQVgNSc7AU6+YG4AELiZKXITIic8gsL92J5uyzXixzBGbx1tIA73yIMkK2Vr\n" \ ++" x/R5cg9KaXU40gCAH2//lOkjsm3WkwB97KoEyOHUA2TTw9J5U0MWwNm5rw9g3tfuzB3lqzpqhAw\n" \ ++" pM0QmclE0knIBvOywD+ApB4BAG2u2EmoEnnw+xEAAsODD7S0AuGLMKZRRnYRBRpMCfMMMLTNUIP\n" \ ++" vKc0u2WPoaSz+KbeuPPQXge8I+5XeLDAqsX5k+OnK7bwJwe50bAHLZfBWAo9v2DnfK3dnxtQCv3\n" \ ++" vH1WwB2TPnoWoDLLrvsXbXHY0HIkDLDhBhizzx1J4C7tXcYQAVOC4CtRYAVyKh2/DQA886ZoQAS\n" \ ++" VVGgaEqosTJsFEOUN8aJyNjB6JdeY+mxFZQ2qSwtQzw50c4eSJhjUW/wHwF275O+UpX1Its0w72\n" \ ++" 88eSPLAZwoiMfAWj1131aH3iOSUbIkDLDhBhy2me/vB9gw21XPQQQH8zcAOArmdADJ6MApp5SB0\n" \ ++" D1lKqS6wtjODBGuLYt/FGxJSM7fDNmglF/QRkfo2aORel5Zlvsy9NMKfbR0CLXJPZIG44n51hKP\n" \ ++" ncLfcp+3sknALxMunbsO5kshAwpM0yIIQaLrr3rRoD1t15ZB5AY6vx7gGhKRlxNe61oOLYto1Nf\n" \ ++" F2hmKE/LBTNqNVNglP3hyvyuCtfIvm/cYyqpt7Y+T2t8Y5lSuqsvEf60z4gD8MarYvVX1WibRZ/\n" \ ++" saHnlqOQWgFjDzFfe+60cG0KGlBkmNUC1/t9XngfQ1nTg1wDTZ9jizS3M23p4+qZz3X1ExoWy7E\n" \ ++" JbgXHyau1JG/0of0xbuo3A1Z97pZZ9gX3umC2gHQRkhrIAvLxeLHTbEoYYZntWbBjAr5t6HcDHr\n" \ ++" 73950d4DceEkCFlhmOSIWOx6LwqmYyzNdUAXrav5LiypTsVE39TwYYwE7w3yg7Rmo7RtgjMyDfX\n" \ ++" 2HrP7BsmGc1IU8pY8rbpsiinDItiCfEU19aLzdLZKYxJVNbtAnAq638CcMFxZIZByJAyw6TIkGD\n" \ ++" vc7MBvM5nNgCoYKAJINDD1dIeVxPLANGEKPirHNPSqEaNvDHMUKVbY5nbhimaIfq4r4IxVwW6uV\n" \ ++" EWvyf3Y2lZ0tNrdQFs3hb7KYCTaH4U4IJrb3/j/d7BZCFkSJlhUmRILuckAGKD2SYAnAwAFmL5Z\n" \ ++" jKZACCTFgs+OyzHs3kJLzg62S2fLxLW08ywtWyIxuRYLCG3XBGXbVV1BQCpSn2tlhWWHdVPKGIt\n" \ ++" MHZKiSEibfiabTXNElP5y2mNjwGoj9xywphhEDKkzDApDEnMW/YmQG7DDyS2PsBXAF7dsPNigDe\n" \ ++" 27msDCIzfyZZRa+mRGTExjFESzVKxkj6M1Vzwe3nCMiffr9uQ4w3V0nZzszTWWC99NDbK6E9WJg\n" \ ++" ttqmhC7I7KavFhxWqbAdxI5ZSjfQeThZAhZYbwCykzTKphGF904yb971UAv1l5hQPQ3uZdLZ1Jt\n" \ ++" KngXNT+EEuZgFVxfPgFhdUIYatkz1zrG/VYq7M5TxSFvQdlf9N22R/JSDi2rqo4L86cJprAwvl2\n" \ ++" L0BFW634VWKRD2yNSciQMsOkMsRg67rVVQDD69acBoCq1u73Uoeg75e6Q7xRrhO/4IfUzsPRHg+\n" \ ++" KLDNX+JackNTqbjwqR6qrdLBJG6X5UQGq/f362r2V1wF8tL71fwFinTM+sIz5kCFlhuPCkNxbW2\n" \ ++" YAJOxYG0CvttYefWUnAGfOqAfg9FbZ5rXj0LOL87uvKeIaEVHIudYukDHnKW34YRtnozxajzZCa\n" \ ++" 5Ki7laM0qar4non0ZoBiC/95uaJPO9kImRImeG4MCTiZWYDxJORaQDPbpTlfvslK4hUp4zas2bK\n" \ ++" fB9xSmULFI1EIzsK3nhvjLNRlTLH4M2DAwA8sWk/AOd9qA2AD0+rL56kU4yi5C/Wnzw47oc8Tgg\n" \ ++" ZUmY4LgyxLW8ugB94cYADg7mSlFETNIpoGng6dBtRxfHhaoejju7iGQYYd3spIQpamQlodQ8KC1\n" \ ++" 0tW/b3yf6HWopaVkVSZIibHT7l6J/y+CBkSJlhUhnyp6eeigPk9v52FkBUB6C0x5z+rIze2Y2SO\n" \ ++" KfGWOyj00BNwoMJapnAk9L6lTVG7JgosGFKbUq0Ks+X5QoZR6/a9YoGja95FnhOJUAQBDF9P/mj\n" \ ++" ffbJQsiQMsOkMiTa2akA0k5OfOCOhGaXzW8HoCct+6e31wCQ0dpVXssLNdr/ruVJoBliZIrJB1K\n" \ ++" 2DtkWBrz8Y3Sw2U3Cwnk66NSiA1mxaHEMKl8CaK4nnW1/+j6TiB0yJIRgUhmyZ+ZMF6Byy5ZuKO\n" \ ++" akTauS+Xx6jWzNqDbmhxfIuOjuOlxoK1mRAqD5zLMBmDp/AQAdL64FYHDPdgBc7ZuKxoWURitLa\n" \ ++" at/+fxpQHHkGc8ygGuqQyjlAsxbdvngBB6bTZs2tANYFfE5APPnLPyDOaaUGjqatkKGlBkmlSGL\n" \ ++" F0utqg0/ve4FAKWiVwPkA6cKIHB8naqpSuIiRvNpbGgotGVkQVWrRFNrpk4H4GC7bL0dkn8QT1S\n" \ ++" U3oRxZWkZFLeMbFHvcAd4nvwfj9dMaKn0s8/ffzHAa5s2rgF4fNUaABoaG3abc35868rLAK65/n\n" \ ++" vjStAOGVJmOC7VgFYGIhTO/+dr7gDIDXd+CSDieUmASCFzuvQu7FFtFOZ8bU3bKdHMRgYlPTWql\n" \ ++" 5sZJcvEO4yZkdNZEb5ehOPp4zkVKdj4qqLuBYDPfu/ujx/N8z3x9H2fkrbdVQB73z4YA3ju8acD\n" \ ++" gP7unsJ7bZnSlgGYffKsCwFuve3u3x6p7ZAhZYYTUi9rzc1f/i5A98G3vw9Qoxf3VyVFhMULDqv\n" \ ++" Rlrp8ZhVSQsdEG8fE1M3WK0QG5eysF+QAPMt+HcCJVj5i+vibW/7zNnjv4jjveI41v1gE4OFLTS\n" \ ++" 7sNgBli99goH9QATy3+qkCC/ds26kAmqc0DwEsXXrRJQBXX3f98+/WR8iQMsNx8fYaGN/QvXddd\n" \ ++" T7Azr1iAO/auQcA1xGpYevRPm9mMYktEZNYSTIqW9ss3DFMcOUaNyeDeyAt+4Pa+LF04kheW//1\n" \ ++" 7W3bASJnT/9X08d4mfHLX981FyDvuqKNRWyd+Ie+F6F2MiUa3+KLLixQ/Yn06gBgsKurCuB3v3v\n" \ ++" uh/rQGe/WV8iQMkP4hZQZjotQf+WXP28EcBP+zwCG4sGnAQb6hy2A7l1bFcCiOgmvbu8Wj8Xat4\n" \ ++" vFdmrrqgFIJHX1B1MVVmc9ZLK6jsqQTINbtsv+nsOy/cxZcn0kIVpBqqVOAbTHpz1m+vjKd/6tU\n" \ ++" Bno3fDoow9MA3C9YUkAjFp1UHT1eDrDIghMtQh94SgnaW5EVmP96r/ulRXJmXwHwA/vuvN0gIUL\n" \ ++" z+ka3WfIkDLDMTHk9f++NgUQT0eaAEac3JUAvV2Hvg6wr3egGmD3iIzqs5b/FQCREUnrPCsiAy+\n" \ ++" bl1F0y7qBQttVzbLUpLJCC/WoKACONghHRoQJ+3d1A9CxR5gyNCLH/3yOFB46c34rANs6DwYAFf\n" \ ++" 3FRSgNze1vAcSTkRsAalMtUrZ8SnsGwG+s3ghgRW0p6myq22nXj6etUM8kXhgaB6MWoUTFy9nXI\n" \ ++" UR45uHHfgTw9Avr/+GdbzRkSNlhQmrvlv/49gyA6NDw7QD5bN8lAP6weJrNiLeaWgKAzte3K4C8\n" \ ++" /v47B2UARdNSN3HJKcKCl94qEna7Tua0IibZQa6Ja89HhTYYG4fkeI1OfqhNySO98baEbrd3Sr5\n" \ ++" odVRmgznVscLojXXvPwUgn0isBhipEpbVTm0GQNutONoLalnWEWeUIChlEICn1fDmltbV8N7MMA\n" \ ++" gZUmYYN0N2r/1Foc5Udstr3wIg138JQKATCNxAhrEKZCQ5VlIBXLrkPACaDu0DYOfmHQAMW5I5F\n" \ ++" 3xY5vmVFxb7+/4a0bjmatnRpjPmDudlgL+o5VKVzmqoTsjxXp1CGtGGpakE0ZeTezw0VJQhlQlp\n" \ ++" O6mrGFHfqAA2bJT40vwzTpf7ntqqQ7263uOYFKRgTOZ3aWK49RiAW2t9gXEgZEiZYdwM6d38ZiE\n" \ ++" HM54fOgPAz4umk8nLMM27kpvpOTJENq2XmExSj5zzW8S1UN8j2lTPdAm7Zl4TO2T+1mII958qpI\n" \ ++" 2WKaJtDc+eAUDt1l0A/G1C2KUCGfmNmkkHtUP+qRHZf13HiWt0FQl3OF3ow6/XNX4rErJaWAe79\n" \ ++" u4Q+2jX9r0AXHL5ZdJ3kwTQXLO+PijZoHSuUhCo9aYP2/a/CnDF0iuKHR8BIUPKDOPXspLFUGkm\n" \ ++" I3Oun5XRmdajMK0ZM5AVbaVrUOTAqoyMqFPrJCUn1yo2wut/Et28tUOOVwcFMUWtkS/aYu8+YxE\n" \ ++" ATXtEDjVrmRBTIitSMWHEbJ1gl9d1fdf3y3k9SNtWtugNmK3lj601obgenhVVcp993aKprb53FQ\n" \ ++" CXXiliIFktCRieXmFkGdPcsg4CpJI115s+VnxyxdscBUKGlBnGzZDTTzqv4HN5qXfViwBZV50JM\n" \ ++" JyRytWDOWHI7l5JbN6ake97d81skTE1LQrg2ks/BsCT9z0NwOY+sbaXnrug0N+da34PwEU7JGQ7\n" \ ++" c794vndoP9Kd/RLSnabXoX9xkSTjPfuaeAEe7hdZslWZer5yXrKY7MD2nhEFUF8hsizWI9b8SXO\n" \ ++" mK4BX+6RvNysOtGdWP6kAPnHJ8gAgkUpqH5bqArDtxOcBVnxyxe/e80W+D0KGlBnGzRC1uPhzdC\n" \ ++" /+9Ns/ARgeGJgG0DGUXQLQPTB8AGBzt5SuPhhtOB3Ar2tIAGw4JMx5/hWxQ7py0v36PgnpLpozt\n" \ ++" 9Df7mYZ6Vcf0rlrGZMYYcK+woAfzJH9tC+y5O4D0lZXXIJdkZSMfs/8RFIuU7BDtg1k0gDVKacX\n" \ ++" gM7N0wDmnHlmL8CfLZwfA/jjy5sqAboPCINeenatAjh36ZJBgGgscTnAFy79whETGMaDkCFlhmP\n" \ ++" y9r696rYkwM+fWf95gG279n8OoLM/PRWgI8fJAJ2pKVGAkXpJeivQUntLnRHRqM6e11Zoe5tekt\n" \ ++" aTLy0uYIziuOQusETcTgxpL/Dve6T1IKK3+gnjfQcBaBop2jqtFXZeN5oGUL5bBzB9SuPNABd/8\n" \ ++" Yu/AXjt5ZcfAXjzj3+sB1BW0AfwieUXXQnwtWu+s2Ycr2tcCBlSZjgmhtz07etOAtj86saNAE5m\n" \ ++" pBYgl3ctAE/n6gxlZUnbznxKAfQ0zAIgSIhtYGr0Wn7RSRQoPefrytaB+XUEnSJqKlmbKkAmLcj\n" \ ++" Tn1s6CTvZK3bL9LyIicZUtNCJrbMrzHK5vF4EWlFVGQC0z5p1GsA55yw+AOA72cUA6ezwawDXXH\n" \ ++" PjrqN4XeNCyJAywzEx5IpPffwJAC+fWwaQ1dZzoNtNZyUuMqLj33kdD+90RfM5VK1/TiQqlq/yi\n" \ ++" pE2W7mOfOZmAGxNEU9XCAgsKwngWzrrzpKN0nHu6NBBBTAzIzZOoy6YGo0Ux2ChrKPeutpGsXW9\n" \ ++" 3qbW1ucBVj365JKjfzsTQ8iQMsOEIobf+PJfnwrQsXf3qQC5jKhCvv6Vm5z2ablBacVqSy8NaLI\n" \ ++" kUhjpk/m9XzPEihfrXiz72MduBVix5NyHAJYtW9YF8MILLzQB/OSBxy8C2LZ330UAnQNDCwGC9E\n" \ ++" AKoCUv2lS9DvtFDDPUaIYYQhbctvIcOu6RT4+ce3Rv5tgRMqTMEH4hZYYJTVmeE9QA+L5UqjSra\n" \ ++" ANLV/XxSjPSi9+7WW0rbo5qW85PepL1oLLFckCnpOxfASxfvnzLmO479XYzwLp16x4C+Ob1Nz4C\n" \ ++" MJTvWQCQiprqQDpLXt+Tskb9JIapYl5YA19aN8Vx8/H3exeTjZAhZYYJMSTrcxgg70uBw+IaDTn\n" \ ++" ujd2aWldarTSV5Fy9TtwPxECrb6j9jenj+ptuehPghptvPuK9ZLq6+gHswBUdW7PQ9WSs2VrVDm\n" \ ++" zzG0klY1BSQY2DZUxloVi8YkKrco8FIUPKDBNiyJeuurwD4I5bbt8IMJLubgfIZXMWjKqXaKrCm\n" \ ++" a1ZuK5LNtTU1h8GaG+fthLg/oceusv0oVQxkHQkXPCZz/QA3HPPPSsAnn7y8SsBeroOnwtg4y8A\n" \ ++" yOez8qORjluQC+YHJH1fll1F7UgOIJlK7gOYPmvubXLmpP863nsiZEiZYVKWI6xc+a2FAHv/tP1\n" \ ++" cgM7OzmqAwLdaARzP6QCobajrA5gza+5LALfefuJ+BsKgt7d3xtjP6urqxP2u1OF3XnFiETIkRI\n" \ ++" gQIUKE+H+C/wMGX8Ias1s6CQAAAABJRU5ErkJggg==\n" \ + "END:VCARD" +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-Fix-for-automake-1.12.x.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-Fix-for-automake-1.12.x.patch new file mode 100644 index 000000000..5f222aeaa --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0002-Fix-for-automake-1.12.x.patch @@ -0,0 +1,32 @@ +From f46423c9e4b8b19eda27b307456a717de79b75f3 Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble +Date: Sun, 4 Aug 2013 09:15:43 +0200 +Subject: [PATCH 2/5] Fix for automake-1.12.x + +Fixed these kinds if warning-errors + +warning: 'libebookbackendfile.la': linking libtool libraries using a non-POSIX archiver requires 'AM_PROG_AR' in 'configure.ac' + +Upstream-Status: Pending + +Signed-Off-By: Nitin A Kamble +Signed-off-by: Martin Jansa +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 9bd97db..49d7506 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -31,6 +31,7 @@ AC_LANG(C) + + dnl Automake 1.11 - Silent Build Rules + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ++m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) # required by automake 1.12 + + dnl Required Package Versions + m4_define([glib_minimum_version], [2.28]) +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-Disable-Werror-for-automake.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-Disable-Werror-for-automake.patch new file mode 100644 index 000000000..a182d4d5e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-Disable-Werror-for-automake.patch @@ -0,0 +1,97 @@ +From 37b227cff78fd4c652651662dafd71537280824e Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble +Date: Sun, 4 Aug 2013 09:16:59 +0200 +Subject: [PATCH 3/5] Disable Werror for automake + +Avoid these warning-errors + +automake: warnings are treated as errors +Makefile.am:15: warning: '%'-style pattern rules are a GNU make extension +Makefile.am:21: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +addressbook/backends/file/Makefile.am: installing './depcomp' +addressbook/libebook/Makefile.am:55: warning: '%'-style pattern rules are a GNU make extension +addressbook/libebook/Makefile.am:65: warning: '%'-style pattern rules are a GNU make extension +addressbook/libebook/Makefile.am:66: warning: subst -,_,$*: non-POSIX variable name +addressbook/libebook/Makefile.am:66: (probably a GNU make extension) +addressbook/libebook/Makefile.am:72: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +addressbook/libedata-book/Makefile.am:2: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:3: warning: subst -,_,$*: non-POSIX variable name +addressbook/libedata-book/Makefile.am:3: (probably a GNU make extension) +glib-gen.mak:9: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +glib-gen.mak:13: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +glib-gen.mak:18: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +glib-gen.mak:26: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +glib-gen.mak:38: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +glib-gen.mak:41: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:5: 'glib-gen.mak' included from here +addressbook/libedata-book/Makefile.am:86: warning: '%'-style pattern rules are a GNU make extension +addressbook/libedata-book/Makefile.am:101: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +calendar/backends/weather/Makefile.am:44: warning: '%'-style pattern rules are a GNU make extension +calendar/libecal/Makefile.am:53: warning: '%'-style pattern rules are a GNU make extension +calendar/libecal/Makefile.am:61: warning: '%'-style pattern rules are a GNU make extension +calendar/libecal/Makefile.am:62: warning: subst -,_,$*: non-POSIX variable name +calendar/libecal/Makefile.am:62: (probably a GNU make extension) calendar/libecal/Makefile.am:68: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +calendar/libedata-cal/Makefile.am:5: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:6: warning: subst -,_,$*: non-POSIX variable name +calendar/libedata-cal/Makefile.am:6: (probably a GNU make extension) +glib-gen.mak:9: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +glib-gen.mak:13: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +glib-gen.mak:18: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +glib-gen.mak:26: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +glib-gen.mak:38: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +glib-gen.mak:41: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:8: 'glib-gen.mak' included from here +calendar/libedata-cal/Makefile.am:71: warning: '%'-style pattern rules are a GNU make extension +calendar/libedata-cal/Makefile.am:86: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +camel/Makefile.am:17: warning: '%'-style pattern rules are a GNU make extension +libebackend/Makefile.am:35: warning: '%'-style pattern rules are a GNU make extension +libebackend/Makefile.am:41: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +libedataserver/Makefile.am:91: warning: '%'-style pattern rules are a GNU make extension +libedataserver/Makefile.am:97: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +libedataserverui/Makefile.am:108: warning: '%'-style pattern rules are a GNU make extension +libedataserverui/Makefile.am:118: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +servers/google/libgdata-google/Makefile.am:27: warning: '%'-style pattern rules are a GNU make extension +servers/google/libgdata-google/Makefile.am:33: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +servers/google/libgdata/Makefile.am:31: warning: '%'-style pattern rules are a GNU make extension +servers/google/libgdata/Makefile.am:37: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +servers/groupwise/Makefile.am:85: warning: '%'-style pattern rules are a GNU make extension +servers/groupwise/Makefile.am:91: warning: pkgconfig_DATA:-$(API_VERSION: non-POSIX variable name +autoreconf: automake failed with exit status: 1 + +Upstream-Status: Inappropriate [embedded specific] + +Signed-Off-By: Nitin A Kamble +Signed-off-by: Martin Jansa + +Conflicts: + configure.ac +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 49d7506..1c802ff 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -21,7 +21,7 @@ m4_define([api_version], [1.2]) + dnl Autoconf / Automake Initialization + AC_PREREQ(2.62) + AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server]) +-AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability -Werror foreign]) ++AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar dist-xz no-dist-gzip -Wall -Wno-portability foreign]) + AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_SRCDIR(README) + AC_CONFIG_HEADERS(config.h) +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch new file mode 100644 index 000000000..138334798 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch @@ -0,0 +1,39 @@ +From 2c73b588b9018cb59c666eae3a15fa1af42c56be Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 4 Aug 2013 10:57:08 +0200 +Subject: [PATCH 4/5] configure: Fix libical pkg-config trying to use host + paths + +Signed-off-by: Martin Jansa +--- + calendar/libecal/libecal.pc.in | 2 +- + configure.ac | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/calendar/libecal/libecal.pc.in b/calendar/libecal/libecal.pc.in +index fc6b359..d3435bb 100644 +--- a/calendar/libecal/libecal.pc.in ++++ b/calendar/libecal/libecal.pc.in +@@ -12,4 +12,4 @@ Description: Client library for evolution calendars + Version: @VERSION@ + Requires: libical >= @LIBICAL_REQUIRED@ libedataserver-1.2 gio-2.0 + Libs: -L${libdir} -lecal-1.2 +-Cflags: -I${privincludedir} @LIBICAL_EXTRA_CFLAGS@ ++Cflags: -I${privincludedir} +diff --git a/configure.ac b/configure.ac +index 1c802ff..f1d4ce8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1351,7 +1351,8 @@ dnl to differentiate between and + dnl We have fixed all our instances to use . Until the .pc from + dnl libical is fixed, we have to work-around the buggy CFlags. + dnl ***** +- LIBICAL_EXTRA_CFLAGS=" -I`$PKG_CONFIG --variable=includedir libical` " ++ m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$]) ++ LIBICAL_EXTRA_CFLAGS=" -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=includedir libical` " + LIBICAL_EXTRA_LIBS="" + AC_SUBST(LIBICAL_EXTRA_CFLAGS) + AC_SUBST(LIBICAL_EXTRA_LIBS) +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch new file mode 100644 index 000000000..addf2ee8d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch @@ -0,0 +1,77 @@ +From ac95e89749a01618f98b554a98e78d7c988bfc10 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 27 Nov 2012 08:46:51 +0100 +Subject: [PATCH 5/5] soup: adapt to new libxml2 API from 2.9.0 + +* for more info see + https://mail.gnome.org/archives/xml/2012-August/msg00005.html + +Signed-off-by: Martin Jansa +--- + calendar/backends/caldav/e-cal-backend-caldav.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c +index 12f8f22..5555a3e 100644 +--- a/calendar/backends/caldav/e-cal-backend-caldav.c ++++ b/calendar/backends/caldav/e-cal-backend-caldav.c +@@ -1172,8 +1172,13 @@ check_calendar_changed_on_server (ECalBackendCalDAV *cbdav) + soup_message_set_request (message, + "application/xml", + SOUP_MEMORY_COPY, ++#ifdef LIBXML2_NEW_BUFFER ++ (gchar *) xmlOutputBufferGetContent(buf), ++ xmlOutputBufferGetSize(buf)); ++#else + (gchar *) buf->buffer->content, + buf->buffer->use); ++#endif + + /* Send the request now */ + send_and_handle_redirection (priv->session, message, NULL); +@@ -1321,8 +1326,13 @@ caldav_server_list_objects (ECalBackendCalDAV *cbdav, + soup_message_set_request (message, + "application/xml", + SOUP_MEMORY_COPY, ++#ifdef LIBXML2_NEW_BUFFER ++ (gchar *) xmlOutputBufferGetContent(buf), ++ xmlOutputBufferGetSize(buf)); ++#else + (gchar *) buf->buffer->content, + buf->buffer->use); ++#endif + + /* Send the request now */ + send_and_handle_redirection (priv->session, message, NULL); +@@ -1715,8 +1725,14 @@ caldav_receive_schedule_outbox_url (ECalBackendCalDAV *cbdav) + soup_message_set_request (message, + "application/xml", + SOUP_MEMORY_COPY, ++#ifdef LIBXML2_NEW_BUFFER ++ (gchar *) xmlOutputBufferGetContent(buf), ++ xmlOutputBufferGetSize(buf)); ++#else + (gchar *) buf->buffer->content, + buf->buffer->use); ++#endif ++ + + /* Send the request now */ + send_and_handle_redirection (priv->session, message, NULL); +@@ -1765,8 +1781,13 @@ caldav_receive_schedule_outbox_url (ECalBackendCalDAV *cbdav) + soup_message_set_request (message, + "application/xml", + SOUP_MEMORY_COPY, ++#ifdef LIBXML2_NEW_BUFFER ++ (gchar *) xmlOutputBufferGetContent(buf), ++ xmlOutputBufferGetSize(buf)); ++#else + (gchar *) buf->buffer->content, + buf->buffer->use); ++#endif + + /* Send the request now */ + send_and_handle_redirection (priv->session, message, NULL); +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch new file mode 100644 index 000000000..741e5e97d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch @@ -0,0 +1,34 @@ +From 3feaea8e84b3ad8dc2d551e42224f3b4a9413e7d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 3 Sep 2015 11:14:24 +0200 +Subject: [PATCH] configure.ac: do not overwrite localedir +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport [1] + +[1] https://git.gnome.org/browse/evolution-data-server/tree/configure.ac#n298 + +Signed-off-by: Andreas Müller +--- + configure.ac | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f1d4ce8..cee847f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -257,9 +257,6 @@ GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION + AC_SUBST(GETTEXT_PACKAGE) + AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext]) + +-localedir='$(prefix)/$(DATADIRNAME)/locale' +-AC_SUBST(localedir) +- + dnl ****************************** + dnl Initialize libtool + dnl ****************************** +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h new file mode 100644 index 000000000..46f476d5b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h @@ -0,0 +1,5 @@ +/* This is an auto-generated header, DO NOT EDIT! */ + +#define ICONV_ISO_D_FORMAT "iso-%d-%d" +#define ICONV_ISO_S_FORMAT "iso-%d-%s" +#define ICONV_10646 "iso-10646" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb new file mode 100644 index 000000000..a5664b085 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb @@ -0,0 +1,117 @@ +SUMMARY = "Evolution database backend server" +HOMEPAGE = "http://www.gnome.org/projects/evolution/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2 & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \ + file://camel/camel.h;endline=24;md5=b02175c88f821224746b347a89731a2b \ + file://libedataserver/e-data-server-util.h;endline=20;md5=934502f03c84523aa059d4825887b380 \ + file://calendar/libecal/e-cal.h;endline=24;md5=5d496b9b6fd2a4fdbbfc31ef9455c9d0" + +DEPENDS = "intltool-native glib-2.0 gtk+3 gconf dbus db gnome-common virtual/libiconv zlib libsoup-2.4 libglade libical libgnome-keyring gperf-native libgdata nss" + +SRCREV = "a9e4e74ec4473a4fd09e56b690bd4fa72f686687" + +# 3.4 series needs libgdata-0.10*, 3.8 series needs also libsecret instead of gnome-keyring +PV = "3.2.3+git${SRCPV}" + +SRC_URI = " \ + git://git.gnome.org/evolution-data-server;branch=gnome-3-2 \ + file://0001-contact-Replace-the-Novell-sample-contact-with-somet.patch \ + file://0002-Fix-for-automake-1.12.x.patch \ + file://0003-Disable-Werror-for-automake.patch \ + file://0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch \ + file://0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch \ + file://0006-configure.ac-do-not-overwrite-localedir.patch \ + file://iconv-detect.h \ +" + +S = "${WORKDIR}/git" + +inherit autotools gtk-doc pkgconfig gettext gobject-introspection + +# -ldb needs this on some platforms +LDFLAGS += "-lpthread" + +# Parallel make shows many issues with this source code. +# Current problems seem to be duplicate execution of the calander/backends +# directories by make resulting in truncated/corrupt .la files +#PARALLEL_MAKE = "" + +do_configure_append () { + cp ${WORKDIR}/iconv-detect.h ${S} +} + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs" +} + +EXTRA_OECONF = "--without-openldap \ + --with-libdb=${STAGING_DIR_HOST}${prefix} \ + --disable-nntp --disable-goa --disable-weather" + +PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \ + libedata-book libedata-book-dev libedata-cal libedata-cal-dev \ + libedataserver libedataserver-dev \ + libedataserverui libedataserverui-dev" + +FILES_${PN} =+ "${datadir}/evolution-data-server-*/ui/" +FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc" +FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \ + ${libdir}/evolution-data-server*/calendar-backends/.debug \ + ${libdir}/evolution-data-server*/addressbook-backends/.debug \ + ${libdir}/evolution-data-server*/extensions/.debug/" + +RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev" + +FILES_libcamel = "${libdir}/libcamel-*.so.* \ + ${libdir}/libcamel-provider-*.so.* \ + ${libdir}/evolution-data-server*/camel-providers/*.so \ + ${libdir}/evolution-data-server*/camel-providers/*.urls" +FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \ + ${libdir}/pkgconfig/camel*pc \ + ${libdir}/evolution-data-server*/camel-providers/*.la \ + ${includedir}/evolution-data-server*/camel" + +FILES_libebook = "${libdir}/libebook-*.so.*" +FILES_libebook-dev = "${libdir}/libebook-1.2.so \ + ${libdir}/pkgconfig/libebook-*.pc \ + ${includedir}/evolution-data-server*/libebook/*.h" +RRECOMMENDS_libebook = "libedata-book" + +FILES_libecal = "${libdir}/libecal-*.so.* \ + ${datadir}/evolution-data-server-1.4/zoneinfo" +FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \ + ${includedir}/evolution-data-server*/libecal/*.h \ + ${includedir}/evolution-data-server*/libical/*.h" +RRECOMMENDS_libecal = "libedata-cal tzdata" + +FILES_libedata-book = "${libexecdir}/e-addressbook-factory \ + ${datadir}/dbus-1/services/*.AddressBook.service \ + ${libdir}/libedata-book-*.so.* \ + ${libdir}/evolution-data-server-*/extensions/libebook*.so \ + ${datadir}/evolution-data-server-1.4/weather/Locations.xml" +FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \ + ${libdir}/pkgconfig/libedata-book-*.pc \ + ${libdir}/evolution-data-server-*/extensions/libebook*.la \ + ${includedir}/evolution-data-server-*/libedata-book" + +FILES_libedata-cal = "${libexecdir}/e-calendar-factory \ + ${datadir}/dbus-1/services/*.Calendar.service \ + ${libdir}/libedata-cal-*.so.* \ + ${libdir}/evolution-data-server-*/extensions/libecal*.so" +FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \ + ${libdir}/pkgconfig/libedata-cal-*.pc \ + ${includedir}/evolution-data-server-*/libedata-cal \ + ${libdir}/evolution-data-server-*/extensions/libecal*.la" + +FILES_libedataserver = "${libdir}/libedataserver-*.so.*" +FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \ + ${libdir}/pkgconfig/libedataserver-*.pc \ + ${includedir}/evolution-data-server-*/libedataserver/*.h" + +FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution-data-server-1.4/glade/*.glade" +FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \ + ${libdir}/pkgconfig/libedataserverui-*.pc \ + ${includedir}/evolution-data-server-*/libedataserverui/*.h" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch new file mode 100644 index 000000000..592f46606 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch @@ -0,0 +1,24 @@ +From 40921037d8e7205a3889d529fb4e06f79e1e88b0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 19 Feb 2016 16:52:18 +0200 +Subject: [PATCH] help: remove YELP macro + +Upstream-Status: Inappropriate [embedded-specific] +Signed-off-by: Alexander Kanavin +--- + help/Makefile.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/help/Makefile.am b/help/Makefile.am +index 7835810..37c88ce 100644 +--- a/help/Makefile.am ++++ b/help/Makefile.am +@@ -1,5 +1,3 @@ +-@YELP_HELP_RULES@ +- + SUBDIRS = reference + + HELP_ID = evince +-- +2.7.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.18.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.18.2.bb new file mode 100644 index 000000000..fe63093ad --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.18.2.bb @@ -0,0 +1,48 @@ +SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b" +SECTION = "x11/office" +DEPENDS = "gtk+3 libsecret gnome-desktop3 poppler gstreamer1.0-plugins-base orc adwaita-icon-theme" +PR = "r5" + +inherit gnome pkgconfig gtk-icon-cache gsettings gobject-introspection + +SRC_URI[archive.md5sum] = "c39af6b8b1c44d4393ef8ac9dab99c0b" +SRC_URI[archive.sha256sum] = "42ad6c7354d881a9ecab136ea84ff867acb942605bcfac48b6c12e1c2d8ecb17" + +SRC_URI += "file://0001-help-remove-YELP-macro.patch" + +EXTRA_OECONF = " --enable-thumbnailer \ +" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs" +} + + +do_install_append() { + install -d install -d ${D}${datadir}/pixmaps + install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/ +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus" +PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin," + +RDEPENDS_${PN} += "glib-2.0-utils" +RRECOMMMENDS_${PN} = "adwaita-icon-theme" + +PACKAGES =+ "${PN}-nautilus-extension" +PACKAGES =+ "${PN}-browser-plugin" +FILES_${PN} += "${datadir}/dbus-1 \ + ${datadir}/appdata \ + ${datadir}/thumbnailers \ + " +FILES_${PN}-dbg += "${libdir}/*/*/.debug \ + ${libdir}/*/*/*/.debug" +FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \ + ${libdir}/evince/*/backends/*.la" +FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \ + ${libdir}/evince/*/backends/*.a" +FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so" +FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb new file mode 100644 index 000000000..a39b1a0ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "An icon theme for Gnome" +SECTION = "x11/wm" +LICENSE = "GPLv3" +HOMEPAGE = "http://code.google.com/p/faenza-icon-theme/" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit allarch gtk-icon-cache + +S = "${WORKDIR}" + +SRC_URI = "http://faenza-icon-theme.googlecode.com/files/${PN}_${PV}.zip" +SRC_URI[md5sum] = "e9bd6106d13017ce06d24b586259ae9c" +SRC_URI[sha256sum] = "d4486fda0413f8a81a87e0dd2329f50f2a8a7cb4147b48cf147f0160add8174a" + +do_install() { + install -d ${D}${datadir}/icons + for theme in `find -name 'Faenza*.tar.gz'`; do + tar -xf ${theme} -C ${D}${datadir}/icons + done + tar -xf emesene-faenza-theme.tar.gz -C ${D}${datadir} + mv -f ${D}${datadir}/emesene/themes ${D}${datadir}/themes + rm -rf ${D}${datadir}/emesene + chown -R root:root ${D}${datadir} +} + +FILES_${PN} += "${datadir}/icons ${datadir}/themes" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch new file mode 100644 index 000000000..aeb02ab2c --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool/fix-includedir.patch @@ -0,0 +1,31 @@ +--- + Makefile.am | 2 +- + gcalctool/Makefile.am | 2 -- + 2 files changed, 1 insertion(+), 3 deletions(-) + +Index: gcalctool-5.8.17/gcalctool/Makefile.am +=================================================================== +--- gcalctool-5.8.17.orig/gcalctool/Makefile.am 2005-12-19 15:46:57.000000000 +0000 ++++ gcalctool-5.8.17/gcalctool/Makefile.am 2007-05-16 16:03:26.000000000 +0100 +@@ -1,8 +1,6 @@ + ## Process this file with automake to produce Makefile.in + + INCLUDES = \ +- -I$(includedir) \ +- -DG_DISABLE_DEPRECATED \ + -DGDK_PIXBUF_DISABLE_DEPRECATED \ + -DGDK_DISABLE_DEPRECATED \ + -DGNOME_DISABLE_DEPRECATED \ +Index: gcalctool-5.8.17/Makefile.am +=================================================================== +--- gcalctool-5.8.17.orig/Makefile.am 2007-05-16 15:35:44.000000000 +0100 ++++ gcalctool-5.8.17/Makefile.am 2007-05-16 16:06:46.000000000 +0100 +@@ -29,7 +29,7 @@ DISTCLEANFILES = \ + gnome-doc-utils.make \ + gcalctool.desktop + +-SUBDIRS = po gcalctool help ++SUBDIRS = po gcalctool + + SCHEMAS_FILE = gcalctool.schemas + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb new file mode 100644 index 000000000..d391bba13 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gcalctool/gcalctool_5.32.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "gcalctool is a powerful calculator" +SECTION = "x11" +DEPENDS = "gtk+ gnome-doc-utils" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SRC_URI = "http://download.gnome.org/sources/${BPN}/${SHRT_VER}/${BP}.tar.gz" + +SRC_URI[md5sum] = "48db927c6e7ee1d5395f953a8c184c98" +SRC_URI[sha256sum] = "346f645c0fdef900642f6e9a2c18e7ba9a7ca9bc62fe2b08eb418f065a425c89" + +inherit autotools pkgconfig gsettings + +do_configure_prepend() { + sed -i -e "s: help: :g" ${S}/Makefile.am +} + +PNBLACKLIST[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" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/%gconf-tree.xml b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/%gconf-tree.xml new file mode 100644 index 000000000..f8c2e9cc2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/%gconf-tree.xml @@ -0,0 +1,492 @@ + + + + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + /bin/true + + + + + + + + + + + + + + + + + + + + + /bin/true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /bin/true + + + gdm-screenshot + + + + + disabled + + + disabled + + + disabled + + + disabled + + + disabled + + + disabled + + + disabled + + + Print + + + disabled + + + disabled + + + + + + + + + + + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + Disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gdm-screenshot + + +
  • + cube +
  • +
  • + decoration +
  • +
  • + gconf +
  • +
  • + glib +
  • +
  • + move +
  • +
  • + place +
  • +
  • + resize +
  • +
  • + screenshot +
  • +
  • + wobbly +
  • +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + +
    +
    diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch new file mode 100644 index 000000000..75aff5d7c --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch @@ -0,0 +1,2281 @@ +From 0a4fe802edbd2e8a016161f08283e4b467c6762e Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 21 Jun 2011 12:48:39 +0200 +Subject: [PATCH] Remove user switch applet + +This hasn't been updated to work with gnome-panel > 2.30.0, so just drop it + +Upstream-Status: unacceptable, backport + +Signed-off-by: Koen Kooi +--- + configure.ac | 8 - + gui/Makefile.am | 2 - + .../GNOME_FastUserSwitchApplet.server.in.in | 38 - + .../GNOME_FastUserSwitchApplet.xml | 20 - + gui/user-switch-applet/Makefile.am | 67 - + gui/user-switch-applet/applet.c | 1662 -------------------- + gui/user-switch-applet/gdm-entry-menu-item.c | 304 ---- + gui/user-switch-applet/gdm-entry-menu-item.h | 51 - + po/POTFILES.in | 4 - + po/POTFILES.skip | 1 - + 10 files changed, 0 insertions(+), 2157 deletions(-) + delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in + delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml + delete mode 100644 gui/user-switch-applet/Makefile.am + delete mode 100644 gui/user-switch-applet/applet.c + delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.c + delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.h + +diff --git a/configure.ac b/configure.ac +index 841efe0..a834110 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -149,13 +149,6 @@ PKG_CHECK_MODULES(SIMPLE_CHOOSER, + AC_SUBST(SIMPLE_CHOOSER_CFLAGS) + AC_SUBST(SIMPLE_CHOOSER_LIBS) + +-PKG_CHECK_MODULES(APPLET, +- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION) +-AC_SUBST(APPLET_CFLAGS) +-AC_SUBST(APPLET_LIBS) +- + PLUGIN_LIBTOOL_FLAGS="-export_dynamic -module -avoid-version" + AC_SUBST(PLUGIN_LIBTOOL_FLAGS) + +@@ -1340,7 +1333,6 @@ gui/Makefile + gui/simple-greeter/Makefile + gui/simple-greeter/libnotificationarea/Makefile + gui/simple-chooser/Makefile +-gui/user-switch-applet/Makefile + utils/Makefile + data/gdm.conf + data/Makefile +diff --git a/gui/Makefile.am b/gui/Makefile.am +index 326239f..bda3f7a 100644 +--- a/gui/Makefile.am ++++ b/gui/Makefile.am +@@ -2,7 +2,6 @@ NULL = + + SUBDIRS = \ + simple-greeter \ +- user-switch-applet \ + $(NULL) + + if XDMCP_SUPPORT +@@ -12,5 +11,4 @@ endif + DIST_SUBDIRS = \ + simple-chooser \ + simple-greeter \ +- user-switch-applet \ + $(NULL) +diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in +deleted file mode 100644 +index a9b775f..0000000 +--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in ++++ /dev/null +@@ -1,38 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml +deleted file mode 100644 +index e1845c8..0000000 +--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml ++++ /dev/null +@@ -1,20 +0,0 @@ +- +- +- +- +- +- +- +- +- +diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am +deleted file mode 100644 +index 2d2cdc0..0000000 +--- a/gui/user-switch-applet/Makefile.am ++++ /dev/null +@@ -1,67 +0,0 @@ +-NULL = +- +-AM_CPPFLAGS = \ +- -I$(top_srcdir)/gui/simple-greeter \ +- -I$(top_srcdir)/common \ +- -DPREFIX=\""$(prefix)"\" \ +- -DLIBDIR=\""$(libdir)"\" \ +- -DDATADIR=\""$(datadir)"\" \ +- -DSYSCONFDIR=\""$(sysconfdir)"\" \ +- -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \ +- -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ +- -DGLADEDIR=\""$(pkgdatadir)"\" \ +- -DLIBEXECDIR=\""$(libexecdir)"\" \ +- -DSBINDIR=\""$(sbindir)"\" \ +- -DGDMCONFDIR=\"$(gdmconfdir)\" \ +- $(GTK_CFLAGS) \ +- $(APPLET_CFLAGS) \ +- $(NULL) +- +-libexec_PROGRAMS = \ +- gdm-user-switch-applet \ +- $(NULL) +- +-gdm_user_switch_applet_SOURCES = \ +- applet.c \ +- gdm-entry-menu-item.h \ +- gdm-entry-menu-item.c \ +- $(NULL) +- +-gdm_user_switch_applet_LDADD = \ +- $(top_builddir)/gui/simple-greeter/libgdmuser.la \ +- $(top_builddir)/common/libgdmcommon.la \ +- $(COMMON_LIBS) \ +- $(APPLET_LIBS) \ +- $(NULL) +- +-# Bonobo UI +-uidir = $(datadir)/gnome-2.0/ui +-ui_DATA = \ +- GNOME_FastUserSwitchApplet.xml \ +- $(NULL) +- +-# Bonobo .server +-serverdir = $(libdir)/bonobo/servers +-server_in_files = \ +- GNOME_FastUserSwitchApplet.server.in \ +- $(NULL) +-server_DATA = $(server_in_files:.server.in=.server) +- +-$(server_in_files): $(server_in_files:.server.in=.server.in.in) +- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@ +- +-@INTLTOOL_SERVER_RULE@ +- +-EXTRA_DIST = \ +- $(ui_DATA) \ +- GNOME_FastUserSwitchApplet.server.in.in \ +- $(NULL) +- +-DISTCLEANFILES = \ +- $(server_in_files) \ +- $(server_DATA) \ +- $(NULL) +- +-MAINTAINERCLEANFILES = \ +- *~ \ +- Makefile.in +diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c +deleted file mode 100644 +index b4f944c..0000000 +--- a/gui/user-switch-applet/applet.c ++++ /dev/null +@@ -1,1662 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2004-2005 James M. Cape . +- * Copyright (C) 2008 Red Hat, Inc. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include "config.h" +- +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +- +-#include +-#include +- +-#include +- +-#include +-#include +- +-#include +-#include +- +-#include "gdm-user-manager.h" +-#include "gdm-entry-menu-item.h" +-#include "gdm-settings-client.h" +- +-#define LOCKDOWN_DIR "/desktop/gnome/lockdown" +-#define LOCKDOWN_USER_SWITCHING_KEY LOCKDOWN_DIR "/disable_user_switching" +-#define LOCKDOWN_LOCK_SCREEN_KEY LOCKDOWN_DIR "/disable_lock_screen" +-#define LOCKDOWN_COMMAND_LINE_KEY LOCKDOWN_DIR "/disable_command_line" +- +-typedef enum { +- GSM_PRESENCE_STATUS_AVAILABLE = 0, +- GSM_PRESENCE_STATUS_INVISIBLE, +- GSM_PRESENCE_STATUS_BUSY, +- GSM_PRESENCE_STATUS_IDLE, +-} GsmPresenceStatus; +- +-typedef struct _GdmAppletData +-{ +- PanelApplet *applet; +- +- GConfClient *client; +- GdmUserManager *manager; +- GdmUser *user; +- +- GtkWidget *menubar; +- GtkWidget *menuitem; +- GtkWidget *menu; +-#ifdef BUILD_PRESENSE_STUFF +- GtkWidget *user_item; +-#endif +- GtkWidget *control_panel_item; +- GtkWidget *account_item; +- GtkWidget *lock_screen_item; +- GtkWidget *login_screen_item; +- GtkWidget *quit_session_item; +- +- guint client_notify_lockdown_id; +- +- guint current_status; +- guint user_loaded_notify_id; +- guint user_changed_notify_id; +- gint8 pixel_size; +- gint panel_size; +- GtkIconSize icon_size; +-#ifdef BUILD_PRESENSE_STUFF +- DBusGProxy *presence_proxy; +-#endif +-} GdmAppletData; +- +-typedef struct _SelectorResponseData +-{ +- GdmAppletData *adata; +- GtkRadioButton *radio; +-} SelectorResponseData; +- +-static void reset_icon (GdmAppletData *adata); +-static void update_label (GdmAppletData *adata); +- +-static gboolean applet_factory (PanelApplet *applet, +- const char *iid, +- gpointer data); +- +-PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory", +- PANEL_TYPE_APPLET, +- "gdm-user-switch-applet", "0", +- (PanelAppletFactoryCallback)applet_factory, +- NULL) +- +-static void +-about_me_cb (BonoboUIComponent *ui_container, +- gpointer data, +- const char *cname) +-{ +- GError *err; +- +- err = NULL; +- if (! g_spawn_command_line_async ("gnome-about-me", &err)) { +- g_critical ("Could not run `gnome-about-me': %s", +- err->message); +- g_error_free (err); +- bonobo_ui_component_set_prop (ui_container, +- "/commands/GdmAboutMe", +- "hidden", "1", +- NULL); +- } +-} +- +-/* +- * gnome-panel/applets/wncklet/window-menu.c:window_filter_button_press() +- * +- * Copyright (C) 2005 James M. Cape. +- * Copyright (C) 2003 Sun Microsystems, Inc. +- * Copyright (C) 2001 Free Software Foundation, Inc. +- * Copyright (C) 2000 Helix Code, Inc. +- */ +-static gboolean +-menubar_button_press_event_cb (GtkWidget *menubar, +- GdkEventButton *event, +- GdmAppletData *adata) +-{ +- if (event->button != 1) { +- g_signal_stop_emission_by_name (menubar, "button-press-event"); +- /* Reset the login window item */ +- } +- +- return FALSE; +-} +- +-static void +-about_cb (BonoboUIComponent *ui_container, +- gpointer data, +- const char *cname) +-{ +- static const char *authors[] = { +- "James M. Cape ", +- "Thomas Thurman ", +- "William Jon McCann ", +- NULL +- }; +- static char *license[] = { +- N_("The User Switch Applet is free software; you can redistribute it and/or modify " +- "it under the terms of the GNU General Public License as published by " +- "the Free Software Foundation; either version 2 of the License, or " +- "(at your option) any later version."), +- N_("This program is distributed in the hope that it will be useful, " +- "but WITHOUT ANY WARRANTY; without even the implied warranty of " +- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " +- "GNU General Public License for more details."), +- N_("You should have received a copy of the GNU General Public License " +- "along with this program; if not, write to the Free Software " +- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA "), +- NULL +- }; +- char *license_i18n; +- +- license_i18n = g_strconcat (_(license[0]), "\n\n", _(license[1]), "\n\n", _(license[2]), NULL); +- +- gtk_show_about_dialog (NULL, +- "version", VERSION, +- "copyright", "Copyright \xc2\xa9 2004-2005 James M. Cape.\n" +- "Copyright \xc2\xa9 2006 Thomas Thurman.\n" +- "Copyright \xc2\xa9 2008 Red Hat, Inc.", +- "comments", _("A menu to quickly switch between users."), +- "authors", authors, +- "license", license_i18n, +- "wrap-license", TRUE, +- "translator-credits", _("translator-credits"), +- "logo-icon-name", "stock_people", +- NULL); +- +- g_free (license_i18n); +-} +- +- +-static void +-admin_cb (BonoboUIComponent *ui_container, +- gpointer data, +- const char *cname) +-{ +-#ifdef USERS_ADMIN +- char **args; +- gboolean res; +- GError *err; +- +- err = NULL; +- if (!g_shell_parse_argv (USERS_ADMIN, NULL, &args, &err)) { +- g_critical ("Could not parse users and groups management command line `%s': %s", +- USERS_ADMIN, err->message); +- return; +- } +- +- res = g_spawn_async (g_get_home_dir (), +- args, +- NULL, +- (G_SPAWN_STDOUT_TO_DEV_NULL | +- G_SPAWN_STDERR_TO_DEV_NULL | +- G_SPAWN_SEARCH_PATH), +- NULL, +- NULL, +- NULL, +- &err); +- if (! res) { +- g_critical ("Could not run `%s' to manage users and groups: %s", +- USERS_ADMIN, err->message); +- g_error_free (err); +- } +- g_strfreev (args); +-#endif /* USERS_ADMIN */ +-} +- +-static void +-set_menuitem_icon (BonoboUIComponent *component, +- const char *item_path, +- GtkIconTheme *theme, +- const char *icon_name, +- gint icon_size) +-{ +- GdkPixbuf *pixbuf; +- int width; +- int height; +- +- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL); +- if (pixbuf == NULL) { +- return; +- } +- +- width = gdk_pixbuf_get_width (pixbuf); +- height = gdk_pixbuf_get_height (pixbuf); +- if (width > icon_size + 4 || height > icon_size + 4) { +- GdkPixbuf *tmp; +- if (height > width) { +- width *= (gdouble) icon_size / (gdouble) height; +- height = icon_size; +- } else { +- height *= (gdouble) icon_size / (gdouble) width; +- width = icon_size; +- } +- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR); +- g_object_unref (pixbuf); +- pixbuf = tmp; +- } +- +- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL); +- g_object_unref (pixbuf); +-} +- +-static void +-applet_style_set_cb (GtkWidget *widget, +- GtkStyle *old_style, +- gpointer data) +-{ +- BonoboUIComponent *component; +- GdkScreen *screen; +- GtkIconTheme *theme; +- int width; +- int height; +- int icon_size; +- +- if (gtk_widget_has_screen (widget)) { +- screen = gtk_widget_get_screen (widget); +- } else { +- screen = gdk_screen_get_default (); +- } +- +- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen), +- GTK_ICON_SIZE_MENU, &width, &height)) { +- icon_size = MAX (width, height); +- } else { +- icon_size = 16; +- } +- +- theme = gtk_icon_theme_get_for_screen (screen); +- component = panel_applet_get_popup_component (PANEL_APPLET (widget)); +- +- set_menuitem_icon (component, +- "/commands/GdmAboutMe", +- theme, +- "user-info", +- icon_size); +- set_menuitem_icon (component, +- "/commands/GdmUsersGroupsAdmin", +- theme, +- "stock_people", +- icon_size); +-} +- +-static void +-applet_change_background_cb (PanelApplet *applet, +- PanelAppletBackgroundType type, +- GdkColor *color, +- GdkPixmap *pixmap, +- GdmAppletData *adata) +-{ +- GtkRcStyle *rc_style; +- GtkStyle *style; +- +- gtk_widget_set_style (adata->menubar, NULL); +- rc_style = gtk_rc_style_new (); +- gtk_widget_modify_style (GTK_WIDGET (adata->menubar), rc_style); +- g_object_unref (rc_style); +- +- switch (type) { +- case PANEL_NO_BACKGROUND: +- break; +- case PANEL_COLOR_BACKGROUND: +- gtk_widget_modify_bg (adata->menubar, GTK_STATE_NORMAL, color); +- break; +- case PANEL_PIXMAP_BACKGROUND: +- style = gtk_style_copy (gtk_widget_get_style (adata->menubar)); +- if (style->bg_pixmap[GTK_STATE_NORMAL]) { +- g_object_unref (style->bg_pixmap[GTK_STATE_NORMAL]); +- } +- +- style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref (pixmap); +- gtk_widget_set_style (adata->menubar, style); +- g_object_unref (style); +- break; +- } +-} +- +-/* +- * gnome-panel/applets/wncklet/window-menu.c:window_menu_key_press_event() +- * +- * Copyright (C) 2003 Sun Microsystems, Inc. +- * Copyright (C) 2001 Free Software Foundation, Inc. +- * Copyright (C) 2000 Helix Code, Inc. +- */ +-static gboolean +-applet_key_press_event_cb (GtkWidget *widget, +- GdkEventKey *event, +- GdmAppletData *adata) +-{ +- GtkMenuShell *menu_shell; +- +- switch (event->keyval) { +- case GDK_KP_Enter: +- case GDK_ISO_Enter: +- case GDK_3270_Enter: +- case GDK_Return: +- case GDK_space: +- case GDK_KP_Space: +- menu_shell = GTK_MENU_SHELL (adata->menubar); +- /* +- * We need to call _gtk_menu_shell_activate() here as is done in +- * window_key_press_handler in gtkmenubar.c which pops up menu +- * when F10 is pressed. +- * +- * As that function is private its code is replicated here. +- */ +- if (!menu_shell->active) { +- gtk_grab_add (GTK_WIDGET (menu_shell)); +- menu_shell->have_grab = TRUE; +- menu_shell->active = TRUE; +- } +- +- gtk_menu_shell_select_first (menu_shell, FALSE); +- return TRUE; +- default: +- break; +- } +- +- return FALSE; +-} +- +-static void +-set_item_text_angle_and_alignment (GtkWidget *item, +- double text_angle, +- float xalign, +- float yalign) +-{ +- GtkWidget *label; +- +- label = gtk_bin_get_child (GTK_BIN (item)); +- +- gtk_label_set_angle (GTK_LABEL (label), text_angle); +- +- gtk_misc_set_alignment (GTK_MISC (label), xalign, yalign); +-} +- +-/* +- * gnome-panel/applets/wncklet/window-menu.c:window_menu_size_allocate() +- * +- * Copyright (C) 2003 Sun Microsystems, Inc. +- * Copyright (C) 2001 Free Software Foundation, Inc. +- * Copyright (C) 2000 Helix Code, Inc. +- */ +-static void +-applet_size_allocate_cb (GtkWidget *widget, +- GtkAllocation *allocation, +- GdmAppletData *adata) +-{ +- GList *children; +- GtkWidget *top_item; +- PanelAppletOrient orient; +- gint pixel_size; +- gdouble text_angle; +- GtkPackDirection pack_direction; +- float text_xalign; +- float text_yalign; +- +- pack_direction = GTK_PACK_DIRECTION_LTR; +- text_angle = 0.0; +- text_xalign = 0.0; +- text_yalign = 0.5; +- +- children = gtk_container_get_children (GTK_CONTAINER (adata->menubar)); +- top_item = GTK_WIDGET (children->data); +- g_list_free (children); +- +- orient = panel_applet_get_orient (PANEL_APPLET (widget)); +- +- switch (orient) { +- case PANEL_APPLET_ORIENT_UP: +- case PANEL_APPLET_ORIENT_DOWN: +- gtk_widget_set_size_request (top_item, -1, allocation->height); +- pixel_size = allocation->height - gtk_widget_get_style (top_item)->ythickness * 2; +- break; +- case PANEL_APPLET_ORIENT_LEFT: +- gtk_widget_set_size_request (top_item, allocation->width, -1); +- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2; +- pack_direction = GTK_PACK_DIRECTION_TTB; +- text_angle = 270.0; +- text_xalign = 0.5; +- text_yalign = 0.0; +- break; +- case PANEL_APPLET_ORIENT_RIGHT: +- gtk_widget_set_size_request (top_item, allocation->width, -1); +- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2; +- pack_direction = GTK_PACK_DIRECTION_BTT; +- text_angle = 90.0; +- text_xalign = 0.5; +- text_yalign = 0.0; +- break; +- default: +- g_assert_not_reached (); +- break; +- } +- +- gtk_menu_bar_set_pack_direction (GTK_MENU_BAR (adata->menubar), +- pack_direction); +- gtk_menu_bar_set_child_pack_direction (GTK_MENU_BAR (adata->menubar), +- pack_direction); +- +- set_item_text_angle_and_alignment (adata->menuitem, +- text_angle, +- text_xalign, +- text_yalign); +- +- if (adata->panel_size != pixel_size) { +- adata->panel_size = pixel_size; +- reset_icon (adata); +- } +-} +- +- +-static void +-gdm_applet_data_free (GdmAppletData *adata) +-{ +- gconf_client_notify_remove (adata->client, adata->client_notify_lockdown_id); +- +- if (adata->user_loaded_notify_id != 0) { +- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id); +- } +- +- if (adata->user_changed_notify_id != 0) { +- g_signal_handler_disconnect (adata->user, adata->user_changed_notify_id); +- } +- +-#ifdef BUILD_PRESENSE_STUFF +- if (adata->presence_proxy != NULL) { +- g_object_unref (adata->presence_proxy); +- } +-#endif +- +- if (adata->user != NULL) { +- g_object_unref (adata->user); +- } +- g_object_unref (adata->client); +- g_object_unref (adata->manager); +- +- g_free (adata); +-} +- +- +-/* +- * gnome-panel/applets/wncklet/window-menu.c:window_menu_on_expose() +- * +- * Copyright (C) 2003 Sun Microsystems, Inc. +- * Copyright (C) 2001 Free Software Foundation, Inc. +- * Copyright (C) 2000 Helix Code, Inc. +- */ +-static gboolean +-menubar_expose_event_cb (GtkWidget *widget, +- GdkEventExpose *event, +- GdmAppletData *adata) +-{ +- if (gtk_widget_has_focus (GTK_WIDGET (adata->applet))) +- gtk_paint_focus (gtk_widget_get_style (widget), +- gtk_widget_get_window (widget), +- gtk_widget_get_state (widget), +- NULL, widget, "menu-applet", 0, 0, -1, -1); +- +- return FALSE; +-} +- +-static void +-menu_style_set_cb (GtkWidget *menu, +- GtkStyle *old_style, +- GdmAppletData *adata) +-{ +- GtkSettings *settings; +- int width; +- int height; +- +- adata->icon_size = gtk_icon_size_from_name ("panel-menu"); +- +- if (adata->icon_size == GTK_ICON_SIZE_INVALID) { +- adata->icon_size = gtk_icon_size_register ("panel-menu", 24, 24); +- } +- +- if (gtk_widget_has_screen (menu)) { +- settings = gtk_settings_get_for_screen (gtk_widget_get_screen (menu)); +- } else { +- settings = gtk_settings_get_default (); +- } +- +- if (!gtk_icon_size_lookup_for_settings (settings, adata->icon_size, +- &width, &height)) { +- adata->pixel_size = -1; +- } else { +- adata->pixel_size = MAX (width, height); +- } +-} +- +-static void +-menuitem_style_set_cb (GtkWidget *menuitem, +- GtkStyle *old_style, +- GdmAppletData *adata) +-{ +- GtkWidget *image; +- +- if (GDM_IS_ENTRY_MENU_ITEM (menuitem)) { +- } else { +- const char *icon_name; +- +- if (menuitem == adata->login_screen_item) { +- icon_name = "system-users"; +- } else if (menuitem == adata->lock_screen_item) { +- icon_name = "system-lock-screen"; +- } else if (menuitem == adata->quit_session_item) { +- icon_name = "system-log-out"; +- } else if (menuitem == adata->account_item) { +- icon_name = "user-info"; +- } else if (menuitem == adata->control_panel_item) { +- icon_name = "preferences-desktop"; +- } else { +- icon_name = GTK_STOCK_MISSING_IMAGE; +- } +- +- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menuitem)); +- gtk_image_set_pixel_size (GTK_IMAGE (image), adata->pixel_size); +- gtk_image_set_from_icon_name (GTK_IMAGE (image), icon_name, +- adata->icon_size); +- } +-} +- +-static void +-on_user_changed (GdmUser *user, +- GdmAppletData *adata) +-{ +- g_debug ("user changed"); +- update_label (adata); +- reset_icon (adata); +-} +- +-/* Called every time the menu is displayed (and also for some reason +- * immediately it's created, which does no harm). All we have to do +- * here is kick off a request to GDM to let us know which users are +- * logged in, so we can display check marks next to their names. +- */ +-static gboolean +-menu_expose_cb (GtkWidget *menu, +- gpointer data) +-{ +- char *program; +- GdmAppletData *adata = data; +- +- program = g_find_program_in_path ("gnome-control-center"); +- if (program != NULL) { +- gtk_widget_show (adata->control_panel_item); +- } else { +- gtk_widget_hide (adata->control_panel_item); +- } +- g_free (program); +- return FALSE; +-} +- +-static void +-maybe_lock_screen (GdmAppletData *adata) +-{ +- char *args[3]; +- GError *err; +- GdkScreen *screen; +- gboolean use_gscreensaver = TRUE; +- gboolean res; +- +- g_debug ("Attempting to lock screen"); +- +- args[0] = g_find_program_in_path ("gnome-screensaver-command"); +- if (args[0] == NULL) { +- args[0] = g_find_program_in_path ("xscreensaver-command"); +- use_gscreensaver = FALSE; +- } +- +- if (args[0] == NULL) { +- return; +- } +- +- if (use_gscreensaver) { +- args[1] = "--lock"; +- } else { +- args[1] = "-lock"; +- } +- args[2] = NULL; +- +- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { +- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); +- } else { +- screen = gdk_screen_get_default (); +- } +- +- err = NULL; +- res = gdk_spawn_on_screen (screen, +- g_get_home_dir (), +- args, +- NULL, +- 0, +- NULL, +- NULL, +- NULL, +- &err); +- if (! res) { +- g_warning (_("Can't lock screen: %s"), err->message); +- g_error_free (err); +- } +- +- if (use_gscreensaver) { +- args[1] = "--throttle"; +- } else { +- args[1] = "-throttle"; +- } +- +- err = NULL; +- res = gdk_spawn_on_screen (screen, +- g_get_home_dir (), +- args, +- NULL, +- (G_SPAWN_STDERR_TO_DEV_NULL +- | G_SPAWN_STDOUT_TO_DEV_NULL), +- NULL, +- NULL, +- NULL, +- &err); +- if (! res) { +- g_warning (_("Can't temporarily set screensaver to blank screen: %s"), +- err->message); +- g_error_free (err); +- } +- +- g_free (args[0]); +-} +- +-static void +-do_switch (GdmAppletData *adata, +- GdmUser *user) +-{ +- guint num_sessions; +- +- g_debug ("Do user switch"); +- +- if (user == NULL) { +- gdm_user_manager_goto_login_session (adata->manager); +- goto out; +- } +- +- num_sessions = gdm_user_get_num_sessions (user); +- if (num_sessions > 0) { +- gdm_user_manager_activate_user_session (adata->manager, user); +- } else { +- gdm_user_manager_goto_login_session (adata->manager); +- } +- out: +- maybe_lock_screen (adata); +-} +- +-static void +-update_switch_user (GdmAppletData *adata) +-{ +- gboolean can_switch; +- gboolean has_other_users; +- +- can_switch = gdm_user_manager_can_switch (adata->manager); +- g_object_get (adata->manager, +- "has-multiple-users", &has_other_users, +- NULL); +- +- if (can_switch && has_other_users) { +- gtk_widget_show (adata->login_screen_item); +- } else { +- +- gtk_widget_hide (adata->login_screen_item); +- } +-} +- +-static void +-on_manager_is_loaded_changed (GdmUserManager *manager, +- GParamSpec *pspec, +- GdmAppletData *adata) +-{ +- update_switch_user (adata); +-} +- +-static void +-on_manager_has_multiple_users_changed (GdmUserManager *manager, +- GParamSpec *pspec, +- GdmAppletData *adata) +-{ +- update_switch_user (adata); +-} +- +-#ifdef BUILD_PRESENSE_STUFF +-static void +-on_user_item_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- g_signal_stop_emission_by_name (item, "activate"); +-} +-#endif +- +-static void +-on_control_panel_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- char *args[2]; +- GError *error; +- GdkScreen *screen; +- gboolean res; +- +- args[0] = g_find_program_in_path ("gnome-control-center"); +- if (args[0] == NULL) { +- return; +- } +- args[1] = NULL; +- +- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { +- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); +- } else { +- screen = gdk_screen_get_default (); +- } +- +- error = NULL; +- res = gdk_spawn_on_screen (screen, +- g_get_home_dir (), +- args, +- NULL, +- 0, +- NULL, +- NULL, +- NULL, +- &error); +- if (! res) { +- g_warning (_("Can't lock screen: %s"), error->message); +- g_error_free (error); +- } +- +- g_free (args[0]); +-} +- +-static void +-on_account_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- char *args[2]; +- GError *error; +- GdkScreen *screen; +- gboolean res; +- +- args[0] = g_find_program_in_path ("accounts-dialog"); +- if (args[0] == NULL) { +- args[0] = g_find_program_in_path ("gnome-about-me"); +- if (args[0] == NULL) { +- return; +- } +- } +- args[1] = NULL; +- +- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { +- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); +- } else { +- screen = gdk_screen_get_default (); +- } +- +- error = NULL; +- res = gdk_spawn_on_screen (screen, +- g_get_home_dir (), +- args, +- NULL, +- 0, +- NULL, +- NULL, +- NULL, +- &error); +- if (! res) { +- g_warning (_("Can't lock screen: %s"), error->message); +- g_error_free (error); +- } +- +- g_free (args[0]); +-} +- +-static void +-on_lock_screen_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- maybe_lock_screen (adata); +-} +- +-static void +-on_login_screen_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- GdmUser *user; +- +- user = NULL; +- +- do_switch (adata, user); +-} +- +-static void +-on_quit_session_activate (GtkMenuItem *item, +- GdmAppletData *adata) +-{ +- char *args[3]; +- GError *error; +- GdkScreen *screen; +- gboolean res; +- +- args[0] = g_find_program_in_path ("gnome-session-save"); +- if (args[0] == NULL) { +- return; +- } +- +- args[1] = "--logout-dialog"; +- args[2] = NULL; +- +- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { +- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); +- } else { +- screen = gdk_screen_get_default (); +- } +- +- error = NULL; +- res = gdk_spawn_on_screen (screen, +- g_get_home_dir (), +- args, +- NULL, +- 0, +- NULL, +- NULL, +- NULL, +- &error); +- if (! res) { +- g_warning (_("Can't log out: %s"), error->message); +- g_error_free (error); +- } +- +- g_free (args[0]); +-} +- +-#ifdef BUILD_PRESENSE_STUFF +-static gboolean +-on_menu_key_press_event (GtkWidget *widget, +- GdkEventKey *event, +- GdmAppletData *adata) +-{ +- GtkWidget *entry; +- +- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); +- +- if (GTK_WIDGET_HAS_FOCUS (entry)) { +- gtk_widget_event (entry, (GdkEvent *)event); +- return TRUE; +- } else { +- return FALSE; +- } +-} +- +-static void +-save_status (GdmAppletData *adata, +- guint status) +-{ +- if (adata->current_status != status) { +- GError *error; +- +- adata->current_status = status; +- +- g_debug ("Saving status: %u", status); +- error = NULL; +- dbus_g_proxy_call (adata->presence_proxy, +- "SetStatus", +- &error, +- G_TYPE_UINT, status, +- G_TYPE_INVALID, +- G_TYPE_INVALID); +- +- if (error != NULL) { +- g_warning ("Couldn't save presence status: %s", error->message); +- g_error_free (error); +- } +- } +-} +- +-static void +-on_status_available_activate (GtkWidget *widget, +- GdmAppletData *adata) +-{ +- +- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { +- save_status (adata, GSM_PRESENCE_STATUS_AVAILABLE); +- } +-} +- +-static void +-on_status_busy_activate (GtkWidget *widget, +- GdmAppletData *adata) +-{ +- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { +- save_status (adata, GSM_PRESENCE_STATUS_BUSY); +- } +-} +- +-static void +-on_status_invisible_activate (GtkWidget *widget, +- GdmAppletData *adata) +-{ +- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { +- save_status (adata, GSM_PRESENCE_STATUS_INVISIBLE); +- } +-} +- +-static struct { +- char *icon_name; +- char *display_name; +- void *menu_callback; +- GtkWidget *widget; +-} statuses[] = { +- { "user-online", N_("Available"), on_status_available_activate, NULL }, +- { "user-invisible", N_("Invisible"), on_status_invisible_activate, NULL }, +- { "user-busy", N_("Busy"), on_status_busy_activate, NULL }, +- { "user-away", N_("Away"), NULL, NULL }, +-}; +-#endif +- +-static void +-update_label (GdmAppletData *adata) +-{ +- GtkWidget *label; +- char *markup; +- +- label = gtk_bin_get_child (GTK_BIN (adata->menuitem)); +- +-#ifdef BUILD_PRESENSE_STUFF +- markup = g_strdup_printf ("%s (%s)", +- gdm_user_get_real_name (GDM_USER (adata->user)), +- _(statuses[adata->current_status].display_name)); +-#else +- markup = g_strdup_printf ("%s", +- gdm_user_get_real_name (GDM_USER (adata->user))); +-#endif +- gtk_label_set_markup (GTK_LABEL (label), markup); +- g_free (markup); +-} +- +-#ifdef BUILD_PRESENSE_STUFF +-static void +-save_status_text (GdmAppletData *adata) +-{ +- GtkWidget *entry; +- GtkTextBuffer *buffer; +- char *escaped_text; +- char *text; +- GtkTextIter start, end; +- +- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); +- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry)); +- gtk_text_buffer_get_bounds (buffer, &start, &end); +- text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); +- escaped_text = g_markup_escape_text (text, -1); +- +- if (escaped_text != NULL) { +- GError *error; +- +- error = NULL; +- dbus_g_proxy_call (adata->presence_proxy, +- "SetStatusText", +- &error, +- G_TYPE_STRING, escaped_text, +- G_TYPE_INVALID, +- G_TYPE_INVALID); +- +- if (error != NULL) { +- g_warning ("Couldn't set presence status text: %s", error->message); +- g_error_free (error); +- } +- } +- +- g_free (text); +- g_free (escaped_text); +-} +- +-static void +-on_user_item_deselect (GtkWidget *item, +- GdmAppletData *adata) +-{ +- save_status_text (adata); +-} +-#endif +- +-static void +-create_sub_menu (GdmAppletData *adata) +-{ +- GtkWidget *item; +-#ifdef BUILD_PRESENSE_STUFF +- int i; +- GSList *radio_group; +-#endif +- +- adata->menu = gtk_menu_new (); +-#ifdef BUILD_PRESENSE_STUFF +- g_signal_connect (adata->menu, +- "key-press-event", +- G_CALLBACK (on_menu_key_press_event), +- adata); +-#endif +- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), adata->menu); +- g_signal_connect (adata->menu, "style-set", +- G_CALLBACK (menu_style_set_cb), adata); +- g_signal_connect (adata->menu, "show", +- G_CALLBACK (menu_expose_cb), adata); +- +-#ifdef BUILD_PRESENSE_STUFF +- adata->user_item = gdm_entry_menu_item_new (); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->user_item); +- gtk_widget_show (adata->user_item); +- g_signal_connect (adata->user_item, "activate", +- G_CALLBACK (on_user_item_activate), adata); +- g_signal_connect (adata->user_item, +- "deselect", +- G_CALLBACK (on_user_item_deselect), +- adata); +- +- item = gtk_separator_menu_item_new (); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); +- gtk_widget_show (item); +- +- radio_group = NULL; +- for (i = 0; i < G_N_ELEMENTS (statuses); i++) { +- GtkWidget *hbox; +- GtkWidget *label; +- GtkWidget *image; +- GtkWidget *item; +- +- if (statuses[i].menu_callback == NULL) { +- continue; +- } +- +- item = gtk_radio_menu_item_new (radio_group); +- radio_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); +- hbox = gtk_hbox_new (FALSE, 3); +- label = gtk_label_new (_(statuses[i].display_name)); +- gtk_label_set_justify (GTK_LABEL(label), GTK_JUSTIFY_LEFT); +- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); +- gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); +- gtk_widget_show (label); +- image = gtk_image_new_from_icon_name (statuses[i].icon_name, GTK_ICON_SIZE_MENU); +- gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); +- gtk_widget_show (image); +- gtk_widget_show (hbox); +- gtk_container_add (GTK_CONTAINER (item), hbox); +- +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- item); +- g_signal_connect (item, "activate", +- G_CALLBACK (statuses[i].menu_callback), adata); +- gtk_widget_show (item); +- +- statuses[i].widget = item; +- } +- +- item = gtk_separator_menu_item_new (); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); +- gtk_widget_show (item); +-#endif +- +- adata->account_item = gtk_image_menu_item_new_with_label (_("Account Information")); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->account_item), +- gtk_image_new ()); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->account_item); +- g_signal_connect (adata->account_item, "style-set", +- G_CALLBACK (menuitem_style_set_cb), adata); +- g_signal_connect (adata->account_item, "activate", +- G_CALLBACK (on_account_activate), adata); +- gtk_widget_show (adata->account_item); +- +- +- adata->control_panel_item = gtk_image_menu_item_new_with_label (_("System Preferences")); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->control_panel_item), +- gtk_image_new ()); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->control_panel_item); +- g_signal_connect (adata->control_panel_item, "style-set", +- G_CALLBACK (menuitem_style_set_cb), adata); +- g_signal_connect (adata->control_panel_item, "activate", +- G_CALLBACK (on_control_panel_activate), adata); +- +- item = gtk_separator_menu_item_new (); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); +- gtk_widget_show (item); +- +- adata->lock_screen_item = gtk_image_menu_item_new_with_label (_("Lock Screen")); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->lock_screen_item), +- gtk_image_new ()); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->lock_screen_item); +- g_signal_connect (adata->lock_screen_item, "style-set", +- G_CALLBACK (menuitem_style_set_cb), adata); +- g_signal_connect (adata->lock_screen_item, "activate", +- G_CALLBACK (on_lock_screen_activate), adata); +- /* Only show if not locked down */ +- +- adata->login_screen_item = gtk_image_menu_item_new_with_label (_("Switch User")); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->login_screen_item), +- gtk_image_new ()); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->login_screen_item); +- g_signal_connect (adata->login_screen_item, "style-set", +- G_CALLBACK (menuitem_style_set_cb), adata); +- g_signal_connect (adata->login_screen_item, "activate", +- G_CALLBACK (on_login_screen_activate), adata); +- /* Only show switch user if there are other users */ +- +- adata->quit_session_item = gtk_image_menu_item_new_with_label (_("Quit…")); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->quit_session_item), +- gtk_image_new ()); +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), +- adata->quit_session_item); +- g_signal_connect (adata->quit_session_item, "style-set", +- G_CALLBACK (menuitem_style_set_cb), adata); +- g_signal_connect (adata->quit_session_item, "activate", +- G_CALLBACK (on_quit_session_activate), adata); +- gtk_widget_show (adata->quit_session_item); +- gtk_widget_show (adata->menu); +-} +- +-static void +-destroy_sub_menu (GdmAppletData *adata) +-{ +- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), NULL); +-} +- +-static void +-set_menu_visibility (GdmAppletData *adata, +- gboolean visible) +-{ +- +- if (visible) { +- create_sub_menu (adata); +- } else { +- destroy_sub_menu (adata); +- } +-} +- +-static void +-client_notify_lockdown_func (GConfClient *client, +- guint cnxn_id, +- GConfEntry *entry, +- GdmAppletData *adata) +-{ +- GConfValue *value; +- const char *key; +- +- value = gconf_entry_get_value (entry); +- key = gconf_entry_get_key (entry); +- +- if (value == NULL || key == NULL) { +- return; +- } +- +- if (strcmp (key, LOCKDOWN_USER_SWITCHING_KEY) == 0) { +- if (gconf_value_get_bool (value)) { +- set_menu_visibility (adata, FALSE); +- } else { +- set_menu_visibility (adata, TRUE); +- } +- } else if (strcmp (key, LOCKDOWN_LOCK_SCREEN_KEY) == 0) { +- if (gconf_value_get_bool (value)) { +- gtk_widget_hide (adata->lock_screen_item); +- } else { +- gtk_widget_show (adata->lock_screen_item); +- } +- } +-} +- +-static void +-reset_icon (GdmAppletData *adata) +-{ +- GdkPixbuf *pixbuf; +- GtkWidget *image; +- +- if (adata->user == NULL || !gtk_widget_has_screen (GTK_WIDGET (adata->menuitem))) { +- return; +- } +- +-#ifdef BUILD_PRESENSE_STUFF +- if (adata->user_item != NULL) { +- image = gdm_entry_menu_item_get_image (GDM_ENTRY_MENU_ITEM (adata->user_item)); +- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size * 3); +- if (pixbuf == NULL) { +- return; +- } +- +- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); +- g_object_unref (pixbuf); +- } +-#else +- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size); +- +- if (pixbuf == NULL) { +- return; +- } +- +- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (adata->menuitem)); +- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); +- g_object_unref (pixbuf); +-#endif +-} +- +-static void +-setup_current_user_now (GdmAppletData *adata) +-{ +- g_assert (adata->user != NULL); +- +- if (adata->user_loaded_notify_id != 0) { +- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id); +- } +- adata->user_loaded_notify_id = 0; +- +- update_label (adata); +- reset_icon (adata); +- adata->user_changed_notify_id = +- g_signal_connect (adata->user, +- "changed", +- G_CALLBACK (on_user_changed), +- adata); +-} +- +-static void +-on_current_user_loaded (GdmUser *user, +- GParamSpec *pspec, +- GdmAppletData *adata) +-{ +- if (!gdm_user_is_loaded (user)) { +- return; +- } +- +- setup_current_user_now (adata); +-} +- +-static void +-setup_current_user (GdmAppletData *adata) +-{ +- adata->user = gdm_user_manager_get_user_by_uid (adata->manager, getuid ()); +- +- if (adata->user == NULL) { +- g_warning ("Could not setup current user"); +- return; +- } +- +- g_object_ref (adata->user); +- +- adata->menuitem = gtk_image_menu_item_new_with_label (""); +-#ifndef BUILD_PRESENSE_STUFF +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->menuitem), +- gtk_image_new ()); +-#endif +- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menubar), adata->menuitem); +- gtk_widget_show (adata->menuitem); +- +- if (gdm_user_is_loaded (adata->user)) { +- setup_current_user_now (adata); +- return; +- } +- +- adata->user_loaded_notify_id = g_signal_connect (adata->user, +- "notify::is-loaded", +- G_CALLBACK (on_current_user_loaded), +- adata); +-} +- +-#ifdef BUILD_PRESENSE_STUFF +-static void +-set_status (GdmAppletData *adata, +- guint status) +-{ +- int i; +- +- g_debug ("Setting current status: %u", status); +- adata->current_status = status; +- for (i = 0; i < G_N_ELEMENTS (statuses); i++) { +- if (statuses[i].widget == NULL) { +- continue; +- } +- if (i == status) { +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (statuses[i].widget), +- TRUE); +- } +- } +- +- update_label (adata); +-} +- +-static void +-on_presence_status_changed (DBusGProxy *presence_proxy, +- guint status, +- GdmAppletData *adata) +-{ +- g_debug ("Status changed: %u", status); +- +- set_status (adata, status); +-} +- +-static void +-set_status_text (GdmAppletData *adata, +- const char *status_text) +-{ +- GtkWidget *entry; +- GtkTextBuffer *buffer; +- +- g_debug ("Status text changed: %s", status_text); +- +- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); +- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry)); +- gtk_text_buffer_set_text (buffer, status_text, -1); +-} +- +-static void +-on_presence_status_text_changed (DBusGProxy *presence_proxy, +- const char *status_text, +- GdmAppletData *adata) +-{ +- set_status_text (adata, status_text); +-} +-#endif +- +-static gboolean +-fill_applet (PanelApplet *applet) +-{ +- static const BonoboUIVerb menu_verbs[] = { +- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb), +- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb), +- BONOBO_UI_VERB ("GdmAbout", about_cb), +- BONOBO_UI_VERB_END +- }; +- static gboolean first_time = FALSE; +- char *tmp; +- BonoboUIComponent *popup_component; +- GdmAppletData *adata; +- GError *error; +- DBusGConnection *bus; +- +- if (!first_time) { +- first_time = TRUE; +- +- /* Do this here so it's only done once. */ +- gtk_rc_parse_string ("style \"gdm-user-switch-menubar-style\"\n" +- "{\n" +- "GtkMenuBar::shadow-type = none\n" +- "GtkMenuBar::internal-padding = 0\n" +- "}\n" +- "style \"gdm-user-switch-applet-style\"\n" +- "{\n" +- "GtkWidget::focus-line-width = 0\n" +- "GtkWidget::focus-padding = 0\n" +- "}\n" +- "widget \"*.gdm-user-switch-menubar\" style \"gdm-user-switch-menubar-style\"\n" +- "widget \"*.gdm-user-switch-applet\" style \"gdm-user-switch-applet-style\"\n"); +- gtk_window_set_default_icon_name ("stock_people"); +- g_set_application_name (_("User Switch Applet")); +- +- if (! gdm_settings_client_init (DATADIR "/gdm/gdm.schemas", "/")) { +- g_critical ("Unable to initialize settings client"); +- exit (1); +- } +- +- } +- +- adata = g_new0 (GdmAppletData, 1); +- adata->applet = applet; +- adata->panel_size = 24; +- +- adata->client = gconf_client_get_default (); +- +- gtk_widget_set_tooltip_text (GTK_WIDGET (applet), _("Change account settings and status")); +- gtk_container_set_border_width (GTK_CONTAINER (applet), 0); +- gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet"); +- panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); +- panel_applet_setup_menu_from_file (applet, NULL, +- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml", +- NULL, menu_verbs, adata); +- +- popup_component = panel_applet_get_popup_component (applet); +- +- /* Hide the admin context menu items if locked down or no cmd-line */ +- if (gconf_client_get_bool (adata->client, +- LOCKDOWN_COMMAND_LINE_KEY, +- NULL) || +- panel_applet_get_locked_down (applet)) { +- bonobo_ui_component_set_prop (popup_component, +- "/popups/button3/GdmSeparator", +- "hidden", "1", NULL); +- bonobo_ui_component_set_prop (popup_component, +- "/commands/GdmUsersGroupsAdmin", +- "hidden", "1", NULL); +- } else { +-#ifndef USERS_ADMIN +-# ifdef GDM_SETUP +- bonobo_ui_component_set_prop (popup_component, +- "/popups/button3/GdmSeparator", +- "hidden", "1", +- NULL); +-# endif /* !GDM_SETUP */ +- bonobo_ui_component_set_prop (popup_component, +- "/commands/GdmUsersGroupsAdmin", +- "hidden", "1", +- NULL); +-#endif /* !USERS_ADMIN */ +- } +- +- /* Hide the gdmphotosetup item if it can't be found in the path. */ +- tmp = g_find_program_in_path ("gnome-about-me"); +- if (!tmp) { +- bonobo_ui_component_set_prop (popup_component, +- "/commands/GdmAboutMe", +- "hidden", "1", +- NULL); +- } else { +- g_free (tmp); +- } +- +- g_signal_connect (adata->applet, +- "style-set", +- G_CALLBACK (applet_style_set_cb), adata); +- g_signal_connect (applet, +- "change-background", +- G_CALLBACK (applet_change_background_cb), adata); +- g_signal_connect (applet, +- "size-allocate", +- G_CALLBACK (applet_size_allocate_cb), adata); +- g_signal_connect (applet, +- "key-press-event", +- G_CALLBACK (applet_key_press_event_cb), adata); +- g_signal_connect_after (applet, +- "focus-in-event", +- G_CALLBACK (gtk_widget_queue_draw), NULL); +- g_signal_connect_after (applet, +- "focus-out-event", +- G_CALLBACK (gtk_widget_queue_draw), NULL); +- g_object_set_data_full (G_OBJECT (applet), +- "gdm-applet-data", +- adata, +- (GDestroyNotify) gdm_applet_data_free); +- +- adata->menubar = gtk_menu_bar_new (); +- gtk_widget_set_name (adata->menubar, "gdm-user-switch-menubar"); +- gtk_widget_set_can_focus (adata->menubar, TRUE); +- g_signal_connect (adata->menubar, "button-press-event", +- G_CALLBACK (menubar_button_press_event_cb), adata); +- g_signal_connect_after (adata->menubar, "expose-event", +- G_CALLBACK (menubar_expose_event_cb), adata); +- gtk_container_add (GTK_CONTAINER (applet), adata->menubar); +- gtk_widget_show (adata->menubar); +- +- adata->manager = gdm_user_manager_ref_default (); +- g_object_set (adata->manager, "include-all", TRUE, NULL); +- g_signal_connect (adata->manager, +- "notify::is-loaded", +- G_CALLBACK (on_manager_is_loaded_changed), +- adata); +- g_signal_connect (adata->manager, +- "notify::has-multiple-users", +- G_CALLBACK (on_manager_has_multiple_users_changed), +- adata); +- +- gdm_user_manager_queue_load (adata->manager); +- setup_current_user (adata); +- +- gconf_client_add_dir (adata->client, +- LOCKDOWN_DIR, +- GCONF_CLIENT_PRELOAD_ONELEVEL, +- NULL); +- +- adata->client_notify_lockdown_id = gconf_client_notify_add (adata->client, +- LOCKDOWN_DIR, +- (GConfClientNotifyFunc)client_notify_lockdown_func, +- adata, +- NULL, +- NULL); +- +- if (gconf_client_get_bool (adata->client, LOCKDOWN_USER_SWITCHING_KEY, NULL)) { +- set_menu_visibility (adata, FALSE); +- } else { +- set_menu_visibility (adata, TRUE); +- } +- if (gconf_client_get_bool (adata->client, LOCKDOWN_LOCK_SCREEN_KEY, NULL)) { +- gtk_widget_hide (adata->lock_screen_item); +- } else { +- gtk_widget_show (adata->lock_screen_item); +- } +- +- error = NULL; +- bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); +- if (bus == NULL) { +- g_warning ("Unable to get session bus: %s", error->message); +- g_error_free (error); +- goto done; +- } +- +-#ifdef BUILD_PRESENSE_STUFF +- adata->presence_proxy = dbus_g_proxy_new_for_name (bus, +- "org.gnome.SessionManager", +- "/org/gnome/SessionManager/Presence", +- "org.gnome.SessionManager.Presence"); +- if (adata->presence_proxy != NULL) { +- DBusGProxy *proxy; +- +- dbus_g_proxy_add_signal (adata->presence_proxy, +- "StatusChanged", +- G_TYPE_UINT, +- G_TYPE_INVALID); +- dbus_g_proxy_connect_signal (adata->presence_proxy, +- "StatusChanged", +- G_CALLBACK (on_presence_status_changed), +- adata, +- NULL); +- dbus_g_proxy_add_signal (adata->presence_proxy, +- "StatusTextChanged", +- G_TYPE_STRING, +- G_TYPE_INVALID); +- dbus_g_proxy_connect_signal (adata->presence_proxy, +- "StatusTextChanged", +- G_CALLBACK (on_presence_status_text_changed), +- adata, +- NULL); +- +- +- proxy = dbus_g_proxy_new_from_proxy (adata->presence_proxy, +- "org.freedesktop.DBus.Properties", +- "/org/gnome/SessionManager/Presence"); +- if (proxy != NULL) { +- guint status; +- const char *status_text; +- GValue value = { 0, }; +- +- status = 0; +- status_text = NULL; +- +- error = NULL; +- dbus_g_proxy_call (proxy, +- "Get", +- &error, +- G_TYPE_STRING, "org.gnome.SessionManager.Presence", +- G_TYPE_STRING, "status", +- G_TYPE_INVALID, +- G_TYPE_VALUE, &value, +- G_TYPE_INVALID); +- +- if (error != NULL) { +- g_warning ("Couldn't get presence status: %s", error->message); +- g_error_free (error); +- } else { +- status = g_value_get_uint (&value); +- } +- +- g_value_unset (&value); +- +- error = NULL; +- dbus_g_proxy_call (proxy, +- "Get", +- &error, +- G_TYPE_STRING, "org.gnome.SessionManager.Presence", +- G_TYPE_STRING, "status-text", +- G_TYPE_INVALID, +- G_TYPE_VALUE, &value, +- G_TYPE_INVALID); +- +- if (error != NULL) { +- g_warning ("Couldn't get presence status text: %s", error->message); +- g_error_free (error); +- } else { +- status_text = g_value_get_string (&value); +- } +- +- set_status (adata, status); +- set_status_text (adata, status_text); +- } +- } else { +- g_warning ("Failed to get session presence proxy"); +- } +-#endif +- +- done: +- gtk_widget_show (GTK_WIDGET (adata->applet)); +- +- return TRUE; +-} +- +-static gboolean +-applet_factory (PanelApplet *applet, +- const char *iid, +- gpointer data) +-{ +- gboolean ret; +- ret = FALSE; +- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) { +- ret = fill_applet (applet); +- } +- return ret; +-} +diff --git a/gui/user-switch-applet/gdm-entry-menu-item.c b/gui/user-switch-applet/gdm-entry-menu-item.c +deleted file mode 100644 +index d657e7a..0000000 +--- a/gui/user-switch-applet/gdm-entry-menu-item.c ++++ /dev/null +@@ -1,304 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2008 Red Hat, Inc. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include "config.h" +- +-#include +-#include +- +-#include +- +-#include +-#include +- +-#include "gdm-entry-menu-item.h" +- +-/* same as twitter */ +-#define TEXT_BUFFER_MAX_CHARS 64 +- +-enum +-{ +- PROP_0, +-}; +- +-struct _GdmEntryMenuItem +-{ +- GtkMenuItem parent; +- +- GtkWidget *hbox; +- GtkWidget *image; +- GtkWidget *entry; +-}; +- +-struct _GdmEntryMenuItemClass +-{ +- GtkMenuItemClass parent_class; +-}; +- +-G_DEFINE_TYPE (GdmEntryMenuItem, gdm_entry_menu_item, GTK_TYPE_MENU_ITEM) +- +-static void +-gdm_entry_menu_item_set_property (GObject *object, +- guint param_id, +- const GValue *value, +- GParamSpec *pspec) +-{ +- GdmEntryMenuItem *item; +- +- item = GDM_ENTRY_MENU_ITEM (object); +- +- switch (param_id) { +- default: +- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +- break; +- } +-} +- +-static void +-gdm_entry_menu_item_get_property (GObject *object, +- guint param_id, +- GValue *value, +- GParamSpec *pspec) +-{ +- GdmEntryMenuItem *item; +- +- item = GDM_ENTRY_MENU_ITEM (object); +- +- switch (param_id) { +- default: +- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +- break; +- } +-} +- +-static void +-gdm_entry_menu_item_dispose (GObject *object) +-{ +- +- (*G_OBJECT_CLASS (gdm_entry_menu_item_parent_class)->dispose) (object); +-} +- +-static gboolean +-gdm_entry_menu_item_button_release (GtkWidget *widget, +- GdkEventButton *event) +-{ +- return TRUE; +-} +- +-/* Cut and paste from gtkwindow.c */ +-static void +-send_focus_change (GtkWidget *widget, +- gboolean in) +-{ +- GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); +- +- g_object_ref (widget); +- +- gtk_widget_set_can_focus (widget, in); +- +- fevent->focus_change.type = GDK_FOCUS_CHANGE; +- fevent->focus_change.window = g_object_ref (gtk_widget_get_window (widget)); +- fevent->focus_change.in = in; +- +- gtk_widget_event (widget, fevent); +- +- g_object_notify (G_OBJECT (widget), "has-focus"); +- +- g_object_unref (widget); +- gdk_event_free (fevent); +-} +- +-static gboolean +-gdm_entry_menu_item_button_press (GtkWidget *widget, +- GdkEventButton *event) +-{ +- GtkWidget *entry; +- +- entry = GDM_ENTRY_MENU_ITEM (widget)->entry; +- +- if (gtk_widget_get_window (entry) != NULL) { +- gdk_window_raise (gtk_widget_get_window (entry)); +- } +- +- if (!gtk_widget_has_focus (entry)) { +- gtk_widget_grab_focus (entry); +- } +- +- return FALSE; +-} +- +-static void +-gdm_entry_menu_item_realize (GtkWidget *widget) +-{ +- if (GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize) { +- GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize (widget); +- } +-} +- +-static void +-gdm_entry_menu_item_select (GtkItem *item) +-{ +- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item)); +- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), TRUE); +-} +- +-static void +-gdm_entry_menu_item_deselect (GtkItem *item) +-{ +- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item)); +- +- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE); +-} +- +-static void +-gdm_entry_menu_item_class_init (GdmEntryMenuItemClass *klass) +-{ +- GObjectClass *gobject_class; +- GtkWidgetClass *widget_class; +- GtkMenuItemClass *menu_item_class; +- GtkItemClass *item_class; +- +- gobject_class = G_OBJECT_CLASS (klass); +- widget_class = GTK_WIDGET_CLASS (klass); +- menu_item_class = GTK_MENU_ITEM_CLASS (klass); +- item_class = GTK_ITEM_CLASS (klass); +- +- gobject_class->set_property = gdm_entry_menu_item_set_property; +- gobject_class->get_property = gdm_entry_menu_item_get_property; +- gobject_class->dispose = gdm_entry_menu_item_dispose; +- +- widget_class->button_release_event = gdm_entry_menu_item_button_release; +- widget_class->button_press_event = gdm_entry_menu_item_button_press; +- widget_class->realize = gdm_entry_menu_item_realize; +- +- item_class->select = gdm_entry_menu_item_select; +- item_class->deselect = gdm_entry_menu_item_deselect; +- +- menu_item_class->hide_on_activate = FALSE; +-} +- +-static void +-on_entry_show (GtkWidget *widget, +- GdmEntryMenuItem *item) +-{ +- if (gtk_widget_get_window (widget) != NULL) { +- gdk_window_raise (gtk_widget_get_window (widget)); +- } +- send_focus_change (widget, TRUE); +-} +- +-static void +-on_text_buffer_changed (GtkTextBuffer *buffer, +- GdmEntryMenuItem *item) +-{ +- int len; +- +- len = gtk_text_buffer_get_char_count (buffer); +- if (len > TEXT_BUFFER_MAX_CHARS) { +- gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (item))); +- } +-} +- +-static void +-on_entry_move_focus (GtkWidget *widget, +- GtkDirectionType direction, +- GdmEntryMenuItem *item) +-{ +- g_debug ("focus move"); +- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE); +- g_signal_emit_by_name (item, +- "move-focus", +- GTK_DIR_TAB_FORWARD); +-} +- +-static void +-gdm_entry_menu_item_init (GdmEntryMenuItem *item) +-{ +- PangoFontDescription *fontdesc; +- PangoFontMetrics *metrics; +- PangoContext *context; +- PangoLanguage *lang; +- int ascent; +- GtkTextBuffer *buffer; +- +- item->hbox = gtk_hbox_new (FALSE, 6); +- gtk_container_add (GTK_CONTAINER (item), item->hbox); +- +- item->image = gtk_image_new (); +- gtk_box_pack_start (GTK_BOX (item->hbox), item->image, FALSE, FALSE, 0); +- +- item->entry = gtk_text_view_new (); +- gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (item->entry), FALSE); +- gtk_text_view_set_editable (GTK_TEXT_VIEW (item->entry), TRUE); +- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (item->entry), +- GTK_WRAP_WORD); +- g_signal_connect (item->entry, +- "show", +- G_CALLBACK (on_entry_show), +- item); +- g_signal_connect (item->entry, +- "move-focus", +- G_CALLBACK (on_entry_move_focus), +- item); +- +- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (item->entry)); +- g_signal_connect (buffer, +- "changed", +- G_CALLBACK (on_text_buffer_changed), +- item); +- +- /* get the font ascent for the current font and language */ +- context = gtk_widget_get_pango_context (item->entry); +- fontdesc = pango_context_get_font_description (context); +- lang = pango_context_get_language (context); +- metrics = pango_context_get_metrics (context, fontdesc, lang); +- ascent = pango_font_metrics_get_ascent (metrics) * 1.5 / PANGO_SCALE; +- pango_font_metrics_unref (metrics); +- +- /* size our progress bar to be five ascents long */ +- gtk_widget_set_size_request (item->entry, ascent * 5, -1); +- +- gtk_box_pack_start (GTK_BOX (item->hbox), item->entry, TRUE, TRUE, 0); +- +- gtk_widget_show (item->hbox); +- gtk_widget_show (item->image); +- gtk_widget_show (item->entry); +-} +- +-GtkWidget * +-gdm_entry_menu_item_new (void) +-{ +- return g_object_new (GDM_TYPE_ENTRY_MENU_ITEM, NULL); +-} +- +-GtkWidget * +-gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item) +-{ +- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL); +- +- return item->entry; +-} +- +-GtkWidget * +-gdm_entry_menu_item_get_image (GdmEntryMenuItem *item) +-{ +- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL); +- +- return item->image; +-} +diff --git a/gui/user-switch-applet/gdm-entry-menu-item.h b/gui/user-switch-applet/gdm-entry-menu-item.h +deleted file mode 100644 +index 3031609..0000000 +--- a/gui/user-switch-applet/gdm-entry-menu-item.h ++++ /dev/null +@@ -1,51 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2004-2005 James M. Cape . +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#ifndef __GDM_ENTRY_MENU_ITEM__ +-#define __GDM_ENTRY_MENU_ITEM__ +- +-#include +- +-G_BEGIN_DECLS +- +-#define GDM_TYPE_ENTRY_MENU_ITEM \ +- (gdm_entry_menu_item_get_type ()) +-#define GDM_ENTRY_MENU_ITEM(object) \ +- (G_TYPE_CHECK_INSTANCE_CAST ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItem)) +-#define GDM_ENTRY_MENU_ITEM_CLASS(klass) \ +- (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass)) +-#define GDM_IS_ENTRY_MENU_ITEM(object) \ +- (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDM_TYPE_ENTRY_MENU_ITEM)) +-#define GDM_IS_ENTRY_MENU_ITEM_CLASS(klass) \ +- (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_ENTRY_MENU_ITEM)) +-#define GDM_ENTRY_MENU_ITEM_GET_CLASS(object) \ +- (G_TYPE_INSTANCE_GET_CLASS ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass)) +- +-typedef struct _GdmEntryMenuItem GdmEntryMenuItem; +-typedef struct _GdmEntryMenuItemClass GdmEntryMenuItemClass; +- +-GType gdm_entry_menu_item_get_type (void) G_GNUC_CONST; +- +-GtkWidget *gdm_entry_menu_item_new (void); +-GtkWidget *gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item); +-GtkWidget *gdm_entry_menu_item_get_image (GdmEntryMenuItem *item); +- +-G_END_DECLS +- +-#endif /* __GDM_ENTRY_MENU_ITEM__ */ +diff --git a/po/POTFILES.in b/po/POTFILES.in +index 1fccb90..cc1a3fd 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -84,10 +84,6 @@ gui/simple-greeter/gdm-timer.c + gui/simple-greeter/gdm-user.c + gui/simple-greeter/gdm-user-chooser-widget.c + gui/simple-greeter/greeter-main.c +-gui/user-switch-applet/applet.c +-gui/user-switch-applet/gdm-entry-menu-item.c +-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in +-gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml + utils/gdmflexiserver.c + utils/gdm-screenshot.c + +diff --git a/po/POTFILES.skip b/po/POTFILES.skip +index 0269a0f..ee3d753 100644 +--- a/po/POTFILES.skip ++++ b/po/POTFILES.skip +@@ -7,7 +7,6 @@ + # remove these unless you fix "make distcheck" a different way. + # + data/gdm.schemas.in +-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in + data/greeter-autostart/at-spi-registryd-wrapper.desktop.in + data/greeter-autostart/gdm-simple-greeter.desktop.in + data/greeter-autostart/gnome-power-manager.desktop.in +-- +1.6.6.1 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch new file mode 100644 index 000000000..ad21073a0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch @@ -0,0 +1,34 @@ +From 43e59f3deadb3914a1cc931ae18d4023874cdeca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 26 Apr 2013 17:15:48 +0200 +Subject: [PATCH] gdm-user-manager.c: avoid displaying system users in + greeter's list +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +yocto environment system users have UID below 1000 + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + gui/simple-greeter/gdm-user-manager.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c +index c631989..f18e478 100644 +--- a/gui/simple-greeter/gdm-user-manager.c ++++ b/gui/simple-greeter/gdm-user-manager.c +@@ -63,7 +63,7 @@ + #ifdef __sun + #define FALLBACK_MINIMAL_UID 100 + #else +-#define FALLBACK_MINIMAL_UID 500 ++#define FALLBACK_MINIMAL_UID 1000 + #endif + + #ifndef _PATH_SHELLS +-- +1.7.4.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/Default b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/Default new file mode 100755 index 000000000..a7a7fcf7f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/Default @@ -0,0 +1,96 @@ +#!/bin/sh +# Stolen from the debian kdm setup, aren't I sneaky +# Plus a lot of fun stuff added +# -George + +PATH="/usr/bin:$PATH" +OLD_IFS=$IFS + +gdmwhich () { + COMMAND="$1" + OUTPUT= + IFS=: + for dir in $PATH + do + if test -x "$dir/$COMMAND" ; then + if test "x$OUTPUT" = "x" ; then + OUTPUT="$dir/$COMMAND" + fi + fi + done + IFS=$OLD_IFS + echo "$OUTPUT" +} + +sysresources=/etc/X11/Xresources + +# merge in defaults +if [ -f "$sysresources" ]; then + xrdb -merge "$sysresources" +fi + +sysmodmap=/etc/X11/Xmodmap + +XMODMAP=`gdmwhich xmodmap` +if [ "x$XMODMAP" != "x" ] ; then + if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then + if [ -f $sysmodmap ]; then + $XMODMAP $sysmodmap + fi + else + ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP - + fi + + # + # Switch Sun's Alt and Meta mod mappings + # + + UNAME=`gdmwhich uname` + PROCESSOR=`$UNAME -p` + if [ "x$PROCESSOR" = "xsparc" ]; then + if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null + then + $XMODMAP -e "clear Mod1" \ + -e "clear Mod4" \ + -e "add Mod1 = Alt_L" \ + -e "add Mod1 = Alt_R" \ + -e "add Mod4 = Meta_L" \ + -e "add Mod4 = Meta_R" + fi + fi +fi + +SETXKBMAP=`gdmwhich setxkbmap` +if [ "x$SETXKBMAP" != "x" ] ; then + # FIXME: is this all right? Is this completely on crack? + # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY + # FIXME: This should be done in code. Or there must be an easier way ... + if [ -n "$GDM_PARENT_DISPLAY" ]; then + XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )` + if [ -n "$XKBSETUP" ]; then + XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'` + XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'` + XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'` + XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'` + XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'` + if [ -n "$XKBKEYMAP" ]; then + $SETXKBMAP -keymap "$XKBKEYMAP" + elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then + $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY" + elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then + $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" + elif [ -n "$XKBSYMBOLS" ]; then + $SETXKBMAP -symbols "$XKBSYMBOLS" + fi + fi + fi +fi + +# FIXME: the housekeeping below really should be moved to the postinst of packages that require it +# brute force approach for now +update-desktop-database +glib-compile-schemas /usr/share/glib-2.0/schemas/ + +#x11vnc -q -bg -display :0 -forever -avahi -xkb + +exit 0 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/cross-xdetection.diff b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/cross-xdetection.diff new file mode 100644 index 000000000..bee35116e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/cross-xdetection.diff @@ -0,0 +1,96 @@ +From 60084e7e973634971c9643f2459e5d3e248ee3f1 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Thu, 9 Jun 2011 18:12:45 +0200 +Subject: [PATCH] build-sys: hardcode x paths to fix crosscompiling + +Signed-off-by: Koen Kooi +--- + configure.ac | 72 ++++----------------------------------------------------- + 1 files changed, 5 insertions(+), 67 deletions(-) + +diff --git a/configure.ac b/configure.ac +index eeaf3dc..841efe0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1101,73 +1101,11 @@ dnl --------------------------------------------------------------------------- + dnl - Check for X Server location + dnl --------------------------------------------------------------------------- + +-# First check with "! -h" for /usr/X11R6 and /usr/X11 since they often +-# symlink to each other, and configure should use the more stable +-# location (the real directory) if possible. +-# +-# On Solaris, the /usr/bin/Xserver script is used to decide whether to +-# use Xsun or Xorg, so this is used on Solaris. +-# +-# When testing for /usr/X11R6, first check with "! -h" for /usr/X11R6 +-# and /usr/X11 since they often symlink to each other, and configure +-# should use the more stable location (the real directory) if possible. +-# +-if test -x /usr/X11/bin/Xserver; then +- X_PATH="/usr/X11/bin" +- X_SERVER_PATH="/usr/X11/bin" +- X_SERVER="/usr/X11/bin/Xserver" +- X_CONFIG_OPTIONS="-audit 0" +-elif test ! -h /usr/X11R6 -a -x /usr/X11R6/bin/X; then +- X_PATH="/usr/X11R6/bin" +- X_SERVER_PATH="/usr/X11R6/bin" +- X_SERVER="/usr/X11R6/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-elif test ! -h /usr/X11 -a -x /usr/X11/bin/X; then +- X_PATH="/usr/X11/bin" +- X_SERVER_PATH="/usr/X11/bin" +- X_SERVER="/usr/X11/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-elif test -x /usr/X11R6/bin/X; then +- X_PATH="/usr/X11R6/bin" +- X_SERVER_PATH="/usr/X11R6/bin" +- X_SERVER="/usr/X11R6/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-elif test -x /usr/bin/Xorg; then +- X_PATH="/usr/bin" +- X_SERVER_PATH="/usr/bin" +- X_SERVER="/usr/bin/Xorg" +- X_CONFIG_OPTIONS="-audit 0" +-elif test -x /usr/X11/bin/X; then +- X_PATH="/usr/X11/bin" +- X_SERVER_PATH="/usr/X11/bin" +- X_SERVER="/usr/X11/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-elif test -x /usr/openwin/bin/Xsun; then +- # Do not add /usr/openwin/bin here because on Solaris you need +- # /usr/openwin/bin in your PATH even if you are using the Xorg +- # Xserver. We add this to the path below. +- X_PATH="/usr/openwin/bin" +- X_SERVER_PATH="/usr/openwin/bin" +- X_SERVER="/usr/openwin/bin/Xsun" +- X_CONFIG_OPTIONS="-audit 0 -nobanner" +-elif test -x /opt/X11R6/bin/X; then +- X_PATH="/opt/X11R6/bin" +- X_SERVER_PATH="/opt/X11R6/bin" +- X_SERVER="/opt/X11R6/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-elif test -x /usr/bin/X; then +- X_PATH="/usr/bin" +- X_SERVER_PATH="/usr/bin" +- X_SERVER="/usr/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-else +- # what to do, what to do, this is wrong, but this just sets the +- # defaults, perhaps this user is cross compiling or some such +- X_PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin" +- X_SERVER_PATH="/usr/bin" +- X_SERVER="/usr/bin/X" +- X_CONFIG_OPTIONS="-audit 0" +-fi ++# We hardcode the X paths since we know where it will be in the OE univers ++X_PATH="/usr/bin" ++X_SERVER_PATH="/usr/bin" ++X_SERVER="/usr/bin/X" ++X_CONFIG_OPTIONS="-audit 0" + + dnl --------------------------------------------------------------------------- + dnl - Check for Xnest / Xephyr support +-- +1.6.6.1 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm new file mode 100755 index 000000000..bb5b41864 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm @@ -0,0 +1,89 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: gdm +# Should-Start: console-screen acpid dbus hal network-manager +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 5 +# Default-Stop: 0 1 2 3 6 +# Short-Description: GNOME Display Manager +# Description: Debian init script for the GNOME Display Manager +### END INIT INFO +# +# Author: Ryan Murray +# +set -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/gdm + +test -x $DAEMON || exit 0 + +if [ -r /etc/default/locale ]; then + . /etc/default/locale + export LANG LANGUAGE +fi + +# To start gdm even if it is not the default display manager, change +# HEED_DEFAULT_DISPLAY_MANAGER to "false." +HEED_DEFAULT_DISPLAY_MANAGER=true +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager + +case "$1" in + start) + # make needed directories in volatile + + if [ -e /var/log/gdm ] ; then + rm -rf /var/log/gdm + fi + + mkdir -m 01770 /var/log/gdm + chown gdm:gdm /var/log/gdm + + if [ -e /tmp/.ICE-unix ] ; then + rm -rf /tmp/.ICE-unix + fi + + mkdir -m 01777 /tmp/.ICE-unix + chown root:root /tmp/.ICE-unix + + CONFIGURED_DAEMON=$(basename "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2> /dev/null)") + if grep -wqs text /proc/cmdline; then + echo "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline." + elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \ + [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] && \ + [ "$CONFIGURED_DAEMON" != gdm ] ; then + echo "Not starting GNOME Display Manager; it is not the default display manager" + else + echo "Starting GNOME Display Manager" "gdm" + start-stop-daemon --start -b --exec $DAEMON + fi + ;; + stop) + echo "Stopping GNOME Display Manager" "gdm" + set +e + start-stop-daemon --stop --quiet --pidfile /var/run/gdm.pid \ + --name gdm --retry 5 + set -e + ;; + reload) + echo "Scheduling reload of GNOME Display Manager configuration" "gdm" + set +e + start-stop-daemon --stop --signal USR1 --quiet --pidfile \ + /var/run/gdm.pid --name gdm + set -e + ;; + status) + status_of_proc -p "$PIDFILE" "$DAEMON" gdm && exit 0 || exit $? + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/gdm {start|stop|restart|reload|force-reload|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm-pam b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm-pam new file mode 100644 index 000000000..f9fafed9d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm-pam @@ -0,0 +1,11 @@ +# +# default; standard UN*X access +# +auth required pam_unix.so +account required pam_unix.so +password required pam_unix.so +session required pam_unix.so + +auth optional pam_gnome_keyring.so +session optional pam_gnome_keyring.so auto_start + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.conf b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.conf new file mode 100644 index 000000000..559823b86 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.conf @@ -0,0 +1,80 @@ +# GDM Custom Configuration file. +# +# This file is the appropriate place for specifying your customizations to the +# GDM configuration. If you run gdmsetup, it will automatically edit this +# file for you and will cause the daemon and any running GDM GUI programs to +# automatically update with the new configuration. Not all configuration +# options are supported by gdmsetup, so to modify some values it may be +# necessary to modify this file directly by hand. +# +# This file overrides the default configuration settings. These settings +# are stored in the GDM System Defaults configuration file, which is found +# at the following location. +# +# /usr/share/gdm/defaults.conf. +# +# This file contains comments about the meaning of each configuration option, +# so is also a useful reference. Also refer to the documentation links at +# the end of this comment for further information. In short, to hand-edit +# this file, simply add or modify the key=value combination in the +# appropriate section in the template below this comment section. +# +# For example, if you want to specify a different value for the Enable key +# in the "[debug]" section of your GDM System Defaults configuration file, +# then add "Enable=true" in the "[debug]" section of this file. If the +# key already exists in this file, then simply modify it. +# +# Older versions of GDM used the "gdm.conf" file for configuration. If your +# system has an old gdm.conf file on the system, it will be used instead of +# this file - so changes made to this file will not take effect. Consider +# migrating your configuration to this file and removing the gdm.conf file. +# +# If you hand edit a GDM configuration file, you can run the following +# command and the GDM daemon will immediately reflect the change. Any +# running GDM GUI programs will also be notified to update with the new +# configuration. +# +# gdmflexiserver --command="UPDATE_CONFIG " +# +# e.g, the "Enable" key in the "[debug]" section would be "debug/Enable". +# +# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and +# re-read the new configuration settings. You can also restart GDM by sending +# a HUP or USR1 signal to the daemon. HUP behaves like gdm-restart and causes +# any user session started by GDM to exit immediately while USR1 behaves like +# gdm-safe-restart and will wait until all users log out before restarting GDM. +# +# For full reference documentation see the gnome help browser under +# GNOME|System category. You can also find the docs in HTML form on +# http://www.gnome.org/projects/gdm/ +# +# NOTE: Lines that begin with "#" are considered comments. +# +# Have fun! + +[daemon] + +[security] + +[xdmcp] + +[gui] + +[greeter] + +[chooser] + +[debug] + +# Note that to disable servers defined in the GDM System Defaults +# configuration file (such as 0=Standard, you must put a line in this file +# that says 0=inactive, as described in the Configuration section of the GDM +# documentation. +# +[servers] + +# Also note, that if you redefine a [server-foo] section, then GDM will +# use the definition in this file, not the GDM System Defaults configuration +# file. It is currently not possible to disable a [server-foo] section +# defined in the GDM System Defaults configuration file. +# diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.service.in b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.service.in new file mode 100644 index 000000000..3e1556ae0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/gdm.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=Gnome Display Manager +After=systemd-user-sessions.service + +[Service] +ExecStart=%sbindir%/gdm -nodaemon +StandardOutput=syslog + +[Install] +Alias=display-manager.service diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch new file mode 100644 index 000000000..1f9fa2ac2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch @@ -0,0 +1,37 @@ +In cross environment we have to prepend the sysroot to the path found by +pkgconfig since the path returned from pkgconfig does not have sysroot prefixed +it ends up using the files from host system. Now usually people have gnome installed +so the build succeeds but if you dont have gnome installed on build host then +it wont find the files on host system and packages using gnome-doc-utils wont +compile. + +This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR +will be empty + +Upstream-Status: Pending + +Signed-off-by: Khem Raj + +Index: gdm-2.32.2/gnome-doc-utils.make +=================================================================== +--- gdm-2.32.2.orig/gnome-doc-utils.make 2011-05-31 08:06:59.000000000 -0700 ++++ gdm-2.32.2/gnome-doc-utils.make 2011-09-25 15:32:39.540992521 -0700 +@@ -133,12 +133,12 @@ + _xml2po ?= `which xml2po` + _xml2po_mode = $(if $(DOC_ID),mallard,docbook) + +-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +-_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +-_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl ++_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` ++_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` ++_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils` ++_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl ++_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl ++_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl + + if ENABLE_SK + _ENABLE_SK = true diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb new file mode 100644 index 000000000..259c609fd --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb @@ -0,0 +1,105 @@ +SUMMARY = "Graphical login manager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "xinput gnome-panel tcp-wrappers libcanberra libxklavier grep consolekit libpam gnome-doc-utils gtk+ xrdb" + +PR = "r18" + +inherit gnome update-rc.d systemd useradd + +SRC_URI += " \ + file://cross-xdetection.diff \ + file://0001-Remove-user-switch-applet.patch \ + file://0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch \ + file://sysrooted-pkg-config.patch \ + file://%gconf-tree.xml \ + file://gdm \ + file://gdm.conf \ + file://gdm-pam \ + file://Default \ + file://gdm.service.in \ +" + +SRC_URI[archive.md5sum] = "dbe5187a2e17881cc454e313e0ae8d1e" +SRC_URI[archive.sha256sum] = "034d23af0ea18d86e5543e707212d9297ec7d83f221808968af266dbebc0e703" +GNOME_COMPRESS_TYPE="bz2" + +EXTRA_OECONF = " \ + --enable-authentication-scheme=shadow \ + --enable-debug=yes \ + --with-console-kit \ + --disable-scrollkeeper \ +" + +do_configure_prepend() { + sed -i -e "s:\bdocs::g" ${S}/Makefile.am +} + +do_install_prepend() { + install -d ${D}/${localstatedir}/lib/gdm/.gconf.mandatory + install ${WORKDIR}/%gconf-tree.xml ${D}/${localstatedir}/lib/gdm/.gconf.mandatory/ +} + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gdm ${D}/${sysconfdir}/init.d/ + + install -d ${D}/${sysconfdir}/gdm + install -m 0644 ${WORKDIR}/gdm.conf ${D}/${sysconfdir}/gdm/ + + install -d ${D}/${sysconfdir}/pam.d + install -m 0755 ${WORKDIR}/gdm-pam ${D}/${sysconfdir}/pam.d/gdm + rm -f ${D}/${sysconfdir}/pam.d/gdm-autologin + + install -d ${D}/${sysconfdir}/gdm/Init + install -m 0755 ${WORKDIR}/Default ${D}/${sysconfdir}/gdm/Init + + install -d ${D}${systemd_unitdir}/system + sed -e 's,%sbindir%,${sbindir},g' \ + < ${WORKDIR}/gdm.service.in \ + > ${D}${systemd_unitdir}/system/gdm.service + + chown -R gdm:gdm ${D}${localstatedir}/lib/gdm + chmod 0750 ${D}${localstatedir}/lib/gdm + + rm -rf "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + + rm -f ${D}${datadir}/gdm/autostart/LoginWindow/at-spi-registryd-wrapper.desktop + rm -f ${D}${datadir}/gdm/autostart/LoginWindow/orca-screen-reader.desktop + rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gnome-mag.desktop + rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gok.desktop + rm -f ${D}${datadir}/gdm/autostart/LoginWindow/metacity.desktop +} + +FILES_${PN} += "${datadir}/icon* \ + ${datadir}/xsession* \ +" + +RDEPENDS_${PN} += "grep dbus-x11 shadow" +# "libpam-base-files" +CONFFILES_${PN} += "${sysconfdir}/gdm/gdm.conf ${sysconfdir}/init.d/gdm" +RRECOMMENDS_${PN} += "openssh-misc desktop-file-utils glib-2.0-utils metacity gnome-session polkit-gnome consolekit" + +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "gdm.service" + +INITSCRIPT_NAME = "gdm" +INITSCRIPT_PARAMS = "start 99 5 . stop 20 0 1 2 3 6 ." + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm" + +pkg_postinst_${PN} () { +# Register up as default dm +mkdir -p $D${sysconfdir}/X11/ +echo "${bindir}/gdm" > $D${sysconfdir}/X11/default-display-manager +} + +pkg_postrm_${PN} () { + deluser gdm || true + delgroup gdm || true + sed -i /gdm/d ${sysconfdir}/X11/default-display-manager || true +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch new file mode 100644 index 000000000..a28808b8d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch @@ -0,0 +1,57 @@ +From 8e0cbfac142d38320dd02416601e14c65585cd17 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 9 Mar 2013 12:47:06 +0100 +Subject: [PATCH] workaround void pointer arithmetic +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +fixes errors like: +error: pointer of type 'void *' used in arithmetic [-Werror=pointer-arith] + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + gedit/gedit-document-input-stream.c | 4 ++-- + gedit/gedit-smart-charset-converter.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gedit/gedit-document-input-stream.c b/gedit/gedit-document-input-stream.c +index 5a1f961..38316e7 100644 +--- a/gedit/gedit-document-input-stream.c ++++ b/gedit/gedit-document-input-stream.c +@@ -426,7 +426,7 @@ gedit_document_input_stream_read (GInputStream *stream, + + do + { +- n = read_line (dstream, buffer + read, space_left); ++ n = read_line (dstream, ((char*)buffer) + read, space_left); + read += n; + space_left -= n; + } while (space_left > 0 && n != 0 && dstream->priv->bytes_partial == 0); +@@ -451,7 +451,7 @@ gedit_document_input_stream_read (GInputStream *stream, + + newline = get_new_line (dstream); + +- memcpy (buffer + read, newline, newline_size); ++ memcpy (((char*)buffer) + read, newline, newline_size); + + read += newline_size; + dstream->priv->newline_added = TRUE; +diff --git a/gedit/gedit-smart-charset-converter.c b/gedit/gedit-smart-charset-converter.c +index e32b0b1..6745ce3 100644 +--- a/gedit/gedit-smart-charset-converter.c ++++ b/gedit/gedit-smart-charset-converter.c +@@ -153,7 +153,7 @@ try_convert (GCharsetConverter *converter, + do + { + res = g_converter_convert (G_CONVERTER (converter), +- inbuf + nread, ++ ((const char*)inbuf) + nread, + inbuf_size - nread, + out + nwritten, + out_size - nwritten, +-- +1.7.4.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb new file mode 100644 index 000000000..1c7b7e3ed --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb @@ -0,0 +1,28 @@ +SUMMARY = "GNOME editor" +SECTION = "x11/gnome" +LICENSE = "GPLv2+" +PR = "r2" + +DEPENDS = "gvfs enchant gconf gnome-doc-utils gnome-doc-utils-native glib-2.0 gtk+ gtksourceview2 iso-codes" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit gnome gettext pythonnative +SRC_URI+= "file://0001-workaround-void-pointer-arithmetic.patch" +SRC_URI[archive.md5sum] = "e1eecb0a92a1a363b3d375ec5ac0fb3b" +SRC_URI[archive.sha256sum] = "a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c" +GNOME_COMPRESS_TYPE="bz2" + +EXTRA_OECONF = "--disable-scrollkeeper \ + --enable-gvfs-metadata" + +do_configure_prepend() { + cd ${S} + gnome-doc-common --copy || true + gnome-doc-prepare --force --copy || true + cd ${B} +} + +FILES_${PN} += "${libdir}/gedit-2/plugin* ${datadir}/gedit-2" +FILES_${PN}-dbg += "${libdir}/gedit-2/plugin-loaders/.debug ${libdir}/gedit-2/plugins/.debug" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb new file mode 100644 index 000000000..2adb81b59 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Gnome background images" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SECTION = "x11/gnome" + +# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT +# intltool-native for IT_PROG_INTLTOOL(0.35.0) +DEPENDS = "glib-2.0 intltool-native" + +inherit gnomebase + +SRC_URI[archive.md5sum] = "3df26626483b02e51adefc6ab5945a8d" +SRC_URI[archive.sha256sum] = "4d7b60b5ba768bf8834b5fa3a3471cd9a9e14b5884bc210dc2d3cdbf1faddcef" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN} += "${datadir}/gnome-background-properties" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb new file mode 100644 index 000000000..7b064c332 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNOME bluetooth manager" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ +" + +SECTION = "x11/gnome" + +DEPENDS = "udev gtk+3 libnotify libcanberra" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" + +inherit gnomebase gtk-icon-cache gobject-introspection + +SRC_URI[archive.md5sum] = "75d09c924468ec0c687f9ab3acf7f113" +SRC_URI[archive.sha256sum] = "d8df073c331df0f97261869fb77ffcdbf4e3e4eaf460d3c3ed2b16e03d9c5398" + +FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb new file mode 100644 index 000000000..86b913bb1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb @@ -0,0 +1,32 @@ +SUMMARY = "GNOME control center" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "desktop-file-utils-native gnome-menus libunique dbus-glib gnome-desktop libxml2 metacity gconf gnome-settings-daemon librsvg pango libgnomekbd libxklavier libcanberra libgtop libxscrnsaver" + +PR = "r1" + +inherit gnome + +SRC_URI[archive.md5sum] = "b4e8ab5c7556ae07addbfcfb4fa2f761" +SRC_URI[archive.sha256sum] = "7c568b57358e5c08f4d8dd76dbac7df2539135ad081872b60514b7a8ac797e66" +GNOME_COMPRESS_TYPE="bz2" + +LDFLAGS += "-lgthread-2.0 -lxml2" + +do_configure_prepend() { + sed -i s:help::g ${S}/Makefile.am +} +do_install_append() { + rm -rf ${D}${datadir}/mime +} + +FILES_${PN} += "${datadir}/icon* \ + ${datadir}/xsession* \ + ${libdir}/window-manager-settings/*.so \ + ${datadir}/gnome \ + ${datadir}/desktop-directories \ +" +FILES_${PN}-dbg += "${libdir}/window-manager-settings/.debug" +FILES_${PN}-dev += "${libdir}/window-manager-settings/*.la" +FILES_${PN}-staticdev += "${libdir}/window-manager-settings/*.a" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb new file mode 100644 index 000000000..703c397b2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "GNOME library for reading .desktop files" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +PR = "r6" + +inherit gnome pkgconfig + +SRC_URI[archive.md5sum] = "5c80d628a240eb9d9ff78913b31f2f67" +SRC_URI[archive.sha256sum] = "55cbecf67efe1fa1e57ac966520a7c46d799c8ba3c652a1219f60cafccb3739d" +GNOME_COMPRESS_TYPE="bz2" + +DEPENDS += "gconf libxrandr virtual/libx11 gtk+ glib-2.0 gnome-doc-utils startup-notification" + +EXTRA_OECONF = "--disable-scrollkeeper --disable-desktop-docs --disable-gnome-about" + +do_configure_prepend () { + sed -i -e s:^#!@PYTHON@:#!${bindir}/python: ${S}/gnome-about/gnome-about.in +} + +PACKAGES =+ "libgnome-desktop" +FILES_libgnome-desktop = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop/pnp.ids" +FILES_${PN} += "${datadir}/gnome-about" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch new file mode 100644 index 000000000..805e93776 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch @@ -0,0 +1,74 @@ +From 7dde5bc75a1d96be9510ce1e98d28f9d33520919 Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Fri, 8 Jul 2011 11:03:52 -0400 +Subject: [PATCH] Add support for DeviceAutomountHint + +Based on the patch in https://bugzilla.gnome.org/show_bug.cgi?id=653184 + +Upstream-Status: Applied [1] + +[1] https://mail.gnome.org/archives/commits-list/2011-July/msg03207.html + +Signed-off-by: David Zeuthen +--- + src/gdu/gdu-device.c | 10 ++++++++++ + src/gdu/gdu-device.h | 1 + + 2 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/src/gdu/gdu-device.c b/src/gdu/gdu-device.c +index 6a5afad..4be39cf 100644 +--- a/src/gdu/gdu-device.c ++++ b/src/gdu/gdu-device.c +@@ -82,6 +82,7 @@ typedef struct + gboolean device_presentation_nopolicy; + char *device_presentation_name; + char *device_presentation_icon_name; ++ char *device_automount_hint; + guint64 device_size; + guint64 device_block_size; + +@@ -279,6 +280,8 @@ collect_props (const char *key, + props->device_presentation_name = g_strdup (g_value_get_string (value)); + else if (strcmp (key, "DevicePresentationIconName") == 0) + props->device_presentation_icon_name = g_strdup (g_value_get_string (value)); ++ else if (strcmp (key, "DeviceAutomountHint") == 0) ++ props->device_automount_hint = g_strdup (g_value_get_string (value)); + else if (strcmp (key, "DeviceSize") == 0) + props->device_size = g_value_get_uint64 (value); + else if (strcmp (key, "DeviceBlockSize") == 0) +@@ -549,6 +552,7 @@ device_properties_free (DeviceProperties *props) + g_strfreev (props->device_mount_paths); + g_free (props->device_presentation_name); + g_free (props->device_presentation_icon_name); ++ g_free (props->device_automount_hint); + g_free (props->job_id); + g_free (props->id_usage); + g_free (props->id_type); +@@ -1294,6 +1298,12 @@ gdu_device_drive_get_media_compatibility (GduDevice *device) + } + + const char * ++gdu_device_get_automount_hint (GduDevice *device) ++{ ++ return device->priv->props->device_automount_hint; ++} ++ ++const char * + gdu_device_drive_get_media (GduDevice *device) + { + return device->priv->props->drive_media; +diff --git a/src/gdu/gdu-device.h b/src/gdu/gdu-device.h +index 4c1302b..8cfd7a9 100644 +--- a/src/gdu/gdu-device.h ++++ b/src/gdu/gdu-device.h +@@ -143,6 +143,7 @@ const char *gdu_device_drive_get_wwn (GduDevice *device); + const char *gdu_device_drive_get_connection_interface (GduDevice *device); + guint64 gdu_device_drive_get_connection_speed (GduDevice *device); + char **gdu_device_drive_get_media_compatibility (GduDevice *device); ++const gchar *gdu_device_get_automount_hint(GduDevice *device); + const char *gdu_device_drive_get_media (GduDevice *device); + gboolean gdu_device_drive_get_is_media_ejectable (GduDevice *device); + gboolean gdu_device_drive_get_requires_eject (GduDevice *device); +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch new file mode 100644 index 000000000..0bc9707c2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0002-Require-libnotify-0.6.1.patch @@ -0,0 +1,49 @@ +From f8dea8dd411cba10a54ec083c3d5c9d641ec36c0 Mon Sep 17 00:00:00 2001 +From: William Jon McCann +Date: Tue, 12 Oct 2010 00:12:49 -0400 +Subject: [PATCH] Require libnotify 0.6.1 + +https://bugzilla.gnome.org/show_bug.cgi?id=631940 + +Upstream-Status: Backport [1] + +[1] https://git.gnome.org/browse/gnome-disk-utility/commit/?id=f8dea8dd411cba10a54ec083c3d5c9d641ec36c0 + +Signed-off-by: David Zeuthen +--- + configure.ac | 2 +- + src/notification/notification-main.c | 5 +---- + 2 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c61212e..3790fcf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -128,7 +128,7 @@ DBUS_GLIB_REQUIRED=0.74 + GNOME_KEYRING_REQUIRED=2.22 + GTK2_REQUIRED=2.20.0 + UNIQUE_REQUIRED=1.0 +-LIBNOTIFY_REQUIRED=0.3.0 ++LIBNOTIFY_REQUIRED=0.6.1 + NAUTILUS_REQUIRED=2.24.0 + AVAHI_UI_REQUIRED=0.6.25 + +diff --git a/src/notification/notification-main.c b/src/notification/notification-main.c +index 18e9672..b6a713f 100644 +--- a/src/notification/notification-main.c ++++ b/src/notification/notification-main.c +@@ -535,10 +535,7 @@ update_status_icon (NotificationData *data) + _("A hard disk may be failing"), + /* Translators: This is used as the text of the notification*/ + _("One or more hard disks report health problems. Click the icon to get more information."), +- "gtk-dialog-warning", +- NULL); +- notify_notification_attach_to_status_icon (data->ata_smart_notification, +- data->status_icon); ++ "gtk-dialog-warning"); + notify_notification_set_urgency (data->ata_smart_notification, NOTIFY_URGENCY_CRITICAL); + notify_notification_set_timeout (data->ata_smart_notification, NOTIFY_EXPIRES_NEVER); + show_notification (data); +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch new file mode 100644 index 000000000..f36942d19 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch @@ -0,0 +1,27 @@ +From: Dmitry Eremin-Solenikov +Subject: Disable scrollkeeper-config not found message +Upstream-Status: Not-Applicable + +If scrollkeeper-config isn't found, configure fails with an error. +Fix that by commenting out the check. + +Signed-Off-By: Dmitry Eremin-Solenikov + + +Index: gnome-disk-utility-2.32.0/configure.ac +=================================================================== +--- gnome-disk-utility-2.32.0.orig/configure.ac 2010-09-15 19:07:25.000000000 +0400 ++++ gnome-disk-utility-2.32.0/configure.ac 2011-08-20 01:29:48.000000000 +0400 +@@ -188,9 +188,9 @@ + # ************* + + AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no) +-if test x$SCROLLKEEPER_CONFIG = xno; then +- AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package) +-fi ++dnl if test x$SCROLLKEEPER_CONFIG = xno; then ++dnl AC_MSG_ERROR([Couldn't find scrollkeeper-config, please install the scrollkeeper package]) ++dnl fi + + # ******************** + # Internationalization diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch new file mode 100644 index 000000000..6ba397955 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch @@ -0,0 +1,34 @@ +Index: gnome-disk-utility-2.32.0/src/gdu/Makefile.am +=================================================================== +--- gnome-disk-utility-2.32.0.orig/src/gdu/Makefile.am 2011-08-20 01:59:16.000000000 +0400 ++++ gnome-disk-utility-2.32.0/src/gdu/Makefile.am 2011-08-20 02:08:18.000000000 +0400 +@@ -14,20 +14,20 @@ + gdu-marshal.c: gdu-marshal.list + echo "#include \"gdu-marshal.h\"" > $@ && glib-genmarshal $< --prefix=gdu_marshal --body >> $@ + +-udisks-daemon-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am +- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-daemon-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml ++udisks-daemon-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am ++ 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 + +-udisks-device-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am +- 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 ++udisks-device-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am ++ 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 + +-udisks-adapter-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am +- 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 ++udisks-adapter-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am ++ 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 + +-udisks-expander-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am +- 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 ++udisks-expander-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am ++ 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 + +-udisks-port-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am +- 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 ++udisks-port-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am ++ 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 + + lib_LTLIBRARIES=libgdu.la diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch new file mode 100644 index 000000000..48e63b1ea --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch @@ -0,0 +1,37 @@ +In cross environment we have to prepend the sysroot to the path found by +pkgconfig since the path returned from pkgconfig does not have sysroot prefixed +it ends up using the files from host system. Now usually people have gnome installed +so the build succeeds but if you dont have gnome installed on build host then +it wont find the files on host system and packages using gnome-doc-utils wont +compile. + +This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR +will be empty + +Upstream-Status: Pending + +Signed-off-by: Khem Raj + +Index: gnome-disk-utility-2.32.0/gnome-doc-utils.make +=================================================================== +--- gnome-disk-utility-2.32.0.orig/gnome-doc-utils.make 2010-09-15 08:27:46.000000000 -0700 ++++ gnome-disk-utility-2.32.0/gnome-doc-utils.make 2011-09-25 16:04:30.693795591 -0700 +@@ -133,12 +133,12 @@ + _xml2po ?= `which xml2po` + _xml2po_mode = $(if $(DOC_ID),mallard,docbook) + +-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +-_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl ++_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` ++_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` ++_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils` ++_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl ++_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl ++_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl + + if ENABLE_SK + _ENABLE_SK = true diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb new file mode 100644 index 000000000..2f427e7ef --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "GNOME disk utility" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9115d11797a5e6b746b4e9b90194564" + +DEPENDS = "glib-2.0 gtk+ libnotify libunique udisks avahi-ui virtual/libx11 libatasmart gnome-doc-utils intltool-native libgnome-keyring" + +PR = "r4" + +inherit gnomebase gtk-icon-cache +SRC_URI[archive.md5sum] = "f0366c8baebca0404d190b2d78f3582d" +SRC_URI[archive.sha256sum] = "03e461b6bda7f773f8018d25fa3213d3073d4dc83a76e6b39d962652f4de6a98" +GNOME_COMPRESS_TYPE="bz2" + +SRC_URI += "\ + file://disable-scrollkeeper.patch \ + file://fix-dbus-interfaces.patch \ + file://sysrooted-pkg-config.patch \ + file://0001-Add-support-for-DeviceAutomountHint.patch \ + file://0002-Require-libnotify-0.6.1.patch \ +" + +EXTRA_OECONF += "--disable-scrollkeeper" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus" + +do_configure_prepend() { + sed -i -e "s: help : :g" ${S}/Makefile.am +} + +PACKAGES =+ "${PN}-nautilus-extension ${PN}-libs" +FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so" +FILES_${PN}-libs += "${libdir}/libgdu*.so.*" +FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la" +FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a" +FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/egg-asn1x.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/egg-asn1x.patch new file mode 100644 index 000000000..ad8a40ccf --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/egg-asn1x.patch @@ -0,0 +1,55 @@ +Fixed build error with gcc 4.8 + +Errors like below + +egg-asn1x.c: In function 'anode_encode_build': +egg-asn1x.c:1280:7: warning: variable 'type' set but not used [-Wunused-but-set-variable] +egg-asn1x.c: In function 'traverse_and_prepare': +egg-asn1x.c:3354:3: warning: passing argument 1 of 'egg_asn1x_create' from incompatible pointer type [enabled by default] +In file included from egg-asn1x.c:50:0: +egg-asn1x.h:38:8: note: expected 'const struct static_struct_asn *' but argument is of type 'const struct asn1_static_node *' +egg-asn1x.c: At top level: +egg-asn1x.c:3509:1: error: conflicting types for 'egg_asn1x_create' +In file included from egg-asn1x.c:50:0: +egg-asn1x.h:38:8: note: previous declaration of 'egg_asn1x_create' was here +egg-asn1x.c:3572:1: error: conflicting types for 'egg_asn1x_create_quark' +In file included from egg-asn1x.c:50:0: +egg-asn1x.h:41:8: note: previous declaration of 'egg_asn1x_create_quark' was here +egg-asn1x.c:3579:1: error: conflicting types for 'egg_asn1x_create_and_decode' +In file included from egg-asn1x.c:50:0: +egg-asn1x.h:44:8: note: previous declaration of 'egg_asn1x_create_and_decode' was here +make[4]: *** [libegg_la-egg-asn1x.lo] Error 1 + + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +Index: gnome-keyring-2.32.1/egg/egg-asn1x.h +=================================================================== +--- gnome-keyring-2.32.1.orig/egg/egg-asn1x.h 2010-10-18 19:11:38.000000000 -0700 ++++ gnome-keyring-2.32.1/egg/egg-asn1x.h 2013-06-11 15:15:00.675399263 -0700 +@@ -25,6 +25,7 @@ + #define EGG_ASN1X_H_ + + #include ++#include + + #ifndef HAVE_EGG_ALLOCATOR + typedef void* (*EggAllocator) (void* p, gsize); +@@ -35,13 +36,13 @@ + + struct static_struct_asn; + +-GNode* egg_asn1x_create (const struct static_struct_asn *defs, ++GNode* egg_asn1x_create (const ASN1_ARRAY_TYPE *defs, + const gchar *type); + +-GNode* egg_asn1x_create_quark (const struct static_struct_asn *defs, ++GNode* egg_asn1x_create_quark (const ASN1_ARRAY_TYPE *defs, + GQuark type); + +-GNode* egg_asn1x_create_and_decode (const struct static_struct_asn *defs, ++GNode* egg_asn1x_create_and_decode (const ASN1_ARRAY_TYPE *defs, + const gchar *type, + gconstpointer data, + gsize n_data); diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb new file mode 100644 index 000000000..f8f5dddfb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb @@ -0,0 +1,43 @@ +SUMMARY = "Password and keyring managing daemon" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://gcr/gcr.h;endline=22;md5=a272df1e633e27ecf35e74fb5576250e \ + file://egg/egg-dbus.h;endline=25;md5=eb6f531af37165dc53420c073d774e61 \ + file://gp11/gp11.h;endline=24;md5=bd8c7a8a21d6c28d40536d96a35e3469 \ + file://pkcs11/pkcs11i.h;endline=24;md5=e72cfbb718389b76a4dae838d1c1f439" + +SECTION = "x11/gnome" + +PR = "r12" + +inherit autotools gnome gtk-doc pkgconfig gsettings + +SRC_URI += "file://egg-asn1x.patch" + +DEPENDS = "gtk+ libgcrypt libtasn1 libtasn1-native gconf ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} intltool-native" +RDEPENDS_${PN} = "libgnome-keyring glib-2.0-utils" + +EXTRA_OECONF = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)}" + +SRC_URI[archive.md5sum] = "9a8aa74e03361676f29d6e73155786fc" +SRC_URI[archive.sha256sum] = "31fecec1430a97f59a6159a5a2ea8d6a1b44287f1e9e595b3594df46bf7f18f9" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN} += "${datadir}/dbus-1/services ${datadir}/gcr \ + ${base_libdir}/security/*${SOLIBSDEV} \ + " + +FILES_${PN}-dev += "${libdir}/${BPN}/devel/*.la \ + ${libdir}/${BPN}/devel/*${SOLIBSDEV} \ + ${libdir}/${BPN}/standalone/*.la \ + ${base_libdir}/security/*.la \ + " + +FILES_${PN}-dbg += "${libdir}/${BPN}/standalone/.debug/ \ + ${libdir}/${BPN}/devel/.debug/ \ + ${base_libdir}/security/.debug/" + +PNBLACKLIST[gnome-keyring] ?= "This version conflicts with gcr from oe-core" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb new file mode 100644 index 000000000..e24188232 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Compatibility library for accessing secrets" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0914b9d3ebaba41ef2e3e0ae16f296cf \ + file://library/gnome-keyring.h;endline=25;md5=68ea64f81c160d670c37da5f137be4fb \ + file://library/gnome-keyring.c;endline=26;md5=8d7a4fb674aaa012ea5a98e7c368b4a5 \ + file://egg/egg-dh.h;endline=22;md5=1626c16af2a8da1f88324cf3ced33f08" + +SECTION = "x11/gnome/libs" +PR = "r3" + +inherit gnomebase gtk-doc + +DEPENDS = "dbus libgcrypt glib-2.0 intltool-native" + +SRC_URI[archive.md5sum] = "c42b2ca66204835d901d3dbfc1fa5ae6" +SRC_URI[archive.sha256sum] = "56388c0d81ddfdb57d30e4963c83ecc1c18498aab99395420e0fff69929a0f0c" +GNOME_COMPRESS_TYPE="bz2" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb new file mode 100644 index 000000000..bf5519701 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "GNOME menus" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +PNBLACKLIST[gnome-menus3] ?= "CONFLICT: 24 files are conflicting with gnome-menus" +# e.g. sysroots/qemux86-64/usr/share/desktop-directories/X-GNOME-Other.directory + +DEPENDS = "python libxml2 gconf popt gtk+3" + +inherit gnomebase pkgconfig python-dir pythonnative gobject-introspection + +BPN = "gnome-menus" + +SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "6db025e79e2b69f39fc7aa0753f43081" +SRC_URI[sha256sum] = "46950aba274c1ad58234374fa9b235258650737307f3bc396af48eb983668a71" + +PACKAGES += "${PN}-python" +FILES_${PN} += "${datadir}/desktop-directories/" +FILES_${PN}-python = "${libdir}/python*" +FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug \ + ${PYTHON_SITEPACKAGES_DIR}/.debug" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb new file mode 100644 index 000000000..1b84a54c8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb @@ -0,0 +1,22 @@ +SUMMARY = "GNOME menus" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" +PR = "r1" + +DEPENDS = "python libxml2 gconf popt gtk+" + +inherit gnomebase pkgconfig python-dir pythonnative gobject-introspection + +SRC_URI[archive.md5sum] = "caa6772e63ed5870cf43dc3d354e0624" +SRC_URI[archive.sha256sum] = "6dcc565006d6e8c2025ae83ab1f82edf6bd04d61c804c0dc9bf5ea50629c4caa" +GNOME_COMPRESS_TYPE="bz2" + +PACKAGES += "${PN}-python" +FILES_${PN} += "${datadir}/desktop-directories/" +FILES_${PN}-python = "${libdir}/python*" +FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug \ + ${PYTHON_SITEPACKAGES_DIR}/.debug" + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch new file mode 100644 index 000000000..09034255d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch @@ -0,0 +1,14 @@ +Upstream-Status: Inappropriate [configuration] + +Index: gnome-mime-data-2.18.0/Makefile.am +=================================================================== +--- gnome-mime-data-2.18.0.orig/Makefile.am 2009-06-11 17:27:48.000000000 +0100 ++++ gnome-mime-data-2.18.0/Makefile.am 2009-06-11 17:27:59.000000000 +0100 +@@ -1,6 +1,6 @@ + SUBDIRS = man po + +-pkgconfigdir = $(datadir)/pkgconfig ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = gnome-mime-data-2.0.pc + + NULL= diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb new file mode 100644 index 000000000..a31eb5571 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Base MIME and Application database for GNOME" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://check-mime.pl;endline=26;md5=a95b63c92c33d4ca1af61a315888f450" + +inherit gnomebase mime +PR = "r4" + +SRC_URI += "file://pkgconfig.patch" + +SRC_URI[archive.md5sum] = "541858188f80090d12a33b5a7c34d42c" +SRC_URI[archive.sha256sum] = "37196b5b37085bbcd45c338c36e26898fe35dd5975295f69f48028b1e8436fd7" +GNOME_COMPRESS_TYPE="bz2" + +DEPENDS += "shared-mime-info intltool-native" +RDEPENDS_${PN} = "shared-mime-info" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch new file mode 100644 index 000000000..6b7fc5bec --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/0001-Fix-build-with-gcc-5.patch @@ -0,0 +1,35 @@ +From 20810fcf329c6e0b48b8e7602565ccc70c7ce62b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 10 May 2015 02:10:59 -0700 +Subject: [PATCH] Fix build with gcc 5 + +cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or +directory [-Werror=missing-include-dirs] +cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or +directory [-Werror=missing-include-dirs] +cc1: error: ../../gnome-panel/libpanel-applets-private: No such file or +directory [-Werror=missing-include-dirs] +cc1: some warnings being treated as errors + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + gnome-panel/libpanel-applet-private/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/gnome-panel/libpanel-applet-private/Makefile.am b/gnome-panel/libpanel-applet-private/Makefile.am +index f12dee8..d556f12 100644 +--- a/gnome-panel/libpanel-applet-private/Makefile.am ++++ b/gnome-panel/libpanel-applet-private/Makefile.am +@@ -8,7 +8,6 @@ AM_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir)/gnome-panel \ + -I$(top_builddir)/gnome-panel \ +- -I$(top_builddir)/gnome-panel/libpanel-applets-private \ + -I$(top_builddir)/gnome-panel/libpanel-util \ + -DDATADIR=\""$(datadir)"\" \ + -DPANEL_APPLETS_DIR=\"$(appletsdir)\" \ +-- +2.1.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch new file mode 100644 index 000000000..378e3e405 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch @@ -0,0 +1,36 @@ +From c65f1ae3472cfd4cd96fd376b7bbd95fba5eef0a Mon Sep 17 00:00:00 2001 +From: Vincent Untz +Date: Fri, 27 May 2011 17:00:14 +0000 +Subject: build: Fix build with --as-needed + +upstream-status: backport + +--- +diff --git a/applets/notification_area/Makefile.am b/applets/notification_area/Makefile.am +index 0afc6c5..9734536 100644 +--- a/applets/notification_area/Makefile.am ++++ b/applets/notification_area/Makefile.am +@@ -29,17 +29,17 @@ libtray_la_SOURCES = \ + NOTIFICATION_AREA_SOURCES = main.c main.h + + NOTIFICATION_AREA_LDADD = \ ++ libtray.la \ + ../../libpanel-applet/libpanel-applet-4.la \ + $(X_LIBS) \ + $(NOTIFICATION_AREA_LIBS) \ +- $(LIBPANEL_APPLET_LIBS) \ +- libtray.la ++ $(LIBPANEL_APPLET_LIBS) + + testtray_SOURCES = testtray.c + testtray_LDADD = \ ++ libtray.la \ + $(X_LIBS) \ +- $(NOTIFICATION_AREA_LIBS) \ +- libtray.la ++ $(NOTIFICATION_AREA_LIBS) + + if NOTIFICATION_AREA_INPROCESS + APPLET_IN_PROCESS = true +-- +cgit v0.9 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch new file mode 100644 index 000000000..de4cd8486 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch @@ -0,0 +1,22 @@ +--- /tmp/Makefile.am 2009-10-26 16:53:20.000000000 +0100 ++++ gnome-panel-2.28.0/gnome-panel/Makefile.am 2009-10-26 16:53:51.000000000 +0100 +@@ -43,7 +43,7 @@ + $(NULL) + + $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL) +- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl ++ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl + + BUILT_SOURCES = \ + $(CORBA_SRCLIST) \ +--- /tmp/Makefile.am 2009-10-26 16:54:17.000000000 +0100 ++++ gnome-panel-2.28.0/libpanel-applet/Makefile.am 2009-10-26 16:54:34.000000000 +0100 +@@ -45,7 +45,7 @@ + GNOME_Panel.h + + $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL) +- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl ++ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl + + noinst_PROGRAMS = test-bonobo-applet + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb new file mode 100644 index 000000000..fbcf76f6f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb @@ -0,0 +1,51 @@ +SUMMARY = "GNOME panel" +LICENSE = "GPLv2 & LGPLv2 & GFDL-1.1" + +BPN = "gnome-panel" +PR = "r1" + +PNBLACKLIST[gnome-panel3] ?= "CONFLICT: depends on libgweather3 which conflicts with libgweather" + +# conflicts with gnome-panel, because they provide the same package +# http://patches.openembedded.org/patch/43105/ +EXCLUDE_FROM_WORLD = "1" +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SECTION = "x11/gnome" + +DEPENDS = "gnome-doc-utils-native gtk+3 dconf gconf glib-2.0 gnome-desktop3 gtk+ pango libwnck3 gnome-menus cairo libgweather3 dbus-glib librsvg libcanberra" + +inherit gtk-doc gnome gettext pkgconfig + +SRC_URI += "file://as-needed.patch " + +SRC_URI[archive.md5sum] = "0f2f644dc4081b72f6df7a65282af7c6" +SRC_URI[archive.sha256sum] = "25db8ec026c4bf47f0ef5cc7e2712f2aad175bd7fb8e4952ef5f8b200f17f196" + +EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none" + +do_configure_prepend() { + gnome-doc-prepare --automake + sed -i -e s:help:: ${S}/Makefile.am +} + +pkg_postinst_${PN}_append () { + gconftool-2 --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults \ + --direct --load /etc/gconf/schemas/panel-default-setup.entries +} + +PACKAGES =+ "libpanel-applet" +FILES_libpanel-applet = "${libdir}/libpanel-applet-3.so.*" + +FILES_${PN} =+ "${datadir}/gnome* \ + ${datadir}/dbus-1 \ + ${datadir}/icons \ + ${datadir}/PolicyKit \ + ${libdir}/bonobo \ +" + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb new file mode 100644 index 000000000..9be2ec10a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb @@ -0,0 +1,45 @@ +SUMMARY = "GNOME panel" +LICENSE = "GPL-2.0 & LGPL-2.0 & GFDL-1.1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SECTION = "x11/gnome" + +PR = "r7" + +DEPENDS = "gnome-doc-utils-native gconf glib-2.0 gnome-desktop gtk+ \ + pango libwnck gnome-menus cairo libgweather dbus dbus-glib \ + librsvg libcanberra" +RDEPENDS_${PN} = "python" + +inherit gtk-doc gnome autotools-brokensep gettext pkgconfig gconf gobject-introspection + +SRCREV = "8292bd2b8a36df7eed3c760899400790cde68590" +SRC_URI = "git://git.gnome.org/gnome-panel;branch=gnome-2-32 \ + file://0001-Fix-build-with-gcc-5.patch \ + " + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[networkmanager] = "--enable-network-manager,--disable-network-manager,networkmanager" + +do_configure_prepend() { + gnome-doc-prepare --automake + sed -i -e s:help:: ${S}/Makefile.am + sed -i -e s:^#!@PYTHON@:#!/usr/bin/python: ${S}/gnome-panel/gnome-panel-add.in +} + +PACKAGES =+ "libpanel-applet" +FILES_libpanel-applet = "${libdir}/libpanel-applet-*.so.*" + +FILES_${PN} =+ "${datadir}/gnome* \ + ${datadir}/dbus-1 \ + ${datadir}/icons \ + ${datadir}/PolicyKit \ + ${libdir}/bonobo \ +" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch new file mode 100644 index 000000000..d6d49bbda --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch @@ -0,0 +1,37 @@ +From 3ed15a3c6ae4ab94c7e3af306644bb5d7f3fd1fa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 29 Apr 2013 13:08:10 +0200 +Subject: [PATCH] Makefile.am: don't build help/man +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +help crashes with: + +| 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; } +| unable to parse fr/gnome-power-manager.xml + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + Makefile.am | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 005b8a0..5b9e318 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -5,9 +5,7 @@ SUBDIRS = \ + src \ + po \ + docs \ +- man \ + data \ +- help \ + policy \ + tools + +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch new file mode 100644 index 000000000..f3db7ab6e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch @@ -0,0 +1,35 @@ +In cross environment we have to prepend the sysroot to the path found by +pkgconfig since the path returned from pkgconfig does not have sysroot prefixed +it ends up using the files from host system. Now usually people have gnome installed +so the build succeeds but if you dont have gnome installed on build host then +it wont find the files on host system and packages using gnome-doc-utils wont +compile. + +This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR +will be empty + +Upstream-Status: Pending + +Signed-off-by: Khem Raj + +Index: gnome-power-manager-2.32.0/gnome-doc-utils.make +=================================================================== +--- gnome-power-manager-2.32.0.orig/gnome-doc-utils.make 2010-01-27 08:28:31.000000000 -0800 ++++ gnome-power-manager-2.32.0/gnome-doc-utils.make 2011-09-25 16:16:04.914813800 -0700 +@@ -124,11 +124,11 @@ + + _xml2po ?= `which xml2po` + +-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl ++_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` ++_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` ++_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl ++_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl ++_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl + + if ENABLE_SK + _ENABLE_SK = true diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb new file mode 100644 index 000000000..87bd722bb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb @@ -0,0 +1,54 @@ +SUMMARY = "Power management daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +PR = "r4" + +DEPENDS = "glib-2.0 gtk+ gconf libgnome-keyring dbus dbus-glib libnotify libwnck cairo libunique xrandr virtual/libx11 libxrender libcanberra upower gnome-doc-utils" +RRECOMMENDS_${PN} += "gnome-keyring" + +inherit gnome + +SRC_URI += " \ + file://sysrooted-pkg-config.patch \ + file://0001-Makefile.am-don-t-build-help-man.patch \ +" + +SRC_URI[archive.md5sum] = "9a08e85dce3ffb90775f15e3bda4adda" +SRC_URI[archive.sha256sum] = "17fa301bf7e133285c0e054ae3be2b0f690c48f59b09f67e04d6ed339b330476" +GNOME_COMPRESS_TYPE="bz2" + +EXTRA_OECONF = " --disable-scrollkeeper \ + --disable-applets \ + --x-includes=${STAGING_INCDIR} \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-compile-warnings=no \ + ac_cv_header_X11_extensions_dpms_h=yes \ +" + +do_configure_append() { + # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror + for i in $(find ${B} -name "Makefile") ; do + sed -i -e s:-Werror::g $i + done + sed -e "s/libtool --/${TARGET_SYS}-libtool --/" -i ${B}/src/Makefile +} + +PACKAGES =+ "${PN}-applets" + +FILES_${PN}-applets = "${bindir}/*applet* \ + ${libdir}/bonobo/servers \ + ${datadir}/gnome-2.0/ui \ +" + +FILES_${PN} += "${datadir}/icons \ + ${datadir}/dbus-1 \ + ${datadir}/gnome/autostart \ +" + +FILES_${PN}-doc += "${datadir}/omf \ + ${datadir}/gnome/help \ +" + +# gnome-power-manager-2.32.0/src/gpm-manager.c:488:18: error: too many arguments to function 'notify_notification_new' +PNBLACKLIST[gnome-power-manager] ?= "BROKEN: not compatible with current libnotify" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch new file mode 100644 index 000000000..b09f8d200 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch @@ -0,0 +1,61 @@ +This patch fixes the build errors when building gnome-session for 64bit target using gcc 4.8 + +| gs-idle-monitor.c: In function 'handle_alarm_notify_event': +| gs-idle-monitor.c:196:9: error: format '%lld' expects argument of type 'long long int', but argument 5 has type 'gint64' [-Werror=format=] +| g_debug ("Watch %d fired, idle time = %lld", +| ^ +| gs-idle-monitor.c: In function '_xsync_alarm_set': +| gs-idle-monitor.c:453:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] +| g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld", +| ^ +| gs-idle-monitor.c:457:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] +| g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld", +| ^ +| gs-idle-monitor.c:464:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] +| g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld", +| ^ +| gs-idle-monitor.c:468:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] + +Upstream-Status: Unknown + +Signed-off-by: Khem Raj +Index: gnome-session-2.32.1/gnome-session/gs-idle-monitor.c +=================================================================== +--- gnome-session-2.32.1.orig/gnome-session/gs-idle-monitor.c 2010-11-17 03:17:04.000000000 -0800 ++++ gnome-session-2.32.1/gnome-session/gs-idle-monitor.c 2013-06-11 23:33:12.239960082 -0700 +@@ -193,7 +193,7 @@ + return; + } + +- g_debug ("Watch %d fired, idle time = %lld", ++ g_debug ("Watch %d fired, idle time = %" G_GINT64_FORMAT "", + watch->id, + _xsyncvalue_to_int64 (alarm_event->counter_value)); + +@@ -450,22 +450,22 @@ + + attr.trigger.test_type = XSyncPositiveTransition; + if (watch->xalarm_positive != None) { +- g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld", ++ g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%" G_GINT64_FORMAT "", + _xsyncvalue_to_int64 (attr.trigger.wait_value)); + XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_positive, flags, &attr); + } else { +- g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld", ++ g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%" G_GINT64_FORMAT "", + _xsyncvalue_to_int64 (attr.trigger.wait_value)); + watch->xalarm_positive = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr); + } + + attr.trigger.test_type = XSyncNegativeTransition; + if (watch->xalarm_negative != None) { +- g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld", ++ g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%" G_GINT64_FORMAT "", + _xsyncvalue_to_int64 (attr.trigger.wait_value)); + XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_negative, flags, &attr); + } else { +- g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%lld", ++ g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%" G_GINT64_FORMAT "", + _xsyncvalue_to_int64 (attr.trigger.wait_value)); + watch->xalarm_negative = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr); + } diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb new file mode 100644 index 000000000..c6fb75b8f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "Gnome session manager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PR = "r3" + +SECTION = "x11/gnome" +DEPENDS = "libxtst gtk+ glib-2.0 upower dbus-glib gconf pango gdk-pixbuf-native startup-notification" + +inherit gnome + +SRC_URI += "file://use_G_GINT64_FORMAT.patch" + +SRC_URI[archive.md5sum] = "222bad6b446cb19a6b9028ea24538002" +SRC_URI[archive.sha256sum] = "22d93ce433fcf9c7ce6b5f36dd81f64e692ea0e41faaa0f61159ddac28c3686a" +GNOME_COMPRESS_TYPE="bz2" + +EXTRA_OECONF = " --with-gtk=2.0 ac_cv_path_GCONF_SANITY_CHECK=set --disable-docbook-docs" + +do_configure_append() { + for i in $(find ${S} -name "Makefile") ; do + sed -i -e s:"GCONFTOOL = .*/usr/bin/gconftool-2":"GCONFTOOL = /usr/bin/gconftool-2":g $i + sed -i -e s:"GCONF_SANITY_CHECK = set":"GCONF_SANITY_CHECK = /usr/libexec/gconf-sanity-check-2":g $i + done +} + +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-ck-connector', '', d)}" +FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${datadir}/gnome ${libdir}/gnome-session/helpers" +FILES_${PN}-dbg += "${libexecdir}/gnome-session/helpers/.debug" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch new file mode 100644 index 000000000..6dd33f351 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/files/0001-Require-libnotify-0.6.0.patch @@ -0,0 +1,81 @@ +From e1ab570b0dce479ba235e5542ea07d1b5bafc4c9 Mon Sep 17 00:00:00 2001 +From: William Jon McCann +Date: Mon, 11 Oct 2010 23:35:45 -0400 +Subject: [PATCH] Require libnotify 0.6.0 + +Signed-off-by: Andreas Müller + +Upstream-Status: Backport + +--- + configure.ac | 2 +- + plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c | 8 ++------ + plugins/xrandr/gsd-xrandr-manager.c | 13 +++---------- + 3 files changed, 6 insertions(+), 17 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 8a90053..8624b2a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -54,7 +54,7 @@ GTK_REQUIRED_VERSION=2.91.0 + GCONF_REQUIRED_VERSION=2.6.1 + GIO_REQUIRED_VERSION=2.17.3 + GNOME_DESKTOP_REQUIRED_VERSION=2.29.92 +-LIBNOTIFY_REQUIRED_VERSION=0.4.3 ++LIBNOTIFY_REQUIRED_VERSION=0.6.1 + + EXTRA_COMPILE_WARNINGS(yes) + +diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c +index 9ca820a..f5964b9 100644 +--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c ++++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c +@@ -608,9 +608,7 @@ ax_slowkeys_warning_post_bubble (GsdA11yKeyboardManager *manager, + gsd_a11y_keyboard_manager_ensure_status_icon (manager); + manager->priv->notification = notify_notification_new (title, + message, +- "preferences-desktop-accessibility", +- NULL); +- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon); ++ "preferences-desktop-accessibility"); + notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000); + + notify_notification_add_action (manager->priv->notification, +@@ -747,9 +745,7 @@ ax_stickykeys_warning_post_bubble (GsdA11yKeyboardManager *manager, + gsd_a11y_keyboard_manager_ensure_status_icon (manager); + manager->priv->notification = notify_notification_new (title, + message, +- "preferences-desktop-accessibility", +- NULL); +- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon); ++ "preferences-desktop-accessibility"); + notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000); + + notify_notification_add_action (manager->priv->notification, +diff --git a/plugins/xrandr/gsd-xrandr-manager.c b/plugins/xrandr/gsd-xrandr-manager.c +index 02536a3..ef57d5b 100644 +--- a/plugins/xrandr/gsd-xrandr-manager.c ++++ b/plugins/xrandr/gsd-xrandr-manager.c +@@ -1084,16 +1084,9 @@ error_message (GsdXrandrManager *mgr, const char *primary_text, GError *error_to + + g_assert (error_to_display == NULL || secondary_text == NULL); + +- if (priv->status_icon) +- notification = notify_notification_new_with_status_icon (primary_text, +- error_to_display ? error_to_display->message : secondary_text, +- GSD_XRANDR_ICON_NAME, +- priv->status_icon); +- else +- notification = notify_notification_new (primary_text, +- error_to_display ? error_to_display->message : secondary_text, +- GSD_XRANDR_ICON_NAME, +- NULL); ++ notification = notify_notification_new (primary_text, ++ error_to_display ? error_to_display->message : secondary_text, ++ GSD_XRANDR_ICON_NAME); + + notify_notification_show (notification, NULL); /* NULL-GError */ + #else +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb new file mode 100644 index 000000000..393eb256e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb @@ -0,0 +1,42 @@ +SUMMARY = "GNOME settings daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +PR = "r7" + +DEPENDS = "intltool libxxf86misc libsndfile1 libxtst glib-2.0 polkit gtk+ gconf dbus-glib libnotify libgnomekbd libxklavier gnome-doc-utils gnome-desktop" + +inherit gnome + +SRC_URI = " \ + git://git.gnome.org/gnome-settings-daemon;branch=gnome-2-32 \ + file://0001-Require-libnotify-0.6.0.patch \ +" +SRCREV = "0160f6725cfb872e017f3958f108792c3b882872" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio glib-2.0 libcanberra" +PACKAGECONFIG[smartcard] = "--enable-smartcard-support,--disable-smartcard-support,nss" + +EXTRA_OECONF = " \ + --x-includes=${STAGING_INCDIR} \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-polkit \ +" + +do_configure_prepend() { + sed -i -e 's:-L$libdir::g' -e 's:-I$includedir::g' ${S}/configure.ac +} + +FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \ + ${datadir}/dbus-1/ \ + ${datadir}/icon* \ + ${datadir}/gnome-control-center \ + ${datadir}/xsession*" + +FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug" +FILES_${PN}-dev += "${libdir}/gnome-settings-daemon-2.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gnome-settings-daemon-2.0/*.a" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch new file mode 100644 index 000000000..ace1b0076 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch @@ -0,0 +1,101 @@ +From 8587e35af52f7773f62361be2e72ddf286a59185 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 15 May 2012 13:02:02 +0200 +Subject: [PATCH] Fix glib includes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Upstream-Status: unknown + + +Signed-off-by: Andreas Müller +--- + src/interface.h | 2 +- + src/load-graph.h | 2 +- + src/lsof.h | 2 +- + src/openfiles.h | 2 +- + src/procman_gnomesu.h | 2 +- + src/util.cpp | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/interface.h b/src/interface.h +index 4bda35a..b26b670 100644 +--- a/src/interface.h ++++ b/src/interface.h +@@ -20,7 +20,7 @@ + #ifndef _PROCMAN_INTERFACE_H_ + #define _PROCMAN_INTERFACE_H_ + +-#include ++#include + #include + #include "procman.h" + +diff --git a/src/load-graph.h b/src/load-graph.h +index 6111c78..6e7a599 100644 +--- a/src/load-graph.h ++++ b/src/load-graph.h +@@ -1,7 +1,7 @@ + #ifndef _PROCMAN_LOAD_GRAPH_H_ + #define _PROCMAN_LOAD_GRAPH_H_ + +-#include ++#include + #include + + enum +diff --git a/src/lsof.h b/src/lsof.h +index ad7f111..da420e2 100644 +--- a/src/lsof.h ++++ b/src/lsof.h +@@ -1,7 +1,7 @@ + #ifndef H_PROCMAN_LSOF_1161179202 + #define H_PROCMAN_LSOF_1161179202 + +-#include ++#include + #include "procman.h" + + void procman_lsof(ProcData *data); +diff --git a/src/openfiles.h b/src/openfiles.h +index 38b1cc8..a8b7b05 100644 +--- a/src/openfiles.h ++++ b/src/openfiles.h +@@ -1,7 +1,7 @@ + #ifndef _OPENFILES_H_ + #define _OPENFILES_H_ + +-#include ++#include + + #include "procman.h" + +diff --git a/src/procman_gnomesu.h b/src/procman_gnomesu.h +index fec2650..474ca9a 100644 +--- a/src/procman_gnomesu.h ++++ b/src/procman_gnomesu.h +@@ -1,7 +1,7 @@ + #ifndef H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917 + #define H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917 + +-#include ++#include + + gboolean + procman_gnomesu_create_root_password_dialog(const char * message); +diff --git a/src/util.cpp b/src/util.cpp +index 9b1c9f5..90073fe 100644 +--- a/src/util.cpp ++++ b/src/util.cpp +@@ -1,7 +1,7 @@ + #include + + #include +-#include ++#include + #include + + #include +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch new file mode 100644 index 000000000..7b6728102 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch @@ -0,0 +1,49 @@ +From acff719983aa1294148dc4a367c48957f5510eff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 17 May 2013 18:25:56 +0200 +Subject: [PATCH] src/procman.cpp: include main gtkmm.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +after update of gtkmm build failed with: + +In file included from /home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gtkmm-2.4/gtkmm/main.h:33:0, + from procman.cpp:26: +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:7: error: 'Value' is not a template +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected template-name before '<' token +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected '{' before '<' token +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected unqualified-id before '<' token +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:7: error: 'Value' is not a template +/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 +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:58: error: expected template-name before '<' token +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:7: error: 'Value' is not a template +/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 +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:51: error: expected template-name before '<' token +/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:274:7: error: 'Value' is not a template +/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 +<...> + +Upstream-Status: Backport + +Signed-off-by: Andreas Müller +--- + src/procman.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/procman.cpp b/src/procman.cpp +index b5c0d0a..d9b4b3f 100644 +--- a/src/procman.cpp ++++ b/src/procman.cpp +@@ -23,7 +23,7 @@ + + #include + +-#include ++#include + #include + #include + #include +-- +1.7.4.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch new file mode 100644 index 000000000..3c5169e78 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/files/Remove-pkg-config-check-for-gnome-icon-theme.patch @@ -0,0 +1,30 @@ +From 36fd2aa23e712f05f0cce4a1be3453fcf405d026 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 15 Sep 2015 16:28:18 +0300 +Subject: [PATCH] Remove pkg-config check for gnome-icon-theme + +Theme is not required for building, and the icons are provided by +adwaita-icon-theme anyway + +Upstream-Status: Inappropriate [Fixed in current versions] +Signed-off-by: Jussi Kukkonen +--- + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index 3600823..42262f2 100644 +--- a/configure.in ++++ b/configure.in +@@ -37,7 +37,7 @@ LIBXML_REQUIRED=2.0 + RSVG_REQUIRED=2.12 + DBUS_REQUIRED=0.7 + +-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) ++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) + + + AC_ARG_ENABLE(more-warnings, +-- +2.1.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb new file mode 100644 index 000000000..55778f789 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb @@ -0,0 +1,32 @@ +SUMMARY = "Gnome system monitor" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +SECTION = "x11/gnome" +PR = "r2" + +DEPENDS = "libgtop gtkmm glibmm gnome-doc-utils libwnck gtk+ dbus-glib librsvg intltool-native" + +inherit gnome +SRC_URI[archive.md5sum] = "3f0bca9b0ebc7a365466851cd580d167" +SRC_URI[archive.sha256sum] = "b628edfd39e3a6b374ce133f367d3568475eb4e981a367f4f9d62a9784e5ae59" +GNOME_COMPRESS_TYPE="bz2" +SRC_URI += " \ + file://0001-Fix-glib-includes.patch \ + file://0002-src-procman.cpp-include-main-gtkmm.h.patch \ + file://Remove-pkg-config-check-for-gnome-icon-theme.patch \ +" + +do_configure_prepend() { + sed -i -e s:help::g ${S}/Makefile.am +} + +RRECOMMENDS_${PN} = "adwaita-icon-theme" + +FILES_${PN} += "${datadir}/icons \ + ${datadir}/dbus-1 \ + ${datadir}/gnome/autostart \ +" + +FILES_${PN}-doc += "${datadir}/omf \ + ${datadir}/gnome/help " + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/0001-multiple-Makefile.am-remove-DG_DISABLE_DEPRECATED-to.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/0001-multiple-Makefile.am-remove-DG_DISABLE_DEPRECATED-to.patch new file mode 100644 index 000000000..383329970 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/0001-multiple-Makefile.am-remove-DG_DISABLE_DEPRECATED-to.patch @@ -0,0 +1,77 @@ +From 536e9b57cada4a9f92e073fdf01cdf1def435b6b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 7 May 2013 14:56:06 +0200 +Subject: [PATCH] multiple Makefile.am: remove -DG_DISABLE_DEPRECATED to fix + build with glib-2.36 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +--- + daemon/Makefile.am | 1 - + libgnomevfs/Makefile.am | 1 - + 2 files changed, 0 insertions(+), 2 deletions(-) + +Index: gnome-vfs-2.24.4/daemon/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/daemon/Makefile.am 2013-10-17 16:39:39.081024798 -0700 ++++ gnome-vfs-2.24.4/daemon/Makefile.am 2013-10-17 16:39:39.213024794 -0700 +@@ -8,7 +8,6 @@ + -D_LARGEFILE64_SOURCE \ + -D_POSIX_PTHREAD_SEMANTICS \ + -D_REENTRANT \ +- -DG_DISABLE_DEPRECATED \ + -DGNOME_VFS_PREFIX=\"$(prefix)\" \ + -DGNOME_VFS_DATADIR=\"$(datadir)\" \ + -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ +Index: gnome-vfs-2.24.4/libgnomevfs/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/libgnomevfs/Makefile.am 2013-10-17 16:39:39.081024798 -0700 ++++ gnome-vfs-2.24.4/libgnomevfs/Makefile.am 2013-10-17 16:39:39.213024794 -0700 +@@ -19,7 +19,6 @@ + -D_LARGEFILE64_SOURCE \ + -D_POSIX_PTHREAD_SEMANTICS \ + -D_REENTRANT \ +- -DG_DISABLE_DEPRECATED \ + -DGNOME_VFS_PREFIX=\"$(prefix)\" \ + -DGNOME_VFS_BINDIR=\"$(bindir)\" \ + -DGNOME_VFS_DATADIR=\"$(datadir)\" \ +Index: gnome-vfs-2.24.4/modules/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/modules/Makefile.am 2013-10-17 16:39:39.081024798 -0700 ++++ gnome-vfs-2.24.4/modules/Makefile.am 2013-10-17 16:39:39.213024794 -0700 +@@ -18,7 +18,6 @@ + -D_POSIX_PTHREAD_SEMANTICS \ + -D_REENTRANT \ + -DSSH_PROGRAM=\"$(SSH_PROGRAM)\" \ +- -DG_DISABLE_DEPRECATED \ + -DGNOME_VFS_PREFIX=\"$(prefix)\" \ + -DGNOME_VFS_DATADIR=\"$(datadir)\" \ + -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ +Index: gnome-vfs-2.24.4/programs/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/programs/Makefile.am 2013-10-17 16:39:39.081024798 -0700 ++++ gnome-vfs-2.24.4/programs/Makefile.am 2013-10-17 16:39:39.213024794 -0700 +@@ -4,8 +4,7 @@ + -I$(top_srcdir) \ + -I$(top_builddir) \ + $(TEST_CFLAGS) \ +- $(VFS_CFLAGS) \ +- -DG_DISABLE_DEPRECATED ++ $(VFS_CFLAGS) + + libraries = \ + $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ +Index: gnome-vfs-2.24.4/test/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/test/Makefile.am 2010-02-09 04:16:14.000000000 -0800 ++++ gnome-vfs-2.24.4/test/Makefile.am 2013-10-17 16:42:49.109019172 -0700 +@@ -6,7 +6,6 @@ + -I$(top_builddir)/libgnomevfs \ + $(TEST_CFLAGS) \ + $(VFS_CFLAGS) \ +- -DG_DISABLE_DEPRECATED \ + -DMODULES_PATH=\"$(libdir)/vfs/modules\" + + if OS_WIN32 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/do-not-use-srcdir-variable.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/do-not-use-srcdir-variable.patch new file mode 100644 index 000000000..30ca29b10 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/do-not-use-srcdir-variable.patch @@ -0,0 +1,22 @@ +Fixes errors with new autotools + +| automake: error: using '$(srcdir)' in TESTS is currently broken: '$(srcdir)/auto-test' +| autoreconf: automake failed with exit status: 1 +| ERROR: autoreconf execution failed. + +Upstream-Status: Not Submitted +Signed-off-by: Khem Raj + +Index: gnome-vfs-2.24.4/test/Makefile.am +=================================================================== +--- gnome-vfs-2.24.4.orig/test/Makefile.am 2013-10-17 16:43:36.677017764 -0700 ++++ gnome-vfs-2.24.4/test/Makefile.am 2013-10-17 16:48:47.369008566 -0700 +@@ -64,7 +64,7 @@ + test-async-cancel \ + test-escape \ + test-uri \ +- $(srcdir)/auto-test ++ auto-test + + libraries = \ + $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gconftool-lossage.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gconftool-lossage.patch new file mode 100644 index 000000000..0f52136e3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gconftool-lossage.patch @@ -0,0 +1,13 @@ +Upstream-Status: Inappropriate [configuration] + +--- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 ++++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 +@@ -154,7 +154,7 @@ + AC_PATH_PROG(GCONFTOOL, gconftool-2, no) + + if test x"$GCONFTOOL" = xno; then +- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) ++ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) + fi + + AM_GCONF_SOURCE_2 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gnome-vfs-no-kerberos.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gnome-vfs-no-kerberos.patch new file mode 100644 index 000000000..dabec32c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs-2.24.4/gnome-vfs-no-kerberos.patch @@ -0,0 +1,53 @@ +Upstream-Status: Inappropriate [configuration] + +removes kerberos completely to avoid conflicts with installed kerberos +--- configure.in.orig 2007-01-05 19:42:26.418541610 +0200 ++++ configure.in 2007-01-05 19:42:56.604261797 +0200 +@@ -436,47 +436,6 @@ + ]) + AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes) + AC_SUBST(CDDA_LIBS) +- +-dnl GSSAPI +-dnl Check for Kerberos installation +-have_gssapi=no +-AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) +- +-if test "x$KRB5_CONFIG" != "xnone"; then +- GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" +- GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" +- +- saved_CPPFLAGS="$CPPFLAGS" +- saved_LIBS="$LIBS" +- LIBS="$LIBS $GSSAPI_LIBS" +- CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" +- # MIT and Heimdal put gssapi.h in different places +- AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ +- AC_CHECK_FUNCS(gss_init_sec_context, [ +- AC_MSG_NOTICE([GSSAPI authentication support enabled]) +- AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) +- AC_CHECK_HEADERS(gssapi/gssapi_generic.h) +- have_gssapi=yes +- +- # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE +- AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, +- [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, +- [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise]) +- ], [ +- #ifdef HAVE_GSSAPI_GSSAPI_H +- #include +- #else +- #include +- #endif +- ]) +- ]) +- break +- ]) +- LIBS="$saved_LIBS" +- CPPFLAGS="$saved_CPPFLAGS" +-fi +-AC_SUBST(GSSAPI_LIBS) +-AC_SUBST(GSSAPI_CFLAGS) + + dnl ****************************** + dnl http-method (neon checks) diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb new file mode 100644 index 000000000..f9b02b1db --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb @@ -0,0 +1,60 @@ +SUMMARY = "a userspace virtual filesystem" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://libgnomevfs/gnome-vfs.h;endline=25;md5=17071e69707a8f42887d88413f2623cb \ + file://programs/gnomevfs-ls.c;endline=23;md5=678a2e8bedaef5818ccabe633840196b \ + file://daemon/vfs-daemon.c;endline=21;md5=5f2c61553fb16abb07fc9498ca03fe1f \ + file://modules/cdda-cddb.h;endline=22;md5=20ed324ca64907c366ecd7f22b8e0c54" + +DEPENDS = "libxml2 gconf dbus bzip2 gnome-mime-data zlib intltool-native" +RRECOMMENDS_${PN} = "gnome-vfs-plugin-file shared-mime-info" +# Some legacy packages will require gnome-mime-data to be installed, but use of +# it is deprecated. +PR = "r3" + +inherit gnome + +# This is to provide compatibility with the gnome-vfs DBus fork +RPROVIDES_${PN} = "gnome-vfs-plugin-dbus" + +SRC_URI += " \ + file://gconftool-lossage.patch \ + file://gnome-vfs-no-kerberos.patch;striplevel=0 \ + file://0001-multiple-Makefile.am-remove-DG_DISABLE_DEPRECATED-to.patch \ + file://do-not-use-srcdir-variable.patch \ +" + +SRC_URI[archive.md5sum] = "a05fab03eeef10a47dd156b758982f2e" +SRC_URI[archive.sha256sum] = "62de64b5b804eb04104ff98fcd6a8b7276d510a49fbd9c0feb568f8996444faa" +GNOME_COMPRESS_TYPE="bz2" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}" +PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[fam] = "--enable-fam,--disable-fam,gamin" + +EXTRA_OECONF = " --disable-hal \ + --disable-openssl \ + --disable-samba \ + ac_cv_lib_acl_acl_get_file=no \ + ac_cv_lib_sec_acl=no \ + gvfs_cv_HAVE_SOLARIS_ACLS=no \ + gvfs_cv_HAVE_POSIX_ACLS=no \ +" + +FILES_${PN} += "${libdir}/vfs ${datadir}/dbus-1/services" +FILES_${PN}-dbg += "${libdir}/gnome-vfs-2.0/modules/.debug" +FILES_${PN}-dev += "${libdir}/gnome-vfs-2.0/include/* ${libdir}/gnome-vfs-2.0/modules/*.la" +FILES_${PN}-staticdev += "${libdir}/gnome-vfs-2.0/modules/*.a" +FILES_${PN}-doc += "${datadir}/gtk-doc" + +PACKAGES_DYNAMIC += "^gnome-vfs-plugin-.*" + +python populate_packages_prepend () { + print d.getVar('FILES_gnome-vfs', 1) + + plugindir = d.expand('${libdir}/gnome-vfs-2.0/modules/') + do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch new file mode 100644 index 000000000..d7874e492 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch @@ -0,0 +1,28 @@ +From d2549d3ef08536be6d141524e3382fef07fea8bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 30 Apr 2013 19:48:27 +0200 +Subject: [PATCH] Makefile.am: do not build help +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 89f7ee4..31e11ab 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,4 +1,4 @@ +-SUBDIRS = src po help ++SUBDIRS = src po + + NULL = + +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb new file mode 100644 index 000000000..0ac2b20e4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "GNOME Terminal" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=5b51eba4ba4cafe64073227530c061ed" +DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte gnome-doc-utils intltool-native" +PR = "r1" + +inherit gnome + +SRC_URI += " \ + file://0001-Makefile.am-do-not-build-help.patch \ +" + +EXTRA_OECONF += "--disable-scrollkeeper" + +SRC_URI[archive.md5sum] = "74c4528f00067072c2bd867d1f8fe844" +SRC_URI[archive.sha256sum] = "2c7af2250698b9f9f53c6eaa93211c1118cf2c7e29cbbacfd1e8a6a10069e07a" +GNOME_COMPRESS_TYPE="bz2" + +RRECOMMENDS_${PN} += "gnome-common-schemas" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-cups-1.6.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-cups-1.6.patch new file mode 100644 index 000000000..dba60ca69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-cups-1.6.patch @@ -0,0 +1,288 @@ +Imported from gentoo: +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/libgnomecups/files/libgnomecups-0.2.3-cups-1.6.patch + +From ae783efde4fa69578651994505462f02b8639220 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Tue, 7 Aug 2012 06:53:09 -0400 +Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions + +CUPS 1.6 makes various structures private and introduces these ippGet +and ippSet functions for all of the fields in these structures. +http://www.cups.org/str.php?L3928 + +We define our own accessors when building against CUPS < 1.6. + +Based on work by Jiri Popelka at +https://bugzilla.gnome.org/show_bug.cgi?id=679759 +--- + libgnomecups/gnome-cups-printer.c | 48 +++++++++++++++++++++++++++++------- + libgnomecups/gnome-cups-queue.c | 43 +++++++++++++++++++++++++++------ + libgnomecups/gnome-cups-request.c | 44 ++++++++++++++++++++++++++++----- + 3 files changed, 110 insertions(+), 25 deletions(-) + +diff --git a/libgnomecups/gnome-cups-printer.c b/libgnomecups/gnome-cups-printer.c +index c924af0..f5e1ef7 100644 +--- a/libgnomecups/gnome-cups-printer.c ++++ b/libgnomecups/gnome-cups-printer.c +@@ -37,6 +37,34 @@ + + #define UPDATE_TIMEOUT 5000 + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++#define ippGetCount(attr) attr->num_values ++#define ippGetName(attr) attr->name ++#define ippGetInteger(attr, element) attr->values[element].integer ++#define ippGetString(attr, element, language) attr->values[element].string.text ++ ++static ipp_attribute_t * ++ippFirstAttribute(ipp_t *ipp) ++{ ++ if (!ipp) ++ return (NULL); ++ return (ipp->current = ipp->attrs); ++} ++ ++static ipp_attribute_t * ++ippNextAttribute(ipp_t *ipp) ++{ ++ if (!ipp || !ipp->current) ++ return (NULL); ++ return (ipp->current = ipp->current->next); ++} ++#endif ++ ++ + struct _GnomeCupsPPDFile { + char name[1]; + }; +@@ -173,9 +201,9 @@ map_reasons (GnomeCupsPrinter *printer, + printer->details->state_reasons = NULL; + + /* cf. RFC2911 4.4.12 */ +- for (i = 0; i < attr->num_values; i++) { ++ for (i = 0; i < ippGetCount (attr); i++) { + const char *p; +- const char *keyword = attr->values [i].string.text; ++ const char *keyword = ippGetString (attr, i, NULL); + + reason = g_new (GnomeCupsPrinterReason, 1); + +@@ -224,8 +252,8 @@ gnome_cups_printer_get_info (GnomeCupsPrinter *printer) + return printer->details->info; + } + +-#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if ((v) != attr->values[0].integer) { changed = TRUE; } (v) = attr->values[0].integer; }} +-#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if (!v || strcmp (v, attr->values[0].string.text)) { g_free (v); changed = TRUE; (v) = g_strdup (attr->values[0].string.text); }}} ++#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if ((v) != ippGetInteger (attr, 0)) { changed = TRUE; } (v) = ippGetInteger (attr, 0); }} ++#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if (!v || strcmp (v, ippGetString (attr, 0, NULL))) { g_free (v); changed = TRUE; (v) = g_strdup (ippGetString (attr, 0, NULL)); }}} + + static void + attributes_update_cb (guint id, +@@ -243,14 +271,14 @@ attributes_update_cb (guint id, + changed = FALSE; + + if (!error && response) { +- for (attr = response->attrs; attr != NULL; attr = attr->next) { +- if (!attr->name) { ++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) { ++ if (!ippGetName (attr)) { + continue; + } +- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !strcmp (attr->name, "attributes-charset")) { ++ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !strcmp (ippGetName (attr), "attributes-charset")) { + continue; + } +- if (!g_ascii_strcasecmp (attr->name, "printer-state-reasons")) { ++ if (!g_ascii_strcasecmp (ippGetName (attr), "printer-state-reasons")) { + map_reasons (printer, attr); + } + MAP_INT (printer->details->state, "printer-state"); +@@ -570,7 +598,7 @@ get_default (void) + + attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME); + if (attr) { +- name = g_strdup (attr->values[0].string.text); ++ name = g_strdup (ippGetString (attr, 0, NULL)); + } else { + name = NULL; + } +@@ -698,7 +726,7 @@ get_printer_names (void) + attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME); + while (attr) { + ret = g_list_prepend (ret, +- g_strdup (attr->values[0].string.text)); ++ g_strdup (ippGetString (attr, 0, NULL))); + + attr = ippFindNextAttribute (response, + "printer-name", +diff --git a/libgnomecups/gnome-cups-queue.c b/libgnomecups/gnome-cups-queue.c +index 9f98ed9..298db42 100644 +--- a/libgnomecups/gnome-cups-queue.c ++++ b/libgnomecups/gnome-cups-queue.c +@@ -15,6 +15,33 @@ + + #define UPDATE_TIMEOUT 3000 + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++#define ippGetName(attr) attr->name ++#define ippGetInteger(attr, element) attr->values[element].integer ++#define ippGetString(attr, element, language) attr->values[element].string.text ++ ++static ipp_attribute_t * ++ippFirstAttribute(ipp_t *ipp) ++{ ++ if (!ipp) ++ return (NULL); ++ return (ipp->current = ipp->attrs); ++} ++ ++static ipp_attribute_t * ++ippNextAttribute(ipp_t *ipp) ++{ ++ if (!ipp || !ipp->current) ++ return (NULL); ++ return (ipp->current = ipp->current->next); ++} ++#endif ++ ++ + struct _GnomeCupsQueueDetails { + char *queue_name; + GList *jobs; +@@ -199,8 +226,8 @@ finish_job (GnomeCupsJob *job) + job->size = job->size * 1024; + } + +-#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (attr->values[0].string.text);}} +-#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { (dest) = attr->values[0].integer; } } ++#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (ippGetString (attr, 0, NULL));}} ++#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { (dest) = ippGetInteger (attr, 0); } } + + static void + get_jobs_cb (guint id, +@@ -231,8 +258,8 @@ get_jobs_cb (guint id, + + if (response) { + job = g_new0 (GnomeCupsJob, 1); +- for (attr = response->attrs; attr != NULL; attr = attr->next) { +- if (attr->name == NULL) { ++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) { ++ if (ippGetName (attr) == NULL) { + if (job->name) { + finish_job (job); + jobs = g_list_prepend (jobs, job); +@@ -244,7 +271,7 @@ get_jobs_cb (guint id, + continue; + } + +- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) { ++ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) { + continue; + + } +@@ -355,8 +382,8 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue, + + if (response) { + job = g_new0 (GnomeCupsJob, 1); +- for (attr = response->attrs; attr != NULL; attr = attr->next) { +- if (attr->name == NULL) { ++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) { ++ if (ippGetName (attr) == NULL) { + if (job->name) { + finish_job (job); + } else { +@@ -366,7 +393,7 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue, + break; + } + +- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) { ++ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) { + continue; + } + +diff --git a/libgnomecups/gnome-cups-request.c b/libgnomecups/gnome-cups-request.c +index c94f623..13f0948 100644 +--- a/libgnomecups/gnome-cups-request.c ++++ b/libgnomecups/gnome-cups-request.c +@@ -19,6 +19,36 @@ + #define STOP_UNUSED_THREADS_TIMEOUT 60 + #define CLOSE_UNUSED_CONNECTIONS_TIMEOUT 30 + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++#define ippGetCount(attr) attr->num_values ++#define ippGetValueTag(attr) attr->value_tag ++#define ippGetName(attr) attr->name ++#define ippGetBoolean(attr, element) attr->values[element].boolean ++#define ippGetInteger(attr, element) attr->values[element].integer ++#define ippGetString(attr, element, language) attr->values[element].string.text ++ ++static ipp_attribute_t * ++ippFirstAttribute(ipp_t *ipp) ++{ ++ if (!ipp) ++ return (NULL); ++ return (ipp->current = ipp->attrs); ++} ++ ++static ipp_attribute_t * ++ippNextAttribute(ipp_t *ipp) ++{ ++ if (!ipp || !ipp->current) ++ return (NULL); ++ return (ipp->current = ipp->current->next); ++} ++#endif ++ ++ + typedef struct + { + GMutex *mutex; +@@ -276,14 +306,14 @@ dump_request (ipp_t const *req) + unsigned i; + ipp_attribute_t *attr; + +- for (attr = req->attrs; attr != NULL; attr = attr->next) { +- g_print ("%s", attr->name); +- for (i = 0 ; i < attr->num_values ; i++) { ++ for (attr = ippFirstAttribute (req); attr != NULL; attr = ippNextAttribute (req)) { ++ g_print ("%s", ippGetName (attr)); ++ for (i = 0 ; i < ippGetCount (attr) ; i++) { + g_print ("\t[%d] = ", i); +- switch (attr->value_tag & ~IPP_TAG_COPY) { ++ switch (ippGetValueTag (attr) & ~IPP_TAG_COPY) { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- g_print ("%d\n", attr->values[i].integer); ++ g_print ("%d\n", ippGetInteger (attr, i)); + break; + + case IPP_TAG_STRING: +@@ -294,11 +324,11 @@ dump_request (ipp_t const *req) + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: + case IPP_TAG_MIMETYPE: +- g_print ("'%s'\n", attr->values[i].string.text); ++ g_print ("'%s'\n", ippGetString (attr, i, NULL)); + break; + + case IPP_TAG_BOOLEAN: +- g_print ("%s\n", (int)attr->values[i].boolean ? "true" : "false"); ++ g_print ("%s\n", (int)ippGetBoolean (attr, i) ? "true" : "false"); + break; + + default: +-- +1.7.8.6 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-glib.h.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-glib.h.patch new file mode 100644 index 000000000..c7b616578 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups/libgnomecups-0.2.3-glib.h.patch @@ -0,0 +1,42 @@ +Imported from gentoo: + +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/libgnomecups/files/libgnomecups-0.2.3-glib.h.patch + +From d84eee9450b3b6f6155074915efc61bedcc8d446 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Sun, 27 Nov 2011 21:36:41 +0100 +Subject: [PATCH] Fix: Only glib.h can be included + +--- + libgnomecups/gnome-cups-i18n.c | 2 +- + libgnomecups/gnome-cups-init.h | 3 +-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/libgnomecups/gnome-cups-i18n.c b/libgnomecups/gnome-cups-i18n.c +index 8987c5c..127756d 100644 +--- a/libgnomecups/gnome-cups-i18n.c ++++ b/libgnomecups/gnome-cups-i18n.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include + #include "gnome-cups-i18n.h" + + #ifdef ENABLE_NLS +diff --git a/libgnomecups/gnome-cups-init.h b/libgnomecups/gnome-cups-init.h +index 22b682a..c4600fc 100644 +--- a/libgnomecups/gnome-cups-init.h ++++ b/libgnomecups/gnome-cups-init.h +@@ -1,8 +1,7 @@ + #ifndef GNOME_CUPS_INIT + #define GNOME_CUPS_INIT + +-#include +-#include ++#include + + G_BEGIN_DECLS + +-- +1.7.7 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb new file mode 100644 index 000000000..6bb6816cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb @@ -0,0 +1,23 @@ +DESCRIPTION="Gnome Cups Manager" +LICENSE="GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS="glib-2.0 gtk+ pango cups intltool libgnomeui" + +PR = "r2" + +inherit gnomebase pkgconfig + +do_compile_append () { + cp libgnomecups-1.0.pc libgnomecups-1.0.pc.old + sed 's:${STAGING_DIR_HOST}::' < libgnomecups-1.0.pc.old > libgnomecups-1.0.pc +} + +SRC_URI += "\ + file://libgnomecups-0.2.3-glib.h.patch \ + file://libgnomecups-0.2.3-cups-1.6.patch \ +" + +SRC_URI[archive.md5sum] = "dc4920c15c9f886f73ea74fbff0ae48b" +SRC_URI[archive.sha256sum] = "e130e80942b386de19a288a4c194ff3dbe9140315b31e982058c8bffbb6a1d29" +GNOME_COMPRESS_TYPE="bz2" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch new file mode 100644 index 000000000..174985a7e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch @@ -0,0 +1,37 @@ +From ed31fd89f4c77d89390774d29427898a85b25ab1 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 1 Aug 2014 13:58:36 +0200 +Subject: [PATCH] configure: use pkgconfig for freetype + +Upstream-status: Pending +Signed-off-by: Koen Kooi +--- + configure.in | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/configure.in b/configure.in +index 729278d..e569429 100644 +--- a/configure.in ++++ b/configure.in +@@ -164,13 +164,11 @@ dnl Checking for freetype2 + dnl ================================= + FREETYPE_LIBS= + FREETYPE_CFLAGS= +-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) +-if test "x$FREETYPE_CONFIG" = "xno" ; then +- AC_MSG_ERROR(You need FreeType2 (freetype-devel v 2.x package) for this version of libgnomeprint) +-else +- FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` +- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` +-fi ++PKG_CHECK_MODULES(FREETYPE2, freetype2, ++ FREETYPE_CFLAGS="$CFLAGS $FREETYPE2_CFLAGS" ++ FREETYPE_LIBS="$LIBS $FREETYPE2_LIBS", ++ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)]) ++) + + libgnomeprint_save_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS $FREETYPE_LIBS" +-- +1.9.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch new file mode 100644 index 000000000..29d410a0a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/bison3-support.patch @@ -0,0 +1,30 @@ +Index: libgnomeprint-2.18.8/libgnomeprint/grammar.y +=================================================================== +--- libgnomeprint-2.18.8.orig/libgnomeprint/grammar.y ++++ libgnomeprint-2.18.8/libgnomeprint/grammar.y +@@ -99,7 +99,7 @@ gnome_print_filter_parse_prop (GnomePrin + } + + static int yylex (void *lvalp); +-static int yyerror (const char *s); ++static int yyerror (graph_t *g, const char *s); + %} + + %union { +@@ -117,6 +117,7 @@ static int yyerror (const char *s); + %type

    pool + + %pure_parser ++%parse-param { graph_t *graph } + + %start graph + %% +@@ -185,7 +186,7 @@ graph: filter { + %% + + static int +-yyerror (const char *s) ++yyerror (graph_t *g, const char *s) + { + return -1; + } diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch new file mode 100644 index 000000000..53235a12d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch @@ -0,0 +1,11 @@ +diff -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 +--- libgnomeprint-2.18.7.orig/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2009-04-19 19:45:36.000000000 +0200 ++++ libgnomeprint-2.18.7/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2012-12-23 12:34:52.058643537 +0100 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + + #include diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch new file mode 100644 index 000000000..7a27ecd23 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch @@ -0,0 +1,38 @@ +Use proper method to include freetype headers + +FreeType wants to use these special macros to include its APIs +so be it. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +Index: libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c +=================================================================== +--- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-font-face.c ++++ libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c +@@ -36,7 +36,9 @@ + #include + #include + +-#include ++#include ++#include FT_FREETYPE_H ++ + + #include + #include +Index: libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c +=================================================================== +--- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-rfont.c ++++ libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c +@@ -28,8 +28,8 @@ + + #include + #include FT_FREETYPE_H +-#include +-#include ++#include FT_GLYPH_H ++#include FT_BBOX_H + #include + #include + #include diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb new file mode 100644 index 000000000..9d41914b2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb @@ -0,0 +1,26 @@ +LICENSE = "GPLv2" +SECTION = "x11/gnome/libs" + +DEPENDS = "bison-native flex-native libxml2 libgnomecups glib-2.0 pango libart-lgpl fontconfig popt gnome-common freetype" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit gnomebase + +SRC_URI += "file://fix.includes.patch \ + file://freetype.patch \ + file://0001-configure-use-pkgconfig-for-freetype.patch \ + file://bison3-support.patch \ + " +SRC_URI[archive.md5sum] = "63b05ffb5386e131487c6af30f4c56ac" +SRC_URI[archive.sha256sum] = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN}-dbg += "\ + ${libdir}/${PN}/${PV}/modules/.debug \ + ${libdir}/${PN}/${PV}/modules/*/.debug \ +" +FILES_${PN}-staticdev += "\ + ${libdir}/${PN}/${PV}/modules/*.a \ + ${libdir}/${PN}/${PV}/modules/*/*.a \ +" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch new file mode 100644 index 000000000..914d2ccf9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/0001-configure.in-drop-introspection-macros-replace-them-.patch @@ -0,0 +1,84 @@ +From de5f0a535d6ea1932d2c7de53bd33510c8682ee7 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 22 Feb 2016 16:34:03 +0200 +Subject: [PATCH] configure.in: drop introspection macros, replace them with a + standard one + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + configure.in | 57 +-------------------------------------------------------- + 1 file changed, 1 insertion(+), 56 deletions(-) + +diff --git a/configure.in b/configure.in +index 8e1aa37..3086503 100644 +--- a/configure.in ++++ b/configure.in +@@ -934,63 +934,8 @@ AC_SUBST(MONO_CFLAGS) + AC_SUBST(MONO_LIBS) + ]) + +-# GObject Introspection +-GIR_REQ=1.0.0 +-AC_ARG_ENABLE(introspection, +- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], +- [Enable introspection for this build]),, +- [enable_introspection=no]) +- +-AC_MSG_CHECKING([for gobject-introspection]) +- +-dnl presence/version checking +-AS_CASE([$enable_introspection], +-[no], [ +- found_introspection="no (disabled, use --enable-introspection to enable)" +-], +-[yes],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0],, +- AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], +- found_introspection=yes, +- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) +-], +-[auto],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], found_introspection=yes, found_introspection=no) +-dnl Canonicalize enable_introspection +-enable_introspection=$found_introspection +-], +-[ +- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) +-]) ++GOBJECT_INTROSPECTION_CHECK([1.46.0]) + +-AC_MSG_RESULT([$found_introspection]) +- +-INTROSPECTION_SCANNER= +-INTROSPECTION_COMPILER= +-INTROSPECTION_GENERATE= +-INTROSPECTION_GIRDIR= +-INTROSPECTION_TYPELIBDIR= +-if test "x$found_introspection" = "xyes"; then +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` +- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection +-fi +-AC_SUBST(INTROSPECTION_SCANNER) +-AC_SUBST(INTROSPECTION_COMPILER) +-AC_SUBST(INTROSPECTION_GENERATE) +-AC_SUBST(INTROSPECTION_GIRDIR) +-AC_SUBST(INTROSPECTION_TYPELIBDIR) +-AC_SUBST(INTROSPECTION_CFLAGS) +-AC_SUBST(INTROSPECTION_LIBS) +-AC_SUBST(INTROSPECTION_MAKEFILE) +- +-AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") + dnl we need to change the install directories for distcheck + AC_ARG_WITH([gir-dir], + AS_HELP_STRING( +-- +2.7.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch new file mode 100644 index 000000000..cc81b1fc0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch @@ -0,0 +1,15 @@ +Index: gnumeric-1.12.0/test/Makefile.am +=================================================================== +--- gnumeric-1.12.0.orig/test/Makefile.am 2011-05-17 17:54:24.000000000 -0700 ++++ gnumeric-1.12.0/test/Makefile.am 2013-10-17 20:28:19.920618596 -0700 +@@ -25,7 +25,9 @@ + # + # 90xx: Misc stuff. + +-TESTS = $(sort $(wildcard $(srcdir)/t[0-9][0-9][0-9][0-9]-*.pl)) ++TESTS_EXTENSIONS=.pl ++TESTS = @auto_find_tests@ ++ + SUPPS = common.supp commondots.supp gui.supp t8003-valgrind-pdf.supp + + import-db: diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb new file mode 100644 index 000000000..3d3118a92 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb @@ -0,0 +1,47 @@ +LICENSE = "GPLv2 | GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=be0de417af78dd340558810d1ced52e6" +SECTION = "x11/utils" +S = "${WORKDIR}/gnumeric-${PV}" +DEPENDS = "gdk-pixbuf libgsf gtk+3 libxml2 libglade libart-lgpl intltool-native libgnomecanvas libgnomeprint libbonoboui orbit2-native goffice" +SUMMARY = "Gnumeric spreadsheet for GNOME" + +GNOME_COMPRESS_TYPE = "xz" + +inherit gnome pythonnative gobject-introspection + +SRC_URI += "file://do-not-use-srcdir.patch \ + file://0001-configure.in-drop-introspection-macros-replace-them-.patch" + +SRC_URI[archive.md5sum] = "3fd87cca95334b5d8ac922989670fe27" +SRC_URI[archive.sha256sum] = "037b53d909e5d1454b2afda8c4fb1e7838e260343e36d4e36245f4a5d0e04111" + + +EXTRA_OECONF=" --without-perl " + +PACKAGES_DYNAMIC += "gnumeric-plugin-*" +PACKAGES += "libspreadsheet libspreadsheet-dev gnumeric-goffice gnumeric-goffice-dbg" + +FILES_${PN}-dbg += "${libdir}/gnumeric/${PV}/plugins/*/.debug" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig" +FILES_${PN}-staticdev = "${libdir}/libspreadsheet.la" +FILES_libspreadsheet = "${libdir}/libspreadsheet-${PV}.so" +FILES_libspreadsheet-dev = "${libdir}/libspreadsheet.so" +FILES_gnumeric-goffice-dbg += "${libdir}/goffice/*/plugins/gnumeric/.debug" +FILES_gnumeric-goffice = "${libdir}/goffice/*/plugins/gnumeric/*" + +# This hack works around the problem mentioned here: +# https://mail.gnome.org/archives/gnumeric-list/2010-February/msg00006.html +do_install_prepend() { + sed -i ${B}/doc/C/Makefile -e 's/\tfor file in $(omffile); do/\t-for file in $(omffile); do/' +} + +python populate_packages_prepend () { + gnumeric_libdir = bb.data.expand('${libdir}/gnumeric/${PV}/plugins', d) + + do_split_packages(d, gnumeric_libdir, '^(.*)/.*$', + output_pattern='gnumeric-plugin-%s', + description='Gnumeric plugin %s', + extra_depends='', + recursive=True, + prepend=True) +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/files/parallel.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/files/parallel.patch new file mode 100644 index 000000000..20ce5c5aa --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/files/parallel.patch @@ -0,0 +1,158 @@ +From 34969cde1dcb7740b4a7c3b6e3d04d481e5980b5 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 31 Jul 2012 17:26:27 +0100 +Subject: [PATCH] build: Fix parallel build problems with enum generation + +This is a backport from a patch against master. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=680925] +--- + extensions/file_tools/Makefile.am | 10 ++++------ + extensions/importer/Makefile.am | 10 ++++------ + extensions/pixbuf_savers/Makefile.am | 10 ++++------ + gthumb/Makefile.am | 10 ++++------ + 4 files changed, 16 insertions(+), 24 deletions(-) + +diff --git a/extensions/file_tools/Makefile.am b/extensions/file_tools/Makefile.am +index 7785eff..d70a8a5 100644 +--- a/extensions/file_tools/Makefile.am ++++ b/extensions/file_tools/Makefile.am +@@ -24,17 +24,16 @@ HEADER_FILES = \ + gth-file-tool-undo.h \ + preferences.h + +-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) ++enum-types.h: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) enum-types.h ) + +-enum-types.c: $(HEADER_FILES) enum-types.h ++enum-types.c: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ +@@ -42,8 +41,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) enum-types.c ) + + libfile_tools_la_SOURCES = \ + $(ENUM_TYPES) \ +diff --git a/extensions/importer/Makefile.am b/extensions/importer/Makefile.am +index 29e7f2c..07c1eba 100644 +--- a/extensions/importer/Makefile.am ++++ b/extensions/importer/Makefile.am +@@ -14,17 +14,16 @@ HEADER_FILES = \ + preferences.h \ + utils.h + +-gth-import-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) ++gth-import-enum-types.h: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) gth-import-enum-types.h || cp xgen-$(@F) gth-import-enum-types.h ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) gth-import-enum-types.h ) + +-gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h ++gth-import-enum-types.c: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ +@@ -32,8 +31,7 @@ gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) gth-import-enum-types.c || cp xgen-$(@F) gth-import-enum-types.c ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) gth-import-enum-types.c ) + + libimporter_la_SOURCES = \ + $(ENUM_TYPES) \ +diff --git a/extensions/pixbuf_savers/Makefile.am b/extensions/pixbuf_savers/Makefile.am +index bfe9f34..4764c32 100644 +--- a/extensions/pixbuf_savers/Makefile.am ++++ b/extensions/pixbuf_savers/Makefile.am +@@ -10,17 +10,16 @@ ENUM_TYPES = \ + HEADER_FILES = \ + preferences.h + +-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) ++enum-types.h: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) enum-types.h ) + +-enum-types.c: $(HEADER_FILES) enum-types.h ++enum-types.c: $(HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ +@@ -28,8 +27,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) enum-types.c ) + + libpixbuf_savers_la_SOURCES = \ + $(ENUM_TYPES) \ +diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am +index e9e385e..2f14e03 100644 +--- a/gthumb/Makefile.am ++++ b/gthumb/Makefile.am +@@ -296,17 +296,16 @@ gthumb_CFLAGS = \ + -DGTHUMB_EXTENSIONS_DIR=\"$(extensions_dir)\" \ + $(NULL) + +-gth-enum-types.h: $(PUBLIC_HEADER_FILES) $(GLIB_MKENUMS) ++gth-enum-types.h: $(PUBLIC_HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#ifndef GTH_ENUM_TYPES_H\n#define GTH_ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* GTH_ENUM_TYPES_H */" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) gth-enum-types.h || cp xgen-$(@F) gth-enum-types.h ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) gth-enum-types.h ) + +-gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h ++gth-enum-types.c: $(PUBLIC_HEADER_FILES) + $(AM_V_GEN)( $(GLIB_MKENUMS) \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ +@@ -314,8 +313,7 @@ gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ + $^> xgen-$(@F) \ +- && (cmp -s xgen-$(@F) gth-enum-types.c || cp xgen-$(@F) gth-enum-types.c ) \ +- && rm -f xgen-$(@F) ) ++ && mv -f xgen-$(@F) gth-enum-types.c ) + + gth-marshal.h: gth-marshal.list $(GLIB_GENMARSHAL) + $(AM_V_GEN)( $(GLIB_GENMARSHAL) $(srcdir)/gth-marshal.list --header --prefix=gth_marshal > $@ ) +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb new file mode 100644 index 000000000..0bf1321de --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb @@ -0,0 +1,28 @@ +SUMMARY = "gThumb is an image viewer and browser for the GNOME Desktop" +SECTION = "x11/gnome" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf libpng gstreamer jpeg tiff gst-plugins-base" + +PR = "r4" + +EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup --disable-exiv2 --disable-clutter" + +inherit gnome pkgconfig + +SRC_URI[archive.md5sum] = "97fc13221b0c5d80c27a2e25a3a3ac6f" +SRC_URI[archive.sha256sum] = "cf809695230ab8892a078be454a42ade865754c72ec1da7c3d74d4310de54f1d" +GNOME_COMPRESS_TYPE="bz2" + +SRC_URI += "file://parallel.patch" + +do_install_append () { + rm -f ${D}${libdir}/${BPN}/extensions/*.a +} + +FILES_${PN} += "${datadir}/icons" +FILES_${PN} += "${libdir}/${BPN}/extensions/*.so \ + ${libdir}/${BPN}/extensions/*.extension" +FILES_${PN}-dev += "${libdir}/${BPN}/extensions/*.la" +FILES_${PN}-dbg += "${libdir}/${BPN}/extensions/.debug/" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4 b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4 new file mode 100644 index 000000000..53518fb2e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4 @@ -0,0 +1,90 @@ +## this one is commonly used with AM_PATH_PYTHONDIR ... +dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]) +dnl Check if a module containing a given symbol is visible to python. +AC_DEFUN(AM_CHECK_PYMOD, +[AC_REQUIRE([AM_PATH_PYTHON]) +py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` +AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1) +AC_CACHE_VAL(py_cv_mod_$py_mod_var, [ +ifelse([$2],[], [prog=" +import sys +try: + import $1 +except ImportError: + sys.exit(1) +except: + sys.exit(0) +sys.exit(0)"], [prog=" +import $1 +$1.$2"]) +if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC + then + eval "py_cv_mod_$py_mod_var=yes" + else + eval "py_cv_mod_$py_mod_var=no" + fi +]) +py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"` +if test "x$py_val" != xno; then + AC_MSG_RESULT(yes) + ifelse([$3], [],, [$3 +])dnl +else + AC_MSG_RESULT(no) + ifelse([$4], [],, [$4 +])dnl +fi +]) + +dnl a macro to check for ability to create python extensions +dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_INCLUDES +AC_DEFUN([AM_CHECK_PYTHON_HEADERS], +[AC_REQUIRE([AM_PATH_PYTHON]) +AC_MSG_CHECKING(for headers required to compile python extensions) +dnl deduce PYTHON_INCLUDES +AC_ARG_WITH(python-includes, + [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval) +if test x$py_exec_prefix != x; then +PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}" +else +py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` +PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +fi +fi +AC_SUBST(PYTHON_INCLUDES) +dnl check if the headers exist: +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +AC_TRY_CPP([#include ],dnl +[AC_MSG_RESULT(found) +$1],dnl +[AC_MSG_RESULT(not found) +$2]) +CPPFLAGS="$save_CPPFLAGS" +]) + +dnl +dnl JH_ADD_CFLAG(FLAG) +dnl checks whether the C compiler supports the given flag, and if so, adds +dnl it to $CFLAGS. If the flag is already present in the list, then the +dnl check is not performed. +AC_DEFUN([JH_ADD_CFLAG], +[ +case " $CFLAGS " in +*@<:@\ \ @:>@$1@<:@\ \ @:>@*) + ;; +*) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_MSG_CHECKING([whether [$]CC understands $1]) + AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no]) + AC_MSG_RESULT($jh_has_option) + if test $jh_has_option = no; then + CFLAGS="$save_CFLAGS" + fi + ;; +esac]) diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4 b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4 new file mode 100644 index 000000000..3ec41666b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4 @@ -0,0 +1,53 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + dnl for overriding the documentation installation directory + AC_ARG_WITH(html-dir, + AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST(HTML_DIR) + + dnl enable/disable documentation building + AC_ARG_ENABLE(gtk-doc, + AC_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [default=no]]),, + enable_gtk_doc=no) + + have_gtk_doc=no + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + if test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists gtk-doc; then + have_gtk_doc=yes + fi + + dnl do we want to do a version check? +ifelse([$1],[],, + [gtk_doc_min_version=$1 + if test "$have_gtk_doc" = yes; then + AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version]) + if $PKG_CONFIG --atleast-version $gtk_doc_min_version gtk-doc; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + have_gtk_doc=no + fi + fi +]) + if test x$enable_gtk_doc = xyes; then + if test "$have_gtk_doc" != yes; then + enable_gtk_doc=no + fi + fi + + AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) + AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL") +]) diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make new file mode 100644 index 000000000..354ffb7c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make @@ -0,0 +1,173 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + -installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(srcdir)/html/index.sgml' ; \ + $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ + which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ + fi + + +uninstall-local: + rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb new file mode 100644 index 000000000..c745e345a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb @@ -0,0 +1,28 @@ +SUMMARY = "Portable C library for multiline text editing" +HOMEPAGE = "http://projects.gnome.org/gtksourceview/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "gtk+ libxml2" + +PNAME = "gtksourceview" + +S = "${WORKDIR}/${PNAME}-${PV}" + +inherit gnomebase lib_package gettext + +# overrule SRC_URI from gnome.conf +SRC_URI = "${GNOME_MIRROR}/${PNAME}/${@gnome_verdir("${PV}")}/${PNAME}-${PV}.tar.bz2;name=archive \ + file://gtk-doc.make \ +" +SRC_URI[archive.md5sum] = "1219ad1694df136f126507466aeb41aa" +SRC_URI[archive.sha256sum] = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e" + +do_configure_prepend() { + cp ${WORKDIR}/gtk-doc.make ${S}/ + sed -i -e s:docs::g ${S}/Makefile.am + echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make +} + +FILES_${PN} += " ${datadir}/gtksourceview-2.0" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch new file mode 100644 index 000000000..7ec950558 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/files/0001-Add-support-for-libsystemd.patch @@ -0,0 +1,49 @@ +From 39be8b277c666db21965d54d5b72418ce57a450b Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 19 May 2015 23:38:11 +0200 +Subject: [PATCH] Add support for libsystemd + +In systemd v209 the various libsystemd-* libraries were merged into a +single libsystemd library. So first check for this library and fall back +to libsystemd-login if not found. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=749603 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779766 + +Upstream-Status: Applied +--- + configure.ac | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ee3475d..bd5c043 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -264,18 +264,20 @@ dnl ********************************** + dnl *** Check for libsystemd-login *** + dnl ********************************** + +-AC_ARG_ENABLE(libsystemd_login, AS_HELP_STRING([--disable-libsystemd-login],[build without liblibsystemd-login])) ++AC_ARG_ENABLE(libsystemd_login, AS_HELP_STRING([--disable-libsystemd-login],[build without libsystemd-login])) + msg_libsystemd_login=no + LIBSYSTEMD_LOGIN_LIBS= + LIBSYSTEMD_LOGIN_CFLAGS= + LIBSYSTEMD_LOGIN_REQUIRED=44 + + if test "x$enable_libsystemd_login" != "xno"; then +- PKG_CHECK_EXISTS([libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED], msg_libsystemd_login=yes) ++ PKG_CHECK_EXISTS([libsystemd], [msg_libsystemd_login=yes], ++ [PKG_CHECK_EXISTS([libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED], msg_libsystemd_login=yes)]) + + if test "x$msg_libsystemd_login" = "xyes"; then +- PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED]) +- AC_DEFINE(HAVE_LIBSYSTEMD_LOGIN, 1, [Define to 1 if liblibsystemd_login is available]) ++ PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd],, ++ [PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],[libsystemd-login >= $LIBSYSTEMD_LOGIN_REQUIRED])]) ++ AC_DEFINE(HAVE_LIBSYSTEMD_LOGIN, 1, [Define to 1 if libsystemd_login is available]) + fi + fi + +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb new file mode 100644 index 000000000..aa6207019 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.24.2.bb @@ -0,0 +1,62 @@ +DESCRIPTION = "gvfs is a userspace virtual filesystem" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" + +inherit gnome + +DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2" + +SRC_URI[archive.md5sum] = "83ed317eb2a5264715d4273e90a5cfd8" +SRC_URI[archive.sha256sum] = "0949eaedd1df7175f8d7ee2700df8210d1f854b8ee37d963bc32ee7091eeb228" +SRC_URI += " \ + file://0001-Add-support-for-libsystemd.patch \ +" + +EXTRA_OECONF = " \ + --disable-gdu \ + --enable-udisks2 \ + --disable-documentation \ + --with-archive-includes=${STAGING_INCDIR} \ + --with-archive-libs=${STAGING_LIBDIR} \ +" + +PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" + +FILES_${PN} += " \ + ${datadir}/glib-2.0 \ + ${datadir}/GConf \ + ${datadir}/dbus-1/services \ + ${libdir}/gio/modules/*.so \ + ${libdir}/tmpfiles.d \ +" +RDEPENDS_${PN} = "udisks2" + +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" +FILES_${PN}-dev += "${libdir}/gio/modules/*.la" + +FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" +FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" +FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" + +RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" + +PACKAGES += "${PN}-bash-completion" +FILES_${PN}-bash-completion = "${datadir}/bash-completion" +RDEPENDS_${PN}-bash-completion = "bash-completion" + +PACKAGECONFIG ?= "libgphoto2" + +PACKAGECONFIG[afc] = "--enable-afc, --disable-afc, libimobiledevice libplist" +PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive" +PACKAGECONFIG[avahi] = "--enable-avahi, --disable-avahi, avahi" +PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+3" +PACKAGECONFIG[http] = "--enable-http, --disable-http, libsoup-2.4" +PACKAGECONFIG[libmtp] = "--enable-libmtp, --disable-libmtp, libmtp" +PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2" +PACKAGECONFIG[samba] = "--enable-samba, --disable-samba, samba" + +# needs meta-filesystems +PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse" + +# libcdio-paranoia recipe doesn't exist yet +PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb new file mode 100644 index 000000000..6e1997f77 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb @@ -0,0 +1,28 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SECTION = "x11/gnome/libs" +DEPENDS = "libxml2 gconf libsoup-2.4 gtk+3" + +PNBLACKLIST[libgweather3] ?= "CONFLICT: 876 files are conflicting with libgweather" +# e.g. sysroots/qemux86-64/usr/share/libgweather/locations.dtd +# sysroots/qemux86-64/usr/share/libgweather/Locations.zh_TW.xml + +BPN = "libgweather" + +inherit gnome +SRC_URI[archive.md5sum] = "f1a96c6f19c9a0bc6b4e12acc9a8a85d" +SRC_URI[archive.sha256sum] = "9041526fa0466b99dae5cf06c2cc70376f25531eec5d58b1e1378acfb302410c" + +do_configure_prepend() { + sed -i -e 's: doc : :g' ${S}/Makefile.am +} + +FILES_${PN} += "${datadir}/gnome* \ + ${datadir}/icons" + +PACKAGES =+ "${PN}-locationdata" +FILES_${PN}-locationdata = "${datadir}/libgweather/*ocations*" + + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb new file mode 100644 index 000000000..aeec2d31b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb @@ -0,0 +1,23 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SECTION = "x11/gnome/libs" +DEPENDS = "libxml2 gconf libsoup-2.4 gtk+ libgnome-keyring" + +inherit gnome + +SRC_URI[archive.md5sum] = "bf6a0a05051341ecb250f332e3edfb88" +SRC_URI[archive.sha256sum] = "b835374661423f37c46aa8e37368ae24a68856f117b7c21e475a21efdba5264c" +GNOME_COMPRESS_TYPE="bz2" + +do_configure_prepend() { + sed -i -e 's: doc : :g' ${S}/Makefile.am +} + +FILES_${PN} += "${datadir}/gnome* \ + ${datadir}/icons" + +PACKAGES =+ "${PN}-locationdata" +FILES_${PN}-locationdata = "${datadir}/libgweather/Locations*" + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/Makefile.am.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/Makefile.am.patch new file mode 100644 index 000000000..190ba9608 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/Makefile.am.patch @@ -0,0 +1,17 @@ +Upstream-Status: Inappropriate [configuration] + +Index: libart_lgpl-2.3.21/Makefile.am +=================================================================== +--- libart_lgpl-2.3.21.orig/Makefile.am 2009-04-18 05:29:25.000000000 -0700 ++++ libart_lgpl-2.3.21/Makefile.am 2010-11-23 23:12:32.445450075 -0800 +@@ -7,8 +7,8 @@ + + BUILT_SOURCES = art_config.h + +-art_config.h: +- ./gen_art_config.sh > art_config.h ++#art_config.h: ++# ./gen_art_config.sh > art_config.h + + EXTRA_DIST = \ + libart.def \ diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64/art_config.h new file mode 100644 index 000000000..500ffc38f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be/art_config.h new file mode 100644 index 000000000..500ffc38f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be_32/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be_32/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/aarch64be_32/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/arm/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/arm/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/arm/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/armeb/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/armeb/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/armeb/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i386/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i386/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i386/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i586/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i586/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i586/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i686/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i686/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/i686/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64/art_config.h new file mode 100644 index 000000000..d10cd957d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64el/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64el/art_config.h new file mode 100644 index 000000000..d10cd957d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mips64el/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mipsel/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mipsel/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/mipsel/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc/art_config.h new file mode 100644 index 000000000..b0e74ad6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 4 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc64/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc64/art_config.h new file mode 100644 index 000000000..500ffc38f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/powerpc64/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/x86_64/art_config.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/x86_64/art_config.h new file mode 100644 index 000000000..500ffc38f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl/x86_64/art_config.h @@ -0,0 +1,10 @@ +/* Automatically generated by gen_art_config.c */ + +#define ART_SIZEOF_CHAR 1 +#define ART_SIZEOF_SHORT 2 +#define ART_SIZEOF_INT 4 +#define ART_SIZEOF_LONG 8 + +typedef unsigned char art_u8; +typedef unsigned short art_u16; +typedef unsigned int art_u32; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl_2.3.21.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl_2.3.21.bb new file mode 100644 index 000000000..4966ea4c7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libart-lgpl/libart-lgpl_2.3.21.bb @@ -0,0 +1,28 @@ +SUMMARY = "Library of functions for 2D graphics" +SECTION = "x11/gnome" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +PR = "r2" + +ART_CONFIG = "${HOST_ARCH}/art_config.h" + +# can't use gnome.oeclass due to _ in filename +SRC_URI = "${GNOME_MIRROR}/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2 \ + file://${ART_CONFIG} \ + file://Makefile.am.patch" + +SRC_URI[md5sum] = "08559ff3c67fd95d57b0c5e91a6b4302" +SRC_URI[sha256sum] = "fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa" + +inherit autotools pkgconfig + +DEPENDS = "" + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN}-dev += "${bindir}/libart2-config" + +S = "${WORKDIR}/libart_lgpl-${PV}" + +do_configure_prepend() { + cp ${WORKDIR}/${ART_CONFIG} ${S}/art_config.h +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb new file mode 100644 index 000000000..2a6f04b4d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol" +HOMEPAGE = "http://live.gnome.org/libgdata" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \ + file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef" + +DEPENDS = "libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib" + +inherit gnomebase pkgconfig autotools-brokensep gettext gtk-doc vala gobject-introspection + +do_configure_prepend_class-target () { + # introspection.m4 pre-packaged with upstream tarballs does not yet + # have our fixes + rm -f ${S}/introspection.m4 +} + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs" +} + +EXTRA_OECONF += "--disable-goa --disable-tests" + +SRC_URI[archive.md5sum] = "eb552a8a8482e4231a3d1baf7262e64d" +SRC_URI[archive.sha256sum] = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome/0001-libgnome-Makefile.am-allow-deprecated-symbols.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome/0001-libgnome-Makefile.am-allow-deprecated-symbols.patch new file mode 100644 index 000000000..b6583034f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome/0001-libgnome-Makefile.am-allow-deprecated-symbols.patch @@ -0,0 +1,35 @@ +From ce1cd20fceea7dbcc5b983d94de771461eccf7cf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 29 Apr 2013 14:17:13 +0200 +Subject: [PATCH] libgnome/Makefile.am: allow deprecated symbols +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +fixes: + +| gnome-program.c: In function 'gnome_program_init_common': +| gnome-program.c:2067:2: error: implicit declaration of function 'g_atexit' [-Werror=implicit-function-declaration] + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + libgnome/Makefile.am | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/libgnome/Makefile.am b/libgnome/Makefile.am +index 9c8cd3e..aa01f6c 100644 +--- a/libgnome/Makefile.am ++++ b/libgnome/Makefile.am +@@ -17,7 +17,6 @@ INCLUDES = \ + -I$(srcdir)/.. \ + $(WARN_CFLAGS) \ + $(LIBGNOME_CFLAGS) \ +- -DG_DISABLE_DEPRECATED \ + -DLIBGNOME_PREFIX=\""$(prefix)"\" \ + -DLIBGNOME_LIBDIR=\""$(libdir)"\" \ + -DLIBGNOME_DATADIR=\""$(datadir)"\" \ +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb new file mode 100644 index 000000000..27b8b9ae5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb @@ -0,0 +1,36 @@ +SUMMARY = "Gnome application programming libraries" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" +SECTION = "x11/gnome/libs" + +inherit gnome lib_package + +PR = "r2" + +SRC_URI[archive.md5sum] = "a4345e6087ae6195d65a4674ffdca559" +SRC_URI[archive.sha256sum] = "b2c63916866485793b87398266dd7778548c1734923c272a94d84ee011b6f7a4" +SRC_URI += "file://0001-libgnome-Makefile.am-allow-deprecated-symbols.patch" +GNOME_COMPRESS_TYPE="bz2" + +DEPENDS += "libcanberra gconf-native gnome-vfs libbonobo esound" + +EXTRA_OECONF += "--disable-gtk-doc" + +do_configure_prepend() { + sed -i -e s:docs::g ${S}/Makefile.am + echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make + echo "EXTRA_DIST = version.xml" > gtk-doc.make +} + +FILES_${PN} += "${libdir}/bonobo/servers ${libdir}/bonobo/monikers/*.so \ + ${datadir}/gnome-background-properties ${datadir}/pixmaps" +FILES_${PN}-dev += "${libdir}/bonobo/monikers/*.la" +FILES_${PN}-staticdev += "${libdir}/bonobo/monikers/*.a" + +PACKAGES =+ "gnome-common-schemas" + +FILES_gnome-common-schemas = "${datadir}/gnome-background-properties ${datadir}/pixmaps ${sysconfdir}" + +RDEPENDS_${PN} = "gnome-common-schemas" + +FILES_${PN}-dbg += "${libdir}/bonobo/monikers/.debug" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb new file mode 100644 index 000000000..a0f0b517b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "A powerful object-oriented display" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" +SECTION = "x11/gnome/libs" + +inherit gnomebase gtk-doc + +# intltool to provide IT_PROG_INTLTOOL +# configure: line 12654: syntax error near unexpected token `0.35.0' +# configure: line 12654: `IT_PROG_INTLTOOL(0.35.0)' +DEPENDS = "gtk+ libglade libart-lgpl xineramaproto intltool-native" + +SRC_URI[archive.md5sum] = "ffcbb719c671ff5cd86e59aeba8d0b92" +SRC_URI[archive.sha256sum] = "859b78e08489fce4d5c15c676fec1cd79782f115f516e8ad8bed6abcb8dedd40" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN} += "${libdir}/libglade/*/libcanvas.so" +FILES_${PN}-dbg += "${libdir}/libglade/*/.debug/" +FILES_${PN}-dev += "${libdir}/libglade/*/libcanvas*.la" +FILES_${PN}-staticdev += "${libdir}/libglade/*/libcanvas*.a" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb new file mode 100644 index 000000000..969df3b95 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "GNOME keyboard library" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" + +SECTION = "x11/gnome/libs" + +DEPENDS = "gconf gtk+ glib-2.0 libxklavier" + +inherit gnome + +SRC_URI[archive.md5sum] = "de32a6e3e3464b566eecdc4332bf34bd" +SRC_URI[archive.sha256sum] = "ddd52c4cc7d83ad7ef964a1bcb4db87407e65b00ffc3e70c088ca4ee7383d256" +GNOME_COMPRESS_TYPE="bz2" + +do_configure_append() { + find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g + find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g +} + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc new file mode 100644 index 000000000..26997b851 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc @@ -0,0 +1,24 @@ +DESCRIPTION = "GNOME User Interface Library" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" + +SECTION = "x11/gnome/libs" +DEPENDS = "libgnome libgnomecanvas libbonoboui libgnome-keyring intltool-native" + +inherit gnome + +FILES_${PN} += "${libdir}/gtk-2.0/*/filesystems/lib*.so \ + ${libdir}/libglade/*/lib*.so \ + ${datadir}/pixmaps/gnome-about-logo.png" +FILES_${PN}-dev += "${libdir}/gtk-2.0/*/filesystems/*.la ${libdir}/gtk-2.0/*/filesystems/*.a ${libdir}/libglade/*/*.la" +FILES_${PN}-staticdev += "${libdir}/libglade/*/*.a" +FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/filesystems/.debug/ ${libdir}/libglade/*/.debug/" + +SRC_URI += "file://gnome-stock-pixbufs.h file://no-pixbuf-csource.patch" + +EXTRA_OECONF = "--disable-gtk-doc" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/gnome-stock-pixbufs.h ${S}/libgnomeui/pixmaps/gnome-stock-pixbufs.h +} + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/gnome-stock-pixbufs.h b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/gnome-stock-pixbufs.h new file mode 100644 index 000000000..953a8aeb0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/gnome-stock-pixbufs.h @@ -0,0 +1,4030 @@ +/* gnome stock icons in GdmPixbuf usable rgb data + * + * Copyright (C) 1997 the Free Software Foundation + * + * the pixmaps for button_cancel, save_as, trash, mail_receive, stop + * right_arrow, home, save, book_blue, trash_full, undo, search, mail_forward + * revert, mail_compose, mic, copy, jump_to, convert, button_apply, timer + * mail, book_red, book_yellow, help, redo, new, mail_send, button_yes, cut + * properties, print, mail_reply, refresh, search_replace, open, preferences + * left_arrow, undelete, close, volume, button_no, exit, book_green + * book_open, paste, line_in, spellcheck, timer_stopped + * are Copyright (C) 1998 Tuomas Kuosmanen + */ + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_attach) +#endif +#ifdef __GNUC__ +static const guint8 stock_attach[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_attach[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\21\0\0\0\2\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\26\0" + "\0\0\"\0\0\0$\0\0\0%\0\0\0%\0\0\0\377\0\0\0l\0\0\0\377\0\0\0\377\0\0" + "\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\"\0\0\0\20\0" + "\0\0$\0\0\0~\1\1\1\377QQQ\377\232\232\232\377\317\317\317\377ooo\377" + "\0\0\0\377\0\0\0\16\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0x\0\0\0" + "\377FFF\377\245\245\245\377\342\342\342\377\377\377\377\377\377\377\377" + "\377\366\366\366\377\212\212\212\377999\377\0\0\0(\0\0\0\10\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\0\0\0" + "B\0\0\0\377\34\34\34\377\213\213\213\377\346\346\346\377\356\356\356" + "\377\341\341\341\377\377\377\377\377\370\370\370\377\367\367\367\377" + "\366\366\366\377\314\314\314\377VVV\377\0\0\0^\0\0\0\12\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\377>>>\377\201\201\201" + "\377\324\324\324\377\34\34\34\377\347\347\347\377\327\327\327\377\372" + "\372\372\377\371\371\371\377\370\370\370\377\302\302\302\377\313\313" + "\313\377\365\365\365\377\331\331\331\377\201\201\201\377\0\0\0\377\0" + "\0\0\25\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\3\3\3\377TTT\377\346\346" + "\346\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\327" + "\327\327\377\336\336\336\377\263\263\263\377yyy\377\0\0\0\377\342\342" + "\342\377\366\366\366\377\365\365\365\377\364\364\364\377\235\235\235" + "\377(((\377\0\0\0)\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\366\366" + "\366\377\377\377\377\377\377\377\377\377\372\372\372\377\372\372\372" + "\377\373\373\373\377\0\0\0\377\246\246\246\377\305\305\305\377\360\360" + "\360\377\370\370\370\377\0\0\0\377\342\342\342\377\302\302\302\377\312" + "\312\312\377\364\364\364\377\307\307\307\377VVV\377\0\0\0^\0\0\0\12\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\362\362\362\377\370\370\370\377\371" + "\371\371\377\316\316\316\377\304\304\304\377\305\305\305\377\0\0\0\377" + "\325\325\325\377\371\371\371\377\370\370\370\377\370\370\370\377\0\0" + "\0\377\263\263\263\377\332\332\332\377\364\364\364\377\363\363\363\377" + "\363\363\363\377yyy\377\0\0\0\377\0\0\0\25\0\0\0\3\0\0\0\0\0\0\0\0\0" + "\0\0h\205\205\205\377\377\377\377\377\370\370\370\377\276\276\276\377" + "\371\371\371\377\371\371\371\377\0\0\0\377\323\323\323\377\334\334\334" + "\377\302\302\302\377\302\302\302\377\0\0\0\377\342\342\342\377\365\365" + "\365\377\364\364\364\377\363\363\363\377\362\362\362\377\234\234\234" + "\377(((\377\0\0\0)\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\40HHH\377\377\377\377" + "\377\367\367\367\377\367\367\367\377\370\370\370\377\370\370\370\377" + "\0\0\0\377\247\247\247\377\326\326\326\377\367\367\367\377\366\366\366" + "\377\0\0\0\377\342\342\342\377\364\364\364\377\304\304\304\377\310\310" + "\310\377\362\362\362\377\306\306\306\377LLL\377\0\0\0^\0\0\0\12\0\0\0" + "\0\0\0\0\0\0\0\0\1\0\0\0\377\352\352\352\377\377\377\377\377\366\366" + "\366\377\276\276\276\377\302\302\302\377\0\0\0\377\345\345\345\377\330" + "\330\330\377\366\366\366\377\365\365\365\377\0\0\0\377\255\255\255\377" + "\274\274\274\377\352\352\352\377\340\340\340\377\361\361\361\377\352" + "\352\352\377\220\220\220\377\0\0\0\377\0\0\0\25\0\0\0\3\0\0\0\0\0\0\0" + "\0\0\0\0ihhh\377\377\377\377\377\365\365\365\377\366\366\366\377\366" + "\366\366\377\242\242\242\377\0\0\0\377\300\300\300\377\301\301\301\377" + "\0\0\0\377xxx\377\326\326\326\377\363\363\363\377\362\362\362\377\361" + "\361\361\377\361\361\361\377\325\325\325\377\256\256\256\377\25\25\25" + "\377\0\0\0)\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\4""999\377\377\377\377\377" + "\364\364\364\377\365\365\365\377\365\365\365\377\332\332\332\377\232" + "\232\232\377\0\0\0\377\0\0\0\377yyy\377\326\326\326\377\362\362\362\377" + "\362\362\362\377\361\361\361\377\326\326\326\377\320\320\320\377\227" + "\227\227\377rrr\377JJJ\377\0\0\0.\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\354\354\354\377\377\377\377\377\364\364\364\377\254\254\254" + "\377\272\272\272\377\335\335\335\377\363\363\363\377\316\316\316\377" + "\333\333\333\377\354\354\354\377\327\327\327\377\326\326\326\377\261" + "\261\261\377\201\201\201\377VVV\377###\377\0\0\0\377\0\0\0q\0\0\0)\0" + "\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0hiii\377\377\377\377\377\363\363" + "\363\377\363\363\363\377\363\363\363\377\363\363\363\377\362\362\362" + "\377\362\362\362\377\327\327\327\377\267\267\267\377\202\202\202\377" + "@@@\377###\377\0\0\0\377\0\0\0\204\0\0\0""2\0\0\0.\0\0\0)\0\0\0\25\0" + "\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4(((\377\377\377\377\377\363\363" + "\363\377\362\362\362\377\362\362\362\377\327\327\327\377\276\276\276" + "\377\226\226\226\377222\377###\377\0\0\0\377\0\0\0u\0\0\0H\0\0\0/\0\0" + "\0*\0\0\0\31\0\0\0\13\0\0\0\10\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\346\346\346\377\350\350\350\377\314\314\314\377" + "\232\232\232\377@@@\377###\377\0\0\0\377\0\0\0\221\0\0\0I\0\0\0/\0\0" + "\0*\0\0\0\30\0\0\0\16\0\0\0\11\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;999\377\202\202\202\377999\377" + "\22\22\22\377\0\0\0\204\0\0\0I\0\0\0/\0\0\0*\0\0\0\33\0\0\0\16\0\0\0" + "\11\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\377\0\0\0\377\0\0\0u\0\0" + "\0""1\0\0\0*\0\0\0\31\0\0\0\16\0\0\0\11\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0&\0\0\0)\0\0\0\27\0\0\0" + "\12\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\7\0\0\0\10\0\0\0\3\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_book_blue) +#endif +#ifdef __GNUC__ +static const guint8 stock_book_blue[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_book_blue[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0""9\0\0\0\302\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\357\0\0\0\356\0\0\0\346\0\0\0\342\0\0\0w\0\0\0\13\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32\21\26\35\377\227" + "\250\276\377}\223\254\377s\212\243\377l\204\234\377d|\226\377^v\217\377" + "Wo\210\377Pi\202\377Pi\202\377Pi\202\377Pi\202\377Pi\202\377Vn\206\377" + "IXi\377\21\30\"\376\0\0\0.\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\273v\213\242\377\216\242\270\377v\215\247\377Vr\220\377" + "Nj\210\377Fb\200\377=Zx\3775Rp\3771Nk\3771Nk\3776Ro\3776Ro\377Q\377$6J\377" + "$6J\377$6J\377$6J\377$6J\377$6J\377$6J\377$6J\377$6J\377$6J\377$6J\377" + "$6J\377+5\77\377^bh\377wxz\377F`z\377\0\0\0\365\0\0\0U\0\0\0*\0\0\0\6" + "\0\0\0\0\15\17\21\377\207\223\235\377@AE\377_``\373ttt\377\226\226\226" + "\377\261\261\261\377\257\257\260\377\305\305\306\377\316\316\317\377" + "\264\273\301\377\274\302\311\377\275\304\312\377\304\313\322\377\313" + "\322\331\377\326\332\336\377\220\226\233\377\205\212\217\377\24\33!\371" + "\0\0\0\234\0\0\0H\0\0\0\22\0\0\0\1\0\0\0\0\14\16\17\377k{\213\377WWW" + "\377}~\200\377\342\344\346\377\342\344\346\377\341\341\341\377\337\337" + "\340\377\337\337\340\377\362\362\362\377\375\375\376\377\361\363\365" + "\377\361\363\365\377\361\363\365\377\247\250\252\377\262\265\271\377" + "imq\377F`z\377\0\1\2\370\0\0\0U\0\0\0*\0\0\0\6\0\0\0\0\0\0\0\0$%'\377" + "cr\201\377i|\216\377Tk\203\377E]x\377\326\334\341\377\347\352\355\377" + "\355\357\361\377\355\357\362\377\345\346\347\377\336\336\337\377\341" + "\341\342\377\341\341\342\377\337\337\340\377\341\342\343\377rz\203\377" + "\213\217\224\377\25\33!\367\0\0\0\234\0\0\0I\0\0\0\22\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0""9\0\0\0\377\4\6\12\3548J]\363Mbx\351Th\177\357Sj\202" + "\377Wo\206\377\207\227\247\377\327\335\341\377\342\346\351\377\351\354" + "\356\377\370\371\372\377\370\371\372\377\201\205\212\377\245\247\250" + "\377\234\242\250\377\1\2\3\370\0\0\0U\0\0\0*\0\0\0\7\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0&\0\0\0e\0\0\0\276\0\0\0\346\0\0\0\360\0\0\0\363" + ";K^\371DVi\371Tg}\367Uk\200\366Vl\203\377\254\270\303\377\334\341\345" + "\377\350\353\355\377\237\243\246\377\25\35$\373\0\0\0\234\0\0\0H\0\0" + "\0\22\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\17\0\0\0" + "\34\0\0\0""4\0\0\0C\0\0\0g\0\0\0\251\0\0\0\344\0\0\0\361\0\0\0\3560>" + "M\365=N`\371O_s\372Se{\367Lc|\357\1\3\5\367\0\0\0U\0\0\0+\0\0\0\7\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\12" + "\0\0\0\15\0\0\0\20\0\0\0\33\0\0\0""0\0\0\0C\0\0\0_\0\0\0\235\0\0\0\327" + "\0\0\0\356\0\0\0\354\0\0\0\347\0\0\0{\0\0\0F\0\0\0\21\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\3\0\0\0\10\0\0\0\15\0\0\0\20\0\0\0\30\0\0\0,\0\0\0" + "\77\0\0\0H\0\0\0H\0\0\0@\0\0\0\37\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\7\0\0\0\13\0\0\0\16\0" + "\0\0\16\0\0\0\14\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_book_green) +#endif +#ifdef __GNUC__ +static const guint8 stock_book_green[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_book_green[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0""9\0\0\0\302\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\357\0\0\0\356\0\0\0\346\0\0\0\342\0\0\0w\0\0\0\13\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32\21\34\21\377\225" + "\276\225\377y\255y\377n\246n\377e\241e\377^\233^\377Y\222Y\377S\212S" + "\377O\202O\377O\202O\377O\202O\377O\202O\377O\202O\377R\210R\377CnC\377" + "\22\36\22\376\0\0\0.\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\273o\247o\377\214\271\214\377r\251r\377V\216V\377P\204P\377Jz" + "J\377CoC\377=e=\377:`:\377:`:\377=e=\377=e=\377AkA\377=e=\3770P0\377" + "\26#\26\372\0\0\0N\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22" + "\11\17\11\377\227\277\227\377}\260}\377Y\223Y\377T\213T\377M\177M\377" + "GuG\377AkA\377;a;\377:`:\377:`:\377:`:\377:`:\377@j@\3773T3\377!6!\377" + "\0\0\0^\0\0\0D\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255O\203" + "O\377\227\277\227\377q\250q\377W\217W\377P\204P\377K|K\377ErE\377>f>" + "\377:`:\377:`:\377:`:\377:`:\377\0\0\0\34\0\0\0\10\0\0\0\13\0\0\0A5DS\377\215\231\242" + "\363\343\343\343\377\301\301\301\377\276\276\276\377\216\224\232\316" + "\235\237\237\376\377\377\377\377\375\376\376\377\374\375\375\377\372" + "\374\374\377\362\363\364\377\361\362\363\377\367\370\371\377\366\366" + "\367\377\246\250\253\377s\177\212\376\4\5\6\377\0\0\0P\0\0\0""1\0\0\0" + "\24\0\0\0\5\0\0\0\5\0\0\0\24\0\0\0\377K_q\340\345\345\345\377\301\301" + "\301\377\236\237\240\326\227\231\233\375\331\331\331\377\377\377\377" + "\377\347\350\350\377\356\357\357\377\364\365\365\377\371\372\373\377" + "\370\371\372\377\373\373\373\377\330\330\332\377\223\233\243\377\17\24" + "\30\377\0\0\0t\0\0\0B\0\0\0\"\0\0\0\14\0\0\0\3\0\0\0\2\0\0\0\13\0\0\0" + "A9IW\377\202\217\227\360\333\333\333\370\212\216\222\347\264\264\264" + "\377\377\377\377\377\377\377\377\377\375\376\376\377\365\366\366\377" + "\354\356\356\377\346\347\350\377\372\372\373\377\365\365\367\377\256" + "\262\266\377\\l|\377\0\0\0\377\0\0\0P\0\0\0""1\0\0\0\25\0\0\0\6\0\0\0" + "\1\0\0\0\0\0\0\0\5\0\0\0\24\0\0\0\377J]p\336\273\273\273\321\253\253" + "\253\377\377\377\377\377\370\370\370\377\361\361\361\377\357\360\360" + "\377\374\375\375\377\372\373\373\377\371\372\373\377\373\374\374\377" + "\336\341\343\377\235\246\256\377\12\15\20\377\0\0\0t\0\0\0A\0\0\0\"\0" + "\0\0\13\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\13\0\0\0A$/:\377imq\346" + "wxy\377\362\363\363\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\360\360\360\377\363\363\363\377\373\374\374\377\371\371\372\377\273" + "\277\304\377Vgy\377\0\0\0\377\0\0\0P\0\0\0""1\0\0\0\25\0\0\0\6\0\0\0" + "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\24\0\0\0\377J_t\3701>K\376\263" + "\275\306\375\321\327\335\377\331\336\343\377\366\367\367\377\365\365" + "\365\377\377\377\377\377\377\377\377\377\321\322\324\377\232\243\254" + "\377\4\5\6\377\0\0\0t\0\0\0A\0\0\0!\0\0\0\13\0\0\0\2\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\13\0\0\0""7\0\0\0\256+4<\366)2;\377O_" + "p\377^q\204\376\221\236\253\375\237\253\266\375\277\307\320\377\350\354" + "\356\377\262\270\276\377q}\210\376\0\0\0\377\0\0\0P\0\0\0""1\0\0\0\25" + "\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0" + "\0\22\0\0\0&\0\0\0:\0\0\0Y\0\0\0\200\0\0\0\301%-5\377Qar\377Vgy\375z" + "\206\225\375v\205\224\374\0\0\0\377\0\0\0r\0\0\0\77\0\0\0!\0\0\0\13\0" + "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0" + "\6\0\0\0\20\0\0\0\34\0\0\0%\0\0\0-\0\0\0""8\0\0\0X\0\0\0\200\0\0\0\275" + ",4=\377!'.\377\0\0\0p\0\0\0D\0\0\0*\0\0\0\23\0\0\0\5\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0" + "\0\10\0\0\0\14\0\0\0\21\0\0\0\31\0\0\0\"\0\0\0,\0\0\0""7\0\0\0A\0\0\0" + "C\0\0\0;\0\0\0)\0\0\0\26\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2" + "\0\0\0\4\0\0\0\6\0\0\0\13\0\0\0\20\0\0\0\30\0\0\0\37\0\0\0\40\0\0\0\33" + "\0\0\0\21\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\6\0\0\0\10\0\0\0\11\0\0\0\7\0\0\0\4" + "\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_book_red) +#endif +#ifdef __GNUC__ +static const guint8 stock_book_red[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_book_red[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0""9\0\0\0\302\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\357\0\0\0\356\0\0\0\346\0\0\0\342\0\0\0w\0\0\0\13\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32\37\21\16\377\310" + "\225\213\377\272ym\377\264n`\377\260fW\377\252^O\377\240YK\377\226SF" + "\377\216OC\377\216OC\377\216OC\377\216OC\377\216OC\377\225RF\377xC8\377" + "!\22\17\376\0\0\0.\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\273\265pb\377\303\214\201\377\266re\377\234WI\377\221PD\377\206" + "J>\377zD9\377o>4\377i;1\377i;1\377o>4\377o>4\377vA7\377o>4\377X0)\377" + "'\26\22\372\0\0\0N\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22" + "\21\11\10\377\311\227\215\377\274}q\377\241ZK\377\230TG\377\214MA\377" + "\201G<\377vA7\377k;2\377i;1\377i;1\377i;1\377i;1\377tA6\377\\3+\377;" + "!\33\377\0\0\0^\0\0\0D\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\255\217OC\377\311\227\215\377\265qc\377\235WI\377\221PD\377\210K\77" + "\377|E:\377p>4\377i;1\377i;1\377i;1\377i;1\377l<3\377tA6\377U/(\377O" + ",%\375\0\0\0\377\0\0\0%\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0" + "\0\377\311\227\215\377\275~r\377\244[L\377\231UH\377\215NB\377\202H<" + "\377wB8\377l<3\377i;1\377i;1\377k;2\377i;1\377s@6\377\\3+\377,\30\24" + "\377\201\201\201\377I(\"\377\0\0\0F\0\0\0\15\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\232\217OC\377\304\215\202\377\265qc\377\237XJ\377\223RE\377\211" + "L@\377~F;\377s@6\377i;1\377i;1\377i;1\377i;1\377k;2\377wB8\377U/(\377" + "4\35\30\376KKK\377\220\220\220\377\0\0\0Q\0\0\0\20\0\0\0\0\0\0\0\0\0" + "\0\0\20\0\0\0\377\310\226\214\375\274}q\377\245\\M\377\232VH\377\217" + "OC\377\203I=\377xC8\377m=3\377i;1\377i;1\377i;1\377i;1\377q\77""5\377" + "_4,\377-\31\25\377VVV\366ggg\377333\377\0\0\0Q\0\0\0\20\0\0\0\0\0\0\0" + "\0\0\0\0\335\235WI\377\303\214\201\377\266re\377\240YK\377\225RF\377" + "\212L@\377\177G;\377tA6\377i;1\377i;1\377i;1\377i;1\377i;1\377vA7\377" + "Y1)\3778\37\32\377HHH\377\270wj\377\0\0\0\377\0\0\0c\0\0\0\21\0\0\0\0" + "\0\0\0!\0\0\0\377\310\226\214\377\300\205y\377\254`P\377\234WI\377\221" + "PD\377\206J>\377zD9\377o>4\377i;1\377i;1\377i;1\377i;1\377m=3\377f8/" + "\377/\32\26\377ggg\377nnn\377_4,\377\0\0\0\373\0\0\0R\0\0\0\25\0\0\0" + "\0\0\0\0\245\231UH\377\305\220\205\377\264n`\377\244[L\377\231UH\377" + "\215NB\377\202H<\377wB8\377l<3\377i;1\377i;1\377i;1\377i;1\377wB8\377" + "U/(\377;!\33\377XXX\377\267tg\377\21\11\10\372\0\0\0\234\0\0\0I\0\0\0" + "\17\0\0\0\13\0\0\0\377\262th\337\302\210}\377\261hY\377\237XJ\377\223" + "RE\377\211L@\377~F;\377s@6\377i;1\377i;1\377i;1\377i;1\377i;1\377g90" + "\3772\33\27\377KKK\377ttt\377zE:\370\0\0\0\364\0\0\0U\0\0\0+\0\0\0\7" + "\0\0\0\206\240YK\377\333\272\264\375\324\254\244\377\320\243\233\377" + "\315\237\226\377\312\231\217\377\307\224\211\377\302\210}\377\266re\377" + "\265pb\377\265pb\377\265pb\377\265pb\377\260fW\377\214MA\377I(\"\377" + "^^^\377\271xk\377\21\11\10\372\0\0\0\233\0\0\0G\0\0\0\21\0\0\0\1\6\3" + "\3\331\322\250\240\377T.'\377J)#\377J)#\377J)#\377J)#\377J)#\377J)#\377" + "J)#\377J)#\377J)#\377J)#\377J)#\377J)#\377G'!\377ccc\377xxx\377\202H" + "<\377\0\0\0\365\0\0\0U\0\0\0*\0\0\0\6\0\0\0\0\24\13\11\377\270wj\377" + "Y1)\377___\373ttt\377\226\226\226\377\261\261\261\377\257\257\257\377" + "\305\305\305\377\316\316\316\377\272\272\272\377\302\302\302\377\303" + "\303\303\377\313\313\313\377\322\322\322\377\332\332\332\377\225\225" + "\225\377\264m_\377\"\23\20\371\0\0\0\234\0\0\0H\0\0\0\22\0\0\0\1\0\0" + "\0\0\21\11\10\377\247]N\377vA7\377~~~\377\344\344\344\377\344\344\344" + "\377\341\341\341\377\337\337\337\377\337\337\337\377\362\362\362\377" + "\375\375\375\377\363\363\363\377\363\363\363\377\363\363\363\377\250" + "\250\250\377\265\265\265\377mmm\377\202H<\377\1\0\0\370\0\0\0U\0\0\0" + "*\0\0\0\6\0\0\0\0\0\0\0\0""2\33\27\377\232VH\377\247]N\377\221PD\377" + "\177G;\377\333\333\333\377\352\352\352\377\357\357\357\377\357\357\357" + "\377\346\346\346\377\336\336\336\377\341\341\341\377\341\341\341\377" + "\337\337\337\377\342\342\342\377zzz\377\267sf\377$\24\21\367\0\0\0\234" + "\0\0\0I\0\0\0\22\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0""9\0\0\0\377\11\5\4\354" + "c80\363\203MB\351\214QE\357\217OC\377\225RF\377\227\227\227\377\334\334" + "\334\377\345\345\345\377\353\353\353\377\371\371\371\377\371\371\371" + "\377\205\205\205\377\246\246\246\377\303\213\200\377\2\1\1\370\0\0\0" + "U\0\0\0*\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\0\0\0e\0\0\0" + "\276\0\0\0\346\0\0\0\360\0\0\0\363f:1\371sA7\371\214OC\367\217QE\366" + "\222QD\377\320\245\234\377\340\340\340\377\352\352\352\377\303\213\200" + "\377%\25\21\373\0\0\0\234\0\0\0H\0\0\0\22\0\0\0\1\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\6\0\0\0\17\0\0\0\34\0\0\0""4\0\0\0C\0\0\0g\0\0\0\251" + "\0\0\0\344\0\0\0\361\0\0\0\356S/(\365j;2\371\201I=\372\211MB\367\205" + "LA\357\3\2\1\367\0\0\0U\0\0\0+\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\12\0\0\0\15\0\0\0\20\0\0\0\33" + "\0\0\0""0\0\0\0C\0\0\0_\0\0\0\235\0\0\0\327\0\0\0\356\0\0\0\354\0\0\0" + "\347\0\0\0{\0\0\0F\0\0\0\21\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0" + "\10\0\0\0\15\0\0\0\20\0\0\0\30\0\0\0,\0\0\0\77\0\0\0H\0\0\0H\0\0\0@\0" + "\0\0\37\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\2\0\0\0\7\0\0\0\13\0\0\0\16\0\0\0\16\0\0\0\14\0\0\0\5\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_book_yellow) +#endif +#ifdef __GNUC__ +static const guint8 stock_book_yellow[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_book_yellow[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0""9\0\0\0\302\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\357\0\0\0\356\0\0\0\346\0\0\0\342\0\0\0w\0\0\0\13\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32(\40\5\377\352\315" + "i\377\344\300C\377\342\2733\377\341\267&\377\333\261\36\377\317\247\34" + "\377\303\235\32\377\270\224\31\377\270\224\31\377\270\224\31\377\270" + "\224\31\377\270\224\31\377\301\234\32\377\234~\25\377*\"\6\376\0\0\0" + ".\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\273\343\274" + "4\377\350\311]\377\343\2758\377\312\243\33\377\273\227\32\377\255\214" + "\30\377\236\177\25\377\220t\23\377\211n\22\377\211n\22\377\220t\23\377" + "\220t\23\377\230{\25\377\220t\23\377r\\\17\3771(\7\372\0\0\0N\0\0\0\20" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\26\22\3\377\352\316m\377\345" + "\302H\377\321\250\34\377\304\236\33\377\264\222\31\377\246\206\27\377" + "\230{\25\377\212p\23\377\211n\22\377\211n\22\377\211n\22\377\211n\22" + "\377\227y\24\377w`\20\377M>\12\377\0\0\0^\0\0\0D\0\0\0\16\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\255\272\226\31\377\352\316m\377\343\2746\377" + "\313\244\34\377\273\227\32\377\257\215\30\377\241\202\26\377\221u\24" + "\377\211n\22\377\211n\22\377\211n\22\377\211n\22\377\214q\23\377\227" + "y\24\377nY\17\377fR\16\375\0\0\0\377\0\0\0%\0\0\0\5\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\21\0\0\0\377\352\316m\377\345\303J\377\324\253\35\377\306" + "\240\33\377\266\223\31\377\250\210\27\377\232|\25\377\214q\23\377\211" + "n\22\377\211n\22\377\212p\23\377\211n\22\377\225x\24\377w`\20\3779.\10" + "\377\201\201\201\377^L\15\377\0\0\0F\0\0\0\15\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\232\272\226\31\377\350\312_\377\343\2746\377\315\245\34\377\277" + "\232\32\377\261\217\30\377\243\203\26\377\225x\24\377\211n\22\377\211" + "n\22\377\211n\22\377\211n\22\377\212p\23\377\232|\25\377nY\17\377C6\11" + "\376KKK\377\220\220\220\377\0\0\0Q\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\20" + "\0\0\0\377\351\315k\375\345\302H\377\326\255\35\377\310\241\33\377\272" + "\226\31\377\252\211\27\377\234~\25\377\216r\23\377\211n\22\377\211n\22" + "\377\211n\22\377\211n\22\377\223w\24\377zc\21\377;0\10\377VVV\366ggg" + "\377333\377\0\0\0Q\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\335\313\244\34\377" + "\350\311]\377\343\2758\377\317\247\34\377\301\234\32\377\263\220\30\377" + "\245\205\26\377\227y\24\377\211n\22\377\211n\22\377\211n\22\377\211n" + "\22\377\211n\22\377\230{\25\377s]\20\377I;\12\377HHH\377\344\277\77\377" + "\0\0\0\377\0\0\0c\0\0\0\21\0\0\0\0\0\0\0!\0\0\0\377\352\316k\377\347" + "\306R\377\337\264\36\377\312\243\33\377\273\227\32\377\255\214\30\377" + "\236\177\25\377\220t\23\377\211n\22\377\211n\22\377\211n\22\377\211n" + "\22\377\216r\23\377\203j\22\377=1\10\377ggg\377nnn\377zc\21\377\0\0\0" + "\373\0\0\0R\0\0\0\25\0\0\0\0\0\0\0\245\306\240\33\377\351\313b\377\342" + "\2733\377\324\253\35\377\306\240\33\377\266\223\31\377\250\210\27\377" + "\232|\25\377\214q\23\377\211n\22\377\211n\22\377\211n\22\377\211n\22" + "\377\232|\25\377nY\17\377M>\12\377XXX\377\344\276;\377\25\21\3\372\0" + "\0\0\234\0\0\0I\0\0\0\17\0\0\0\13\0\0\0\377\326\266D\337\347\307X\377" + "\341\270*\377\315\245\34\377\277\232\32\377\261\217\30\377\243\203\26" + "\377\225x\24\377\211n\22\377\211n\22\377\211n\22\377\211n\22\377\211" + "n\22\377\205k\22\377A4\10\377KKK\377ttt\377\234\177\30\370\0\0\0\364" + "\0\0\0U\0\0\0+\0\0\0\7\0\0\0\206\317\247\34\377\360\336\236\375\356\330" + "\213\377\355\324~\377\354\322w\377\353\317n\377\352\314g\377\347\307" + "X\377\343\2758\377\343\2744\377\343\2744\377\343\2744\377\343\2744\377" + "\341\267&\377\264\222\31\377^L\15\377^^^\377\344\300A\377\25\21\3\372" + "\0\0\0\233\0\0\0G\0\0\0\21\0\0\0\1\7\6\1\331\356\326\205\377lW\17\377" + "`N\15\377`N\15\377`N\15\377`N\15\377`N\15\377`N\15\377`N\15\377`N\15" + "\377`N\15\377`N\15\377`N\15\377`N\15\377]K\14\377ccc\377xxx\377\250\210" + "\27\377\0\0\0\365\0\0\0U\0\0\0*\0\0\0\6\0\0\0\0\32\25\3\377\344\277\77" + "\377s]\20\377___\373ttt\377\226\226\226\377\261\261\261\377\257\257\257" + "\377\305\305\305\377\316\316\316\377\272\272\272\377\302\302\302\377" + "\303\303\303\377\313\313\313\377\322\322\322\377\332\332\332\377\225" + "\225\225\377\342\2721\377,#\6\371\0\0\0\234\0\0\0H\0\0\0\22\0\0\0\1\0" + "\0\0\0\26\22\3\377\330\256\35\377\230{\25\377~~~\377\344\344\344\377" + "\344\344\344\377\341\341\341\377\337\337\337\377\337\337\337\377\362" + "\362\362\377\375\375\375\377\363\363\363\377\363\363\363\377\363\363" + "\363\377\250\250\250\377\265\265\265\377mmm\377\250\210\27\377\1\1\0" + "\370\0\0\0U\0\0\0*\0\0\0\6\0\0\0\0\0\0\0\0A4\10\377\310\241\33\377\330" + "\256\35\377\273\227\32\377\245\205\26\377\333\333\333\377\352\352\352" + "\377\357\357\357\377\357\357\357\377\346\346\346\377\336\336\336\377" + "\341\341\341\377\341\341\341\377\337\337\337\377\342\342\342\377zzz\377" + "\343\275:\377-%\7\367\0\0\0\234\0\0\0I\0\0\0\22\0\0\0\1\0\0\0\0\0\0\0" + "\0\0\0\0""9\0\0\0\377\13\10\1\354~e\25\363\243\206!\351\260\220\40\357" + "\272\226\31\377\301\234\32\377\227\227\227\377\334\334\334\377\345\345" + "\345\377\353\353\353\377\371\371\371\377\371\371\371\377\205\205\205" + "\377\246\246\246\377\350\310[\377\2\2\0\370\0\0\0U\0\0\0*\0\0\0\7\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\0\0\0e\0\0\0\276\0\0\0\346\0\0\0" + "\360\0\0\0\363\202i\24\371\224w\26\371\262\220\35\367\266\224\36\366" + "\275\231\32\377\355\325\200\377\340\340\340\377\352\352\352\377\350\310" + "[\3770&\6\373\0\0\0\234\0\0\0H\0\0\0\22\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\6\0\0\0\17\0\0\0\34\0\0\0""4\0\0\0C\0\0\0g\0\0\0\251" + "\0\0\0\344\0\0\0\361\0\0\0\356iU\21\365\207n\25\371\245\206\31\372\257" + "\215\33\367\250\211\36\357\4\3\0\367\0\0\0U\0\0\0+\0\0\0\7\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\12\0\0\0" + "\15\0\0\0\20\0\0\0\33\0\0\0""0\0\0\0C\0\0\0_\0\0\0\235\0\0\0\327\0\0" + "\0\356\0\0\0\354\0\0\0\347\0\0\0{\0\0\0F\0\0\0\21\0\0\0\1\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\3\0\0\0\10\0\0\0\15\0\0\0\20\0\0\0\30\0\0\0,\0\0\0\77" + "\0\0\0H\0\0\0H\0\0\0@\0\0\0\37\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\7\0\0\0\13\0\0\0\16\0\0" + "\0\16\0\0\0\14\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_line_in) +#endif +#ifdef __GNUC__ +static const guint8 stock_line_in[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_line_in[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0-..\257###\377\10\10\10x\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\25\25\25\377\345\345\346\377###\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0fff\315\356\356\356\377MMM\217\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\2\2\2\337\277\277\277\377\3\3\3\325\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0i\0\0\0s\0\0\0_\0\0" + "\0=\0\0\0!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21" + "\21\22\377\354\354\355\377\22\22\22\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\262\216\216\216\260\210\210\210" + "\233TTT\210$$$v\0\0\0b\0\0\0F\0\0\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0$$%\243\273\273\273\377\0\0\0O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\212lll\326\316\316\316\311\245\245\245\274\0" + "\0\0\242\0\0\0\214\0\0\0v\0\0\0U\0\0\0;\0\0\0+\0\0\0\"\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\352\352\352\377\0\0\0\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\230mmm\347\316\316\316\345\10\10\10" + "\313\10\10\10\231\0\0\0G\0\0\0=\0\0\0""1\0\0\0:\0\0\0""2\0\0\0#\0\0\0" + "\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377RRR\377\332\332\334\377===\377\0" + "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\343\265\265\265\363KK" + "K\351\0\0\0M\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\33" + "\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\373\373\373\377\234\233" + "\234\377\324\324\324\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\231" + "GGG\361\244\244\244\365\0\0\0\242\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\377\221\221" + "\221\377===\377===\377\36\36\36\377\77\77\77\377\0\0\0\377\0\0\0\0\0" + "\0\0\0\0\0\0\331___\367###\362\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\377\221" + "\221\221\377===\377===\377\36\36\36\377BBB\377\0\0\0\377\0\0\0\0\0\0" + "\0\0\0\0\0\342SSS\355\0\0\0\353\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\221\221\221\377===\377===\377\36\36\36\377BBB\377\0\0\0\377\0\0\0\0" + "\0\0\0\0\0\0\0\330SSS\353\0\0\0\355\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\221\221\221\377===\377===\377\36\36\36\377BBB\377\0\0\0\377\0\0" + "\0\0\0\0\0\0\0\0\0\262'''\332\"\"\"\367\0\0\0<\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\221\221\221\377===\377===\377\36\36\36\377BBB\377\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0D\0\0\0\315UUU\362\0\0\0\313\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\221\221\221\377===\377===\377\36\36\36\377EEE\377\0\0\0" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\241LLL\322FFF\336\0\0\0\234\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377AAA\377ddd\377%%%\377,,,\377<<<\377\0\0\0\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\236XXX\257FFF\273\0\0\0q\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\25\25\25\377\7\7\7\377(((\377\0\0\0\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0""9\0\0\0\205ZZZ\233\0\0\0\236\0\0\0b\0\0" + "\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377+++\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0cXXX{\0\0\0{\0\0\0""3\0\0\0%\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\324" + "+++\324\0\0\0\324\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0""7\0\0\0T\0\0\0_\0\0\0^\0\0\0#\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\252+++\252\0\0\0\252" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\13\0\0\0@\0\0\0F\0\0\0J\0\0\0""2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\177+++\177\0\0\0\177\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1" + "\0\0\0:\7\7\7@\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0U+++U\0\0\0U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27\0\0\0/\0\0\0""2\10\10\10""5\0" + "\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0*+++*\0\0\0*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\23\0\0\0""0\0\0\0-\14\14\14-\0\0\0+\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2" + "\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0" + "\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0m\0" + "\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377SSS\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\376\376\376\377" + "\375\375\375\377\374\374\374\377\373\373\373\377\371\371\371\377\370" + "\370\370\377\367\367\367\377\366\366\366\377\365\365\365\377\364\364" + "\364\377\343\343\343\377SSS\377\0\0\0\377\0\0\0\31\0\0\0\10\0\0\0\1\0" + "\0\0\0\0\0\0\2\0\0\0\377\356\356\356\377OOO\377\377\377\377\377\365\365" + "\365\377\364\364\364\377\363\363\363\377\362\362\362\377\362\362\362" + "\377\361\361\361\377\360\360\360\377\360\360\360\377\357\357\357\377" + "\356\356\356\377\355\355\355\377\343\343\343\377OOO\377\256\256\256\377" + "\0\0\0\377\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\344\344\344\377CCC\377\375\375\375\377\363\363\363\377\362\362" + "\362\377\362\362\362\377\361\361\361\377\360\360\360\377\357\357\357" + "\377\356\356\356\377\356\356\356\377\355\355\355\377\343\343\343\377" + "OOO\377\254\254\254\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0" + "\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\344\344" + "\344\377OOO\377\373\373\373\377\361\361\361\377\360\360\360\377\360\360" + "\360\377\357\357\357\377\356\356\356\377\355\355\355\377\355\355\355" + "\377\343\343\343\377CCC\377\240\240\240\377\324\324\324\377\310\310\310" + "\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377" + "\377\377\377\373\373\373\377\365\365\365\377\344\344\344\377CCC\377\370" + "\370\370\377\360\360\360\377\357\357\357\377\356\356\356\377\355\355" + "\355\377\354\354\354\377\343\343\343\377OOO\377\225\225\225\377\324\324" + "\324\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0" + "\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365" + "\365\365\377\365\365\365\377\344\344\344\377>>>\377\365\365\365\377\356" + "\356\356\377\355\355\355\377\354\354\354\377\343\343\343\377MMM\377\201" + "\201\201\377\306\306\306\377\344\344\344\377\344\344\344\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377\373\373\373\377\365\365\365\377\365\365\365\377\344" + "\344\344\377jjj\377CCC\377\363\363\363\377\354\354\354\377\343\343\343" + "\377OOO\377jjj\377\306\306\306\377\306\306\306\377\365\365\365\377\344" + "\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0" + "\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365\365\365\377" + "\344\344\344\377ccc\377\377\377\377\377\271\271\271\377OOO\377\360\360" + "\360\377OOO\377\225\225\225\377\306\306\306\377sss\377\306\306\306\377" + "\365\365\365\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0" + "\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377" + "\344\344\344\377ccc\377\377\377\377\377\365\365\365\377\344\344\344\377" + "\324\324\324\377OOO\377\254\254\254\377\306\306\306\377\344\344\344\377" + "\344\344\344\377|||\377\344\344\344\377\344\344\344\377\310\310\310\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\344\344\344\377sss\377\377\377\377\377\365\365\365\377\365\365" + "\365\377\365\365\365\377\365\365\365\377\344\344\344\377\344\344\344" + "\377\365\365\365\377\365\365\365\377\365\365\365\377\344\344\344\377" + "|||\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0" + "\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377|||\377\377\377\377\377" + "\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377\344" + "\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377\344\344" + "\344\377\344\344\344\377\344\344\344\377\344\344\344\377|||\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "sss\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377" + "\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274" + "\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274" + "\274\377\274\274\274\377\274\274\274\377ccc\377\0\0\0\377\0\0\0-\0\0" + "\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0m\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\207\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\1\0\0\0\10\0\0\0\31" + "\0\0\0(\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0" + "-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0(\0\0\0\31\0\0\0\10" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\16\0\0\0\21\0\0\0\21" + "\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0" + "\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\16\0\0\0\10\0" + "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0" + "\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail_compose) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail_compose[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail_compose[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\321\257" + "a\377\361\343\254\377\373\251\17\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\265\265" + "\265\377\240k\11\377\361\343\254\377\373\251\17\377\201`\0\377\0\0\0" + "\377\340\340\340\377\301\301\301\377\0\0\0\377\0\0\0D\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\364\364\364\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\375\375\375\377\375\375\375\377\0\0\0\377\346\303p\377\361\323\207\377" + "\325\217\14\377\0\0\0\377\262\262\262\377\303\303\303\377\373\373\373" + "\377\250\250\250\377\0\0\0\377\0\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\366\366\366\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\375\375\375\377\375\375\375\377\375\375\375\377\263\263" + "\263\377\240k\11\377\361\343\254\377\373\251\17\377\201`\0\377\0\0\0" + "\377\372\372\372\377\255\255\255\377vvv\377]]]\377@@@\377\0\0\0\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\366\366\366\377\377" + "\377\377\377\373\373\373\377\373\373\373\377\373\373\373\377\373\373" + "\373\377\370\370\370\377\0\0\0\377\346\303p\377\361\320~\377\325\217" + "\14\377\0\0\0\377\254\254\254\377\370\370\366\377\342\342\342\377\205" + "\205\205\377KKI\377\26\26\26\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\364\364\364\377\375\375\375\377\375\375\375" + "\377\373\373\373\377\373\373\373\377\373\373\372\377}}}\377\240k\11\377" + "\361\343\254\377\373\251\17\377\201`\0\377\0\0\0\377\364\364\364\377" + "\362\362\362\377\360\360\360\377\357\357\357\377\325\325\325\377\255" + "\255\255\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\362\362\362\377\371\371\371\377\366\366\366\377\366\366\366\377" + "\366\366\363\377\363\363\363\377\0\0\0\377\346\303p\377\361\320~\377" + "\325\217\14\377\0\0\0\377\207\207\206\377\345\345\345\377\342\342\342" + "\377\337\337\337\377\353\353\353\377\342\342\342\377\301\301\301\377" + "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\360\360" + "\360\377\370\370\370\377\370\370\370\377\370\370\370\377\370\370\366" + "\377\256\256\256\377{S\7\377\361\343\254\377\373\251\17\377\201`\0\377" + "\0\0\0\377\355\355\355\377\353\353\353\377\353\353\351\377\351\351\347" + "\377\351\351\347\377\340\340\336\377\277\277\277\377\0\0\0\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\357\357\357\377\363\363" + "\363\377\360\360\360\377\360\360\355\377\355\355\355\377\0\0\0\377\346" + "\303p\377\361\322\204\377\312\207\13\377\0\0\0\377\236\236\234\377\334" + "\334\331\377\331\331\331\377\331\331\326\377\326\326\324\377\345\345" + "\344\377\331\331\327\377\272\272\272\377\0\0\0\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\355\355\355\377\364\364\364\377\364" + "\364\364\377\362\362\362\377\252\252\252\377\240k\11\377\361\343\254" + "\377\373\251\17\377\201`\0\377\0\0\0\377\347\347\345\377\345\345\344" + "\377\345\345\344\377\344\344\342\377\340\340\336\377\342\342\340\377" + "\331\331\327\377\272\272\272\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\353\353\353\377\356\356\354\377\347\347\345" + "\377\345\345\345\377\0\0\0\377\346\303p\377\361\322\204\377\312\207\13" + "\377\0\0\0\377\227\227\226\377\324\324\321\377\342\342\340\377\340\340" + "\336\377\336\336\334\377\336\336\333\377\336\336\334\377\331\331\327" + "\377\275\275\274\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\347\347\347\377\357\357\355\377\353\353\353\377\246\246" + "\245\377\272|\12\377\373\251\17\377\373\251\17\377z[\0\377\0\0\0\377" + "\342\342\340\377\340\340\336\377\336\336\334\377\336\336\333\377\334" + "\334\331\377\333\333\331\377\333\333\331\377\325\325\323\377\274\274" + "\274\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\345\345\345\377\343\343\343\377\331\331\331\377\0\0\0\377\362\346\266" + "\377{{{\377pK\5\377\0\0\0\377ggd\377\313\313\307\377\311\311\307\377" + "\334\334\331\377\333\333\327\377\331\331\327\377\327\327\325\377\331" + "\331\327\377\327\327\323\377\264\264\264\377\0\0\0\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\342\342\340\377\345\345\344\377" + "\344\344\344\377\0\0\0\377\333\325\301\377~oW\377uX\0\377\0\0\0\377\334" + "\334\331\377\333\333\331\377\333\333\327\377\331\331\325\377\327\327" + "\323\377\325\325\323\377\325\325\321\377\327\327\323\377\320\320\316" + "\377\272\272\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\336\336\334\377\335\335\333\377\321\321\317\377\16\16\16" + "\377SSS\377\0\0\0\377\0\0\0\377\215\215\213\377\304\304\301\377\304\304" + "\277\377\301\301\274\377\325\325\321\377\325\325\321\377\323\323\320" + "\377\321\321\320\377\323\323\320\377\320\320\316\377\272\272\270\377" + "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\334\334" + "\333\377\340\340\334\377\335\335\333\377\0\0\0\377\0\0\0\377\211\211" + "\207\377\311\311\306\377\315\315\312\377\320\320\315\377\316\316\313" + "\377\320\320\315\377\320\320\315\377\320\320\315\377\320\320\315\377" + "\317\317\314\377\320\320\315\377\320\320\314\377\266\266\266\377\0\0" + "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\333\333\331" + "\377\324\324\320\377\303\303\300\377[[[\377\221\221\215\377\221\221\217" + "\377\237\237\235\377\257\257\254\377\271\271\266\377\276\276\273\377" + "\303\303\300\377\305\305\302\377\310\310\305\377\312\312\307\377\313" + "\313\310\377\314\314\311\377\314\314\310\377\262\262\262\377\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\322\322\320\377\322" + "\322\317\377\317\317\314\377\277\277\275\377\237\237\234\377\210\210" + "\206\377\207\207\205\377\214\214\212\377\225\225\223\377\234\234\232" + "\377\250\250\245\377\261\261\256\377\265\265\263\377\273\273\270\377" + "\276\276\273\377\277\277\274\377\302\302\276\377\262\262\262\377\0\0" + "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\321\321\316" + "\377\320\320\314\377\314\314\311\377\317\317\314\377\303\303\300\377" + "\256\256\253\377\235\235\232\377\227\227\224\377\227\227\224\377\224" + "\224\221\377\232\232\227\377\237\237\234\377\243\243\240\377\250\250" + "\245\377\252\252\247\377\260\260\254\377\270\270\265\377\260\260\256" + "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\322" + "\322\317\377\321\321\316\377\321\321\316\377\321\321\316\377\317\317" + "\315\377\313\313\310\377\276\276\274\377\264\264\260\377\254\254\250" + "\377\244\244\242\377\240\240\234\377\240\240\234\377\244\244\240\377" + "\244\244\242\377\250\250\246\377\253\253\247\377\262\262\256\377\244" + "\244\244\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\321\321\320\377\321\321\316\377\320\320\316\377\316\316\314\377" + "\316\316\312\377\316\316\312\377\314\314\310\377\306\306\302\377\274" + "\274\271\377\263\263\257\377\264\264\260\377\253\253\251\377\246\246" + "\243\377\240\240\235\377\246\246\243\377\252\252\247\377\254\254\251" + "\377\241\241\241\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\261\261\257\377\264\264\263\377\264\264\261\377\264\264" + "\261\377\264\264\261\377\263\263\261\377\263\263\261\377\262\262\256" + "\377\256\256\252\377\247\247\244\377\242\242\240\377\245\245\241\377" + "\245\245\241\377\231\231\227\377\222\222\220\377\224\224\220\377\235" + "\235\233\377\205\205\203\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0r\0\0" + "\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail_forward) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail_forward[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail_forward[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" + "\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0" + "\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0m\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377" + "SSS\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\376\376\376\377\375\375\375\377\374\374\374\377\373\373\373\377\371" + "\371\371\377\370\370\370\377\367\367\367\377\366\366\366\377\365\365" + "\365\377\364\364\364\377\343\343\343\377SSS\377\0\0\0\377\0\0\0\31\0" + "\0\0\10\0\0\0\1\0\0\0\0\0\0\0\2\0\0\0\377\356\356\356\377OOO\377\377" + "\377\377\377\365\365\365\377\364\364\364\377\363\363\363\377\362\362" + "\362\377\362\362\362\377\361\361\361\377\360\360\360\377\360\360\360" + "\377\357\357\357\377\356\356\356\377\355\355\355\377\343\343\343\377" + "OOO\377\256\256\256\377\0\0\0\377\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0" + "\0\2\0\0\0\377\377\377\377\377\344\344\344\377CCC\377\375\375\375\377" + "\363\363\363\377\362\362\362\377\362\362\362\377\361\361\361\377\360" + "\360\360\377\357\357\357\377\356\356\356\377\356\356\356\377\355\355" + "\355\377\343\343\343\377OOO\377\254\254\254\377\310\310\310\377\0\0\0" + "\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377" + "\365\365\365\377\344\344\344\377OOO\377\373\373\373\377\361\361\361\377" + "\360\360\360\377\360\360\360\377\357\357\357\377\356\356\356\377\355" + "\355\355\377\355\355\355\377\343\343\343\377CCC\377\240\240\240\377\324" + "\324\324\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0" + "\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377\365\365\365\377" + "\344\344\344\377CCC\377\370\370\370\377\360\360\360\377\357\357\357\377" + "\356\356\356\377\355\355\355\377\354\354\354\377\343\343\343\377OOO\377" + "\225\225\225\377\324\324\324\377\344\344\344\377\310\310\310\377\0\0" + "\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377" + "\377\365\365\365\377\365\365\365\377\365\365\365\377\344\344\344\377" + ">>>\377\365\365\365\377\356\356\356\377\355\355\355\377\354\354\354\377" + "\343\343\343\377MMM\377\201\201\201\377\306\306\306\377\344\344\344\377" + "\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0" + "\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377\365\365\365" + "\377\365\365\365\377\344\344\344\377jjj\377CCC\377\363\363\363\377\354" + "\354\354\377\343\343\343\377OOO\377jjj\377\306\306\306\377\306\306\306" + "\377\365\365\365\377\0\0\0\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0" + "\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377" + "\365\365\365\377\344\344\344\377ccc\377\377\377\377\377\271\271\271\377" + "OOO\377\360\360\360\377OOO\377\225\225\225\377\306\306\306\377sss\377" + "\306\306\306\377\365\365\365\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" + "-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373" + "\373\377\344\344\344\377ccc\377\377\377\377\377\365\365\365\377\344\344" + "\344\377\324\324\324\377OOO\377\254\254\254\377\306\306\306\377\344\344" + "\344\377\344\344\344\377|||\377\344\344\344\377\0\0\0\377[\210\262\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\344\344\344\377sss\377\377\377\377\377\365\365\365\377\365\365" + "\365\377\365\365\365\377\365\365\365\377\344\344\344\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\236\270\321" + "\377P\200\255\377\0\0\0\377\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377|||\377\377\377\377\377\344\344\344\377\344\344\344\377" + "\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377\0\0" + "\0\377\265\311\334\377\257\305\332\377\262\307\333\377\266\312\335\377" + "\266\312\335\377\266\312\335\377\244\275\325\377\234\267\321\377P\200" + "\255\377\10\15\21\377\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377sss\377\274\274" + "\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274" + "\377\274\274\274\377\274\274\274\377\274\274\274\377\0\0\0\377\233\266" + "\320\377\240\272\323\377\234\267\321\377\234\267\321\377\233\266\320" + "\377\232\265\317\377\240\272\323\377\234\267\321\377\227\263\316\377" + "_\213\264\377\0\0\0\377\0\0\0\0\0\0\0\2\0\0\0m\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\221\260\314\377\236\270\321\377\232\265\317\377\232\265\317" + "\377\233\266\320\377\234\267\321\377\234\267\321\377\234\267\321\377" + "\240\272\323\377\225\262\316\377Ly\243\377\0\0\0\377\0\0\0\1\0\0\0\10" + "\0\0\0\31\0\0\0(\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0" + "\0\377It\234\377\77e\210\377\77e\210\377\77e\210\377\77e\210\377\77e" + "\210\377\77e\210\377\77e\210\377\77e\210\377*C[\377\0\0\0\377\0\0\0\0" + "\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\16\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21" + "\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\377Eo\226\3777Yx\3777Yx\3777Yx\377" + "7Yx\3777Yx\377\77e\210\377\77e\210\377*C[\377\0\0\0\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\77e\210\377*C[\377\0\0\0\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377*C[\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail_receive) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail_receive[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail_receive[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\311\333\307\377\311\332\307\377\311\332\307\377\201\232y\377" + "XuM\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\262\311\260\377\251\304\247\377\255\310\253" + "\377[yP\377MgD\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\273\320\271\377\256\307\254\377" + "\256\307\254\377[yP\377MgD\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\324\0\0\0\377\0\0\0\377\0\0\0\377\271\316\267" + "\377\256\307\254\377\252\307\250\377[yP\377MgD\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\315\336\313" + "\377\261\311\260\377\265\316\265\377\260\311\260\377\255\306\253\377" + "[yP\377[yP\377[yP\377MhD\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\377\315\336\313\377\264\313\262\377\263\312\261" + "\377\255\306\253\377[yP\377[yP\377MhD\377\0\0\0\377\0\0\0\2\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "f\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\315\336" + "\313\377\252\307\250\377\260\307\256\377[yP\377MhD\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0m\0\0\0\10\0\0\0" + "\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377SSS\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\376\376\376\377\0\0\0\377\315\336" + "\313\377\255\310\253\377TqJ\377\0\0\0\377\367\367\367\377\366\366\366" + "\377\365\365\365\377\364\364\364\377\343\343\343\377SSS\377\0\0\0\377" + "\0\0\0\31\0\0\0\10\0\0\0\1\0\0\0\0\0\0\0\2\0\0\0\377\356\356\356\377" + "OOO\377\377\377\377\377\365\365\365\377\364\364\364\377\363\363\363\377" + "\362\362\362\377\0\0\0\377\317\337\314\377\0\0\0\377\360\360\360\377" + "\357\357\357\377\356\356\356\377\355\355\355\377\343\343\343\377OOO\377" + "\256\256\256\377\0\0\0\377\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\2\0" + "\0\0\377\377\377\377\377\344\344\344\377CCC\377\375\375\375\377\363\363" + "\363\377\362\362\362\377\362\362\362\377\361\361\361\377---\377\357\357" + "\357\377\356\356\356\377\356\356\356\377\355\355\355\377\343\343\343" + "\377OOO\377\254\254\254\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21" + "\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\344" + "\344\344\377OOO\377\373\373\373\377\361\361\361\377\360\360\360\377\360" + "\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377\355\355" + "\355\377\343\343\343\377CCC\377\240\240\240\377\324\324\324\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377\373\373\373\377\365\365\365\377\344\344\344\377CCC\377" + "\370\370\370\377\360\360\360\377\357\357\357\377\356\356\356\377\355" + "\355\355\377\354\354\354\377\343\343\343\377OOO\377\225\225\225\377\324" + "\324\324\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21" + "\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365" + "\365\365\377\365\365\365\377\344\344\344\377>>>\377\365\365\365\377\356" + "\356\356\377\355\355\355\377\354\354\354\377\343\343\343\377MMM\377\201" + "\201\201\377\306\306\306\377\344\344\344\377\344\344\344\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377\373\373\373\377\365\365\365\377\365\365\365\377\344" + "\344\344\377jjj\377CCC\377\363\363\363\377\354\354\354\377\343\343\343" + "\377OOO\377jjj\377\306\306\306\377\306\306\306\377\365\365\365\377\344" + "\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0" + "\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365\365\365\377" + "\344\344\344\377ccc\377\377\377\377\377\271\271\271\377OOO\377\360\360" + "\360\377OOO\377\225\225\225\377\306\306\306\377sss\377\306\306\306\377" + "\365\365\365\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0" + "\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377" + "\344\344\344\377ccc\377\377\377\377\377\365\365\365\377\344\344\344\377" + "\324\324\324\377OOO\377\254\254\254\377\306\306\306\377\344\344\344\377" + "\344\344\344\377|||\377\344\344\344\377\344\344\344\377\310\310\310\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\344\344\344\377sss\377\377\377\377\377\365\365\365\377\365\365" + "\365\377\365\365\365\377\365\365\365\377\344\344\344\377\344\344\344" + "\377\365\365\365\377\365\365\365\377\365\365\365\377\344\344\344\377" + "|||\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0" + "\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377|||\377\377\377\377\377" + "\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377\344" + "\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377\344\344" + "\344\377\344\344\344\377\344\344\344\377\344\344\344\377|||\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377" + "sss\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377" + "\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274" + "\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274" + "\274\377\274\274\274\377\274\274\274\377ccc\377\0\0\0\377\0\0\0-\0\0" + "\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0m\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\207\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\1\0\0\0\10\0\0\0\31" + "\0\0\0(\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0" + "-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0(\0\0\0\31\0\0\0\10" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\16\0\0\0\21\0\0\0\21" + "\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0" + "\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\16\0\0\0\10\0" + "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0" + "\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0" + "\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail_reply) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail_reply[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail_reply[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0" + "\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2" + "\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0m\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0" + "\0\0\0\1\0\0\0\377SSS\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\376\376\376\377\375\375\375\377\374\374\374\377" + "\373\373\373\377\371\371\371\377\370\370\370\377\367\367\367\377\366" + "\366\366\377\365\365\365\377\364\364\364\377\343\343\343\377SSS\377\0" + "\0\0\377\0\0\0\31\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\356\356" + "\356\377OOO\377\377\377\377\377\365\365\365\377\364\364\364\377\363\363" + "\363\377\362\362\362\377\362\362\362\377\361\361\361\377\360\360\360" + "\377\360\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377" + "\343\343\343\377OOO\377\256\256\256\377\0\0\0\377\0\0\0(\0\0\0\17\0\0" + "\0\0\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\344\344\344\377CCC\377" + "\375\375\375\377\363\363\363\377\362\362\362\377\362\362\362\377\361" + "\361\361\377\360\360\360\377\357\357\357\377\356\356\356\377\356\356" + "\356\377\355\355\355\377\343\343\343\377OOO\377\254\254\254\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377\365\365\365\377\344\344\344\377OOO\377\373\373\373\377" + "\361\361\361\377\360\360\360\377\360\360\360\377\357\357\357\377\356" + "\356\356\377\355\355\355\377\355\355\355\377\343\343\343\377CCC\377\240" + "\240\240\377\324\324\324\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21" + "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377\365" + "\365\365\377\344\344\344\377CCC\377\370\370\370\377\360\360\360\377\357" + "\357\357\377\356\356\356\377\355\355\355\377\354\354\354\377\343\343" + "\343\377OOO\377\225\225\225\377\324\324\324\377\344\344\344\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377" + "\377\377\377\377\365\365\365\377\365\365\365\377\365\365\365\377\344" + "\344\344\377>>>\377\365\365\365\377\356\356\356\377\355\355\355\377\354" + "\354\354\377\343\343\343\377MMM\377\201\201\201\377\306\306\306\377\344" + "\344\344\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21" + "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377=\32" + "\23\377\365\365\365\377\344\344\344\377jjj\377CCC\377\363\363\363\377" + "\354\354\354\377\343\343\343\377OOO\377jjj\377\306\306\306\377\306\306" + "\306\377\365\365\365\377\344\344\344\377\310\310\310\377\0\0\0\377\0" + "\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\0\0" + "\0\377\0\0\0\377\344\344\344\377ccc\377\377\377\377\377\271\271\271\377" + "OOO\377\360\360\360\377OOO\377\225\225\225\377\306\306\306\377sss\377" + "\306\306\306\377\365\365\365\377\344\344\344\377\310\310\310\377\0\0" + "\0\377\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\0\0\0\377\352" + "\300\272\377\0\0\0\377ccc\377\377\377\377\377\365\365\365\377\344\344" + "\344\377\324\324\324\377OOO\377\254\254\254\377\306\306\306\377\344\344" + "\344\377\344\344\344\377|||\377\344\344\344\377\344\344\344\377\310\310" + "\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377" + "\352\300\272\377\337\236\225\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\344\344\344\377\365\365\365\377\365" + "\365\365\377\365\365\365\377\344\344\344\377|||\377\344\344\344\377\310" + "\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\377\352" + "\300\272\377\340\241\230\377\341\245\235\377\342\247\236\377\343\253" + "\243\377\342\247\236\377\343\252\242\377\337\236\225\377\314bS\377\0" + "\0\0\377\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344" + "\377\344\344\344\377\344\344\344\377|||\377\310\310\310\377\0\0\0\377" + "\0\0\0-\0\0\0\21\0\0\0\0\0\0\0\377\352\300\272\377\335\227\215\377\337" + "\237\227\377\337\236\225\377\336\232\220\377\335\226\214\377\335\226" + "\214\377\336\232\220\377\335\224\212\377\261C4\377\0\0\0\377\274\274" + "\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274" + "\377\274\274\274\377\274\274\274\377ccc\377\0\0\0\377\0\0\0-\0\0\0\21" + "C\31\23\377\352\302\274\377\336\232\220\377\337\234\222\377\335\231\217" + "\377\335\231\217\377\335\227\215\377\336\232\220\377\336\232\220\377" + "\336\232\220\377\336\232\220\377\265E5\377\0\0\0\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\207\0\0\0(\0\0\0\17\0\0\0\0\0\0\0\377e&\35\377\230:,\377\230:,\377" + "\230:,\377\230:,\377\230:,\377\230:,\377\230:,\377\230:,\377|/$\377\0" + "\0\0\377\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0" + "\0(\0\0\0\31\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\377e&\35\377\230:,\377\230" + ":,\377c%\35\377c%\35\377c%\35\377c%\35\377c%\35\377l)\37\377\0\0\0\377" + "\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0" + "\21\0\0\0\16\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377e&\35" + "\377\230:,\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0" + "\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377e&\35\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mail_send) +#endif +#ifdef __GNUC__ +static const guint8 stock_mail_send[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mail_send[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0O\77\12\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\364\346\265\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\364\345" + "\263\377\355\326\204\377u_\20\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\364\345" + "\263\377\355\325\200\377\356\326\205\377\257\215\30\377u_\20\377\0\0" + "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\364\345\263\377\357\331\214\377\356\330\213\377\355\325\202" + "\377\257\215\30\377\257\215\30\377u_\20\377\0\0\0\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\377\364\345\263\377\356\330\211\377" + "\357\332\222\377\356\330\211\377\355\325\202\377\257\215\30\377\257\215" + "\30\377\257\215\30\377u_\20\377\0\0\0\377\0\0\0\2\0\0\0\2\0\0\0\2\0\0" + "\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\360\333\223\377\355\326\204" + "\377\355\325\200\377\257\215\30\377s]\20\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0m\0\0\0\10\0\0\0\2\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\377SSS\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\0\0\0\377\360\334\227\377\355\326\204\377" + "\355\326\204\377\257\215\30\377s]\20\377\0\0\0\377\366\366\366\377\365" + "\365\365\377\364\364\364\377\343\343\343\377SSS\377\0\0\0\377\0\0\0\31" + "\0\0\0\10\0\0\0\1\0\0\0\0\0\0\0\2\0\0\0\377\356\356\356\377OOO\377\377" + "\377\377\377\365\365\365\377\364\364\364\377\0\0\0\377\356\330\211\377" + "\355\323|\377\355\326\204\377\257\215\30\377s]\20\377\0\0\0\377\356\356" + "\356\377\355\355\355\377\343\343\343\377OOO\377\256\256\256\377\0\0\0" + "\377\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377" + "\344\344\344\377CCC\377\375\375\375\377\363\363\363\377\0\0\0\377\344" + "\277=\377\313\244\34\377\321\250\34\377\220t\23\377|d\21\377\0\0\0\377" + "\355\355\355\377\343\343\343\377OOO\377\254\254\254\377\310\310\310\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\365\365\365\377\344\344\344\377OOO\377\373\373\373\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\343" + "\343\343\377CCC\377\240\240\240\377\324\324\324\377\310\310\310\377\0" + "\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377" + "\377\373\373\373\377\365\365\365\377\344\344\344\377CCC\377\370\370\370" + "\377\360\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377" + "\354\354\354\377\343\343\343\377OOO\377\225\225\225\377\324\324\324\377" + "\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0" + "\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365\365\365" + "\377\365\365\365\377\344\344\344\377>>>\377\365\365\365\377\356\356\356" + "\377\355\355\355\377\354\354\354\377\343\343\343\377MMM\377\201\201\201" + "\377\306\306\306\377\344\344\344\377\344\344\344\377\310\310\310\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377" + "\377\377\373\373\373\377\365\365\365\377\365\365\365\377\344\344\344" + "\377jjj\377CCC\377\363\363\363\377\354\354\354\377\343\343\343\377OO" + "O\377jjj\377\306\306\306\377\306\306\306\377\365\365\365\377\344\344" + "\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0" + "\0\0\2\0\0\0\377\377\377\377\377\365\365\365\377\365\365\365\377\344" + "\344\344\377ccc\377\377\377\377\377\271\271\271\377OOO\377\360\360\360" + "\377OOO\377\225\225\225\377\306\306\306\377sss\377\306\306\306\377\365" + "\365\365\377\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21" + "\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\373\373\373\377\344" + "\344\344\377ccc\377\377\377\377\377\365\365\365\377\344\344\344\377\324" + "\324\324\377OOO\377\254\254\254\377\306\306\306\377\344\344\344\377\344" + "\344\344\377|||\377\344\344\344\377\344\344\344\377\310\310\310\377\0" + "\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377" + "\377\344\344\344\377sss\377\377\377\377\377\365\365\365\377\365\365\365" + "\377\365\365\365\377\365\365\365\377\344\344\344\377\344\344\344\377" + "\365\365\365\377\365\365\365\377\365\365\365\377\344\344\344\377|||\377" + "\344\344\344\377\310\310\310\377\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0" + "\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377|||\377\377\377\377\377\344\344" + "\344\377\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344" + "\377\344\344\344\377\344\344\344\377\344\344\344\377\344\344\344\377" + "\344\344\344\377\344\344\344\377\344\344\344\377|||\377\310\310\310\377" + "\0\0\0\377\0\0\0-\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\377sss\377\274" + "\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274" + "\274\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274" + "\377\274\274\274\377\274\274\274\377\274\274\274\377\274\274\274\377" + "\274\274\274\377\274\274\274\377ccc\377\0\0\0\377\0\0\0-\0\0\0\21\0\0" + "\0\2\0\0\0\0\0\0\0\2\0\0\0m\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\207" + "\0\0\0(\0\0\0\17\0\0\0\2\0\0\0\0\0\0\0\1\0\0\0\10\0\0\0\31\0\0\0(\0\0" + "\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0" + "\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0-\0\0\0(\0\0\0\31\0\0\0\10\0\0\0\1\0" + "\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\16\0\0\0\21\0\0\0\21\0\0\0\21\0" + "\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21" + "\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\16\0\0\0\10\0\0\0\2\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0" + "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0" + "\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_menu_about) +#endif +#ifdef __GNUC__ +static const guint8 stock_menu_about[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_menu_about[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (1024) */ + "\0\0\4\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (64) */ + "\0\0\0@" + /* width (16) */ + "\0\0\0\20" + /* height (16) */ + "\0\0\0\20" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\"\10\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0LN\23l\0\0\0\377\25\26\6#\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\11\0\0\0\377\356\366>\377\0\0\0\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\21\4\7dg\32" + "x\0\0\0\377\0\0\0\377\352\361=\377\360\370\77\377\313\3225\370\0\0\0" + "\377\0\0\0\377JL\23k\0\0\0\0\20\21\4\0dg\32\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\34\35\7\0\0\0\0\377\360\370\77\377\360\370\77\377\360\370\77\377\360" + "\370\77\377\360\370\77\377\360\370\77\377\351\360=\377\0\0\0\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\37\10%\0\0\0" + "\377\360\370\77\377\360\370\77\377\360\370\77\377\360\370\77\377\345" + "\354<\377\0\0\0\377\5\5\1\7\0\0\0\0\0\0\0\0\37\37\10\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\350\360=\377\360\370\77\377\360" + "\370\77\377\360\370\77\377\253\260-\372\0\0\0\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\360\370" + "\77\377\354\363>\377\0\0\0\377\357\367\77\377\316\3266\377\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\264\272/\363\0\0\0\377\30\30\6\77\0\0\0\377\315\3245\375" + "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\36\37\10g\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\26\27\5F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_menu_blank) +#endif +#ifdef __GNUC__ +static const guint8 stock_menu_blank[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_menu_blank[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (1024) */ + "\0\0\4\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (64) */ + "\0\0\0@" + /* width (16) */ + "\0\0\0\20" + /* height (16) */ + "\0\0\0\20" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_scores) +#endif +#ifdef __GNUC__ +static const guint8 stock_scores[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_scores[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\4\0\0\0\4\0\0" + "\0\3\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\215\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\227\0\0\0\22\0\0\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\2\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\341\341\341\377\0\0\0\377\0\0\0""2\0\0\0\22\0\0\0\2\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\377\377\377\377\377\353" + "\353\353\377\0\0\0\377\355\355\355\377\322\322\322\377\0\0\0\377\0\0" + "\0L\0\0\0\34\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0" + "\0\377\377\377\377\377\0\0\0\377\0\0\0\377\356\356\356\377\322\322\322" + "\377\0\0\0\377\0\0\0T\0\0\0\40\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\3\0" + "\0\0\4\0\0\0\10\0\0\0\377\377\377\377\377\355\355\355\377\0\0\0\377\357" + "\357\357\377\323\323\323\377\0\0\0\377\0\0\0U\0\0\0\40\0\0\0\4\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\215\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377" + "\377\356\356\356\377\0\0\0\377\360\360\360\377\324\324\324\377\0\0\0" + "\377\0\0\0W\0\0\0$\0\0\0\10\0\0\0\4\0\0\0\3\0\0\0\2\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\325\325\325\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\205\0\0\0\20\0\0\0\5\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\377\377\377\377\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\355\355\355\377\356\356\356\377\357\357\357\377\361\361" + "\361\377\362\362\362\377\363\363\363\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0" + "1\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\377\377" + "\377\377\353\353\353\377\354\354\354\377\0\0\0\377\356\356\356\377\357" + "\357\357\377\360\360\360\377\361\361\361\377\363\363\363\377\364\364" + "\364\377\365\365\365\377\0\0\0\377\0\0\0\377\0\0\0\377\333\333\333\377" + "\0\0\0\377\0\0\0K\0\0\0\34\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0" + "\0\0\377\377\377\377\377\0\0\0\377\0\0\0\377\0\0\0\377\357\357\357\377" + "\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363\377\365" + "\365\365\377\366\366\366\377\367\367\367\377\370\370\370\377\0\0\0\377" + "\334\334\334\377\0\0\0\377\0\0\0T\0\0\0\40\0\0\0\4\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\4\0\0\0\377\377\377\377\377\0\0\0\377\356\356\356\377\357" + "\357\357\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363" + "\363\377\364\364\364\377\365\365\365\377\367\367\367\377\370\370\370" + "\377\0\0\0\377\0\0\0\377\335\335\335\377\0\0\0\377\0\0\0U\0\0\0\40\0" + "\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\377\377\377\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\361\361\361\377\362\362\362\377\363\363\363" + "\377\364\364\364\377\365\365\365\377\366\366\366\377\367\367\367\377" + "\371\371\371\377\372\372\372\377\0\0\0\377\336\336\336\377\0\0\0\377" + "\0\0\0U\0\0\0\40\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\377" + "\377\377\377\357\357\357\377\360\360\360\377\361\361\361\377\362\362" + "\362\377\363\363\363\377\364\364\364\377\365\365\365\377\366\366\366" + "\377\367\367\367\377\370\370\370\377\0\0\0\377\0\0\0\377\0\0\0\377\337" + "\337\337\377\0\0\0\377\0\0\0U\0\0\0\40\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\4\0\0\0\377\341\341\341\377\323\323\323\377\324\324\324\377" + "\325\325\325\377\326\326\326\377\327\327\327\377\330\330\330\377\331" + "\331\331\377\331\331\331\377\332\332\332\377\333\333\333\377\334\334" + "\334\377\335\335\335\377\337\337\337\377\340\340\340\377\0\0\0\377\0" + "\0\0T\0\0\0\40\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\254\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\273\0\0\0L\0\0\0\34\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\2\0\0\0\23\0\0\0""5\0\0\0M\0\0\0T\0\0\0U\0\0\0U\0\0\0U\0\0\0U" + "\0\0\0U\0\0\0U\0\0\0U\0\0\0U\0\0\0U\0\0\0U\0\0\0U\0\0\0T\0\0\0L\0\0\0" + "2\0\0\0\22\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\23\0" + "\0\0\35\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40" + "\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\37\0\0\0\34\0\0\0" + "\22\0\0\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0" + "\0\0\3\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0" + "\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\3\0\0\0\2\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_mic) +#endif +#ifdef __GNUC__ +static const guint8 stock_mic[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_mic[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0<\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0<\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\377g\213" + "\254\377\77e\210\377\77e\210\377\77e\210\377\77e\210\377\77e\210\377" + "\77e\210\377*C[\377\0\0\0\377\375\375\375\377\221\221\221\377\212\212" + "\212\377\373\373\373\377\372\372\372\377\371\371\371\377\370\370\370" + "\377\366\366\366\377\365\365\365\377\363\363\363\377\355\355\355\377" + "\216\216\216\377\0\0\0\227\0\0\0\25\0\0\0\377d\207\247\3777Yx\3777Yx" + "\3777Yx\377\77e\210\377\77e\210\377*C[\377\0\0\0\377\377\377\377\377" + "\376\376\376\377\201\201\201\377zzz\377\373\373\373\377\371\371\371\377" + "\370\370\370\377\367\367\367\377\365\365\365\377\364\364\364\377\362" + "\362\362\377\357\357\357\377\323\323\323\377\0\0\0\314\0\0\0(\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\77e\210\377*C[\377\0\0\0\377" + "\375\375\375\377\376\376\376\377\375\375\375\377rrr\377kkk\377\356\356" + "\356\377\371\371\371\377\370\370\370\377\366\366\366\377\364\364\364" + "\377\363\363\363\377\361\361\361\377\357\357\357\377\367\367\367\377" + "\0\0\0\354\0\0\0""9\0\0\0\0\0\0\0\373\350\350\350\377\372\372\372\377" + "\0\0\0\377*C[\377\0\0\0\377\374\374\374\377\374\374\374\377\374\374\374" + "\377\374\374\374\377ccc\377[[[\377\313\313\313\377\345\345\345\377\367" + "\367\367\377\365\365\365\377\364\364\364\377\362\362\362\377\273\273" + "\273\377\356\356\356\377\370\370\370\377\0\0\0\374\0\0\0D\0\0\0\0\0\0" + "\0\373\336\336\336\377\371\371\371\377\0\0\0\377\0\0\0\377\373\373\373" + "\377\373\373\373\377\373\373\373\377\373\373\373\377\373\373\373\377" + "\221\221\221\377LLL\377EEE\377bbb\377\300\300\300\377\335\335\335\377" + "\362\362\362\377\361\361\361\377\265\265\265\377\355\355\355\377\370" + "\370\370\377\0\0\0\374\0\0\0J\0\0\0\0\0\0\0\346\332\332\332\377\370\370" + "\370\377\0\0\0\377\371\371\371\377\371\371\371\377\371\371\371\377\372" + "\372\372\377\372\372\372\377\372\372\372\377\352\352\352\377\276\276" + "\276\377ddd\377...\377'''\377III\377\361\361\361\377\357\357\357\377" + "\355\355\355\377\371\371\371\377\367\367\367\377\0\0\0\355\0\0\0J\0\0" + "\0\0\0\0\0\273\275\275\275\377\365\365\365\377\367\367\367\377\370\370" + "\370\377\370\370\370\377\370\370\370\377\370\370\370\377\370\370\370" + "\377\370\370\370\377\367\367\367\377\366\366\366\377\335\335\335\377" + "\276\276\276\377WWW\377xxx\377\357\357\357\377\356\356\356\377\354\354" + "\354\377\371\371\371\377\323\323\323\377\0\0\0\316\0\0\0D\0\0\0\0\0\0" + "\0t\177\177\177\377\341\341\341\377\366\366\366\377\366\366\366\377\366" + "\366\366\377\366\366\366\377\367\367\367\377\366\366\366\377\366\366" + "\366\377\365\365\365\377\364\364\364\377\364\364\364\377\362\362\362" + "\377\361\361\361\377\357\357\357\377\356\356\356\377\355\355\355\377" + "\364\364\364\377\370\370\370\377\214\214\214\377\0\0\0\237\0\0\0""9\0" + "\0\0\0\0\0\0\31\0\0\0\374\320\320\320\377\353\353\353\377\364\364\364" + "\377\364\364\364\377\365\365\365\377\364\364\364\377\364\364\364\377" + "\364\364\364\377\363\363\363\377\362\362\362\377\361\361\361\377\360" + "\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377\354\354" + "\354\377\370\370\370\377\361\361\361\377\0\0\0\374\0\0\0_\0\0\0(\0\0" + "\0\0\0\0\0\2\0\0\0\217\211\211\211\377\324\324\324\377\362\362\362\377" + "\362\362\362\377\362\362\362\377\362\362\362\377\362\362\362\377\361" + "\361\361\377\361\361\361\377\360\360\360\377\360\360\360\377\357\357" + "\357\377\356\356\356\377\355\355\355\377\354\354\354\377\371\371\371" + "\377\370\370\370\377\230\230\230\377\0\0\0\260\0\0\0H\0\0\0\25\0\0\0" + "\0\0\0\0\0\0\0\0\10\0\0\0\324\253\253\253\377\323\323\323\377\360\360" + "\360\377\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360" + "\377\357\357\357\377\357\357\357\377\356\356\356\377\356\356\356\377" + "\355\355\355\377\354\354\354\377\371\371\371\377\370\370\370\377\304" + "\304\304\377\0\0\0\335\0\0\0Q\0\0\0.\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\1" + "\0\0\0""6\0\0\0\352\253\253\253\377\322\322\322\377\344\344\344\377\356" + "\356\356\377\356\356\356\377\356\356\356\377\256\256\256\377\255\255" + "\255\377\355\355\355\377\354\354\354\377\353\353\353\377\370\370\370" + "\377\370\370\370\377\302\302\302\377\0\0\0\355\0\0\0p\0\0\0<\0\0\0\20" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0\330\202\202\202" + "\377\315\315\315\377\331\331\331\377\354\354\354\377\354\354\354\377" + "\354\354\354\377\354\354\354\377\353\353\353\377\364\364\364\377\370" + "\370\370\377\367\367\367\377\214\214\214\377\0\0\0\335\0\0\0q\0\0\0B" + "\0\0\0\32\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0" + "\0\32\0\0\0\242\0\0\0\374\210\210\210\377\310\310\310\377\335\335\335" + "\377\370\370\370\377\370\370\370\377\367\367\367\377\361\361\361\377" + "\300\300\300\377\0\0\0\374\0\0\0\260\0\0\0Q\0\0\0<\0\0\0\32\0\0\0\5\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0" + "\20\0\0\0>\0\0\0\227\0\0\0\314\0\0\0\354\0\0\0\374\0\0\0\374\0\0\0\355" + "\0\0\0\316\0\0\0\237\0\0\0_\0\0\0H\0\0\0.\0\0\0\20\0\0\0\4\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\1\0\0\0\10\0\0\0\25\0\0\0(\0\0\0""9\0\0\0D\0\0\0J\0\0\0J\0\0\0D\0\0" + "\0""9\0\0\0(\0\0\0\25\0\0\0\10\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\1\0\0\0\6\0\0\0\12\0\0\0\15\0\0\0\17\0\0\0\17\0\0\0\15\0\0\0\12" + "\0\0\0\6\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_timer_stopped) +#endif +#ifdef __GNUC__ +static const guint8 stock_timer_stopped[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_timer_stopped[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0" + "\0o\0\0\0\266\0\0\0\344\0\0\0\373\0\0\0\373\0\0\0\345\0\0\0\270\0\0\0" + "t\0\0\0\31\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\205\0\0\0\373\207" + "\207\207\377\300\300\300\377\323\323\323\377\326\326\326\377\325\325" + "\325\377\322\322\322\377\275\275\275\377\204\204\204\377\0\0\0\374\0" + "\0\0\217\0\0\0\10\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\314\223\223\223\377\324\324\324\377" + "\342\342\342\377\365\365\365\377\374\374\374\377\374\374\374\377\374" + "\374\374\377\373\373\373\377\363\363\363\377\354\354\354\377\341\341" + "\341\377\220\220\220\377\0\0\0\324\0\0\0""6\0\0\0\3\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)\0\0\0\344\277\277\277\377\336\336" + "\336\377\360\360\360\377\375\375\375\377\375\375\375\377\375\375\375" + "\377\316\316\316\377\310\310\310\377\374\374\374\377\373\373\373\377" + "\373\373\373\377\367\367\367\377\350\350\350\377\272\272\272\377\0\0" + "\0\352\0\0\0\77\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\314\267\267\267\377\342\342\342\377\373\373\373\377\375\375\375\377" + "\375\375\375\377\375\375\375\377\375\375\375\377\277\277\277\377\270" + "\270\270\377\373\373\373\377\373\373\373\377\372\372\372\377\371\371" + "\371\377\370\370\370\377\350\350\350\377\301\301\301\377\0\0\0\330\0" + "\0\0\32\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\205\207\207\207\377\336" + "\336\336\377\373\373\373\377\375\375\375\377\375\375\375\377\375\375" + "\375\377\375\375\375\377\375\375\375\377\260\260\260\377\251\251\251" + "\377\373\373\373\377\373\373\373\377\371\371\371\377\371\371\371\377" + "\367\367\367\377\366\366\366\377\345\345\345\377\217\217\217\377\0\0" + "\0\242\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\23\0\0\0\373\324\324\324\377\367" + "\367\367\377\375\375\375\377\375\375\375\377\375\375\375\377\375\375" + "\375\377\375\375\375\377\375\375\375\377\241\241\241\377\231\231\231" + "\377\373\373\373\377\372\372\372\377\371\371\371\377\370\370\370\377" + "\367\367\367\377\365\365\365\377\363\363\363\377\350\350\350\377\0\0" + "\0\374\0\0\0>\0\0\0\11\0\0\0\0\0\0\0o\207\207\207\377\342\342\342\377" + "\374\374\374\377\375\375\375\377\375\375\375\377\375\375\375\377\375" + "\375\375\377\376\376\376\377\375\375\375\377\221\221\221\377\212\212" + "\212\377\373\373\373\377\372\372\372\377\371\371\371\377\370\370\370" + "\377\366\366\366\377\365\365\365\377\363\363\363\377\355\355\355\377" + "\216\216\216\377\0\0\0\227\0\0\0\25\0\0\0\0\0\0\0\266\300\300\300\377" + "\364\364\364\377\374\374\374\377\374\374\374\377\375\375\375\377\375" + "\375\375\377\376\376\376\377\377\377\377\377\376\376\376\377\201\201" + "\201\377zzz\377\373\373\373\377\371\371\371\377\370\370\370\377\367\367" + "\367\377\365\365\365\377\364\364\364\377\362\362\362\377\357\357\357" + "\377\323\323\323\377\0\0\0\314\0\0\0(\0\0\0\0\0\0\0\346\323\323\323\377" + "\372\372\372\377\373\373\373\377\374\374\374\377\374\374\374\377\375" + "\375\375\377\375\375\375\377\376\376\376\377\375\375\375\377rrr\377k" + "kk\377\356\356\356\377\371\371\371\377\370\370\370\377\366\366\366\377" + "\364\364\364\377\363\363\363\377\361\361\361\377\357\357\357\377\367" + "\367\367\377\0\0\0\354\0\0\0""9\0\0\0\0\0\0\0\373\350\350\350\377\372" + "\372\372\377\337\337\337\377\373\373\373\377\374\374\374\377\374\374" + "\374\377\374\374\374\377\374\374\374\377\374\374\374\377ccc\377[[[\377" + "\313\313\313\377\345\345\345\377\367\367\367\377\365\365\365\377\364" + "\364\364\377\362\362\362\377\273\273\273\377\356\356\356\377\370\370" + "\370\377\0\0\0\374\0\0\0D\0\0\0\0\0\0\0\373\336\336\336\377\371\371\371" + "\377\332\332\332\377\372\372\372\377\373\373\373\377\373\373\373\377" + "\373\373\373\377\373\373\373\377\373\373\373\377\221\221\221\377LLL\377" + "EEE\377bbb\377\300\300\300\377\335\335\335\377\362\362\362\377\361\361" + "\361\377\265\265\265\377\355\355\355\377\370\370\370\377\0\0\0\374\0" + "\0\0J\0\0\0\0\0\0\0\346\332\332\332\377\370\370\370\377\371\371\371\377" + "\371\371\371\377\371\371\371\377\371\371\371\377\372\372\372\377\372" + "\372\372\377\372\372\372\377\352\352\352\377\276\276\276\377ddd\377." + "..\377'''\377III\377\361\361\361\377\357\357\357\377\355\355\355\377" + "\371\371\371\377\367\367\367\377\0\0\0\355\0\0\0J\0\0\0\0\0\0\0\273\275" + "\275\275\377\365\365\365\377\367\367\367\377\370\370\370\377\370\370" + "\370\377\370\370\370\377\370\370\370\377\370\370\370\377\370\370\370" + "\377\367\367\367\377\366\366\366\377\335\335\335\377\276\276\276\377" + "WWW\377xxx\377\357\357\357\377\356\356\356\377\354\354\354\377\371\371" + "\371\377\323\323\323\377\0\0\0\316\0\0\0D\0\0\0\0\0\0\0t\177\177\177" + "\377\341\341\341\377\366\366\366\377\366\366\366\377\366\366\366\377" + "\366\366\366\377\367\367\367\377\366\366\366\377\366\366\366\377\365" + "\365\365\377\364\364\364\377\364\364\364\377yyy\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\234" + "\0\0\0\0\0\0\0\31\0\0\0\374\320\320\320\377\353\353\353\377\364\364\364" + "\377\364\364\364\377\365\365\365\377\364\364\364\377\364\364\364\377" + "\364\364\364\377\363\363\363\377\362\362\362\377\361\361\361\377\0\0" + "\0\377\351\\\23\377\362g\37\377\356b\32\377\345Y\23\377\333T\22\377\322" + "S\27\377\312R\33\377\276D\17\377\0\0\0\377\0\0\0\0\0\0\0\2\0\0\0\217" + "\211\211\211\377\324\324\324\377\362\362\362\377\362\362\362\377\362" + "\362\362\377\362\362\362\377\362\362\362\377\361\361\361\377\361\361" + "\361\377\360\360\360\377\360\360\360\377\0\0\0\377\353a\33\377\376\362" + "\353\377\374\346\333\377\350k,\377\337e)\377\370\342\330\377\373\361" + "\355\377\300K\30\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\324\253" + "\253\253\377\323\323\323\377\360\360\360\377\360\360\360\377\360\360" + "\360\377\360\360\360\377\360\360\360\377\357\357\357\377\357\357\357" + "\377\356\356\356\377\0\0\0\377\345[\26\377\372\337\322\377\377\377\377" + "\377\372\346\334\377\372\344\331\377\377\377\377\377\364\334\322\377" + "\275G\23\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0""6\0\0\0\352\253" + "\253\253\377\322\322\322\377\344\344\344\377\356\356\356\377\356\356" + "\356\377\356\356\356\377\256\256\256\377\255\255\255\377\355\355\355" + "\377\0\0\0\377\335U\22\377\342d%\377\371\340\324\377\377\377\377\377" + "\377\377\377\377\365\336\323\377\307U\"\377\271B\16\377\0\0\0\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0\330\202\202\202\377\315\315" + "\315\377\331\331\331\377\354\354\354\377\354\354\354\377\354\354\354" + "\377\354\354\354\377\353\353\353\377\0\0\0\377\323O\21\377\332a)\377" + "\371\343\331\377\377\377\377\377\377\377\377\377\366\344\333\377\304" + "W(\377\265@\16\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5" + "\0\0\0\32\0\0\0\242\0\0\0\374\210\210\210\377\310\310\310\377\335\335" + "\335\377\370\370\370\377\370\370\370\377\367\367\367\377\0\0\0\377\312" + "N\23\377\367\341\327\377\377\377\377\377\364\335\323\377\364\335\323" + "\377\377\377\377\377\364\342\332\377\262B\23\377\0\0\0\377\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\20\0\0\0>\0\0\0\227\0\0" + "\0\314\0\0\0\354\0\0\0\374\0\0\0\374\0\0\0\355\0\0\0\377\302K\26\377" + "\370\353\345\377\363\333\321\377\304S\"\377\300R\"\377\361\332\320\377" + "\367\353\347\377\255A\25\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\10\0\0\0\25\0\0\0(\0\0\0""9\0\0\0D\0" + "\0\0J\0\0\0J\0\0\0\377\267@\16\377\272E\23\377\270C\21\377\266@\16\377" + "\263>\15\377\260>\20\377\253\77\23\377\2447\14\377\0\0\0\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" + "\0\6\0\0\0\12\0\0\0\15\0\0\0\17\0\0\0\17\0\0\0\206\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\177"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_trash) +#endif +#ifdef __GNUC__ +static const guint8 stock_trash[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_trash[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0R\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" + "X\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\220\34\34" + "\34\377vvv\377\346\346\346\377\323\323\323\377\303\303\303\377\220\220" + "\220\377III\377\0\0\0\377\0\0\0\276\0\0\0,\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\0\0\0\240\0\0\0" + "\377\0\0\0\377HG=\377\272\270\246\377\342\342\337\377\361\361\360\377" + "\352\351\346\377\362\362\356\377\353\352\345\377\301\300\265\377WVJ\377" + "RQF\377\0\0\0\377\0\0\0\377\0\0\0\227\0\0\0""3\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\377\250\246\217\377\275\273\241\377\300" + "\276\243\377\243\241\212\377ml\\\377||r\377LLI\377EE\77\377DC:\377oo" + "g\377\306\305\271\377\266\265\233\377ml]\377\263\261\233\377\247\246" + "\216\377\220\217z\377\0\0\0\377\0\0\0E\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\252\251\223\377\314\313\265\377\320\316\272\377\325\323" + "\301\377\256\255\243\377\224\223\212\377EDB\377##!\377541\377)(#\377" + "\36\36\32\377SRF\377\255\254\223\377\222\221\211\377\302\301\257\377" + "\261\257\226\377\254\252\222\377\223\222}\377\0\0\0\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\10\10\10\377\321\320\301\377\314\313\265\377\326\325" + "\304\377\337\336\321\377\316\315\300\377\254\254\246\377\220\217\212" + "\377~}w\377\\\\U\377GF>\377edV\377wve\377\200~o\377\276\275\247\377\265" + "\263\232\377\266\265\233\377\265\263\232\377\241\237\210\377\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\331\330\314\377\366\365\362" + "\377\333\332\321\377\332\331\316\377\345\344\331\377\320\317\303\377" + "\323\323\311\377\312\311\274\377\267\266\246\377\270\266\241\377\260" + "\257\226\377\241\237\210\377\271\270\235\377\271\267\235\377\270\266" + "\234\377\304\302\251\377\257\255\227\377\213\211v\377\0\0\0\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\251\230\377\266\266\262\377" + "\371\371\367\377\372\372\370\377\364\364\360\377\342\341\332\377\331" + "\331\316\377\333\332\317\377\325\323\301\377\323\321\276\377\304\302" + "\251\377\300\276\243\377\305\304\254\377\326\325\303\377\315\314\277" + "\377\273\272\255\377|zi\377qp`\377\0\0\0\336\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\23\23\23\316\231\230\202\377\257\256\235\377\303\303\276\377" + "\336\336\334\377\351\351\350\377\373\373\372\377\375\375\374\377\375" + "\375\375\377\374\373\372\377\371\371\367\377\362\362\357\377\352\351" + "\343\377\333\332\321\377\300\277\261\377\225\224\204\377xwf\377nm]\377" + "[[M\377\0\0\0\315\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\222]\\O\377\223" + "\222}\377\243\242\223\377\270\267\246\377\330\327\320\377\333\333\324" + "\377\323\322\312\377\310\310\303\377\306\305\275\377\275\274\255\377" + "\272\270\250\377\237\236\213\377\216\214x\377\214\213w\377\216\214x\377" + "zyh\377lk]\377NME\377\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""2" + "\0\0\0\377BBB\377{{s\377\237\237\226\377\322\321\307\377\334\333\322" + "\377\314\313\276\377\321\320\302\377\304\303\266\377\261\257\226\377" + "\261\257\226\377\261\257\226\377\232\230\203\377\200\177m\377}|k\377" + "ji^\377@@>\377\0\0\0\377\0\0\0""3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\37777-\377\17\17\17\377874\377xxu\377\231\230\223\377\212" + "\211~\377\263\262\244\377\252\252\236\377\243\241\212\377\207\206s\377" + "\217\215y\377baU\377TTQ\37711.\377\0\0\0\377++#\377\0\0\0\377\0\0\0\17" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377qq]\377WWK\377BB:\377" + "&&\40\377!!!\377\33\33\33\377\0\0\0\377$$$\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\26\26\23\377**\"\37700'\377\77\77""4\377\0\0\0\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377zze\377[[Q" + "\377\205\205v\377vvk\377\230\230\216\377uuk\377QQF\377\177\177t\377j" + "jX\377@@5\377bbQ\377TTE\377>>3\377UUF\37744+\377QQC\377\0\0\0\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\205\205n\377]" + "]T\377\221\221\202\377\202\202x\377\252\252\243\377zzq\377NNE\377\212" + "\212\200\377||m\377BB7\377``R\377ZZJ\377<<2\377NNA\37755,\377TTE\377" + "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\3\0\0\0\377" + "\205\205n\377[[Q\377\254\254\234\377\205\205{\377\273\273\263\377\243" + "\243\232\377TTK\377\223\223\212\377\221\221\205\377BB7\377``R\377hhV" + "\377AA6\377jjX\377CC7\377jjX\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\1\0\0\0\5\0\0\0\10\0\0\0\377\205\205n\377[[Q\377\244\244\223\377" + "\205\205{\377\301\301\266\377\261\261\242\377kk_\377\261\261\242\377" + "\235\235\213\377TTE\377\204\204p\377qq^\377CC7\377jjX\377CC7\377jjX\377" + "\0\0\0\377\0\0\0\6\0\0\0\3\0\0\0\0\0\0\0\2\0\0\0\12\0\0\0\24\0\0\0\377" + "\205\205n\377[[Q\377\245\245\224\377\205\205{\377\302\302\267\377\261" + "\261\242\377kk_\377\261\261\242\377\235\235\213\377TTE\377\204\204p\377" + "qq^\377CC7\377jjX\377CC7\377jjX\377\0\0\0\377\0\0\0\26\0\0\0\13\0\0\0" + "\2\0\0\0\3\0\0\0\26\0\0\0+\0\0\0\377\205\205n\377[[Q\377\235\235\213" + "\377\205\205{\377\301\301\266\377\261\261\242\377kk_\377\261\261\242" + "\377\235\235\213\377TTE\377\204\204p\377qq^\377CC7\377jjX\377CC7\377" + "jjX\377\0\0\0\377\0\0\0""1\0\0\0\32\0\0\0\4\0\0\0\7\0\0\0#\0\0\0I\0\0" + "\0\377{{e\377[[Q\377\244\244\223\377\205\205{\377\301\301\266\377\261" + "\261\242\377kk_\377\261\261\242\377\235\235\213\377TTE\377\204\204p\377" + "qq^\377CC7\377jjX\377CC7\377__O\377\0\0\0\377\0\0\0H\0\0\0*\0\0\0\7\0" + "\0\0\12\0\0\0,\0\0\0X\0\0\0\377ffT\377[[Q\377\244\244\223\377\202\202" + "x\377\301\301\266\377\261\261\242\377kk_\377\261\261\242\377\235\235" + "\213\377TTE\377\204\204p\377qq^\377CC7\377jjX\377II<\377WWH\377\0\0\0" + "\377\0\0\0P\0\0\0*\0\0\0\7\0\0\0\6\0\0\0\35\0\0\0C\0\0\0r\0\0\0\377W" + "WJ\377}}m\377vvi\377\263\263\250\377\241\241\224\377mma\377\263\263\245" + "\377\235\235\213\377TTE\377\204\204p\377iiW\377AA5\377VVG\377DD8\377" + "\0\0\0\377\0\0\0\177\0\0\0C\0\0\0\35\0\0\0\4\0\0\0\1\0\0\0\13\0\0\0\34" + "\0\0\0""2\0\0\0g\0\0\0\320\0\0\0\377\0\0\0\377YYQ\377XXI\377NN@\377t" + "tg\377aaS\377NNA\377II<\377II<\377\0\0\0\377\0\0\0\377\0\0\0\304\0\0" + "\0t\0\0\0>\0\0\0%\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\17\0" + "\0\0\31\0\0\0\37\0\0\0r\0\0\0\264\0\0\0\302\0\0\0\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\271\0\0\0\217\0\0\0S\0\0\0," + "\0\0\0*\0\0\0\33\0\0\0\10\0\0\0\1\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_trash_full) +#endif +#ifdef __GNUC__ +static const guint8 stock_trash_full[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_trash_full[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\10" + "\10\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\6\6\6\21\6\6\6K\16\16\16\377BBB\377JJJ\377>>>\377,,,\377\0" + "\0\0\377\6\6\6>\6\6\6!\0\0\0\0\0\0\0\0\0\0\0\0\10\10\10\377\10\10\10" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\6\6\6:\0\0\0\377\0\0\0\377\205\203q\377\360\355\330\377\362\361\351" + "\377\356\355\344\377\307\306\272\377SRF\377\0\0\0\377\0\0\0\377\6\6\6" + "K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\6\6\6>\20\20\20\377\302\300\245\377\301\277\245" + "\377zyg\377HG@\377''%\37765.\377\207\205r\377\240\236\210\377\243\241" + "\212\377\245\243\214\377\0\0\0\377\6\6\6!\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+++\377\323\321\274" + "\377\334\332\304\377\342\340\317\377\271\267\242\377db[\377986\377<<" + "3\377a`S\377\232\230\203\377\267\265\233\377\263\262\230\377\244\242" + "\213\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\10\10\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\350\344\323\377\364\361\351" + "\377\362\361\344\377\352\351\332\377\345\342\322\377\325\322\276\377" + "\303\301\247\377\257\255\224\377\300\276\244\377\306\304\254\377\270" + "\266\234\377ywf\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\10\10\10\377\10\10\10\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\211" + "u\377\361\355\322\377\373\370\351\377\371\365\355\377\370\367\356\377" + "\370\367\354\377\365\363\346\377\354\352\331\377\336\335\313\377\0\0" + "\0\377\0\0\0\377BA8\377\0\0\0\377\0\0\0\0\0\0\0>\0\0\0\377\0\0\0W\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\202RQF\377sqe\377" + "\237\235\221\377\344\341\310\377\351\345\317\377\342\340\313\377\321" + "\321\313\377\216\215\177\377\0\0\0\377\377\377\377\377\301\301\301\377" + "\0\0\0\377\0\0\0\240\0\0\0L\0\0\0\377\377\377\377\377\0\0\0\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\37\33\377440\377" + "KID\377hgb\377pof\377kkd\377nl]\377XWK\377++%\377\0\0\0\377\377\377\377" + "\377\222\222\222\377\2\2\2\377\0\0\0\377\346\346\346\377\0\0\0\377\0" + "\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0**#\377" + "\240\240\225\377MM@\377660\377**&\377//*\377\17\17\15\377\13\13\11\377" + "\20\20\15\377(($\377\0\0\0\377\274\274\274\377nnn\377\355\355\355\377" + "\0\0\0\377\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0++$\377\245\244\231\377\267\266\256\377qpg\377\241\241\222" + "\377tsc\377@@5\377ii[\377%%\36\377\34\34\34\377\354\354\354\377\317\317" + "\317\377ooo\377\257\257\257\377\0\0\0\377\0\0\0!\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,,%\377\255\255\243\377\331" + "\331\322\377\213\213\177\377\326\325\316\377\210\210{\377XWO\377\177" + "\177u\377\0\0\0\377\336\336\336\377\377\377\377\377\336\336\336\377\336" + "\336\336\377\311\311\311\377\0\0\0\377\0\0\0\77\0\0\0\1\0\0\0\1\0\0\0" + "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6,,%\377\255\255\243\377\332" + "\332\323\377\217\216\201\377\335\335\324\377\254\253\231\377]]R\377i" + "i`\377mmm\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\347\347\347\377\223\223\223\377\0\0\0\377\0\0\0+\0\0\0\13\0" + "\0\0\7\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\5\0\0\0\21++$\377~~u\377\330\330" + "\321\377\215\215\200\377\335\335\323\377\254\253\231\377PPG\377\30\30" + "\30\377\311\311\311\377\307\340\307\377x\265x\377\233\310\233\377\377" + "\377\377\377\347\347\347\377\306\306\306\377\0\0\0\377\0\0\0U\0\0\0\35" + "\0\0\0\27\0\0\0\15\0\0\0\3\0\0\0\1\0\0\0\11\0\0\0\34''!\377CC=\377\216" + "\216\206\377^^U\377\332\332\320\377\254\253\231\37755.\377]]]\377\324" + "\347\324\377]\246]\377\307\340\307\377\377\377\377\377]\246]\377\215" + "\272\215\377\345\345\345\377\206\206\206\377\0\0\0\377\0\0\0G\0\0\0'" + "\0\0\0\31\0\0\0\10\0\0\0\1\0\0\0\11\0\0\0\34\4\4\4k\6\6\6\377\6\6\6\377" + "BA:\377\217\217{\377zzl\377\0\0\0\377\304\304\304\377s\262s\377\307\340" + "\307\377\377\377\377\377\377\377\377\377x\265x\377n\253n\377\345\345" + "\345\377\220\220\220\377\0\0\0\377\0\0\0w\0\0\0.\0\0\0\"\0\0\0\16\0\0" + "\0\1\0\0\0\5\0\0\0\23\0\0\0&\0\0\0""0\4\4\4y\6\6\6\377\0\0\0\377\17\17" + "\17\377\0\0\0\377\327\327\327\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\364\364\364\377S\235S\377" + "\277\277\277\377JJJ\377\0\0\0\377\0\0\0""1\0\0\0(\0\0\0\23\0\0\0\0\0" + "\0\0\1\0\0\0\6\0\0\0\23\0\0\0\40\0\0\0)\0\0\0-\0\0\0.\0\0\0""0\0\0\0" + "\377\354\354\354\377x\265x\377\377\377\377\377\377\377\377\377\307\340" + "\307\377\377\377\377\377\272\323\272\377\212\270\212\377\212\267\212" + "\377qqq\377\0\0\0\377\0\0\0""2\0\0\0*\0\0\0\27\0\0\0\0\0\0\0\0\0\0\0" + "\1\0\0\0\3\0\0\0\12\0\0\0\21\0\0\0\26\0\0\0\33\0\0\0\"\0\0\0\377\254" + "\254\254\377\354\354\354\377o\254o\377o\254o\377n\253n\377T\235T\377" + "\262\314\262\377\212\270\212\377\222\222\222\377aaa\377\0\0\0\377\0\0" + "\0""1\0\0\0'\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" + "\0\0\0\2\0\0\0\10\0\0\0\22\0\0\0U\0\0\0\377\0\0\0\377iii\377\200\200" + "\200\377}\220}\377\241\241\241\377\203\203\203\377zzz\377CCC\377\0\0" + "\0\377\0\0\0w\0\0\0*\0\0\0\34\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\7\0\0\0\21\0\0\0""9\0\0\0p\0" + "\0\0\234\0\0\0\304\0\0\0\377\0\0\0\377\0\0\0\377(((\377444\263888q\0" + "\0\0#\0\0\0\32\0\0\0\13\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\14\0\0\0\21\0\0\0\23" + "\0\0\0\24\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\25\0\0\0\25\0\0\0\24\0\0\0" + "\17\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\6\0\0" + "\0\6\0\0\0\7\0\0\0\10\0\0\0\7\0\0\0\6\0\0\0\6\0\0\0\4\0\0\0\2\0\0\0\1" + "\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_volume) +#endif +#ifdef __GNUC__ +static const guint8 stock_volume[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_volume[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0,\0\0\0\377\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0I@f\320I@f+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\377" + "\0\0\0\377\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0I@f\377I@f+\0\0\0\0I@f+I@f" + "\252I@f+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0-\0\0\0\377\256\253\237\377\0\0\0\377\0\0\0" + "\21\0\0\0\2\0\0\0\0\0\0\0\0I@f+I@f\377I@f+\0\0\0\0I@f\213I@fO\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0o\0\0\0\377\256\253\237\377\334\331\323\377\0\0\0\377\0\0\0\221" + "\0\0\0\4I@f\377I@f+\0\0\0\0I@f\252I@fO\0\0\0\0I@fcI@f\213\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\7\0\0\0\377\233\230\212\377\200~r" + "\377\0\0\0\377\256\253\237\377\342\341\334\377\362\362\360\377\0\0\0" + "\377\0\0\0\347\0\0\0\12I@f+I@f\377\0\0\0\0I@fOI@f\252\0\0\0\0I@f@I@f" + "\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\22\0\0\0\377\343\342" + "\335\377\266\266\261\377\0\0\0\377\356\355\352\377\352\352\346\377\305" + "\301\267\377\0\0\0\377III\377\0\0\0\24\0\0\0\0I@f\377\0\0\0\0I@f+I@f" + "\320\0\0\0\0I@f#I@f\320\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0" + "\30\0\0\0\377\260\254\234\377\222\216\201\377\0\0\0\377\315\312\301\377" + "\270\264\246\377\277\273\257\377\0\0\0\377\11\11\11\377\0\0\0\30\0\0" + "\0\0I@f\377\0\0\0\0\0\0\0\0I@f\377\0\0\0\0\0\0\0\0I@f\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\31\0\0\0\377\233\230\212\377\200~" + "r\377\0\0\0\377\236\232\214\377\260\254\234\377\260\254\234\377\0\0\0" + "\377+++\377\0\0\0\27\0\0\0\0I@f\377\0\0\0\0I@f+I@f\320\0\0\0\0I@f#I@" + "f\320\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\31\0\0\0\377yvl\377" + "dbY\377\0\0\0\377\236\232\214\377\236\232\214\377\236\232\214\377\0\0" + "\0\377\10\10\10\376\0\0\0\27I@f+I@f\377\0\0\0\0I@fOI@f\252\0\0\0\0I@" + "f@I@f\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\31\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\240\0\0\0\377\215\212}\377\236\232\214\377" + "\0\0\0\377\0\0\0\300\0\0\0\30I@f\377I@f+\0\0\0\0I@f\252I@fO\0\0\0\0I" + "@fYI@f\213\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\30\0\0\0>\0" + "\0\0S\0\0\0S\0\0\0Q\0\0\0r\0\0\0\377~{p\377\0\0\0\377\0\0\0=\0\0\0\32" + "\0\0\0\0\0\0\0\0I@f+I@f\320I@f+\0\0\0\0I@f\213I@fO\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\2\0\0\0\22\0\0\0/\0\0\0=\0\0\0;\0\0\0""8\0\0\0C" + "\0\0\0o\0\0\0\377\0\0\0\377\0\0\0""1\0\0\0\26\0\0\0\0\0\0\0\0I@f\377" + "I@f+\0\0\0\0I@f+I@f\213I@f+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" + "\0\0\7\0\0\0\22\0\0\0\27\0\0\0\26\0\0\0\26\0\0\0%\0\0\0>\0\0\0l\0\0\0" + "\377\0\0\0\"\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I@f\320" + "I@f+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2" + "\0\0\0\3\0\0\0\3\0\0\0\4\0\0\0\15\0\0\0#\0\0\0;\0\0\0""8\0\0\0\30\0\0" + "\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\3\0\0\0\15\0\0\0\37\0\0\0%\0\0\0\21\0\0\0\2\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\3\0\0\0\11\0\0\0\15\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_midi) +#endif +#ifdef __GNUC__ +static const guint8 stock_midi[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_midi[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (2304) */ + "\0\0\11\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (96) */ + "\0\0\0`" + /* width (24) */ + "\0\0\0\30" + /* height (24) */ + "\0\0\0\30" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\24\0\0\0n\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\0\0" + "\0\206\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0$\0\0\0^\0\0\0u\0\0\0\231\0\0\0\231\0\0\0Q\0\0\0<\0\0\0" + "(\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0\276\0\0\0X\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "^\0\0\0C\0\0\0u\0\0\0$\0\0\0\24\0\0\0E\0\0\0w\0\0\0}\0\0\0X\0\0\0""7" + "\0\0\0\15\0\0\0A\0\0\0\225\0\0\0""8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\271\0\0\0$\0\0\0" + "\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\0\0\0>\0\0\0\201\0\0\0\311" + "\0\0\0\200\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\0\0\0\364\0\0\0b\0\0\0\362\0\0\0" + "U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\355\377\377\377\377\0\0\0\355\377\377\377\377" + "\0\0\0\356\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\376\250\250\250\377\0\0\0\355\267\267" + "\267\377\0\0\0\356\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0{\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\377\323\321\316\377\274\272\265" + "\377\254\252\244\377\230\226\217\377\230\226\217\377\230\226\217\377" + "\230\226\217\377\230\226\217\377\230\226\217\377\230\226\217\377\230" + "\226\217\377\230\226\217\377\230\226\217\377\230\226\217\377\230\226" + "\217\377\230\226\217\377\230\226\217\377zxr\377b`[\377USO\377\0\0\0\377" + "\0\0\0\23\0\0\0\0\0\0\0\377\257\255\251\377\234\232\225\377\204\202|" + "\377fd]\377fd]\377fd]\377fd]\377fd]\377fd]\377fd]\377fd]\377fd]\377f" + "d]\377fd]\377fd]\377fd]\377fd]\377RPJ\377RPJ\377A@;\377\0\0\0\377\0\0" + "\0,\0\0\0\3\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0""6\0\0\0\7\0\0\0\377\315\315\315\377VVV\377" + "\0\0\0\377\312\312\312\377VVV\377\0\0\0\377\310\310\310\377VVV\377\0" + "\0\0\377\305\305\305\377\302\302\302\377\271\271\271\377\303\303\303" + "\377VVV\377\0\0\0\377\300\300\300\377VVV\377\0\0\0\377\276\276\276\377" + "\270\270\270\377\0\0\0\377\0\0\0\77\0\0\0\14\0\0\0\377\377\377\377\377" + "kkk\377\0\0\0\377\374\374\374\377kkk\377\0\0\0\377\370\370\370\377kk" + "k\377\0\0\0\377\366\366\366\377\361\361\361\377\346\346\346\377\362\362" + "\362\377kkk\377\0\0\0\377\360\360\360\377kkk\377\0\0\0\377\355\355\355" + "\377\346\346\346\377\0\0\0\377\0\0\0E\0\0\0\22\0\0\0\377\377\377\377" + "\377kkk\377\0\0\0\377\373\373\373\377kkk\377\0\0\0\377\367\367\367\377" + "kkk\377\0\0\0\377\365\365\365\377\361\361\361\377\345\345\345\377\362" + "\362\362\377kkk\377\0\0\0\377\357\357\357\377kkk\377\0\0\0\377\354\354" + "\354\377\345\345\345\377\0\0\0\377\0\0\0D\0\0\0\23\0\0\0\377\377\377" + "\377\377kkk\377\0\0\0\377\372\372\372\377kkk\377\0\0\0\377\367\367\367" + "\377kkk\377\0\0\0\377\365\365\365\377\360\360\360\377\344\344\344\377" + "\362\362\362\377kkk\377\0\0\0\377\356\356\356\377kkk\377\0\0\0\377\353" + "\353\353\377\344\344\344\377\0\0\0\377\0\0\0D\0\0\0\20\0\0\0\377\376" + "\376\376\377NNN\377\0\0\0\377\372\372\372\377NNN\377\0\0\0\377\366\366" + "\366\377NNN\377\0\0\0\377\365\365\365\377\357\357\357\377\344\344\344" + "\377\361\361\361\377NNN\377\0\0\0\377\356\356\356\377NNN\377\0\0\0\377" + "\353\353\353\377\343\343\343\377\0\0\0\377\0\0\0D\0\0\0\16\0\0\0\377" + "\375\375\375\377\374\374\374\377\360\360\360\377\372\372\372\377\367" + "\367\367\377\354\354\354\377\366\366\366\377\363\363\363\377\347\347" + "\347\377\364\364\364\377\356\356\356\377\343\343\343\377\360\360\360" + "\377\352\352\352\377\336\336\336\377\356\356\356\377\346\346\346\377" + "\332\332\332\377\353\353\353\377\343\343\343\377\0\0\0\377\0\0\0D\0\0" + "\0\16\0\0\0\377\374\374\374\377\373\373\373\377\357\357\357\377\372\372" + "\372\377\366\366\366\377\353\353\353\377\366\366\366\377\362\362\362" + "\377\347\347\347\377\363\363\363\377\356\356\356\377\342\342\342\377" + "\360\360\360\377\351\351\351\377\336\336\336\377\355\355\355\377\345" + "\345\345\377\331\331\331\377\352\352\352\377\342\342\342\377\0\0\0\377" + "\0\0\0D\0\0\0\16\0\0\0\377\374\374\374\377\373\373\373\377\370\370\370" + "\377\373\373\373\377\373\373\373\377\366\366\366\377\373\373\373\377" + "\371\371\371\377\366\366\366\377\371\371\371\377\370\370\370\377\363" + "\363\363\377\370\370\370\377\366\366\366\377\361\361\361\377\370\370" + "\370\377\364\364\364\377\360\360\360\377\370\370\370\377\341\341\341" + "\377\0\0\0\377\0\0\0D\0\0\0\16\0\0\0\377\301\301\301\377\300\300\300" + "\377\267\267\267\377\301\301\301\377\275\275\275\377\270\270\270\377" + "\275\275\275\377\272\272\272\377\264\264\264\377\272\272\272\377\270" + "\270\270\377\251\251\251\377\272\272\272\377\263\263\263\377\251\251" + "\251\377\266\266\266\377\257\257\257\377\246\246\246\377\264\264\264" + "\377\255\255\255\377\0\0\0\377\0\0\0D\0\0\0\16\0\0\0n\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\227\0\0\0\77\0" + "\0\0\14\0\0\0\6\0\0\0#\0\0\0>\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0" + "\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0" + "\0\0D\0\0\0D\0\0\0D\0\0\0\77\0\0\0#\0\0\0\6\0\0\0\1\0\0\0\6\0\0\0\14" + "\0\0\0\15\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0" + "\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0" + "\0\0\16\0\0\0\16\0\0\0\16\0\0\0\14\0\0\0\6\0\0\0\1"}; + + +/* GdkPixbuf RGBA C-Source image dump */ + +#ifdef __SUNPRO_C +#pragma align 4 (stock_authentication) +#endif +#ifdef __GNUC__ +static const guint8 stock_authentication[] __attribute__ ((__aligned__ (4))) = +#else +static const guint8 stock_authentication[] = +#endif +{ "" + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (9216) */ + "\0\0$\30" + /* pixdata_type (0x1010002) */ + "\1\1\0\2" + /* rowstride (192) */ + "\0\0\0\300" + /* width (48) */ + "\0\0\0""0" + /* height (48) */ + "\0\0\0""0" + /* pixel_data: */ + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\3" + "\0\0\0\4\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0\2\0\0\0\1\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\1\0\0\0\2\0\0\0\4\0\0\0\7\0\0\0\12\0\0\0\16\0\0\0\21\0\0\0\23\0\0" + "\0\23\0\0\0\23\0\0\0\21\0\0\0\16\0\0\0\12\0\0\0\7\0\0\0\4\0\0\0\2\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\10\0\0" + "\0\16\0\0\0g\0\0\0\253\0\0\0\332\0\0\0\366\1\1\1\377\0\0\0\366\0\0\0" + "\334\0\0\0\260\0\0\0q\0\0\0\36\0\0\0\25\0\0\0\16\0\0\0\10\0\0\0\4\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\5\0\0\0\14\0\0\0\203\0\0\0\354" + "\1\1\1\377\233\233\233\377\320\320\320\377\343\343\343\377\351\351\351" + "\377\335\335\335\377\306\306\306\377\221\221\221\377\1\1\1\377\0\0\0" + "\356\0\0\0\221\0\0\0#\0\0\0\27\0\0\0\15\0\0\0\5\0\0\0\2\0\0\0\1\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0" + "\0\0\7\0\0\0>\0\0\0\320\1\1\1\377\276\276\276\377\352\352\352\377\361" + "\361\361\377\363\363\363\377\361\361\361\377\355\355\355\377\352\352" + "\352\377\346\346\346\377\342\342\342\377\330\330\330\377\234\234\234" + "\377\1\1\1\377\0\0\0\330\0\0\0W\0\0\0\36\0\0\0\20\0\0\0\7\0\0\0\2\0\0" + "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\7" + "\0\0\0R\0\0\0\366```\377\343\343\343\377\363\363\363\377\360\360\360" + "\377\354\354\354\377\346\346\346\377\344\344\344\377\343\343\343\377" + "\342\342\342\377\342\342\342\377\342\342\342\377\341\341\341\377\326" + "\326\326\377\267\267\267\377EEE\377\0\0\0\367\0\0\0m\0\0\0\"\0\0\0\22" + "\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" + "\0\5\0\0\0>\0\0\0\366\205\205\205\377\354\354\354\377\363\363\363\377" + "\352\352\352\377\343\343\343\377\331\331\331\377\316\316\316\377\302" + "\302\302\377\302\302\302\377\314\314\314\377\325\325\325\377\334\334" + "\334\377\340\340\340\377\335\335\335\377\310\310\310\377\271\271\271" + "\377bbb\377\0\0\0\370\0\0\0Y\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\15\0\0\0\320^^^\377\354\354\354" + "\377\363\363\363\377\350\350\350\377\334\334\334\377\274\274\274\370" + "XXX\360\24\24\24\341\0\0\0\333\0\0\0\326\0\0\0\324{{{\352\276\276\276" + "\366\340\340\340\377\337\337\337\377\334\334\334\377\303\303\303\377" + "\273\273\273\377LLL\377\0\0\0\273\0\0\0""5\0\0\0\33\0\0\0\13\0\0\0\3" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\203\1\1\1\377\342\342" + "\342\377\363\363\363\377\351\351\351\377\330\330\330\377\227\227\227" + "\354\0\0\0\352\0\0\0\274\0\0\0g\0\0\0Y\0\0\0S\0\0\0Q\0\0\0Y\0\0\0\305" + "\234\234\234\351\335\335\335\371\340\340\340\377\330\330\330\377\273" + "\273\273\377\266\266\266\377\1\1\1\377\0\0\0x\0\0\0*\0\0\0\23\0\0\0\7" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\15\0\0\0\354\271\271\271\377\363" + "\363\363\377\353\353\353\377\330\330\330\377\212\212\212\356\0\0\0\342" + "\0\0\0}\0\0\0W\0\0\0F\0\0\0""9\0\0\0""0\0\0\0.\0\0\0""1\0\0\0;\0\0\0" + "\224\222\222\222\337\333\333\333\367\337\337\337\377\316\316\316\377" + "\263\263\263\377\223\223\223\377\0\0\0\313\0\0\0:\0\0\0\36\0\0\0\13\0" + "\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0E\1\1\1\377\352\352\352\377\361\361" + "\361\377\335\335\335\377\300\300\300\377\2\2\2\350\0\0\0\214\0\0\0T\0" + "\0\0<\0\0\0)\0\0\0\34\0\0\0\25\0\0\0\23\0\0\0\26\0\0\0\37\0\0\0.\0\0" + "\0\240\242\242\242\337\345\345\345\377\335\335\335\377\300\300\300\377" + "\266\266\266\377\1\1\1\377\0\0\0a\0\0\0)\0\0\0\22\0\0\0\5\0\0\0\1\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\2\0\0\0\11\0\0\0p\240\240\240\377\361\361\361\377\350\350\350\377" + "\306\306\306\377\201\201\201\354\0\0\0\322\0\0\0Z\0\0\0>\0\0\0%\0\0\0" + "\24\0\0\0\13\0\0\0\7\0\0\0\5\0\0\0\7\0\0\0\15\0\0\0\30\0\0\0""0\2\2\2" + "\313\334\334\334\357\352\352\352\377\321\321\321\377\256\256\256\377" + "vvv\377\0\0\0\220\0\0\0""4\0\0\0\30\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\14" + "\0\0\0\223\320\320\320\377\362\362\362\377\331\331\331\377\300\300\300" + "\377///\345\0\0\0\213\0\0\0J\0\0\0,\0\0\0\25\0\0\0\11\0\0\0\3\0\0\0\1" + "\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\13\0\0\0\31\0\0\0n\202\202\202\340\356" + "\356\356\377\334\334\334\377\265\265\265\377\237\237\237\377\0\0\0\274" + "\0\0\0>\0\0\0\37\0\0\0\13\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\16\0\0\0\325\341\341\341" + "\377\361\361\361\377\314\314\314\377\300\300\300\377\17\17\17\331\0\0" + "\0e\0\0\0=\0\0\0\40\0\0\0\16\0\0\0\5\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\1" + "\0\0\0\2\0\0\0\5\0\0\0\17\0\0\0#\37\37\37\323\354\354\354\377\342\342" + "\342\377\300\300\300\377\250\250\250\377\0\0\0\325\0\0\0G\0\0\0%\0\0" + "\0\16\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\2\0\0\0\7\0\0\0\24\0\0\0\336\346\346\346\377\357\357\357\377" + "\313\313\313\377\267\267\267\377\0\0\0\322\0\0\0W\0\0\0""6\0\0\0\34\0" + "\0\0\15\0\0\0\10\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\10\0\0" + "\0\16\0\0\0\35\0\0\0\301\351\351\351\377\345\345\345\377\305\305\305" + "\377\256\256\256\377\0\0\0\360\0\0\0O\0\0\0.\0\0\0\25\0\0\0\10\0\0\0" + "\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\6\0\0\0" + "\17\0\0\0\37\0\0\0\354\332\332\332\377\353\353\353\377\312\312\312\377" + "\253\253\253\377\0\0\0\322\0\0\0Y\0\0\0<\0\0\0%\0\0\0\32\0\0\0\26\0\0" + "\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\26\0\0\0\32\0\0\0&\0" + "\0\0\300\344\344\344\377\343\343\343\377\312\312\312\377\255\254\252" + "\377\0\0\0\371\0\0\0Y\0\0\0;\0\0\0\"\0\0\0\23\0\0\0\12\0\0\0\5\0\0\0" + "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5""1\26\7f7\31\10\3777\31\10\377" + "7\31\10\377\234R\27\377\270n%\377\271k&\377\247Z\34\3777\31\10\3777\31" + "\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" + "\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\377" + "7\31\10\377\245^\37\377\274s*\377\270o'\377\227U\32\3777\31\10\3777\31" + "\10\3777\31\10\3777\31\10\377%\20\5_\0\0\0\33\0\0\0\16\0\0\0\5\0\0\0" + "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\3\0\0\0\12""7\31\10\377\311\234b\377\364\341\313" + "\377\364\340\311\377\357\333\276\377\354\325\267\377\353\322\264\377" + "\352\322\263\377\353\317\260\377\351\316\256\377\350\314\253\377\347" + "\314\250\377\350\307\241\377\346\306\241\377\346\306\241\377\346\306" + "\241\377\346\306\241\377\346\306\241\377\350\307\241\377\350\307\241" + "\377\346\306\241\377\345\305\240\377\345\305\240\377\343\302\232\377" + "\340\300\233\377\340\275\223\377\337\272\222\377\337\272\216\377\335" + "\263\206\377\325\254|\377\242a\33\3777\31\10\377\0\0\0""1\0\0\0\32\0" + "\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\20""7\31\10\377\365\346\320" + "\377\352\323\257\377\352\317\257\377\343\302\232\377\332\270\213\377" + "\332\266\207\377\330\260\201\377\326\256\177\377\323\253|\377\321\251" + "t\377\317\245n\377\314\243m\377\312\237g\377\312\237g\377\312\237g\377" + "\312\237g\377\312\237g\377\312\237g\377\312\237g\377\310\236g\377\306" + "\233c\377\302\230a\377\302\223[\377\277\220R\377\274\210K\377\275\204" + "@\377\272~=\377\263v4\377\247j\"\377\215S\24\3777\31\10\377\0\0\0E\0" + "\0\0&\0\0\0\17\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\23""7\31\10\377\365" + "\344\316\377\351\316\256\377\347\315\250\377\337\275\220\377\330\261" + "\203\377\325\255~\377\322\252{\377\322\246w\377\320\247q\377\315\243" + "l\377\310\237h\377\305\233d\377\304\231a\377\304\231a\377\304\231a\377" + "\305\232b\377\305\232b\377\305\232b\377\305\232b\377\304\231a\377\302" + "\230]\377\301\224Z\377\277\220T\377\276\216O\377\274\207I\377\272\202" + "\77\377\272~=\377\261t2\377\247j\"\377\213R\24\3777\31\10\377\0\0\0Q" + "\0\0\0.\0\0\0\23\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\24""7\31\10\377\365" + "\346\320\377\353\317\260\377\351\316\256\377\340\277\227\377\333\264" + "\206\377\330\260\201\377\327\257\200\377\322\254{\377\322\246w\377\320" + "\246o\377\314\243m\377\265\216\\\377\240~P\377\232yM\377\232yM\377\262" + "\214Y\377\307\234d\377\307\234d\377\307\234d\377\305\232b\377\302\227" + "_\377\302\223[\377\277\220T\377\276\216O\377\274\204A\377\272\202\77" + "\377\265|8\377\257s,\377\243f\36\377\207P\24\3777\31\10\377\0\0\0W\0" + "\0\0""2\0\0\0\25\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365" + "\344\316\377\352\317\257\377\350\315\251\377\337\274\222\377\325\255" + "~\377\322\253}\377\322\252{\377\320\253u\377\320\246o\377\315\243l\377" + "\263\216]\377\224tJ\377w^<\377\40\31\20\377\0\0\0\377\40\31\20\377y`" + ">\377\310\237h\377\312\237g\377\307\235f\377\305\233d\377\304\231a\377" + "\302\230]\377\277\221V\377\276\216O\377\276\206E\377\274\203\77\377\266" + "|7\377\252l#\377\215U\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0" + "\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365\344\316\377\351\316" + "\256\377\350\316\251\377\341\274\224\377\332\264\207\377\330\262\201" + "\377\327\257\200\377\322\252{\377\320\250s\377\317\245n\377\222tM\377" + "z`>\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377y`\77\377\312" + "\237g\377\305\233d\377\305\232b\377\302\227_\377\301\224Z\377\276\217" + "Q\377\274\207I\377\272\201=\377\267~:\377\263y4\377\246i!\377\213R\24" + "\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5" + "\0\0\0\25""7\31\10\377\364\341\313\377\350\315\251\377\345\311\244\377" + "\335\272\220\377\325\255~\377\322\252{\377\322\252{\377\322\245u\377" + "\321\247p\377\314\243m\377\225uL\377\40\32\20\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\0\0\0\377\0\0\0\377!\32\20\377\327\267\216\377\310\236g\377" + "\306\233c\377\304\231a\377\302\227_\377\277\221V\377\275\214L\377\274" + "\210E\377\273\202>\377\266|7\377\251k\"\377\215S\24\3777\31\10\377\0" + "\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10" + "\377\365\344\316\377\351\315\254\377\347\313\246\377\337\274\222\377" + "\330\260\201\377\326\256\177\377\322\253}\377\322\252{\377\321\245r\377" + "\315\243l\377\226wN\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" + "\377\0\0\0\377\0\0\0\377\341\313\255\377\307\235f\377\304\231a\377\302" + "\227_\377\300\223Y\377\276\217Q\377\275\214L\377\274\205C\377\272~=\377" + "\263x2\377\247j\"\377\213R\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25" + "\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\364\341\313\377\350" + "\314\247\377\345\312\244\377\334\271\217\377\326\256\177\377\323\253" + "|\377\322\252{\377\322\245u\377\317\245n\377\312\241k\377\225uL\377\40" + "\31\20\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\40\31\17" + "\377\336\306\247\377\302\230a\377\301\222V\377\277\220T\377\275\215N" + "\377\274\207I\377\272\202\77\377\265}:\377\265x6\377\255r,\377\244f\35" + "\377\207P\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365\344\316\377\351\315\254\377\347" + "\313\246\377\335\272\220\377\325\255~\377\322\253y\377\321\250r\377\317" + "\245n\377\312\241k\377\310\237h\377\305\232b\377u\\8\377\0\0\0\377\0" + "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377u[7\377\335\307\247\377\302\223" + "[\377\301\222V\377\277\220R\377\276\216O\377\274\210K\377\274\203\77" + "\377\267\177<\377\266|7\377\260u/\377\244h!\377\211Q\24\3777\31\10\377" + "\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10" + "\377\365\346\320\377\352\317\257\377\351\316\252\377\341\274\224\377" + "\333\264\206\377\332\263\205\377\332\263\205\377\326\256\177\377\322" + "\253y\377\320\250s\377\317\245n\377\314\243m\377z`>\377!\32\20\377\0" + "\0\0\377\40\32\21\377\222~c\377\343\317\263\377\324\263\210\377\306\233" + "c\377\302\230]\377\301\224Z\377\277\220T\377\275\214L\377\273\204D\377" + "\267\177<\377\266z9\377\261v0\377\244h!\377\213R\24\3777\31\10\377\0" + "\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10" + "\377\364\341\313\377\351\316\252\377\345\311\244\377\332\270\213\377" + "\322\254w\377\322\245u\377\321\250r\377\315\244n\377\312\241k\377\310" + "\236g\377\304\231a\377\302\230]\377\245}M\377\0\0\0\377\0\0\0\377\0\0" + "\0\377\331\277\236\377\312\243q\377\304\231a\377\302\230a\377\302\223" + "[\377\277\221V\377\277\220T\377\275\214L\377\274\210E\377\272\202\77" + "\377\267}8\377\263x2\377\255o&\377\211Q\24\3777\31\10\377\0\0\0X\0\0" + "\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365" + "\344\316\377\351\316\252\377\347\313\246\377\334\271\217\377\326\256" + "\177\377\323\253|\377\322\252{\377\322\245u\377\320\246o\377\312\241" + "k\377\310\236g\377\272\223^\377\225tJ\377\0\0\0\377\0\0\0\377\0\0\0\377" + "\305\263\233\377\304\231a\377\304\231a\377\302\230a\377\301\222V\377" + "\277\221V\377\276\216O\377\274\207I\377\274\203\77\377\267~:\377\265" + "y8\377\255v.\377\257r*\377\207P\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0" + "\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365\346\320\377" + "\352\317\257\377\351\316\252\377\341\275\226\377\333\264\206\377\330" + "\260\201\377\326\256\177\377\322\254{\377\320\250s\377\315\243l\377\312" + "\240i\377\265\217]\377\203fA\377\0\0\0\377\0\0\0\377\0\0\0\377\217uT" + "\377\336\306\247\377\304\231a\377\302\230]\377\301\222V\377\277\220T" + "\377\275\215N\377\274\211G\377\274\203\77\377\267~:\377\265y8\377\257" + "s,\377\275\202B\377\207P\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0" + "\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\364\341\313\377\347" + "\314\250\377\346\306\241\377\333\270\216\377\323\253|\377\322\253y\377" + "\321\247v\377\320\246o\377\314\242k\377\312\237g\377\305\232b\377\264" + "\215Y\377lT3\377\0\0\0\377\0\0\0\377\0\0\0\377mU6\377\336\306\247\377" + "\304\231a\377\302\230a\377\302\223[\377\301\222V\377\277\220R\377\274" + "\210K\377\273\204D\377\272~=\377\264{7\377\261v0\377\300\215Q\377\211" + "N\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" + "\0\5\0\0\0\25""7\31\10\377\364\340\311\377\347\313\246\377\346\306\241" + "\377\334\263\207\377\321\253v\377\321\245r\377\320\246o\377\315\243l" + "\377\310\237h\377\304\231a\377\262\213W\377\254\203N\377\77""0\34\377" + "\0\0\0\377\0\0\0\377\0\0\0\377@2\36\377\322\275\237\377\310\242q\377" + "\302\223[\377\277\221V\377\277\220T\377\275\215N\377\274\211G\377\270" + "\200=\377\265|8\377\265x6\377\257t.\377\300\215Q\377\206L\23\3777\31" + "\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25" + "7\31\10\377\364\341\313\377\346\312\245\377\346\306\241\377\333\264\206" + "\377\321\253v\377\320\247q\377\317\245n\377\312\241k\377\310\236g\377" + "\304\231a\377\262\207S\377\232uE\377\77""0\34\377\0\0\0\377\0\0\0\377" + "\0\0\0\377\77""0\34\377\211h>\377\332\301\240\377\275\216P\377\275\215" + "N\377\274\210K\377\273\204D\377\272\202\77\377\267~:\377\264{7\377\261" + "w2\377\255q*\377\312\235c\377\207M\24\3777\31\10\377\0\0\0X\0\0\0""3" + "\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\25""7\31\10\377\364\341\313" + "\377\350\314\247\377\344\310\243\377\332\270\215\377\323\253|\377\322" + "\246w\377\320\253u\377\320\246o\377\313\242l\377\310\237h\377\267\217" + "[\377\177c\77\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377r" + "Y8\377\323\263\211\377\302\230a\377\301\222V\377\277\221V\377\276\217" + "Q\377\274\210K\377\274\204A\377\265}:\377\265|8\377\261v0\377\314\237" + "i\377\211Q\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\1\0\0\0\5\0\0\0\25""7\31\10\377\365\344\316\377\350\315\251\377\345" + "\311\244\377\334\271\217\377\325\255~\377\322\252{\377\322\253y\377\321" + "\247p\377\317\245n\377\312\241k\377\310\237h\377\305\232b\377\305\232" + "b\377\305\232b\377\305\232b\377\305\232b\377\305\232b\377\305\232b\377" + "\305\232b\377\304\231a\377\302\223[\377\277\221V\377\277\220R\377\274" + "\207I\377\274\203\77\377\267~:\377\270\177;\377\274\202=\377\316\241" + "k\377\211N\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\1\0\0\0\5\0\0\0\25""7\31\10\377\364\341\313\377\350\313\245\377\345" + "\311\244\377\332\270\213\377\322\252{\377\322\245u\377\321\247p\377\315" + "\244n\377\312\237g\377\307\234d\377\304\231a\377\301\227\\\377\300\223" + "Y\377\300\222W\377\300\222W\377\300\222W\377\300\222W\377\300\222W\377" + "\300\222W\377\277\221V\377\277\220R\377\276\216O\377\274\211G\377\273" + "\204D\377\271\201>\377\265|8\377\270\177;\377\274\205E\377\315\240j\377" + "\207P\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" + "\0\0\0\5\0\0\0\25""7\31\10\377\364\340\311\377\346\311\243\377\345\305" + "\240\377\331\270\210\377\323\246v\377\320\247q\377\317\245n\377\313\242" + "l\377\312\237g\377\306\233c\377\305\232b\377\304\231a\377\302\230]\377" + "\302\230a\377\302\230a\377\304\231a\377\304\231a\377\305\232b\377\305" + "\232b\377\304\231a\377\301\224Z\377\300\223Y\377\277\220T\377\274\214" + "M\377\274\211G\377\276\212M\377\304\231a\377\276\213O\377\307\235`\377" + "\211N\24\3777\31\10\377\0\0\0W\0\0\0""3\0\0\0\25\0\0\0\5\0\0\0\1\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" + "\0\0\0\5\0\0\0\24""7\31\10\377\364\340\311\377\346\310\241\377\341\303" + "\234\377\332\263\205\377\321\245r\377\317\245n\377\315\243l\377\310\237" + "h\377\305\233d\377\302\231_\377\302\223[\377\300\222W\377\277\221V\377" + "\277\221V\377\300\222W\377\302\223[\377\301\227\\\377\305\232b\377\310" + "\236g\377\315\243l\377\315\243l\377\316\241k\377\316\241k\377\322\253" + "y\377\322\252w\377\321\245r\377\324\247s\377\277\212L\377\261s0\377\207" + "M\24\3777\31\10\377\0\0\0T\0\0\0""0\0\0\0\24\0\0\0\5\0\0\0\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" + "\0\5\0\0\0\22""3\27\7\301\262u-\377\307\235`\377\304\232]\377\275\214" + "L\377\272~=\377\270~9\377\266z9\377\265x6\377\263u2\377\257w.\377\255" + "r,\377\254t+\377\252r)\377\252r)\377\252r)\377\256q)\377\256q)\377\256" + "q)\377\256q)\377\252r)\377\251m&\377\252l#\377\245i\"\377\243g\40\377" + "\242e\35\377\236a\31\377\233_\30\377\231]\26\377\222V\25\377X0\15\377" + "&\21\5\264\0\0\0K\0\0\0*\0\0\0\21\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\16" + "+\23\6q1\26\7\3077\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" + "\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\377" + "7\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31" + "\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" + "\3777\31\10\3777\31\10\3777\31\10\3777\31\10\377&\21\5\264\14\5\1e\0" + "\0\0;\0\0\0\40\0\0\0\14\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\11\0\0\0\30" + "\0\0\0,\0\0\0A\0\0\0O\0\0\0U\0\0\0W\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0" + "X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0" + "\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0X\0\0\0W\0\0\0S\0" + "\0\0K\0\0\0;\0\0\0'\0\0\0\24\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" + "\0\4\0\0\0\15\0\0\0\30\0\0\0$\0\0\0,\0\0\0""0\0\0\0""3\0\0\0""3\0\0\0" + "3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0" + "\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3" + "\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""2\0\0\0""0\0\0\0" + "*\0\0\0\40\0\0\0\24\0\0\0\11\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\2\0\0\0\4\0\0\0\11\0\0\0\16\0\0\0\22\0\0\0\24\0\0\0\25\0\0\0\25\0" + "\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25" + "\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0" + "\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\24\0" + "\0\0\21\0\0\0\14\0\0\0\7\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0" + "\0\5\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6" + "\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0" + "\0\6\0\0\0\6\0\0\0\6\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0\2" + "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" + "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1" + "\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" + "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0"}; + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/no-pixbuf-csource.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/no-pixbuf-csource.patch new file mode 100644 index 000000000..e0765bae1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui/no-pixbuf-csource.patch @@ -0,0 +1,11 @@ +--- libgnomeui-2.6.1.1/configure.in.old 2004-08-04 00:28:43.582266664 +0100 ++++ libgnomeui-2.6.1.1/configure.in 2004-08-04 00:29:27.496590672 +0100 +@@ -235,7 +235,7 @@ + + dnl This is installed from GTK+ 2.0's gdk-pixbuf + AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource) +-test -z "$GDK_PIXBUF_CSOURCE" && AC_MSG_ERROR([ ++test -z "$GDK_PIXBUF_CSOURCE" && AC_MSG_WARN([ + *** You need the gdk-pixbuf-csource tool which is installed + *** from GTK+ 2.0's gdk-pixbuf. + *** diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb new file mode 100644 index 000000000..6fb2786b1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb @@ -0,0 +1,7 @@ +require libgnomeui.inc + +PR = "r1" + +SRC_URI[archive.md5sum] = "ceab6f4370581d1a03c09f15cc103099" +SRC_URI[archive.sha256sum] = "04c81f3bb5a337cdf3ed1230916f82d29857ee95eb884f58dd2f5c6860efe803" +GNOME_COMPRESS_TYPE="bz2" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch new file mode 100644 index 000000000..bc0090e17 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch @@ -0,0 +1,103 @@ +From 16d2c2e74350fda5505982fb150e72af7aee7454 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 19 Feb 2016 16:23:56 +0200 +Subject: [PATCH] configure.ac: drop a copy-paste of introspection.m4 macros + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + configure.ac | 78 +----------------------------------------------------------- + 1 file changed, 1 insertion(+), 77 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 54f7663..3038535 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -77,83 +77,7 @@ libgsf_reqs=" + " + + PKG_CHECK_MODULES(LIBGSF, $libgsf_reqs) +-# GObject Introspection +-GIR_REQ=1.0.0 +-AC_ARG_ENABLE(introspection, +- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], +- [Enable introspection for this build]),, +- [enable_introspection=no]) +- +-AC_MSG_CHECKING([for gobject-introspection]) +- +-dnl presence/version checking +-AS_CASE([$enable_introspection], +-[no], [ +- found_introspection="no (disabled, use --enable-introspection to enable)" +-], +-[yes],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0],, +- AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], +- found_introspection=yes, +- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) +-], +-[auto],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], found_introspection=yes, found_introspection=no) +-dnl Canonicalize enable_introspection +-enable_introspection=$found_introspection +-], +-[ +- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) +-]) +- +-AC_MSG_RESULT([$found_introspection]) +- +-if test "x$found_introspection" = "xyes"; then +- dnl You can override INTROSPECTION_GIRDIR and INTROSPECTION_TYPELIBDIR +- dnl if you wish. If you override the latter, you might want to set +- dnl GI_TYPELIB_PATH to include the same directory. For example +- dnl +- dnl GI_TYPELIB_PATH=$PREFIX/lib64/girepository-1.0 +- dnl INTROSPECTION_TYPELIBDIR=$GI_TYPELIB_PATH +- dnl INTROSPECTION_GIRDIR=$PREFIX/share/gir-1.0 +- dnl +- dnl Note, that unlike binaries produced with libgsf, nothing tells +- dnl python where to find libgsf, so you might also need to set +- dnl LD_LIBRARY_PATH. +- +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- if test "x$INTROSPECTION_GIRDIR" = x; then +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- fi +- if test "x$INTROSPECTION_TYPELIBDIR" = x; then +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +- fi +- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` +- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection +-else +- INTROSPECTION_SCANNER= +- INTROSPECTION_COMPILER= +- INTROSPECTION_GENERATE= +- INTROSPECTION_GIRDIR= +- INTROSPECTION_TYPELIBDIR= +- INTROSPECTION_CFLAGS= +- INTROSPECTION_LIBS= +- INTROSPECTION_MAKEFILE= +-fi +-AC_SUBST(INTROSPECTION_SCANNER) +-AC_SUBST(INTROSPECTION_COMPILER) +-AC_SUBST(INTROSPECTION_GENERATE) +-AC_SUBST(INTROSPECTION_GIRDIR) +-AC_SUBST(INTROSPECTION_TYPELIBDIR) +-AC_SUBST(INTROSPECTION_CFLAGS) +-AC_SUBST(INTROSPECTION_LIBS) +-AC_SUBST(INTROSPECTION_MAKEFILE) +- +-AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ++GOBJECT_INTROSPECTION_CHECK([1.46.0]) + dnl we need to change the install directories for distcheck + AC_ARG_WITH([gir-dir], + AS_HELP_STRING( +-- +2.7.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb new file mode 100644 index 000000000..be79ec14a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb @@ -0,0 +1,29 @@ +SUMMARY = "GNOME Structured File Library" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \ + file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63" + +SECTION = "libs" + +DEPENDS= "libxml2 bzip2 glib-2.0 zlib" + +inherit autotools pkgconfig gnome gconf gobject-introspection + +SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch" + +SRC_URI[archive.md5sum] = "3056b94bb3281dbc8311371bfc23cf72" +SRC_URI[archive.sha256sum] = "4d8bca33424eb711acdb6a060cb488b132063d699c4fa201db24c2c89c62529c" + +GNOME_COMPRESS_TYPE = "xz" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf" + +EXTRA_OECONF = "\ + --disable-gtk-doc \ + --with-bz2 \ +" + +RDEPENDS_${PN} = "gconf" + +FILES_${PN} += "${datadir}/thumbnailers" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh new file mode 100644 index 000000000..b1302ede0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +GTK_MODULES=libgtkstylus.so + +export GTK_MODULES diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb new file mode 100644 index 000000000..3cd791076 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb @@ -0,0 +1,27 @@ +SUMMARY = "GTK plugin for stylus based systems" +SECTION = "libs" +DEPENDS = "gtk+" +LICENSE = "LGPL-2.0+" +LIC_FILES_CHKSUM = "file://tap.c;beginline=1;endline=20;md5=71756eeb144e9eeb177c69aa672b1635" +PR = "r4" + +inherit autotools pkgconfig + +SRC_URI = "http://burtonini.com/temp/${BP}.tar.gz \ + file://gtkstylus.sh" +SRC_URI[md5sum] = "fa1c82cd9fd2fafd7ff10d78eb5781c5" +SRC_URI[sha256sum] = "383e0a22a537f653b8d41688277560f95678a042967198085ec7caa1a5cc2f4c" + +do_install_append() { + install -d ${D}/${sysconfdir}/X11/Xsession.d + install -m 755 ${WORKDIR}/gtkstylus.sh ${D}/${sysconfdir}/X11/Xsession.d/45gtkstylus +} + +# Horrible but rpm falls over if you use '*' +GTKVER = "2.10.0" + +FILES_${PN} = "${sysconfdir} \ + ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so.*" +FILES_${PN}-dbg += "${libdir}/gtk-2.0/${GTKVER}/modules/.debug" +FILES_${PN}-dev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so" +FILES_${PN}-staticdev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.*a" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb new file mode 100644 index 000000000..d79b9e5d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb @@ -0,0 +1,12 @@ +SUMMARY = "LibGTop2" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://copyright.txt;md5=dbc839bf158d19a20e661db14db7a58c" + +inherit gnomebase lib_package gtk-doc distro_features_check gobject-introspection +# depends on libxau +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "ee29a9ef60659ebf4b075ac281f71cb2" +SRC_URI[archive.sha256sum] = "463bcbe5737b1b93f3345ee34abf601e8eb864f507c49ff1921c2737abafc1e5" + +DEPENDS = "glib-2.0 intltool-native libxau" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb new file mode 100644 index 000000000..a27da5e8d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb @@ -0,0 +1,10 @@ +SECTION = "libs" +require libidl_${PV}.bb +inherit native + +PR = "r1" + +DEPENDS = "bison-native glib-2.0-native" + +SRC_URI[md5sum] = "bb8e10a218fac793a52d404d14adedcb" +SRC_URI[sha256sum] = "c5d24d8c096546353fbc7cedf208392d5a02afe9d56ebcc1cccb258d7c4d2220" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl.inc new file mode 100644 index 000000000..a40203776 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl.inc @@ -0,0 +1,12 @@ +DESCRIPTION = "Library for parsing CORBA IDL files" +SECTION = "x11/gnome/libs" +LICENSE = "LGPLv2+" + +inherit autotools pkgconfig + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-${PV}.tar.bz2" + +S = "${WORKDIR}/libIDL-${PV}" + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN}-dev += " ${bindir}" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl_0.8.14.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl_0.8.14.bb new file mode 100644 index 000000000..86dfcf2f0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libidl/libidl_0.8.14.bb @@ -0,0 +1,13 @@ +require libidl.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "glib-2.0 flex-native libidl-native" + +PR = "r1" + +BINCONFIG_GLOB = "*-config-2" +inherit autotools pkgconfig binconfig + +SRC_URI[md5sum] = "bb8e10a218fac793a52d404d14adedcb" +SRC_URI[sha256sum] = "c5d24d8c096546353fbc7cedf208392d5a02afe9d56ebcc1cccb258d7c4d2220" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb new file mode 100644 index 000000000..d273e6c1e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "Window navigation construction toolkit" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SECTION = "x11/libs" +DEPENDS = "intltool-native gtk+ gdk-pixbuf-native libxres" + +PACKAGECONFIG ??= "startup-notification" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +inherit gnomebase gobject-introspection +GNOME_COMPRESS_TYPE = "xz" +SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32" +SRC_URI[archive.sha256sum] = "83f732d20781fc88b22cdc6aaf2d4f388db6d3d4ff28d1a8fd45be9fb7743a9e" + +do_install_append() { + # to avoid conflicts with libwnck3 remove cmdline tools + # if the tools are requrired add libwnck3 to your image + rm ${D}${bindir}/wnckprop + rm ${D}${bindir}/wnck-urgency-monitor + rmdir ${D}${bindir} +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb new file mode 100644 index 000000000..384841a8d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb @@ -0,0 +1,26 @@ +SUMMARY = "Helper lib for keyboard management" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" + +DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2" + +GNOME_COMPRESS_TYPE = "xz" + +inherit gnomebase gettext gobject-introspection +SRC_URI[archive.md5sum] = "290ea2a8abc40f78a3a16bdae6f02808" +SRC_URI[archive.sha256sum] = "ebec3bc54b5652838502b96223152fb1cd8fcb14ace5cb02d718fc3276bbd404" + +EXTRA_OECONF = "--with-xkb-bin-base=${bindir}" + +do_configure_append() { + find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g + find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g +} + +do_compile_append() { + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + libxklavier.pc +} + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/remove-yelp-help-rules-var.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/remove-yelp-help-rules-var.patch new file mode 100644 index 000000000..1970e9afb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity/remove-yelp-help-rules-var.patch @@ -0,0 +1,28 @@ +Remove unused variable (YELP_HELP_RULES) + +Upstream-Status: Pending +Signed-off-by: Constantin Musca + +Index: metacity-2.34.13/doc/creating_themes/Makefile.am +=================================================================== +--- metacity-2.34.13.orig/doc/creating_themes/Makefile.am ++++ metacity-2.34.13/doc/creating_themes/Makefile.am +@@ -1,6 +1,5 @@ + ### This part of Makefile.am can be customized by you. + +-@YELP_HELP_RULES@ + + # The name of the directory in /usr/share/gnome/help/, + # and the name of the main .xml file: +Index: metacity-2.34.13/doc/creating_themes/Makefile.in +=================================================================== +--- metacity-2.34.13.orig/doc/creating_themes/Makefile.in ++++ metacity-2.34.13/doc/creating_themes/Makefile.in +@@ -455,7 +455,6 @@ uninstall-am: + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +-@YELP_HELP_RULES@ + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb new file mode 100644 index 000000000..662c90db8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb @@ -0,0 +1,32 @@ +SECTION = "x11/wm" +SUMMARY = "Metacity is the boring window manager for the adult in you" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/include/main.h;endline=24;md5=c2242df552c880280315989bab626b90" + +DEPENDS = "gsettings-desktop-schemas startup-notification gtk+ gconf gdk-pixbuf-native libcanberra gnome-doc-utils libgtop intltool-native" +PR = "r1" + +inherit gnomebase update-alternatives distro_features_check +# depends on startup-notification which depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +GNOME_COMPRESS_TYPE = "xz" + +SRC_URI += "file://remove-yelp-help-rules-var.patch" +SRC_URI[archive.md5sum] = "6d89b71672d4fa49fc87f83d610d0ef6" +SRC_URI[archive.sha256sum] = "8cf4dbf0da0a6f36357ce7db7f829ec685908a7792453c662fb8184572b91075" + +ALTERNATIVE_${PN} = "x-window-manager" +ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/metacity" +ALTERNATIVE_PRIORITY = "10" + +EXTRA_OECONF += "--disable-xinerama" + +do_configure_prepend() { + sed -i -e 's:$ZENITY:$NOZENITY:g' -e 's:-Werror::g' ${S}/configure.in +} + +FILES_${PN} += "${datadir}/themes ${datadir}/gnome-control-center ${datadir}/gnome" +RDEPENDS_${PN} += "gsettings-desktop-schemas" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch new file mode 100644 index 000000000..0062cfb11 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch @@ -0,0 +1,7 @@ +Index: nautilus-2.24.2/add-include-prefix +=================================================================== +--- nautilus-2.24.2.orig/add-include-prefix 2008-10-06 17:22:21.000000000 +0000 ++++ nautilus-2.24.2/add-include-prefix 2009-04-09 16:00:05.000000000 +0000 +@@ -1 +1 @@ +-sed -e 's/^/ /' -e 's/ */ /g' -e 's/ / -I /g' -e 's/ -I $//' ++sed -e 's:^: :' -e 's: *: :g' -e 's: : -I '"$SYSROOT"':g' -e 's: -I '"$SYSROOT"'$::' diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch new file mode 100644 index 000000000..43a6152d8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch @@ -0,0 +1,44 @@ +From e7233d98c114b03c7c8b96d1f41770452da14aa7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 17 Oct 2011 00:59:01 +0200 +Subject: [PATCH] nautilus build fails for newer glib versions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +build with glib-2.0 v2.30.0 run into errors for at least G_CONST_RETURN missing + +Signed-off-by: Andreas Müller +--- + configure.in | 2 +- + eel/Makefile.am | 1 - + 2 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/configure.in b/configure.in +index 97e171e..859a097 100644 +--- a/configure.in ++++ b/configure.in +@@ -342,7 +342,7 @@ AC_SUBST(CORE_CFLAGS) + CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $x_libs" + AC_SUBST(CORE_LIBS) + +-DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED" ++DISABLE_DEPRECATED_CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED" + AC_SUBST(DISABLE_DEPRECATED_CFLAGS) + + dnl Multimedia keys +diff --git a/eel/Makefile.am b/eel/Makefile.am +index b1fe356..c1d56cd 100644 +--- a/eel/Makefile.am ++++ b/eel/Makefile.am +@@ -10,7 +10,6 @@ INCLUDES = \ + -DDATADIR=\""$(datadir)"\" \ + -DSOURCE_DATADIR=\""$(top_srcdir)/data"\" \ + -DGNOMELOCALEDIR=\""$(prefix)/${DATADIRNAME}/locale"\" \ +- -DG_DISABLE_DEPRECATED \ + -DGDK_PIXBUF_DISABLE_DEPRECATED \ + -DGMENU_I_KNOW_THIS_IS_UNSTABLE \ + $(NULL) +-- +1.7.4.4 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-try-run-strftime.diff b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-try-run-strftime.diff new file mode 100644 index 000000000..ccd2934b3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/no-try-run-strftime.diff @@ -0,0 +1,28 @@ +--- /tmp/configure.in 2009-04-13 11:26:43.000000000 +0200 ++++ nautilus-2.26.1/configure.in 2009-04-13 11:28:37.000000000 +0200 +@@ -375,25 +375,6 @@ + + dnl =========================================================================== + +-dnl strftime checks +- +-AC_TRY_RUN([#include +- int main () +- { +- char buf[100]; +- struct tm tm = {0}; +- tm.tm_year = 99; +- if (strftime(buf, 100, "%EY", &tm) == 4 && +- strcmp (buf, "1999")==0) +- return 0; +- return 1; +- } +- ], +- AC_DEFINE(HAVE_STRFTIME_EXTENSION, 1, [Define if strftime supports %E and %O modifiers.]) +- ) +- +-dnl =========================================================================== +- + # + # Checks for Xft/XRender + # diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3/no-try-run-strftime.diff b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3/no-try-run-strftime.diff new file mode 100644 index 000000000..56d2e159d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3/no-try-run-strftime.diff @@ -0,0 +1,41 @@ +From dc9c8cf2676c8c91ea0ae250cfedf863352f3ccd Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 24 Jun 2011 20:24:08 +0200 +Subject: [PATCH] hack out check that tries to run generated binaries + +Signed-off-by: Koen Kooi +--- + configure.in | 17 +---------------- + 1 files changed, 1 insertions(+), 16 deletions(-) + +diff --git a/configure.in b/configure.in +index c3aa371..1d3ecdc 100644 +--- a/configure.in ++++ b/configure.in +@@ -251,22 +251,7 @@ AC_SUBST(WARNING_CFLAGS) + + dnl =========================================================================== + +-dnl strftime checks +- +-AC_TRY_RUN([#include +- int main () +- { +- char buf[100]; +- struct tm tm = {0}; +- tm.tm_year = 99; +- if (strftime(buf, 100, "%EY", &tm) == 4 && +- strcmp (buf, "1999")==0) +- return 0; +- return 1; +- } +- ], +- AC_DEFINE(HAVE_STRFTIME_EXTENSION, 1, [Define if strftime supports %E and %O modifiers.]) +- ) ++AC_DEFINE(HAVE_STRFTIME_EXTENSION, 1, [Define if strftime supports %E and %O modifiers.]) + + dnl ========================================================================== + +-- +1.6.6.1 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb new file mode 100644 index 000000000..4655c8332 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb @@ -0,0 +1,54 @@ +# nautilus OE build file +# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +LICENSE="GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426 \ + file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" + +PR = "r4" + +DEPENDS = "libnotify gtk+3 libunique gvfs librsvg libexif gnome-desktop3" +# optional: tracker + +# to include nautilus3/no-try-run-strftime.diff before the rest +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" +BPN = "nautilus" +inherit gnome + +SRC_URI += "file://no-try-run-strftime.diff" +SRC_URI[archive.md5sum] = "12314328b59aa1dfd83619f718b81bd5" +SRC_URI[archive.sha256sum] = "c482d6e7babcc238304cf55586cdf7e2b2806025214a143ed355f0d89b33b154" + +EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb --enable-nst-extension" +export SYSROOT = "${STAGING_DIR_HOST}" + +do_configure() { + sed -i -e /docs/d ${S}/Makefile.am + autotools_do_configure +} + +RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-2.0-utils" +FILES_${PN} += "${datadir}/icons \ + /usr/libexec/ \ + ${datadir}/nautilus* \ + ${datadir}/dbus-1 \ + ${libdir}/nautilus/extensions*/*.so \ +" +FILES_${PN}-dbg += "/usr/libexec/.debug \ + ${libdir}/nautilus/extensions*/.debug" + +# Don't make nautils drag us in +PRIVATE_LIBS = "libnautilus-extension.so.1" + +pkg_postinst_${PN} () { +if [ -n "$D" ]; then + exit 1 +fi + +glib-compile-schemas ${datadir}/glib-2.0/schemas +} + +# 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 +# 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) +PNBLACKLIST[nautilus3] ?= "BROKEN: fails to build, maybe missing dependency on gnome-desktop-utils.h provider" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb new file mode 100644 index 000000000..d29385eb8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb @@ -0,0 +1,41 @@ +# nautilus OE build file +# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +LICENSE="GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=7c0048536e43642a1f3a724c2909872b \ + file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" + +PR = "r6" + +DEPENDS = "gdk-pixbuf gtk+ libunique gvfs librsvg libexif esound gnome-desktop orbit2-native" +# optional: tracker + +inherit gnome gobject-introspection + +SRC_URI[archive.md5sum] = "51565aa10d1625dff56e381228346911" +SRC_URI[archive.sha256sum] = "2d4ff28c7a7aa5d40eb2468149954a564c257a305183773057584d22d15347a2" +GNOME_COMPRESS_TYPE="bz2" + +SRC_URI += "file://idl-sysroot.patch \ + file://no-try-run-strftime.diff \ + file://no-G_DISABLE_DEPRECATED.patch \ +" + + +EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb " +export SYSROOT = "${STAGING_DIR_HOST}" + +do_configure() { + sed -i -e /docs/d ${S}/Makefile.am + autotools_do_configure + # We need native orbit-idl with target idl files. No way to say it in a clean way: + find ${B} -name Makefile -exec sed -i '/\/usr\/bin\/orbit-idl-2/{s:/usr/bin:${STAGING_BINDIR_NATIVE}:;s:/usr/share:${STAGING_DATADIR}:g}' {} \; +} + +RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-networking" +FILES_${PN} += "${datadir}/icons" + +# Don't make nautils3 drag us in +PRIVATE_LIBS = "libnautilus-extension.so.1" + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0001-linc2-src-Makefile.am-fix-build-with-glib-2.36.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0001-linc2-src-Makefile.am-fix-build-with-glib-2.36.patch new file mode 100644 index 000000000..daf7464c3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0001-linc2-src-Makefile.am-fix-build-with-glib-2.36.patch @@ -0,0 +1,34 @@ +From 10bd8094e1d94e5c737791c7f4b6b844f535c120 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 3 May 2013 10:00:16 +0200 +Subject: [PATCH] linc2/src/Makefile.am: fix build with glib 2.36 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Submitted [1] + +[1] https://bugzilla.gnome.org/show_bug.cgi?id=696900 + +Signed-off-by: Andreas Müller +--- + linc2/src/Makefile.am | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/linc2/src/Makefile.am b/linc2/src/Makefile.am +index 357a2dd..ba0e347 100644 +--- a/linc2/src/Makefile.am ++++ b/linc2/src/Makefile.am +@@ -12,8 +12,7 @@ INCLUDES = \ + -I$(top_builddir)/linc2/include \ + -I$(top_srcdir)/linc2/include \ + $(LINC_CFLAGS) \ +- $(WARN_CFLAGS) \ +- -DG_DISABLE_DEPRECATED ++ $(WARN_CFLAGS) + + if OS_WIN32 + else +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0002-Use-AM_CPPFLAGS-instead-of-INCLUDES-and-fix-problem-.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0002-Use-AM_CPPFLAGS-instead-of-INCLUDES-and-fix-problem-.patch new file mode 100644 index 000000000..7993abb92 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/0002-Use-AM_CPPFLAGS-instead-of-INCLUDES-and-fix-problem-.patch @@ -0,0 +1,42 @@ +From d91dbb42dc3b6073720027f68827acd0abee6d75 Mon Sep 17 00:00:00 2001 +From: Kjartan Maraas +Date: Tue, 14 May 2013 13:29:53 +0200 +Subject: [PATCH] Use AM_CPPFLAGS instead of INCLUDES and fix problem using +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport [1] + +[1] https://git.gnome.org/browse/ORBit2/commit/test/everything/Makefile.am?id=d91dbb42dc3b6073720027f68827acd0abee6d75 + +Signed-off-by: Andreas Müller +--- + test/everything/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/everything/Makefile.am b/test/everything/Makefile.am +index 32beb36..cb4b1d6 100644 +--- a/test/everything/Makefile.am ++++ b/test/everything/Makefile.am +@@ -10,7 +10,7 @@ EVERYTHING_IDLOUT = \ + $(EVERYTHING_BUILT) \ + everything-imodule.c + +-INCLUDES = \ ++AM_CPPFLAGS = \ + -I$(top_srcdir)/include \ + -I$(top_builddir)/include \ + -I$(top_builddir)/src \ +@@ -78,7 +78,7 @@ include $(top_srcdir)/Makefile.shared + BUILT_SOURCES = ${EVERYTHING_BUILT} everything-imodule.c + CLEANFILES = ${BUILT_SOURCES} iorfile + +-TESTS = $(srcdir)/test.sh ++TESTS = $(top_builddir)/test/everything/test.sh + + EXTRA_DIST = $(IDL_FILES) test.sh $(included_src) + +-- +1.8.3.1 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/configure-lossage.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/configure-lossage.patch new file mode 100644 index 000000000..5fc1de561 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/configure-lossage.patch @@ -0,0 +1,37 @@ +--- ORBit2-2.14.17/configure.in-orig 2009-01-10 09:36:18.000000000 -0800 ++++ ORBit2-2.14.17/configure.in 2009-06-17 15:10:59.000000000 -0700 +@@ -217,20 +217,20 @@ dnl + dnl So many people with broken linking setups asked about this + dnl it turned out to be necessary to check for this. + dnl +-dofus_save_libs="$LIBS" +-LIBS="$ORBIT_LIBS $LIBS" +-AC_TRY_RUN([ #include +- main () +- { +- return 0; +- } ],, +- AC_MSG_ERROR([ +-Linking is badly borked on your system. Please ensure your library path is correct +-Check config.log for details - check near the end of the log above 'failed program was' +-Alternatively ensure that your /etc/ld.so.conf (and/or LD_LIBRARY_PATH) includes the +-prefix you're compiling on: '${prefix}' ]), +-AC_MSG_WARN([Could not check for borked linking while cross-compiling])) +-LIBS="$dofus_save_libs" ++dnl dofus_save_libs="$LIBS" ++dnl LIBS="$ORBIT_LIBS $LIBS" ++dnl AC_TRY_RUN([ #include ++dnl main () ++dnl { ++dnl return 0; ++dnl } ],, ++dnl AC_MSG_ERROR([ ++dnl Linking is badly borked on your system. Please ensure your library path is correct ++dnl Check config.log for details - check near the end of the log above 'failed program was' ++dnl Alternatively ensure that your /etc/ld.so.conf (and/or LD_LIBRARY_PATH) includes the ++dnl prefix you're compiling on: '${prefix}' ]), ++dnl AC_MSG_WARN([Could not check for borked linking while cross-compiling])) ++dnl LIBS="$dofus_save_libs" + + orig_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $ORBIT_CFLAGS" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/pkgconfig-fix.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/pkgconfig-fix.patch new file mode 100644 index 000000000..f629e506d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2/pkgconfig-fix.patch @@ -0,0 +1,12 @@ +diff -urN ORBit2-2.14.12.orig/ORBit-2.0.pc.in ORBit2-2.14.12/ORBit-2.0.pc.in +--- ORBit2-2.14.12.orig/ORBit-2.0.pc.in 2008-01-29 13:45:22.000000000 +0100 ++++ ORBit2-2.14.12/ORBit-2.0.pc.in 2008-09-23 20:13:07.000000000 +0200 +@@ -2,7 +2,7 @@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ + includedir=@includedir@ +-orbit_idl=@bindir@/orbit-idl-2@EXEEXT@ ++orbit_idl=@exec_prefix@/bin/orbit-idl-2@EXEEXT@ + + + Name: ORBit-2.0 diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb new file mode 100644 index 000000000..1afcd4915 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb @@ -0,0 +1,41 @@ +SUMMARY = "CORBA ORB" +SECTION = "x11/gnome/libs" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +SRC_NAME = "ORBit2" +SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SRC_URI = " \ + ${GNOME_MIRROR}/${SRC_NAME}/${SHRT_VER}/${SRC_NAME}-${PV}.tar.bz2 \ + file://configure-lossage.patch \ + file://pkgconfig-fix.patch \ + file://0001-linc2-src-Makefile.am-fix-build-with-glib-2.36.patch \ + file://0002-Use-AM_CPPFLAGS-instead-of-INCLUDES-and-fix-problem-.patch \ +" +SRC_URI[md5sum] = "7082d317a9573ab338302243082d10d1" +SRC_URI[sha256sum] = "55c900a905482992730f575f3eef34d50bda717c197c97c08fa5a6eafd857550" + +BBCLASSEXTEND = "native" + +IDL_COMPILER_DEPENDS = "orbit2-native" +IDL_COMPILER_DEPENDS_class-native = " " +DEPENDS = "libidl popt ${IDL_COMPILER_DEPENDS}" + +# IDL_COMPILER_DEPENDS_class-native for some reason didn't work and orbit2-native +# was still in orbit2-native DEPENDS causing circular dependency +DEPENDS_class-native = "libidl-native popt-native" +PARALLEL_MAKE = "" + + +FILES_${PN} += "${libdir}/orbit-2.0/*.so" +FILES_${PN}-dev += "${libdir}/orbit-2.0/*.la" +FILES_${PN}-staticdev += "${libdir}/orbit-2.0/*.a" +FILES_${PN}-dbg += "${libdir}/orbit-2.0/.debug" + +S = "${WORKDIR}/${SRC_NAME}-${PV}" + +LEAD_SONAME = "libORBit-2.so" + +inherit autotools pkgconfig gtk-doc + +EXTRA_OEMAKE = "IDL_COMPILER='${STAGING_BINDIR_NATIVE}/orbit-idl-2'" +EXTRA_OEMAKE_class-native = " " diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts.inc new file mode 100644 index 000000000..fedd22332 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts.inc @@ -0,0 +1,28 @@ +DESCRIPTION = "Address-book application." +HOMEPAGE = "http://pimlico-project.org/contacts.html" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2 & GPLv2+ & GPLv3+ " +SECTION = "x11" +DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native" +RDEPENDS_${PN} = "libedata-book" + +inherit autotools pkgconfig gconf + +EXTRA_OECONF += "--disable-gnome-vfs" +EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" + +do_install_append () { + install -d ${D}/${datadir}/pixmaps + install -m 0644 ${WORKDIR}/stock_contact.png ${D}/${datadir}/pixmaps + install -m 0644 ${WORKDIR}/stock_person.png ${D}/${datadir}/pixmaps +} + +FILES_${PN} += "${datadir}/pixmaps/stock_contact.png \ + ${datadir}/pixmaps/stock_person.png \ + ${datadir}/icons/hicolor" + +SRC_URI = "file://stock_contact.png \ + file://stock_person.png \ + file://contacts-conditionally-install-schema.patch \ +" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch new file mode 100644 index 000000000..2ab7882c8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch @@ -0,0 +1,37 @@ +Install schema should respect to GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL + +If GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, the schema should not +be installed. + +Signed-off-by: Robert Yang + +Upstream-Status: Pending +--- + data/Makefile.am | 7 ++++--- + 1 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index f790823..b6fd643 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -14,13 +14,14 @@ dist_man1_MANS = contacts.1 + + if HAVE_GCONF + install-data-local: +- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \ ++ if [ "$(GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL)" != "1" ]; then \ ++ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \ + $(GCONFTOOL) --makefile-install-rule $(schema_DATA) || \ + (echo ;\ + echo "*****************************************************"; \ + echo "Installation of schemas failed, install them manually"; \ +- echo "*****************************************************";) +- @true ++ echo "*****************************************************";); \ ++ fi + endif + + CLEANFILES = $(desktop_DATA) +-- +1.7.7.6 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch new file mode 100644 index 000000000..a7cfee3a0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch @@ -0,0 +1,16 @@ +Fix for stricter parser in make 3.82. This fix has been pushed to upstream git. + +JL - 15/12/10 + +Upstream-Status: Accepted + +Index: git/Makefile.am +=================================================================== +--- git.orig/Makefile.am ++++ git/Makefile.am +@@ -11,4 +11,4 @@ DISTCLEANFILES = $(INTLTOOL_BUILT) + MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp $(INTLTOOL_BUILT:=.in) install-sh ltmain.sh mkinstalldirs Makefile.in missing + + snapshot: +- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` ++ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_contact.png b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_contact.png new file mode 100644 index 000000000..123b4485a Binary files /dev/null and b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_contact.png differ diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_person.png b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_person.png new file mode 100644 index 000000000..2b1328b4e Binary files /dev/null and b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts/stock_person.png differ diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb new file mode 100644 index 000000000..bdc7f4886 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb @@ -0,0 +1,18 @@ +require contacts.inc + +PR = "r8" + +SRC_URI =+ "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "aab5affbf93d6fa7b978b323a8d44de0" +SRC_URI[sha256sum] = "9cacec98f8123993033aaa255f3f4c04c86a1be65e487dd21f0aaa54384a6f6d" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/contacts-main.h;endline=18;md5=0371af46fbc72e33575e0072dca5fb19 \ + file://src/contacts-dbus.c;endline=18;md5=e4da9ac1a0539fafc7df431010904fd5 \ + file://src/contacts-gtk.c;endline=21;md5=1c2e3f55b215635eff4ba76f7696f8ee" + +do_configure_prepend () { + # It used 8 spaces to instead of a tab, but it doesn't work for us + sed -i 's/^ $(MAKE) dist distdir=/\t$(MAKE) dist distdir/' Makefile.am +} diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_git.bb new file mode 100644 index 000000000..8a4a07166 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/contacts_git.bb @@ -0,0 +1,19 @@ +require contacts.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/contacts-main.h;endline=20;md5=9dc3531c914fb6d6d4a8d1aee4519fef \ + file://src/contacts-dbus.c;endline=20;md5=95e02d77f155fbd07a14dba3348b9b03 \ + file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e" + +SRCREV = "19853893fdb595de6aa59db0d9dc2f9451ed2933" +PV = "0.12+git${SRCPV}" +PR = "r4" + +S = "${WORKDIR}/git" + +SRC_URI =+ "git://git.gnome.org/${BPN} \ + file://make-382.patch" + +S = "${WORKDIR}/git" + + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates.inc new file mode 100644 index 000000000..12d2f83f9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "Dates is a calendar application." +HOMEPAGE = "http://pimlico-project.org/dates.html" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2 & GPLv2+ & LGPLv2+" + +SECTION = "x11" +DEPENDS = "glib-2.0 gtk+ libglade evolution-data-server intltool-native" +RDEPENDS_${PN} = "libedata-cal" + +inherit autotools gettext pkgconfig gtk-icon-cache diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch new file mode 100644 index 000000000..4550d298d --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch @@ -0,0 +1,72 @@ +From a8ddfc4b91f2ab3d955fe528ddb98ce2c5545795 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 4 Aug 2013 13:44:50 +0200 +Subject: [PATCH] Update to new evolution-data-server e_source_*color APIs + +Signed-off-by: Martin Jansa +--- + src/dates_gtk.c | 6 +++--- + src/dates_main.c | 2 +- + src/dates_view.c | 6 +++++- + 3 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/dates_gtk.c b/src/dates_gtk.c +index 78e71bb..ac539d2 100644 +--- a/src/dates_gtk.c ++++ b/src/dates_gtk.c +@@ -1072,7 +1072,7 @@ calendar_do_new_dialog (GtkWindow *parent, DatesData *d) + #endif + + /* Set the colour */ +- e_source_set_color (source, new_colour); ++ e_source_set_color_spec (source, new_colour); + + /* Set the group for the source */ + e_source_set_group (source, group); +@@ -1335,7 +1335,7 @@ calendar_do_edit_dialog (GtkWindow *parent, ESource *source, DatesData *d) + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + + /* Get the colour from the the source */ +- e_source_get_color (source, &raw_colour); ++ raw_colour = e_source_peek_color_spec (source); + + /* Munge this into something usable */ + colour.red = (guint16)(((raw_colour & 0xff0000) >> 16) << 8); +@@ -1459,7 +1459,7 @@ calendar_do_edit_dialog (GtkWindow *parent, ESource *source, DatesData *d) + new_colour <<= 8; + #endif + /* Update the colour */ +- e_source_set_color (source, new_colour); ++ e_source_set_color_spec (source, new_colour); + + /* And the name */ + e_source_set_name (source, (gtk_entry_get_text (GTK_ENTRY (name_entry)))); +diff --git a/src/dates_main.c b/src/dates_main.c +index ce05fe8..7273c63 100644 +--- a/src/dates_main.c ++++ b/src/dates_main.c +@@ -112,7 +112,7 @@ dates_load_calendars (DatesData *d) + system_source = e_source_new (_("Personal"), "system"); + + /* Default Evolution colour */ +- e_source_set_color (system_source, 0xBECEDD); ++ e_source_set_color_spec (system_source, 0xBECEDD); + + /* Set the group for the source and put it in the group */ + e_source_set_group (system_source, local_group); +diff --git a/src/dates_view.c b/src/dates_view.c +index d65db2f..f8efb9c 100644 +--- a/src/dates_view.c ++++ b/src/dates_view.c +@@ -4876,7 +4880,7 @@ dates_view_add_calendar (DatesView *view, ECal *ecal) + cal->text_gc = gdk_gc_new ( + GDK_DRAWABLE (priv->main->window)); + +- if (e_source_get_color (source, &colour)) { ++ if (colour = e_source_peek_color_spec (source)) { + GdkColor gcolour, dgcolour, tgcolour; + gcolour.red = ((colour & 0xFF0000) >> 16) * 0x101; + gcolour.green = ((colour & 0xFF00) >> 8) * 0x101; +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/dso_linking_change_build_fix.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/dso_linking_change_build_fix.patch new file mode 100644 index 000000000..649d59d91 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/dso_linking_change_build_fix.patch @@ -0,0 +1,44 @@ +after gcc linking has changed, all the libraries must be explicitely specified +This patch avoids these linking errors: + + +| make[2]: Entering directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/dates-0.4.11+git0+514185dc1f6588085fda41eb59898b93d0487dd4-r2/git/src'^M +... +| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: e: invalid DSO for symbol `pow@@GLIBC_2.0' definition^M +| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libm.so: could not read symbols: Bad value^M +| collect2: ld returned 1 exit status^M +| make[2]: *** [dates] Error 1 + + + +| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: z: invalid DSO for symbol `pango_layout_get_extents' definition +| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libpango-1.0.so: could not read symbols: Bad value +| collect2: ld returned 1 exit status +| make[2]: *** [dates] Error 1 + + +Nitin A Kamble +Date: 2011/01/11 + +Update: +This is identified as a libtool issue. While creating the libgtkdatesview.la +file, libtool should have added these needed libraries in there. + A bug has been created for this issue: + http://bugzilla.pokylinux.org/show_bug.cgi?id=664 +Nitin A Kamble +Date: 2011/01/19 + +Upstream-Status: Pending + +Index: git/src/Makefile.am +=================================================================== +--- git.orig/src/Makefile.am ++++ git/src/Makefile.am +@@ -34,6 +34,6 @@ dates_SOURCES = $(platform) \ + gconf-bridge.h \ + gconf-bridge.c + +-dates_LDADD = $(DATES_LIBS) $(OWL_LIBS) libgtkdatesview.la ++dates_LDADD = $(DATES_LIBS) $(OWL_LIBS) libgtkdatesview.la -lm -lpango-1.0 + + MAINTAINERCLEANFILES = config.h.in Makefile.in diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch new file mode 100644 index 000000000..fad3c5826 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch @@ -0,0 +1,18 @@ +Make 3.82 is offended by the use of spaces instead of tabs. This has been fixed +in upstream git. + +JL - 15/12/10 + +Upstream-Status: Accepted + +Index: git/Makefile.am +=================================================================== +--- git.orig/Makefile.am ++++ git/Makefile.am +@@ -7,5 +7,5 @@ DISTCLEANFILES = intltool-extract intlto + MAINTAINERCLEANFILES = $(DISTCLEANFILES) aclocal.m4 compile config.guess config.sub configure depcomp install-sh ltmain.sh Makefile.in missing + + snapshot: +- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` ++ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch new file mode 100644 index 000000000..6ade4708f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates/uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch @@ -0,0 +1,37 @@ +uclibc has langinfo.h but it does not define _NL_TIME_FIRST_WEEKDAY +therefore we introduce a check in configure for the this define +and then we make sure that we use it when it really exists + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2011-07-18 10:34:15.000000000 -0700 ++++ git/configure.ac 2011-07-18 10:54:26.403798188 -0700 +@@ -98,6 +98,8 @@ + src/libgtkdatesview.pc + ]) + ++AC_CHECK_DECLS([_NL_TIME_FIRST_WEEKDAY],[],[],[[#include ]]) ++ + AC_OUTPUT + + echo " " +Index: git/src/dates_view.c +=================================================================== +--- git.orig/src/dates_view.c 2011-07-18 10:34:15.000000000 -0700 ++++ git/src/dates_view.c 2011-07-18 10:58:46.093798136 -0700 +@@ -1505,7 +1505,11 @@ + priv->days = 1; + priv->months = 0; + priv->months_in_row = 4; ++#if HAVE_DECL__NL_TIME_FIRST_WEEKDAY + priv->week_start = *nl_langinfo (_NL_TIME_FIRST_WEEKDAY) - 1; ++#else ++ priv->week_start = 0; ++#endif + priv->dragbox = TRUE; + priv->single_click = TRUE; + priv->double_click = FALSE; diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates_git.bb new file mode 100644 index 000000000..a4a572f85 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/dates_git.bb @@ -0,0 +1,19 @@ +require dates.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://src/dates_view.h;endline=22;md5=29f934f356eb970309cdeb6693b3123a \ + file://src/dates_hildon.c;endline=19;md5=63938904198b25de429abb65fbdbdb8a \ + file://src/gconf-bridge.c;endline=22;md5=ad7626c6daf4aec590474a243f4912fa" + +SRCREV = "514185dc1f6588085fda41eb59898b93d0487dd4" +PV = "0.4.11+git${SRCPV}" +PR = "r9" + +S = "${WORKDIR}/git" + +SRC_URI = "git://git.gnome.org/${BPN} \ + file://make-382.patch \ + file://dso_linking_change_build_fix.patch \ + file://uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch \ + file://0001-Update-to-new-evolution-data-server-e_source_-color-.patch \ +" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks.inc b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks.inc new file mode 100644 index 000000000..f8217dc3a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Task list application" +HOMEPAGE = "http://pimlico-project.org/tasks.html" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2 & GPLv2+" + +SECTION = "x11" +DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native" + +inherit autotools pkgconfig gtk-icon-cache diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb new file mode 100644 index 000000000..992596eaf --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb @@ -0,0 +1,13 @@ +require tasks.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/gtk/main.c;endline=19;md5=8659d0b7fd68a2ad6ac30c6539ea5b82 \ + file://src/omoko/openmoko-tasks.c;endline=20;md5=04d56a46863c9f4247694f40257a836a \ + file://src/hildon/hildon-tasks.c;endline=21;md5=488ddf31dc14b2196dec7cc736211b52" + +SRC_URI = "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "0afd969758561599fd782e1effb39c08" +SRC_URI[sha256sum] = "1a7fdc5f95a2193a1a25fdb13f071867fb7e42245ce19ccee4bcccb69e557f2e" + +PR = "r3" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_git.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_git.bb new file mode 100644 index 000000000..6a06da336 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/pimlico/tasks_git.bb @@ -0,0 +1,9 @@ +require tasks.inc + +SRC_URI = "git://git.gnome.org/${BPN}" + +SRCREV = "ea52d46d691c5fce4473ea4e24a35411381f3a65" +PV = "0.13+git${SRCPV}" +PR = "r3" + +S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch new file mode 100644 index 000000000..cb03fd86e --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch @@ -0,0 +1,41 @@ +From b5084616a3bc2a0d485f43aeae69c6025f3f857e Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 10 Jun 2011 18:44:21 +0200 +Subject: [PATCH] add support for the angstrom distribtion + +Signed-off-by: Koen Kooi +--- + Utils/Platform.pm | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/Utils/Platform.pm b/Utils/Platform.pm +index fc76360..8b8c770 100644 +--- a/Utils/Platform.pm ++++ b/Utils/Platform.pm +@@ -92,6 +92,7 @@ my $PLATFORM_INFO = { + "nexenta-1.0" => [ "Nexenta GNU/Solaris", "1.0", "Ellate" ], + "yellowdog-4.1" => [ "Yellow Dog Linux", "4.1", "Sagitta" ], + "guadalinex-v4" => [ "Guadalinex", "v4", "Toro" ], ++ "angstrom" => [ "Angstrom", "", "" ], + }; + + sub get_platform_info +@@ -143,6 +144,7 @@ sub ensure_distro_map + "vine-3.1" => "vine-3.0", + "vlos-1.2" => "gentoo", + "nexenta-1.0" => "solaris-2.11", ++ "angstrom" => "debian", + ); + + return $metamap{$distro} if ($metamap{$distro}); +@@ -375,6 +377,7 @@ sub guess + [ \&check_ark ], + [ \&check_yoper ], + [ \&check_distro_file, "/etc/yellowdog-release", "yellowdog", "^Yellow Dog Linux release (\\S+)" ], ++ [ \&check_file_exists, "/etc/angstrom-version", "angstrom" ], + ], + "FreeBSD" => [[ \&check_freebsd ]], + "SunOS" => [[ \&check_solaris ]] +-- +1.6.6.1 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends new file mode 100644 index 000000000..704c36dbf --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends @@ -0,0 +1,74 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: system-tools-backends +# Required-Start: $local_fs dbus +# Required-Stop: $local_fs dbus +# Should-Start: $syslog +# Should-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: Gnome System Tools Backends +# Description: The Gnome System Tools Backends daemon handles root-needed +# operations to configure your machine with the Gnome System +# Tools. +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/bin/system-tools-backends +PIDDIR=/var/run +PIDFILE=$PIDDIR/system-tools-backends.pid +NAME=system-tools-backends +DESC="System Tools Backends" + +test -x $DAEMON || exit 0 + +set -e + +do_start() { + echo "Starting $DESC" + start-stop-daemon --start --startas $DAEMON --quiet --pidfile $PIDFILE +} + +do_stop() { + echo "Stopping $DESC" + start-stop-daemon --stop --oknodo --quiet --pidfile $PIDFILE --startas $DAEMON +} + +case "$1" in + start) + do_start + ;; + stop) + do_stop + ;; + #reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + # echo "Reloading $DESC configuration files." + # start-stop-daemon --stop --signal 1 --quiet --pidfile \ + # /var/run/$NAME.pid --exec $DAEMON + #;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + do_stop + sleep 5 + do_start + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb new file mode 100644 index 000000000..1693f37cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/system-tools/system-tools-backends_2.10.2.bb @@ -0,0 +1,54 @@ +SUMMARY = "gnome system tools backends" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "dbus dbus-glib glib-2.0 polkit" + +inherit gnome pkgconfig update-rc.d gettext + +SRC_URI[archive.md5sum] = "edae148b31342aecae035051adc70c74" +SRC_URI[archive.sha256sum] = "1dbe5177df46a9c7250735e05e77129fe7ec04840771accfa87690111ca2c670" + +SRC_URI += " \ + file://system-tools-backends \ +" + +# This needs to move to meta-angstrom +SRC_URI_append_angstrom = " \ + file://add-angstrom-distro.patch \ +" + +EXTRA_OECONF = " --with-net-dbus=${libdir}/perl5 " + +do_configure() { + rm missing || true + automake --add-missing + sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.am + sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.in + libtoolize --force --install + aclocal + gnu-configize + oe_runconf + cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S} +} + +do_install_append () { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/system-tools-backends ${D}/${sysconfdir}/init.d/ +} + +INITSCRIPT_NAME = "system-tools-backends" +INITSCRIPT_PARAMS = "start 50 2 3 4 5 . stop 70 1 ." + +# Shadow added so there is a full adduser/deluser +# (Gnome images tend to pull in shadow anyway) +RDEPENDS_${PN} = "shadow" + +FILES_${PN} += " ${sysconfdir}/dbus-1/system.d" +FILES_${PN} += " ${libdir}/pkgconfig" +FILES_${PN} += " ${datadir}/dbus-1/system-services" +FILES_${PN} += " ${datadir}/system-tools-backends-2.0/files" +FILES_${PN} += " ${datadir}/system-tools-backends-2.0/scripts" +FILES_${PN} += " ${datadir}/polkit*" + +PNBLACKLIST[system-tools-backends] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch new file mode 100644 index 000000000..e37482b97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch @@ -0,0 +1,22 @@ +Causes locale file to be installed in /usr/locale instead of /usr/share/locale + +Apply the same fix as in evolution-data-server: +https://git.gnome.org/browse/evolution-data-server/commit/configure.ac?id=ec46c763e9342f604b7228c660623d271dfeb101 + +Upstream-Status: Pending + +diff -uNr gnome-themes-2.32.1.orig/configure.in gnome-themes-2.32.1/configure.in +--- gnome-themes-2.32.1.orig/configure.in 2015-09-18 15:01:25.152055729 +0200 ++++ gnome-themes-2.32.1/configure.in 2015-09-18 15:09:03.312072156 +0200 +@@ -19,11 +19,6 @@ + + AM_GLIB_GNU_GETTEXT + +-# AM_GLIB_GNU_GETTEXT above subst. $DATADIRNAME +-# this is the directory where the *.{mo,gmo} files are installed +-localedir='${prefix}/${DATADIRNAME}/locale' +-AC_SUBST(localedir) +- + # Workaround to make aclocal get the right flags + AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/iconpath-option.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/iconpath-option.patch new file mode 100644 index 000000000..1b4096dd0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes/iconpath-option.patch @@ -0,0 +1,52 @@ + +The patch is ported from sato-icon-theme. + +pkg-config will only search the target sysroot and we want the native script. This +patch adds an option to allow the path to the tool to be specified. + +Upstream-Status: Pending +Signed-off-by: Jackie Huang +--- + configure.in | 26 ++++++++++++++++---------- + 1 file changed, 16 insertions(+), 10 deletions(-) + +diff --git a/configure.in b/configure.in +index 5f7a18c..e8fc31e 100644 +--- a/configure.in ++++ b/configure.in +@@ -74,16 +74,22 @@ AC_ARG_ENABLE([icon-mapping], + ICONMAP="true" + if test "x$enable_mapping" != "xno"; then + UTILS_REQUIRED=0.8.7 +- +- AC_MSG_CHECKING([icon-naming-utils >= $UTILS_REQUIRED]) +- PKG_CHECK_EXISTS(icon-naming-utils >= $UTILS_REQUIRED, have_utils=yes, have_utils=no) +- if test "x$have_utils" = "xyes"; then +- UTILS_PATH="`$PKG_CONFIG --variable=program_path icon-naming-utils`" +- ICONMAP="$UTILS_PATH/icon-name-mapping" +- AC_MSG_RESULT([yes]) +- else +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([icon-naming-utils >= $UTILS_REQUIRED is required to build and install gnome-themes]) ++ PKG_PROG_PKG_CONFIG() ++ AC_ARG_WITH(iconmap, ++ AC_HELP_STRING([--with-iconmap=

    ], [The location of the icon-name-mapping script to use]), ++ ICONMAP=$withval, ICONMAP="") ++ if test "x$ICONMAP" = "x"; then ++ AC_MSG_CHECKING([icon-naming-utils >= $UTILS_REQUIRED]) ++ PKG_CHECK_EXISTS(icon-naming-utils >= $UTILS_REQUIRED, have_utils=yes, have_utils=no) ++ if test "x$have_utils" = "xyes"; then ++ UTILS_PATH="`$PKG_CONFIG --variable=program_path icon-naming-utils`" ++ ICONMAP="$UTILS_PATH/icon-name-mapping" ++ ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ AC_MSG_ERROR([icon-naming-utils >= $UTILS_REQUIRED is required to build and install gnome-themes"]) ++ fi + fi + fi + AC_SUBST(ICONMAP) +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb new file mode 100644 index 000000000..3aa743e0c --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "GNOME themes" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2b543dc97eb7594d026af39d9b54204b" + +PR = "r3" + +SECTION = "x11/gnome" +DEPENDS = "gtk-engines icon-naming-utils icon-naming-utils-native glib-2.0 intltool-native libxml-simple-perl-native" +RDEPENDS_${PN} = "adwaita-icon-theme" + +EXTRA_OECONF += "--enable-all-themes \ + --with-iconmap=${STAGING_LIBEXECDIR_NATIVE}/icon-name-mapping \ +" + +inherit gnomebase perlnative + +PACKAGES =+ " gnome-theme-crux gnome-theme-highcontrast gnome-theme-highcontrastinverse gnome-theme-highcontrastlargeprint gnome-theme-highcontrastlargeprintinverse gnome-theme-largeprint gnome-theme-mist" +FILES_gnome-theme-crux = "${datadir}/themes/Crux ${datadir}/icons/Crux" +FILES_gnome-theme-highcontrast = "${datadir}/themes/HighContrast ${datadir}/icons/HighContrast" +FILES_gnome-theme-highcontrastinverse = "${datadir}/themes/HighContrastInverse ${datadir}/icons/HighContrastInverse" +FILES_gnome-theme-highcontrastlargeprint = "${datadir}/themes/HighContrastLargePrint ${datadir}/icons/HighContrastLargePrint" +FILES_gnome-theme-highcontrastlargeprintinverse = "${datadir}/themes/HighContrastLargePrintInverse ${datadir}/icons/HighContrastLargePrintInverse" +FILES_gnome-theme-largeprint = "${datadir}/themes/LargePrint ${datadir}/icons/LargePrint" +FILES_gnome-theme-mist = "${datadir}/themes/Mist ${datadir}/icons/Mist" + +FILES_${PN} += "${datadir}/themes ${datadir}/icons" + +SRC_URI += "file://iconpath-option.patch \ + file://drop-localedir-override.patch \ +" +SRC_URI[archive.md5sum] = "41db9e3cb25d35af2675c599e67944d1" +SRC_URI[archive.sha256sum] = "8601ee24c2e096593221cbd6ebdb6686042225a03c02a01c0d67c163f9febd1a" +GNOME_COMPRESS_TYPE="bz2" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch new file mode 100644 index 000000000..a8c5bc796 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch @@ -0,0 +1,29 @@ +From eebe1f27f4b27b05eb4b9b55f9df1124acf4d092 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 1 Aug 2014 12:25:24 +0200 +Subject: [PATCH] configure: use 'foreign' mode to avoid errors with missing + NEWS/AUTHORS/etc + +Upstream-status: Pending + +Signed-off-by: Koen Kooi +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 3d7eef6..1784bdd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -41,7 +41,7 @@ VERSION=$WV_VERSION + PACKAGE=wv + + dnl Initialize automake stuff +-AM_INIT_AUTOMAKE($PACKAGE, $VERSION) ++AM_INIT_AUTOMAKE([foreign]) + + # Specify a configuration file + AM_CONFIG_HEADER(config.h) +-- +1.9.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch new file mode 100644 index 000000000..136d89341 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch @@ -0,0 +1,13 @@ +Index: wv-1.2.0/wv-1.0.pc.in +=================================================================== +--- wv-1.2.0.orig/wv-1.0.pc.in 2008-03-19 22:25:18.000000000 +0000 ++++ wv-1.2.0/wv-1.0.pc.in 2008-03-19 22:26:32.000000000 +0000 +@@ -6,5 +6,6 @@ + Name: wvWare + Description: Word Document Filter library and utilities + Version: @VERSION@ +-Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @GLIB_LIBS@ @GSF_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm +-Cflags: -I${includedir}/wv @GSF_CFLAGS@ ++Requires: libgsf-1 ++Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm ++Cflags: -I${includedir}/wv diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb new file mode 100644 index 000000000..6489c6f19 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb @@ -0,0 +1,20 @@ +SUMMARY = "Programs for accessing Microsoft Word documents" +HOMEPAGE = "http://wvware.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6cbca01f1c9178aca280e8ff64d85b2f" + +DEPENDS = "libgsf glib-2.0 libpng" + +SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \ + file://pkgconfig.patch \ + file://0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch \ + " + +SRC_URI[md5sum] = "c1861c560491f121e12917fa76970ac5" +SRC_URI[sha256sum] = "673109910e22d4cf94cc8be4dcb9a0c41b5fbdb1736d4b7bdc7778894d57c2d6" + +inherit autotools pkgconfig + +S = "${WORKDIR}/${PN}-${PV}" + +EXTRA_OECONF = "" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch new file mode 100644 index 000000000..50c9cb99f --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch @@ -0,0 +1,39 @@ +From 17e5606f8c4c8ff26ba18489aad4c484cf8e2949 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 29 Apr 2013 11:34:27 +0200 +Subject: [PATCH] Makefile.am: don't build help +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +it crashes with: + +| warning: failed to load external entity "/usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl" +| cannot parse /usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl +| make[2]: *** [zenity-bg.omf] Error 1 +| 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' + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + Makefile.am | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 03accc1..caec7f0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,8 +1,7 @@ + SUBDIRS = \ + src \ + po \ +- data \ +- help ++ data + + EXTRA_DIST = \ + autogen.sh \ +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb new file mode 100644 index 000000000..4e01c5c93 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "Display dialog boxes from the commandline and shell scripts" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" + +PR = "r2" + +PNBLACKLIST[zenity] ?= "BROKEN: doesn't build with B!=S" + +DEPENDS = "gtk+ glib-2.0 libnotify gnome-doc-utils" + +inherit gnomebase +SRC_URI += "file://0001-Makefile.am-don-t-build-help.patch" +SRC_URI[archive.md5sum] = "aa66ec35451b16e424519b4973082170" +SRC_URI[archive.sha256sum] = "8838be041a07364b62a4281c971392e4a09bb01bb3237a836ec0457ec0ea18ac" + +EXTRA_OECONF += "--disable-scrollkeeper" +# remove -I/usr/include from zenity_CPPFLAGS +do_configure_prepend() { + sed -i -e '/-I$(includedir)/d' src/Makefile.am +} + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch new file mode 100644 index 000000000..83e598e6a --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch @@ -0,0 +1,33 @@ +From c8419ef05ff92ffa3de2e626eb6acd5d2df3baa1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 15 May 2012 13:40:05 +0200 +Subject: [PATCH] Fix glib includes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Upstream-Status: unknown + +Signed-off-by: Andreas Müller +--- + src/trace.c | 5 +---- + 1 files changed, 1 insertions(+), 4 deletions(-) + +diff --git a/src/trace.c b/src/trace.c +index 5ea5c13..774c56d 100644 +--- a/src/trace.c ++++ b/src/trace.c +@@ -21,10 +21,7 @@ + + #include "trace.h" + #include "system.h" +-#include +-#include +-#include +-#include ++#include + #include + #include + +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/florence_0.5.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/florence_0.5.1.bb new file mode 100644 index 000000000..71014f087 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/florence/florence_0.5.1.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Florence is a virtual keyboard (also called on-screen-keyboard), which allows the user to input text through a touchscreen." +HOMEPAGE = "http://florence.sourceforge.net/english.html" + +#NOTICE: If florence can't find its gconf settings, you need to start florence with --config for one time and save the configuration once. + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +PR = "r1" + +DEPENDS = "gtk+ libxml2 libglade librsvg libxtst gconf cairo intltool-native gnome-doc-utils libnotify" + +SRC_URI = "${SOURCEFORGE_MIRROR}/florence/florence/${PV}/florence-${PV}.tar.bz2 \ + file://0001-Fix-glib-includes.patch" +SRC_URI[md5sum] = "56d12e5b47c100d9df172aa5ddc0f609" +SRC_URI[sha256sum] = "7b06ed84ef2b7b22d8d2cf0c7d013a05409bd82028240ac8719a68b192d5bc62" + +inherit gettext autotools gconf pkgconfig + +EXTRA_OECONF = "--disable-scrollkeeper --without-docs --without-at-spi --without-panelapplet" diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch new file mode 100644 index 000000000..a645978d9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/0001-configure.ac-fix-paths-to-introspection-tools.patch @@ -0,0 +1,41 @@ +From 8e158c16cd15fff08b42ed86edc55816d3387837 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 19 Feb 2016 16:04:24 +0200 +Subject: [PATCH] configure.ac: fix paths to introspection tools + +They need to be prefixed with $PKG_CONFIG_SYSROOT_DIR + +Signed-off-by: Alexander Kanavin +--- + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6d2b747..3b28463 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,9 @@ if test "x$found_introspection" = "xyes"; then + dnl python where to find libgoffice, so you might also need to set + dnl LD_LIBRARY_PATH. + +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` ++ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` ++ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` ++ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + if test "x$INTROSPECTION_GIRDIR" = x; then + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + fi +@@ -717,7 +717,7 @@ if test "x$found_introspection" = "xyes"; then + fi + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + else + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= +-- +2.7.0 + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/c99math.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/c99math.patch new file mode 100644 index 000000000..24e6c31a7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/c99math.patch @@ -0,0 +1,12 @@ +Index: goffice-0.7.14/configure.in +=================================================================== +--- goffice-0.7.14.orig/configure.in 2009-11-14 19:14:37.106109501 +0100 ++++ goffice-0.7.14/configure.in 2009-11-14 19:19:40.907333188 +0100 +@@ -66,6 +66,7 @@ + + AC_ISC_POSIX + AC_PROG_CC ++AC_PROG_CC_C99 + AC_PROG_YACC + AM_PROG_LEX + AC_PROG_LN_S diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/nodolt.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/nodolt.patch new file mode 100644 index 000000000..ea1777a99 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/nodolt.patch @@ -0,0 +1,12 @@ +Index: goffice-0.7.14/configure.in +=================================================================== +--- goffice-0.7.14.orig/configure.in ++++ goffice-0.7.14/configure.in +@@ -71,7 +71,6 @@ AC_PROG_YACC + AM_PROG_LEX + AC_PROG_LN_S + AM_PROG_LIBTOOL +-DOLT + AC_STDC_HEADERS + AC_SYS_LARGEFILE + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch new file mode 100644 index 000000000..ae9370cfc --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch @@ -0,0 +1,19 @@ +Taken from http://trac.macports.org/ticket/34812 + +Fixes abiword build failing with: +/usr/lib/libgoffice-0.8.so: undefined reference to `pcre_info' + +Upstream-Status: pending + +http://www.linuxfromscratch.org/blfs/view/cvs/x/goffice.html +--- a/goffice/utils/regutf8.c.orig 2009-09-05 18:52:09.000000000 -0500 ++++ b/goffice/utils/regutf8.c 2012-06-09 18:04:29.000000000 -0500 +@@ -155,7 +155,7 @@ + default: return GO_REG_BADPAT; + } + } else { +- gor->re_nsub = pcre_info (r, NULL, NULL); ++ gor->re_nsub = pcre_fullinfo (r, NULL, 0, NULL); + gor->nosub = (cflags & GO_REG_NOSUB) != 0; + return 0; + } diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb new file mode 100644 index 000000000..919aa7bca --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb @@ -0,0 +1,49 @@ +DESCRIPTION="Gnome Office Library" + +LICENSE="GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6dc33ff21e1ba1ac1a2a1069d361e29e" + +DEPENDS = "libxml-parser-perl-native glib-2.0 gtk+3 pango cairo libgsf libpcre libxml2 libart-lgpl librsvg intltool" + +inherit gnomebase pkgconfig perlnative gobject-introspection + +GNOME_COMPRESS_TYPE = "xz" + +SRC_URI += "file://0001-configure.ac-fix-paths-to-introspection-tools.patch" + +SRC_URI[archive.md5sum] = "90fd17c6fe205b779571e00d9b0b4727" +SRC_URI[archive.sha256sum] = "5c38f4e81e874cc8e89481b080f77c47c72bfd6fe2526f4fc2ef87c17f96cad0" + +FILES_${PN}-dbg += "${libdir}/goffice/${PV}/plugins/*/.debug" + +RRECOMMENDS_${PN} = " \ + goffice-plugin-plot-barcol \ + goffice-plugin-plot-distrib \ + goffice-plugin-plot-pie \ + goffice-plugin-plot-radar \ + goffice-plugin-plot-surface \ + goffice-plugin-plot-xy \ + goffice-plugin-reg-linear \ + goffice-plugin-reg-logfit \ + goffice-plugin-smoothing \ +" + +FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \ + ${sysconfdir} ${sharedstatedir} ${localstatedir} \ + ${base_bindir}/* ${base_sbindir}/* \ + ${base_libdir}/*${SOLIBS} \ + ${datadir}/${PN} \ + ${datadir}/pixmaps ${datadir}/applications \ + ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ + ${libdir}/bonobo/servers" + +FILES_${PN}-locale = "${libdir}/locale" + +PACKAGES_DYNAMIC += "^goffice-plugin-.*" + +python populate_packages_prepend () { + goffice_libdir = d.expand('${libdir}/goffice/${PV}/plugins/') + + do_split_packages(d, goffice_libdir, '(.*)', 'goffice-plugin-%s', 'Goffice plugin for %s', allow_dirs=True) +} + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/90tracker b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/90tracker new file mode 100644 index 000000000..9594b9168 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/90tracker @@ -0,0 +1,4 @@ +#!/bin/sh + +/usr/bin/trackerd -m & + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-dbus.service b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-dbus.service new file mode 100644 index 000000000..c97f49a89 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-dbus.service @@ -0,0 +1,15 @@ +[Unit] +Description=tracker DBus session bus handler +Before=tracker-store.service +After=dbus.service +Requires=dbus.service +BindTo=tracker-store.service + +[Service] +Type=forking +EnvironmentFile=-/tmp/tracker.env +ExecStartPre=@BASE_BINDIR@/rm -rf /tmp/tracker.env +ExecStart=/bin/sh -c 'echo "DBUS_SESSION_BUS_ADDRESS=`dbus-daemon --fork --session --print-address`" > /tmp/tracker.env' + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-miner-fs.service b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-miner-fs.service new file mode 100644 index 000000000..34d9a1e68 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-miner-fs.service @@ -0,0 +1,12 @@ +[Unit] +Description=tracker-miner-fs +After=syslog.target local-fs.target udev.service dbus.service tracker-store.service +Requires=tracker-store.service + +[Service] +Environment=HOME=/home/root +EnvironmentFile=-/tmp/tracker.env +ExecStart=@LIBEXECDIR@/tracker-miner-fs + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-store.service b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-store.service new file mode 100644 index 000000000..c5037f3ab --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/files/tracker-store.service @@ -0,0 +1,12 @@ +[Unit] +Description=tracker-store +After=syslog.target local-fs.target dbus.service +Requires=dbus.service tracker-dbus.service +BindTo=tracker-dbus.service + +[Service] +EnvironmentFile=-/tmp/tracker.env +ExecStart=@LIBEXECDIR@/tracker-store + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch new file mode 100644 index 000000000..8701f5854 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch @@ -0,0 +1,17 @@ +diff -Naur ../tracker-0.10.8/configure.ac tracker-0.10.8//configure.ac +--- ../tracker-0.10.8/configure.ac 2011-04-08 15:03:30.000000000 +0300 ++++ tracker-0.10.8//configure.ac 2011-04-11 13:47:16.625914002 +0300 +@@ -218,7 +218,12 @@ + + # Needed to generate .gir files, + # see http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport +-GOBJECT_INTROSPECTION_CHECK([0.9.5]) ++#GOBJECT_INTROSPECTION_CHECK([0.9.5]) ++# Satisfy missing introspection foo ++AM_CONDITIONAL(HAVE_INTROSPECTION, test "0" == "1") ++ ++INTROSPECTION_CFLAGS="" ++AC_SUBST(INTROSPECTION_CFLAGS) + + # NOTE: dbus and dbus-glib-1 are only used now for libtracker-client + # which is deprecated and tracker-writeback which will be refactored diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch new file mode 100644 index 000000000..5dadda2a2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch @@ -0,0 +1,13 @@ +Index: tracker-0.10.17/m4/sqlite-threadsafe.m4 +=================================================================== +--- tracker-0.10.17.orig/m4/sqlite-threadsafe.m4 ++++ tracker-0.10.17/m4/sqlite-threadsafe.m4 +@@ -45,7 +45,7 @@ int main () + ]])], + [ax_cv_sqlite_threadsafe=yes], + [ax_cv_sqlite_threadsafe=no], +- [ax_cv_sqlite_threadsafe=no])]) ++ [ax_cv_sqlite_threadsafe=yes])]) + + LIBS="$save_LIBS" + ]) diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch new file mode 100644 index 000000000..6c3d9de10 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch @@ -0,0 +1,30 @@ +Index: tracker-0.14.2/src/libtracker-miner/tracker-storage.c +=================================================================== +--- tracker-0.14.2.orig/src/libtracker-miner/tracker-storage.c 2011-08-03 13:53:16.000000000 +0100 ++++ tracker-0.14.2/src/libtracker-miner/tracker-storage.c 2012-09-10 08:25:18.322215126 +0100 +@@ -20,6 +20,7 @@ + #include "config.h" + + #include ++#include + + #include + #include +@@ -646,6 +647,17 @@ + gchar *content_type; + gboolean is_multimedia; + gboolean is_blank; ++ struct stat st; ++ ++ /* ++ * Consider all files under /media to be ++ * removable unless the file .this-is-root is ++ * present. ++ */ ++ if (!strncmp (mount_path, "/media/", ++ strlen ("/media/")) && ++ stat ("/media/.this-is-root", &st)) ++ is_removable = TRUE; + + content_type = mount_guess_content_type (mount, &is_optical, &is_multimedia, &is_blank); + diff --git a/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb new file mode 100644 index 000000000..c52d95e97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb @@ -0,0 +1,82 @@ +DESCRIPTION = "Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=ee31012bf90e7b8c108c69f197f3e3a4" +DEPENDS = "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" + +RDEPENDS_${PN} += " gvfs gsettings-desktop-schemas" +HOMEPAGE = "http://projects.gnome.org/tracker/" + +PR = "r7" + +inherit autotools pkgconfig gnomebase gettext gsettings systemd gobject-introspection + +VER_DIR = "${@gnome_verdir("${PV}")}" +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/tracker/${VER_DIR}/tracker-${PV}.tar.xz \ + file://enable-sqlite-crosscompile.patch \ + file://fix-removable-media-detection.patch \ + file://90tracker \ + file://tracker-store.service \ + file://tracker-miner-fs.service \ + file://tracker-dbus.service \ + " + +SYSTEMD_SERVICE_${PN} = " tracker-store.service tracker-miner-fs.service tracker-dbus.service " +SYSTEMD_AUTO_ENABLE = "disable" + +EXTRA_OECONF += " tracker_cv_have_ioprio=yes" + +PACKAGECONFIG ?= "nautilus" +PACKAGECONFIG[nautilus] = "--enable-nautilus-extension,--disable-nautilus-extension,nautilus" + +# Disable the desktop-centric miners +EXTRA_OECONF += "--disable-miner-thunderbird --disable-miner-firefox \ + --disable-miner-evolution --disable-miner-flickr" + +LEAD_SONAME = "libtrackerclient.so.0" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/src/libtracker-sparql-backend/.libs:${B}/src/libtracker-data/.libs:${B}/src/libtracker-common/.libs" +} + +do_install_append() { + cp -PpR ${D}${STAGING_DATADIR}/* ${D}${datadir}/ || true +# install -d ${D}/${sysconfdir}/X11/Xsession.d/ +# install -m 0755 ${WORKDIR}/90tracker ${D}/${sysconfdir}/X11/Xsession.d/ + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tracker-store.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tracker-miner-fs.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tracker-dbus.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \ + -e 's,@BASE_BINDIR@,${base_bindir},g' \ + ${D}${systemd_unitdir}/system/*.service +} + +PACKAGES =+ "${PN}-tests ${PN}-vala ${PN}-nautilus-extension" + +FILES_${PN} += "${datadir}/dbus-1/ \ + ${libdir}/tracker-${VER_DIR}/*.so.* \ + ${libdir}/tracker-${VER_DIR}/extract-modules/*.so \ + ${libdir}/tracker-${VER_DIR}/writeback-modules/*.so \ + ${datadir}/icons/hicolor/*/apps/tracker.* \ + ${libdir}/nautilus/extensions-2.0/*.la \ + ${datadir}/glib-2.0/schemas/* \ + ${systemd_unitdir}/system/tracker-store.service \ + ${systemd_unitdir}/system/tracker-miner-fs.service \ + ${systemd_unitdir}/system/tracker-dbus.service \ +" + +FILES_${PN}-dev += "${libdir}/tracker-${VER_DIR}/*.la \ + ${libdir}/tracker-${VER_DIR}/*.so \ + ${libdir}/tracker-${VER_DIR}/*/*.la \ + ${libdir}/tracker-${VER_DIR}/extract-modules/*.la" + +FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a" +FILES_${PN}-dbg += "${libdir}/*/*/.debug \ + ${libdir}/*/.debug" +FILES_${PN}-tests = "${datadir}/tracker-tests/" +FILES_${PN}-vala = "${datadir}/vala/" +FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so" + +SRC_URI[md5sum] = "f3a871beeebf86fd752863ebd22af9ac" +SRC_URI[sha256sum] = "9b59330aa2e9e09feee587ded895e9247f71fc25f46b023d616d9969314bc7f1" diff --git a/import-layers/meta-openembedded/meta-gnome/site/arm-64 b/import-layers/meta-openembedded/meta-gnome/site/arm-64 new file mode 100644 index 000000000..f474d2cc4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/site/arm-64 @@ -0,0 +1,13 @@ +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 diff --git a/import-layers/meta-openembedded/meta-gnome/site/x86_64-linux b/import-layers/meta-openembedded/meta-gnome/site/x86_64-linux new file mode 100644 index 000000000..eba1fee2b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gnome/site/x86_64-linux @@ -0,0 +1,17 @@ +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=8 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 + +lf_cv_sane_realloc=yes +as_cv_unaligned_access=${as_cv_unaligned_access=yes} + diff --git a/import-layers/meta-openembedded/meta-gpe/README b/import-layers/meta-openembedded/meta-gpe/README new file mode 100644 index 000000000..70055af50 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/README @@ -0,0 +1,17 @@ +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +branch: krogoth +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +branch: krogoth +revision: HEAD + +Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gpe][krogoth]' in the subject' + +When sending single patches, please using something like: +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gpe][krogoth][PATCH' + +krogoth Branch Maintainer: +Armin Kuster diff --git a/import-layers/meta-openembedded/meta-gpe/conf/layer.conf b/import-layers/meta-openembedded/meta-gpe/conf/layer.conf new file mode 100644 index 000000000..00f3929f8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/conf/layer.conf @@ -0,0 +1,15 @@ +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "gpe-layer" +BBFILE_PATTERN_gpe-layer := "^${LAYERDIR}/" +BBFILE_PRIORITY_gpe-layer = "7" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_gpe-layer = "1" + +LAYERDEPENDS_gpe-layer = "core openembedded-layer" diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch new file mode 100644 index 000000000..c976ff470 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch @@ -0,0 +1,28 @@ +From c551dece6768f67b74b508e9c0133320205ef2df Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Mon, 23 May 2011 15:03:29 +0200 +Subject: [PATCH] Fix the ordering of LDADD options to fix a compilation failure. + +"invalid DSO for symbol `XUngrabServer' definition " + +Signed-off-by: Koen Kooi +--- + src/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 2fddc98..45bd850 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -6,7 +6,7 @@ INCLUDES = -DPKGDATADIR=\"$(pkgdatadir)\" \ + $(GLADE_CFLAGS) \ + -D_GNU_SOURCE + +-LIBS = $(GTK_LIBS) $(GLADE_LIBS) $(XSHAPE_LIBS) ++LIBS = -lX11 $(XSHAPE_LIBS) $(GLADE_LIBS) $(GTK_LIBS) + + bin_PROGRAMS = gpe-scap + gpe_scap_SOURCES = scr-i18n.h \ +-- +1.6.6.1 + diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch new file mode 100644 index 000000000..3cfe5d724 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch @@ -0,0 +1,42 @@ +diff -uNr gpe-scap-1.4.orig/configure.ac gpe-scap-1.4/configure.ac +--- gpe-scap-1.4.orig/configure.ac 2009-03-05 18:53:53.000000000 +0100 ++++ gpe-scap-1.4/configure.ac 2012-05-06 10:18:29.348308322 +0200 +@@ -24,7 +24,7 @@ + AC_SUBST(LDFLAGS) + + dnl libraries +-GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.2" ++GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.4" + PKG_CHECK_MODULES(GTK, $GTK_MODULES) + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) +diff -uNr gpe-scap-1.4.orig/src/scr-shot-common.c gpe-scap-1.4/src/scr-shot-common.c +--- gpe-scap-1.4.orig/src/scr-shot-common.c 2009-03-05 12:13:20.000000000 +0100 ++++ gpe-scap-1.4/src/scr-shot-common.c 2012-05-06 10:30:52.299371576 +0200 +@@ -182,12 +182,12 @@ + /* create session and message */ + session = soup_session_sync_new (); + message = soup_message_new ("POST", url); +- soup_message_add_header (message->request_headers, "User-Agent", "gpe-scap/" VERSION); +- soup_message_add_header (message->request_headers, "Accept", ++ soup_message_headers_append (message->request_headers, "User-Agent", "gpe-scap/" VERSION); ++ soup_message_headers_append (message->request_headers, "Accept", + "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); +-/* soup_message_add_header (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7"); +- soup_message_add_header (message->request_headers, "Keep-Alive", "100"); +- soup_message_add_header (message->request_headers, "Connection", "keep-alive"); ++/* soup_message_headers_append (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7"); ++ soup_message_headers_append (message->request_headers, "Keep-Alive", "100"); ++ soup_message_headers_append (message->request_headers, "Connection", "keep-alive"); + soup_message_wire add_header (message->request_headers, "Accept-Encoding", "gzip,deflate"); + */ + /* build message body */ +@@ -207,7 +207,7 @@ + memcpy (body + strlen (cmd) + len, tail, strlen (tail)); + + soup_message_set_request (message, "multipart/form-data; boundary="SEP, +- SOUP_BUFFER_SYSTEM_OWNED, body, content_len); ++ SOUP_MEMORY_TAKE, body, content_len); + + soup_session_send_message (session, message); + diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb new file mode 100644 index 000000000..3f1e27e87 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb @@ -0,0 +1,23 @@ +SUMMARY = "A GPE application that allows you to take screenshots" +SECTION = "gpe" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +DEPENDS = "glib-2.0 gtk+ libgpewidget libglade libsoup-2.4" + +PR = "r3" + +SRC_URI[md5sum] = "eaf545561b0ad981c9d01833f30fcf95" +SRC_URI[sha256sum] = "762778421fae7c62d5ec6a9d27986166c0dbbe2ff51fc10bb9b8baff5c367534" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools pkgconfig + +SRC_URI += "file://0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch \ + file://use.libsoup-2.4.patch \ +" + +RREPLACES_${PN} = "gpe-screenshot" + diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch new file mode 100644 index 000000000..f590caa46 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch @@ -0,0 +1,11 @@ +diff -uNr libgpewidget-0.117.orig/gpehelp.c libgpewidget-0.117/gpehelp.c +--- libgpewidget-0.117.orig/gpehelp.c 2006-10-12 12:20:33.000000000 +0200 ++++ libgpewidget-0.117/gpehelp.c 2012-04-30 07:45:57.813293792 +0200 +@@ -33,7 +33,6 @@ + #include + #include + #include +-#include + + + /* helper function definitions*/ diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch new file mode 100644 index 000000000..317e01a9b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch @@ -0,0 +1,11 @@ +--- configure.ac.orig 2006-02-04 17:37:55.000000000 +0100 ++++ configure.ac 2006-02-06 00:56:28.000000000 +0100 +@@ -36,7 +36,7 @@ + ENABLE_CAIRO=$enableval + ], + [ +- PKG_CHECK_EXISTS(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no]) ++ PKG_CHECK_MODULES(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no]) + ]) + + ENABLE_HILDON=false diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb new file mode 100644 index 000000000..df774eed0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications." +SECTION = "gpe/libs" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +DEPENDS = "gtk+ cairo libxinerama libxcomposite libxrender" +PR = "r5" + +inherit gpe pkgconfig autotools gtk-doc + +SRC_URI += "file://pkgconfig.patch;striplevel=0 \ + file://glib-2.32.patch \ +" +SRC_URI[md5sum] = "b85a839264a35d0faf9a1a38c486e189" +SRC_URI[sha256sum] = "f96d30c09b0395ea4e146730fd52d9ea303b619bb139051d9f12d3f868a9e18c" + +GPE_TARBALL_SUFFIX = "bz2" + +EXTRA_OECONF = "--enable-cairo" +LDFLAGS += " -L${STAGING_LIBDIR}" + +PACKAGES =+ "${PN}-bin" diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch new file mode 100644 index 000000000..1be6ceaa8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch @@ -0,0 +1,11 @@ +--- /tmp/Makefile.old 2006-01-16 22:51:34.000000000 +0100 ++++ minilite-050/Makefile 2009-05-01 16:36:32.000000000 +0200 +@@ -45,7 +45,7 @@ + + install-program: all + mkdir -p $(DESTDIR)$(PREFIX)/bin +- $(INSTALL) -s $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) ++ $(INSTALL) $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) + mkdir -p $(DESTDIR)$(PREFIX)/share/applications + $(INSTALL) -m 644 $(PACKAGE).desktop $(DESTDIR)$(PREFIX)/share/applications/$(PACKAGE).desktop + mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps/ diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb new file mode 100644 index 000000000..90960a2b0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb @@ -0,0 +1,16 @@ +SUMMARY = "GPE Screen light control dockapp" +SECTION = "gpe" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://minilite.c;beginline=8;endline=11;md5=fe9332aaecbce9f74ce2bfeb91680ed1" + +DEPENDS = "libgpewidget" + +inherit gpe + +SRC_URI = "${GPE_MIRROR}/${BP}.tar.gz \ + file://makefile-fix.patch" +SRC_URI[md5sum] = "d81cecf269ad7bab0da960e6e7228332" +SRC_URI[sha256sum] = "2b299425203246090a4949e034f1d0efb3ff99cd1591d0e16c57370a530b361e" + +export CVSBUILD="no" diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch new file mode 100644 index 000000000..0e498c712 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch @@ -0,0 +1,22 @@ +diff -uri fbreader-0.12.1.orig/fbreader/Makefile fbreader-0.12.1/fbreader/Makefile +--- fbreader-0.12.1.orig/fbreader/Makefile 2009-12-13 09:03:11.000000000 +0100 ++++ fbreader-0.12.1/fbreader/Makefile 2009-12-14 17:18:47.548638783 +0100 +@@ -37,7 +37,6 @@ + @install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader + @install -d $(FBSHAREDIR) + @install -d $(FBSHAREDIR)/help +- @./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help + @install -d $(FBSHAREDIR)/network + @install -m 0644 $(wildcard data/network/*.xml) $(FBSHAREDIR)/network + @install -d $(FBSHAREDIR)/network/certificates +@@ -58,8 +57,8 @@ + @install -d $(FBSHAREDIR)/resources + @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources + @install -d $(DESTDIR)$(APPIMAGEDIR_REAL) +- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) +- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) ++ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) ++ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) + @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) + @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install + diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch new file mode 100644 index 000000000..00cba1023 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch @@ -0,0 +1,20 @@ + Fix compilation with gcc 4.5 + + [FBreader Ticket #340] -- http://old.fbreader.org/mantis/view.php?id=340 + + Without that patch we have: + Compiling Library.o ...Library.cpp:42:1: error: 'Library::Library' names the constructor, not the type + + Upstream-Status: Accepted [Fixed in Version 0.14.0] + +--- fbreader-0.12.10-orig/fbreader/src/library/Library.cpp 2010-04-01 15:14:24.000000000 +0200 ++++ fbreader-0.12.10/fbreader/src/library/Library.cpp 2010-04-13 13:34:06.000000000 +0200 +@@ -39,7 +39,7 @@ + shared_ptr Library::ourInstance; + const size_t Library::MaxRecentListSize = 10; + +-Library::Library &Library::Instance() { ++Library &Library::Instance() { + if (ourInstance.isNull()) { + ourInstance = new Library(); + } diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb new file mode 100644 index 000000000..e9ead0f24 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb @@ -0,0 +1,42 @@ +SUMMARY = "FBreader is an ebook reader" +HOMEPAGE = "http://www.fbreader.org" +SECTION = "x11/utils" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3" + +PR = "r1" + +SRC_URI = "http://www.fbreader.org/fbreader-sources-${PV}.tgz \ +file://Makefile.patch \ +file://gcc45.patch" + +# Set the defaults +READER_RESOLUTION ?= "1024x600" +READER_ARCH ?= "desktop" +READER_UI ?= "gtk" +READER_STATUS ?= "release" + +FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary" +FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/" + +CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}" +EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' LDFLAGS='${LDFLAGS}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'" + +inherit pkgconfig + +do_configure() { + cd ${WORKDIR}/${PN}-${PV} + mv makefiles/target.mk makefiles/target.mk.orig + + echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk + echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk + echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk +} + +do_install() { + oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION} +} + +SRC_URI[md5sum] = "da9ec4721efdb0ec0aaa182bff16ad82" +SRC_URI[sha256sum] = "328aec454db80e225aa0b5c31adef74bf62a14357482947e87e9731686b3c624" diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_git.bb b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_git.bb new file mode 100644 index 000000000..763889a56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/fbreader_git.bb @@ -0,0 +1,42 @@ +SUMMARY = "FBreader is an ebook reader" +HOMEPAGE = "http://www.fbreader.org" +SECTION = "x11/utils" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3" +SRCREV = "2cf1ec0e306e1122dbed850bfa005cd59a6168ee" +PV = "0.99.5+gitr${SRCPV}" + +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "git://github.com/geometer/FBReader.git;protocol=http;branch=master \ + file://0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch" + +# Set the defaults +READER_RESOLUTION ?= "1024x600" +READER_ARCH ?= "desktop" +READER_UI ?= "gtk" +READER_STATUS ?= "release" + +FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary" +FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/" + +CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}" +EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'" +inherit pkgconfig + +S = "${WORKDIR}/git" + +do_configure() { + cd "${S}" + + echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk + echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk + echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk +} + +do_install() { + oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION} +} diff --git a/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch new file mode 100644 index 000000000..f6e12023b --- /dev/null +++ b/import-layers/meta-openembedded/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch @@ -0,0 +1,40 @@ +From da4170b61bb41eff0af170d1d77bfd90f9ebe5dd Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli +Date: Fri, 20 Jan 2012 11:34:42 +0100 +Subject: [PATCH] Fix installation of the icons when RESOLUTION is set + +When resolution is set, the following code(in fbreader/Makefile) is executed: + VARIANT = $(TARGET_ARCH) + ifneq "$(RESOLUTION)" "" + VARIANT = $(TARGET_ARCH)_$(RESOLUTION) + endif + +This fix is based on a patch from the openembedded project, + which can be found here: + http://cgit.openembedded.org/openembedded/tree/recipes/fbreader/fbreader-0.12.1/Makefile.patch + +Signed-off-by: Denis 'GNUtoo' Carikli +--- + Submitted trough github to git://github.com/geometer/FBReader.git as a pull request + + fbreader/Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fbreader/Makefile b/fbreader/Makefile +index bfa9242..03e6cc3 100644 +--- a/fbreader/Makefile ++++ b/fbreader/Makefile +@@ -60,8 +60,8 @@ do_install: + @install -d $(FBSHAREDIR)/resources + @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources + @install -d $(DESTDIR)$(APPIMAGEDIR_REAL) +- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) +- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) ++ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) ++ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) + @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) + @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install + +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/COPYING.MIT b/import-layers/meta-openembedded/meta-initramfs/COPYING.MIT new file mode 100644 index 000000000..fb950dc69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/meta-initramfs/README b/import-layers/meta-openembedded/meta-initramfs/README new file mode 100644 index 000000000..ea03a1d06 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/README @@ -0,0 +1,37 @@ +meta-initramfs +============== + +This layer contains the metadata necessary to build the klibc library and +utilities (shared and static) plus other tools useful for the creation of +small-sized initramfs. + + +Dependencies +------------ + +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +branch: krogoth +revision: HEAD + + +Maintenance +----------- + +Send patches / pull requests to openembedded-devel@lists.openembedded.org +with '[meta-initramfs][krogoth]' in the subject. + +When sending single patches, please using something like: +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][krogoth][PATCH' + +krogoth Branch Maintainer: +Armin Kuster + + +License +------- + +All metadata is MIT licensed unless otherwise stated. Source code included +in tree for individual recipes is under the LICENSE stated in each recipe +(.bb file) unless otherwise stated. diff --git a/import-layers/meta-openembedded/meta-initramfs/classes/klibc.bbclass b/import-layers/meta-openembedded/meta-initramfs/classes/klibc.bbclass new file mode 100644 index 000000000..f864104cf --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/classes/klibc.bbclass @@ -0,0 +1,15 @@ +# klcc-cross depends on klibc +DEPENDS =+ "klcc-cross" + +# Default for klcc is to build static binaries. +# Set CC = "${TARGET_PREFIX}klcc -shared" to build the dynamic version. + +export CC = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS}" +export CC_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS} -march=armv4 -mthumb-interwork" + +export CPP = "${CC} -E" + +# klcc uses own optimizations by default. See klcc(1) man file. +export CFLAGS="" +export CPPFLAGS="" +export LDFLAGS="" diff --git a/import-layers/meta-openembedded/meta-initramfs/conf/layer.conf b/import-layers/meta-openembedded/meta-initramfs/conf/layer.conf new file mode 100644 index 000000000..d9b7c4cfb --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/conf/layer.conf @@ -0,0 +1,21 @@ +# Layer configuration for meta-initramfs layer + +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "meta-initramfs" +BBFILE_PATTERN_meta-initramfs := "^${LAYERDIR}/" + +# Define the priority for recipes (.bb files) from this layer, +# choosing carefully how this layer interacts with all of the +# other layers. + +BBFILE_PRIORITY_meta-initramfs = "8" +LAYERDEPENDS_meta-initramfs = "core" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + dracut->virtual/kernel \ +" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb new file mode 100644 index 000000000..be7350ade --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb @@ -0,0 +1,22 @@ +# Simple initramfs image. Mostly used for live images. +DESCRIPTION = "Small image capable of booting a device. The kernel includes \ +the Minimal RAM-based Initial Root Filesystem (initramfs), which one can use \ +to check the hardware efficiently." + +PACKAGE_INSTALL = "initramfs-debug busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "" + +export IMAGE_BASENAME = "initramfs-debug-image" +IMAGE_LINGUAS = "" + +LICENSE = "MIT" + +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +BAD_RECOMMENDATIONS += "busybox-syslog" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb new file mode 100644 index 000000000..45ff50d6b --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb @@ -0,0 +1,24 @@ +SUMMARY = "Initramfs image for kexecboot kernel" +DESCRIPTION = "This image provides kexecboot (linux as bootloader) and helpers." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" + +# avoid circular dependencies +EXTRA_IMAGEDEPENDS = "" + +# We really need just kexecboot, kexec and ubiattach +IMAGE_INSTALL = "kexecboot kexec mtd-utils-ubifs" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "" + +IMAGE_LINGUAS = "" + +FEED_DEPLOYDIR_BASE_URI = "" +LDCONFIGDEPEND = "" + +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +inherit image diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb new file mode 100644 index 000000000..df9751189 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb @@ -0,0 +1,7 @@ +require initramfs-kexecboot-image.bb + +SUMMARY = "Initramfs image for kexecboot kernel (klibc-static binaries)" + +# We really need just kexecboot, kexec and ubiattach +# statically compiled against klibc +IMAGE_INSTALL = "kexecboot-klibc kexec-klibc ubiattach-klibc" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh new file mode 100644 index 000000000..7edbd70cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +do_mount_fs() { + grep -q "$1" /proc/filesystems || return + test -d "$2" || mkdir -p "$2" + mount -t "$1" "$1" "$2" +} + +do_mknod() { + test -e "$1" || mknod "$1" "$2" "$3" "$4" +} + +mkdir -p /proc +mount -t proc proc /proc + +do_mount_fs sysfs /sys +do_mount_fs debugfs /sys/kernel/debug +do_mount_fs devtmpfs /dev +do_mount_fs devpts /dev/pts +do_mount_fs tmpfs /dev/shm + +mkdir -p /run +mkdir -p /var/run + +do_mknod /dev/console c 5 1 +do_mknod /dev/null c 1 3 +do_mknod /dev/zero c 1 5 + +exec sh /dev/console 2>/dev/console diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb new file mode 100644 index 000000000..b7defff6f --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Extremely basic live image init script" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +SRC_URI = "file://init-debug.sh" + +S = "${WORKDIR}" + +do_install() { + install -m 0755 ${WORKDIR}/init-debug.sh ${D}/init +} + +inherit allarch + +FILES_${PN} += " /init " diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch new file mode 100644 index 000000000..6d3270f89 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch @@ -0,0 +1,61 @@ +From 8519d61a7097498b0ee93fb8dc8262286825f3e5 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Thu, 1 May 2014 23:58:51 +0200 +Subject: [PATCH 1/4] kexecboot: fix build when S != B + +* fatal error: ../config.h: No such file or directory + +Signed-off-by: Andrea Adami +--- + machine/zaurus.c | 2 +- + res/theme-gui.h | 2 +- + res/theme-tui.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/machine/zaurus.c b/machine/zaurus.c +index ea21047..83be13b 100644 +--- a/machine/zaurus.c ++++ b/machine/zaurus.c +@@ -25,7 +25,7 @@ + * + */ + +-#include "../config.h" ++#include "config.h" + + #ifdef USE_ZAURUS + +diff --git a/res/theme-gui.h b/res/theme-gui.h +index f8fef7f..79bed39 100644 +--- a/res/theme-gui.h ++++ b/res/theme-gui.h +@@ -15,7 +15,7 @@ + * + */ + +-#include "../config.h" ++#include "config.h" + + #ifdef USE_ICONS + /** Icons **/ +diff --git a/res/theme-tui.h b/res/theme-tui.h +index 94e7693..909be56 100644 +--- a/res/theme-tui.h ++++ b/res/theme-tui.h +@@ -15,11 +15,11 @@ + * + */ + +-#include "../config.h" ++#include "config.h" + + #ifdef USE_TEXTUI + /** TEXT UI colors **/ +-#include "../termseq.h" ++#include "termseq.h" + + /* Background color pair */ + #define TUI_CLR_BG TERM_CSI TERM_BG_BLACK ";" TERM_FG_WHITE TERM_SGR +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch new file mode 100644 index 000000000..ecf422b72 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch @@ -0,0 +1,33 @@ +From b8938acc3f1ab35273fa9a2fa7728050ef72ff65 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Fri, 2 May 2014 00:19:24 +0200 +Subject: [PATCH 2/4] kexecboot: fix configure warnings + +Makefile.am:5: warning: source file 'fstype/fstype.c' is in a subdirectory, +Makefile.am:5: but option 'subdir-objects' is disabled +automake: warning: possible forward-incompatibility. +... +Makefile.am:5: warning: source file 'machine/zaurus.c' is in a subdirectory, +... + +Signed-off-by: Andrea Adami +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 0ca4b81..66ec54e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,7 +1,7 @@ + AC_PREREQ(2.53) + AC_INIT([kexecboot], [0.6], [kexecboot-devel@linuxtogo.org]) + AC_CANONICAL_HOST +-AM_INIT_AUTOMAKE([-Wall foreign]) ++AM_INIT_AUTOMAKE([-Wall foreign] [subdir-objects]) + AC_CONFIG_SRCDIR(kexecboot.c) + AC_CONFIG_HEADERS(config.h) + AM_MAINTAINER_MODE +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch new file mode 100644 index 000000000..4caa0d5f0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch @@ -0,0 +1,97 @@ +From 800dae0d34f8629a34c638a612166b76dda03e27 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sat, 2 Aug 2014 01:13:08 +0200 +Subject: [PATCH 3/4] kexecboot: do not hardcode MOUNTPOINT + +Avoid to hardcode it: could be requested as a new configure option. + +Signed-off-by: Andrea Adami +--- + cfgparser.c | 6 +++--- + kexecboot.c | 18 ++++++++++-------- + 2 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/cfgparser.c b/cfgparser.c +index 8f6688c..dec27b1 100644 +--- a/cfgparser.c ++++ b/cfgparser.c +@@ -141,7 +141,7 @@ static int set_kernel(struct cfgdata_t *cfgdata, char *value) + return -1; + } + +- strcpy(sc->kernelpath, "/mnt"); ++ strcpy(sc->kernelpath, MOUNTPOINT); + strcat(sc->kernelpath, value); + return 0; + } +@@ -155,7 +155,7 @@ static int set_icon(struct cfgdata_t *cfgdata, char *value) + + dispose(sc->iconpath); + /* Add our mountpoint, since the enduser won't know it */ +- sc->iconpath = malloc(sizeof(MOUNTPOINT)+strlen(value)); ++ sc->iconpath = malloc(strlen(MOUNTPOINT)+strlen(value)+1); + if (NULL == sc->iconpath) { + DPRINTF("Can't allocate memory to store iconpath '%s'", value); + return -1; +@@ -194,7 +194,7 @@ static int set_initrd(struct cfgdata_t *cfgdata, char *value) + return -1; + } + +- strcpy(sc->initrd, "/mnt"); ++ strcpy(sc->initrd, MOUNTPOINT); + strcat(sc->initrd, value); + return 0; + } +diff --git a/kexecboot.c b/kexecboot.c +index d6657a0..7268d6b 100644 +--- a/kexecboot.c ++++ b/kexecboot.c +@@ -57,20 +57,22 @@ + #endif + + #ifdef USE_MACHINE_KERNEL +-/* Machine-dependent kernel patch */ ++/* Machine-dependent kernel path */ + char *machine_kernel = NULL; + #endif + ++#define PREPEND_MOUNTPATH(string) MOUNTPOINT""string ++ + /* NULL-terminated array of kernel search paths + * First item should be filled with machine-dependent path */ + char *default_kernels[] = { + #ifdef USE_ZIMAGE +- "/mnt/boot/zImage", +- "/mnt/zImage", ++ PREPEND_MOUNTPATH("/boot/zImage"), ++ PREPEND_MOUNTPATH("/zImage"), + #endif + #ifdef USE_UIMAGE +- "/mnt/boot/uImage", +- "/mnt/uImage", ++ PREPEND_MOUNTPATH("/boot/uImage"), ++ PREPEND_MOUNTPATH("/uImage"), + #endif + NULL + }; +@@ -149,14 +151,14 @@ char *get_machine_kernelpath() { + ++tmp; + } + +- /* Prepend "/mnt/boot/zImage-" to hw */ +- tmp = malloc(strlen(hw) + 17 + 1); /* strlen("/mnt/boot/zImage-") */ ++ /* Prepend MOUNTPOINT"/boot/zImage-" to hw */ ++ tmp = malloc(strlen(PREPEND_MOUNTPATH("/boot/zImage-")) + strlen(hw) + 1); + if (NULL == tmp) { + DPRINTF("Can't allocate memory for machine-specific kernel path"); + return NULL; + } + +- strcpy(tmp, "/mnt/boot/zImage-"); ++ strcpy(tmp, PREPEND_MOUNTPATH("/boot/zImage-")); + strcat(tmp, hw); + + return tmp; +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch new file mode 100644 index 000000000..6d81d8357 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch @@ -0,0 +1,135 @@ +From de9a6284df8add6ec03e1d9981d0b6d0595bbc69 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Mon, 10 Nov 2014 23:37:23 +0100 +Subject: [PATCH 4/4] kexecboot.c: workaround for absolute kernel and initrd + symlinks + +Add MOUNTPOINT prefix if the kernel/initrd symlinks start with '/'. +Do nothing if the path is a relative symbolic link or not a symlink. + +Fix following situation: + +root@mizar:/var/tmp# ls -al boot/ +total 2076 +drwxr-xr-x 2 root root 4096 lug 5 01:38 . +drwxrwxrwt 4 root root 4096 lug 5 12:26 .. +-rw-r--r-- 1 root root 831 lug 5 01:24 boot.cfg +-rw-r--r-- 1 root root 1322 lug 5 01:24 icon.xpm +lrwxrwxrwx 1 root root 34 lug 5 12:26 zImage -> +/boot/zImage-3.14.5-yocto-standard +-rw-r--r-- 1 root root 2106832 lug 5 01:20 zImage-3.14.5-yocto-standard + +Cannot open `/mnt/boot/zImage': No such file or directory +Nothing has been loaded! + +Signed-off-by: Andrea Adami +--- + kexecboot.c | 53 ++++++++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 44 insertions(+), 9 deletions(-) + +diff --git a/kexecboot.c b/kexecboot.c +index 7268d6b..8a7a7d2 100644 +--- a/kexecboot.c ++++ b/kexecboot.c +@@ -208,11 +208,16 @@ void start_kernel(struct params_t *params, int choice) + const char *load_argv[] = { NULL, "-l", NULL, NULL, NULL, NULL }; + const char *exec_argv[] = { NULL, "-e", NULL, NULL}; + +- char *cmdline_arg = NULL, *initrd_arg = NULL; ++ char *cmdline_arg = NULL, *initrd_arg = NULL, *kernel_arg = NULL; + int n, idx, u; + struct stat sinfo; + struct boot_item_t *item; + ++ /* buffer for readlink (could be truncated) */ ++ char buf[512]; ++ int len; ++ ++ + item = params->bootcfg->list[choice]; + + exec_argv[0] = kexec_path; +@@ -306,10 +311,17 @@ void start_kernel(struct params_t *params, int choice) + } + } + ++ /* Mount boot device */ ++ if ( -1 == mount(mount_dev, mount_point, mount_fstype, ++ MS_RDONLY, NULL) ) { ++ perror("Can't mount boot device"); ++ exit(-1); ++ } ++ + /* fill '--initrd' option */ + if (item->initrd) { + /* allocate space */ +- n = sizeof(str_initrd_start) + strlen(item->initrd); ++ n = sizeof(str_initrd_start) + strlen(item->initrd) + 1 + sizeof(mount_point) + sizeof(buf); + + initrd_arg = (char *)malloc(n); + if (NULL == initrd_arg) { +@@ -317,24 +329,46 @@ void start_kernel(struct params_t *params, int choice) + } else { + strcpy(initrd_arg, str_initrd_start); /* --initrd= */ + strcat(initrd_arg, item->initrd); ++ ++ if ((len = readlink(item->initrd, buf, sizeof(buf)-1)) != -1) { ++ buf[len] = '\0'; ++ /* Fix absolute symlinks: prepend MOUNTPOINT */ ++ if (buf[0] == '/') { ++ strcpy(initrd_arg, str_initrd_start); /* --initrd= */ ++ strcat(initrd_arg, mount_point); ++ strcat(initrd_arg, buf); ++ } ++ } + load_argv[idx] = initrd_arg; + ++idx; + } + } + + /* Append kernelpath as last arg of kexec */ +- load_argv[idx] = item->kernelpath; ++ /* allocate space */ ++ n = strlen(item->kernelpath) + 1 + sizeof(mount_point) + sizeof(buf); ++ ++ kernel_arg = (char *)malloc(n); ++ if (NULL == kernel_arg) { ++ perror("Can't allocate memory for kernel_arg"); ++ } else { ++ strcpy(kernel_arg, item->kernelpath); ++ ++ if ((len = readlink(item->kernelpath, buf, sizeof(buf)-1)) != -1) { ++ buf[len] = '\0'; ++ /* Fix absolute symlinks: prepend MOUNTPOINT */ ++ if (buf[0] == '/') { ++ strcpy(kernel_arg, mount_point); ++ strcat(kernel_arg, buf); ++ } ++ } ++ load_argv[idx] = kernel_arg; ++ } + + DPRINTF("load_argv: %s, %s, %s, %s, %s", load_argv[0], + load_argv[1], load_argv[2], + load_argv[3], load_argv[4]); + +- /* Mount boot device */ +- if ( -1 == mount(mount_dev, mount_point, mount_fstype, +- MS_RDONLY, NULL) ) { +- perror("Can't mount boot device"); +- exit(-1); +- } + + /* Load kernel */ + n = fexecw(kexec_path, (char *const *)load_argv, envp); +@@ -347,6 +381,7 @@ void start_kernel(struct params_t *params, int choice) + + dispose(cmdline_arg); + dispose(initrd_arg); ++ dispose(kernel_arg); + + /* Check /proc/sys/net presence */ + if ( -1 == stat("/proc/sys/net", &sinfo) ) { +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0005-rgb.h-fix-build-with-gcc5.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0005-rgb.h-fix-build-with-gcc5.patch new file mode 100644 index 000000000..b54199b08 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/files/0005-rgb.h-fix-build-with-gcc5.patch @@ -0,0 +1,35 @@ +From b2c4fc69868a4831ec798ad98f5e7fce200cf0e3 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Thu, 24 Sep 2015 00:02:48 +0200 +Subject: [PATCH] rgb.h: fix build with gcc 5 (C99 inline semantic) + +Building with gcc 5.2 we trigger the following error: + +rgb.h:55:1: warning: inline function 'rgba2comp' declared but never defined +| rgba2comp(kx_rgba rgba, kx_ccomp *red, kx_ccomp *green, +| ^ + +https://gcc.gnu.org/gcc-5/porting_to.html + +Signed-off-by: Andrea Adami +--- + rgb.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rgb.h b/rgb.h +index 0ba987a..4f64622 100644 +--- a/rgb.h ++++ b/rgb.h +@@ -51,8 +51,7 @@ typedef struct { + } kx_named_color; + + /* Convert RGBA uint32 to red/green/blue/alpha components */ +-inline void +-rgba2comp(kx_rgba rgba, kx_ccomp *red, kx_ccomp *green, ++void rgba2comp(kx_rgba rgba, kx_ccomp *red, kx_ccomp *green, + kx_ccomp *blue, kx_ccomp *alpha); + + /* Convert hex rgb color to rgba color */ +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg/icon.xpm b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg/icon.xpm new file mode 100644 index 000000000..6e6fd776d --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg/icon.xpm @@ -0,0 +1,43 @@ +/* XPM */ +static char * icon_xpm[] = { +"32 32 8 1", +" c None", +". c #D6DBDE", +"+ c #9BA6AE", +"@ c #60727D", +"# c #B8BFC5", +"$ c #A9E8F6", +"% c #12BCE4", +"& c #57D2EC", +" ", +" ", +" ", +" .++@@@@++. ", +" +@@@@@@@@@@@@+ ", +" #@@@@@@@@@@@@@@@@# ", +" +@@@@@@@@@@@@@@@@@@+ ", +" .@@@@@@@@++##+@@@@@@@@@. ", +" @@@@@@@. .@@@@@@@ ", +" +@@@@@+ $$$$ #@@@@@+ ", +" #@@@@@. $%%%%%%%%$ .@@@@@# ", +" @@@@@. &%%%%%%%%%%& .@@@@@ ", +" #@@@@+ %%%%%%%%%%%%%% +@@@@# ", +" @@@@@ &%%%%%%%%%%%%%%& @@@@@ ", +".@@@@. $%%%%%& $%%%%%& .@@@@.", +"+@@@@ %%%%% $%%%%%& @@@@+", +"+@@@+ %%%%$ $%%%%%& $$ +@@@+", +"@@@@+ $%%%% $%%%%%& $%$ +@@@@", +"@@@@# &%%%& &%%%%& $%%& #@@@@", +"@@@@. &%%%& %%%%& $%%%& .@@@@", +"@@@@# $%%%& &%%& &%%%$ #@@@@", +"+@@@+ $%%%% %%%%$ +@@@+", +"+@@@@ %%%%& &%%%% @@@@+", +"#@@@@ &%%%%& &%%%%& @@@@#", +" @@@@+ %%%%%%&$$&%%%%%% +@@@@ ", +" +@@@@. $%%%%%%%%%%%%%%$ .@@@@+ ", +" .@@@@@ $%%%%%%%%%%%%$ @@@@@. ", +" #++++. &%%%%%%%%& .++++# ", +" $&&%%&&$ ", +" ", +" ", +" "}; diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb new file mode 100644 index 000000000..69f38721b --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb @@ -0,0 +1,60 @@ +SUMMARY = "Configuration files for kexecboot" +DESCRIPTION = "Default icon and boot.cfg for kexecboot linux-as-bootloader." +SECTION = "base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" + +SRC_URI = "file://icon.xpm" + +S = "${WORKDIR}" + +do_install_prepend () { +echo '# /boot/boot.cfg - KEXECBOOT configuration file. +# +# First kernel stanza. +# Show this label in kexecboot menu. +# +LABEL=${KEXECBOOT_LABEL} +# +# Specify full kernel path on target. +KERNEL=/boot/${KERNEL_IMAGETYPE} +# +# Append this tags to the kernel cmdline. +APPEND=${CMDLINE} ${CMDLINE_DEBUG} +# +# Specify optional initrd/initramfs. +# INITRD=/boot/initramfs.cpio.gz +# +# Specify full path for a custom icon for the menu-item. +# If not set, use device-icons as default (NAND, SD, CF, ...). +# ICON=/boot/icon.xpm +# +# Priority of item in kexecboot menu. +# Items with highest priority will be shown at top of menu. +# Default: 0 (lowest, ordered by device ordering) +# PRIORITY=10 +# +# +# Second kernel stanza. +# LABEL=${KEXECBOOT_LABEL}-test +# KERNEL=/boot/${KERNEL_IMAGETYPE}-test +# APPEND=${CMDLINE} +#' > ${S}/boot.cfg +} +do_install () { + install -d ${D}/boot + install -m 0644 boot.cfg ${D}/boot/boot.cfg + install -m 0644 icon.xpm ${D}/boot/icon.xpm +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} += "/boot/*" + +CMDLINE ?= "" +CMDLINE_DEBUG ?= "quiet" + +INHIBIT_DEFAULT_DEPS = "1" + +# Note: for qvga the label is currently limited to about 24 chars +KEXECBOOT_LABEL ?= "${@d.getVar('DISTRO', True) or d.getVar('DISTRO_VERSION', True)}-${MACHINE}" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb new file mode 100644 index 000000000..45095f311 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb @@ -0,0 +1,75 @@ +########################### +# Configure options: +# +# --enable-static-linking compile kexecboot as static executable [default=no] +# --enable-fbui support framebuffer menu [default=yes] +# --enable-fbui-width limit FB UI width to specified value [default=no] +# --enable-fbui-height limit FB UI height to specified value [default=no] +# --enable-textui support console text user interface [default=no] +# --enable-cfgfiles support config files [default=yes] +# --enable-icons support custom icons (depends on fbui) [default=yes] +# --enable-zaurus compile Sharp Zaurus specific code [default=no] +# --enable-zimage compile with zImage support [default=yes] +# --enable-uimage compile with uImage support [default=no] +# --enable-machine-kernel look for machine-specific zImage kernel [default=no] +# --enable-devices-recreating +# enable devices re-creating [default=yes] +# --enable-debug enable debug output [default=no] +# --enable-host-debug allow for non-destructive executing of kexecboot on +# host system [default=no] +# --enable-numkeys enable menu item selection by keys [0-9] [default=yes] +# --enable-bg-buffer enable buffer for pre-drawed FB GUI background +# +# --enable-timeout allow to boot 1st kernel after timeout in seconds +# [default=no] +# --enable-delay specify delay before device scanning, allowing +# initialization of old CF/SD cards [default=1] +# --enable-bpp enable support of specified bpp modes +# (all,32,24,18,16,4,2,1) [default=all] +# --enable-evdev-rate change evdev (keyboard/mouse) repeat rate +# in milliseconds e.g. "1000,250" [default=no] +# --with-kexec-binary look for kexec binary at path +# [default="/usr/sbin/kexec"] +########################## +SUMMARY = "kexecboot linux-as-bootloader" +DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec." +HOMEPAGE = "http://kexecboot.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +S = "${WORKDIR}/kexecboot-${PV}" +SRC_URI = "https://github.com/kexecboot/kexecboot/archive/v${PV}.tar.gz" +SRC_URI[md5sum] = "46b7c1a6f20531be56445ebb8669a2b8" +SRC_URI[sha256sum] = "6b360b8aa59bc5d68a96705349a0dd416f8ed704e931fa0ac7849298258f0f15" + +SRC_URI += "\ + file://0001-kexecboot-fix-build-when-S-B.patch \ + file://0002-kexecboot-fix-configure-warnings.patch \ + file://0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch \ + file://0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch \ + \ + file://0005-rgb.h-fix-build-with-gcc5.patch \ + " + +inherit autotools + +EXTRA_OECONF = "--enable-textui --enable-delay=2 --enable-evdev-rate=1000,250" + +do_install () { + install -d ${D}${bindir} + install -m 0755 kexecboot ${D}${bindir} + install -d ${D}/proc + install -d ${D}/mnt + install -d ${D}/dev + install -d ${D}/sys +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} += " ${bindir}/kexecboot /init /proc /mnt /dev /sys" + +pkg_postinst_${PN} () { + ln -sf ${bindir}/kexecboot $D/init +} + +BBCLASSEXTEND = "klibc" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb new file mode 100644 index 000000000..c978263a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb @@ -0,0 +1,61 @@ +SUMMARY = "Initramfs generator using udev" +DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d." + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PE = "1" +PV = "044+git${SRCREV}" + +# v044 tag +SRCREV = "1bc3e733f96033a508841e97fe08da7a12851782" +SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http" + +inherit bash-completion + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--prefix=${prefix} \ + --libdir=${prefix}/lib \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sbindir=${sbindir} \ + --disable-documentation \ + --bindir=${bindir} \ + --includedir=${includedir} \ + --localstatedir=${localstatedir} \ + " + +# RDEPEND on systemd optionally +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd" + +EXTRA_OEMAKE += 'libdir=${prefix}/lib' + +do_configure() { + ./configure ${EXTRA_OECONF} +} + +do_install() { + oe_runmake install DESTDIR=${D} + # Its Makefile uses cp -arx to install modules.d, so fix the owner + # to root:root + chown -R root:root ${D}/${prefix}/lib/dracut/modules.d +} + +FILES_${PN} += "${prefix}/lib/kernel \ + ${prefix}/lib/dracut \ + ${systemd_unitdir} \ + " +FILES_${PN}-dbg += "${prefix}/lib/dracut/.debug" + +CONFFILES_${PN} += "${sysconfdir}/dracut.conf" + +RDEPENDS_${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd" + +# This could be optimized a bit, but let's avoid non-booting systems :) +RRECOMMENDS_${PN} = " \ + kernel-modules \ + busybox \ + coreutils \ + " diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb new file mode 100644 index 000000000..2f4afce06 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb @@ -0,0 +1,40 @@ +SUMMARY = "The klcc crosscompiler for klibc" + +require klibc.inc +DEPENDS = "klibc" + +FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:" + +SRC_URI += "file://use-env-for-perl.patch" + +# disable task already run in klibc recipe +do_configure[noexec] = "1" + +do_compile() { + oe_runmake 'INSTALLDIR=${STAGING_DIR_TARGET}${libdir}/klibc' klcc +} + +do_install() { + install -d ${D}${bindir_crossscripts}/ + install -m 0755 klcc/klcc ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc + # Insert an unencoded path as a comment to trigger the sstate renaming functions + sed -i '2i #${STAGING_DIR_TARGET}' ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc +} + +SYSROOT_PREPROCESS_FUNCS += "klcc_sysroot_preprocess" + +klcc_sysroot_preprocess () { + sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} +} + +deltask do_package +deltask do_packagedata +deltask do_package_write_ipk +deltask do_package_write_rpm +deltask do_package_write_deb +deltask do_package_write_tar + +SSTATE_SCAN_FILES = "*" +EXTRA_STAGING_FIXMES = "MANGLEDSTAGINGDIRTARGET MANGLEDSTAGINGDIR" +MANGLEDSTAGINGDIR = "${@d.getVar("STAGING_DIR", True).replace("/", "\\\\/").replace("-", "\\\\-")}" +MANGLEDSTAGINGDIRTARGET = "${@d.getVar("STAGING_DIR_TARGET", True).replace("/", "\\\\/").replace("-", "\\\\-")}" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch new file mode 100644 index 000000000..6bb384bb0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch @@ -0,0 +1,15 @@ +Status: not applicable upstream, in OE/Yocto we use $(FIX_V4BX) +which is "" in case of armv5 or thumbs. + +Signed-off-by: Andrea Adami + +--- a/usr/klibc/arch/arm/MCONFIG 2013-01-09 01:12:02.000000000 +0100 ++++ b/usr/klibc/arch/arm/MCONFIG 2013-01-08 23:45:59.000000000 +0100 +@@ -29,6 +29,7 @@ + KLIBCSHAREDFLAGS = -Ttext 0x01800200 + ifeq ($(CONFIG_AEABI),y) + KLIBCREQFLAGS += -mabi=aapcs-linux -mno-thumb-interwork ++KLIBCLDFLAGS += $(FIX_ARMV4_EABI_BX) + else + KLIBCREQFLAGS += -mabi=apcs-gnu -mno-thumb-interwork + endif diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch new file mode 100644 index 000000000..9bc4835dc --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch @@ -0,0 +1,14 @@ +diff --git a/klcc/klcc.in b/klcc/klcc.in +index 43d0984..61e9385 100644 +--- a/klcc/klcc.in ++++ b/klcc/klcc.in +@@ -204,6 +204,9 @@ while ( defined($a = shift(@ARGV)) ) { + # Libraries + push(@libs, $a); + push(@libs, shift(@ARGV)) if ( $2 eq '' ); ++ } elsif ( $a =~ /^--([sysroot=])(.*)$/ ) { ++ # Override gcc encoded sysroot ++ push(@ccopt, $a); + } else { + die "$0: unknown option: $a\n"; + } diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch new file mode 100644 index 000000000..316c80a92 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch @@ -0,0 +1,14 @@ +Patch was imported from the OpenEmbedded git server +(git://git.openembedded.org/openembedded) +as of commit id b6764cf32ec93547531130dca364fb95e1c495f4 +Signed-off-by: Thomas Kunze + +diff -Nur klibc-1.5/defconfig klibc-1.5p/defconfig +--- klibc-1.5/defconfig 2007-03-04 02:52:10.000000000 +0100 ++++ klibc-1.5p/defconfig 2008-02-08 19:24:22.337127756 +0100 +@@ -5,4 +5,4 @@ + CONFIG_REGPARM=y + # ARM options + # CONFIG_KLIBC_THUMB is not set +-# CONFIG_AEABI is not set ++CONFIG_AEABI=y diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch new file mode 100644 index 000000000..204306475 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch @@ -0,0 +1,22 @@ +commit 43adf69062254fb4f8d4d11fb5fe36a60ae25d5a +Author: Ben Hutchings +Date: Sun Mar 14 18:41:56 2010 +0000 + + Taken from debian "Fix klibc Debian specific build trouble" + Adapted for klibc_2.0.2 + +Index: klibc-2.0~rc2/scripts/Kbuild.install +=================================================================== +--- klibc-2.0~rc2.orig/scripts/Kbuild.install 2012-02-11 18:50:21.000000000 +0000 ++++ klibc-2.0~rc2/scripts/Kbuild.install 2012-02-11 19:04:52.000000000 +0000 +@@ -95,7 +95,9 @@ + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin +- $(Q)$(MAKE) -C $(KLIBCKERNELSRC) ARCH=$(KLIBCARCH) INSTALL_HDR_PATH=$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS) headers_install ++ $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \ ++ ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ ++ done + $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(Q)chmod -R a+rX $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch new file mode 100644 index 000000000..c01c712a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch @@ -0,0 +1,144 @@ +Patch was imported from the OpenEmbedded git server +(git://git.openembedded.org/openembedded) +as of commit id eefb99a313bbcc8f34c8b32bf0c5aa2dd2580735 +Signed-off-by: Thomas Kunze + +Minor edits following upstream changes +Signed-off-by: Andrea Adami + +Index: klibc-1.5.24/scripts/Kbuild.install +=================================================================== +--- a/scripts/Kbuild.install 2011-07-27 15:50:53.000000000 +0200 ++++ b/scripts/Kbuild.install 2011-08-01 00:03:03.000000000 +0200 +@@ -88,13 +88,10 @@ + header: + $(Q)echo " INSTALL headers + man pages to $(INSTALLROOT)$(INSTALLDIR)" + $(Q)mkdir -p $(INSTALLROOT)$(bindir) +- $(Q)mkdir -p $(INSTALLROOT)$(mandir)/man1 +- $(Q)mkdir -p $(INSTALLROOT)$(SHLIBDIR) + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR) + $(Q)-rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib +- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin + $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \ + ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ + done +@@ -103,7 +100,6 @@ + done + $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(Q)chmod -R a+rX,go-w $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include +- $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 + $(Q)$(install-bin) $(objtree)/klcc/$(KCROSS)klcc $(INSTALLROOT)$(bindir) + + footer: header + +Index: klibc-1.5.24/usr/dash/Kbuild +=================================================================== +--- a/usr/dash/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/dash/Kbuild 2011-08-01 00:07:56.000000000 +0200 +@@ -92,5 +92,3 @@ + $(obj)/syntax.h: $(obj)/syntax.c + $(Q): + +-# Targets to install +-install-y := sh.shared + +Index: klibc-1.5.24/usr/gzip/Kbuild +=================================================================== +--- a/usr/gzip/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/gzip/Kbuild 2011-08-01 00:06:39.000000000 +0200 +@@ -21,5 +21,3 @@ + # Cleaning + targets := gzip gzip.g gunzip zcat + +-# Targets to install +-install-y := gzip gunzip zcat + +Index: klibc-1.5.24/usr/kinit/fstype/Kbuild +=================================================================== +--- a/usr/kinit/fstype/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/fstype/Kbuild 2011-08-01 00:09:12.000000000 +0200 +@@ -21,5 +21,3 @@ + # Cleaning + clean-dirs := static shared + +-# install binary +-install-y := $(shared-y) + +Index: klibc-1.5.24/usr/kinit/ipconfig/Kbuild +=================================================================== +--- a/usr/kinit/ipconfig/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/ipconfig/Kbuild 2011-08-01 00:10:52.000000000 +0200 +@@ -27,5 +27,3 @@ + # Cleaning + clean-dirs := static shared + +-# install binary +-install-y := $(shared-y) + +Index: klibc-1.5.24/usr/kinit/Kbuild +=================================================================== +--- a/usr/kinit/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/Kbuild 2011-08-01 00:20:18.000000000 +0200 +@@ -33,5 +33,3 @@ + subdir- := fstype ipconfig nfsmount resume run-init + + +-# install binary +-install-y := kinit kinit.shared + +Index: klibc-1.5.24/usr/kinit/nfsmount/Kbuild +=================================================================== +--- a/usr/kinit/nfsmount/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/nfsmount/Kbuild 2011-08-01 00:12:52.000000000 +0200 +@@ -23,5 +23,3 @@ + + clean-dirs := static shared + +-# Install binary +-install-y := $(shared-y) + +Index: klibc-1.5.24/usr/kinit/resume/Kbuild +=================================================================== +--- a/usr/kinit/resume/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/resume/Kbuild 2011-08-01 00:13:51.000000000 +0200 +@@ -26,5 +26,3 @@ + # Cleaning + clean-dirs := static shared + +-# install binary +-install-y := $(shared-y) + +Index: klibc-1.5.24/usr/kinit/run-init/Kbuild +=================================================================== +--- a/usr/kinit/run-init/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/kinit/run-init/Kbuild 2011-08-01 00:14:41.000000000 +0200 +@@ -25,5 +25,3 @@ + # Cleaning + clean-dirs := static shared + +-# install binary +-install-y := $(shared-y) + +Index: klibc-1.5.24/usr/klibc/Kbuild +=================================================================== +--- a/usr/klibc/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/klibc/Kbuild 2011-08-01 00:18:11.000000000 +0200 +@@ -177,5 +177,3 @@ + $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)lib)) + $(Q)$(install-lib) $(obj)/klibc-$(SOLIBHASH).so \ + $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)lib +- $(Q)$(install-lib) $(obj)/klibc-$(SOLIBHASH).so \ +- $(INSTALLROOT)$(SHLIBDIR) + +Index: klibc-1.5.24/usr/utils/Kbuild +=================================================================== +--- a/usr/utils/Kbuild 2011-07-27 15:50:53.000000000 +0200 ++++ b/usr/utils/Kbuild 2011-08-01 00:19:13.000000000 +0200 +@@ -72,5 +72,3 @@ + # Clean deletes the static and shared dir + clean-dirs := static shared + +-# install only install the shared binaries +-install-y := $(shared-y) shared/reboot shared/poweroff diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch new file mode 100644 index 000000000..eac128cc0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch @@ -0,0 +1,25 @@ +Patch was imported from the OpenEmbedded git server +(git://git.openembedded.org/openembedded) +as of commit id 676cbb54d42c89a4832871064cfcb7ee2ad372ee + +klcc-cross: Add patch to use /usr/bin/env perl +Certain configurations (such as autobuilders) may build in very +deep paths (that are longer than the #! mechanism allows) which +makes it unsafe to use the direct path for perl. In our case we know +that /usr/bin/env perl will always return ours (if it has been built). + +Signed-off-by: Tom Rini + +Index: klibc-1.5.20/klcc/makeklcc.pl +=================================================================== +--- a/klcc/makeklcc.pl ++++ b/klcc/makeklcc.pl +@@ -26,7 +26,7 @@ sub pathsearch($) { + return undef; + } + +-print "#!${perlpath}\n"; ++print "#!/usr/bin/env perl\n"; + + open(KLIBCCONF, "< $klibcconf\0") + or die "$0: cannot open $klibcconf: $!\n"; diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb new file mode 100644 index 000000000..c835fd647 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb @@ -0,0 +1,12 @@ +SUMMARY = "klibc utils for initramfs statically compiled" + +FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:" + +PACKAGES = "${PN}" +FILES_${PN} = "" + +KLIBC_UTILS_VARIANT = "static" +KLIBC_UTILS_PKGNAME = "klibc-static-utils" + +require klibc-utils.inc +require klibc.inc diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc new file mode 100644 index 000000000..9014f5267 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc @@ -0,0 +1,60 @@ +do_install() { + install -d ${D}${base_bindir} + install -d ${D}${base_sbindir} + # debian packages kinit + kinit.shared but only sh.shared + if [ "${KLIBC_UTILS_VARIANT}" = "shared" ]; then + install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit + install -m 755 usr/kinit/kinit.shared ${D}${base_bindir}/kinit.shared + install -m 755 usr/dash/sh.shared ${D}${base_bindir}/sh.shared + else + install -m 755 usr/dash/sh ${D}${base_bindir}/sh + install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit + fi + install -m 755 usr/gzip/gzip ${D}${base_bindir} + install -m 755 usr/kinit/fstype/${KLIBC_UTILS_VARIANT}/fstype ${D}${base_bindir} + install -m 755 usr/kinit/ipconfig/${KLIBC_UTILS_VARIANT}/ipconfig ${D}${base_bindir} + install -m 755 usr/kinit/nfsmount/${KLIBC_UTILS_VARIANT}/nfsmount ${D}${base_bindir} + install -m 755 usr/kinit/resume/${KLIBC_UTILS_VARIANT}/resume ${D}${base_bindir} + install -m 755 usr/kinit/run-init/${KLIBC_UTILS_VARIANT}/run-init ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/cat ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/chroot ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/cpio ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/dd ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/dmesg ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/false ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/halt ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/kill ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/ln ${D}${base_bindir} + # losetup goes in ${base_sbindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/losetup ${D}${base_sbindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/ls ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/minips ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/mkdir ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/mkfifo ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/mknod ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/mount ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/mv ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/nuke ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/pivot_root ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/poweroff ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/readlink ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/reboot ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/sleep ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/sync ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/true ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/umount ${D}${base_bindir} + install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/uname ${D}${base_bindir} + ln -s gzip ${D}${base_bindir}/gunzip + ln -s gzip ${D}${base_bindir}/zcat +} + +EXTRA_KLIBC_DEPS = "${@base_conditional('KLIBC_UTILS_VARIANT', 'shared', '${THIS_LIBKLIBC}', '', d)}" + +PACKAGES_DYNAMIC += "^${KLIBC_UTILS_PKGNAME}-.*" + +python populate_packages_prepend () { + base_bin_dir = d.expand('${base_bindir}') + do_split_packages(d, base_bin_dir, '(.*)', '${KLIBC_UTILS_PKGNAME}-%s', 'Klibc util for %s', extra_depends='${EXTRA_KLIBC_DEPS}', allow_links=True, allow_dirs=True) + base_sbin_dir = d.expand('${base_sbindir}') + do_split_packages(d, base_sbin_dir, '(.*)', '${KLIBC_UTILS_PKGNAME}-%s', 'Klibc util for %s', extra_depends='${EXTRA_KLIBC_DEPS}', allow_dirs=True) +} diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb new file mode 100644 index 000000000..06e71cb7b --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "klibc utils for initramfs" + +FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:" + +PACKAGES = "${PN}" +FILES_${PN} = "" + +KLIBC_UTILS_VARIANT = "shared" +KLIBC_UTILS_PKGNAME = "klibc-utils" + +require klibc-utils.inc +require klibc.inc + +DEPENDS = "klibc" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc new file mode 100644 index 000000000..65ee8681e --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc.inc @@ -0,0 +1,51 @@ +DESCRIPTION = "klibc is intended to be a minimalistic libc subset for \ +use with initramfs. It is deliberately written for small size, \ +minimal entaglement, and portability, not speed." +SECTION = "libs" +LICENSE = "BSD-3-Clause & GPL-2.0 & MIT & Zlib" +LIC_FILES_CHKSUM = "file://usr/klibc/LICENSE;md5=d75181f10e998c21eb147f6d2e43ce8b" +DEPENDS = "linux-libc-headers perl-native" +SRCREV = "4d19974d7020488f63651244e1f9f51727c3f66c" + +SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git" +SRC_URI_append_linux-gnueabi = " file://klibc-config-eabi.patch \ + file://armv4-fix-v4bx.patch \ + " +SRC_URI_append_linux-uclibceabi = " file://klibc-config-eabi.patch \ + file://armv4-fix-v4bx.patch \ + " +SRC_URI += "file://klibc-linux-libc-dev.patch \ + file://staging.patch \ + file://klcc-consider-sysroot.patch \ + " + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \ + 'CROSS_COMPILE=${TARGET_PREFIX}' \ + 'KLIBCKERNELSRC=${STAGING_DIR_TARGET}${exec_prefix}' \ + 'KLIBCLIBGCC=${STAGING_DIR_TARGET}${libdir}/${TARGET_SYS}/*/libgcc.a' \ + 'prefix=${exec_prefix}' \ + 'INSTALLROOT=${D}' \ + 'SHLIBDIR=${libdir}' \ + " + +export FIX_ARMV4_EABI_BX = "${FIX_V4BX}" + +do_configure () { + ln -sf "${STAGING_DIR_TARGET}${exec_prefix}" linux +} + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INSANE_SKIP_${PN} = "already-stripped" +INSANE_SKIP_libklibc-dev = "dev-elf" +KLIBC_ARCH = "${TARGET_ARCH}" +KLIBC_ARCH_aarch64 = "arm64" +KLIBC_ARCH_armeb = "arm" +KLIBC_ARCH_mipsel = "mips" +KLIBC_ARCH_x86 = "i386" +KLIBC_ARCH_x86-64 = "x86_64" +KLIBC_ARCH_powerpc = "ppc" +KLIBC_ARCH_powerpc64 = "ppc64" +THIS_LIBKLIBC = "libklibc (= ${PV}-${PR})" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb new file mode 100644 index 000000000..bc80f382f --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb @@ -0,0 +1,24 @@ +SUMMARY = "klibc, a small C library for use with initramfs" + +do_install() { + oe_runmake install + # the crosscompiler is packaged by klcc-cross + # remove klcc + rm ${D}${bindir}/klcc + # remove now empty dir + rmdir ${D}${bindir} + install -d ${D}${libdir} + install -m 755 usr/klibc/klibc-*.so ${D}${libdir} + (cd ${D}${libdir}; ln -s klibc-*.so klibc.so) +} + +PACKAGES = "libklibc libklibc-staticdev libklibc-dev" + +FILES_libklibc = "${libdir}/klibc-*.so" +FILES_libklibc-staticdev = "${libdir}/klibc/lib/libc.a" +FILES_libklibc-dev = "${libdir}/klibc.so \ + ${libdir}/klibc/lib/* \ + ${libdir}/klibc/include/* \ + " + +require klibc.inc diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch new file mode 100644 index 000000000..9d5e4ebf0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch @@ -0,0 +1,87 @@ +From c4e6bd9378645d577e9d9f85da85f1438afe7c50 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 29 Jun 2014 00:32:29 +0200 +Subject: [PATCH 1/6] Makefile: build ubi-utils only + +We build all the static ubi-utils but actually only ubiattach is needed in +a minimalistic initramfs for the mount of ubi volumes. + +More fixes are needed in order to build the full mtd-utils. +The first issue is: + +| mkfs.jffs2.c:64:20: fatal error: libgen.h: No such file or directory +| #include + +Removing the include then the second error is: + +| mkfs.jffs2.c:1570:22: error: '_SC_PAGESIZE' undeclared +| (first use in this function) +| page_size = sysconf(_SC_PAGESIZE); + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andrea Adami +--- + Makefile | 24 ++---------------------- + 1 file changed, 2 insertions(+), 22 deletions(-) + +diff --git a/Makefile b/Makefile +index eade234..2275865 100644 +--- a/Makefile ++++ b/Makefile +@@ -16,28 +16,13 @@ endif + + TESTS = tests + +-MTD_BINS = \ +- ftl_format flash_erase nanddump doc_loadbios \ +- ftl_check mkfs.jffs2 flash_lock flash_unlock \ +- flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ +- mtd_debug flashcp nandwrite nandtest \ +- jffs2dump \ +- nftldump nftl_format docfdisk \ +- rfddump rfdformat \ +- serve_image recv_image \ +- sumtool jffs2reader + UBI_BINS = \ + ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \ + ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol ubiblock + +-BINS = $(MTD_BINS) +-BINS += mkfs.ubifs/mkfs.ubifs +-BINS += $(addprefix ubi-utils/,$(UBI_BINS)) +-SCRIPTS = flash_eraseall ++BINS = $(addprefix ubi-utils/,$(UBI_BINS)) + + TARGETS = $(BINS) +-TARGETS += lib/libmtd.a +-TARGETS += ubi-utils/libubi.a + + OBJDEPS = $(BUILDDIR)/include/version.h + +@@ -61,12 +46,9 @@ endif + rm -f $(BUILDDIR)/include/version.h + $(MAKE) -C $(TESTS) clean + +-install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} ++install:: $(addprefix $(BUILDDIR)/,${BINS}) + mkdir -p ${DESTDIR}/${SBINDIR} + install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ +- mkdir -p ${DESTDIR}/${MANDIR}/man1 +- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ +- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 + + tests:: + $(MAKE) -C $(TESTS) +@@ -91,8 +73,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) + LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) + LDLIBS_jffs2reader = -lz $(LZOLDLIBS) + +-$(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v)))) +- + # + # Common libmtd + # +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0002-common.mk-for-klibc-CC-is-klcc.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0002-common.mk-for-klibc-CC-is-klcc.patch new file mode 100644 index 000000000..f46824b5c --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0002-common.mk-for-klibc-CC-is-klcc.patch @@ -0,0 +1,27 @@ +From f3609c7c0450b4c31e1d4603fcf2cfb1ba46f994 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 29 Jun 2014 00:37:28 +0200 +Subject: [PATCH 2/6] common.mk: for klibc $(CC) is klcc + +Do not hardcode: assign the value to the variable if it is not already defined. + +Upstream-Status: Pending + +Signed-off-by: Andrea Adami +--- + common.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common.mk b/common.mk +index ba87377..59c56df 100644 +--- a/common.mk ++++ b/common.mk +@@ -1,4 +1,4 @@ +-CC := $(CROSS)gcc ++CC ?= $(CROSS)gcc + AR := $(CROSS)ar + RANLIB := $(CROSS)ranlib + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch new file mode 100644 index 000000000..962b3685f --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0003-libubi.c-add-klibc-specific-fixes.patch @@ -0,0 +1,76 @@ +From 72a39bb3290a79e76b0dbf59eef83ea2d9b577a1 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 29 Jun 2014 00:40:15 +0200 +Subject: [PATCH 3/6] libubi.c: add klibc specific fixes for ioctl + +First issue is that ioctl() in klibc doesn't expect a constant as arg3. +Second issue is that arg3 in klibc ioctl() implementation is not optional. + +Fixes: + +| ubi-utils/libubi.c: In function 'do_attach': +| ubi-utils/libubi.c:698:8: warning: passing argument 3 of 'ioctl' discards +| 'const' qualifier from pointer target type +| ret = ioctl(fd, UBI_IOCATT, r); +| ^ +| In file included from ubi-utils/libubi.c:32:0: +| .../lib/klibc/include/sys/ioctl.h:15:14: note: expected 'void *' but argument +| is of type 'const struct ubi_attach_req *' +| __extern int ioctl(int, int, void *); +| ^ + +| ubi-utils/libubi.c: In function 'ubi_vol_block_create': +| ubi-utils/libubi.c:1118:9: error: too few arguments to function 'ioctl' +| return ioctl(fd, UBI_IOCVOLCRBLK); +| ^ +| In file included from ubi-utils/libubi.c:32:0: +| .../lib/klibc/include/sys/ioctl.h:15:14: note: declared here +| __extern int ioctl(int, int, void *); +| ^ +| ubi-utils/libubi.c: In function 'ubi_vol_block_remove': +| ubi-utils/libubi.c:1123:9: error: too few arguments to function 'ioctl' +| return ioctl(fd, UBI_IOCVOLRMBLK); +| ^ +| In file included from ubi-utils/libubi.c:32:0: +| .../usr/lib/klibc/include/sys/ioctl.h:15:14: note: declared here +| __extern int ioctl(int, int, void *); +| ^ + +Upstream-Status: Inappropriate [klibc specific] + +Signed-off-by: Andrea Adami +--- + ubi-utils/libubi.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ubi-utils/libubi.c b/ubi-utils/libubi.c +index 1e08b7d..491e525 100644 +--- a/ubi-utils/libubi.c ++++ b/ubi-utils/libubi.c +@@ -687,7 +687,7 @@ void libubi_close(libubi_t desc) + * success and %-1 in case of failure. @r->ubi_num contains newly created UBI + * device number. + */ +-static int do_attach(const char *node, const struct ubi_attach_req *r) ++static int do_attach(const char *node, struct ubi_attach_req *r) + { + int fd, ret; + +@@ -1115,12 +1115,12 @@ int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes) + + int ubi_vol_block_create(int fd) + { +- return ioctl(fd, UBI_IOCVOLCRBLK); ++ return ioctl(fd, UBI_IOCVOLCRBLK, NULL); + } + + int ubi_vol_block_remove(int fd) + { +- return ioctl(fd, UBI_IOCVOLRMBLK); ++ return ioctl(fd, UBI_IOCVOLRMBLK, NULL); + } + + int ubi_update_start(libubi_t desc, int fd, long long bytes) +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch new file mode 100644 index 000000000..fee1cbcf9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0004-common.h-klibc-fixes-1.patch @@ -0,0 +1,84 @@ +From e56767b9caa02e7c41803499c77dc939d5a7f64a Mon Sep 17 00:00:00 2001 +From: Thorsten Glaser +Date: Fri, 20 Jun 2014 10:56:27 +0000 +Subject: [PATCH 4/6] Restore compatibility to dietlibc, klibc, musl libc after commit 4f1b108 + +Each C library has their own way to define off_t, and the +header is nonstandard and specific to the GNU libc and those that clone +it (uClibc). Fefe’s dietlibc uses different flags, and klibc always uses +a 64-bit off_t (like the BSDs); musl libc cannot be recognised using cpp +instructions, so we assume 64 bit there (and on unknown C libraries) and +leave it to the user to submit a follow-up fix if we guess wrong. I also +added a static assertion to verify the 64 bit guess is correct. + +It would be really better using a configure script for this instead. + +Fixes: +| CC lib/libmtd.o +| In file included from ubi-utils/ubiutils-common.c:35:0: +| ./include/common.h:29:22: fatal error: features.h: No such file or directory +| #include +| ^ +| compilation terminated. + +Upstream-Status: Pending + +Signed-off-by: Thorsten Glaser +Signed-off-by: Andrea Adami +--- + include/common.h | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/include/common.h b/include/common.h +index 6895e5c..77f3f7d 100644 +--- a/include/common.h ++++ b/include/common.h +@@ -26,7 +26,9 @@ + #include + #include + #include ++#if defined(__GLIBC__) || defined(__UCLIBC__) + #include ++#endif + #include + #include "version.h" + +@@ -52,6 +54,21 @@ extern "C" { + #endif + + /* define a print format specifier for off_t */ ++#if defined(__KLIBC__) ++/* always 64 bit on klibc */ ++#define PRIxoff_t PRIx64 ++#define PRIdoff_t PRId64 ++#elif defined(__dietlibc__) ++/* depends on compiler flags on dietlibc */ ++#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) ++#define PRIxoff_t PRIx64 ++#define PRIdoff_t PRId64 ++#else ++#define PRIxoff_t "l"PRIx32 ++#define PRIdoff_t "l"PRId32 ++#endif ++#elif defined(__GLIBC__) || defined(__UCLIBC__) ++/* depends on compiler flags on glibc and uClibc */ + #ifdef __USE_FILE_OFFSET64 + #define PRIxoff_t PRIx64 + #define PRIdoff_t PRId64 +@@ -59,6 +76,13 @@ extern "C" { + #define PRIxoff_t "l"PRIx32 + #define PRIdoff_t "l"PRId32 + #endif ++#else ++/* unknown libc or musl */ ++#define PRIxoff_t PRIx64 ++#define PRIdoff_t PRId64 ++/* verify our guess of 64 bit is correct */ ++static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; ++#endif + + /* Verbose messages */ + #define bareverbose(verbose, fmt, ...) do { \ +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch new file mode 100644 index 000000000..2e43d5d97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch @@ -0,0 +1,61 @@ +From 8318852ef4f768bed31072aa7b57e11adc1f639c Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 29 Jun 2014 00:44:03 +0200 +Subject: [PATCH 5/6] common.h: more workarounds for klibc compatibility + +Patch is addressing two issues: +* First, Klibc doesn't have rpmatch(). +* Second, Klibc lacks getline() + +Fixes: +| LD ubi-utils/ubiformat +| .../git/ubi-utils/ubiformat.o: In function `prompt': +| .../git/./include/common.h:157: undefined reference to `getline' +| .../git/./include/common.h:164: undefined reference to `rpmatch' +| .../git/./include/common.h:157: undefined reference to `getline' +| .../git/./include/common.h:164: undefined reference to `rpmatch' + +Upstream-Status: Pending + +Signed-off-by: Andrea Adami +--- + include/common.h | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/include/common.h b/include/common.h +index 77f3f7d..2cbee0f 100644 +--- a/include/common.h ++++ b/include/common.h +@@ -126,7 +126,7 @@ static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; + fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \ + } while(0) + +-#if defined(__UCLIBC__) ++#if defined(__UCLIBC__) || defined(__KLIBC__) + /* uClibc versions before 0.9.34 don't have rpmatch() */ + #if __UCLIBC_MAJOR__ == 0 && \ + (__UCLIBC_MINOR__ < 9 || \ +@@ -146,15 +146,17 @@ static inline int __rpmatch(const char *resp) + */ + static inline bool prompt(const char *msg, bool def) + { +- char *line = NULL; +- size_t len; ++ char *line; + bool ret = def; + ++ const int sizeof_line = 2; ++ line = malloc(sizeof_line); ++ + do { + normsg_cont("%s (%c/%c) ", msg, def ? 'Y' : 'y', def ? 'n' : 'N'); + fflush(stdout); + +- while (getline(&line, &len, stdin) == -1) { ++ while (fgets(line, sizeof_line, stdin) == NULL) { + printf("failed to read prompt; assuming '%s'\n", + def ? "yes" : "no"); + break; +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0006-libiniparser-remove-unused-function-needing-float.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0006-libiniparser-remove-unused-function-needing-float.patch new file mode 100644 index 000000000..043a89d67 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0006-libiniparser-remove-unused-function-needing-float.patch @@ -0,0 +1,85 @@ +From 72a04a9b9ed33c889d2e2b86f306c5be9f6cde35 Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 29 Jun 2014 00:44:57 +0200 +Subject: [PATCH 6/6] libiniparser: remove unused function needing float + +Fixes: +| LD ubi-utils/ubiformat +| .../git/ubi-utils/libiniparser.a(libiniparser.o): In function +| ` LD ubi-utils/ubirename +| iniparser_getdouble': +| .../git/ubi-utils/libiniparser.c:336: undefined reference to `atof' + +Grep doesn't reveal any occurrence of iniparser_getdouble(), using atof() so +remove it: floating-point is not supported in klibc + +Upstream-Status: Pending + +Signed-off-by: Andrea Adami +--- + ubi-utils/include/libiniparser.h | 15 --------------- + ubi-utils/libiniparser.c | 22 ---------------------- + 2 files changed, 37 deletions(-) + +diff --git a/ubi-utils/include/libiniparser.h b/ubi-utils/include/libiniparser.h +index be3c667..abd77aa 100644 +--- a/ubi-utils/include/libiniparser.h ++++ b/ubi-utils/include/libiniparser.h +@@ -158,21 +158,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound); + + /*-------------------------------------------------------------------------*/ + /** +- @brief Get the string associated to a key, convert to a double +- @param d Dictionary to search +- @param key Key string to look for +- @param notfound Value to return in case of error +- @return double +- +- This function queries a dictionary for a key. A key as read from an +- ini file is given as "section:key". If the key cannot be found, +- the notfound value is returned. +- */ +-/*--------------------------------------------------------------------------*/ +-double iniparser_getdouble(dictionary * d, char * key, double notfound); +- +-/*-------------------------------------------------------------------------*/ +-/** + @brief Get the string associated to a key, convert to a boolean + @param d Dictionary to search + @param key Key string to look for +diff --git a/ubi-utils/libiniparser.c b/ubi-utils/libiniparser.c +index 898f57f..ba70c08 100644 +--- a/ubi-utils/libiniparser.c ++++ b/ubi-utils/libiniparser.c +@@ -316,28 +316,6 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) + + /*-------------------------------------------------------------------------*/ + /** +- @brief Get the string associated to a key, convert to a double +- @param d Dictionary to search +- @param key Key string to look for +- @param notfound Value to return in case of error +- @return double +- +- This function queries a dictionary for a key. A key as read from an +- ini file is given as "section:key". If the key cannot be found, +- the notfound value is returned. +- */ +-/*--------------------------------------------------------------------------*/ +-double iniparser_getdouble(dictionary * d, char * key, double notfound) +-{ +- char * str ; +- +- str = iniparser_getstring(d, key, INI_INVALID_KEY); +- if (str==INI_INVALID_KEY) return notfound ; +- return atof(str); +-} +- +-/*-------------------------------------------------------------------------*/ +-/** + @brief Get the string associated to a key, convert to a boolean + @param d Dictionary to search + @param key Key string to look for +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb new file mode 100644 index 000000000..8ca1ca727 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb @@ -0,0 +1,50 @@ +SUMMARY = "UBI utils statically compiled against klibc" +DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs." +SECTION = "base" +DEPENDS = "zlib lzo e2fsprogs util-linux" +HOMEPAGE = "http://www.linux-mtd.infradead.org/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" + +inherit klibc + +SRC_URI = "git://git.infradead.org/mtd-utils.git;tag=b7455d847ab4f9eeeb6a729efc306bfda7bddc99 \ + file://0001-Makefile-only-build-ubi-utils.patch \ + file://0002-common.mk-for-klibc-CC-is-klcc.patch \ + file://0003-libubi.c-add-klibc-specific-fixes.patch \ + file://0004-common.h-klibc-fixes-1.patch \ + file://0005-common.h-klibc-fixes-2.patch \ + file://0006-libiniparser-remove-unused-function-needing-float.patch \ + " + +S = "${WORKDIR}/git/" + +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" + +do_install () { + + install -d ${D}${sbindir} + oe_runmake DESTDIR="${D}" install + +} + +PACKAGES = "ubi-utils-klibc-dbg" + +PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ + ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ + ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc" + +FILES_mtdinfo-klibc = "${sbindir}/mtdinfo" +FILES_ubiattach-klibc = "${sbindir}/ubiattach" +FILES_ubiblock-klibc = "${sbindir}/ubiblock" +FILES_ubicrc32-klibc = "${sbindir}/ubicrc32" +FILES_ubidetach-klibc = "${sbindir}/ubidetach" +FILES_ubiformat-klibc = "${sbindir}/ubiformat" +FILES_ubimkvol-klibc = "${sbindir}/ubimkvol" +FILES_ubinfo-klibc = "${sbindir}/ubinfo" +FILES_ubinize-klibc = "${sbindir}/ubinize" +FILES_ubirename-klibc = "${sbindir}/ubirename" +FILES_ubirmvol-klibc = "${sbindir}/ubirmvol" +FILES_ubirsvol-klibc = "${sbindir}/ubirsvol" +FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch new file mode 100644 index 000000000..0ff61e543 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/arm_crashdump.patch @@ -0,0 +1,12 @@ +--- a/kexec/arch/arm/crashdump-arm.c ++++ b/kexec/arch/arm/crashdump-arm.c +@@ -20,7 +20,7 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +-#include ++#include "../../../include/elf.h" + #include + #include + #include + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch new file mode 100644 index 000000000..35100a3b4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/cflags_static.patch @@ -0,0 +1,11 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -46,7 +46,7 @@ + # where necessary. + CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \ + -Iinclude/ +-CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes ++CFLAGS = @CFLAGS@ -static -fno-strict-aliasing -Wall -Wstrict-prototypes + PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@ + ASFLAGS = @ASFLAGS@ + LDFLAGS = @LDFLAGS@ diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch new file mode 100644 index 000000000..ccbb24d0d --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/fix-out-of-tree-build.patch @@ -0,0 +1,54 @@ +From 37737527725e465833be649101c4a6f8352c5d5e Mon Sep 17 00:00:00 2001 +From: Tyler Hall +Date: Tue, 7 Feb 2012 18:50:05 -0500 +Subject: Fix out-of-tree build + +Use automatic variables for prerequisites when copying man pages and +include a makefile relative to $(srcdir). + +Backported to 2.0.2-klibc + +Signed-off-by: Tyler Hall +Signed-off-by: Simon Horman + +diff --git a/kdump/Makefile b/kdump/Makefile +index 1e2b72c..5dfa928 100644 +--- a/kdump/Makefile ++++ b/kdump/Makefile +@@ -22,7 +22,7 @@ $(KDUMP): $(KDUMP_OBJS) + + $(KDUMP_MANPAGE): kdump/kdump.8 + $(MKDIR) -p $(MANDIR)/man8 +- cp kdump/kdump.8 $(KDUMP_MANPAGE) ++ cp $^ $(KDUMP_MANPAGE) + echo:: + @echo "KDUMP_SRCS $(KDUMP_SRCS)" + @echo "KDUMP_DEPS $(KDUMP_DEPS)" +diff --git a/kexec/Makefile b/kexec/Makefile +index 2137cab..8c815b5 100644 +--- a/kexec/Makefile ++++ b/kexec/Makefile +@@ -82,7 +82,7 @@ $(KEXEC): CPPFLAGS+=-I$(srcdir)/kexec/arch/$(ARCH)/include + + $(KEXEC_MANPAGE): kexec/kexec.8 + @$(MKDIR) -p $(MANDIR)/man8 +- cp kexec/kexec.8 $(KEXEC_MANPAGE) ++ cp $^ $(KEXEC_MANPAGE) + echo:: + @echo "KEXEC_SRCS $(KEXEC_SRCS)" + @echo "KEXEC_DEPS $(KEXEC_DEPS)" +diff --git a/kexec/arch/ppc/Makefile b/kexec/arch/ppc/Makefile +index 3dba7cf..41242a5 100644 +--- a/kexec/arch/ppc/Makefile ++++ b/kexec/arch/ppc/Makefile +@@ -1,7 +1,7 @@ + # + # kexec ppc (linux booting linux) + # +-include kexec/arch/ppc/libfdt/Makefile.libfdt ++include $(srcdir)/kexec/arch/ppc/libfdt/Makefile.libfdt + + ppc_KEXEC_SRCS = kexec/arch/ppc/kexec-ppc.c + ppc_KEXEC_SRCS += kexec/arch/ppc/kexec-elf-ppc.c + + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch new file mode 100644 index 000000000..7f8cddd35 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ifdown_errno.patch @@ -0,0 +1,11 @@ +--- a/kexec/ifdown.c ++++ b/kexec/ifdown.c +@@ -14,7 +14,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch new file mode 100644 index 000000000..c666afcac --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-elf-rel.patch @@ -0,0 +1,61 @@ +--- a/kexec/kexec-elf-rel.c ++++ b/kexec/kexec-elf-rel.c +@@ -4,7 +4,7 @@ + #include + #include + #include +-#include "elf.h" ++#include "../include/elf.h" + #include + #include "kexec.h" + #include "kexec-elf.h" + +--- a/kexec/arch/arm/kexec-elf-rel-arm.c ++++ b/kexec/arch/arm/kexec-elf-rel-arm.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include "../../kexec.h" + #include "../../kexec-elf.h" + + +--- a/kexec/arch/i386/kexec-elf-rel-x86.c ++++ b/kexec/arch/i386/kexec-elf-rel-x86.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include "../../kexec.h" + #include "../../kexec-elf.h" + + +--- a/kexec/arch/ppc/kexec-elf-rel-ppc.c ++++ b/kexec/arch/ppc/kexec-elf-rel-ppc.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include "../../kexec.h" + #include "../../kexec-elf.h" + + +--- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c ++++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include + #include "../../kexec.h" + #include "../../kexec-elf.h" + +--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c ++++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include "../../kexec.h" + #include "../../kexec-elf.h" + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch new file mode 100644 index 000000000..081de1bb5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/kexec-syscall.patch @@ -0,0 +1,44 @@ +--- a/kexec/kexec-syscall.h ++++ b/kexec/kexec-syscall.h +@@ -2,7 +2,7 @@ + #define KEXEC_SYSCALL_H + + #define __LIBRARY__ +-#include ++/*#include */ + #include + #include + +@@ -23,6 +23,7 @@ + #define LINUX_REBOOT_CMD_KEXEC 0x45584543 + + #ifndef __NR_kexec_load ++/* + #ifdef __i386__ + #define __NR_kexec_load 283 + #endif +@@ -61,19 +62,21 @@ + #ifndef __NR_kexec_load + #error Unknown processor architecture. Needs a kexec_load syscall number. + #endif ++*/ + #endif /*ifndef __NR_kexec_load*/ + + struct kexec_segment; +- ++/* + static inline long kexec_load(void *entry, unsigned long nr_segments, + struct kexec_segment *segments, unsigned long flags) + { + return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags); + } +- ++*/ + static inline long kexec_reboot(void) + { +- return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); ++ //return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); ++ return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); + } + + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch new file mode 100644 index 000000000..56cdfb08d --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/ppc__lshrdi3.patch @@ -0,0 +1,18 @@ +--- a/purgatory/arch/ppc/crt.S ++++ b/purgatory/arch/ppc/crt.S +@@ -249,6 +249,7 @@ + * + */ + ++/* already defined in misc.S + _GLOBAL(__lshrdi3) + subfic 6,5,32 + srw 4,4,5 # LSW = count > 31 ? 0 : LSW >> count +@@ -259,5 +260,7 @@ + srw 3,3,5 # MSW = MSW >> count + or 4,4,7 # LSW |= t2 + blr ++*/ ++ + #endif + #endif diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch new file mode 100644 index 000000000..41fc1168f --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_flags.patch @@ -0,0 +1,21 @@ +--- a/purgatory/Makefile ++++ b/purgatory/Makefile +@@ -47,7 +47,7 @@ + $(PURGATORY): CC=$(TARGET_CC) + $(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \ + $($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ +- -Os -fno-builtin -ffreestanding ++ -Os -fno-builtin -ffreestanding -nostdinc + + $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ + -I$(srcdir)/purgatory/include \ +@@ -61,7 +61,8 @@ + + $(PURGATORY): $(PURGATORY_OBJS) + $(MKDIR) -p $(@D) +- $(CC) $(LDFLAGS) -o $@ $^ ++# $(CC) $(LDFLAGS) -o $@ $^ ++ $(LD) $(LDFLAGS) -o $@ $^ + + # $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB) + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch new file mode 100644 index 000000000..5710561b1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/purgatory_string.patch @@ -0,0 +1,9 @@ +--- a/purgatory/string.c ++++ b/purgatory/string.c +@@ -1,5 +1,5 @@ + #include +-#include ++/* #include */ + + size_t strnlen(const char *s, size_t max) + { diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch new file mode 100644 index 000000000..85bf7aa4f --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sha256.patch @@ -0,0 +1,13 @@ +--- a/util_lib/include/sha256.h ++++ b/util_lib/include/sha256.h +@@ -1,7 +1,8 @@ + #ifndef SHA256_H + #define SHA256_H + +-#include ++//#include ++#include + #include + + typedef struct + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch new file mode 100644 index 000000000..04a97e6bc --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/sysconf_nrprocessors.patch @@ -0,0 +1,13 @@ +--- a/kexec/crashdump-elf.c ++++ b/kexec/crashdump-elf.c +@@ -47,7 +47,8 @@ + if (xen_present()) + nr_cpus = xen_get_nr_phys_cpus(); + else +- nr_cpus = sysconf(_SC_NPROCESSORS_CONF); ++ /*nr_cpus = sysconf(_SC_NPROCESSORS_CONF);*/ ++ nr_cpus = 1; + + if (nr_cpus < 0) { + return -1; + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch new file mode 100644 index 000000000..77a1c01a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_basename.patch @@ -0,0 +1,14 @@ +--- a/kexec/arch/i386/x86-linux-setup.c ++++ b/kexec/arch/i386/x86-linux-setup.c +@@ -280,9 +280,9 @@ static int add_edd_entry(struct x86_linu + memset(edd_info, 0, sizeof(struct edd_info)); + + /* extract the device number */ +- if (sscanf(basename(sysfs_name), "int13_dev%hhx", &devnum) != 1) { ++ if (sscanf(strrchr(sysfs_name,'/') + 1, "int13_dev%hhx", &devnum) != 1) { + fprintf(stderr, "Invalid format of int13_dev dir " +- "entry: %s\n", basename(sysfs_name)); ++ "entry: %s\n", strrchr(sysfs_name,'/') + 1); + return -1; + } + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch new file mode 100644 index 000000000..9500bd604 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_kexec_test.patch @@ -0,0 +1,13 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -106,8 +106,8 @@ + + MAN_PAGES:= kexec/kexec.8 + MAN_PAGES+= kdump/kdump.8 +-BINARIES_i386:= $(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test +-BINARIES_x86_64:=$(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test ++BINARIES_i386:= $(SBINDIR)/kexec ++BINARIES_x86_64:=$(SBINDIR)/kexec + BINARIES:=$(SBINDIR)/kexec $(SBINDIR)/kdump $(BINARIES_$(ARCH)) + + TARGETS:=$(BINARIES) $(MAN_PAGES) diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch new file mode 100644 index 000000000..a497c9a63 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_sys_io.patch @@ -0,0 +1,21 @@ +--- a/purgatory/arch/i386/pic.c ++++ b/purgatory/arch/i386/pic.c +@@ -16,7 +16,7 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +-#include ++#include "include/arch/io.h" + #include + #include "purgatory-x86.h" + + +--- a/purgatory/arch/i386/vga.c ++++ b/purgatory/arch/i386/vga.c +@@ -1,4 +1,4 @@ +-#include ++#include "include/arch/io.h" + #include + #include "purgatory-x86.h" + + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch new file mode 100644 index 000000000..cad695154 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/x86_vfscanf.patch @@ -0,0 +1,27 @@ +--- a/kexec/arch/i386/x86-linux-setup.c ++++ b/kexec/arch/i386/x86-linux-setup.c +@@ -176,6 +176,8 @@ static int file_scanf(const char *dir, c + FILE *fp; + int retno; + char filename[PATH_MAX]; ++ long line_size = MAX_LINE; ++ char *line; + + snprintf(filename, PATH_MAX, "%s/%s", dir, file); + filename[PATH_MAX-1] = 0; +@@ -186,7 +188,14 @@ static int file_scanf(const char *dir, c + } + + va_start(argptr, scanf_line); +- retno = vfscanf(fp, scanf_line, argptr); ++ ++ line = xmalloc(sizeof(line) * line_size); ++ while(fgets(line, sizeof(line), fp) != NULL ) { ++ line_size += MAX_LINE; ++ line = xrealloc(line,line_size); ++ } ++ retno = vsscanf(line, scanf_line, argptr); ++ + va_end(argptr); + + fclose(fp); diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb new file mode 100644 index 000000000..c9fec2542 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb @@ -0,0 +1,40 @@ +# the binaries are statically linked against klibc +require recipes-kernel/kexec/kexec-tools.inc +SUMMARY = "Kexec tools, statically compiled against klibc" +SRC_URI[md5sum] = "92eff93b097475b7767f8c98df84408a" +SRC_URI[sha256sum] = "09e180ff36dee087182cdc939ba6c6917b6adbb5fc12d589f31fd3659b6471f2" + +inherit klibc + +FILESPATH =. "${FILE_DIRNAME}/kexec-tools-${PV}:" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz" + +SRC_URI += " \ + file://kexec-elf-rel.patch \ + file://kexec-syscall.patch \ + file://cflags_static.patch \ + file://ifdown_errno.patch \ + file://purgatory_flags.patch \ + file://purgatory_string.patch \ + file://sha256.patch \ + file://sysconf_nrprocessors.patch \ + file://fix-out-of-tree-build.patch \ + " + +SRC_URI_append_arm = " file://arm_crashdump.patch" +SRC_URI_append_powerpc = " file://ppc__lshrdi3.patch" +SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch file://x86_vfscanf.patch file://x86_kexec_test.patch" +SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch file://x86_vfscanf.patch file://x86_kexec_test.patch" + +S = "${WORKDIR}/kexec-tools-${PV}" + +EXTRA_OECONF += "--without-zlib --without-lzma --without-xen" + +CFLAGS += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" +CFLAGS_x86-64 += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" + +PACKAGES =+ "kexec-klibc kdump-klibc" + +FILES_kexec-klibc = "${sbindir}/kexec" +FILES_kdump-klibc = "${sbindir}/kdump" diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot/revert-check-console.patch b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot/revert-check-console.patch new file mode 100644 index 000000000..5e5e8d9f9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot/revert-check-console.patch @@ -0,0 +1,47 @@ +From a74e0bf51adcc867b73fc44050eb9bde985c9cba Mon Sep 17 00:00:00 2001 +From: Andrea Adami +Date: Sun, 28 Feb 2016 01:09:19 +0100 +Subject: [PATCH] main.c: revert check on console device + +Fix kernel panic because of the missing /dev/console. + +Revert Yocto-specific : "check console device file on fs when booting". + +The initramfs used in this kernel needs to be of the smallest possible +size so we save a few kb by deploying an empty /dev which is populated +after boot by the init (kexecboot checks and recreates the devices +with or without devtmpfs). + +Signed-off-by: Andrea Adami +--- + init/main.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/init/main.c b/init/main.c +index d191d2a..9e64d70 100644 +--- a/init/main.c ++++ b/init/main.c +@@ -976,7 +976,6 @@ static int __ref kernel_init(void *unused) + + static noinline void __init kernel_init_freeable(void) + { +- struct stat console_stat; + /* + * Wait until kthreadd is all set-up. + */ +@@ -1008,12 +1007,6 @@ static noinline void __init kernel_init_freeable(void) + + do_basic_setup(); + +- /* Use /dev/console to infer if the rootfs is setup properly */ +- if (sys_newlstat((char __user *) "/dev/console", (struct stat __user *) &console_stat) +- || !S_ISCHR(console_stat.st_mode)) { +- panic("/dev/console is missing or not a character device!\nPlease ensure your rootfs is properly configured\n"); +- } +- + /* Open the /dev/console on the rootfs, this should never fail */ + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) + pr_err("Warning: unable to open an initial console.\n"); +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_4.4.bb b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_4.4.bb new file mode 100644 index 000000000..66e0e53a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_4.4.bb @@ -0,0 +1,29 @@ +require recipes-kernel/linux/linux-yocto-tiny_${PV}.bb +SUMMARY = "Yocto tiny kernel embedding a minimalistic kexecboot initramfs" + +SRC_URI += "file://revert-check-console.patch" + +PACKAGES = "" +PROVIDES = "" + +KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-yocto-tiny-kexecboot-${PV}-${MACHINE}" +KERNEL_IMAGE_SYMLINK_NAME = "${KERNEL_IMAGETYPE}-yocto-tiny-kexecboot-${MACHINE}" + +INITRAMFS_IMAGE = "initramfs-kexecboot-klibc-image" +INITRAMFS_TASK = "${INITRAMFS_IMAGE}:do_image_complete" + +# disable unneeded tasks +do_shared_workdir[noexec] = "1" +do_install[noexec] = "1" +do_package[noexec] = "1" +do_package_qa[noexec] = "1" +do_packagedata[noexec] = "1" +do_package_deb[noexec] = "1" +do_package_ipk[noexec] = "1" +do_package_rpm[noexec] = "1" +do_package_tar[noexec] = "1" +do_package_write_deb[noexec] = "1" +do_package_write_ipk[noexec] = "1" +do_package_write_rpm[noexec] = "1" +do_package_write_tar[noexec] = "1" +do_populate_sysroot[noexec] = "1" diff --git a/import-layers/meta-openembedded/meta-multimedia/COPYING.MIT b/import-layers/meta-openembedded/meta-multimedia/COPYING.MIT new file mode 100644 index 000000000..fb950dc69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/meta-multimedia/README b/import-layers/meta-openembedded/meta-multimedia/README new file mode 100644 index 000000000..936461876 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/README @@ -0,0 +1,20 @@ +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +branch: krogoth +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +layers: meta-oe, meta-ruby +branch: krogoth +revision: HEAD + +Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia][krogoth]' in the subject' + +When sending single patches, please use something like: +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][krogoth][PATCH + +You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch ' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI. + +krogoth Branch Maintainer: +Armin Kuster diff --git a/import-layers/meta-openembedded/meta-multimedia/conf/layer.conf b/import-layers/meta-openembedded/meta-multimedia/conf/layer.conf new file mode 100644 index 000000000..64a0a443c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/conf/layer.conf @@ -0,0 +1,25 @@ +# It really depends on order of the layers appearing in BBLAYERS +# variable in toplevel bblayers.conf file, where bitbake will search +# for .inc files and others where bitbake uses BBPATH since it will +# search the directories from first to last as specified in BBPATH +# Therefore if you want a given layer to be considered high priority +# for the .inc and .conf etc. then consider it adding at the beginning +# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve +# the recipe contention so the order of directories in BBFILES does +# not matter. + +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "multimedia-layer" +BBFILE_PATTERN_multimedia-layer := "^${LAYERDIR}/" + +# Define the priority for recipes (.bb files) from this layer, +# choosing carefully how this layer interacts with all of the +# other layers. + +BBFILE_PRIORITY_multimedia-layer = "6" + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc new file mode 100644 index 000000000..23f17eddf --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc @@ -0,0 +1,20 @@ +SUMMARY = "Resource discovery and announcement over SSDP" +DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +DEPENDS = "glib-2.0 libsoup-2.4" + +inherit autotools pkgconfig gobject-introspection vala + +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+" + +PACKAGES =+ "gssdp-tools" + +FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb new file mode 100644 index 000000000..9457abc5c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb @@ -0,0 +1,9 @@ +require gssdp.inc + +inherit gtk-doc + +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "b8658e480d047caf2d92baa4a51b9ae7" +SRC_URI[sha256sum] = "4c3ffa01435e84dc31c954e669e1ca0749b962f76a333e74f5c2cb0de5803a13" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc new file mode 100644 index 000000000..054450156 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc @@ -0,0 +1,13 @@ +SUMMARY = "Helpers for AV applications using UPnP" +DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP." +LICENSE = "LGPLv2" +DEPENDS = "gupnp" + +inherit autotools pkgconfig gobject-introspection vala + +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gupnp-av the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb new file mode 100644 index 000000000..b8cfa27d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb @@ -0,0 +1,8 @@ +require gupnp-av.inc + +SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "f56cdb269376a9e6cb062eb9960ccf57" +SRC_URI[sha256sum] = "e0553d60dd7c7277c65c02a68a270c4dcb9036a4c7075c902fc8111c6a5e6a44" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb new file mode 100644 index 000000000..053604e12 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "Helpers for AV applications using DLNA" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274" + +DEPENDS = "libxml2 glib-2.0" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.9/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "f93665e535a512e4d515a86311435cb6" +SRC_URI[sha256sum] = "69969713f36c0e815fbbbcfdfb3ad9bd447cfd10d0fd86227d82dfd8edb6c807" + +inherit autotools pkgconfig gobject-introspection vala + +PACKAGECONFIG ?= "gstreamer" +PACKAGECONFIG[gstreamer] = "--enable-gstreamer-metadata-backend,--disable-gstreamer-metadata-backend,gstreamer1.0 gstreamer1.0-plugins-base" + +FILES_${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb new file mode 100644 index 000000000..0cc4a3a22 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb @@ -0,0 +1,14 @@ +SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80" + +DEPENDS = "glib-2.0 gupnp sqlite3" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "f881323304185c02634034e3bda714ba" +SRC_URI[sha256sum] = "73b6a98a0f13b29b34c3bfc07f99f78b1319211cb95a8585752873af2b9067d3" + +inherit autotools pkgconfig gtk-doc gobject-introspection + +EXTRA_OECONF = "--disable-python" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.10.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.10.bb new file mode 100644 index 000000000..821b5a3c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.10.bb @@ -0,0 +1,12 @@ +SUMMARY = "Tools for GUPnP" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8" +DEPENDS = "gupnp gupnp-av gtk+3" +RRECOMMENDS_${PN} = "adwaita-icon-theme" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "ad8423d036e98bc6f877528d6b846f6a" +SRC_URI[sha256sum] = "592c53289ff1cd70e676405c56ca87b28d2da37a385d34a3bb9b944ba9108d17" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc new file mode 100644 index 000000000..6ce963161 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc @@ -0,0 +1,25 @@ +SUMMARY = "UPnP framework" +DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals." +LICENSE = "LGPLv2+" + +DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2" + +inherit autotools pkgconfig vala gobject-introspection + +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gupnp the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN}-dev += "${bindir}/gupnp-binding-tool" + +RDEPENDS_${PN}-dev = "python-textutils python-xml" + +SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess" + +gupnp_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/gupnp-binding-tool ${SYSROOT_DESTDIR}${bindir_crossscripts}/ +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.14.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.14.bb new file mode 100644 index 000000000..ed0717593 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.14.bb @@ -0,0 +1,8 @@ +require gupnp.inc + +SRC_URI = "${GNOME_MIRROR}/${BPN}/0.20/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "63346ef90ac5cd925c3a941f51d8bca6" +SRC_URI[sha256sum] = "77ffb940ba77c4a6426d09d41004c75d92652dcbde86c84ac1c847dbd9ad59bd" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/avoid-redefining-strnlen-and-strndup.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/avoid-redefining-strnlen-and-strndup.patch new file mode 100644 index 000000000..3c3f230a3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/avoid-redefining-strnlen-and-strndup.patch @@ -0,0 +1,47 @@ +From 22fba4f2765f92cd592a58e1fe5c450b187e30e1 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Wed, 3 Jun 2015 21:39:03 -0700 +Subject: [PATCH] avoid redefining strnlen() and strndup() + +Rely on string.h definitions instead. Workaround for compiler errors such as: + + | i686-rdk-linux-libtool: compile: i686-rdk-linux-gcc -m32 -march=atom -mtune=atom -fschedule-insns -fsched-pressure -msse3 -mfpmath=sse --sysroot=/home/andre/build/tmp/sysroots/7401 -DHAVE_CONFIG_H -I. -I/home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp -I.. -I../upnp/inc -I/home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp/inc -I/home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/threadutil/inc -I/home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/ixml/inc -I/home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp/src/inc -pthread -O2 -pipe -g -feliminate-unused-debug-types -Os -Wall -c /home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp/src/gena/gena_callback2.c -o src/gena/libupnp_la-gena_callback2.o >/dev/null 2>&1 + | In file included from /home/andre/build/tmp/sysroots/7401/usr/include/string.h:634:0, + | from /home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp/src/api/UpnpString.c:23: + | /home/andre/build/tmp/work/core2-32-rdk-linux/libupnp/1.6.19-r0/libupnp-1.6.19/upnp/src/api/UpnpString.c:47:15: error: expected identifier or '(' before '__extension__' + | extern char *strndup(__const char *__string, size_t __n); + | ^ + | make[3]: *** [src/api/libupnp_la-UpnpString.lo] Error 1 + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + upnp/src/api/UpnpString.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/upnp/src/api/UpnpString.c b/upnp/src/api/UpnpString.c +index 41c9898..2fa09d7 100644 +--- a/upnp/src/api/UpnpString.c ++++ b/upnp/src/api/UpnpString.c +@@ -32,7 +32,7 @@ + /* VC has strnlen which is already included but with (potentially) different linkage */ + /* strnlen() is a GNU extension. */ + #if HAVE_STRNLEN +- extern size_t strnlen(const char *s, size_t maxlen); ++// extern size_t strnlen(const char *s, size_t maxlen); + #else /* HAVE_STRNLEN */ + static size_t strnlen(const char *s, size_t n) + { +@@ -44,7 +44,7 @@ + + /* strndup() is a GNU extension. */ + #if HAVE_STRNDUP && !defined(WIN32) +- extern char *strndup(__const char *__string, size_t __n); ++// extern char *strndup(__const char *__string, size_t __n); + #else /* HAVE_STRNDUP && !defined(WIN32) */ + static char *strndup(const char *__string, size_t __n) + { +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/sepbuildfix.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/sepbuildfix.patch new file mode 100644 index 000000000..cd9768d54 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp/sepbuildfix.patch @@ -0,0 +1,60 @@ +From e198f0a87660a048164ca0e16d18517d0aee846e Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Tue, 9 Jun 2015 12:20:45 -0700 +Subject: [PATCH] Fix builds when using separate source and build directories. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + configure.ac | 8 ++++---- + ixml/Makefile.am | 2 +- + threadutil/Makefile.am | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e2c3f47..11d5e22 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -714,8 +714,8 @@ AC_OUTPUT + # + # Files copied for windows compilation. + # +-echo "configure: copying \"autoconfig.h\" to \"build/inc/autoconfig.h\"" +-cp autoconfig.h build/inc/autoconfig.h +-echo "configure: copying \"upnp/inc/upnpconfig.h\" to \"build/inc/upnpconfig.h\"" +-cp upnp/inc/upnpconfig.h build/inc/upnpconfig.h ++echo "configure: copying \"autoconfig.h\" to \"\$srcdir/build/inc/autoconfig.h\"" ++cp autoconfig.h $srcdir/build/inc/autoconfig.h ++echo "configure: copying \"upnp/inc/upnpconfig.h\" to \"\$srcdir/build/inc/upnpconfig.h\"" ++cp upnp/inc/upnpconfig.h $srcdir/build/inc/upnpconfig.h + +diff --git a/ixml/Makefile.am b/ixml/Makefile.am +index 49da766..0e9ab2c 100644 +--- a/ixml/Makefile.am ++++ b/ixml/Makefile.am +@@ -7,7 +7,7 @@ + + SUBDIRS = doc + +-AM_CPPFLAGS = -I$(srcdir)/inc -I$(srcdir)/src/inc ++AM_CPPFLAGS = -I$(top_srcdir)/upnp/inc -I$(srcdir)/inc -I$(srcdir)/src/inc + AM_CFLAGS = + + LDADD = libixml.la +diff --git a/threadutil/Makefile.am b/threadutil/Makefile.am +index a4ed325..42d0726 100644 +--- a/threadutil/Makefile.am ++++ b/threadutil/Makefile.am +@@ -4,7 +4,7 @@ + # (C) Copyright 2005 Remi Turboult + # + +-AM_CPPFLAGS = -I$(srcdir)/inc -I$(srcdir)/src/inc ++AM_CPPFLAGS = -I$(top_srcdir)/upnp/inc -I$(srcdir)/inc -I$(srcdir)/src/inc + + if ENABLE_DEBUG + AM_CPPFLAGS += -DDEBUG -DSTATS +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.6.19.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.6.19.bb new file mode 100644 index 000000000..133a8ebd5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.6.19.bb @@ -0,0 +1,19 @@ +SUMMARY = "Portable SDK for UPnP* Devices" +DESCRIPTION = "The Portable SDK for UPnP Devices is an SDK for development of \ +UPnP device and control point applications. It consists of the core UPnP \ +protocols along with a UPnP-specific eXtensible Markup Language (XML) parser \ +supporting the Document Object Model (DOM) Level 2 API and an optional, \ +integrated mini web server for serving UPnP related documents." +HOMEPAGE = "http://pupnp.sourceforge.net/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b3190d5244e08e78e4c8ee78544f4863" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pupnp/${BP}.tar.bz2 \ + file://avoid-redefining-strnlen-and-strndup.patch \ + file://sepbuildfix.patch \ +" + +SRC_URI[md5sum] = "ee16e5d33a3ea7506f38d71facc057dd" +SRC_URI[sha256sum] = "b3142b39601243b50532eec90f4a27dba85eb86f58d4b849ac94edeb29d9b22a" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.28.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.28.2.bb new file mode 100644 index 000000000..5cb7d4330 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.28.2.bb @@ -0,0 +1,59 @@ +SUMMARY = "A UPnP AV media server and renderer" +DESCRIPTION = "Rygel is a home media solution (UPnP AV MediaServer) that \ +allow you to easily share audio, video and pictures to other devices. \ +Additionally, media player software may use Rygel to become a MediaRenderer \ +that may be controlled remotely by a UPnP or DLNA Controller." +HOMEPAGE = "http://live.gnome.org/Rygel" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://src/rygel/rygel-main.vala;endline=27;md5=99324118da4c012d25edae2f779ae9b3" + +DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base ossp-uuid libgee libsoup-2.4 libmediaart-2.0 libunistring sqlite3" +RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info" +RRECOMMENDS_${PN} = "rygel-plugin-media-export" + +GNOME_COMPRESS_TYPE = "xz" +SRC_URI[archive.md5sum] = "9fbe4fb53b6cfa2f3f3723b7649a2215" +SRC_URI[archive.sha256sum] = "9ea23df7186caac5f1aad3137edf6d507d339b9a469fc3133df4043fa66b61f5" + +inherit gnomebase vala gobject-introspection + +EXTRA_OECONF = "--disable-tracker-plugin --with-media-engine=gstreamer" + +PACKAGECONFIG ?= "external mpris mediathek ruih media-export gst-launch gtk+3" +PACKAGECONFIG[external] = "--enable-external-plugin,--disable-external-plugin" +PACKAGECONFIG[mpris] = "--enable-mpris-plugin,--disable-mpris-plugin" +PACKAGECONFIG[mediathek] = "--enable-mediathek-plugin,--disable-mediathek-plugin" +PACKAGECONFIG[ruih] = "--enable-ruih-plugin,--disable-ruih-plugin" +PACKAGECONFIG[media-export] = "--enable-media-export-plugin,--disable-media-export-plugin" +PACKAGECONFIG[gst-launch] = "--enable-gst-launch-plugin,--disable-gst-launch-plugin" +PACKAGECONFIG[gtk+3] = ",--without-ui,gtk+3" + +LIBV = "2.6" + +do_install_append() { + # Remove .la files for loadable modules + rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la + rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la +} + +FILES_${PN} += "${libdir}/rygel-${LIBV}/engines ${datadir}/dbus-1 ${datadir}/icons" +FILES_${PN}-dbg += "${libdir}/rygel-${LIBV}/engines/.debug ${libdir}/rygel-${LIBV}/plugins/.debug" + +PACKAGES += "${PN}-meta" +ALLOW_EMPTY_${PN}-meta = "1" + +PACKAGES_DYNAMIC = "${PN}-plugin-*" + +python populate_packages_prepend () { + rygel_libdir = d.expand('${libdir}/rygel-${LIBV}') + postinst = d.getVar('plugin_postinst', True) + pkgs = [] + + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), 'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), '(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + + metapkg = d.getVar('PN', True) + '-meta' + d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs)) +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb new file mode 100644 index 000000000..1c0d6867d --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb @@ -0,0 +1,106 @@ +HOMEPAGE = "http://www.linuxtv.org" +SUMMARY = "Linux DVB API applications and utilities" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "hg://linuxtv.org/hg;module=dvb-apps;protocol=http" +SRCREV = "3fc7dfa68484" + +S = "${WORKDIR}/${BPN}" + +do_configure() { + sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh +} + +do_install() { + make DESTDIR=${D} install + install -d ${D}/${bindir} + install -d ${D}/${docdir}/dvb-apps + install -d ${D}/${docdir}/dvb-apps/scan + install -d ${D}/${docdir}/dvb-apps/szap + chmod a+rx ${D}/${libdir}/*.so* + + # Install tests + install -m 0755 ${S}/test/setvoltage ${D}${bindir}/test_setvoltage + install -m 0755 ${S}/test/set22k ${D}${bindir}/test_set22k + install -m 0755 ${S}/test/sendburst ${D}${bindir}/test_sendburst + install -m 0755 ${S}/test/diseqc ${D}${bindir}/test_diseqc + install -m 0755 ${S}/test/test_sections ${D}${bindir}/ + install -m 0755 ${S}/test/test_av_play ${D}${bindir}/ + install -m 0755 ${S}/test/test_stillimage ${D}${bindir}/ + install -m 0755 ${S}/test/test_dvr_play ${D}${bindir}/ + install -m 0755 ${S}/test/test_tt ${D}${bindir}/ + install -m 0755 ${S}/test/test_sec_ne ${D}${bindir}/ + install -m 0755 ${S}/test/test_stc ${D}${bindir}/ + install -m 0755 ${S}/test/test_av ${D}${bindir}/ + install -m 0755 ${S}/test/test_vevent ${D}${bindir}/ + install -m 0755 ${S}/test/test_pes ${D}${bindir}/ + install -m 0755 ${S}/test/test_dvr ${D}${bindir}/ + + cp -pPR ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/ + cp -pPR ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/ +} + +python populate_packages_prepend () { + dvb_libdir = bb.data.expand('${libdir}', d) + do_split_packages(d, dvb_libdir, '^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True) + do_split_packages(d, dvb_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') + do_split_packages(d, dvb_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') + do_split_packages(d, dvb_libdir, '^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True) +} + +PACKAGES =+ "dvb-evtest dvb-evtest-dbg \ + dvbapp-tests dvbapp-tests-dbg \ + dvbdate dvbdate-dbg \ + dvbtraffic dvbtraffic-dbg \ + dvbnet dvbnet-dbg \ + dvb-scan dvb-scan-dbg dvb-scan-data \ + dvb-azap dvb-azap-dbg \ + dvb-czap dvb-czap-dbg \ + dvb-szap dvb-szap-dbg \ + dvb-tzap dvb-tzap-dbg \ + dvb-femon dvb-femon-dbg \ + dvb-zap-data" + + +FILES_${PN} = "${bindir} ${datadir}/dvb" +FILES_${PN}-doc = "" +FILES_${PN}-dev = "${includedir}" + +FILES_dvb-evtest = "${bindir}/evtest" +FILES_dvb-evtest-dbg = "${bindir}/.debug/evtest" +RCONFLICTS_dvb-evtest = "evtest" + +FILES_dvbapp-tests = "${bindir}/*test* " +FILES_dvbapp-tests-dbg = "${bindir}/.debug/*test*" + +FILES_dvbdate = "${bindir}/dvbdate" +FILES_dvbdate-dbg = "${bindir}/.debug/dvbdate" + +FILES_dvbtraffic = "${bindir}/dvbtraffic" +FILES_dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic" + +FILES_dvbnet = "${bindir}/dvbnet" +FILES_dvbnet-dbg = "${bindir}/.debug/dvbnet" + +FILES_dvb-scan = "${bindir}/*scan " +FILES_dvb-scan-dbg = "${bindir}/.debug/*scan" +FILES_dvb-scan-data = "${docdir}/dvb-apps/scan" + +FILES_dvb-azap = "${bindir}/azap" +FILES_dvb-azap-dbg = "${bindir}/.debug/azap" + +FILES_dvb-czap = "${bindir}/czap" +FILES_dvb-czap-dbg = "${bindir}/.debug/czap" + +FILES_dvb-szap = "${bindir}/szap" +FILES_dvb-szap-dbg = "${bindir}/.debug/szap" + +FILES_dvb-tzap = "${bindir}/tzap" +FILES_dvb-tzap-dbg = "${bindir}/.debug/tzap" + +FILES_dvb-femon = "${bindir}/femon" +FILES_dvb-femon-dbg = "${bindir}/.debug/femon" + +FILES_dvb-zap-data = "${docdir}/dvb-apps/szap" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch new file mode 100644 index 000000000..179d04a55 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch @@ -0,0 +1,38 @@ +Upstream-Status: Backport +http://www.streamboard.tv/oscam/changeset/10068 +http://www.streamboard.tv/oscam/changeset/10070 + +Index: /CMakeLists.txt +=================================================================== +--- a/CMakeLists.txt (revision 10067) ++++ b/CMakeLists.txt (revision 10068) +@@ -625,8 +625,8 @@ + list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR) + add_definitions ("-W -Wall ") +- set (CMAKE_C_FLAGS "-Wall -O2") +- set (CMAKE_CXX_FLAGS "-Wall -O2") +- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") +- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2") ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2") ++ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb") ++ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") + endif (CMAKE_COMPILER_IS_GNUCC) + # some optimisations +Index: /csctapi/CMakeLists.txt +=================================================================== +--- a/csctapi/CMakeLists.txt (revision 10069) ++++ b/csctapi/CMakeLists.txt (revision 10070) +@@ -6,8 +6,8 @@ + list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR) + add_definitions ("-W -Wall ") +- set (CMAKE_C_FLAGS "-Wall -O2") +- set (CMAKE_CXX_FLAGS "-Wall -O2") +- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") +- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2") ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2") ++ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb") ++ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") + endif (CMAKE_COMPILER_IS_GNUCC) + # Mac extra removes to avoid ranlib warnings in some situations diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb new file mode 100644 index 000000000..cac517ff5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb @@ -0,0 +1,20 @@ +SUMMARY = "OSCam: Open Source Conditional Access Module" +HOMEPAGE = "http://www.streamboard.tv/oscam/" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libusb1 openssl pcsc-lite" + +SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \ + file://respect-cflags.patch \ +" +SRCREV = "9164" +PV = "1.10+${SRCPV}" + +S = "${WORKDIR}/trunk" + +inherit cmake + +EXTRA_OECMAKE = "-DDEFAULT_CS_CONFDIR=${sysconfdir} -DCMAKE_BUILD_TYPE=Debug" + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch new file mode 100644 index 000000000..9dfcce042 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch @@ -0,0 +1,92 @@ +From 2ee64b359464b48f751683faa5ded3ee8200fe90 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 21 Dec 2012 10:15:42 +0100 +Subject: [PATCH] Move tvheadend specific LD/CFLAGS into a helper variable to + avoid being overwritten + +Signed-off-by: Koen Kooi + +Upstream-Status: Inappropriate [OE specific] +--- + Makefile | 20 ++++++++++---------- + support/configure.inc | 8 ++++---- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/Makefile b/Makefile +index 8c6b293..daf5f14 100644 +--- a/Makefile ++++ b/Makefile +@@ -27,12 +27,12 @@ PROG = ${BUILDDIR}/tvheadend + # Common compiler flags + # + +-CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations +-CFLAGS += -Wmissing-prototypes -fms-extensions +-CFLAGS += -g -funsigned-char -O2 +-CFLAGS += -D_FILE_OFFSET_BITS=64 +-CFLAGS += -I${BUILDDIR} -I${CURDIR}/src -I${CURDIR} +-LDFLAGS += -lrt -ldl -lpthread -lm ++TVH_CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations ++TVH_CFLAGS += -Wmissing-prototypes -fms-extensions ++TVH_CFLAGS += -g -funsigned-char -O2 ++TVH_CFLAGS += -D_FILE_OFFSET_BITS=64 ++TVH_CFLAGS += -I${BUILDDIR} -I${CURDIR}/src -I${CURDIR} ++TVH_LDFLAGS += -lrt -ldl -lpthread -lm + + # + # Other config +@@ -179,8 +179,8 @@ SRCS-${CONFIG_CWC} += src/ffdecsa/ffdecsa_interface.c \ + src/ffdecsa/ffdecsa_int.c + SRCS-${CONFIG_MMX} += src/ffdecsa/ffdecsa_mmx.c + SRCS-${CONFIG_SSE2} += src/ffdecsa/ffdecsa_sse2.c +-${BUILDDIR}/src/ffdecsa/ffdecsa_mmx.o : CFLAGS += -mmmx +-${BUILDDIR}/src/ffdecsa/ffdecsa_sse2.o : CFLAGS += -msse2 ++${BUILDDIR}/src/ffdecsa/ffdecsa_mmx.o : TVH_CFLAGS += -mmmx ++${BUILDDIR}/src/ffdecsa/ffdecsa_sse2.o : TVH_CFLAGS += -msse2 + endif + + # File bundles +@@ -217,12 +217,12 @@ all: ${PROG} + + # Binary + ${PROG}: $(OBJS) $(ALLDEPS) +- $(CC) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS) ++ $(CC) -o $@ $(OBJS) $(TVH_CFLAGS) $(TVH_LDFLAGS) $(CFLAGS) $(LDFLAGS) + + # Object + ${BUILDDIR}/%.o: %.c + @mkdir -p $(dir $@) +- $(CC) -MD -MP $(CFLAGS) -c -o $@ $(CURDIR)/$< ++ $(CC) -MD -MP $(TVH_CFLAGS) $(CFLAGS) -c -o $@ $(CURDIR)/$< + + # Add-on + ${BUILDDIR}/%.so: ${SRCS_EXTRA} +diff --git a/support/configure.inc b/support/configure.inc +index 0130880..332511e 100644 +--- a/support/configure.inc ++++ b/support/configure.inc +@@ -464,8 +464,8 @@ ifeq (\$(origin CC),default) + CC = ${CC} + endif + PYTHON ?= ${PYTHON} +-CFLAGS += ${CFLAGS} +-LDFLAGS += ${LDFLAGS} ++TVH_CFLAGS += ${CFLAGS} ++TVH_LDFLAGS += ${LDFLAGS} + prefix = ${prefix} + bindir = ${bindir} + mandir = ${mandir} +@@ -482,8 +482,8 @@ EOF + # Add package config + for pkg in ${PACKAGES[*]}; do + cat >>${CONFIG_MK} < +Date: Sat, 17 Dec 2011 11:38:15 +0100 +Subject: [PATCH 1/4] configure: don't run python distutils to find STAGING_INCDIR/python, it is not safe for per-machine sysroots + +Signed-off-by: Koen Kooi +--- + m4/ax_python_devel.m4 | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 +index adbd207..dee70f6 100644 +--- a/m4/ax_python_devel.m4 ++++ b/m4/ax_python_devel.m4 +@@ -151,12 +151,7 @@ $ac_distutils_result]) + # + AC_MSG_CHECKING([for Python include path]) + if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc ());"` +- if test -n "${python_path}"; then +- python_path="-I$python_path" +- fi +- PYTHON_CPPFLAGS=$python_path ++ PYTHON_CPPFLAGS="-I${STAGING_INCDIR}/${PYTHON_DIR}" + fi + AC_MSG_RESULT([$PYTHON_CPPFLAGS]) + AC_SUBST([PYTHON_CPPFLAGS]) +-- +1.7.2.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch new file mode 100644 index 000000000..e0a4037bc --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch @@ -0,0 +1,97 @@ +From 7b2a8a7869d257cba35f53f6d877877c29cdac27 Mon Sep 17 00:00:00 2001 +From: Paul Menzel +Date: Sun, 14 Aug 2011 21:53:47 +0200 +Subject: [PATCH 2/4] Revert "fixed:[ios] Add memory barriers to atomic Add/Subtract and Increment/Decrement functions to ensure synchronized accesses." + +This reverts commit 9a10c48710df79118e39e9b3bb0a15bf1fe694d1. + +The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. + + make -C xbmc/threads + make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' + CPP Atomics.o + /tmp/ccIzTm3L.s: Assembler messages: + /tmp/ccIzTm3L.s:40: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:48: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:76: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:83: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:111: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:118: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:145: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:152: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:180: Error: garbage following instruction -- `dmb ish' + /tmp/ccIzTm3L.s:187: Error: garbage following instruction -- `dmb ish' + make[1]: *** [Atomics.o] Error 1 + make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' + make: *** [xbmc/threads/threads.a] Error 2 +--- + xbmc/threads/Atomics.cpp | 8 -------- + 1 files changed, 0 insertions(+), 8 deletions(-) + +diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp +index 5b09f18..0a98a7e 100644 +--- a/xbmc/threads/Atomics.cpp ++++ b/xbmc/threads/Atomics.cpp +@@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr) + { + register long val; + asm volatile ( +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after + "1: \n" + "ldrex %0, [%1] \n" // (val = *pAddr) + "add %0, #1 \n" // (val += 1) + "strex r1, %0, [%1] \n" + "cmp r1, #0 \n" + "bne 1b \n" +- "dmb ish \n" // Memory barrier. + : "=&r" (val) + : "r"(pAddr) + : "r1" +@@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount) + { + register long val; + asm volatile ( +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after + "1: \n" + "ldrex %0, [%1] \n" // (val = *pAddr) + "add %0, %2 \n" // (val += amount) + "strex r1, %0, [%1] \n" + "cmp r1, #0 \n" + "bne 1b \n" +- "dmb ish \n" // Memory barrier. + : "=&r" (val) + : "r"(pAddr), "r"(amount) + : "r1" +@@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr) + { + register long val; + asm volatile ( +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after + "1: \n" + "ldrex %0, [%1] \n" // (val = *pAddr) + "sub %0, #1 \n" // (val -= 1) + "strex r1, %0, [%1] \n" + "cmp r1, #0 \n" + "bne 1b \n" +- "dmb ish \n" // Memory barrier. + : "=&r" (val) + : "r"(pAddr) + : "r1" +@@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount) + { + register long val; + asm volatile ( +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after + "1: \n" + "ldrex %0, [%1] \n" // (val = *pAddr) + "sub %0, %2 \n" // (val -= amount) + "strex r1, %0, [%1] \n" + "cmp r1, #0 \n" + "bne 1b \n" +- "dmb ish \n" // Memory barrier. + : "=&r" (val) + : "r"(pAddr), "r"(amount) + : "r1" +-- +1.7.2.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch new file mode 100644 index 000000000..629017b7b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch @@ -0,0 +1,69 @@ +From aaae1616a09d359b52e929f944ca0ceb4bb7f831 Mon Sep 17 00:00:00 2001 +From: Paul Menzel +Date: Sun, 14 Aug 2011 21:55:09 +0200 +Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses." + +This reverts commit 92bab651e2253d172879995b50985645b77fecd2. + +The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. + + CPP Atomics.o + make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/windows' + CPP GUIMediaWindow.o + /tmp/ccrsywuV.s: Assembler messages: + /tmp/ccrsywuV.s:40: Error: garbage following instruction -- `dmb ish' + /tmp/ccrsywuV.s:48: Error: garbage following instruction -- `dmb ish' + make[1]: *** [Atomics.o] Error 1 + make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads' + make: *** [xbmc/threads/threads.a] Error 2 +--- + xbmc/threads/Atomics.cpp | 33 ++++++++++++++++----------------- + 1 files changed, 16 insertions(+), 17 deletions(-) + +diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp +index 0a98a7e..0967eb2 100644 +--- a/xbmc/threads/Atomics.cpp ++++ b/xbmc/threads/Atomics.cpp +@@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal) + #elif defined(__arm__) + long cas(volatile long* pAddr, long expectedVal, long swapVal) + { +- register long prev; +- asm volatile ( +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after +- "1: \n" +- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, +- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2) +- "bne 2f \n" // Bail if the two values are not equal [not as expected] +- "strex r1, %3, [%1] \n" +- "cmp r1, #0 \n" +- "bne 1b \n" +- "dmb ish \n" // Memory barrier. +- "2: \n" +- : "=&r" (prev) +- : "r"(pAddr), "r"(expectedVal),"r"(swapVal) +- : "r1" +- ); +- return prev; ++ return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal)); ++// register long prev; ++// asm volatile ( ++// "1: \n" ++// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */ ++// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */ ++// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */ ++// "strex r1, %3, [%1] \n" ++// "cmp r1, #0 \n" ++// "bne 1b \n" ++// "2: " ++// : "=&r" (prev) ++// : "r"(pAddr), "r"(expectedVal),"r"(swapVal) ++// : "r1" ++// ); ++// return prev; + } + + #elif defined(__mips__) +-- +1.7.2.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch new file mode 100644 index 000000000..345e20ee1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch @@ -0,0 +1,43 @@ +From fd8f73826240aae543a41a2bfeea0056e2fe594d Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Mon, 11 Mar 2013 11:04:29 +0100 +Subject: [PATCH] configure: cope with ld-is-gold DISTRO_FEATURE + +Signed-off-by: Koen Kooi +--- + +Upstream-Stature: backport + + configure.in | 12 +++++++----- + 1 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index ef94683..c8b459b 100755 +--- a/configure.in ++++ b/configure.in +@@ -18,9 +18,14 @@ tolower(){ + # check for library basenames + AC_DEFUN([XB_FIND_SONAME], + [ ++ #set -x + if [[ "$host_vendor" != "apple" ]]; then + AC_MSG_CHECKING([for lib$2 soname]) + $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}') ++ if [[ -z $$1_FILENAME ]]; then ++ #try gold linker syntax ++ $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2") ++ fi + if [[ ! -z $$1_FILENAME ]]; then + $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}') + fi +@@ -55,6 +60,7 @@ AC_DEFUN([XB_FIND_SONAME], + AC_MSG_RESULT([$$1_SONAME]) + AC_SUBST($1_SONAME) + fi ++ #set +x + ]) + + # Function to push and pop libs and includes for a command +-- +1.7.7.6 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch new file mode 100644 index 000000000..5c1405982 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch @@ -0,0 +1,32 @@ +From cfd851660a594801a591e80dc820c65cb7bd7836 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Sat, 6 Oct 2012 06:40:03 -0300 +Subject: [PATCH] configure.in: Avoid running code or we break cross-compile + +Upstream-Status: Backport [similar change done for 12.0] + +Signed-off-by: Otavio Salvador +--- + configure.in | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index ef94683..d7efcb0 100755 +--- a/configure.in ++++ b/configure.in +@@ -1246,11 +1246,7 @@ if test "$use_external_ffmpeg" = "yes"; then + AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.]) + + # Disable vdpau support if external libavcodec doesn't have it +- AC_RUN_IFELSE( +- AC_LANG_PROGRAM([[#include ]], +- [[avcodec_register_all(); +- AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau"); +- return (codec) ? 0 : 1;]]),, ++ AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],, + [if test "x$use_vdpau" = "xyes"; then + AC_MSG_ERROR($ffmpeg_vdpau_not_supported) + else +-- +1.7.2.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb new file mode 100644 index 000000000..f14d4e1cf --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb @@ -0,0 +1,99 @@ +SUMMARY = "XBMC Media Center" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff" + +DEPENDS = "libusb1 libcec libplist expat yajl gperf-native libxmu fribidi mpeg2dec ffmpeg samba fontconfig curl python libass libmodplug libmicrohttpd wavpack libmms cmake-native libsdl-image libsdl-mixer virtual/egl mysql5 sqlite3 libmms faad2 libcdio libpcre boost lzo enca avahi libsamplerate0 libxinerama libxrandr libxtst bzip2 virtual/libsdl jasper zip-native zlib libtinyxml libmad" +#require recipes/egl/egl.inc + + +SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa" + +# multiple issues +PNBLACKLIST[xbmc] ?= "/usr/include/c++/ctime:70:11: error: '::gmtime' has not been declared" + +PV = "11.0+gitr${SRCPV}" +PR = "r14" +SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Eden \ + file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \ + file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \ + file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \ + file://0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch \ + file://configure.in-Avoid-running-code.patch \ +" + +inherit autotools gettext python-dir + +S = "${WORKDIR}/git" + +# breaks compilation +CCACHE = "" + +CACHED_CONFIGUREVARS += " \ + ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \ +" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl', 'openglesv2', d)}" +PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew" +PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl," + +EXTRA_OECONF = " \ + --disable-rpath \ + --enable-libusb \ + --enable-airplay \ + --disable-optical-drive \ + --enable-external-libraries \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--enable-gles', d)} \ +" + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +EXTRA_OECONF_append_armv7a = "--cpu=cortex-a8" + +# for python modules +export HOST_SYS +export BUILD_SYS +export STAGING_LIBDIR +export STAGING_INCDIR +export PYTHON_DIR + +do_configure() { + sh bootstrap + oe_runconf +} + +PARALLEL_MAKE = "" + +do_compile_prepend() { + for i in $(find . -name "Makefile") ; do + sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i + done + + for i in $(find . -name "*.mak*" -o -name "Makefile") ; do + sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i + done +} + +INSANE_SKIP_${PN} = "rpaths" + +# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly +do_install_append_arm() { + sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop +} + +FILES_${PN} += "${datadir}/xsessions ${datadir}/icons" +FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug" + +# xbmc uses some kind of dlopen() method for libcec so we need to add it manually +# OpenGL builds need glxinfo, that's in mesa-demos +RRECOMMENDS_${PN}_append = " libcec \ + python \ + python-lang \ + python-re \ + python-netclient \ + libcurl \ + xdpyinfo \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \ +" +RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb new file mode 100644 index 000000000..71e2bfc56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "libebml is a C++ libary to parse EBML files" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=f14599a2f089f6ff8c97e2baa4e3d575" + +SRC_URI = "http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2" +SRC_URI[md5sum] = "efec729bf5a51e649e1d9d1f61c0ae7a" +SRC_URI[sha256sum] = "83b074d6b62715aa0080406ea84d33df2e44b5d874096640233a4db49b8096de" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_compile() { + cd ${S}/make/linux + oe_runmake CROSS="${TARGET_PREFIX}" +} + +do_install() { + cd ${S}/make/linux + + install -d ${D}${libdir} + install -m 0644 libebml.a ${D}${libdir} + install -m 0755 libebml.so.* ${D}${libdir} + cp -R --no-dereference --preserve=mode,links -v libebml.so ${D}${libdir} + + install -d ${D}${includedir}/ebml + for i in ../../ebml/*.h; do + install -m 0644 $i ${D}${includedir}/ebml + done + + install -d ${D}${includedir}/ebml/c + for i in ../../ebml/c/*.h; do + install -m 0644 $i ${D}${includedir}/ebml/c + done +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb new file mode 100644 index 000000000..1ad87cba7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "libmatroska is a C++ libary to parse Matroska files (.mkv and .mka)" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libebml" + +SRC_URI = "http://dl.matroska.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "f61b2e5086f4bb9d24a43cc8af43a719" +SRC_URI[sha256sum] = "086f21873e925679babdabf793c3bb85c353d0cd79423543a3355e08e8a4efb7" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_compile() { + cd ${S}/make/linux + oe_runmake CROSS="${TARGET_PREFIX}" +} + +do_install() { + cd ${S}/make/linux + + install -d ${D}${libdir} + install -m 0644 libmatroska.a ${D}${libdir} + install -m 0755 libmatroska.so.* ${D}${libdir} + cp -R --no-dereference --preserve=mode,links -v libmatroska.so ${D}${libdir} + + install -d ${D}${includedir}/matroska + for i in ../../matroska/*.h; do + install -m 0644 $i ${D}${includedir}/matroska + done + + install -d ${D}${includedir}/matroska/c + for i in ../../matroska/c/*.h; do + install -m 0644 $i ${D}${includedir}/matroska/c + done +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb new file mode 100644 index 000000000..fe44ccf24 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb @@ -0,0 +1,57 @@ +SUMMARY = "MKVToolNix -- Cross-platform tools for Matroska" +HOMEPAGE = "http://www.bunkus.org/videotools/mkvtoolnix/source.html" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "curl boost expat zlib libebml libmatroska libogg libvorbis bzip2 lzo file ruby-native" + +PV = "8.4.0+git${SRCPV}" +SRCREV_mkvtoolnix = "7f63ea48ee474754a95838f37aba8f6118c94a65" +SRCREV_libebml = "04b34b0dbded40e0cec93cafa6a4f4c8e90c3206" +SRCREV_libmatroska = "db5d627b5bf48516c9e0b540254c0d36595760c3" +SRCREV_FORMAT = "mkvtoolnix" +SRC_URI = " \ + git://github.com/mbunkus/mkvtoolnix.git;name=mkvtoolnix \ + git://github.com/Matroska-Org/libebml.git;name=libebml;destsuffix=git/lib/libebml \ + git://github.com/Matroska-Org/libmatroska.git;name=libmatroska;destsuffix=git/lib/libmatroska \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep gettext + +# make sure rb files are used from sysroot, not from host +# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` +# we need to replace it too (a bit longer version without importing re) +RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }" +export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}" + +PACKAGECONFIG ??= "flac ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}" +PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac" +PACKAGECONFIG[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" + +EXTRA_OECONF = " --with-boost-libdir=${STAGING_LIBDIR} \ +" + +FILES_${PN} += "${datadir}" + +# remove some hardcoded searchpaths +do_configure_prepend() { + sed -i -e s:/usr/local/lib:${STAGING_LIBDIR}:g -e s:/usr/local/include:${STAGING_INCDIR}:g ${S}/ac/qt5.m4 +} + +# Yeah, no makefile +do_compile() { + LC_ALL="en_US.UTF-8" ${S}/drake ${PARALLEL_MAKE} +} + +do_install() { + LC_ALL="en_US.UTF-8" ${S}/drake install DESTDIR=${D} +} + +# | In file included from src/common/utf8_codecvt_facet.cpp:22:0: +# | 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' +# | BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, +# | ^ +PNBLACKLIST[mkvtoolnix] ?= "BROKEN: Failx to build with gcc-5" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb new file mode 100644 index 000000000..86ba52784 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb @@ -0,0 +1,26 @@ +SUMMARY = "cdparanoia library" +DESCRIPTION = "library used to read audio CDs, which is able to perform \ +error corrections, hence the name paranoia." +HOMEPAGE = "https://www.xiph.org/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d" + +SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \ + file://0001-Use-DESTDIR-in-install-Makefile-rule.patch \ + file://0002-interface-remove-C-reserved-keyword.patch \ +" +SRC_URI[md5sum] = "b304bbe8ab63373924a744eac9ebc652" +SRC_URI[sha256sum] = "005db45ef4ee017f5c32ec124f913a0546e77014266c6a1c50df902a55fe64df" + +# Uppercase letters are not allowed in the recipe name, thus the recipe can not be named cdparanoia-III and +# we need to add the path to the extracted sources explicitely: +S = "${WORKDIR}/cdparanoia-III-${PV}" + +# cdparanoia Makefile can not be used with several threads (because the static library target and the shared +# library target use object files which are compiled in the same directory, the object files are just removed +# between the compilation of those two targets) +PARALLEL_MAKE = "" + +inherit autotools-brokensep diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch new file mode 100644 index 000000000..7b0830034 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch @@ -0,0 +1,70 @@ +From 97c06ae955b270851f4fd2396c715f9c76591f37 Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Thu, 2 Apr 2015 10:15:08 +0200 +Subject: [PATCH] Use DESTDIR in "install" Makefile rule + +This change allows to perform installations in a sysroot folder, which is required e.g. by +the recipes inheriting yocto autotool class, and is an autotool standard: +make install DESTDIR=~/mysysroot + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + Makefile.in | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 3d235ad..df544c7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -63,28 +63,28 @@ slib: + cd paranoia && $(MAKE) slib + + install: +- $(INSTALL) -d -m 0755 $(BINDIR) +- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(BINDIR) +- $(INSTALL) -d -m 0755 $(MANDIR) +- $(INSTALL) -d -m 0755 $(MANDIR)/man1 +- $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(MANDIR)/man1 +- $(INSTALL) -d -m 0755 $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(INCLUDEDIR) +- $(INSTALL) -d -m 0755 $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/utils.h $(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) ++ $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so.0 + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so.0 + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so + + cdparanoia: $(OFILES) $(LIBDEP) + $(LD) $(CFLAGS) $(LDFLAGS) $(OFILES) \ +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch new file mode 100644 index 000000000..a5600a1c3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch @@ -0,0 +1,605 @@ +From 12ea28398f8e5d4a4a23c62d511fc4f53584e51d Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Tue, 7 Apr 2015 11:07:56 +0200 +Subject: [PATCH] interface: remove C++ reserved keyword + +Because "private" was used in cdda_interface.h, this header file could not be +compiled in C++. + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + interface/cdda_interface.h | 2 +- + interface/cooked_interface.c | 8 +-- + interface/interface.c | 8 +-- + interface/scan_devices.c | 22 ++++---- + interface/scsi_interface.c | 128 +++++++++++++++++++++---------------------- + interface/test_interface.c | 4 +- + 6 files changed, 86 insertions(+), 86 deletions(-) + +diff --git a/interface/cdda_interface.h b/interface/cdda_interface.h +index 8487cb7..b738825 100644 +--- a/interface/cdda_interface.h ++++ b/interface/cdda_interface.h +@@ -84,7 +84,7 @@ typedef struct cdrom_drive{ + int is_atapi; + int is_mmc; + +- cdda_private_data_t *private; ++ cdda_private_data_t *priv; /* private is a C++ reserved keyword */ + void *reserved; + unsigned char inqbytes[4]; + +diff --git a/interface/cooked_interface.c b/interface/cooked_interface.c +index de29055..ea9d0fc 100644 +--- a/interface/cooked_interface.c ++++ b/interface/cooked_interface.c +@@ -13,13 +13,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +diff --git a/interface/interface.c b/interface/interface.c +index e8a90cd..526c2a9 100644 +--- a/interface/interface.c ++++ b/interface/interface.c +@@ -39,9 +39,9 @@ int cdda_close(cdrom_drive *d){ + if(d->drive_model)free(d->drive_model); + if(d->cdda_fd!=-1)close(d->cdda_fd); + if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + + free(d); +@@ -127,7 +127,7 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, long beginsector, long sector + } + } + } +- if(ms)*ms=d->private->last_milliseconds; ++ if(ms)*ms=d->priv->last_milliseconds; + return(sectors); + } + +diff --git a/interface/scan_devices.c b/interface/scan_devices.c +index fc58110..5f6c4e3 100644 +--- a/interface/scan_devices.c ++++ b/interface/scan_devices.c +@@ -264,11 +264,11 @@ cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest, + d->interface=COOKED_IOCTL; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); + return(d); +@@ -674,15 +674,15 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; + d->messagedest = messagedest; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + if(use_sgio){ + d->interface=SGIO_SCSI; +- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); ++ d->priv->sg_buffer=(unsigned char *)(d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); + g_fd=d->cdda_fd=dup(d->ioctl_fd); + }else{ + version=verify_SG_version(d,messagedest,messages); +@@ -696,8 +696,8 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + } + + /* malloc our big buffer for scsi commands */ +- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + } + + { +@@ -772,9 +772,9 @@ cdda_identify_scsi_fail: + if(i_fd!=-1)close(i_fd); + if(g_fd!=-1)close(g_fd); + if(d){ +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + free(d); + } +@@ -821,7 +821,7 @@ cdrom_drive *cdda_identify_test(const char *filename, int messagedest, + d->interface=TEST_INTERFACE; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + d->drive_model=copystring("File based test interface"); + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model); + +diff --git a/interface/scsi_interface.c b/interface/scsi_interface.c +index adbb9bf..75d90d4 100644 +--- a/interface/scsi_interface.c ++++ b/interface/scsi_interface.c +@@ -15,13 +15,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +@@ -96,7 +96,7 @@ static void tweak_SG_buffer(cdrom_drive *d) { + static void clear_garbage(cdrom_drive *d){ + fd_set fdset; + struct timeval tv; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + int flag=0; + + /* clear out any possibly preexisting garbage */ +@@ -185,7 +185,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + struct timespec tv2; + int tret1,tret2; + int status = 0; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + long writebytes=SG_OFF+cmd_len+in_size; + + /* generic scsi device services */ +@@ -195,7 +195,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + memset(sg_hd,0,sizeof(sg_hd)); + memset(sense_buffer,0,SG_MAX_SENSE); +- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size); ++ memcpy(d->priv->sg_buffer,cmd,cmd_len+in_size); + sg_hd->twelve_byte = cmd_len == 12; + sg_hd->result = 0; + sg_hd->reply_len = SG_OFF + out_size; +@@ -209,7 +209,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + tell if the command failed. Scared yet? */ + + if(bytecheck && out_size>in_size){ +- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); ++ memset(d->priv->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); + /* the size does not remove cmd_len due to the way the kernel + driver copies buffers */ + writebytes+=(out_size-in_size); +@@ -243,7 +243,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + + sigprocmask (SIG_BLOCK, &(d->sigset), NULL ); +- tret1=clock_gettime(d->private->clock,&tv1); ++ tret1=clock_gettime(d->priv->clock,&tv1); + errno=0; + status = write(d->cdda_fd, sg_hd, writebytes ); + +@@ -289,7 +289,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + } + +- tret2=clock_gettime(d->private->clock,&tv2); ++ tret2=clock_gettime(d->priv->clock,&tv2); + errno=0; + status = read(d->cdda_fd, sg_hd, SG_OFF + out_size); + sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL ); +@@ -313,7 +313,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_size+cmd_lenprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -326,9 +326,9 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + errno=0; + if(tret1<0 || tret2<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; + } + return(0); + } +@@ -347,7 +347,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + + memset(&hdr,0,sizeof(hdr)); + memset(sense,0,sizeof(sense)); +- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size); ++ memcpy(d->priv->sg_buffer,cmd+cmd_len,in_size); + + hdr.cmdp = cmd; + hdr.cmd_len = cmd_len; +@@ -355,7 +355,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + hdr.mx_sb_len = SG_MAX_SENSE; + hdr.timeout = 50000; + hdr.interface_id = 'S'; +- hdr.dxferp = d->private->sg_buffer; ++ hdr.dxferp = d->priv->sg_buffer; + hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */ + + /* scary buffer fill hack */ +@@ -400,7 +400,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_sizeprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -412,7 +412,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + } + + /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */ +- /* d->private->last_milliseconds = hdr.duration; */ ++ /* d->priv->last_milliseconds = hdr.duration; */ + + errno = 0; + return 0; +@@ -445,9 +445,9 @@ static int test_unit_ready(cdrom_drive *d){ + + handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense); + +- key = d->private->sg_buffer[2] & 0xf; +- ASC = d->private->sg_buffer[12]; +- ASCQ = d->private->sg_buffer[13]; ++ key = d->priv->sg_buffer[2] & 0xf; ++ ASC = d->priv->sg_buffer[12]; ++ ASCQ = d->priv->sg_buffer[13]; + + if(key == 2 && ASC == 4 && ASCQ == 1) return 0; + return 1; +@@ -492,7 +492,7 @@ static int mode_sense_atapi(cdrom_drive *d,int size,int page){ + if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1); + + { +- unsigned char *b=d->private->sg_buffer; ++ unsigned char *b=d->priv->sg_buffer; + if(b[0])return(1); /* Handles only up to 256 bytes */ + if(b[6])return(1); /* Handles only up to 256 bytes */ + +@@ -604,8 +604,8 @@ static int mode_select(cdrom_drive *d,int density,int secsize){ + static unsigned int get_orig_sectorsize(cdrom_drive *d){ + if(mode_sense(d,12,0x01))return(-1); + +- d->orgdens = d->private->sg_buffer[4]; +- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]); ++ d->orgdens = d->priv->sg_buffer[4]; ++ return(d->orgsize = ((int)(d->priv->sg_buffer[10])<<8)+d->priv->sg_buffer[11]); + } + + /* switch CDROM scsi drives to given sector size */ +@@ -664,8 +664,8 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-4); + } + +- first=d->private->sg_buffer[2]; +- last=d->private->sg_buffer[3]; ++ first=d->priv->sg_buffer[2]; ++ last=d->priv->sg_buffer[3]; + tracks=last-first+1; + + if (last > MAXTRK || first > MAXTRK || last<0 || first<0) { +@@ -683,7 +683,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-5); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=i; +@@ -704,7 +704,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-2); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=0xAA; +@@ -738,7 +738,7 @@ static int scsi_read_toc2 (cdrom_drive *d){ + } + + /* copy to our structure and convert start sector */ +- tracks = d->private->sg_buffer[1]; ++ tracks = d->priv->sg_buffer[1]; + if (tracks > MAXTRK) { + cderror(d,"003: CDROM reporting illegal number of tracks\n"); + return(-3); +@@ -754,33 +754,33 @@ static int scsi_read_toc2 (cdrom_drive *d){ + return(-5); + } + +- d->disc_toc[i].bFlags = d->private->sg_buffer[10]; ++ d->disc_toc[i].bFlags = d->priv->sg_buffer[10]; + d->disc_toc[i].bTrack = i + 1; + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- (((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5])); ++ (((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5])); + } + + d->disc_toc[i].bFlags = 0; + d->disc_toc[i].bTrack = i + 1; +- memcpy (&foo, d->private->sg_buffer+2, 4); +- memcpy (&bar, d->private->sg_buffer+6, 4); ++ memcpy (&foo, d->priv->sg_buffer+2, 4); ++ memcpy (&bar, d->priv->sg_buffer+6, 4); + d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) + + be32_to_cpu(bar)); + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- ((((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5]))+ ++ ((((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5]))+ + +- ((((signed char)(d->private->sg_buffer[6])<<24) | +- (d->private->sg_buffer[7]<<16)| +- (d->private->sg_buffer[8]<<8)| +- (d->private->sg_buffer[9])))); ++ ((((signed char)(d->priv->sg_buffer[6])<<24) | ++ (d->priv->sg_buffer[7]<<16)| ++ (d->priv->sg_buffer[8]<<8)| ++ (d->priv->sg_buffer[9])))); + + + d->cd_extra = FixupTOC(d,tracks+1); +@@ -817,7 +817,7 @@ static int i_read_28 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -836,7 +836,7 @@ static int i_read_A8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -854,7 +854,7 @@ static int i_read_D4_10 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -872,7 +872,7 @@ static int i_read_D4_12 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -890,7 +890,7 @@ static int i_read_D5 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -908,7 +908,7 @@ static int i_read_D8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -922,7 +922,7 @@ static int i_read_mmc (cdrom_drive *d, void *p, long begin, long sectors, unsign + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -936,7 +936,7 @@ static int i_read_mmcB (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -950,7 +950,7 @@ static int i_read_mmc2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -964,7 +964,7 @@ static int i_read_mmc2B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -978,7 +978,7 @@ static int i_read_mmc3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -992,7 +992,7 @@ static int i_read_mmc3B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1026,7 +1026,7 @@ static int i_read_msf (cdrom_drive *d, void *p, long begin, long sectors, unsign + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1039,7 +1039,7 @@ static int i_read_msf2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1052,7 +1052,7 @@ static int i_read_msf3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1275,7 +1275,7 @@ long scsi_read_msf3 (cdrom_drive *d, void *p, long begin, + static int count_2352_bytes(cdrom_drive *d){ + long i; + for(i=2351;i>=0;i--) +- if(d->private->sg_buffer[i]!=(unsigned char)'\177') ++ if(d->priv->sg_buffer[i]!=(unsigned char)'\177') + return(((i+3)>>2)<<2); + + return(0); +@@ -1284,7 +1284,7 @@ static int count_2352_bytes(cdrom_drive *d){ + static int verify_nonzero(cdrom_drive *d){ + long i,flag=0; + for(i=0;i<2352;i++) +- if(d->private->sg_buffer[i]!=0){ ++ if(d->priv->sg_buffer[i]!=0){ + flag=1; + break; + } +@@ -1625,7 +1625,7 @@ static int check_mmc(cdrom_drive *d){ + d->is_mmc=0; + if(mode_sense(d,22,0x2A)==0){ + +- b=d->private->sg_buffer; ++ b=d->priv->sg_buffer; + b+=b[3]+4; + + if((b[0]&0x3F)==0x2A){ +@@ -1673,7 +1673,7 @@ unsigned char *scsi_inquiry(cdrom_drive *d){ + cderror(d,"008: Unable to identify CDROM model\n"); + return(NULL); + } +- return (d->private->sg_buffer); ++ return (d->priv->sg_buffer); + } + + int scsi_init_drive(cdrom_drive *d){ +@@ -1742,8 +1742,8 @@ int scsi_init_drive(cdrom_drive *d){ + check_cache(d); + + d->error_retry=1; +- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=realloc(d->priv->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + d->report_all=1; + return(0); + } +diff --git a/interface/test_interface.c b/interface/test_interface.c +index 11bec25..e1cefaa 100644 +--- a/interface/test_interface.c ++++ b/interface/test_interface.c +@@ -66,9 +66,9 @@ static long test_read(cdrom_drive *d, void *p, long begin, long sectors){ + if(!fd)fd=fdopen(d->cdda_fd,"r"); + + if(beginprivate->last_milliseconds=20; ++ d->priv->last_milliseconds=20; + else +- d->private->last_milliseconds=sectors; ++ d->priv->last_milliseconds=sectors; + + #ifdef CDDA_TEST_UNDERRUN + sectors-=1; +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch new file mode 100644 index 000000000..49350fe18 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch @@ -0,0 +1,17 @@ +In a cross compile environment adding paths like /usr are not correct. +With this patch we make it so that its relative to sysroot if the compiler +defines one. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +Index: a/src/Makefile.am +=================================================================== +--- a/src/Makefile.am 2013-02-08 22:35:08.000000000 -0800 ++++ b/src/Makefile.am 2013-10-13 01:31:38.812869080 -0700 +@@ -33,5 +33,5 @@ + video_encode.c video_encode.h \ + subtitles.c subtitles.h + +-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) ++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) + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb new file mode 100755 index 000000000..a9f52cadb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Control and capture GUI for IIDC compliant cameras" +HOMEPAGE = "http://damien.douxchamps.net/ieee1394/coriander/" +SECTION = "applications" +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "gtk+ libgnomeui libraw1394 libdc1394 libxv tiff" + +PNBLACKLIST[coriander] ?= "BROKEN: fails to use SDL probably because libsdl-config was removed, error: unknown type name 'SDL_Overlay'" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/coriander-2/${PV}/${BP}.tar.gz \ + file://cross-compile.patch \ + " + +SRC_URI[md5sum] = "431d98fb013217681f97ade168201fb8" +SRC_URI[sha256sum] = "5c7fd31cb58d398e2742352bf1ffbd2ca22e06686c6668ecfd437735c2b79123" + +inherit autotools gettext diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb new file mode 100644 index 000000000..f23bc6ca8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "D-Bus connector for dLeyna libraries" +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5" + +DEPENDS = "glib-2.0 dbus dleyna-core" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/dleyna-1.0/connectors/*.so" +FILES_${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la" +FILES_${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb new file mode 100644 index 000000000..a3b279372 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Utility functions for dLeyna libraries" +DESCRIPTION = "dleyna-core is a library of utility functions that are used \ +by the higher level dLeyna libraries that communicate with DLNA devices, \ +e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \ +and task management and an IPC asbstraction API." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b" + +DEPENDS = "glib-2.0 gupnp" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "27a3786ec013f64fd58243410a60798f824acec3" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb new file mode 100644 index 000000000..b30aee9fb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "DLNA renderer libraries" +DESCRIPTION = "dleyna-renderer is a library for implementing services \ +that allow clients to discover and manipulate Digital Media Renderers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +CFLAGS += " -I${S}" + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb new file mode 100644 index 000000000..ae167650f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "DLNA server libraries" +DESCRIPTION = "dleyna-server is a library for implementing services that \ +allow clients to discover, browse and manipulate Digital Media Servers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/server/server.c;endline=22;md5=dfa6dc3f914206c2408c0510c234f8c8" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "38651783914c76bd861f7fe8651b25e3986d7be8" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.5.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.5.0.bb new file mode 100644 index 000000000..baaf42b28 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.5.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "discover, browse and search UPNP/DLNA media servers" +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://src/media-service-upnp.c;beginline=1;endline=21;md5=584eb103b4f6f3432c43d169b6a123a1" + +DEPENDS = "dbus glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "0dbc74a79aa07a8f8c7d32e1d2de6c4d3a0f95bc" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +do_install_append() { + install -d ${D}${bindir} + install -m 0755 dms-info ${D}${bindir} +} + +PACKAGES =+ "${PN}-tests" + +FILES_${PN} += "${datadir}/dbus-1/services/*.service" +FILES_${PN}-tests = "${bindir}/dms-info" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb new file mode 100644 index 000000000..68d59faca --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb @@ -0,0 +1,29 @@ +SUMMARY = "discover and manipulate UPNP/DLNA media renderers" +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://src/renderer-service-upnp.c;beginline=1;endline=21;md5=c25c3082684eb4ca87474b7528c6dc15" + +PNBLACKLIST[renderer-service-upnp] ?= "BROKEN: doesn't build with B!=S (trying to install rendererconsole.py from ${B} instead of ${S})" + +DEPENDS = "dbus glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "4a0b1d7cd8e22d3cb0e09c77c344ceccbcbbd34f" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +do_install_append() { + install -d ${D}${bindir} + install -m 0755 test/rendererconsole.py ${D}${bindir} +} + +PACKAGES =+ "${PN}-tests" + +RDEPENDS_${PN}-tests = "python-dbus python-json python-misc python-pkgutil python-xml" + +FILES_${PN} += "${datadir}/dbus-1/services/*.service" +# When we have GI, package cap +FILES_${PN}-tests = "${bindir}/rendererconsole.py" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb new file mode 100644 index 000000000..d96c1a401 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb @@ -0,0 +1,21 @@ +SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)" +SECTION = "libs" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0" + +inherit autotools-brokensep + +SRC_URI = "${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \ + file://build-fix.patch" + +SRC_URI[md5sum] = "80763728d392c7d789cde25614c878f6" +SRC_URI[sha256sum] = "c5141199f4cfb17d749c36ba8cfe4b25f838da67c22f0fec40228b6b9c3d19df" + +PACKAGES =+ "lib${BPN} lib${BPN}-dev" + +FILES_${PN} = " ${bindir}/faac " +FILES_lib${PN} = " ${libdir}/libfaac.so.*" +FILES_lib${PN}-dev = "${includedir}/faac.h ${includedir}/faaccfg.h ${libdir}/libfaac.so ${libdir}/libfaac.la" +FILES_lib${PN}-staticdev = "${libdir}/libfaac.a" + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch new file mode 100644 index 000000000..83cff8f89 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch @@ -0,0 +1,332 @@ +Patch fixing build error and warnings. Error consisted of redefining +strcasestr function from string.h. Warnings consisted of deprecated conversions +of string constants to char*, using '%llu' for type uint64_t (which on 64 bit +systems, is defined as unsigned long int by stdint.h), and using '==' for +equality of two strings. + +Patch originally from Debian. + +Upstream-Status: Pending + +========================================================================== +--- a/common/mp4v2/mpeg4ip.h ++++ b/common/mp4v2/mpeg4ip.h +@@ -120,14 +120,6 @@ + #endif + #include + +-#ifdef __cplusplus +-extern "C" { +-#endif +-char *strcasestr(const char *haystack, const char *needle); +-#ifdef __cplusplus +-} +-#endif +- + #define OPEN_RDWR O_RDWR + #define OPEN_CREAT O_CREAT + #define OPEN_RDONLY O_RDONLY +@@ -135,7 +127,6 @@ + #define closesocket close + #define IOSBINARY ios::bin + +-#if SIZEOF_LONG == 8 + #define MAX_UINT64 -1LU + #define D64F "ld" + #define U64F "lu" +@@ -143,15 +134,6 @@ + + #define TO_D64(a) (a##L) + #define TO_U64(a) (a##LU) +-#else +-#define MAX_UINT64 -1LLU +-#define D64F "lld" +-#define U64F "llu" +-#define X64F "llx" +- +-#define TO_D64(a) (a##LL) +-#define TO_U64(a) (a##LLU) +-#endif + + #ifdef HAVE_FPOS_T___POS + #define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((fpos).__pos) +--- a/configure.in ++++ b/configure.in +@@ -4,6 +4,9 @@ + AM_INIT_AUTOMAKE + + AM_CONFIG_HEADER(config.h) ++AH_TOP([#ifndef CONFIG_H ++#define CONFIG_H]) ++AH_BOTTOM([#endif /* CONFIG_H */]) + + AC_ARG_WITH( mp4v2, [ --with-mp4v2 compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes) + AC_ARG_ENABLE( drm, [ --enable-drm Digital Radio Mondiale support], enable_drm=$enableval, enable_drm=no) +--- a/common/mp4v2/atom_avcC.cpp ++++ b/common/mp4v2/atom_avcC.cpp +@@ -29,7 +29,7 @@ + class SizeTableProperty : public MP4TableProperty + { + public: +- SizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : ++ SizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : + MP4TableProperty(name, pCountProperty) {}; + protected: + void ReadEntry(MP4File *pFile, u_int32_t index) { +--- a/common/mp4v2/atom_ohdr.cpp ++++ b/common/mp4v2/atom_ohdr.cpp +@@ -21,7 +21,7 @@ + \param useCountedFormat counted format flag. + \param useUnicode unicode flag. + */ +- OhdrMP4StringProperty(char* name, bool useCountedFormat = false, ++ OhdrMP4StringProperty(const char* name, bool useCountedFormat = false, + bool useUnicode = false): MP4StringProperty(name, useCountedFormat, + useUnicode) { + } +--- a/common/mp4v2/atom_stz2.cpp ++++ b/common/mp4v2/atom_stz2.cpp +@@ -30,7 +30,7 @@ + class MP4HalfSizeTableProperty : public MP4TableProperty + { + public: +- MP4HalfSizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : ++ MP4HalfSizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : + MP4TableProperty(name, pCountProperty) {}; + + // The count is half the actual size +--- a/common/mp4v2/mp4atom.cpp ++++ b/common/mp4v2/mp4atom.cpp +@@ -806,7 +806,7 @@ + AddProperty(new MP4Integer24Property("flags")); + } + +-void MP4Atom::AddReserved(char* name, u_int32_t size) ++void MP4Atom::AddReserved(const char* name, u_int32_t size) + { + MP4BytesProperty* pReserved = new MP4BytesProperty(name, size); + pReserved->SetReadOnly(); +--- a/common/mp4v2/mp4atom.h ++++ b/common/mp4v2/mp4atom.h +@@ -204,7 +204,7 @@ + + void AddVersionAndFlags(); + +- void AddReserved(char* name, u_int32_t size); ++ void AddReserved(const char* name, u_int32_t size); + + void ExpectChildAtom(const char* name, + bool mandatory, bool onlyOne = true); +--- a/common/mp4v2/mp4file.cpp ++++ b/common/mp4v2/mp4file.cpp +@@ -718,7 +718,7 @@ + } + } + +-void MP4File::ProtectWriteOperation(char* where) ++void MP4File::ProtectWriteOperation(const char* where) + { + if (m_mode == 'r') { + throw new MP4Error("operation not permitted in read mode", where); +@@ -1274,7 +1274,7 @@ + } + + // NULL terminated list of brands which require the IODS atom +-char *brandsWithIods[] = { "mp42", ++const char *brandsWithIods[] = { "mp42", + "isom", + NULL}; + +@@ -2211,11 +2211,11 @@ + for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { + if (!strcmp(normType, m_pTracks[i]->GetType())) { + if (subType) { +- if (normType == MP4_AUDIO_TRACK_TYPE) { ++ if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { + if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { + continue; + } +- } else if (normType == MP4_VIDEO_TRACK_TYPE) { ++ } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { + if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { + continue; + } +@@ -2278,11 +2278,11 @@ + for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { + if (!strcmp(normType, m_pTracks[i]->GetType())) { + if (subType) { +- if (normType == MP4_AUDIO_TRACK_TYPE) { ++ if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { + if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { + continue; + } +- } else if (normType == MP4_VIDEO_TRACK_TYPE) { ++ } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { + if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { + continue; + } +--- a/common/mp4v2/mp4file.h ++++ b/common/mp4v2/mp4file.h +@@ -700,7 +700,7 @@ + const char* TempFileName(); + void Rename(const char* existingFileName, const char* newFileName); + +- void ProtectWriteOperation(char* where); ++ void ProtectWriteOperation(const char* where); + + void FindIntegerProperty(const char* name, + MP4Property** ppProperty, u_int32_t* pIndex = NULL); +--- a/common/mp4v2/mp4property.cpp ++++ b/common/mp4v2/mp4property.cpp +@@ -313,7 +313,7 @@ + + // MP4StringProperty + +-MP4StringProperty::MP4StringProperty(char* name, ++MP4StringProperty::MP4StringProperty(const char* name, + bool useCountedFormat, bool useUnicode) + : MP4Property(name) + { +@@ -420,7 +420,7 @@ + + // MP4BytesProperty + +-MP4BytesProperty::MP4BytesProperty(char* name, u_int32_t valueSize, ++MP4BytesProperty::MP4BytesProperty(const char* name, u_int32_t valueSize, + u_int32_t defaultValueSize) + : MP4Property(name) + { +@@ -549,7 +549,7 @@ + + // MP4TableProperty + +-MP4TableProperty::MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty) ++MP4TableProperty::MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty) + : MP4Property(name) + { + m_pCountProperty = pCountProperty; +@@ -725,7 +725,7 @@ + + // MP4DescriptorProperty + +-MP4DescriptorProperty::MP4DescriptorProperty(char* name, ++MP4DescriptorProperty::MP4DescriptorProperty(const char* name, + u_int8_t tagsStart, u_int8_t tagsEnd, bool mandatory, bool onlyOne) + : MP4Property(name) + { +--- a/common/mp4v2/mp4property.h ++++ b/common/mp4v2/mp4property.h +@@ -100,7 +100,7 @@ + + class MP4IntegerProperty : public MP4Property { + protected: +- MP4IntegerProperty(char* name) ++ MP4IntegerProperty(const char* name) + : MP4Property(name) { }; + + public: +@@ -118,7 +118,7 @@ + #define MP4INTEGER_PROPERTY_DECL2(isize, xsize) \ + class MP4Integer##xsize##Property : public MP4IntegerProperty { \ + public: \ +- MP4Integer##xsize##Property(char* name) \ ++ MP4Integer##xsize##Property(const char* name) \ + : MP4IntegerProperty(name) { \ + SetCount(1); \ + m_values[0] = 0; \ +@@ -188,7 +188,7 @@ + + class MP4BitfieldProperty : public MP4Integer64Property { + public: +- MP4BitfieldProperty(char* name, u_int8_t numBits) ++ MP4BitfieldProperty(const char* name, u_int8_t numBits) + : MP4Integer64Property(name) { + ASSERT(numBits != 0); + ASSERT(numBits <= 64); +@@ -213,7 +213,7 @@ + + class MP4Float32Property : public MP4Property { + public: +- MP4Float32Property(char* name) ++ MP4Float32Property(const char* name) + : MP4Property(name) { + m_useFixed16Format = false; + m_useFixed32Format = false; +@@ -280,7 +280,7 @@ + + class MP4StringProperty : public MP4Property { + public: +- MP4StringProperty(char* name, ++ MP4StringProperty(const char* name, + bool useCountedFormat = false, bool useUnicode = false); + + ~MP4StringProperty(); +@@ -355,7 +355,7 @@ + + class MP4BytesProperty : public MP4Property { + public: +- MP4BytesProperty(char* name, u_int32_t valueSize = 0, ++ MP4BytesProperty(const char* name, u_int32_t valueSize = 0, + u_int32_t defaultValueSize = 0); + + ~MP4BytesProperty(); +@@ -419,7 +419,7 @@ + + class MP4TableProperty : public MP4Property { + public: +- MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty); ++ MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty); + + ~MP4TableProperty(); + +@@ -469,7 +469,7 @@ + + class MP4DescriptorProperty : public MP4Property { + public: +- MP4DescriptorProperty(char* name = NULL, ++ MP4DescriptorProperty(const char* name = NULL, + u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, + bool mandatory = false, bool onlyOne = false); + +@@ -531,7 +531,7 @@ + + class MP4QosQualifierProperty : public MP4DescriptorProperty { + public: +- MP4QosQualifierProperty(char* name = NULL, ++ MP4QosQualifierProperty(const char* name = NULL, + u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, + bool mandatory = false, bool onlyOne = false) : + MP4DescriptorProperty(name, tagsStart, tagsEnd, mandatory, onlyOne) { } +--- a/common/mp4v2/mp4track.cpp ++++ b/common/mp4v2/mp4track.cpp +@@ -1360,7 +1360,7 @@ + } + } + +-MP4Atom* MP4Track::AddAtom(char* parentName, char* childName) ++MP4Atom* MP4Track::AddAtom(const char* parentName, const char* childName) + { + MP4Atom* pChildAtom = MP4Atom::CreateAtom(childName); + +--- a/common/mp4v2/mp4track.h ++++ b/common/mp4v2/mp4track.h +@@ -168,7 +168,7 @@ + void UpdateSyncSamples(MP4SampleId sampleId, + bool isSyncSample); + +- MP4Atom* AddAtom(char* parentName, char* childName); ++ MP4Atom* AddAtom(const char* parentName, const char* childName); + + void UpdateDurations(MP4Duration duration); + MP4Duration ToMovieDuration(MP4Duration trackDuration); +--- a/common/mp4v2/ocidescriptors.cpp ++++ b/common/mp4v2/ocidescriptors.cpp +@@ -171,7 +171,7 @@ + + class MP4CreatorTableProperty : public MP4TableProperty { + public: +- MP4CreatorTableProperty(char* name, MP4Integer8Property* pCountProperty) : ++ MP4CreatorTableProperty(const char* name, MP4Integer8Property* pCountProperty) : + MP4TableProperty(name, pCountProperty) { + }; + protected: diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb new file mode 100644 index 000000000..54e8697c4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb @@ -0,0 +1,23 @@ +SUMMARY = "Fluidsynth is a software synthesizer" +HOMEPAGE = "http://www.fluidsynth.org/" +SECTION = "libs/multimedia" +LICENSE = "LGPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e198e9aac94943d0ec29a7dae8c29416" + +DEPENDS = "alsa-lib ncurses glib-2.0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}/${BP}.tar.gz" +SRC_URI[md5sum] = "ae5aca6de824b4173667cbd3a310b263" +SRC_URI[sha256sum] = "50853391d9ebeda9b4db787efb23f98b1e26b7296dd2bb5d0d96b5bccee2171c" + +inherit autotools-brokensep pkgconfig lib_package + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" +PACKAGECONFIG[sndfile] = "--enable-libsndfile-support,--disable-libsndfile-support,libsndfile1" +PACKAGECONFIG[jack] = "--enable-jack-support,--disable-jack-support,jack" +PACKAGECONFIG[pulseaudio] = "--enable-pulse-support,--disable-pulse-support,pulseaudio" +PACKAGECONFIG[portaudio] = "--enable-portaudio-support,--disable-portaudio-support,portaudio-v19" + +do_configure_prepend () { + rm -f ${S}/m4/* +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch new file mode 100644 index 000000000..7da0e1452 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-aacdec-check-channel-count.patch @@ -0,0 +1,34 @@ +gst-ffmpeg: aacdec: check channel count + +Prevent out of array accesses + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 96f452ac647dae33c53c242ef3266b65a9beafb6) + +Upstream-Status: Backport + +Signed-off-by: Yue Tao +--- + libavcodec/aacdec.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c +index 239153a..6c17c33 100644 +--- a/gst-libs/ext/libav/libavcodec/aacdec.c ++++ b/gst-libs/ext/libav/libavcodec/aacdec.c +@@ -914,6 +914,11 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) + } + } + ++ if (avctx->channels > MAX_CHANNELS) { ++ av_log(avctx, AV_LOG_ERROR, "Too many channels\n"); ++ return AVERROR_INVALIDDATA; ++ } ++ + AAC_INIT_VLC_STATIC( 0, 304); + AAC_INIT_VLC_STATIC( 1, 270); + AAC_INIT_VLC_STATIC( 2, 550); +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch new file mode 100644 index 000000000..10ce0f332 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alac-fix-nb_samples-order-case.patch @@ -0,0 +1,30 @@ +From e0884eadf6a15e93142131b695f48776f9a0ac31 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sat, 10 Nov 2012 17:14:04 +0100 +Subject: [PATCH] alac: fix nb_samples < order case + +Upstream-Status: Backport + +Commit e0884eadf6a15e93142131b695f48776f9a0ac31 release/1.0 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit fd4f4923cce6a2cbf4f48640b4ac706e614a1594) +--- + libavcodec/alac.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/alac.c b/libavcodec/alac.c +index 9cd1737..e8e844a 100644 +--- a/gst-libs/ext/libav/libavcodec/alac.c ++++ b/gst-libs/ext/libav/libavcodec/alac.c +@@ -278,7 +278,7 @@ static void predictor_decompress_fir_ada + + /* read warm-up samples */ + if (predictor_coef_num > 0) +- for (i = 0; i < predictor_coef_num; i++) { ++ for (i = 0; i < predictor_coef_num && i < output_size; i++) { + int32_t val; + + val = buffer_out[i] + error_buffer[i+1]; +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch new file mode 100644 index 000000000..73980f426 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-alsdec-check-block-length.patch @@ -0,0 +1,61 @@ +From 6df0d3e2916c223dbe4262bf1b876dff1cb3f980 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Wed, 12 Dec 2012 12:28:45 +0100 +Subject: [PATCH] alsdec: check block length + +Upstream-Status: Backport + +Commit 6df0d3e2916c223dbe4262bf1b876dff1cb3f980 release/1.0 + +Fix writing over the end + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 0ceca269b66ec12a23bf0907bd2c220513cdbf16) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/alsdec.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c +index 46dd0b4..1095b01 100644 +--- a/gst-libs/ext/libav/libavcodec/alsdec.c ++++ b/gst-libs/ext/libav/libavcodec/alsdec.c +@@ -552,12 +552,15 @@ static void get_block_sizes(ALSDecContext *ctx, unsigned int *div_blocks, + + /** Read the block data for a constant block + */ +-static void read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd) ++static int read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd) + { + ALSSpecificConfig *sconf = &ctx->sconf; + AVCodecContext *avctx = ctx->avctx; + GetBitContext *gb = &ctx->gb; + ++ if (bd->block_length <= 0) ++ return -1; ++ + *bd->raw_samples = 0; + *bd->const_block = get_bits1(gb); // 1 = constant value, 0 = zero block (silence) + bd->js_blocks = get_bits1(gb); +@@ -572,6 +575,8 @@ static void read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd) + + // ensure constant block decoding by reusing this field + *bd->const_block = 1; ++ ++ return 0; + } + + +@@ -971,7 +976,8 @@ static int read_block(ALSDecContext *ctx, ALSBlockData *bd) + if (read_var_block_data(ctx, bd)) + return -1; + } else { +- read_const_block_data(ctx, bd); ++ if (read_const_block_data(ctx, bd) < 0) ++ return -1; + } + + return 0; +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch new file mode 100644 index 000000000..42cb5f40b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-atrac3dec-Check-coding-mode-against-channels.patch @@ -0,0 +1,37 @@ +From 2502914c5f8eb77659d7c0868396862557a63245 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 9 Nov 2012 13:26:20 +0100 +Subject: [PATCH] atrac3dec: Check coding mode against channels. + +Upstream-Status: Backport + +Commit 2502914c5f8eb77659d7c0868396862557a63245 release/1.0 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 13451f5520ce6b0afde861b2285dda659f8d4fb4) + +Conflicts: + + libavcodec/atrac3.c +--- + libavcodec/atrac3.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c +index 7d076be..1da4c78 100644 +--- a/gst-libs/ext/libav/libavcodec/atrac3.c ++++ b/gst-libs/ext/libav/libavcodec/atrac3.c +@@ -955,6 +955,11 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) + } + /* Check the extradata. */ + ++ if (q->codingMode == JOINT_STEREO && avctx->channels < 2) { ++ av_log(avctx, AV_LOG_ERROR, "Invalid coding mode\n"); ++ return AVERROR_INVALIDDATA; ++ } ++ + if (q->atrac3version != 4) { + av_log(avctx,AV_LOG_ERROR,"Version %d != 4.\n",q->atrac3version); + return AVERROR_INVALIDDATA; +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch new file mode 100644 index 000000000..31fa51a3e --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch @@ -0,0 +1,40 @@ +From a99aff4e4bbef8e64b51f267cd1769214e1b4e80 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 30 Aug 2013 23:40:47 +0200 +Subject: [PATCH] avcodec/dsputil: fix signedness in sizeof() comparissions + +Signed-off-by: Michael Niedermayer +(cherry picked from commit 454a11a1c9c686c78aa97954306fb63453299760) + +Upstream-Status: Backport + +Signed-off-by: Michael Niedermayer +--- + libavcodec/dsputil.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c +index 53dc2eb..6264832 100644 +--- a/gst-libs/ext/libav/libavcodec/dsputil.c ++++ b/gst-libs/ext/libav/libavcodec/dsputil.c +@@ -1912,7 +1912,7 @@ void ff_set_cmp(DSPContext* c, me_cmp_func *cmp, int type){ + + static void add_bytes_c(uint8_t *dst, uint8_t *src, int w){ + long i; +- for(i=0; i<=w-sizeof(long); i+=sizeof(long)){ ++ for(i=0; i<=w-(int)sizeof(long); i+=sizeof(long)){ + long a = *(long*)(src+i); + long b = *(long*)(dst+i); + *(long*)(dst+i) = ((a&pb_7f) + (b&pb_7f)) ^ ((a^b)&pb_80); +@@ -1937,7 +1937,7 @@ static void diff_bytes_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w){ + } + }else + #endif +- for(i=0; i<=w-sizeof(long); i+=sizeof(long)){ ++ for(i=0; i<=w-(int)sizeof(long); i+=sizeof(long)){ + long a = *(long*)(src1+i); + long b = *(long*)(src2+i); + *(long*)(dst+i) = ((a|pb_80) - (b&pb_7f)) ^ ((a^b^pb_80)&pb_80); +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch new file mode 100644 index 000000000..b0a3fb10c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch @@ -0,0 +1,50 @@ +From 573d5fdedae72bf59d8c0b0766fdee171063d36f Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sun, 16 Feb 2014 23:08:52 +0100 +Subject: [PATCH] avcodec/msrle: use av_image_get_linesize() to calculate the + linesize + +Upstream-Status: Backport + +Commit 573d5fdedae72bf59d8c0b0766fdee171063d36f release/0.9 + +Fixes out of array access +Fixes: 14a74a0a2dc67ede543f0e35d834fbbe-asan_heap-oob_49572c_556_cov_215466444_44_001_engine_room.mov +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit c919e1ca2ecfc47d796382973ba0e48b8f6f92a2) + +Conflicts: + + libavcodec/msrle.c +(cherry picked from commit bc1c8ec5e65098fd2ccd8456f667151dfc9cda42) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/msrle.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/libavcodec/msrle.c b/libavcodec/msrle.c +index 30159bb..c39ae7b 100644 +--- a/gst-libs/ext/libav/libavcodec/msrle.c ++++ b/gst-libs/ext/libav/libavcodec/msrle.c +@@ -35,6 +35,7 @@ + #include "avcodec.h" + #include "dsputil.h" + #include "msrledec.h" ++#include "libavutil/imgutils.h" + + typedef struct MsrleContext { + AVCodecContext *avctx; +@@ -107,7 +108,7 @@ static int msrle_decode_frame(AVCodecContext *avctx, + + /* FIXME how to correctly detect RLE ??? */ + if (avctx->height * istride == avpkt->size) { /* assume uncompressed */ +- int linesize = avctx->width * avctx->bits_per_coded_sample / 8; ++ int linesize = av_image_get_linesize(avctx->pix_fmt, avctx->width, 0); + uint8_t *ptr = s->frame.data[0]; + uint8_t *buf = avpkt->data + (avctx->height-1)*istride; + int i, j; +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch new file mode 100644 index 000000000..5ff65834e --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-parser-reset-indexes-on-realloc-failure.patch @@ -0,0 +1,50 @@ +gst-ffmpeg: avcodec/parser: reset indexes on realloc failure + +Fixes Ticket2982 + +Signed-off-by: Michael Niedermayer +(cherry picked from commit f31011e9abfb2ae75bb32bc44e2c34194c8dc40a) + +Signed-off-by: Michael Niedermayer + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +--- + libavcodec/parser.c | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/parser.c b/libavcodec/parser.c +index 2c6de6e..66eca06 100644 +--- a/gst-libs/ext/libav/libavcodec/parser.c ++++ b/gst-libs/ext/libav/libavcodec/parser.c +@@ -241,8 +241,10 @@ int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_s + if(next == END_NOT_FOUND){ + void* new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, (*buf_size) + pc->index + FF_INPUT_BUFFER_PADDING_SIZE); + +- if(!new_buffer) ++ if(!new_buffer) { ++ pc->index = 0; + return AVERROR(ENOMEM); ++ } + pc->buffer = new_buffer; + memcpy(&pc->buffer[pc->index], *buf, *buf_size); + pc->index += *buf_size; +@@ -255,9 +257,11 @@ int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_s + /* append to buffer */ + if(pc->index){ + void* new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size, next + pc->index + FF_INPUT_BUFFER_PADDING_SIZE); +- +- if(!new_buffer) ++ if(!new_buffer) { ++ pc->overread_index = ++ pc->index = 0; + return AVERROR(ENOMEM); ++ } + pc->buffer = new_buffer; + if (next > -FF_INPUT_BUFFER_PADDING_SIZE) + memcpy(&pc->buffer[pc->index], *buf, +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch new file mode 100644 index 000000000..7f6eb4888 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch @@ -0,0 +1,81 @@ +gst-ffmpeg: avcodec/rpza: Perform pointer advance and checks before + using the pointers + +Fixes out of array accesses +Fixes Ticket2850 + +Signed-off-by: Michael Niedermayer +(cherry picked from commit 3819db745da2ac7fb3faacb116788c32f4753f34) + +Signed-off-by: Michael Niedermayer + +Upstream-Status: Backport + +Singed-off-by: Yue Tao + +--- + libavcodec/rpza.c | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libavcodec/rpza.c b/libavcodec/rpza.c +index 635b406..f291a95 100644 +--- a/gst-libs/ext/libav/libavcodec/rpza.c ++++ b/gst-libs/ext/libav/libavcodec/rpza.c +@@ -83,7 +83,7 @@ static void rpza_decode_stream(RpzaContext *s) + unsigned short *pixels = (unsigned short *)s->frame.data[0]; + + int row_ptr = 0; +- int pixel_ptr = 0; ++ int pixel_ptr = -4; + int block_ptr; + int pixel_x, pixel_y; + int total_blocks; +@@ -139,6 +139,7 @@ static void rpza_decode_stream(RpzaContext *s) + colorA = AV_RB16 (&s->buf[stream_ptr]); + stream_ptr += 2; + while (n_blocks--) { ++ ADVANCE_BLOCK() + block_ptr = row_ptr + pixel_ptr; + for (pixel_y = 0; pixel_y < 4; pixel_y++) { + for (pixel_x = 0; pixel_x < 4; pixel_x++){ +@@ -147,7 +148,6 @@ static void rpza_decode_stream(RpzaContext *s) + } + block_ptr += row_inc; + } +- ADVANCE_BLOCK(); + } + break; + +@@ -184,6 +184,7 @@ static void rpza_decode_stream(RpzaContext *s) + color4[2] |= ((21 * ta + 11 * tb) >> 5); + + while (n_blocks--) { ++ ADVANCE_BLOCK(); + block_ptr = row_ptr + pixel_ptr; + for (pixel_y = 0; pixel_y < 4; pixel_y++) { + index = s->buf[stream_ptr++]; +@@ -194,12 +195,12 @@ static void rpza_decode_stream(RpzaContext *s) + } + block_ptr += row_inc; + } +- ADVANCE_BLOCK(); + } + break; + + /* Fill block with 16 colors */ + case 0x00: ++ ADVANCE_BLOCK(); + block_ptr = row_ptr + pixel_ptr; + for (pixel_y = 0; pixel_y < 4; pixel_y++) { + for (pixel_x = 0; pixel_x < 4; pixel_x++){ +@@ -213,7 +214,6 @@ static void rpza_decode_stream(RpzaContext *s) + } + block_ptr += row_inc; + } +- ADVANCE_BLOCK(); + break; + + /* Unknown opcode */ +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch new file mode 100644 index 000000000..3ca6fc4dc --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avcodec-smc-fix-off-by-1-error.patch @@ -0,0 +1,32 @@ +From c17a0ad1df15a94d0b1239adc2afb593bdf0a153 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 22:50:45 +0200 +Subject: [PATCH 1/2] avcodec/smc: fix off by 1 error + +Upstream-Status: Backport + +Fixes out of array access +Fixes: asan_heap-oob_1685bf0_5_asan_heap-oob_1f35116_430_smc.mov + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/smc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst-libs/ext/libav/libavcodec/smc.c b/gst-libs/ext/libav/libavcodec/smc.c +index 3cd5e53..dec9f71 100644 +--- a/gst-libs/ext/libav/libavcodec/smc.c ++++ b/gst-libs/ext/libav/libavcodec/smc.c +@@ -69,7 +69,7 @@ typedef struct SmcContext { + row_ptr += stride * 4; \ + } \ + total_blocks--; \ +- if (total_blocks < 0) \ ++ if (total_blocks < 0 + !!n_blocks) \ + { \ + av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went negative (this should not happen)\n"); \ + return; \ +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch new file mode 100644 index 000000000..68bb66e4e --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch @@ -0,0 +1,69 @@ +From 12770701856a05b6b3cd706f708f8e9a4e8a1336 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Thu, 13 Feb 2014 13:59:51 +0100 +Subject: [PATCH] avformat/mpegtsenc: Check data array size in + mpegts_write_pmt() + +Upstream-Status: Backport + +COmmit 12770701856a05b6b3cd706f708f8e9a4e8a1336 release/0.11 + +Prevents out of array writes + +Signed-off-by: Michael Niedermayer +(cherry picked from commit 842b6c14bcfc1c5da1a2d288fd65386eb8c158ad) + +Conflicts: + + libavformat/mpegtsenc.c +(cherry picked from commit e87de3f50b765134588d0b048c32ed4b8acc16fb) + +Signed-off-by: Michael Niedermayer +--- + libavformat/mpegtsenc.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c +index 793e205..a12d19f 100644 +--- a/gst-libs/ext/libav/libavformat/mpegtsenc.c ++++ b/gst-libs/ext/libav/libavformat/mpegtsenc.c +@@ -240,7 +240,7 @@ static void mpegts_write_pat(AVFormatContext *s) + data, q - data); + } + +-static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) ++static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) + { + // MpegTSWrite *ts = s->priv_data; + uint8_t data[1012], *q, *desc_length_ptr, *program_info_length_ptr; +@@ -293,6 +293,10 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) + stream_type = STREAM_TYPE_PRIVATE_DATA; + break; + } ++ ++ if (q - data > sizeof(data) - 32) ++ return AVERROR(EINVAL); ++ + *q++ = stream_type; + put16(&q, 0xe000 | ts_st->pid); + desc_length_ptr = q; +@@ -324,7 +328,7 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) + len_ptr = q++; + *len_ptr = 0; + +- for (p = lang->value; next && *len_ptr < 255 / 4 * 4; p = next + 1) { ++ for (p = lang->value; next && *len_ptr < 255 / 4 * 4 && q - data < sizeof(data) - 4; p = next + 1) { + next = strchr(p, ','); + if (strlen(p) != 3 && (!next || next != p + 3)) + continue; /* not a 3-letter code */ +@@ -386,6 +390,7 @@ static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) + } + mpegts_write_section1(&service->pmt, PMT_TID, service->sid, 0, 0, 0, + data, q - data); ++ return 0; + } + + /* NOTE: str == NULL is accepted for an empty string */ +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch new file mode 100644 index 000000000..f45e3fd59 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-eamad-fix-out-of-array-accesses.patch @@ -0,0 +1,29 @@ +From 63ac64864c6e0e84355aa3caa5b92208997a9a8d Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sat, 17 Nov 2012 16:26:55 +0100 +Subject: [PATCH] eamad: fix out of array accesses + +Upstream-Status: Backport + +Commit 63ac64864c6e0e84355aa3caa5b92208997a9a8d release/1.1 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/eamad.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/eamad.c b/libavcodec/eamad.c +index 2805195..e38650e 100644 +--- a/gst-libs/ext/libav/libavcodec/eamad.c ++++ b/gst-libs/ext/libav/libavcodec/eamad.c +@@ -237,7 +237,7 @@ static int decode_frame(AVCodecContext *avctx, + int chunk_type; + int inter; + +- if (buf_size < 17) { ++ if (buf_size < 26) { + av_log(avctx, AV_LOG_ERROR, "Input buffer too small\n"); + *data_size = 0; + return -1; +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch new file mode 100644 index 000000000..e0e4239c2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error-concealment-initialize-block-index.patch @@ -0,0 +1,29 @@ +gst-ffmpeg: error concealment: initialize block index. + +Fixes CVE-2011-3941 (out of bounds write) + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/error_resilience.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c +index 8bb5d0c..d55c000 100644 +--- a/gst-libs/ext/libav/libavcodec/error_resilience.c ++++ b/gst-libs/ext/libav/libavcodec/error_resilience.c +@@ -45,6 +45,9 @@ static void decode_mb(MpegEncContext *s, int ref){ + 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); + 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); + ++ ff_init_block_index(s); ++ ff_update_block_index(s); ++ + if(CONFIG_H264_DECODER && s->codec_id == CODEC_ID_H264){ + H264Context *h= (void*)s; + h->mb_xy= s->mb_x + s->mb_y*s->mb_stride; +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/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/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch new file mode 100644 index 000000000..8eef6e99c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-error_concealment-Check-that-the-picture-is-not-in-a.patch @@ -0,0 +1,37 @@ +gst-ffmpeg: error_concealment: Check that the picture is not in a half + +Fixes state becoming inconsistent +Fixes a null pointer dereference + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 23318a57358358e7a4dc551e830e4503f0638cfe) + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +--- + libavcodec/error_resilience.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c +index 01f7424..2b6bc42 100644 +--- a/gst-libs/ext/libav/libavcodec/error_resilience.c ++++ b/gst-libs/ext/libav/libavcodec/error_resilience.c +@@ -793,6 +793,12 @@ void ff_er_frame_end(MpegEncContext *s){ + s->picture_structure != PICT_FRAME || // we dont support ER of field pictures yet, though it should not crash if enabled + s->error_count==3*s->mb_width*(s->avctx->skip_top + s->avctx->skip_bottom)) return; + ++ if ( s->picture_structure == PICT_FRAME ++ && s->current_picture.linesize[0] != s->current_picture_ptr->linesize[0]) { ++ av_log(s->avctx, AV_LOG_ERROR, "Error concealment not possible, frame not fully initialized\n"); ++ return; ++ } ++ + if(s->current_picture.motion_val[0] == NULL){ + av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n"); + +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch new file mode 100644 index 000000000..80325db4d --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-ffserver-set-oformat.patch @@ -0,0 +1,36 @@ +gst-ffmpeg: ffserver: set oformat + +Fix Ticket1986 + +Signed-off-by: Michael Niedermayer +(cherry picked from commit cbe43e62c9ac7d4aefdc13476f6f691bd626525f) + +Upstream-Status: Backport + +--- + ffserver.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/ffserver.c b/ffserver.c +index 4044d0f..8740140 100644 +--- a/gst-libs/ext/libav/ffserver.c ++++ b/gst-libs/ext/libav/ffserver.c +@@ -2937,12 +2937,14 @@ static int prepare_sdp_description(FFStream *stream, uint8_t **pbuffer, + { + AVFormatContext *avc; + AVStream *avs = NULL; ++ AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); + int i; + + avc = avformat_alloc_context(); +- if (avc == NULL) { ++ if (avc == NULL || !rtp_format) { + return -1; + } ++ avc->oformat = rtp_format; + av_dict_set(&avc->metadata, "title", + stream->title[0] ? stream->title : "No Title", 0); + avc->nb_streams = stream->nb_streams; +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/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/import-layers/meta-openembedded/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 new file mode 100644 index 000000000..d4f55b269 --- /dev/null +++ b/import-layers/meta-openembedded/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 @@ -0,0 +1,29 @@ +From d6c184880ee2e09fd68c0ae217173832cee5afc1 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sun, 18 Nov 2012 16:29:04 +0100 +Subject: [PATCH] h264: correct ref count check and limit, fix out of array + accesses. + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/h264.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/h264.c b/libavcodec/h264.c +index da43f1e..32cede5 100644 +--- a/gst-libs/ext/libav/libavcodec/h264.c ++++ b/gst-libs/ext/libav/libavcodec/h264.c +@@ -2870,6 +2870,9 @@ static int decode_slice_header(H264Conte + h->ref_count[0]= get_ue_golomb(&s->gb) + 1; + if(h->slice_type_nos==AV_PICTURE_TYPE_B) + h->ref_count[1]= get_ue_golomb(&s->gb) + 1; ++ else ++ // full range is spec-ok in this case, even for frames ++ h->ref_count[1] = 1; + + if(h->ref_count[0]-1 > 32-1 || h->ref_count[1]-1 > 32-1){ + av_log(h->s.avctx, AV_LOG_ERROR, "reference overflow\n"); +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch new file mode 100644 index 000000000..05a9de333 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-set-parameters-from-SPS-whenever-it-changes.patch @@ -0,0 +1,145 @@ +gst-ffmpeg: h264: set parameters from SPS whenever it changes + +Fixes a crash in the fuzzed sample sample_varPAR.avi_s26638 with +alternating bit depths. + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +diff --git a/gst-libs/ext/libav/libavcodec/h264.c.old b/gst-libs/ext/libav/libavcodec/h264.c +index 3621f41..718906a 100644 +--- a/gst-libs/ext/libav/libavcodec/h264.c.old ++++ b/gst-libs/ext/libav/libavcodec/h264.c +@@ -2491,6 +2491,34 @@ int ff_h264_get_profile(SPS *sps) + return profile; + } + ++static int h264_set_parameter_from_sps(H264Context *h) ++{ ++ MpegEncContext *s = &h->s; ++ AVCodecContext * avctx= s->avctx; ++ ++ if (s->flags& CODEC_FLAG_LOW_DELAY || ++ (h->sps.bitstream_restriction_flag && !h->sps.num_reorder_frames)) ++ s->low_delay=1; ++ ++ if(avctx->has_b_frames < 2) ++ avctx->has_b_frames= !s->low_delay; ++ ++ if (avctx->bits_per_raw_sample != h->sps.bit_depth_luma) { ++ if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10) { ++ avctx->bits_per_raw_sample = h->sps.bit_depth_luma; ++ h->pixel_shift = h->sps.bit_depth_luma > 8; ++ ++ ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma); ++ ff_h264_pred_init(&h->hpc, s->codec_id, h->sps.bit_depth_luma); ++ dsputil_init(&s->dsp, s->avctx); ++ } else { ++ av_log(avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d\n", h->sps.bit_depth_luma); ++ return -1; ++ } ++ } ++ return 0; ++} ++ + /** + * decodes a slice header. + * This will also call MPV_common_init() and frame_start() as needed. +@@ -2505,7 +2533,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ + MpegEncContext * const s0 = &h0->s; + unsigned int first_mb_in_slice; + unsigned int pps_id; +- int num_ref_idx_active_override_flag; ++ int num_ref_idx_active_override_flag, ret; + unsigned int slice_type, tmp, i, j; + int default_ref_list_done = 0; + int last_pic_structure; +@@ -2569,7 +2597,17 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ + av_log(h->s.avctx, AV_LOG_ERROR, "non-existing SPS %u referenced\n", h->pps.sps_id); + return -1; + } +- h->sps = *h0->sps_buffers[h->pps.sps_id]; ++ ++ if (h->pps.sps_id != h->current_sps_id || ++ h0->sps_buffers[h->pps.sps_id]->new) { ++ h0->sps_buffers[h->pps.sps_id]->new = 0; ++ ++ h->current_sps_id = h->pps.sps_id; ++ h->sps = *h0->sps_buffers[h->pps.sps_id]; ++ ++ if ((ret = h264_set_parameter_from_sps(h)) < 0) ++ return ret; ++ } + + s->avctx->profile = ff_h264_get_profile(&h->sps); + s->avctx->level = h->sps.level_idc; +@@ -3811,26 +3811,8 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){ + case NAL_SPS: + init_get_bits(&s->gb, ptr, bit_length); + ff_h264_decode_seq_parameter_set(h); +- +- if (s->flags& CODEC_FLAG_LOW_DELAY || +- (h->sps.bitstream_restriction_flag && !h->sps.num_reorder_frames)) +- s->low_delay=1; +- +- if(avctx->has_b_frames < 2) +- avctx->has_b_frames= !s->low_delay; +- +- if (avctx->bits_per_raw_sample != h->sps.bit_depth_luma) { +- if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10) { +- avctx->bits_per_raw_sample = h->sps.bit_depth_luma; +- h->pixel_shift = h->sps.bit_depth_luma > 8; +- +- ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma); +- ff_h264_pred_init(&h->hpc, s->codec_id, h->sps.bit_depth_luma); +- dsputil_init(&s->dsp, s->avctx); +- } else { +- av_log(avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d\n", h->sps.bit_depth_luma); +- return -1; +- } ++ if (h264_set_parameter_from_sps(h) < 0) { ++ return -1; + } + break; + case NAL_PPS: +diff --git a/gst-libs/ext/libav/libavcodec/h264.h.old b/gst-libs/ext/libav/libavcodec/h264.h +index e3cc815..b77ad98 100644 +--- a/gst-libs/ext/libav/libavcodec/h264.h.old ++++ b/gst-libs/ext/libav/libavcodec/h264.h +@@ -202,6 +202,7 @@ typedef struct SPS{ + int bit_depth_chroma; ///< bit_depth_chroma_minus8 + 8 + int residual_color_transform_flag; ///< residual_colour_transform_flag + int constraint_set_flags; ///< constraint_set[0-3]_flag ++ int new; ///< flag to keep track if the decoder context needs re-init due to changed SPS + }SPS; + + /** +@@ -333,6 +334,7 @@ typedef struct H264Context{ + int emu_edge_width; + int emu_edge_height; + ++ unsigned current_sps_id; ///< id of the current SPS + SPS sps; ///< current sps + + /** +diff --git a/gst-libs/ext/libav/libavcodec/h264_ps.c.old b/gst-libs/ext/libav/libavcodec/h264_ps.c +index 7491807..0929098 100644 +--- a/gst-libs/ext/libav/libavcodec/h264_ps.c.old ++++ b/gst-libs/ext/libav/libavcodec/h264_ps.c +@@ -438,10 +438,13 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){ + sps->timing_info_present_flag ? sps->time_scale : 0 + ); + } ++ sps->new = 1; + + av_free(h->sps_buffers[sps_id]); +- h->sps_buffers[sps_id]= sps; +- h->sps = *sps; ++ h->sps_buffers[sps_id] = sps; ++ h->sps = *sps; ++ h->current_sps_id = sps_id; ++ + return 0; + fail: + av_free(sps); diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch new file mode 100644 index 000000000..5d45c1a96 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch @@ -0,0 +1,33 @@ +gst-ffmpeg: h264: skip error concealment when SPS and slices are + mismatching + +Fixes out of array accesses + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 695af8eed642ff0104834495652d1ee784a4c14d) + +Upstream-Status: Backport + +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/h264.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/libavcodec/h264.c b/libavcodec/h264.c +index da144db..0aab4e7 100644 +--- a/gst-libs/ext/libav/libavcodec/h264.c ++++ b/gst-libs/ext/libav/libavcodec/h264.c +@@ -2351,7 +2351,7 @@ static int field_end(H264Context *h, int in_setup) + * past end by one (callers fault) and resync_mb_y != 0 + * causes problems for the first MB line, too. + */ +- if (!FIELD_PICTURE) ++ if (!FIELD_PICTURE && h->current_slice && !h->sps.new) + ff_er_frame_end(s); + + ff_MPV_frame_end(s); +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch new file mode 100644 index 000000000..1e62b5036 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-h264_sei-Fix-infinite-loop.patch @@ -0,0 +1,39 @@ +gst-ffmpeg: h264_sei: Fix infinite loop. + +Fixsot yet fixed parts of CVE-2011-3946. + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +--- + libavcodec/h264_sei.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + + +diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c +index 374e53d..80d70e5 100644 +--- a/gst-libs/ext/libav/libavcodec/h264_sei.c ++++ b/gst-libs/ext/libav/libavcodec/h264_sei.c +@@ -169,11 +169,15 @@ int ff_h264_decode_sei(H264Context *h){ + + type=0; + do{ ++ if (get_bits_left(&s->gb) < 8) ++ return -1; + type+= show_bits(&s->gb, 8); + }while(get_bits(&s->gb, 8) == 255); + + size=0; + do{ ++ if (get_bits_left(&s->gb) < 8) ++ return -1; + size+= show_bits(&s->gb, 8); + }while(get_bits(&s->gb, 8) == 255); + +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch new file mode 100644 index 000000000..e859e443b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Check-init_vlc-return-codes.patch @@ -0,0 +1,87 @@ +From b666debffec1fcbb19ef377635a53b9a58bca8a4 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Tue, 29 Jan 2013 18:29:41 +0100 +Subject: [PATCH] huffyuvdec: Check init_vlc() return codes. + +Upstream-Status: Backport + +Commit b666debffec1fcbb19ef377635a53b9a58bca8a4 release/1.0 + +Prevents out of array writes + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit f67a0d115254461649470452058fa3c28c0df294) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/huffyuv.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c +index 58da789..993e524 100644 +--- a/gst-libs/ext/libav/libavcodec/huffyuv.c ++++ b/gst-libs/ext/libav/libavcodec/huffyuv.c +@@ -33,6 +33,7 @@ + #include "put_bits.h" + #include "dsputil.h" + #include "thread.h" ++#include "libavutil/avassert.h" + + #define VLC_BITS 11 + +@@ -287,6 +287,7 @@ static void generate_joint_tables(HYuvCo + int len1 = s->len[p][u]; + if (len1 > limit || !len1) + continue; ++ av_assert0(i < (1 << VLC_BITS)); + len[i] = len0 + len1; + bits[i] = (s->bits[0][y] << len1) + s->bits[p][u]; + symbols[i] = (y<<8) + u; +@@ -320,6 +321,7 @@ static void generate_joint_tables(HYuvCo + int len2 = s->len[2][r&255]; + if (len2 > limit1 || !len2) + continue; ++ av_assert0(i < (1 << VLC_BITS)); + len[i] = len0 + len1 + len2; + bits[i] = (code << len2) + s->bits[2][r&255]; + if(s->decorrelate){ +@@ -343,6 +345,7 @@ static void generate_joint_tables(HYuvCo + static int read_huffman_tables(HYuvContext *s, const uint8_t *src, int length){ + GetBitContext gb; + int i; ++ int ret; + + init_get_bits(&gb, src, length*8); + +@@ -353,7 +356,9 @@ static int read_huffman_tables(HYuvConte + return -1; + } + free_vlc(&s->vlc[i]); +- init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, s->bits[i], 4, 4, 0); ++ if ((ret = init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, ++ s->bits[i], 4, 4, 0)) < 0) ++ return ret; + } + + generate_joint_tables(s); +@@ -365,6 +370,7 @@ static int read_old_huffman_tables(HYuvC + #if 1 + GetBitContext gb; + int i; ++ int ret; + + init_get_bits(&gb, classic_shift_luma, sizeof(classic_shift_luma)*8); + if(read_len_table(s->len[0], &gb)<0) +@@ -385,7 +391,9 @@ static int read_old_huffman_tables(HYuvC + + for(i=0; i<3; i++){ + free_vlc(&s->vlc[i]); +- init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, s->bits[i], 4, 4, 0); ++ if ((ret = init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, ++ s->bits[i], 4, 4, 0)) < 0) ++ return ret; + } + + generate_joint_tables(s); +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch new file mode 100644 index 000000000..94bf4b6fb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-huffyuvdec-Skip-len-0-cases.patch @@ -0,0 +1,61 @@ +From db0f7f7394e1f994ed38db043f78ed0f10bde0da Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Tue, 29 Jan 2013 19:22:33 +0100 +Subject: [PATCH] huffyuvdec: Skip len==0 cases + +Upstream-Status: Backport + +Commit db0f7f7394e1f994ed38db043f78ed0f10bde0da release/1.0 + +Fixes vlc decoding for hypothetical files that would contain such cases. + +Signed-off-by: Michael Niedermayer +(cherry picked from commit 0dfc01c2bbf4b71bb56201bc4a393321e15d1b31) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/huffyuv.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c +index 993e524..72ed351 100644 +--- a/gst-libs/ext/libav/libavcodec/huffyuv.c ++++ b/gst-libs/ext/libav/libavcodec/huffyuv.c +@@ -281,11 +281,11 @@ static void generate_joint_tables(HYuvCo + for(i=y=0; y<256; y++){ + int len0 = s->len[0][y]; + int limit = VLC_BITS - len0; +- if(limit <= 0) ++ if(limit <= 0 || !len0) + continue; + for(u=0; u<256; u++){ + int len1 = s->len[p][u]; +- if(len1 > limit) ++ if (len1 > limit || !len1) + continue; + len[i] = len0 + len1; + bits[i] = (s->bits[0][y] << len1) + s->bits[p][u]; +@@ -308,17 +308,17 @@ static void generate_joint_tables(HYuvCo + for(i=0, g=-16; g<16; g++){ + int len0 = s->len[p0][g&255]; + int limit0 = VLC_BITS - len0; +- if(limit0 < 2) ++ if (limit0 < 2 || !len0) + continue; + for(b=-16; b<16; b++){ + int len1 = s->len[p1][b&255]; + int limit1 = limit0 - len1; +- if(limit1 < 1) ++ if (limit1 < 1 || !len1) + continue; + code = (s->bits[p0][g&255] << len1) + s->bits[p1][b&255]; + for(r=-16; r<16; r++){ + int len2 = s->len[2][r&255]; +- if(len2 > limit1) ++ if (len2 > limit1 || !len2) + continue; + len[i] = len0 + len1 + len2; + bits[i] = (code << len2) + s->bits[2][r&255]; +-- +1.8.5.2.233.g932f7e4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch new file mode 100644 index 000000000..ea4aa222b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-lavf-compute-probe-buffer-size-more-reliably.patch @@ -0,0 +1,45 @@ +gst-ffmpeg: lavf: compute probe buffer size more reliably. + +The previous code computes the offset by reversing the growth +of the allocated buffer size: it is complex and did lead to +inconsistencies when the size limit is reached. + +Fix trac ticket #1991. +(cherry picked from commit 03847eb8259291b4ff1bd840bd779d0699d71f96) + +Conflicts: + libavformat/utils.c + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +--- + libavformat/utils.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libavformat/utils.c b/libavformat/utils.c +index 7940037..be73c4a 100644 +--- a/gst-libs/ext/libav/libavformat/utils.c ++++ b/gst-libs/ext/libav/libavformat/utils.c +@@ -459,7 +459,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, + { + AVProbeData pd = { filename ? filename : "", NULL, -offset }; + unsigned char *buf = NULL; +- int ret = 0, probe_size; ++ int ret = 0, probe_size, buf_offset = 0; + + if (!max_probe_size) { + max_probe_size = PROBE_BUF_MAX; +@@ -499,7 +499,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, + score = 0; + ret = 0; /* error was end of file, nothing read */ + } +- pd.buf_size += ret; ++ pd.buf_size = buf_offset += ret; + pd.buf = &buf[offset]; + + memset(pd.buf + pd.buf_size, 0, AVPROBE_PADDING_SIZE); +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch new file mode 100644 index 000000000..d90bafac9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-mjpegdec-check-SE.patch @@ -0,0 +1,32 @@ +From 1f41cffe1e3e79620f587545bdfcbd7e6e68ed29 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sun, 11 Nov 2012 00:01:24 +0100 +Subject: [PATCH] mjpegdec: check SE. + +Upstream-Status: Backport + +Commit 1f41cffe1e3e79620f587545bdfcbd7e6e68ed29 release/1.1 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/mjpegdec.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c +index 6b5266d..0a71a6f 100644 +--- a/gst-libs/ext/libav/libavcodec/mjpegdec.c ++++ b/gst-libs/ext/libav/libavcodec/mjpegdec.c +@@ -905,6 +905,11 @@ static int mjpeg_decode_scan_progressive + int16_t *quant_matrix = s->quant_matrixes[ s->quant_index[c] ]; + GetBitContext mb_bitmask_gb; + ++ if (se > 63) { ++ av_log(s->avctx, AV_LOG_ERROR, "SE %d is too large\n", se); ++ return AVERROR_INVALIDDATA; ++ } ++ + if (mb_bitmask) { + init_get_bits(&mb_bitmask_gb, mb_bitmask, s->mb_width*s->mb_height); + } +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch new file mode 100644 index 000000000..1041347c8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch @@ -0,0 +1,34 @@ +From 28bf685bfc6d0c744369cdf367f61a78d80d0b01 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Thu, 15 Nov 2012 16:41:28 +0100 +Subject: [PATCH] pgssubdec: check RLE size before copying. Fix out of array + accesses + +Upstream-Status: Backport + +Commit 28bf685bfc6d0c744369cdf367f61a78d80d0b01 release/1.1 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit c0d68be555f5858703383040e04fcd6529777061) +--- + libavcodec/pgssubdec.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c +index 728f178..26a3c2a 100644 +--- a/gst-libs/ext/libav/libavcodec/pgssubdec.c ++++ b/gst-libs/ext/libav/libavcodec/pgssubdec.c +@@ -202,6 +202,11 @@ static int parse_picture_segment(AVCodec + return -1; + } + ++ if (buf_size > rle_bitmap_len) { ++ av_log(avctx, AV_LOG_ERROR, "too much RLE data\n"); ++ return AVERROR_INVALIDDATA; ++ } ++ + ctx->picture.w = width; + ctx->picture.h = height; + +-- diff --git a/import-layers/meta-openembedded/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/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch new file mode 100644 index 000000000..1e5fb7deb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch @@ -0,0 +1,44 @@ +gst-ffmpeg: pngdec/filter: dont access out of array elements at the end + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind + +Upstream-Status: Backport + +Signed-off-by: Yue Tao +--- + libavcodec/pngdec.c | 12 ++++-------- + 1 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c +index 97c0ad1..193e35e 100644 +--- a/gst-libs/ext/libav/libavcodec/pngdec.c ++++ b/gst-libs/ext/libav/libavcodec/pngdec.c +@@ -190,7 +190,7 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w + if(bpp >= 2) g = dst[1];\ + if(bpp >= 3) b = dst[2];\ + if(bpp >= 4) a = dst[3];\ +- for(; i < size; i+=bpp) {\ ++ for(; i <= size - bpp; i+=bpp) {\ + dst[i+0] = r = op(r, src[i+0], last[i+0]);\ + if(bpp == 1) continue;\ + dst[i+1] = g = op(g, src[i+1], last[i+1]);\ +@@ -206,13 +206,9 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w + else if(bpp == 2) UNROLL1(2, op)\ + else if(bpp == 3) UNROLL1(3, op)\ + else if(bpp == 4) UNROLL1(4, op)\ +- else {\ +- for (; i < size; i += bpp) {\ +- int j;\ +- for (j = 0; j < bpp; j++)\ +- dst[i+j] = op(dst[i+j-bpp], src[i+j], last[i+j]);\ +- }\ +- } ++ for (; i < size; i++) {\ ++ dst[i] = op(dst[i-bpp], src[i], last[i]);\ ++ }\ + + /* NOTE: 'dst' can be equal to 'last' */ + static void png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/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/import-layers/meta-openembedded/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 new file mode 100644 index 000000000..8c94232d6 --- /dev/null +++ b/import-layers/meta-openembedded/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 @@ -0,0 +1,30 @@ +gst-ffmpeg: qdm2: check array index before use, fix out of array + accesses + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/qdm2.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c +index 4cf4b2f..1dfb8d5 100644 +--- a/gst-libs/ext/libav/libavcodec/qdm2.c ++++ b/gst-libs/ext/libav/libavcodec/qdm2.c +@@ -1257,6 +1257,11 @@ static void qdm2_decode_super_block (QDM2Context *q) + for (i = 0; packet_bytes > 0; i++) { + int j; + ++ if (i>=FF_ARRAY_ELEMS(q->sub_packet_list_A)) { ++ SAMPLES_NEEDED_2("too many packet bytes"); ++ return; ++ } ++ + q->sub_packet_list_A[i].next = NULL; + + if (i > 0) { +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch new file mode 100644 index 000000000..43ffc03a6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-qdm2dec-fix-buffer-overflow.patch @@ -0,0 +1,58 @@ +gst-ffmpeg: qdm2dec: fix buffer overflow. Fixes NGS00144 + +This also adds a few lines of code from master that are needed for this fix. + +Thanks to Phillip for suggestions to improve the patch. +Found-by: Phillip Langlois + +Upstream-Status: Backport + +Signed-off-by: Michael Niedermayer +--- + libavcodec/qdm2.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c +index 3aa9e5b..e000df8 100644 +--- a/gst-libs/ext/libav/libavcodec/qdm2.c ++++ b/gst-libs/ext/libav/libavcodec/qdm2.c +@@ -76,6 +76,7 @@ do { \ + #define SAMPLES_NEEDED_2(why) \ + av_log (NULL,AV_LOG_INFO,"This file triggers some missing code. Please contact the developers.\nPosition: %s\n",why); + ++#define QDM2_MAX_FRAME_SIZE 512 + + typedef int8_t sb_int8_array[2][30][64]; + +@@ -168,7 +169,7 @@ typedef struct { + /// I/O data + const uint8_t *compressed_data; + int compressed_size; +- float output_buffer[1024]; ++ float output_buffer[QDM2_MAX_FRAME_SIZE * MPA_MAX_CHANNELS * 2]; + + /// Synthesis filter + MPADSPContext mpadsp; +@@ -1819,6 +1820,9 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) + s->group_order = av_log2(s->group_size) + 1; + s->frame_size = s->group_size / 16; // 16 iterations per super block + ++ if (s->frame_size > QDM2_MAX_FRAME_SIZE) ++ return AVERROR_INVALIDDATA; ++ + s->sub_sampling = s->fft_order - 7; + s->frequency_range = 255 / (1 << (2 - s->sub_sampling)); + +@@ -1887,6 +1891,9 @@ static int qdm2_decode (QDM2Context *q, const uint8_t *in, int16_t *out) + int ch, i; + const int frame_size = (q->frame_size * q->channels); + ++ if((unsigned)frame_size > FF_ARRAY_ELEMS(q->output_buffer)/2) ++ return -1; ++ + /* select input buffer */ + q->compressed_data = in; + q->compressed_size = q->checksum_size; +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch new file mode 100644 index 000000000..7e58afcf6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-roqvideodec-check-dimensions-validity.patch @@ -0,0 +1,36 @@ +From 391e0fc6c90ced6656b74f50f3a487b6dc76ea63 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Thu, 29 Nov 2012 15:18:17 +0100 +Subject: [PATCH] roqvideodec: check dimensions validity + +Upstream-Status: Backport + +Commit 391e0fc6c90ced6656b74f50f3a487b6dc76ea63 release/0.7 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit 3ae610451170cd5a28b33950006ff0bd23036845) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/roqvideodec.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c +index f0977f6..4e34231 100644 +--- a/gst-libs/ext/libav/libavcodec/roqvideodec.c ++++ b/gst-libs/ext/libav/libavcodec/roqvideodec.c +@@ -157,6 +157,12 @@ static av_cold int roq_decode_init(AVCodecContext *avctx) + RoqContext *s = avctx->priv_data; + + s->avctx = avctx; ++ ++ if (avctx->width%16 || avctx->height%16) { ++ av_log_ask_for_sample(avctx, "dimensions not being a multiple of 16 are unsupported\n"); ++ return AVERROR_PATCHWELCOME; ++ } ++ + s->width = avctx->width; + s->height = avctx->height; + avcodec_get_frame_defaults(&s->frames[0]); +-- diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch new file mode 100644 index 000000000..15b161469 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch @@ -0,0 +1,32 @@ +gst-ffmpeg: smackerdec: Check that the last indexes are within the + table. + +Fixes CVE-2011-3944 + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/smacker.c | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c +index 30f99b4..2a8bae8 100644 +--- a/gst-libs/ext/libav/libavcodec/smacker.c ++++ b/gst-libs/ext/libav/libavcodec/smacker.c +@@ -259,6 +259,11 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int + if(ctx.last[0] == -1) ctx.last[0] = huff.current++; + if(ctx.last[1] == -1) ctx.last[1] = huff.current++; + if(ctx.last[2] == -1) ctx.last[2] = huff.current++; ++ if(huff.current > huff.length){ ++ ctx.last[0] = ctx.last[1] = ctx.last[2] = 1; ++ av_log(smk->avctx, AV_LOG_ERROR, "bigtree damaged\n"); ++ return -1; ++ } + + *recodes = huff.values; + +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch new file mode 100644 index 000000000..a1989cfea --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-Copy-all-3-frames-for-thread-updates.patch @@ -0,0 +1,32 @@ +gst-ffmpeg: vp3: Copy all 3 frames for thread updates. + +This fixes a double release of the current frame on deinit. +Fixes CVE-2011-3934 + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer + +Upstream-Status: Backport + +Signed-off-by: Yue.Tao + +--- + libavcodec/vp3.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c +index 738ae9f..b5daafc 100644 +--- a/gst-libs/ext/libav/libavcodec/vp3.c ++++ b/gst-libs/ext/libav/libavcodec/vp3.c +@@ -1859,7 +1859,7 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext * + ||s->width != s1->width + ||s->height!= s1->height) { + if (s != s1) +- copy_fields(s, s1, golden_frame, current_frame); ++ copy_fields(s, s1, golden_frame, keyframe); + return -1; + } + +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/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/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch new file mode 100644 index 000000000..e83d8f402 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch @@ -0,0 +1,183 @@ +gst-ffmpeg: vp3: fix oob read for negative tokens and memleaks on error. + +Upstream-Status: Backport + +Signed-off-by: Yue.Tao + +--- + libavcodec/vp3.c | 59 +++++++++++++++++++++++++++++++++++++++++------------ + 1 files changed, 45 insertions(+), 14 deletions(-) + +diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c +index 36715bb..ce14e63 100644 +--- a/gst-libs/ext/libav/libavcodec/vp3.c ++++ b/gst-libs/ext/libav/libavcodec/vp3.c +@@ -45,6 +45,7 @@ + #define FRAGMENT_PIXELS 8 + + static av_cold int vp3_decode_end(AVCodecContext *avctx); ++static void vp3_decode_flush(AVCodecContext *avctx); + + //FIXME split things out into their own arrays + typedef struct Vp3Fragment { +@@ -890,7 +891,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb, + /* decode a VLC into a token */ + token = get_vlc2(gb, vlc_table, 11, 3); + /* use the token to get a zero run, a coefficient, and an eob run */ +- if (token <= 6) { ++ if ((unsigned) token <= 6U) { + eob_run = eob_run_base[token]; + if (eob_run_get_bits[token]) + eob_run += get_bits(gb, eob_run_get_bits[token]); +@@ -908,7 +909,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb, + coeff_i += eob_run; + eob_run = 0; + } +- } else { ++ } else if (token >= 0) { + bits_to_get = coeff_get_bits[token]; + if (bits_to_get) + bits_to_get = get_bits(gb, bits_to_get); +@@ -942,6 +943,10 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb, + for (i = coeff_index+1; i <= coeff_index+zero_run; i++) + s->num_coded_frags[plane][i]--; + coeff_i++; ++ } else { ++ av_log(s->avctx, AV_LOG_ERROR, ++ "Invalid token %d\n", token); ++ return -1; + } + } + +@@ -991,6 +996,8 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb) + /* unpack the Y plane DC coefficients */ + residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_y_table], 0, + 0, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + + /* reverse prediction of the Y-plane DC coefficients */ + reverse_dc_prediction(s, 0, s->fragment_width[0], s->fragment_height[0]); +@@ -998,8 +1005,12 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb) + /* unpack the C plane DC coefficients */ + residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0, + 1, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0, + 2, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + + /* reverse prediction of the C-plane DC coefficients */ + if (!(s->avctx->flags & CODEC_FLAG_GRAY)) +@@ -1036,11 +1047,17 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb) + for (i = 1; i <= 63; i++) { + residual_eob_run = unpack_vlcs(s, gb, y_tables[i], i, + 0, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + + residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i, + 1, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i, + 2, residual_eob_run); ++ if (residual_eob_run < 0) ++ return residual_eob_run; + } + + return 0; +@@ -1777,10 +1794,15 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext * + Vp3DecodeContext *s = dst->priv_data, *s1 = src->priv_data; + int qps_changed = 0, i, err; + ++#define copy_fields(to, from, start_field, end_field) memcpy(&to->start_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field) ++ + if (!s1->current_frame.data[0] + ||s->width != s1->width +- ||s->height!= s1->height) ++ ||s->height!= s1->height) { ++ if (s != s1) ++ copy_fields(s, s1, golden_frame, current_frame); + return -1; ++ } + + if (s != s1) { + // init tables if the first frame hasn't been decoded +@@ -1796,8 +1818,6 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext * + memcpy(s->motion_val[1], s1->motion_val[1], c_fragment_count * sizeof(*s->motion_val[1])); + } + +-#define copy_fields(to, from, start_field, end_field) memcpy(&to->start_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field) +- + // copy previous frame data + copy_fields(s, s1, golden_frame, dsp); + +@@ -1987,9 +2007,6 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx) + Vp3DecodeContext *s = avctx->priv_data; + int i; + +- if (avctx->is_copy && !s->current_frame.data[0]) +- return 0; +- + av_free(s->superblock_coding); + av_free(s->all_fragments); + av_free(s->coded_fragment_list[0]); +@@ -2016,12 +2033,7 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx) + free_vlc(&s->motion_vector_vlc); + + /* release all frames */ +- if (s->golden_frame.data[0]) +- ff_thread_release_buffer(avctx, &s->golden_frame); +- if (s->last_frame.data[0] && s->last_frame.type != FF_BUFFER_TYPE_COPY) +- ff_thread_release_buffer(avctx, &s->last_frame); +- /* no need to release the current_frame since it will always be pointing +- * to the same frame as either the golden or last frame */ ++ vp3_decode_flush(avctx); + + return 0; + } +@@ -2341,6 +2353,23 @@ static void vp3_decode_flush(AVCodecContext *avctx) + ff_thread_release_buffer(avctx, &s->current_frame); + } + ++static int vp3_init_thread_copy(AVCodecContext *avctx) ++{ ++ Vp3DecodeContext *s = avctx->priv_data; ++ ++ s->superblock_coding = NULL; ++ s->all_fragments = NULL; ++ s->coded_fragment_list[0] = NULL; ++ s->dct_tokens_base = NULL; ++ s->superblock_fragments = NULL; ++ s->macroblock_coding = NULL; ++ s->motion_val[0] = NULL; ++ s->motion_val[1] = NULL; ++ s->edge_emu_buffer = NULL; ++ ++ return 0; ++} ++ + AVCodec ff_theora_decoder = { + .name = "theora", + .type = AVMEDIA_TYPE_VIDEO, +@@ -2352,6 +2381,7 @@ AVCodec ff_theora_decoder = { + .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS, + .flush = vp3_decode_flush, + .long_name = NULL_IF_CONFIG_SMALL("Theora"), ++ .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy), + .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context) + }; + #endif +@@ -2367,5 +2397,6 @@ AVCodec ff_vp3_decoder = { + .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS, + .flush = vp3_decode_flush, + .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"), ++ .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy), + .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context) + }; +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch new file mode 100644 index 000000000..7e4f68216 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch @@ -0,0 +1,51 @@ +From 2cac35086c9e103fa98960c546d5017e7363803a Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 25 Jan 2013 06:11:59 +0100 +Subject: [PATCH] vqavideo: check chunk sizes before reading chunks + +Upstream-Status: Backport + +Commit 2cac35086c9e103fa98960c546d5017e7363803a release/0.7 + +Fixes out of array writes + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +(cherry picked from commit ab6c9332bfa1e20127a16392a0b85a4aa4840889) + +Signed-off-by: Michael Niedermayer +--- + libavcodec/vqavideo.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c +index d1eab5b..6e1ce6c 100644 +--- a/gst-libs/ext/libav/libavcodec/vqavideo.c ++++ b/gst-libs/ext/libav/libavcodec/vqavideo.c +@@ -527,6 +527,11 @@ static void vqa_decode_chunk(VqaContext *s) + chunk_size = AV_RB32(&s->buf[cbp0_chunk + 4]); + cbp0_chunk += CHUNK_PREAMBLE_SIZE; + ++ if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { ++ av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (0x%X bytes)\n", chunk_size); ++ return AVERROR_INVALIDDATA; ++ } ++ + /* accumulate partial codebook */ + memcpy(&s->next_codebook_buffer[s->next_codebook_buffer_index], + &s->buf[cbp0_chunk], chunk_size); +@@ -550,6 +555,11 @@ static void vqa_decode_chunk(VqaContext *s) + chunk_size = AV_RB32(&s->buf[cbpz_chunk + 4]); + cbpz_chunk += CHUNK_PREAMBLE_SIZE; + ++ if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { ++ av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (0x%X bytes)\n", chunk_size); ++ return AVERROR_INVALIDDATA; ++ } ++ + /* accumulate partial codebook */ + memcpy(&s->next_codebook_buffer[s->next_codebook_buffer_index], + &s->buf[cbpz_chunk], chunk_size); +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch new file mode 100644 index 000000000..c8bafd570 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch @@ -0,0 +1,68 @@ +From 6043c431c97d55173f339fafbd033d3c0642e2e9 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 01:50:27 +0200 +Subject: [PATCH 2/2] avcodec/mjpegdec: check bits per pixel for changes + similar to dimensions + +Upstream-Status: Backport + +Fixes out of array accesses +Fixes: asan_heap-oob_16668e9_2_asan_heap-oob_16668e9_346_miss_congeniality_pegasus_mjpg.avi + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer + +Conflicts: + libavcodec/mjpegdec.c +--- + libavcodec/mjpegdec.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/gst-libs/ext/libav/libavcodec/mjpegdec.c b/gst-libs/ext/libav/libavcodec/mjpegdec.c +index 84343c0..c0137d8 100644 +--- a/gst-libs/ext/libav/libavcodec/mjpegdec.c ++++ b/gst-libs/ext/libav/libavcodec/mjpegdec.c +@@ -210,16 +210,16 @@ int ff_mjpeg_decode_dht(MJpegDecodeContext *s) + + int ff_mjpeg_decode_sof(MJpegDecodeContext *s) + { +- int len, nb_components, i, width, height, pix_fmt_id; ++ int len, nb_components, i, bits, width, height, pix_fmt_id; + + /* XXX: verify len field validity */ + len = get_bits(&s->gb, 16); +- s->bits= get_bits(&s->gb, 8); ++ bits= get_bits(&s->gb, 8); + +- if(s->pegasus_rct) s->bits=9; +- if(s->bits==9 && !s->pegasus_rct) s->rct=1; //FIXME ugly ++ if(s->pegasus_rct) bits=9; ++ if(bits==9 && !s->pegasus_rct) s->rct=1; //FIXME ugly + +- if (s->bits != 8 && !s->lossless){ ++ if (bits != 8 && !s->lossless){ + av_log(s->avctx, AV_LOG_ERROR, "only 8 bits/component accepted\n"); + return -1; + } +@@ -239,7 +239,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) + if (nb_components <= 0 || + nb_components > MAX_COMPONENTS) + return -1; +- if (s->ls && !(s->bits <= 8 || nb_components == 1)){ ++ if (s->ls && !(bits <= 8 || nb_components == 1)){ + av_log(s->avctx, AV_LOG_ERROR, "only <= 8 bits/component or 16-bit gray accepted for JPEG-LS\n"); + return -1; + } +@@ -272,10 +272,11 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) + + /* if different size, realloc/alloc picture */ + /* XXX: also check h_count and v_count */ +- if (width != s->width || height != s->height) { ++ if (width != s->width || height != s->height || bits != s->bits) { + av_freep(&s->qscale_table); + + s->width = width; ++ s->bits= bits; + s->height = height; + s->interlaced = 0; + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch new file mode 100644 index 000000000..9ef6f7c4b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/configure-fix.patch @@ -0,0 +1,22 @@ +Disable yasm for libav when --disable-yasm + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Shane Wang + +diff -r f2f8f74c6e30 configure.ac +--- a/configure.ac Thu Dec 22 23:56:09 2011 +0800 ++++ b/configure.ac Thu Dec 22 23:57:37 2011 +0800 +@@ -325,6 +325,12 @@ + --enable-gpl" + fi + ++ AC_ARG_ENABLE(yasm, ++ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])]) ++ if test "x$enable_yasm" = "xno"; then ++ embffmpeg_configure_args="$embffmpeg_configure_args --disable-yasm" ++ fi ++ + # if we are cross-compiling, tell ffmpeg so + target_os=`echo $host_os | sed 's/-gnu//'` + if test "x$cross_compiling" = xyes; then diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch new file mode 100644 index 000000000..3c8d8e353 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-0855.patch @@ -0,0 +1,100 @@ +gst-ffmpeg: Security Advisory - ffmpeg - CVE-2013-0855 + +Upstream-Status: Backport + +Signed-off-by: Yue Tao + +diff --git a/gst-libs/ext/libav/libavcodec/alac.c.old b/gst-libs/ext/libav/libavcodec/alac.c +index 2a0df8c..bcbd56d 100644 +--- a/gst-libs/ext/libav/libavcodec/alac.c.old ++++ b/gst-libs/ext/libav/libavcodec/alac.c +@@ -87,18 +87,44 @@ typedef struct { + int wasted_bits; + } ALACContext; + +-static void allocate_buffers(ALACContext *alac) ++static av_cold int alac_decode_close(AVCodecContext *avctx) ++{ ++ ALACContext *alac = avctx->priv_data; ++ ++ int chan; ++ for (chan = 0; chan < MAX_CHANNELS; chan++) { ++ av_freep(&alac->predicterror_buffer[chan]); ++ av_freep(&alac->outputsamples_buffer[chan]); ++ av_freep(&alac->wasted_bits_buffer[chan]); ++ } ++ ++ return 0; ++} ++ ++static int allocate_buffers(ALACContext *alac) + { + int chan; ++ int buf_size; ++ ++ if (alac->setinfo_max_samples_per_frame > INT_MAX / sizeof(int32_t)) ++ goto buf_alloc_fail; ++ buf_size = alac->setinfo_max_samples_per_frame * sizeof(int32_t); ++ + for (chan = 0; chan < MAX_CHANNELS; chan++) { +- alac->predicterror_buffer[chan] = +- av_malloc(alac->setinfo_max_samples_per_frame * 4); + +- alac->outputsamples_buffer[chan] = +- av_malloc(alac->setinfo_max_samples_per_frame * 4); ++ FF_ALLOC_OR_GOTO(alac->avctx, alac->predicterror_buffer[chan], ++ buf_size, buf_alloc_fail); + +- alac->wasted_bits_buffer[chan] = av_malloc(alac->setinfo_max_samples_per_frame * 4); ++ FF_ALLOC_OR_GOTO(alac->avctx, alac->outputsamples_buffer[chan], ++ buf_size, buf_alloc_fail); ++ ++ FF_ALLOC_OR_GOTO(alac->avctx, alac->wasted_bits_buffer[chan], ++ buf_size, buf_alloc_fail); + } ++ return 0; ++buf_alloc_fail: ++ alac_decode_close(alac->avctx); ++ return AVERROR(ENOMEM); + } + + static int alac_set_info(ALACContext *alac) +@@ -131,8 +157,6 @@ static int alac_set_info(ALACContext *alac) + bytestream_get_be32(&ptr); /* bitrate ? */ + bytestream_get_be32(&ptr); /* samplerate */ + +- allocate_buffers(alac); +- + return 0; + } + +@@ -659,6 +683,7 @@ static int alac_decode_frame(AVCodecContext *avctx, + + static av_cold int alac_decode_init(AVCodecContext * avctx) + { ++ int ret; + ALACContext *alac = avctx->priv_data; + alac->avctx = avctx; + alac->numchannels = alac->avctx->channels; +@@ -674,18 +699,9 @@ static av_cold int alac_decode_init(AVCodecContext * avctx) + return -1; + } + +- return 0; +-} +- +-static av_cold int alac_decode_close(AVCodecContext *avctx) +-{ +- ALACContext *alac = avctx->priv_data; +- +- int chan; +- for (chan = 0; chan < MAX_CHANNELS; chan++) { +- av_freep(&alac->predicterror_buffer[chan]); +- av_freep(&alac->outputsamples_buffer[chan]); +- av_freep(&alac->wasted_bits_buffer[chan]); ++ if ((ret = allocate_buffers(alac)) < 0) { ++ av_log(avctx, AV_LOG_ERROR, "Error allocating buffers\n"); ++ return ret; + } + + return 0; diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch new file mode 100644 index 000000000..aa385f54c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch @@ -0,0 +1,26 @@ +avcodec/cdgraphics: check buffer size before use + +Fixes out of array accesses + +Backported from:http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ad002e1a13a8df934bd6cb2c84175a4780ab8942 + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Ming Liu + +diff -urpN a/gst-libs/ext/libav/libavcodec/cdgraphics.c b/gst-libs/ext/libav/libavcodec/cdgraphics.c +--- a/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:17:08.399876575 +0800 ++++ b/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:18:05.880502267 +0800 +@@ -291,7 +291,9 @@ static int cdg_decode_frame(AVCodecConte + inst = bytestream_get_byte(&buf); + inst &= CDG_MASK; + buf += 2; /// skipping 2 unneeded bytes +- bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE); ++ ++ if (buf_size > CDG_HEADER_SIZE) ++ bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE); + + if ((command & CDG_MASK) == CDG_COMMAND) { + switch (inst) { diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch new file mode 100644 index 000000000..90f3fd031 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2011-4352.patch @@ -0,0 +1,64 @@ +From 8b94df0f2047e9728cb872adc9e64557b7a5152f Mon Sep 17 00:00:00 2001 +From: Reinhard Tartler +Date: Sun, 4 Dec 2011 10:10:33 +0100 +Subject: [PATCH] vp3dec: Check coefficient index in vp3_dequant() + +Based on a patch by Michael Niedermayer + +Fixes NGS00145, CVE-2011-4352 + +Found-by: Phillip Langlois +Signed-off-by: Reinhard Tartler + + +Upstream-Status: Backport + +http://git.videolan.org/?p=ffmpeg.git;a=commit;h=8b94df0f2047e9728cb872adc9e64557b7a5152f + +Signed-off-by: Kai Kang +--- + libavcodec/vp3.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c +index 51ab048..f44d084 100644 +--- a/gst-libs/ext/libav/libavcodec/vp3.c ++++ b/gst-libs/ext/libav/libavcodec/vp3.c +@@ -1363,6 +1363,10 @@ static inline int vp3_dequant(Vp3DecodeContext *s, Vp3Fragment *frag, + case 1: // zero run + s->dct_tokens[plane][i]++; + i += (token >> 2) & 0x7f; ++ if (i > 63) { ++ av_log(s->avctx, AV_LOG_ERROR, "Coefficient index overflow\n"); ++ return i; ++ } + block[perm[i]] = (token >> 9) * dequantizer[perm[i]]; + i++; + break; +@@ -1566,7 +1570,10 @@ static void render_slice(Vp3DecodeContext *s, int slice) + /* invert DCT and place (or add) in final output */ + + if (s->all_fragments[i].coding_method == MODE_INTRA) { +- vp3_dequant(s, s->all_fragments + i, plane, 0, block); ++ int index; ++ index = vp3_dequant(s, s->all_fragments + i, plane, 0, block); ++ if (index > 63) ++ continue; + if(s->avctx->idct_algo!=FF_IDCT_VP3) + block[0] += 128<<3; + s->dsp.idct_put( +@@ -1574,7 +1581,10 @@ static void render_slice(Vp3DecodeContext *s, int slice) + stride, + block); + } else { +- if (vp3_dequant(s, s->all_fragments + i, plane, 1, block)) { ++ int index = vp3_dequant(s, s->all_fragments + i, plane, 1, block); ++ if (index > 63) ++ continue; ++ if (index > 0) { + s->dsp.idct_add( + output_plane + first_pixel, + stride, +-- +2.1.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch new file mode 100644 index 000000000..3c537c77a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-7933.patch @@ -0,0 +1,38 @@ +From 2266b8bc3370856d874334ba62b337ce4f1eb255 Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Wed, 13 May 2015 16:46:06 +0800 +Subject: [PATCH 2/2] gst-ffmpeg: fix CVE-2014-7933 + +Upstream-Status: Backport + +http://git.videolan.org/?p=ffmpeg.git;a=commit;h=33301f00 + +Signed-off-by: Kai Kang +--- + gst-libs/ext/libav/libavformat/matroskadec.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/gst-libs/ext/libav/libavformat/matroskadec.c b/gst-libs/ext/libav/libavformat/matroskadec.c +index 59dce4f..e5f5fc1 100644 +--- a/gst-libs/ext/libav/libavformat/matroskadec.c ++++ b/gst-libs/ext/libav/libavformat/matroskadec.c +@@ -1916,7 +1916,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index, + int64_t timestamp, int flags) + { + MatroskaDemuxContext *matroska = s->priv_data; +- MatroskaTrack *tracks = matroska->tracks.elem; ++ MatroskaTrack *tracks = NULL; + AVStream *st = s->streams[stream_index]; + int i, index, index_sub, index_min; + +@@ -1939,6 +1939,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index, + return 0; + + index_min = index; ++ tracks = matroska->tracks.elem; + for (i=0; i < matroska->tracks.nb_elem; i++) { + tracks[i].audio.pkt_cnt = 0; + tracks[i].audio.sub_packet_cnt = 0; +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch new file mode 100644 index 000000000..ca47c814c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8542.patch @@ -0,0 +1,38 @@ +From 105654e376a736d243aef4a1d121abebce912e6b Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 04:30:58 +0200 +Subject: [PATCH] avcodec/utils: Add case for jv to + avcodec_align_dimensions2() + +(Upstream commit 105654e376a736d243aef4a1d121abebce912e6b) + +Fixes out of array accesses +Fixes: asan_heap-oob_12304aa_8_asan_heap-oob_4da4f3_300_intro.jv + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/utils.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libavcodec/utils.c b/libavcodec/utils.c +index d4f5532..c2c5579 100644 +--- a/gst-libs/ext/libav/libavcodec/utils.c ++++ b/gst-libs/ext/libav/libavcodec/utils.c +@@ -173,6 +173,10 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int l + w_align=4; + h_align=4; + } ++ if (s->codec_id == CODEC_ID_JV){ ++ w_align = 8; ++ h_align = 8; ++ } + break; + case PIX_FMT_BGR24: + if((s->codec_id == CODEC_ID_MSZH) || (s->codec_id == CODEC_ID_ZLIB)){ +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch new file mode 100644 index 000000000..b65e55fc1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8543.patch @@ -0,0 +1,35 @@ +From 8b0e96e1f21b761ca15dbb470cd619a1ebf86c3e Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 14:45:04 +0200 +Subject: [PATCH] avcodec/mmvideo: Bounds check 2nd line of HHV Intra blocks + +(Upstream commit 8b0e96e1f21b761ca15dbb470cd619a1ebf86c3e) + +Fixes out of array access +Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/mmvideo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c +index 026d463..9ff6393 100644 +--- a/gst-libs/ext/libav/libavcodec/mmvideo.c ++++ b/gst-libs/ext/libav/libavcodec/mmvideo.c +@@ -104,7 +104,7 @@ static void mm_decode_intra(MmContext * s, int half_horiz, int half_vert, const + + if (color) { + memset(s->frame.data[0] + y*s->frame.linesize[0] + x, color, run_length); +- if (half_vert) ++ if (half_vert && y + half_vert < s->avctx->height) + memset(s->frame.data[0] + (y+1)*s->frame.linesize[0] + x, color, run_length); + } + x+= run_length; +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch new file mode 100644 index 000000000..a124e3a12 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8544.patch @@ -0,0 +1,56 @@ +From e1c0cfaa419aa5d320540d5a1b3f8fd9b82ab7e5 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 16:08:32 +0200 +Subject: [PATCH] avcodec/tiff: more completely check bpp/bppcount + +(Upstream commit e1c0cfaa419aa5d320540d5a1b3f8fd9b82ab7e5) + +Fixes pixel format selection +Fixes out of array accesses +Fixes: asan_heap-oob_1766029_6_asan_heap-oob_20aa045_332_cov_1823216757_m2-d1d366d7965db766c19a66c7a2ccbb6b.tif + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/tiff.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c +index 6e2096f..0870e31 100644 +--- a/gst-libs/ext/libav/libavcodec/tiff.c ++++ b/gst-libs/ext/libav/libavcodec/tiff.c +@@ -324,11 +324,11 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t * + s->height = value; + break; + case TIFF_BPP: +- s->bppcount = count; +- if(count > 4){ +- av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", s->bpp, count); ++ if(count > 4U){ ++ av_log(s->avctx, AV_LOG_ERROR, "This format is not supported (bpp=%d, %d components)\n", value, count); + return -1; + } ++ s->bppcount = count; + if(count == 1) s->bpp = value; + else{ + switch(type){ +@@ -344,6 +344,13 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t * + s->bpp = -1; + } + } ++ if (s->bpp > 64U) { ++ av_log(s->avctx, AV_LOG_ERROR, ++ "This format is not supported (bpp=%d, %d components)\n", ++ s->bpp, count); ++ s->bpp = 0; ++ return AVERROR_INVALIDDATA; ++ } + break; + case TIFF_SAMPLES_PER_PIXEL: + if (count != 1) { +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch new file mode 100644 index 000000000..29d5f776a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8545.patch @@ -0,0 +1,36 @@ +From 3e2b745020c2dbf0201fe7df3dad9e7e0b2e1bb6 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 17:35:58 +0200 +Subject: [PATCH] avcodec/pngdec: Check bits per pixel before setting + monoblack pixel format + +(Upstream commit 3e2b745020c2dbf0201fe7df3dad9e7e0b2e1bb6) + +Fixes out of array accesses +Fixes: asan_heap-oob_14dbfcf_4_asan_heap-oob_1ce5767_179_add_method_small.png + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/pngdec.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c +index da91aab..f3603b3 100644 +--- a/gst-libs/ext/libav/libavcodec/pngdec.c ++++ b/gst-libs/ext/libav/libavcodec/pngdec.c +@@ -481,7 +481,7 @@ static int decode_frame(AVCodecContext *avctx, + } else if (s->bit_depth == 16 && + s->color_type == PNG_COLOR_TYPE_RGB) { + avctx->pix_fmt = PIX_FMT_RGB48BE; +- } else if (s->bit_depth == 1 && ++ } else if (s->bit_depth == 1 && s->bits_per_pixel == 1 && + s->color_type == PNG_COLOR_TYPE_GRAY) { + avctx->pix_fmt = PIX_FMT_MONOBLACK; + } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) { +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch new file mode 100644 index 000000000..d55d9ebe6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8546.patch @@ -0,0 +1,35 @@ +From e7e5114c506957f40aafd794e06de1a7e341e9d5 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 19:33:01 +0200 +Subject: [PATCH] avcodec/cinepak: fix integer underflow + +(Upstream commit e7e5114c506957f40aafd794e06de1a7e341e9d5) + +Fixes out of array access +Fixes: asan_heap-oob_4da0ba_6_asan_heap-oob_4da0ba_241_cvid_crash.avi + +Upstream-status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/cinepak.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c +index 4746289..f651c48 100644 +--- a/gst-libs/ext/libav/libavcodec/cinepak.c ++++ b/gst-libs/ext/libav/libavcodec/cinepak.c +@@ -125,7 +125,7 @@ static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip, + const uint8_t *eod = (data + size); + uint32_t flag, mask; + cvid_codebook *codebook; +- unsigned int x, y; ++ int x, y; + uint32_t iy[4]; + uint32_t iu[2]; + uint32_t iv[2]; +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch new file mode 100644 index 000000000..a8616fa55 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-8547.patch @@ -0,0 +1,59 @@ +From 8f1457864be8fb9653643519dea1c6492f1dde57 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Fri, 3 Oct 2014 20:15:52 +0200 +Subject: [PATCH] avcodec/gifdec: factorize interleave end handling out + +(Upstream commit 8f1457864be8fb9653643519dea1c6492f1dde57) + +also change it to a loop +Fixes out of array access +Fixes: asan_heap-oob_ca5410_8_asan_heap-oob_ca5410_97_ID_LSD_Size_Less_Then_Data_Inter_3.gif + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/gifdec.c | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) + +diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c +index dee48f5..90de38b 100644 +--- a/gst-libs/ext/libav/libavcodec/gifdec.c ++++ b/gst-libs/ext/libav/libavcodec/gifdec.c +@@ -271,26 +271,21 @@ static int gif_read_image(GifState *s, AVFrame *frame) + case 1: + y1 += 8; + ptr += linesize * 8; +- if (y1 >= height) { +- y1 = pass ? 2 : 4; +- ptr = ptr1 + linesize * y1; +- pass++; +- } + break; + case 2: + y1 += 4; + ptr += linesize * 4; +- if (y1 >= height) { +- y1 = 1; +- ptr = ptr1 + linesize; +- pass++; +- } + break; + case 3: + y1 += 2; + ptr += linesize * 2; + break; + } ++ while (y1 >= height) { ++ y1 = 4 >> pass; ++ ptr = ptr1 + linesize * y1; ++ pass++; ++ } + } else { + ptr += linesize; + } +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch new file mode 100644 index 000000000..0553ceefd --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9318.patch @@ -0,0 +1,37 @@ +From 0d3a3b9f8907625b361420d48fe05716859620ff Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Wed, 26 Nov 2014 18:56:39 +0100 +Subject: [PATCH] avcodec/rawdec: Check the return code of + avpicture_get_size() + +(Upstream commit 1d3a3b9f8907625b361420d48fe05716859620ff) + +Fixes out of array access +Fixes: asan_heap-oob_22388d0_3435_cov_3297128910_small_roll5_FlashCine1.cine +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind + +Upstream-Status: Backport + +Signed-off-by: Michael Niedermayer +Signed-off-by: Yue Tao +--- + libavcodec/rawdec.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c +index 28792a1..647dfa9 100644 +--- a/gst-libs/ext/libav/libavcodec/rawdec.c ++++ b/gst-libs/ext/libav/libavcodec/rawdec.c +@@ -87,6 +87,9 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx) + + ff_set_systematic_pal2(context->palette, avctx->pix_fmt); + context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); ++ if (context->length < 0) ++ return context->length; ++ + if((avctx->bits_per_coded_sample == 4 || avctx->bits_per_coded_sample == 2) && + avctx->pix_fmt==PIX_FMT_PAL8 && + (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))){ +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch new file mode 100644 index 000000000..5dda4cca2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/gst-ffmpeg-fix-CVE-2014-9603.patch @@ -0,0 +1,41 @@ +From dc68faf8339a885bc55fabe5b01f1de4f8f3782c Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Wed, 13 May 2015 16:30:53 +0800 +Subject: [PATCH 1/2] gst-ffmpeg: fix CVE-2014-9603 + +Upstream-Status: Backport + +Upstream is version 2.x and vmdav.c is splitted into 2 files vmdaudio.c +and vmdvideo.c. Becuase source code changes, just partly backport commit which +is applicable to version 0.10.13 to fix CVE-2014-9603. + +http://git.videolan.org/?p=ffmpeg.git;a=commit;h=3030fb7e0d41836f8add6399e9a7c7b740b48bfd + +Signed-off-by: Kai Kang +--- + gst-libs/ext/libav/libavcodec/vmdav.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/gst-libs/ext/libav/libavcodec/vmdav.c b/gst-libs/ext/libav/libavcodec/vmdav.c +index d258252..ba88ad8 100644 +--- a/gst-libs/ext/libav/libavcodec/vmdav.c ++++ b/gst-libs/ext/libav/libavcodec/vmdav.c +@@ -294,10 +294,13 @@ static void vmd_decode(VmdVideoContext *s) + len = *pb++; + if (len & 0x80) { + len = (len & 0x7F) + 1; +- if (*pb++ == 0xFF) ++ if (*pb++ == 0xFF) { + len = rle_unpack(pb, &dp[ofs], len, frame_width - ofs); +- else ++ } else { ++ if (ofs + len > frame_width) ++ return; + memcpy(&dp[ofs], pb, len); ++ } + pb += len; + ofs += len; + } else { +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch new file mode 100644 index 000000000..ade24dc06 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch @@ -0,0 +1,57 @@ +Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1 + +Fixes these errors on x86 + +libavcodec/x86/h264_qpel_mmx.c: Assembler messages: +libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' +libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' +make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1 + + +Signed-off-by: Khem Raj +Upstream-Status: Backport +Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c +=================================================================== +--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700 ++++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700 +@@ -398,7 +398,7 @@ + "2: \n\t"\ + \ + : "+a"(src), "+c"(dst)\ +- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\ ++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\ + : "memory"\ + );\ + src += 4-(h+5)*srcStride;\ +@@ -446,7 +446,7 @@ + QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\ + "2: \n\t"\ + : "+a"(src)\ +- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\ ++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\ + : "memory"\ + );\ + tmp += 4;\ +@@ -823,7 +823,7 @@ + "2: \n\t"\ + \ + : "+a"(src), "+c"(dst)\ +- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\ ++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\ + : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \ + "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\ + "memory"\ +@@ -878,7 +878,7 @@ + QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48) + "2: \n\t" + : "+a"(src) +- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size) ++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size) + : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7",) + "memory" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch new file mode 100644 index 000000000..186075220 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav-9.patch @@ -0,0 +1,9304 @@ +Taken from gentoo patchset: +http://dev.gentoo.org/~tetromino/distfiles/gst-plugins-ffmpeg/gst-ffmpeg-0.10.13_p2012.11-libav-9-patches.tar.xz + +Upstream-Status: Pending + +Contains following changes, rebased to apply on top of our changes +0002-Fix-includes-for-systemwide-build.patch +0003-libav-Switch-to-non-deprecated-symbols.patch +0005-av-Update-for-some-constant-changes.patch +0006-av-Remove-palette-support-for-now.patch +0007-av-Port-remaining-simple-bits.patch +0008-av-Use-av_codec_is_-en-de-coder-API-instead-of-priva.patch +0009-avprotocol-Port-from-the-URL-protocol-handler-to-san.patch +0010-avdec-don-t-wait-for-keyframe.patch + +Following changes were skipped: +0001-Partially-revert-commit-0300801b.patch +0004-av-update-to-use-AVOption-variants.patch +0011-av_get_bits_per_sample_format-was-removed-in-libav-9.patch + +Signed-off-by: Martin Jansa + +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.c 2011-10-31 11:14:03.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.c 2014-08-08 15:26:07.872857555 +0200 +@@ -151,9 +151,6 @@ + #endif + gst_ffmpegaudioresample_register (plugin); + +- av_register_protocol2 (&gstreamer_protocol, sizeof (URLProtocol)); +- av_register_protocol2 (&gstpipe_protocol, sizeof (URLProtocol)); +- + /* Now we can return the pointer to the newly created Plugin object. */ + return TRUE; + } +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.h gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.h +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpeg.h 2011-05-17 10:53:16.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpeg.h 2014-08-08 15:26:07.872857555 +0200 +@@ -58,10 +58,13 @@ + int gst_ffmpeg_avcodec_close (AVCodecContext *avctx); + int gst_ffmpeg_av_find_stream_info(AVFormatContext *ic); + +-G_END_DECLS ++int gst_ffmpegdata_open (GstPad * pad, int flags, AVIOContext ** context); ++int gst_ffmpegdata_close (AVIOContext * h); ++typedef struct _GstFFMpegPipe GstFFMpegPipe; ++int gst_ffmpeg_pipe_open (GstFFMpegPipe *ffpipe, int flags, AVIOContext ** context); ++int gst_ffmpeg_pipe_close (AVIOContext * h); + +-extern URLProtocol gstreamer_protocol; +-extern URLProtocol gstpipe_protocol; ++G_END_DECLS + + /* use GST_FFMPEG URL_STREAMHEADER with URL_WRONLY if the first + * buffer should be used as streamheader property on the pad's caps. */ +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcfg.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcfg.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcfg.c 2011-07-12 16:35:27.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcfg.c 2014-08-08 15:24:17.899853612 +0200 +@@ -147,7 +147,6 @@ + {FF_DCT_FASTINT, "Fast Integer", "fastint"}, + {FF_DCT_INT, "Accurate Integer", "int"}, + {FF_DCT_MMX, "MMX", "mmx"}, +- {FF_DCT_MLIB, "MLIB", "mlib"}, + {FF_DCT_ALTIVEC, "ALTIVEC", "altivec"}, + {FF_DCT_FAAN, "FAAN", "faan"}, + {0, NULL, NULL}, +@@ -173,8 +172,6 @@ + {FF_IDCT_SIMPLE, "Simple", "simple"}, + {FF_IDCT_SIMPLEMMX, "Simple MMX", "simplemmx"}, + {FF_IDCT_LIBMPEG2MMX, "LIBMPEG2MMX", "libmpeg2mmx"}, +- {FF_IDCT_PS2, "PS2", "ps2"}, +- {FF_IDCT_MLIB, "MLIB", "mlib"}, + {FF_IDCT_ARM, "ARM", "arm"}, + {FF_IDCT_ALTIVEC, "ALTIVEC", "altivec"}, + {FF_IDCT_SH4, "SH4", "sh4"}, +@@ -263,16 +260,11 @@ + + if (!ffmpeg_flags_type) { + static const GFlagsValue ffmpeg_flags[] = { +- {CODEC_FLAG_OBMC, "Use overlapped block motion compensation (h263+)", +- "obmc"}, + {CODEC_FLAG_QSCALE, "Use fixed qscale", "qscale"}, + {CODEC_FLAG_4MV, "Allow 4 MV per MB", "4mv"}, +- {CODEC_FLAG_H263P_AIV, "H.263 alternative inter VLC", "aiv"}, + {CODEC_FLAG_QPEL, "Quartel Pel Motion Compensation", "qpel"}, + {CODEC_FLAG_GMC, "GMC", "gmc"}, + {CODEC_FLAG_MV0, "Always try a MB with MV (0,0)", "mv0"}, +- {CODEC_FLAG_PART, +- "Store MV, DC and AC coefficients in seperate partitions", "part"}, + {CODEC_FLAG_LOOP_FILTER, "Loop filter", "loop-filter"}, + {CODEC_FLAG_GRAY, "Only decode/encode grayscale", "gray"}, + {CODEC_FLAG_NORMALIZE_AQP, +@@ -282,13 +274,9 @@ + "global-headers"}, + {CODEC_FLAG_AC_PRED, "H263 Advanced Intra Coding / MPEG4 AC prediction", + "aic"}, +- {CODEC_FLAG_H263P_UMV, "Unlimited Motion Vector", "umv"}, + {CODEC_FLAG_CBP_RD, "Rate Distoration Optimization for CBP", "cbp-rd"}, + {CODEC_FLAG_QP_RD, "Rate Distoration Optimization for QP selection", + "qp-rd"}, +- {CODEC_FLAG_H263P_SLICE_STRUCT, "H263 slice struct", "ss"}, +- {CODEC_FLAG_SVCD_SCAN_OFFSET, +- "Reserve space for SVCD scan offset user data", "scanoffset"}, + {CODEC_FLAG_CLOSED_GOP, "Closed GOP", "closedgop"}, + {0, NULL, NULL}, + }; +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c 2011-10-31 11:14:03.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c 2014-08-08 15:31:30.968869139 +0200 +@@ -25,8 +25,10 @@ + #include + #ifdef HAVE_FFMPEG_UNINSTALLED + #include ++#include + #else + #include ++#include + #endif + #include + +@@ -35,43 +37,6 @@ + + #include + +-/* +- * Read a palette from a caps. +- */ +- +-static void +-gst_ffmpeg_get_palette (const GstCaps * caps, AVCodecContext * context) +-{ +- GstStructure *str = gst_caps_get_structure (caps, 0); +- const GValue *palette_v; +- const GstBuffer *palette; +- +- /* do we have a palette? */ +- if ((palette_v = gst_structure_get_value (str, "palette_data")) && context) { +- palette = gst_value_get_buffer (palette_v); +- if (GST_BUFFER_SIZE (palette) >= AVPALETTE_SIZE) { +- if (context->palctrl) +- av_free (context->palctrl); +- context->palctrl = av_malloc (sizeof (AVPaletteControl)); +- context->palctrl->palette_changed = 1; +- memcpy (context->palctrl->palette, GST_BUFFER_DATA (palette), +- AVPALETTE_SIZE); +- } +- } +-} +- +-static void +-gst_ffmpeg_set_palette (GstCaps * caps, AVCodecContext * context) +-{ +- if (context->palctrl) { +- GstBuffer *palette = gst_buffer_new_and_alloc (AVPALETTE_SIZE); +- +- memcpy (GST_BUFFER_DATA (palette), context->palctrl->palette, +- AVPALETTE_SIZE); +- gst_caps_set_simple (caps, "palette_data", GST_TYPE_BUFFER, palette, NULL); +- } +-} +- + /* IMPORTANT: Keep this sorted by the ffmpeg channel masks */ + static const struct + { +@@ -79,26 +44,26 @@ + GstAudioChannelPosition gst; + } _ff_to_gst_layout[] = { + { +- CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { +- CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, { +- CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, { +- CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, { +- CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, { +- CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, { +- CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, { +- CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, { +- CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, { +- CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, { +- CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, { +- CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { +- CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { +- CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT} ++ AV_CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { ++ AV_CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, { ++ AV_CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, { ++ AV_CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, { ++ AV_CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, { ++ AV_CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, { ++ AV_CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, { ++ AV_CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, { ++ AV_CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, { ++ AV_CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, { ++ AV_CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, { ++ AV_CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { ++ AV_CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT} + }; + + static GstAudioChannelPosition * +@@ -342,8 +307,8 @@ + + if (channel_layout == 0) { + const guint64 default_channel_set[] = { +- 0, 0, CH_LAYOUT_SURROUND, CH_LAYOUT_QUAD, CH_LAYOUT_5POINT0, +- CH_LAYOUT_5POINT1, 0, CH_LAYOUT_7POINT1 ++ 0, 0, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_5POINT0, ++ AV_CH_LAYOUT_5POINT1, 0, AV_CH_LAYOUT_7POINT1 + }; + + switch (codec_id) { +@@ -1267,8 +1232,6 @@ + case CODEC_ID_FLIC: + case CODEC_ID_VMDVIDEO: + case CODEC_ID_VMDAUDIO: +- case CODEC_ID_SONIC: +- case CODEC_ID_SONIC_LS: + case CODEC_ID_SNOW: + case CODEC_ID_VIXL: + case CODEC_ID_QPEG: +@@ -1689,11 +1652,6 @@ + gst_buffer_unref (data); + } + +- /* palette */ +- if (context) { +- gst_ffmpeg_set_palette (caps, context); +- } +- + GST_LOG ("caps for codec_id=%d: %" GST_PTR_FORMAT, codec_id, caps); + + } else { +@@ -1830,9 +1788,6 @@ + "bpp", G_TYPE_INT, bpp, + "depth", G_TYPE_INT, depth, + "endianness", G_TYPE_INT, endianness, NULL); +- if (caps && context) { +- gst_ffmpeg_set_palette (caps, context); +- } + } + } else if (fmt) { + caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-yuv", +@@ -1857,7 +1812,7 @@ + */ + + static GstCaps * +-gst_ffmpeg_smpfmt_to_caps (enum SampleFormat sample_fmt, ++gst_ffmpeg_smpfmt_to_caps (enum AVSampleFormat sample_fmt, + AVCodecContext * context, enum CodecID codec_id) + { + GstCaps *caps = NULL; +@@ -1867,22 +1822,22 @@ + gboolean signedness = FALSE; + + switch (sample_fmt) { +- case SAMPLE_FMT_S16: ++ case AV_SAMPLE_FMT_S16: + signedness = TRUE; + bpp = 16; + break; + +- case SAMPLE_FMT_S32: ++ case AV_SAMPLE_FMT_S32: + signedness = TRUE; + bpp = 32; + break; + +- case SAMPLE_FMT_FLT: ++ case AV_SAMPLE_FMT_FLT: + integer = FALSE; + bpp = 32; + break; + +- case SAMPLE_FMT_DBL: ++ case AV_SAMPLE_FMT_DBL: + integer = FALSE; + bpp = 64; + break; +@@ -1941,12 +1896,12 @@ + } + } else { + GstCaps *temp; +- enum SampleFormat i; ++ enum AVSampleFormat i; + AVCodecContext ctx = { 0, }; + + ctx.channels = -1; + caps = gst_caps_new_empty (); +- for (i = 0; i <= SAMPLE_FMT_DBL; i++) { ++ for (i = 0; i <= AV_SAMPLE_FMT_DBL; i++) { + temp = gst_ffmpeg_smpfmt_to_caps (i, encode ? &ctx : NULL, codec_id); + if (temp != NULL) { + gst_caps_append (caps, temp); +@@ -2049,9 +2004,9 @@ + gst_structure_get_int (structure, "endianness", &endianness)) { + if (endianness == G_BYTE_ORDER) { + if (width == 32) +- context->sample_fmt = SAMPLE_FMT_FLT; ++ context->sample_fmt = AV_SAMPLE_FMT_FLT; + else if (width == 64) +- context->sample_fmt = SAMPLE_FMT_DBL; ++ context->sample_fmt = AV_SAMPLE_FMT_DBL; + } + } + } else { +@@ -2062,9 +2017,9 @@ + gst_structure_get_int (structure, "endianness", &endianness)) { + if ((endianness == G_BYTE_ORDER) && (signedness == TRUE)) { + if ((width == 16) && (depth == 16)) +- context->sample_fmt = SAMPLE_FMT_S16; ++ context->sample_fmt = AV_SAMPLE_FMT_S16; + else if ((width == 32) && (depth == 32)) +- context->sample_fmt = SAMPLE_FMT_S32; ++ context->sample_fmt = AV_SAMPLE_FMT_S32; + } + } + } +@@ -2190,7 +2145,6 @@ + } else { + if (bpp == 8) { + context->pix_fmt = PIX_FMT_PAL8; +- gst_ffmpeg_get_palette (caps, context); + } + } + } +@@ -2576,7 +2530,6 @@ + switch (codec_type) { + case AVMEDIA_TYPE_VIDEO: + gst_ffmpeg_caps_to_pixfmt (caps, context, codec_id == CODEC_ID_RAWVIDEO); +- gst_ffmpeg_get_palette (caps, context); + break; + case AVMEDIA_TYPE_AUDIO: + gst_ffmpeg_caps_to_smpfmt (caps, context, FALSE); +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.orig +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.orig 2014-08-08 15:30:34.006867097 +0200 +@@ -0,0 +1,3447 @@ ++/* GStreamer ++ * Copyright (C) <1999> Erik Walthinsen ++ * This file: ++ * Copyright (c) 2002-2004 Ronald Bultje ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++#include ++#ifdef HAVE_FFMPEG_UNINSTALLED ++#include ++#include > ++#else ++#include ++#include ++#endif ++#include ++ ++#include "gstffmpeg.h" ++#include "gstffmpegcodecmap.h" ++ ++#include ++ ++/* ++ * Read a palette from a caps. ++ */ ++ ++static void ++gst_ffmpeg_get_palette (const GstCaps * caps, AVCodecContext * context) ++{ ++ GstStructure *str = gst_caps_get_structure (caps, 0); ++ const GValue *palette_v; ++ const GstBuffer *palette; ++ ++ /* do we have a palette? */ ++ if ((palette_v = gst_structure_get_value (str, "palette_data")) && context) { ++ palette = gst_value_get_buffer (palette_v); ++ if (GST_BUFFER_SIZE (palette) >= AVPALETTE_SIZE) { ++ if (context->palctrl) ++ av_free (context->palctrl); ++ context->palctrl = av_malloc (sizeof (AVPaletteControl)); ++ context->palctrl->palette_changed = 1; ++ memcpy (context->palctrl->palette, GST_BUFFER_DATA (palette), ++ AVPALETTE_SIZE); ++ } ++ } ++} ++ ++static void ++gst_ffmpeg_set_palette (GstCaps * caps, AVCodecContext * context) ++{ ++ if (context->palctrl) { ++ GstBuffer *palette = gst_buffer_new_and_alloc (AVPALETTE_SIZE); ++ ++ memcpy (GST_BUFFER_DATA (palette), context->palctrl->palette, ++ AVPALETTE_SIZE); ++ gst_caps_set_simple (caps, "palette_data", GST_TYPE_BUFFER, palette, NULL); ++ } ++} ++ ++/* IMPORTANT: Keep this sorted by the ffmpeg channel masks */ ++static const struct ++{ ++ guint64 ff; ++ GstAudioChannelPosition gst; ++} _ff_to_gst_layout[] = { ++ { ++ AV_CH_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { ++ AV_CH_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, { ++ AV_CH_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER}, { ++ AV_CH_LOW_FREQUENCY, GST_AUDIO_CHANNEL_POSITION_LFE}, { ++ AV_CH_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT}, { ++ AV_CH_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, { ++ AV_CH_FRONT_LEFT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER}, { ++ AV_CH_FRONT_RIGHT_OF_CENTER, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, { ++ AV_CH_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, { ++ AV_CH_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT}, { ++ AV_CH_SIDE_RIGHT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, { ++ AV_CH_TOP_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_LEFT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_CENTER, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_TOP_BACK_RIGHT, GST_AUDIO_CHANNEL_POSITION_NONE}, { ++ AV_CH_STEREO_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT}, { ++ AV_CH_STEREO_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT} ++}; ++ ++static GstAudioChannelPosition * ++gst_ff_channel_layout_to_gst (guint64 channel_layout, guint channels) ++{ ++ guint nchannels = 0, i, j; ++ GstAudioChannelPosition *pos = NULL; ++ gboolean none_layout = FALSE; ++ ++ for (i = 0; i < 64; i++) { ++ if ((channel_layout & (G_GUINT64_CONSTANT (1) << i)) != 0) { ++ nchannels++; ++ } ++ } ++ ++ if (channel_layout == 0) { ++ nchannels = channels; ++ none_layout = TRUE; ++ } ++ ++ if (nchannels != channels) { ++ GST_ERROR ("Number of channels is different (%u != %u)", channels, ++ nchannels); ++ return NULL; ++ } ++ ++ pos = g_new (GstAudioChannelPosition, nchannels); ++ ++ for (i = 0, j = 0; i < G_N_ELEMENTS (_ff_to_gst_layout); i++) { ++ if ((channel_layout & _ff_to_gst_layout[i].ff) != 0) { ++ pos[j++] = _ff_to_gst_layout[i].gst; ++ ++ if (_ff_to_gst_layout[i].gst == GST_AUDIO_CHANNEL_POSITION_NONE) ++ none_layout = TRUE; ++ } ++ } ++ ++ if (j != nchannels) { ++ GST_WARNING ("Unknown channels in channel layout - assuming NONE layout"); ++ none_layout = TRUE; ++ } ++ ++ if (!none_layout && !gst_audio_check_channel_positions (pos, nchannels)) { ++ GST_ERROR ("Invalid channel layout %" G_GUINT64_FORMAT ++ " - assuming NONE layout", channel_layout); ++ none_layout = TRUE; ++ } ++ ++ if (none_layout) { ++ if (nchannels == 1) { ++ pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO; ++ } else if (nchannels == 2) { ++ pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; ++ pos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; ++ } else if (channel_layout == 0) { ++ g_free (pos); ++ pos = NULL; ++ } else { ++ for (i = 0; i < nchannels; i++) ++ pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE; ++ } ++ } ++ ++ if (nchannels == 1 && pos[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER) { ++ GST_DEBUG ("mono common case; won't set channel positions"); ++ g_free (pos); ++ pos = NULL; ++ } else if (nchannels == 2 && pos[0] == GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT ++ && pos[1] == GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT) { ++ GST_DEBUG ("stereo common case; won't set channel positions"); ++ g_free (pos); ++ pos = NULL; ++ } ++ ++ return pos; ++} ++ ++/* this macro makes a caps width fixed or unfixed width/height ++ * properties depending on whether we've got a context. ++ * ++ * See below for why we use this. ++ * ++ * We should actually do this stuff at the end, like in riff-media.c, ++ * but I'm too lazy today. Maybe later. ++ */ ++static GstCaps * ++gst_ff_vid_caps_new (AVCodecContext * context, enum CodecID codec_id, ++ const char *mimetype, const char *fieldname, ...) ++{ ++ GstStructure *structure = NULL; ++ GstCaps *caps = NULL; ++ va_list var_args; ++ gint i; ++ ++ GST_LOG ("context:%p, codec_id:%d, mimetype:%s", context, codec_id, mimetype); ++ ++ /* fixed, non probing context */ ++ if (context != NULL && context->width != -1) { ++ gint num, denom; ++ ++ caps = gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, context->width, ++ "height", G_TYPE_INT, context->height, NULL); ++ ++ num = context->time_base.den / context->ticks_per_frame; ++ denom = context->time_base.num; ++ ++ if (!denom) { ++ GST_LOG ("invalid framerate: %d/0, -> %d/1", num, num); ++ denom = 1; ++ } ++ if (gst_util_fraction_compare (num, denom, 1000, 1) > 0) { ++ GST_LOG ("excessive framerate: %d/%d, -> 0/1", num, denom); ++ num = 0; ++ denom = 1; ++ } ++ GST_LOG ("setting framerate: %d/%d", num, denom); ++ gst_caps_set_simple (caps, ++ "framerate", GST_TYPE_FRACTION, num, denom, NULL); ++ } else { ++ /* so we are after restricted caps in this case */ ++ switch (codec_id) { ++ case CODEC_ID_H261: ++ { ++ caps = gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, 352, ++ "height", G_TYPE_INT, 288, ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); ++ gst_caps_append (caps, gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, 176, ++ "height", G_TYPE_INT, 144, ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL)); ++ break; ++ } ++ case CODEC_ID_H263: ++ { ++ /* 128x96, 176x144, 352x288, 704x576, and 1408x1152. slightly reordered ++ * because we want automatic negotiation to go as close to 320x240 as ++ * possible. */ ++ const static gint widths[] = { 352, 704, 176, 1408, 128 }; ++ const static gint heights[] = { 288, 576, 144, 1152, 96 }; ++ GstCaps *temp; ++ gint n_sizes = G_N_ELEMENTS (widths); ++ ++ caps = gst_caps_new_empty (); ++ for (i = 0; i < n_sizes; i++) { ++ temp = gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, widths[i], ++ "height", G_TYPE_INT, heights[i], ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); ++ ++ gst_caps_append (caps, temp); ++ } ++ break; ++ } ++ case CODEC_ID_DVVIDEO: ++ { ++ static struct ++ { ++ guint32 csp; ++ gint width, height; ++ gint par_n, par_d; ++ gint framerate_n, framerate_d; ++ } profiles[] = { ++ { ++ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 480, 10, 11, 30000, 1001}, { ++ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 480, 40, 33, 30000, 1001}, { ++ GST_MAKE_FOURCC ('I', '4', '2', '0'), 720, 576, 59, 54, 25, 1}, { ++ GST_MAKE_FOURCC ('I', '4', '2', '0'), 720, 576, 118, 81, 25, 1}, { ++ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 576, 59, 54, 25, 1}, { ++ GST_MAKE_FOURCC ('Y', '4', '1', 'B'), 720, 576, 118, 81, 25, 1} ++ }; ++ GstCaps *temp; ++ gint n_sizes = G_N_ELEMENTS (profiles); ++ ++ caps = gst_caps_new_empty (); ++ for (i = 0; i < n_sizes; i++) { ++ temp = gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, profiles[i].width, ++ "height", G_TYPE_INT, profiles[i].height, ++ "framerate", GST_TYPE_FRACTION, profiles[i].framerate_n, ++ profiles[i].framerate_d, "pixel-aspect-ratio", GST_TYPE_FRACTION, ++ profiles[i].par_n, profiles[i].par_d, NULL); ++ ++ gst_caps_append (caps, temp); ++ } ++ break; ++ } ++ case CODEC_ID_DNXHD: ++ { ++ caps = gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, 1920, ++ "height", G_TYPE_INT, 1080, ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); ++ gst_caps_append (caps, gst_caps_new_simple (mimetype, ++ "width", G_TYPE_INT, 1280, ++ "height", G_TYPE_INT, 720, ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL)); ++ break; ++ } ++ default: ++ break; ++ } ++ } ++ ++ /* no fixed caps or special restrictions applied; ++ * default unfixed setting */ ++ if (!caps) { ++ GST_DEBUG ("Creating default caps"); ++ caps = gst_caps_new_simple (mimetype, ++ "width", GST_TYPE_INT_RANGE, 16, 4096, ++ "height", GST_TYPE_INT_RANGE, 16, 4096, ++ "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); ++ } ++ ++ for (i = 0; i < gst_caps_get_size (caps); i++) { ++ va_start (var_args, fieldname); ++ structure = gst_caps_get_structure (caps, i); ++ gst_structure_set_valist (structure, fieldname, var_args); ++ va_end (var_args); ++ } ++ ++ return caps; ++} ++ ++/* same for audio - now with channels/sample rate ++ */ ++static GstCaps * ++gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id, ++ const char *mimetype, const char *fieldname, ...) ++{ ++ GstCaps *caps = NULL; ++ GstStructure *structure = NULL; ++ gint i; ++ va_list var_args; ++ ++ /* fixed, non-probing context */ ++ if (context != NULL && context->channels != -1) { ++ GstAudioChannelPosition *pos; ++ guint64 channel_layout = context->channel_layout; ++ ++ if (channel_layout == 0) { ++ const guint64 default_channel_set[] = { ++ 0, 0, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_5POINT0, ++ AV_CH_LAYOUT_5POINT1, 0, AV_CH_LAYOUT_7POINT1 ++ }; ++ ++ switch (codec_id) { ++ case CODEC_ID_EAC3: ++ case CODEC_ID_AC3: ++ case CODEC_ID_DTS: ++ if (context->channels > 0 ++ && context->channels < G_N_ELEMENTS (default_channel_set)) ++ channel_layout = default_channel_set[context->channels - 1]; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ caps = gst_caps_new_simple (mimetype, ++ "rate", G_TYPE_INT, context->sample_rate, ++ "channels", G_TYPE_INT, context->channels, NULL); ++ ++ pos = gst_ff_channel_layout_to_gst (channel_layout, context->channels); ++ if (pos != NULL) { ++ gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos); ++ g_free (pos); ++ } ++ } else { ++ gint maxchannels = 2; ++ const gint *rates = NULL; ++ gint n_rates = 0; ++ ++ /* so we must be after restricted caps in this case */ ++ switch (codec_id) { ++ case CODEC_ID_AAC: ++ case CODEC_ID_AAC_LATM: ++ case CODEC_ID_DTS: ++ maxchannels = 6; ++ break; ++ case CODEC_ID_MP2: ++ { ++ const static gint l_rates[] = ++ { 48000, 44100, 32000, 24000, 22050, 16000 }; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ case CODEC_ID_EAC3: ++ case CODEC_ID_AC3: ++ { ++ const static gint l_rates[] = { 48000, 44100, 32000 }; ++ maxchannels = 6; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ case CODEC_ID_ADPCM_G722: ++ { ++ const static gint l_rates[] = { 16000 }; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ maxchannels = 1; ++ break; ++ } ++ case CODEC_ID_ADPCM_G726: ++ { ++ const static gint l_rates[] = { 8000 }; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ maxchannels = 1; ++ break; ++ } ++ case CODEC_ID_ADPCM_SWF: ++ { ++ const static gint l_rates[] = { 11025, 22050, 44100 }; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ case CODEC_ID_ROQ_DPCM: ++ { ++ const static gint l_rates[] = { 22050 }; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ case CODEC_ID_AMR_NB: ++ { ++ const static gint l_rates[] = { 8000 }; ++ maxchannels = 1; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ case CODEC_ID_AMR_WB: ++ { ++ const static gint l_rates[] = { 16000 }; ++ maxchannels = 1; ++ n_rates = G_N_ELEMENTS (l_rates); ++ rates = l_rates; ++ break; ++ } ++ default: ++ break; ++ } ++ ++ /* TODO: handle context->channel_layouts here to set ++ * the list of channel layouts supported by the encoder. ++ * Unfortunately no encoder uses this yet.... ++ */ ++ /* regardless of encode/decode, open up channels if applicable */ ++ /* Until decoders/encoders expose the maximum number of channels ++ * they support, we whitelist them here. */ ++ switch (codec_id) { ++ case CODEC_ID_WMAPRO: ++ case CODEC_ID_TRUEHD: ++ maxchannels = 8; ++ break; ++ default: ++ break; ++ } ++ ++ if (maxchannels == 1) ++ caps = gst_caps_new_simple (mimetype, ++ "channels", G_TYPE_INT, maxchannels, NULL); ++ else ++ caps = gst_caps_new_simple (mimetype, ++ "channels", GST_TYPE_INT_RANGE, 1, maxchannels, NULL); ++ if (n_rates) { ++ GValue list = { 0, }; ++ GstStructure *structure; ++ ++ g_value_init (&list, GST_TYPE_LIST); ++ for (i = 0; i < n_rates; i++) { ++ GValue v = { 0, }; ++ ++ g_value_init (&v, G_TYPE_INT); ++ g_value_set_int (&v, rates[i]); ++ gst_value_list_append_value (&list, &v); ++ g_value_unset (&v); ++ } ++ structure = gst_caps_get_structure (caps, 0); ++ gst_structure_set_value (structure, "rate", &list); ++ g_value_unset (&list); ++ } else ++ gst_caps_set_simple (caps, "rate", GST_TYPE_INT_RANGE, 4000, 96000, NULL); ++ } ++ ++ for (i = 0; i < gst_caps_get_size (caps); i++) { ++ va_start (var_args, fieldname); ++ structure = gst_caps_get_structure (caps, i); ++ gst_structure_set_valist (structure, fieldname, var_args); ++ va_end (var_args); ++ } ++ ++ return caps; ++} ++ ++/* Convert a FFMPEG codec ID and optional AVCodecContext ++ * to a GstCaps. If the context is ommitted, no fixed values ++ * for video/audio size will be included in the GstCaps ++ * ++ * CodecID is primarily meant for compressed data GstCaps! ++ * ++ * encode is a special parameter. gstffmpegdec will say ++ * FALSE, gstffmpegenc will say TRUE. The output caps ++ * depends on this, in such a way that it will be very ++ * specific, defined, fixed and correct caps for encoders, ++ * yet very wide, "forgiving" caps for decoders. Example ++ * for mp3: decode: audio/mpeg,mpegversion=1,layer=[1-3] ++ * but encode: audio/mpeg,mpegversion=1,layer=3,bitrate=x, ++ * rate=x,channels=x. ++ */ ++ ++GstCaps * ++gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, ++ AVCodecContext * context, gboolean encode) ++{ ++ GstCaps *caps = NULL; ++ gboolean buildcaps = FALSE; ++ ++ GST_LOG ("codec_id:%d, context:%p, encode:%d", codec_id, context, encode); ++ ++ switch (codec_id) { ++ case CODEC_ID_MPEG1VIDEO: ++ /* FIXME: bitrate */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg", ++ "mpegversion", G_TYPE_INT, 1, ++ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); ++ break; ++ ++ case CODEC_ID_MPEG2VIDEO: ++ if (encode) { ++ /* FIXME: bitrate */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg", ++ "mpegversion", G_TYPE_INT, 2, ++ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); ++ } else { ++ /* decode both MPEG-1 and MPEG-2; width/height/fps are all in ++ * the MPEG video stream headers, so may be omitted from caps. */ ++ caps = gst_caps_new_simple ("video/mpeg", ++ "mpegversion", GST_TYPE_INT_RANGE, 1, 2, ++ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); ++ } ++ break; ++ ++ case CODEC_ID_MPEG2VIDEO_XVMC: ++ /* this is a special ID - don't need it in GStreamer, I think */ ++ break; ++ ++ case CODEC_ID_H263: ++ if (encode) { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h263", ++ "variant", G_TYPE_STRING, "itu", ++ "h263version", G_TYPE_STRING, "h263", NULL); ++ } else { ++ /* don't pass codec_id, we can decode other variants with the H263 ++ * decoder that don't have specific size requirements ++ */ ++ caps = gst_ff_vid_caps_new (context, CODEC_ID_NONE, "video/x-h263", ++ "variant", G_TYPE_STRING, "itu", NULL); ++ } ++ break; ++ ++ case CODEC_ID_H263P: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h263", ++ "variant", G_TYPE_STRING, "itu", ++ "h263version", G_TYPE_STRING, "h263p", NULL); ++ if (encode && context) { ++ ++ gst_caps_set_simple (caps, ++ "annex-f", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_4MV, ++ "annex-j", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_LOOP_FILTER, ++ "annex-i", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_AC_PRED, ++ "annex-t", G_TYPE_BOOLEAN, context->flags & CODEC_FLAG_AC_PRED, ++ NULL); ++ } ++ break; ++ ++ case CODEC_ID_H263I: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-intel-h263", ++ "variant", G_TYPE_STRING, "intel", NULL); ++ break; ++ ++ case CODEC_ID_H261: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h261", NULL); ++ break; ++ ++ case CODEC_ID_RV10: ++ case CODEC_ID_RV20: ++ case CODEC_ID_RV30: ++ case CODEC_ID_RV40: ++ { ++ gint version; ++ ++ switch (codec_id) { ++ case CODEC_ID_RV40: ++ version = 4; ++ break; ++ case CODEC_ID_RV30: ++ version = 3; ++ break; ++ case CODEC_ID_RV20: ++ version = 2; ++ break; ++ default: ++ version = 1; ++ break; ++ } ++ ++ /* FIXME: context->sub_id must be filled in during decoding */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-pn-realvideo", ++ "systemstream", G_TYPE_BOOLEAN, FALSE, ++ "rmversion", G_TYPE_INT, version, NULL); ++ if (context) { ++ gst_caps_set_simple (caps, "format", G_TYPE_INT, context->sub_id, NULL); ++ if (context->extradata_size >= 8) { ++ gst_caps_set_simple (caps, ++ "subformat", G_TYPE_INT, GST_READ_UINT32_BE (context->extradata), ++ NULL); ++ } ++ } ++ } ++ break; ++ ++ case CODEC_ID_MP1: ++ /* FIXME: bitrate */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", ++ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_MP2: ++ /* FIXME: bitrate */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", ++ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 2, NULL); ++ break; ++ ++ case CODEC_ID_MP3: ++ if (encode) { ++ /* FIXME: bitrate */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", ++ "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL); ++ } else { ++ /* Decodes MPEG-1 layer 1/2/3. Samplerate, channels et al are ++ * in the MPEG audio header, so may be omitted from caps. */ ++ caps = gst_caps_new_simple ("audio/mpeg", ++ "mpegversion", G_TYPE_INT, 1, ++ "layer", GST_TYPE_INT_RANGE, 1, 3, NULL); ++ } ++ break; ++ ++ case CODEC_ID_MUSEPACK7: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, ++ "audio/x-ffmpeg-parsed-musepack", "streamversion", G_TYPE_INT, 7, ++ NULL); ++ break; ++ ++ case CODEC_ID_MUSEPACK8: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, ++ "audio/x-ffmpeg-parsed-musepack", "streamversion", G_TYPE_INT, 8, ++ NULL); ++ break; ++ ++ case CODEC_ID_AC3: ++ /* FIXME: bitrate */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-ac3", NULL); ++ break; ++ ++ case CODEC_ID_EAC3: ++ /* FIXME: bitrate */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-eac3", NULL); ++ break; ++ ++ case CODEC_ID_TRUEHD: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-true-hd", NULL); ++ break; ++ ++ case CODEC_ID_ATRAC1: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, "audio/x-vnd.sony.atrac1", ++ NULL); ++ break; ++ ++ case CODEC_ID_ATRAC3: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, "audio/x-vnd.sony.atrac3", ++ NULL); ++ break; ++ ++ case CODEC_ID_DTS: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dts", NULL); ++ break; ++ ++ case CODEC_ID_APE: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, "audio/x-ffmpeg-parsed-ape", ++ NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "depth", G_TYPE_INT, context->bits_per_coded_sample, NULL); ++ } ++ break; ++ ++ case CODEC_ID_MLP: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mlp", NULL); ++ break; ++ ++ case CODEC_ID_IMC: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-imc", NULL); ++ break; ++ ++ /* MJPEG is normal JPEG, Motion-JPEG and Quicktime MJPEG-A. MJPEGB ++ * is Quicktime's MJPEG-B. LJPEG is lossless JPEG. I don't know what ++ * sp5x is, but it's apparently something JPEG... We don't separate ++ * between those in GStreamer. Should we (at least between MJPEG, ++ * MJPEG-B and sp5x decoding...)? */ ++ case CODEC_ID_MJPEG: ++ case CODEC_ID_LJPEG: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/jpeg", NULL); ++ break; ++ ++ case CODEC_ID_SP5X: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/sp5x", NULL); ++ break; ++ ++ case CODEC_ID_MJPEGB: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mjpeg-b", NULL); ++ break; ++ ++ case CODEC_ID_MPEG4: ++ if (encode && context != NULL) { ++ /* I'm not exactly sure what ffmpeg outputs... ffmpeg itself uses ++ * the AVI fourcc 'DIVX', but 'mp4v' for Quicktime... */ ++ switch (context->codec_tag) { ++ case GST_MAKE_FOURCC ('D', 'I', 'V', 'X'): ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-divx", ++ "divxversion", G_TYPE_INT, 5, NULL); ++ break; ++ case GST_MAKE_FOURCC ('m', 'p', '4', 'v'): ++ default: ++ /* FIXME: bitrate */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg", ++ "systemstream", G_TYPE_BOOLEAN, FALSE, ++ "mpegversion", G_TYPE_INT, 4, NULL); ++ break; ++ } ++ } else { ++ /* The trick here is to separate xvid, divx, mpeg4, 3ivx et al */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/mpeg", ++ "mpegversion", G_TYPE_INT, 4, ++ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); ++ if (encode) { ++ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id, ++ "video/x-divx", "divxversion", G_TYPE_INT, 5, NULL)); ++ } else { ++ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id, ++ "video/x-divx", "divxversion", GST_TYPE_INT_RANGE, 4, 5, ++ NULL)); ++ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id, ++ "video/x-xvid", NULL)); ++ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id, ++ "video/x-3ivx", NULL)); ++ } ++ } ++ break; ++ ++ case CODEC_ID_RAWVIDEO: ++ caps = ++ gst_ffmpeg_codectype_to_caps (AVMEDIA_TYPE_VIDEO, context, codec_id, ++ encode); ++ break; ++ ++ case CODEC_ID_MSMPEG4V1: ++ case CODEC_ID_MSMPEG4V2: ++ case CODEC_ID_MSMPEG4V3: ++ { ++ gint version = 41 + codec_id - CODEC_ID_MSMPEG4V1; ++ ++ /* encode-FIXME: bitrate */ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-msmpeg", ++ "msmpegversion", G_TYPE_INT, version, NULL); ++ if (!encode && codec_id == CODEC_ID_MSMPEG4V3) { ++ gst_caps_append (caps, gst_ff_vid_caps_new (context, codec_id, ++ "video/x-divx", "divxversion", G_TYPE_INT, 3, NULL)); ++ } ++ } ++ break; ++ ++ case CODEC_ID_WMV1: ++ case CODEC_ID_WMV2: ++ { ++ gint version = (codec_id == CODEC_ID_WMV1) ? 1 : 2; ++ ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv", ++ "wmvversion", G_TYPE_INT, version, NULL); ++ } ++ break; ++ ++ case CODEC_ID_FLV1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-flash-video", ++ "flvversion", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_SVQ1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-svq", ++ "svqversion", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_SVQ3: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-svq", ++ "svqversion", G_TYPE_INT, 3, NULL); ++ break; ++ ++ case CODEC_ID_DVAUDIO: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dv", NULL); ++ break; ++ ++ case CODEC_ID_DVVIDEO: ++ { ++ if (encode && context) { ++ guint32 fourcc; ++ ++ switch (context->pix_fmt) { ++ case PIX_FMT_YUYV422: ++ fourcc = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'); ++ break; ++ case PIX_FMT_YUV420P: ++ fourcc = GST_MAKE_FOURCC ('I', '4', '2', '0'); ++ break; ++ case PIX_FMT_YUVA420P: ++ fourcc = GST_MAKE_FOURCC ('A', '4', '2', '0'); ++ break; ++ case PIX_FMT_YUV411P: ++ fourcc = GST_MAKE_FOURCC ('Y', '4', '1', 'B'); ++ break; ++ case PIX_FMT_YUV422P: ++ fourcc = GST_MAKE_FOURCC ('Y', '4', '2', 'B'); ++ break; ++ case PIX_FMT_YUV410P: ++ fourcc = GST_MAKE_FOURCC ('Y', 'U', 'V', '9'); ++ break; ++ default: ++ GST_WARNING ++ ("Couldnt' find fourcc for pixfmt %d, defaulting to I420", ++ context->pix_fmt); ++ fourcc = GST_MAKE_FOURCC ('I', '4', '2', '0'); ++ break; ++ } ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dv", ++ "systemstream", G_TYPE_BOOLEAN, FALSE, ++ "format", GST_TYPE_FOURCC, fourcc, NULL); ++ } else { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dv", ++ "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); ++ } ++ } ++ break; ++ ++ case CODEC_ID_WMAV1: ++ case CODEC_ID_WMAV2: ++ { ++ gint version = (codec_id == CODEC_ID_WMAV1) ? 1 : 2; ++ ++ if (context) { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma", ++ "wmaversion", G_TYPE_INT, version, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ } else { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma", ++ "wmaversion", G_TYPE_INT, version, ++ "block_align", GST_TYPE_INT_RANGE, 0, G_MAXINT, ++ "bitrate", GST_TYPE_INT_RANGE, 0, G_MAXINT, NULL); ++ } ++ } ++ break; ++ case CODEC_ID_WMAPRO: ++ { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wma", ++ "wmaversion", G_TYPE_INT, 3, NULL); ++ break; ++ } ++ ++ case CODEC_ID_WMAVOICE: ++ { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-wms", NULL); ++ break; ++ } ++ ++ case CODEC_ID_MACE3: ++ case CODEC_ID_MACE6: ++ { ++ gint version = (codec_id == CODEC_ID_MACE3) ? 3 : 6; ++ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mace", ++ "maceversion", G_TYPE_INT, version, NULL); ++ } ++ break; ++ ++ case CODEC_ID_HUFFYUV: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-huffyuv", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "bpp", G_TYPE_INT, context->bits_per_coded_sample, NULL); ++ } ++ break; ++ ++ case CODEC_ID_CYUV: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "video/x-compressed-yuv", ++ NULL); ++ break; ++ ++ case CODEC_ID_H264: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-h264", NULL); ++ break; ++ ++ case CODEC_ID_INDEO5: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo", ++ "indeoversion", G_TYPE_INT, 5, NULL); ++ break; ++ ++ case CODEC_ID_INDEO3: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo", ++ "indeoversion", G_TYPE_INT, 3, NULL); ++ break; ++ ++ case CODEC_ID_INDEO2: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo", ++ "indeoversion", G_TYPE_INT, 2, NULL); ++ break; ++ ++ case CODEC_ID_FLASHSV: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "video/x-flash-screen", NULL); ++ break; ++ ++ case CODEC_ID_VP3: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp3", NULL); ++ break; ++ ++ case CODEC_ID_VP5: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp5", NULL); ++ break; ++ ++ case CODEC_ID_VP6: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6", NULL); ++ break; ++ ++ case CODEC_ID_VP6F: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6-flash", NULL); ++ break; ++ ++ case CODEC_ID_VP6A: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp6-alpha", NULL); ++ break; ++ ++ case CODEC_ID_VP8: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vp8", NULL); ++ break; ++ ++ case CODEC_ID_THEORA: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-theora", NULL); ++ break; ++ ++ case CODEC_ID_AAC: ++ { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", NULL); ++ ++ if (!encode) { ++ GValue arr = { 0, }; ++ GValue item = { 0, }; ++ ++ g_value_init (&arr, GST_TYPE_LIST); ++ g_value_init (&item, G_TYPE_INT); ++ g_value_set_int (&item, 2); ++ gst_value_list_append_value (&arr, &item); ++ g_value_set_int (&item, 4); ++ gst_value_list_append_value (&arr, &item); ++ g_value_unset (&item); ++ ++ gst_caps_set_value (caps, "mpegversion", &arr); ++ g_value_unset (&arr); ++ ++ g_value_init (&arr, GST_TYPE_LIST); ++ g_value_init (&item, G_TYPE_STRING); ++ g_value_set_string (&item, "raw"); ++ gst_value_list_append_value (&arr, &item); ++ g_value_set_string (&item, "adts"); ++ gst_value_list_append_value (&arr, &item); ++ g_value_set_string (&item, "adif"); ++ gst_value_list_append_value (&arr, &item); ++ g_value_unset (&item); ++ ++ gst_caps_set_value (caps, "stream-format", &arr); ++ g_value_unset (&arr); ++ } else { ++ gst_caps_set_simple (caps, "mpegversion", G_TYPE_INT, 4, ++ "stream-format", G_TYPE_STRING, "raw", ++ "base-profile", G_TYPE_STRING, "lc", NULL); ++ ++ if (context && context->extradata_size > 0) ++ gst_codec_utils_aac_caps_set_level_and_profile (caps, ++ context->extradata, context->extradata_size); ++ } ++ ++ break; ++ } ++ case CODEC_ID_AAC_LATM: /* LATM/LOAS AAC syntax */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg", ++ "mpegversion", G_TYPE_INT, 4, "stream-format", G_TYPE_STRING, "loas", ++ NULL); ++ break; ++ ++ case CODEC_ID_ASV1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-asus", ++ "asusversion", G_TYPE_INT, 1, NULL); ++ break; ++ case CODEC_ID_ASV2: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-asus", ++ "asusversion", G_TYPE_INT, 2, NULL); ++ break; ++ ++ case CODEC_ID_FFV1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ffv", ++ "ffvversion", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_4XM: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-4xm", NULL); ++ break; ++ ++ case CODEC_ID_XAN_WC3: ++ case CODEC_ID_XAN_WC4: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-xan", ++ "wcversion", G_TYPE_INT, 3 - CODEC_ID_XAN_WC3 + codec_id, NULL); ++ break; ++ ++ case CODEC_ID_CLJR: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, ++ "video/x-cirrus-logic-accupak", NULL); ++ break; ++ ++ case CODEC_ID_FRAPS: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-fraps", NULL); ++ break; ++ ++ case CODEC_ID_MDEC: ++ case CODEC_ID_ROQ: ++ case CODEC_ID_INTERPLAY_VIDEO: ++ buildcaps = TRUE; ++ break; ++ ++ case CODEC_ID_VCR1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ati-vcr", ++ "vcrversion", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_RPZA: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "video/x-apple-video", NULL); ++ break; ++ ++ case CODEC_ID_CINEPAK: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-cinepak", NULL); ++ break; ++ ++ /* WS_VQA belogns here (order) */ ++ ++ case CODEC_ID_MSRLE: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-rle", ++ "layout", G_TYPE_STRING, "microsoft", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL); ++ } else { ++ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL); ++ } ++ break; ++ ++ case CODEC_ID_QTRLE: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-rle", ++ "layout", G_TYPE_STRING, "quicktime", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL); ++ } else { ++ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL); ++ } ++ break; ++ ++ case CODEC_ID_MSVIDEO1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-msvideocodec", ++ "msvideoversion", G_TYPE_INT, 1, NULL); ++ break; ++ ++ case CODEC_ID_WMV3: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv", ++ "wmvversion", G_TYPE_INT, 3, NULL); ++ break; ++ case CODEC_ID_VC1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-wmv", ++ "wmvversion", G_TYPE_INT, 3, "format", GST_TYPE_FOURCC, ++ GST_MAKE_FOURCC ('W', 'V', 'C', '1'), NULL); ++ break; ++ case CODEC_ID_QDM2: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-qdm2", NULL); ++ break; ++ ++ case CODEC_ID_MSZH: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mszh", NULL); ++ break; ++ ++ case CODEC_ID_ZLIB: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-zlib", NULL); ++ break; ++ ++ case CODEC_ID_TRUEMOTION1: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-truemotion", ++ "trueversion", G_TYPE_INT, 1, NULL); ++ break; ++ case CODEC_ID_TRUEMOTION2: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-truemotion", ++ "trueversion", G_TYPE_INT, 2, NULL); ++ break; ++ ++ case CODEC_ID_ULTI: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-ultimotion", ++ NULL); ++ break; ++ ++ case CODEC_ID_TSCC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-camtasia", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL); ++ } else { ++ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 8, 32, NULL); ++ } ++ break; ++ ++ case CODEC_ID_KMVC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-kmvc", NULL); ++ break; ++ ++ case CODEC_ID_NUV: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-nuv", NULL); ++ break; ++ ++ case CODEC_ID_GIF: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/gif", NULL); ++ break; ++ ++ case CODEC_ID_PNG: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/png", NULL); ++ break; ++ ++ case CODEC_ID_PPM: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/ppm", NULL); ++ break; ++ ++ case CODEC_ID_PBM: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/pbm", NULL); ++ break; ++ ++ case CODEC_ID_PAM: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "image/x-portable-anymap", ++ NULL); ++ break; ++ ++ case CODEC_ID_PGM: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "image/x-portable-graymap", ++ NULL); ++ break; ++ ++ case CODEC_ID_PCX: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-pcx", NULL); ++ break; ++ ++ case CODEC_ID_SGI: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-sgi", NULL); ++ break; ++ ++ case CODEC_ID_TARGA: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/x-tga", NULL); ++ break; ++ ++ case CODEC_ID_TIFF: ++ caps = gst_ff_vid_caps_new (context, codec_id, "image/tiff", NULL); ++ break; ++ ++ case CODEC_ID_SUNRAST: ++ caps = ++ gst_ff_vid_caps_new (context, codec_id, "image/x-sun-raster", NULL); ++ break; ++ ++ case CODEC_ID_SMC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-smc", NULL); ++ break; ++ ++ case CODEC_ID_QDRAW: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-qdrw", NULL); ++ break; ++ ++ case CODEC_ID_DNXHD: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-dnxhd", NULL); ++ break; ++ ++ case CODEC_ID_MIMIC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-mimic", NULL); ++ break; ++ ++ case CODEC_ID_VMNC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-vmnc", NULL); ++ break; ++ ++ case CODEC_ID_TRUESPEECH: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, "audio/x-truespeech", NULL); ++ break; ++ ++ case CODEC_ID_QCELP: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/qcelp", NULL); ++ break; ++ ++ case CODEC_ID_AMV: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-amv", NULL); ++ break; ++ ++ case CODEC_ID_AASC: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-aasc", NULL); ++ break; ++ ++ case CODEC_ID_LOCO: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-loco", NULL); ++ break; ++ ++ case CODEC_ID_ZMBV: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-zmbv", NULL); ++ break; ++ ++ case CODEC_ID_LAGARITH: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-lagarith", NULL); ++ break; ++ ++ case CODEC_ID_CSCD: ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-camstudio", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL); ++ } else { ++ gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 8, 32, NULL); ++ } ++ break; ++ ++ case CODEC_ID_WS_VQA: ++ case CODEC_ID_IDCIN: ++ case CODEC_ID_8BPS: ++ case CODEC_ID_FLIC: ++ case CODEC_ID_VMDVIDEO: ++ case CODEC_ID_VMDAUDIO: ++ case CODEC_ID_SNOW: ++ case CODEC_ID_VIXL: ++ case CODEC_ID_QPEG: ++ case CODEC_ID_PGMYUV: ++ case CODEC_ID_FFVHUFF: ++ case CODEC_ID_WNV1: ++ case CODEC_ID_MP3ADU: ++ case CODEC_ID_MP3ON4: ++ case CODEC_ID_WESTWOOD_SND1: ++ case CODEC_ID_MMVIDEO: ++ case CODEC_ID_AVS: ++ case CODEC_ID_CAVS: ++ buildcaps = TRUE; ++ break; ++ ++ /* weird quasi-codecs for the demuxers only */ ++ case CODEC_ID_PCM_S16LE: ++ case CODEC_ID_PCM_S16BE: ++ case CODEC_ID_PCM_U16LE: ++ case CODEC_ID_PCM_U16BE: ++ case CODEC_ID_PCM_S8: ++ case CODEC_ID_PCM_U8: ++ { ++ gint width = 0, depth = 0, endianness = 0; ++ gboolean signedness = FALSE; /* blabla */ ++ ++ switch (codec_id) { ++ case CODEC_ID_PCM_S16LE: ++ width = 16; ++ depth = 16; ++ endianness = G_LITTLE_ENDIAN; ++ signedness = TRUE; ++ break; ++ case CODEC_ID_PCM_S16BE: ++ width = 16; ++ depth = 16; ++ endianness = G_BIG_ENDIAN; ++ signedness = TRUE; ++ break; ++ case CODEC_ID_PCM_U16LE: ++ width = 16; ++ depth = 16; ++ endianness = G_LITTLE_ENDIAN; ++ signedness = FALSE; ++ break; ++ case CODEC_ID_PCM_U16BE: ++ width = 16; ++ depth = 16; ++ endianness = G_BIG_ENDIAN; ++ signedness = FALSE; ++ break; ++ case CODEC_ID_PCM_S8: ++ width = 8; ++ depth = 8; ++ endianness = G_BYTE_ORDER; ++ signedness = TRUE; ++ break; ++ case CODEC_ID_PCM_U8: ++ width = 8; ++ depth = 8; ++ endianness = G_BYTE_ORDER; ++ signedness = FALSE; ++ break; ++ default: ++ g_assert (0); /* don't worry, we never get here */ ++ break; ++ } ++ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-int", ++ "width", G_TYPE_INT, width, ++ "depth", G_TYPE_INT, depth, ++ "endianness", G_TYPE_INT, endianness, ++ "signed", G_TYPE_BOOLEAN, signedness, NULL); ++ } ++ break; ++ ++ case CODEC_ID_PCM_MULAW: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-mulaw", NULL); ++ break; ++ ++ case CODEC_ID_PCM_ALAW: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-alaw", NULL); ++ break; ++ ++ case CODEC_ID_ADPCM_G722: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/G722", NULL); ++ if (context) ++ gst_caps_set_simple (caps, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ break; ++ ++ case CODEC_ID_ADPCM_G726: ++ { ++ /* the G726 decoder can also handle G721 */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-adpcm", ++ "layout", G_TYPE_STRING, "g726", NULL); ++ if (context) ++ gst_caps_set_simple (caps, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ ++ if (!encode) { ++ gst_caps_append (caps, gst_caps_new_simple ("audio/x-adpcm", ++ "layout", G_TYPE_STRING, "g721", ++ "channels", G_TYPE_INT, 1, "rate", G_TYPE_INT, 8000, NULL)); ++ } ++ break; ++ } ++ case CODEC_ID_ADPCM_IMA_QT: ++ case CODEC_ID_ADPCM_IMA_WAV: ++ case CODEC_ID_ADPCM_IMA_DK3: ++ case CODEC_ID_ADPCM_IMA_DK4: ++ case CODEC_ID_ADPCM_IMA_WS: ++ case CODEC_ID_ADPCM_IMA_SMJPEG: ++ case CODEC_ID_ADPCM_IMA_AMV: ++ case CODEC_ID_ADPCM_IMA_ISS: ++ case CODEC_ID_ADPCM_IMA_EA_EACS: ++ case CODEC_ID_ADPCM_IMA_EA_SEAD: ++ case CODEC_ID_ADPCM_MS: ++ case CODEC_ID_ADPCM_4XM: ++ case CODEC_ID_ADPCM_XA: ++ case CODEC_ID_ADPCM_ADX: ++ case CODEC_ID_ADPCM_EA: ++ case CODEC_ID_ADPCM_CT: ++ case CODEC_ID_ADPCM_SWF: ++ case CODEC_ID_ADPCM_YAMAHA: ++ case CODEC_ID_ADPCM_SBPRO_2: ++ case CODEC_ID_ADPCM_SBPRO_3: ++ case CODEC_ID_ADPCM_SBPRO_4: ++ case CODEC_ID_ADPCM_EA_R1: ++ case CODEC_ID_ADPCM_EA_R2: ++ case CODEC_ID_ADPCM_EA_R3: ++ case CODEC_ID_ADPCM_EA_MAXIS_XA: ++ case CODEC_ID_ADPCM_EA_XAS: ++ case CODEC_ID_ADPCM_THP: ++ { ++ const gchar *layout = NULL; ++ ++ switch (codec_id) { ++ case CODEC_ID_ADPCM_IMA_QT: ++ layout = "quicktime"; ++ break; ++ case CODEC_ID_ADPCM_IMA_WAV: ++ layout = "dvi"; ++ break; ++ case CODEC_ID_ADPCM_IMA_DK3: ++ layout = "dk3"; ++ break; ++ case CODEC_ID_ADPCM_IMA_DK4: ++ layout = "dk4"; ++ break; ++ case CODEC_ID_ADPCM_IMA_WS: ++ layout = "westwood"; ++ break; ++ case CODEC_ID_ADPCM_IMA_SMJPEG: ++ layout = "smjpeg"; ++ break; ++ case CODEC_ID_ADPCM_IMA_AMV: ++ layout = "amv"; ++ break; ++ case CODEC_ID_ADPCM_IMA_ISS: ++ layout = "iss"; ++ break; ++ case CODEC_ID_ADPCM_IMA_EA_EACS: ++ layout = "ea-eacs"; ++ break; ++ case CODEC_ID_ADPCM_IMA_EA_SEAD: ++ layout = "ea-sead"; ++ break; ++ case CODEC_ID_ADPCM_MS: ++ layout = "microsoft"; ++ break; ++ case CODEC_ID_ADPCM_4XM: ++ layout = "4xm"; ++ break; ++ case CODEC_ID_ADPCM_XA: ++ layout = "xa"; ++ break; ++ case CODEC_ID_ADPCM_ADX: ++ layout = "adx"; ++ break; ++ case CODEC_ID_ADPCM_EA: ++ layout = "ea"; ++ break; ++ case CODEC_ID_ADPCM_CT: ++ layout = "ct"; ++ break; ++ case CODEC_ID_ADPCM_SWF: ++ layout = "swf"; ++ break; ++ case CODEC_ID_ADPCM_YAMAHA: ++ layout = "yamaha"; ++ break; ++ case CODEC_ID_ADPCM_SBPRO_2: ++ layout = "sbpro2"; ++ break; ++ case CODEC_ID_ADPCM_SBPRO_3: ++ layout = "sbpro3"; ++ break; ++ case CODEC_ID_ADPCM_SBPRO_4: ++ layout = "sbpro4"; ++ break; ++ case CODEC_ID_ADPCM_EA_R1: ++ layout = "ea-r1"; ++ break; ++ case CODEC_ID_ADPCM_EA_R2: ++ layout = "ea-r3"; ++ break; ++ case CODEC_ID_ADPCM_EA_R3: ++ layout = "ea-r3"; ++ break; ++ case CODEC_ID_ADPCM_EA_MAXIS_XA: ++ layout = "ea-maxis-xa"; ++ break; ++ case CODEC_ID_ADPCM_EA_XAS: ++ layout = "ea-xas"; ++ break; ++ case CODEC_ID_ADPCM_THP: ++ layout = "thp"; ++ break; ++ default: ++ g_assert (0); /* don't worry, we never get here */ ++ break; ++ } ++ ++ /* FIXME: someone please check whether we need additional properties ++ * in this caps definition. */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-adpcm", ++ "layout", G_TYPE_STRING, layout, NULL); ++ if (context) ++ gst_caps_set_simple (caps, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ } ++ break; ++ ++ case CODEC_ID_AMR_NB: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/AMR", NULL); ++ break; ++ ++ case CODEC_ID_AMR_WB: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/AMR-WB", NULL); ++ break; ++ ++ case CODEC_ID_GSM: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-gsm", NULL); ++ break; ++ ++ case CODEC_ID_GSM_MS: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/ms-gsm", NULL); ++ break; ++ ++ case CODEC_ID_NELLYMOSER: ++ caps = ++ gst_ff_aud_caps_new (context, codec_id, "audio/x-nellymoser", NULL); ++ break; ++ ++ case CODEC_ID_SIPR: ++ { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-sipro", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "leaf_size", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ } ++ } ++ break; ++ ++ case CODEC_ID_RA_144: ++ case CODEC_ID_RA_288: ++ case CODEC_ID_COOK: ++ { ++ gint version = 0; ++ ++ switch (codec_id) { ++ case CODEC_ID_RA_144: ++ version = 1; ++ break; ++ case CODEC_ID_RA_288: ++ version = 2; ++ break; ++ case CODEC_ID_COOK: ++ version = 8; ++ break; ++ default: ++ break; ++ } ++ ++ /* FIXME: properties? */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-pn-realaudio", ++ "raversion", G_TYPE_INT, version, NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "leaf_size", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ } ++ } ++ break; ++ ++ case CODEC_ID_ROQ_DPCM: ++ case CODEC_ID_INTERPLAY_DPCM: ++ case CODEC_ID_XAN_DPCM: ++ case CODEC_ID_SOL_DPCM: ++ { ++ const gchar *layout = NULL; ++ ++ switch (codec_id) { ++ case CODEC_ID_ROQ_DPCM: ++ layout = "roq"; ++ break; ++ case CODEC_ID_INTERPLAY_DPCM: ++ layout = "interplay"; ++ break; ++ case CODEC_ID_XAN_DPCM: ++ layout = "xan"; ++ break; ++ case CODEC_ID_SOL_DPCM: ++ layout = "sol"; ++ break; ++ default: ++ g_assert (0); /* don't worry, we never get here */ ++ break; ++ } ++ ++ /* FIXME: someone please check whether we need additional properties ++ * in this caps definition. */ ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-dpcm", ++ "layout", G_TYPE_STRING, layout, NULL); ++ if (context) ++ gst_caps_set_simple (caps, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ } ++ break; ++ ++ case CODEC_ID_SHORTEN: ++ caps = gst_caps_new_simple ("audio/x-shorten", NULL); ++ break; ++ ++ case CODEC_ID_ALAC: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-alac", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL); ++ } ++ break; ++ ++ case CODEC_ID_FLAC: ++ /* Note that ffmpeg has no encoder yet, but just for safety. In the ++ * encoder case, we want to add things like samplerate, channels... */ ++ if (!encode) { ++ caps = gst_caps_new_simple ("audio/x-flac", NULL); ++ } ++ break; ++ ++ case CODEC_ID_DVD_SUBTITLE: ++ case CODEC_ID_DVB_SUBTITLE: ++ caps = NULL; ++ break; ++ case CODEC_ID_BMP: ++ caps = gst_caps_new_simple ("image/bmp", NULL); ++ break; ++ case CODEC_ID_TTA: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-tta", NULL); ++ if (context) { ++ gst_caps_set_simple (caps, ++ "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL); ++ } ++ break; ++ case CODEC_ID_TWINVQ: ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-twin-vq", NULL); ++ break; ++ default: ++ GST_DEBUG ("Unknown codec ID %d, please add mapping here", codec_id); ++ break; ++ } ++ ++ if (buildcaps) { ++ AVCodec *codec; ++ ++ if ((codec = avcodec_find_decoder (codec_id)) || ++ (codec = avcodec_find_encoder (codec_id))) { ++ gchar *mime = NULL; ++ ++ GST_LOG ("Could not create stream format caps for %s", codec->name); ++ ++ switch (codec->type) { ++ case AVMEDIA_TYPE_VIDEO: ++ mime = g_strdup_printf ("video/x-gst_ff-%s", codec->name); ++ caps = gst_ff_vid_caps_new (context, codec_id, mime, NULL); ++ g_free (mime); ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ mime = g_strdup_printf ("audio/x-gst_ff-%s", codec->name); ++ caps = gst_ff_aud_caps_new (context, codec_id, mime, NULL); ++ if (context) ++ gst_caps_set_simple (caps, ++ "block_align", G_TYPE_INT, context->block_align, ++ "bitrate", G_TYPE_INT, context->bit_rate, NULL); ++ g_free (mime); ++ break; ++ default: ++ break; ++ } ++ } ++ } ++ ++ if (caps != NULL) { ++ ++ /* set private data */ ++ if (context && context->extradata_size > 0) { ++ GstBuffer *data = gst_buffer_new_and_alloc (context->extradata_size); ++ ++ memcpy (GST_BUFFER_DATA (data), context->extradata, ++ context->extradata_size); ++ gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, data, NULL); ++ gst_buffer_unref (data); ++ } ++ ++ /* palette */ ++ if (context) { ++ gst_ffmpeg_set_palette (caps, context); ++ } ++ ++ GST_LOG ("caps for codec_id=%d: %" GST_PTR_FORMAT, codec_id, caps); ++ ++ } else { ++ GST_LOG ("No caps found for codec_id=%d", codec_id); ++ } ++ ++ return caps; ++} ++ ++/* Convert a FFMPEG Pixel Format and optional AVCodecContext ++ * to a GstCaps. If the context is ommitted, no fixed values ++ * for video/audio size will be included in the GstCaps ++ * ++ * See below for usefullness ++ */ ++ ++GstCaps * ++gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context, ++ enum CodecID codec_id) ++{ ++ GstCaps *caps = NULL; ++ ++ int bpp = 0, depth = 0, endianness = 0; ++ gulong g_mask = 0, r_mask = 0, b_mask = 0, a_mask = 0; ++ guint32 fmt = 0; ++ ++ switch (pix_fmt) { ++ case PIX_FMT_YUVJ420P: ++ case PIX_FMT_YUV420P: ++ fmt = GST_MAKE_FOURCC ('I', '4', '2', '0'); ++ break; ++ case PIX_FMT_YUVA420P: ++ fmt = GST_MAKE_FOURCC ('A', '4', '2', '0'); ++ break; ++ case PIX_FMT_YUYV422: ++ fmt = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'); ++ break; ++ case PIX_FMT_RGB24: ++ bpp = depth = 24; ++ endianness = G_BIG_ENDIAN; ++ r_mask = 0xff0000; ++ g_mask = 0x00ff00; ++ b_mask = 0x0000ff; ++ break; ++ case PIX_FMT_BGR24: ++ bpp = depth = 24; ++ endianness = G_BIG_ENDIAN; ++ r_mask = 0x0000ff; ++ g_mask = 0x00ff00; ++ b_mask = 0xff0000; ++ break; ++ case PIX_FMT_YUVJ422P: ++ case PIX_FMT_YUV422P: ++ fmt = GST_MAKE_FOURCC ('Y', '4', '2', 'B'); ++ break; ++ case PIX_FMT_YUVJ444P: ++ case PIX_FMT_YUV444P: ++ fmt = GST_MAKE_FOURCC ('Y', '4', '4', '4'); ++ break; ++ case PIX_FMT_RGB32: ++ bpp = 32; ++ depth = 32; ++ endianness = G_BIG_ENDIAN; ++#if (G_BYTE_ORDER == G_BIG_ENDIAN) ++ r_mask = 0x00ff0000; ++ g_mask = 0x0000ff00; ++ b_mask = 0x000000ff; ++ a_mask = 0xff000000; ++#else ++ r_mask = 0x0000ff00; ++ g_mask = 0x00ff0000; ++ b_mask = 0xff000000; ++ a_mask = 0x000000ff; ++#endif ++ break; ++ case PIX_FMT_YUV410P: ++ fmt = GST_MAKE_FOURCC ('Y', 'U', 'V', '9'); ++ break; ++ case PIX_FMT_YUV411P: ++ fmt = GST_MAKE_FOURCC ('Y', '4', '1', 'B'); ++ break; ++ case PIX_FMT_RGB565: ++ bpp = depth = 16; ++ endianness = G_BYTE_ORDER; ++ r_mask = 0xf800; ++ g_mask = 0x07e0; ++ b_mask = 0x001f; ++ break; ++ case PIX_FMT_RGB555: ++ bpp = 16; ++ depth = 15; ++ endianness = G_BYTE_ORDER; ++ r_mask = 0x7c00; ++ g_mask = 0x03e0; ++ b_mask = 0x001f; ++ break; ++ case PIX_FMT_PAL8: ++ bpp = depth = 8; ++ endianness = G_BYTE_ORDER; ++ break; ++ case PIX_FMT_GRAY8: ++ bpp = depth = 8; ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-gray", ++ "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL); ++ break; ++ default: ++ /* give up ... */ ++ break; ++ } ++ ++ if (caps == NULL) { ++ if (bpp != 0) { ++ if (r_mask != 0) { ++ if (a_mask) { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb", ++ "bpp", G_TYPE_INT, bpp, ++ "depth", G_TYPE_INT, depth, ++ "red_mask", G_TYPE_INT, r_mask, ++ "green_mask", G_TYPE_INT, g_mask, ++ "blue_mask", G_TYPE_INT, b_mask, ++ "alpha_mask", G_TYPE_INT, a_mask, ++ "endianness", G_TYPE_INT, endianness, NULL); ++ } else { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb", ++ "bpp", G_TYPE_INT, bpp, ++ "depth", G_TYPE_INT, depth, ++ "red_mask", G_TYPE_INT, r_mask, ++ "green_mask", G_TYPE_INT, g_mask, ++ "blue_mask", G_TYPE_INT, b_mask, ++ "endianness", G_TYPE_INT, endianness, NULL); ++ } ++ } else { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-rgb", ++ "bpp", G_TYPE_INT, bpp, ++ "depth", G_TYPE_INT, depth, ++ "endianness", G_TYPE_INT, endianness, NULL); ++ if (caps && context) { ++ gst_ffmpeg_set_palette (caps, context); ++ } ++ } ++ } else if (fmt) { ++ caps = gst_ff_vid_caps_new (context, codec_id, "video/x-raw-yuv", ++ "format", GST_TYPE_FOURCC, fmt, NULL); ++ } ++ } ++ ++ if (caps != NULL) { ++ GST_DEBUG ("caps for pix_fmt=%d: %" GST_PTR_FORMAT, pix_fmt, caps); ++ } else { ++ GST_LOG ("No caps found for pix_fmt=%d", pix_fmt); ++ } ++ ++ return caps; ++} ++ ++/* Convert a FFMPEG Sample Format and optional AVCodecContext ++ * to a GstCaps. If the context is ommitted, no fixed values ++ * for video/audio size will be included in the GstCaps ++ * ++ * See below for usefullness ++ */ ++ ++static GstCaps * ++gst_ffmpeg_smpfmt_to_caps (enum AVSampleFormat sample_fmt, ++ AVCodecContext * context, enum CodecID codec_id) ++{ ++ GstCaps *caps = NULL; ++ ++ int bpp = 0; ++ gboolean integer = TRUE; ++ gboolean signedness = FALSE; ++ ++ switch (sample_fmt) { ++ case AV_SAMPLE_FMT_S16: ++ signedness = TRUE; ++ bpp = 16; ++ break; ++ ++ case AV_SAMPLE_FMT_S32: ++ signedness = TRUE; ++ bpp = 32; ++ break; ++ ++ case AV_SAMPLE_FMT_FLT: ++ integer = FALSE; ++ bpp = 32; ++ break; ++ ++ case AV_SAMPLE_FMT_DBL: ++ integer = FALSE; ++ bpp = 64; ++ break; ++ default: ++ /* .. */ ++ break; ++ } ++ ++ if (bpp) { ++ if (integer) { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-int", ++ "signed", G_TYPE_BOOLEAN, signedness, ++ "endianness", G_TYPE_INT, G_BYTE_ORDER, ++ "width", G_TYPE_INT, bpp, "depth", G_TYPE_INT, bpp, NULL); ++ } else { ++ caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-raw-float", ++ "endianness", G_TYPE_INT, G_BYTE_ORDER, ++ "width", G_TYPE_INT, bpp, NULL); ++ } ++ } ++ ++ if (caps != NULL) { ++ GST_LOG ("caps for sample_fmt=%d: %" GST_PTR_FORMAT, sample_fmt, caps); ++ } else { ++ GST_LOG ("No caps found for sample_fmt=%d", sample_fmt); ++ } ++ ++ return caps; ++} ++ ++GstCaps * ++gst_ffmpeg_codectype_to_audio_caps (AVCodecContext * context, ++ enum CodecID codec_id, gboolean encode, AVCodec * codec) ++{ ++ GstCaps *caps = NULL; ++ ++ GST_DEBUG ("context:%p, codec_id:%d, encode:%d, codec:%p", ++ context, codec_id, encode, codec); ++ if (codec) ++ GST_DEBUG ("sample_fmts:%p, samplerates:%p", ++ codec->sample_fmts, codec->supported_samplerates); ++ ++ if (context) { ++ /* Specific codec context */ ++ caps = gst_ffmpeg_smpfmt_to_caps (context->sample_fmt, context, codec_id); ++ } else if (codec && codec->sample_fmts) { ++ GstCaps *temp; ++ int i; ++ ++ caps = gst_caps_new_empty (); ++ for (i = 0; codec->sample_fmts[i] != -1; i++) { ++ temp = ++ gst_ffmpeg_smpfmt_to_caps (codec->sample_fmts[i], context, codec_id); ++ if (temp != NULL) ++ gst_caps_append (caps, temp); ++ } ++ } else { ++ GstCaps *temp; ++ enum AVSampleFormat i; ++ AVCodecContext ctx = { 0, }; ++ ++ ctx.channels = -1; ++ caps = gst_caps_new_empty (); ++ for (i = 0; i <= AV_SAMPLE_FMT_DBL; i++) { ++ temp = gst_ffmpeg_smpfmt_to_caps (i, encode ? &ctx : NULL, codec_id); ++ if (temp != NULL) { ++ gst_caps_append (caps, temp); ++ } ++ } ++ } ++ return caps; ++} ++ ++GstCaps * ++gst_ffmpeg_codectype_to_video_caps (AVCodecContext * context, ++ enum CodecID codec_id, gboolean encode, AVCodec * codec) ++{ ++ GstCaps *caps; ++ ++ GST_LOG ("context:%p, codec_id:%d, encode:%d, codec:%p", ++ context, codec_id, encode, codec); ++ ++ if (context) { ++ caps = gst_ffmpeg_pixfmt_to_caps (context->pix_fmt, context, codec_id); ++ } else { ++ GstCaps *temp; ++ enum PixelFormat i; ++ AVCodecContext ctx = { 0, }; ++ ++ caps = gst_caps_new_empty (); ++ for (i = 0; i < PIX_FMT_NB; i++) { ++ ctx.width = -1; ++ ctx.pix_fmt = i; ++ temp = gst_ffmpeg_pixfmt_to_caps (i, encode ? &ctx : NULL, codec_id); ++ if (temp != NULL) { ++ gst_caps_append (caps, temp); ++ } ++ } ++ } ++ return caps; ++} ++ ++/* Convert a FFMPEG codec Type and optional AVCodecContext ++ * to a GstCaps. If the context is ommitted, no fixed values ++ * for video/audio size will be included in the GstCaps ++ * ++ * AVMediaType is primarily meant for uncompressed data GstCaps! ++ */ ++ ++GstCaps * ++gst_ffmpeg_codectype_to_caps (enum AVMediaType codec_type, ++ AVCodecContext * context, enum CodecID codec_id, gboolean encode) ++{ ++ GstCaps *caps; ++ ++ switch (codec_type) { ++ case AVMEDIA_TYPE_VIDEO: ++ caps = ++ gst_ffmpeg_codectype_to_video_caps (context, codec_id, encode, NULL); ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ caps = ++ gst_ffmpeg_codectype_to_audio_caps (context, codec_id, encode, NULL); ++ break; ++ default: ++ caps = NULL; ++ break; ++ } ++ ++ return caps; ++} ++ ++/* Convert a GstCaps (audio/raw) to a FFMPEG SampleFmt ++ * and other audio properties in a AVCodecContext. ++ * ++ * For usefullness, see below ++ */ ++ ++static void ++gst_ffmpeg_caps_to_smpfmt (const GstCaps * caps, ++ AVCodecContext * context, gboolean raw) ++{ ++ GstStructure *structure; ++ gint depth = 0, width = 0, endianness = 0; ++ gboolean signedness = FALSE; ++ const gchar *name; ++ ++ g_return_if_fail (gst_caps_get_size (caps) == 1); ++ structure = gst_caps_get_structure (caps, 0); ++ ++ gst_structure_get_int (structure, "channels", &context->channels); ++ gst_structure_get_int (structure, "rate", &context->sample_rate); ++ gst_structure_get_int (structure, "block_align", &context->block_align); ++ gst_structure_get_int (structure, "bitrate", &context->bit_rate); ++ ++ if (!raw) ++ return; ++ ++ name = gst_structure_get_name (structure); ++ ++ if (!strcmp (name, "audio/x-raw-float")) { ++ /* FLOAT */ ++ if (gst_structure_get_int (structure, "width", &width) && ++ gst_structure_get_int (structure, "endianness", &endianness)) { ++ if (endianness == G_BYTE_ORDER) { ++ if (width == 32) ++ context->sample_fmt = AV_SAMPLE_FMT_FLT; ++ else if (width == 64) ++ context->sample_fmt = AV_SAMPLE_FMT_DBL; ++ } ++ } ++ } else { ++ /* INT */ ++ if (gst_structure_get_int (structure, "width", &width) && ++ gst_structure_get_int (structure, "depth", &depth) && ++ gst_structure_get_boolean (structure, "signed", &signedness) && ++ gst_structure_get_int (structure, "endianness", &endianness)) { ++ if ((endianness == G_BYTE_ORDER) && (signedness == TRUE)) { ++ if ((width == 16) && (depth == 16)) ++ context->sample_fmt = AV_SAMPLE_FMT_S16; ++ else if ((width == 32) && (depth == 32)) ++ context->sample_fmt = AV_SAMPLE_FMT_S32; ++ } ++ } ++ } ++} ++ ++ ++/* Convert a GstCaps (video/raw) to a FFMPEG PixFmt ++ * and other video properties in a AVCodecContext. ++ * ++ * For usefullness, see below ++ */ ++ ++static void ++gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps, ++ AVCodecContext * context, gboolean raw) ++{ ++ GstStructure *structure; ++ const GValue *fps; ++ const GValue *par = NULL; ++ ++ GST_DEBUG ("converting caps %" GST_PTR_FORMAT, caps); ++ g_return_if_fail (gst_caps_get_size (caps) == 1); ++ structure = gst_caps_get_structure (caps, 0); ++ ++ gst_structure_get_int (structure, "width", &context->width); ++ gst_structure_get_int (structure, "height", &context->height); ++ gst_structure_get_int (structure, "bpp", &context->bits_per_coded_sample); ++ ++ fps = gst_structure_get_value (structure, "framerate"); ++ if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) { ++ ++ /* somehow these seem mixed up.. */ ++ context->time_base.den = gst_value_get_fraction_numerator (fps); ++ context->time_base.num = gst_value_get_fraction_denominator (fps); ++ context->ticks_per_frame = 1; ++ ++ GST_DEBUG ("setting framerate %d/%d = %lf", ++ context->time_base.den, context->time_base.num, ++ 1. * context->time_base.den / context->time_base.num); ++ } ++ ++ par = gst_structure_get_value (structure, "pixel-aspect-ratio"); ++ if (par && GST_VALUE_HOLDS_FRACTION (par)) { ++ ++ context->sample_aspect_ratio.num = gst_value_get_fraction_numerator (par); ++ context->sample_aspect_ratio.den = gst_value_get_fraction_denominator (par); ++ ++ GST_DEBUG ("setting pixel-aspect-ratio %d/%d = %lf", ++ context->sample_aspect_ratio.den, context->sample_aspect_ratio.num, ++ 1. * context->sample_aspect_ratio.den / ++ context->sample_aspect_ratio.num); ++ } ++ ++ if (!raw) ++ return; ++ ++ g_return_if_fail (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)); ++ ++ if (strcmp (gst_structure_get_name (structure), "video/x-raw-yuv") == 0) { ++ guint32 fourcc; ++ ++ if (gst_structure_get_fourcc (structure, "format", &fourcc)) { ++ switch (fourcc) { ++ case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): ++ context->pix_fmt = PIX_FMT_YUYV422; ++ break; ++ case GST_MAKE_FOURCC ('I', '4', '2', '0'): ++ context->pix_fmt = PIX_FMT_YUV420P; ++ break; ++ case GST_MAKE_FOURCC ('A', '4', '2', '0'): ++ context->pix_fmt = PIX_FMT_YUVA420P; ++ break; ++ case GST_MAKE_FOURCC ('Y', '4', '1', 'B'): ++ context->pix_fmt = PIX_FMT_YUV411P; ++ break; ++ case GST_MAKE_FOURCC ('Y', '4', '2', 'B'): ++ context->pix_fmt = PIX_FMT_YUV422P; ++ break; ++ case GST_MAKE_FOURCC ('Y', 'U', 'V', '9'): ++ context->pix_fmt = PIX_FMT_YUV410P; ++ break; ++#if 0 ++ case FIXME: ++ context->pix_fmt = PIX_FMT_YUV444P; ++ break; ++#endif ++ } ++ } ++ } else if (strcmp (gst_structure_get_name (structure), ++ "video/x-raw-rgb") == 0) { ++ gint bpp = 0, rmask = 0, endianness = 0; ++ ++ if (gst_structure_get_int (structure, "bpp", &bpp) && ++ gst_structure_get_int (structure, "endianness", &endianness)) { ++ if (gst_structure_get_int (structure, "red_mask", &rmask)) { ++ switch (bpp) { ++ case 32: ++#if (G_BYTE_ORDER == G_BIG_ENDIAN) ++ if (rmask == 0x00ff0000) ++#else ++ if (rmask == 0x0000ff00) ++#endif ++ context->pix_fmt = PIX_FMT_RGB32; ++ break; ++ case 24: ++ if (rmask == 0x0000FF) ++ context->pix_fmt = PIX_FMT_BGR24; ++ else ++ context->pix_fmt = PIX_FMT_RGB24; ++ break; ++ case 16: ++ if (endianness == G_BYTE_ORDER) ++ context->pix_fmt = PIX_FMT_RGB565; ++ break; ++ case 15: ++ if (endianness == G_BYTE_ORDER) ++ context->pix_fmt = PIX_FMT_RGB555; ++ break; ++ default: ++ /* nothing */ ++ break; ++ } ++ } else { ++ if (bpp == 8) { ++ context->pix_fmt = PIX_FMT_PAL8; ++ gst_ffmpeg_get_palette (caps, context); ++ } ++ } ++ } ++ } else if (strcmp (gst_structure_get_name (structure), ++ "video/x-raw-gray") == 0) { ++ gint bpp = 0; ++ ++ if (gst_structure_get_int (structure, "bpp", &bpp)) { ++ switch (bpp) { ++ case 8: ++ context->pix_fmt = PIX_FMT_GRAY8; ++ break; ++ } ++ } ++ } ++} ++ ++/* Convert a GstCaps and a FFMPEG codec Type to a ++ * AVCodecContext. If the context is ommitted, no fixed values ++ * for video/audio size will be included in the context ++ * ++ * AVMediaType is primarily meant for uncompressed data GstCaps! ++ */ ++ ++void ++gst_ffmpeg_caps_with_codectype (enum AVMediaType type, ++ const GstCaps * caps, AVCodecContext * context) ++{ ++ if (context == NULL) ++ return; ++ ++ switch (type) { ++ case AVMEDIA_TYPE_VIDEO: ++ gst_ffmpeg_caps_to_pixfmt (caps, context, TRUE); ++ break; ++ ++ case AVMEDIA_TYPE_AUDIO: ++ gst_ffmpeg_caps_to_smpfmt (caps, context, TRUE); ++ break; ++ ++ default: ++ /* unknown */ ++ break; ++ } ++} ++ ++#if 0 ++static void ++nal_escape (guint8 * dst, guint8 * src, guint size, guint * destsize) ++{ ++ guint8 *dstp = dst; ++ guint8 *srcp = src; ++ guint8 *end = src + size; ++ gint count = 0; ++ ++ while (srcp < end) { ++ if (count == 2 && *srcp <= 0x03) { ++ GST_DEBUG ("added escape code"); ++ *dstp++ = 0x03; ++ count = 0; ++ } ++ if (*srcp == 0) ++ count++; ++ else ++ count = 0; ++ ++ GST_DEBUG ("copy %02x, count %d", *srcp, count); ++ *dstp++ = *srcp++; ++ } ++ *destsize = dstp - dst; ++} ++ ++/* copy the config, escaping NAL units as we iterate them, if something fails we ++ * copy everything and hope for the best. */ ++static void ++copy_config (guint8 * dst, guint8 * src, guint size, guint * destsize) ++{ ++ guint8 *dstp = dst; ++ guint8 *srcp = src; ++ gint cnt, i; ++ guint nalsize, esize; ++ ++ /* check size */ ++ if (size < 7) ++ goto full_copy; ++ ++ /* check version */ ++ if (*srcp != 1) ++ goto full_copy; ++ ++ cnt = *(srcp + 5) & 0x1f; /* Number of sps */ ++ ++ GST_DEBUG ("num SPS %d", cnt); ++ ++ memcpy (dstp, srcp, 6); ++ srcp += 6; ++ dstp += 6; ++ ++ for (i = 0; i < cnt; i++) { ++ GST_DEBUG ("copy SPS %d", i); ++ nalsize = (srcp[0] << 8) | srcp[1]; ++ nal_escape (dstp + 2, srcp + 2, nalsize, &esize); ++ dstp[0] = esize >> 8; ++ dstp[1] = esize & 0xff; ++ dstp += esize + 2; ++ srcp += nalsize + 2; ++ } ++ ++ cnt = *(dstp++) = *(srcp++); /* Number of pps */ ++ ++ GST_DEBUG ("num PPS %d", cnt); ++ ++ for (i = 0; i < cnt; i++) { ++ GST_DEBUG ("copy PPS %d", i); ++ nalsize = (srcp[0] << 8) | srcp[1]; ++ nal_escape (dstp + 2, srcp + 2, nalsize, &esize); ++ dstp[0] = esize >> 8; ++ dstp[1] = esize & 0xff; ++ dstp += esize + 2; ++ srcp += nalsize + 2; ++ } ++ *destsize = dstp - dst; ++ ++ return; ++ ++full_copy: ++ { ++ GST_DEBUG ("something unexpected, doing full copy"); ++ memcpy (dst, src, size); ++ *destsize = size; ++ return; ++ } ++} ++#endif ++ ++/* ++ * caps_with_codecid () transforms a GstCaps for a known codec ++ * ID into a filled-in context. ++ * codec_data from caps will override possible extradata already in the context ++ */ ++ ++void ++gst_ffmpeg_caps_with_codecid (enum CodecID codec_id, ++ enum AVMediaType codec_type, const GstCaps * caps, AVCodecContext * context) ++{ ++ GstStructure *str; ++ const GValue *value; ++ const GstBuffer *buf; ++ ++ GST_LOG ("codec_id:%d, codec_type:%d, caps:%" GST_PTR_FORMAT " context:%p", ++ codec_id, codec_type, caps, context); ++ ++ if (!context || !gst_caps_get_size (caps)) ++ return; ++ ++ str = gst_caps_get_structure (caps, 0); ++ ++ /* extradata parsing (esds [mpeg4], wma/wmv, msmpeg4v1/2/3, etc.) */ ++ if ((value = gst_structure_get_value (str, "codec_data"))) { ++ guint size; ++ guint8 *data; ++ ++ buf = GST_BUFFER_CAST (gst_value_get_mini_object (value)); ++ size = GST_BUFFER_SIZE (buf); ++ data = GST_BUFFER_DATA (buf); ++ ++ /* free the old one if it is there */ ++ if (context->extradata) ++ av_free (context->extradata); ++ ++#if 0 ++ if (codec_id == CODEC_ID_H264) { ++ guint extrasize; ++ ++ GST_DEBUG ("copy, escaping codec_data %d", size); ++ /* ffmpeg h264 expects the codec_data to be escaped, there is no real ++ * reason for this but let's just escape it for now. Start by allocating ++ * enough space, x2 is more than enough. ++ * ++ * FIXME, we disabled escaping because some file already contain escaped ++ * codec_data and then we escape twice and fail. It's better to leave it ++ * as is, as that is what most players do. */ ++ context->extradata = ++ av_mallocz (GST_ROUND_UP_16 (size * 2 + ++ FF_INPUT_BUFFER_PADDING_SIZE)); ++ copy_config (context->extradata, data, size, &extrasize); ++ GST_DEBUG ("escaped size: %d", extrasize); ++ context->extradata_size = extrasize; ++ } else ++#endif ++ { ++ /* allocate with enough padding */ ++ GST_DEBUG ("copy codec_data"); ++ context->extradata = ++ av_mallocz (GST_ROUND_UP_16 (size + FF_INPUT_BUFFER_PADDING_SIZE)); ++ memcpy (context->extradata, data, size); ++ context->extradata_size = size; ++ } ++ ++ /* Hack for VC1. Sometimes the first (length) byte is 0 for some files */ ++ if (codec_id == CODEC_ID_VC1 && size > 0 && data[0] == 0) { ++ context->extradata[0] = (guint8) size; ++ } ++ ++ GST_DEBUG ("have codec data of size %d", size); ++ } else if (context->extradata == NULL && codec_id != CODEC_ID_AAC_LATM && ++ codec_id != CODEC_ID_FLAC) { ++ /* no extradata, alloc dummy with 0 sized, some codecs insist on reading ++ * extradata anyway which makes then segfault. */ ++ context->extradata = ++ av_mallocz (GST_ROUND_UP_16 (FF_INPUT_BUFFER_PADDING_SIZE)); ++ context->extradata_size = 0; ++ GST_DEBUG ("no codec data"); ++ } ++ ++ switch (codec_id) { ++ case CODEC_ID_MPEG4: ++ { ++ const gchar *mime = gst_structure_get_name (str); ++ ++ if (!strcmp (mime, "video/x-divx")) ++ context->codec_tag = GST_MAKE_FOURCC ('D', 'I', 'V', 'X'); ++ else if (!strcmp (mime, "video/x-xvid")) ++ context->codec_tag = GST_MAKE_FOURCC ('X', 'V', 'I', 'D'); ++ else if (!strcmp (mime, "video/x-3ivx")) ++ context->codec_tag = GST_MAKE_FOURCC ('3', 'I', 'V', '1'); ++ else if (!strcmp (mime, "video/mpeg")) ++ context->codec_tag = GST_MAKE_FOURCC ('m', 'p', '4', 'v'); ++ } ++ break; ++ ++ case CODEC_ID_SVQ3: ++ /* FIXME: this is a workaround for older gst-plugins releases ++ * (<= 0.8.9). This should be removed at some point, because ++ * it causes wrong decoded frame order. */ ++ if (!context->extradata) { ++ gint halfpel_flag, thirdpel_flag, low_delay, unknown_svq3_flag; ++ guint16 flags; ++ ++ if (gst_structure_get_int (str, "halfpel_flag", &halfpel_flag) || ++ gst_structure_get_int (str, "thirdpel_flag", &thirdpel_flag) || ++ gst_structure_get_int (str, "low_delay", &low_delay) || ++ gst_structure_get_int (str, "unknown_svq3_flag", ++ &unknown_svq3_flag)) { ++ context->extradata = (guint8 *) av_mallocz (0x64); ++ g_stpcpy ((gchar *) context->extradata, "SVQ3"); ++ flags = 1 << 3; ++ flags |= low_delay; ++ flags = flags << 2; ++ flags |= unknown_svq3_flag; ++ flags = flags << 6; ++ flags |= halfpel_flag; ++ flags = flags << 1; ++ flags |= thirdpel_flag; ++ flags = flags << 3; ++ ++ flags = GUINT16_FROM_LE (flags); ++ ++ memcpy ((gchar *) context->extradata + 0x62, &flags, 2); ++ context->extradata_size = 0x64; ++ } ++ } ++ break; ++ ++ case CODEC_ID_MSRLE: ++ case CODEC_ID_QTRLE: ++ case CODEC_ID_TSCC: ++ case CODEC_ID_CSCD: ++ case CODEC_ID_APE: ++ { ++ gint depth; ++ ++ if (gst_structure_get_int (str, "depth", &depth)) { ++ context->bits_per_coded_sample = depth; ++ } else { ++ GST_WARNING ("No depth field in caps %" GST_PTR_FORMAT, caps); ++ } ++ ++ } ++ break; ++ ++ case CODEC_ID_RV10: ++ case CODEC_ID_RV20: ++ case CODEC_ID_RV30: ++ case CODEC_ID_RV40: ++ { ++ gint format; ++ ++ if (gst_structure_get_int (str, "format", &format)) ++ context->sub_id = format; ++ ++ break; ++ } ++ case CODEC_ID_COOK: ++ case CODEC_ID_RA_288: ++ case CODEC_ID_RA_144: ++ case CODEC_ID_SIPR: ++ { ++ gint leaf_size; ++ gint bitrate; ++ ++ if (gst_structure_get_int (str, "leaf_size", &leaf_size)) ++ context->block_align = leaf_size; ++ if (gst_structure_get_int (str, "bitrate", &bitrate)) ++ context->bit_rate = bitrate; ++ } ++ case CODEC_ID_ALAC: ++ gst_structure_get_int (str, "samplesize", ++ &context->bits_per_coded_sample); ++ break; ++ ++ case CODEC_ID_DVVIDEO: ++ { ++ guint32 fourcc; ++ ++ if (gst_structure_get_fourcc (str, "format", &fourcc)) ++ switch (fourcc) { ++ case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): ++ context->pix_fmt = PIX_FMT_YUYV422; ++ break; ++ case GST_MAKE_FOURCC ('I', '4', '2', '0'): ++ context->pix_fmt = PIX_FMT_YUV420P; ++ break; ++ case GST_MAKE_FOURCC ('A', '4', '2', '0'): ++ context->pix_fmt = PIX_FMT_YUVA420P; ++ break; ++ case GST_MAKE_FOURCC ('Y', '4', '1', 'B'): ++ context->pix_fmt = PIX_FMT_YUV411P; ++ break; ++ case GST_MAKE_FOURCC ('Y', '4', '2', 'B'): ++ context->pix_fmt = PIX_FMT_YUV422P; ++ break; ++ case GST_MAKE_FOURCC ('Y', 'U', 'V', '9'): ++ context->pix_fmt = PIX_FMT_YUV410P; ++ break; ++ default: ++ GST_WARNING ("couldn't convert fourcc %" GST_FOURCC_FORMAT ++ " to a pixel format", GST_FOURCC_ARGS (fourcc)); ++ break; ++ } ++ break; ++ } ++ case CODEC_ID_H263P: ++ { ++ gboolean val; ++ ++ if (!gst_structure_get_boolean (str, "annex-f", &val) || val) ++ context->flags |= CODEC_FLAG_4MV; ++ else ++ context->flags &= ~CODEC_FLAG_4MV; ++ if ((!gst_structure_get_boolean (str, "annex-i", &val) || val) && ++ (!gst_structure_get_boolean (str, "annex-t", &val) || val)) ++ context->flags |= CODEC_FLAG_AC_PRED; ++ else ++ context->flags &= ~CODEC_FLAG_AC_PRED; ++ if (!gst_structure_get_boolean (str, "annex-j", &val) || val) ++ context->flags |= CODEC_FLAG_LOOP_FILTER; ++ else ++ context->flags &= ~CODEC_FLAG_LOOP_FILTER; ++ break; ++ } ++ case CODEC_ID_ADPCM_G726: ++ { ++ const gchar *layout; ++ ++ if ((layout = gst_structure_get_string (str, "layout"))) { ++ if (!strcmp (layout, "g721")) { ++ context->sample_rate = 8000; ++ context->channels = 1; ++ context->bit_rate = 32000; ++ } ++ } ++ break; ++ } ++ default: ++ break; ++ } ++ ++ if (!gst_caps_is_fixed (caps)) ++ return; ++ ++ /* common properties (width, height, fps) */ ++ switch (codec_type) { ++ case AVMEDIA_TYPE_VIDEO: ++ gst_ffmpeg_caps_to_pixfmt (caps, context, codec_id == CODEC_ID_RAWVIDEO); ++ gst_ffmpeg_get_palette (caps, context); ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ gst_ffmpeg_caps_to_smpfmt (caps, context, FALSE); ++ break; ++ default: ++ break; ++ } ++ ++ /* fixup of default settings */ ++ switch (codec_id) { ++ case CODEC_ID_QCELP: ++ /* QCELP is always mono, no matter what the caps say */ ++ context->channels = 1; ++ break; ++ default: ++ break; ++ } ++} ++ ++/* _formatid_to_caps () is meant for muxers/demuxers, it ++ * transforms a name (ffmpeg way of ID'ing these, why don't ++ * they have unique numerical IDs?) to the corresponding ++ * caps belonging to that mux-format ++ * ++ * Note: we don't need any additional info because the caps ++ * isn't supposed to contain any useful info besides the ++ * media type anyway ++ */ ++ ++GstCaps * ++gst_ffmpeg_formatid_to_caps (const gchar * format_name) ++{ ++ GstCaps *caps = NULL; ++ ++ if (!strcmp (format_name, "mpeg")) { ++ caps = gst_caps_new_simple ("video/mpeg", ++ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL); ++ } else if (!strcmp (format_name, "mpegts")) { ++ caps = gst_caps_new_simple ("video/mpegts", ++ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL); ++ } else if (!strcmp (format_name, "rm")) { ++ caps = gst_caps_new_simple ("application/x-pn-realmedia", ++ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL); ++ } else if (!strcmp (format_name, "asf")) { ++ caps = gst_caps_new_simple ("video/x-ms-asf", NULL); ++ } else if (!strcmp (format_name, "avi")) { ++ caps = gst_caps_new_simple ("video/x-msvideo", NULL); ++ } else if (!strcmp (format_name, "wav")) { ++ caps = gst_caps_new_simple ("audio/x-wav", NULL); ++ } else if (!strcmp (format_name, "ape")) { ++ caps = gst_caps_new_simple ("application/x-ape", NULL); ++ } else if (!strcmp (format_name, "swf")) { ++ caps = gst_caps_new_simple ("application/x-shockwave-flash", NULL); ++ } else if (!strcmp (format_name, "au")) { ++ caps = gst_caps_new_simple ("audio/x-au", NULL); ++ } else if (!strcmp (format_name, "dv")) { ++ caps = gst_caps_new_simple ("video/x-dv", ++ "systemstream", G_TYPE_BOOLEAN, TRUE, NULL); ++ } else if (!strcmp (format_name, "4xm")) { ++ caps = gst_caps_new_simple ("video/x-4xm", NULL); ++ } else if (!strcmp (format_name, "matroska")) { ++ caps = gst_caps_new_simple ("video/x-matroska", NULL); ++ } else if (!strcmp (format_name, "mp3")) { ++ caps = gst_caps_new_simple ("application/x-id3", NULL); ++ } else if (!strcmp (format_name, "flic")) { ++ caps = gst_caps_new_simple ("video/x-fli", NULL); ++ } else if (!strcmp (format_name, "flv")) { ++ caps = gst_caps_new_simple ("video/x-flv", NULL); ++ } else if (!strcmp (format_name, "tta")) { ++ caps = gst_caps_new_simple ("audio/x-ttafile", NULL); ++ } else if (!strcmp (format_name, "aiff")) { ++ caps = gst_caps_new_simple ("audio/x-aiff", NULL); ++ } else if (!strcmp (format_name, "mov_mp4_m4a_3gp_3g2")) { ++ caps = ++ gst_caps_from_string ++ ("application/x-3gp; video/quicktime; audio/x-m4a"); ++ } else if (!strcmp (format_name, "mov")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)apple"); ++ } else if (!strcmp (format_name, "mp4")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)iso"); ++ } else if (!strcmp (format_name, "3gp")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)3gpp"); ++ } else if (!strcmp (format_name, "3g2")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)3g2"); ++ } else if (!strcmp (format_name, "psp")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)psp"); ++ } else if (!strcmp (format_name, "ipod")) { ++ caps = gst_caps_from_string ("video/quicktime,variant=(string)ipod"); ++ } else if (!strcmp (format_name, "aac")) { ++ caps = gst_caps_new_simple ("audio/mpeg", ++ "mpegversion", G_TYPE_INT, 4, NULL); ++ } else if (!strcmp (format_name, "gif")) { ++ caps = gst_caps_from_string ("image/gif"); ++ } else if (!strcmp (format_name, "ogg")) { ++ caps = gst_caps_from_string ("application/ogg"); ++ } else if (!strcmp (format_name, "mxf") || !strcmp (format_name, "mxf_d10")) { ++ caps = gst_caps_from_string ("application/mxf"); ++ } else if (!strcmp (format_name, "gxf")) { ++ caps = gst_caps_from_string ("application/gxf"); ++ } else if (!strcmp (format_name, "yuv4mpegpipe")) { ++ caps = gst_caps_new_simple ("application/x-yuv4mpeg", ++ "y4mversion", G_TYPE_INT, 2, NULL); ++ } else if (!strcmp (format_name, "mpc")) { ++ caps = gst_caps_from_string ("audio/x-musepack, streamversion = (int) 7"); ++ } else if (!strcmp (format_name, "vqf")) { ++ caps = gst_caps_from_string ("audio/x-vqf"); ++ } else if (!strcmp (format_name, "nsv")) { ++ caps = gst_caps_from_string ("video/x-nsv"); ++ } else if (!strcmp (format_name, "amr")) { ++ caps = gst_caps_from_string ("audio/x-amr-nb-sh"); ++ } else if (!strcmp (format_name, "webm")) { ++ caps = gst_caps_from_string ("video/webm"); ++ } else { ++ gchar *name; ++ ++ GST_LOG ("Could not create stream format caps for %s", format_name); ++ name = g_strdup_printf ("application/x-gst_ff-%s", format_name); ++ caps = gst_caps_new_simple (name, NULL); ++ g_free (name); ++ } ++ ++ return caps; ++} ++ ++gboolean ++gst_ffmpeg_formatid_get_codecids (const gchar * format_name, ++ enum CodecID ** video_codec_list, enum CodecID ** audio_codec_list, ++ AVOutputFormat * plugin) ++{ ++ static enum CodecID tmp_vlist[] = { ++ CODEC_ID_NONE, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID tmp_alist[] = { ++ CODEC_ID_NONE, ++ CODEC_ID_NONE ++ }; ++ ++ GST_LOG ("format_name : %s", format_name); ++ ++ if (!strcmp (format_name, "mp4")) { ++ static enum CodecID mp4_video_list[] = { ++ CODEC_ID_MPEG4, CODEC_ID_H264, ++ CODEC_ID_MJPEG, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID mp4_audio_list[] = { ++ CODEC_ID_AAC, CODEC_ID_MP3, ++ CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = mp4_video_list; ++ *audio_codec_list = mp4_audio_list; ++ } else if (!strcmp (format_name, "mpeg")) { ++ static enum CodecID mpeg_video_list[] = { CODEC_ID_MPEG1VIDEO, ++ CODEC_ID_MPEG2VIDEO, ++ CODEC_ID_H264, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID mpeg_audio_list[] = { CODEC_ID_MP1, ++ CODEC_ID_MP2, ++ CODEC_ID_MP3, ++ CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = mpeg_video_list; ++ *audio_codec_list = mpeg_audio_list; ++ } else if (!strcmp (format_name, "dvd")) { ++ static enum CodecID mpeg_video_list[] = { CODEC_ID_MPEG2VIDEO, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID mpeg_audio_list[] = { CODEC_ID_MP2, ++ CODEC_ID_AC3, ++ CODEC_ID_DTS, ++ CODEC_ID_PCM_S16BE, ++ CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = mpeg_video_list; ++ *audio_codec_list = mpeg_audio_list; ++ } else if (!strcmp (format_name, "mpegts")) { ++ static enum CodecID mpegts_video_list[] = { CODEC_ID_MPEG1VIDEO, ++ CODEC_ID_MPEG2VIDEO, ++ CODEC_ID_H264, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID mpegts_audio_list[] = { CODEC_ID_MP2, ++ CODEC_ID_MP3, ++ CODEC_ID_AC3, ++ CODEC_ID_DTS, ++ CODEC_ID_AAC, ++ CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = mpegts_video_list; ++ *audio_codec_list = mpegts_audio_list; ++ } else if (!strcmp (format_name, "vob")) { ++ static enum CodecID vob_video_list[] = ++ { CODEC_ID_MPEG2VIDEO, CODEC_ID_NONE }; ++ static enum CodecID vob_audio_list[] = { CODEC_ID_MP2, CODEC_ID_AC3, ++ CODEC_ID_DTS, CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = vob_video_list; ++ *audio_codec_list = vob_audio_list; ++ } else if (!strcmp (format_name, "flv")) { ++ static enum CodecID flv_video_list[] = { CODEC_ID_FLV1, CODEC_ID_NONE }; ++ static enum CodecID flv_audio_list[] = { CODEC_ID_MP3, CODEC_ID_NONE }; ++ ++ *video_codec_list = flv_video_list; ++ *audio_codec_list = flv_audio_list; ++ } else if (!strcmp (format_name, "asf")) { ++ static enum CodecID asf_video_list[] = ++ { CODEC_ID_WMV1, CODEC_ID_WMV2, CODEC_ID_MSMPEG4V3, CODEC_ID_NONE }; ++ static enum CodecID asf_audio_list[] = ++ { CODEC_ID_WMAV1, CODEC_ID_WMAV2, CODEC_ID_MP3, CODEC_ID_NONE }; ++ ++ *video_codec_list = asf_video_list; ++ *audio_codec_list = asf_audio_list; ++ } else if (!strcmp (format_name, "dv")) { ++ static enum CodecID dv_video_list[] = { CODEC_ID_DVVIDEO, CODEC_ID_NONE }; ++ static enum CodecID dv_audio_list[] = { CODEC_ID_PCM_S16LE, CODEC_ID_NONE }; ++ ++ *video_codec_list = dv_video_list; ++ *audio_codec_list = dv_audio_list; ++ } else if (!strcmp (format_name, "mov")) { ++ static enum CodecID mov_video_list[] = { ++ CODEC_ID_SVQ1, CODEC_ID_SVQ3, CODEC_ID_MPEG4, ++ CODEC_ID_H263, CODEC_ID_H263P, ++ CODEC_ID_H264, CODEC_ID_DVVIDEO, ++ CODEC_ID_MJPEG, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID mov_audio_list[] = { ++ CODEC_ID_PCM_MULAW, CODEC_ID_PCM_ALAW, CODEC_ID_ADPCM_IMA_QT, ++ CODEC_ID_MACE3, CODEC_ID_MACE6, CODEC_ID_AAC, ++ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB, ++ CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE, ++ CODEC_ID_MP3, CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = mov_video_list; ++ *audio_codec_list = mov_audio_list; ++ } else if ((!strcmp (format_name, "3gp") || !strcmp (format_name, "3g2"))) { ++ static enum CodecID tgp_video_list[] = { ++ CODEC_ID_MPEG4, CODEC_ID_H263, CODEC_ID_H263P, CODEC_ID_H264, ++ CODEC_ID_NONE ++ }; ++ static enum CodecID tgp_audio_list[] = { ++ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB, ++ CODEC_ID_AAC, ++ CODEC_ID_NONE ++ }; ++ ++ *video_codec_list = tgp_video_list; ++ *audio_codec_list = tgp_audio_list; ++ } else if (!strcmp (format_name, "mmf")) { ++ static enum CodecID mmf_audio_list[] = { ++ CODEC_ID_ADPCM_YAMAHA, CODEC_ID_NONE ++ }; ++ *video_codec_list = NULL; ++ *audio_codec_list = mmf_audio_list; ++ } else if (!strcmp (format_name, "amr")) { ++ static enum CodecID amr_audio_list[] = { ++ CODEC_ID_AMR_NB, CODEC_ID_AMR_WB, ++ CODEC_ID_NONE ++ }; ++ *video_codec_list = NULL; ++ *audio_codec_list = amr_audio_list; ++ } else if (!strcmp (format_name, "gif")) { ++ static enum CodecID gif_image_list[] = { ++ CODEC_ID_RAWVIDEO, CODEC_ID_NONE ++ }; ++ *video_codec_list = gif_image_list; ++ *audio_codec_list = NULL; ++ } else if ((plugin->audio_codec != CODEC_ID_NONE) || ++ (plugin->video_codec != CODEC_ID_NONE)) { ++ tmp_vlist[0] = plugin->video_codec; ++ tmp_alist[0] = plugin->audio_codec; ++ ++ *video_codec_list = tmp_vlist; ++ *audio_codec_list = tmp_alist; ++ } else { ++ GST_LOG ("Format %s not found", format_name); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/* Convert a GstCaps to a FFMPEG codec ID. Size et all ++ * are omitted, that can be queried by the user itself, ++ * we're not eating the GstCaps or anything ++ * A pointer to an allocated context is also needed for ++ * optional extra info ++ */ ++ ++enum CodecID ++gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context) ++{ ++ enum CodecID id = CODEC_ID_NONE; ++ const gchar *mimetype; ++ const GstStructure *structure; ++ gboolean video = FALSE, audio = FALSE; /* we want to be sure! */ ++ ++ g_return_val_if_fail (caps != NULL, CODEC_ID_NONE); ++ g_return_val_if_fail (gst_caps_get_size (caps) == 1, CODEC_ID_NONE); ++ structure = gst_caps_get_structure (caps, 0); ++ ++ mimetype = gst_structure_get_name (structure); ++ ++ if (!strcmp (mimetype, "video/x-raw-rgb") || ++ !strcmp (mimetype, "video/x-raw-yuv")) { ++ id = CODEC_ID_RAWVIDEO; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-raw-int")) { ++ gint depth, width, endianness; ++ gboolean signedness; ++ ++ if (gst_structure_get_int (structure, "endianness", &endianness) && ++ gst_structure_get_boolean (structure, "signed", &signedness) && ++ gst_structure_get_int (structure, "width", &width) && ++ gst_structure_get_int (structure, "depth", &depth) && depth == width) { ++ switch (depth) { ++ case 8: ++ if (signedness) { ++ id = CODEC_ID_PCM_S8; ++ } else { ++ id = CODEC_ID_PCM_U8; ++ } ++ break; ++ case 16: ++ switch (endianness) { ++ case G_BIG_ENDIAN: ++ if (signedness) { ++ id = CODEC_ID_PCM_S16BE; ++ } else { ++ id = CODEC_ID_PCM_U16BE; ++ } ++ break; ++ case G_LITTLE_ENDIAN: ++ if (signedness) { ++ id = CODEC_ID_PCM_S16LE; ++ } else { ++ id = CODEC_ID_PCM_U16LE; ++ } ++ break; ++ } ++ break; ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } ++ } else if (!strcmp (mimetype, "audio/x-mulaw")) { ++ id = CODEC_ID_PCM_MULAW; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-alaw")) { ++ id = CODEC_ID_PCM_ALAW; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-dv")) { ++ gboolean sys_strm; ++ ++ if (gst_structure_get_boolean (structure, "systemstream", &sys_strm) && ++ !sys_strm) { ++ id = CODEC_ID_DVVIDEO; ++ video = TRUE; ++ } ++ } else if (!strcmp (mimetype, "audio/x-dv")) { /* ??? */ ++ id = CODEC_ID_DVAUDIO; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-h263")) { ++ const gchar *h263version = ++ gst_structure_get_string (structure, "h263version"); ++ if (h263version && !strcmp (h263version, "h263p")) ++ id = CODEC_ID_H263P; ++ else ++ id = CODEC_ID_H263; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-intel-h263")) { ++ id = CODEC_ID_H263I; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-h261")) { ++ id = CODEC_ID_H261; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/mpeg")) { ++ gboolean sys_strm; ++ gint mpegversion; ++ ++ if (gst_structure_get_boolean (structure, "systemstream", &sys_strm) && ++ gst_structure_get_int (structure, "mpegversion", &mpegversion) && ++ !sys_strm) { ++ switch (mpegversion) { ++ case 1: ++ id = CODEC_ID_MPEG1VIDEO; ++ break; ++ case 2: ++ id = CODEC_ID_MPEG2VIDEO; ++ break; ++ case 4: ++ id = CODEC_ID_MPEG4; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "image/jpeg")) { ++ id = CODEC_ID_MJPEG; /* A... B... */ ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-jpeg-b")) { ++ id = CODEC_ID_MJPEGB; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-wmv")) { ++ gint wmvversion = 0; ++ ++ if (gst_structure_get_int (structure, "wmvversion", &wmvversion)) { ++ switch (wmvversion) { ++ case 1: ++ id = CODEC_ID_WMV1; ++ break; ++ case 2: ++ id = CODEC_ID_WMV2; ++ break; ++ case 3: ++ { ++ guint32 fourcc; ++ ++ /* WMV3 unless the fourcc exists and says otherwise */ ++ id = CODEC_ID_WMV3; ++ ++ if (gst_structure_get_fourcc (structure, "format", &fourcc)) { ++ if ((fourcc == GST_MAKE_FOURCC ('W', 'V', 'C', '1')) || ++ (fourcc == GST_MAKE_FOURCC ('W', 'M', 'V', 'A'))) { ++ id = CODEC_ID_VC1; ++ } ++ } ++ } ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-vorbis")) { ++ id = CODEC_ID_VORBIS; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-qdm2")) { ++ id = CODEC_ID_QDM2; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/mpeg")) { ++ gint layer = 0; ++ gint mpegversion = 0; ++ ++ if (gst_structure_get_int (structure, "mpegversion", &mpegversion)) { ++ switch (mpegversion) { ++ case 2: /* ffmpeg uses faad for both... */ ++ case 4: ++ id = CODEC_ID_AAC; ++ break; ++ case 1: ++ if (gst_structure_get_int (structure, "layer", &layer)) { ++ switch (layer) { ++ case 1: ++ id = CODEC_ID_MP1; ++ break; ++ case 2: ++ id = CODEC_ID_MP2; ++ break; ++ case 3: ++ id = CODEC_ID_MP3; ++ break; ++ } ++ } ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-musepack")) { ++ gint streamversion = -1; ++ ++ if (gst_structure_get_int (structure, "streamversion", &streamversion)) { ++ if (streamversion == 7) ++ id = CODEC_ID_MUSEPACK7; ++ } else { ++ id = CODEC_ID_MUSEPACK7; ++ } ++ } else if (!strcmp (mimetype, "audio/x-wma")) { ++ gint wmaversion = 0; ++ ++ if (gst_structure_get_int (structure, "wmaversion", &wmaversion)) { ++ switch (wmaversion) { ++ case 1: ++ id = CODEC_ID_WMAV1; ++ break; ++ case 2: ++ id = CODEC_ID_WMAV2; ++ break; ++ case 3: ++ id = CODEC_ID_WMAPRO; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-wms")) { ++ id = CODEC_ID_WMAVOICE; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-ac3")) { ++ id = CODEC_ID_AC3; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-eac3")) { ++ id = CODEC_ID_EAC3; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-vnd.sony.atrac3") || ++ !strcmp (mimetype, "audio/atrac3")) { ++ id = CODEC_ID_ATRAC3; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-dts")) { ++ id = CODEC_ID_DTS; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "application/x-ape")) { ++ id = CODEC_ID_APE; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-msmpeg")) { ++ gint msmpegversion = 0; ++ ++ if (gst_structure_get_int (structure, "msmpegversion", &msmpegversion)) { ++ switch (msmpegversion) { ++ case 41: ++ id = CODEC_ID_MSMPEG4V1; ++ break; ++ case 42: ++ id = CODEC_ID_MSMPEG4V2; ++ break; ++ case 43: ++ id = CODEC_ID_MSMPEG4V3; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-svq")) { ++ gint svqversion = 0; ++ ++ if (gst_structure_get_int (structure, "svqversion", &svqversion)) { ++ switch (svqversion) { ++ case 1: ++ id = CODEC_ID_SVQ1; ++ break; ++ case 3: ++ id = CODEC_ID_SVQ3; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-huffyuv")) { ++ id = CODEC_ID_HUFFYUV; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-mace")) { ++ gint maceversion = 0; ++ ++ if (gst_structure_get_int (structure, "maceversion", &maceversion)) { ++ switch (maceversion) { ++ case 3: ++ id = CODEC_ID_MACE3; ++ break; ++ case 6: ++ id = CODEC_ID_MACE6; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-theora")) { ++ id = CODEC_ID_THEORA; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp3")) { ++ id = CODEC_ID_VP3; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp5")) { ++ id = CODEC_ID_VP5; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp6")) { ++ id = CODEC_ID_VP6; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp6-flash")) { ++ id = CODEC_ID_VP6F; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp6-alpha")) { ++ id = CODEC_ID_VP6A; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-vp8")) { ++ id = CODEC_ID_VP8; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-flash-screen")) { ++ id = CODEC_ID_FLASHSV; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-indeo")) { ++ gint indeoversion = 0; ++ ++ if (gst_structure_get_int (structure, "indeoversion", &indeoversion)) { ++ switch (indeoversion) { ++ case 5: ++ id = CODEC_ID_INDEO5; ++ break; ++ case 3: ++ id = CODEC_ID_INDEO3; ++ break; ++ case 2: ++ id = CODEC_ID_INDEO2; ++ break; ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } ++ } else if (!strcmp (mimetype, "video/x-divx")) { ++ gint divxversion = 0; ++ ++ if (gst_structure_get_int (structure, "divxversion", &divxversion)) { ++ switch (divxversion) { ++ case 3: ++ id = CODEC_ID_MSMPEG4V3; ++ break; ++ case 4: ++ case 5: ++ id = CODEC_ID_MPEG4; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-3ivx")) { ++ id = CODEC_ID_MPEG4; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-xvid")) { ++ id = CODEC_ID_MPEG4; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-ffv")) { ++ gint ffvversion = 0; ++ ++ if (gst_structure_get_int (structure, "ffvversion", &ffvversion) && ++ ffvversion == 1) { ++ id = CODEC_ID_FFV1; ++ video = TRUE; ++ } ++ } else if (!strcmp (mimetype, "audio/x-adpcm")) { ++ const gchar *layout; ++ ++ layout = gst_structure_get_string (structure, "layout"); ++ if (layout == NULL) { ++ /* break */ ++ } else if (!strcmp (layout, "quicktime")) { ++ id = CODEC_ID_ADPCM_IMA_QT; ++ } else if (!strcmp (layout, "microsoft")) { ++ id = CODEC_ID_ADPCM_MS; ++ } else if (!strcmp (layout, "dvi")) { ++ id = CODEC_ID_ADPCM_IMA_WAV; ++ } else if (!strcmp (layout, "4xm")) { ++ id = CODEC_ID_ADPCM_4XM; ++ } else if (!strcmp (layout, "smjpeg")) { ++ id = CODEC_ID_ADPCM_IMA_SMJPEG; ++ } else if (!strcmp (layout, "dk3")) { ++ id = CODEC_ID_ADPCM_IMA_DK3; ++ } else if (!strcmp (layout, "dk4")) { ++ id = CODEC_ID_ADPCM_IMA_DK4; ++ } else if (!strcmp (layout, "westwood")) { ++ id = CODEC_ID_ADPCM_IMA_WS; ++ } else if (!strcmp (layout, "iss")) { ++ id = CODEC_ID_ADPCM_IMA_ISS; ++ } else if (!strcmp (layout, "xa")) { ++ id = CODEC_ID_ADPCM_XA; ++ } else if (!strcmp (layout, "adx")) { ++ id = CODEC_ID_ADPCM_ADX; ++ } else if (!strcmp (layout, "ea")) { ++ id = CODEC_ID_ADPCM_EA; ++ } else if (!strcmp (layout, "g726")) { ++ id = CODEC_ID_ADPCM_G726; ++ } else if (!strcmp (layout, "g721")) { ++ id = CODEC_ID_ADPCM_G726; ++ } else if (!strcmp (layout, "ct")) { ++ id = CODEC_ID_ADPCM_CT; ++ } else if (!strcmp (layout, "swf")) { ++ id = CODEC_ID_ADPCM_SWF; ++ } else if (!strcmp (layout, "yamaha")) { ++ id = CODEC_ID_ADPCM_YAMAHA; ++ } else if (!strcmp (layout, "sbpro2")) { ++ id = CODEC_ID_ADPCM_SBPRO_2; ++ } else if (!strcmp (layout, "sbpro3")) { ++ id = CODEC_ID_ADPCM_SBPRO_3; ++ } else if (!strcmp (layout, "sbpro4")) { ++ id = CODEC_ID_ADPCM_SBPRO_4; ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-4xm")) { ++ id = CODEC_ID_4XM; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-dpcm")) { ++ const gchar *layout; ++ ++ layout = gst_structure_get_string (structure, "layout"); ++ if (!layout) { ++ /* .. */ ++ } else if (!strcmp (layout, "roq")) { ++ id = CODEC_ID_ROQ_DPCM; ++ } else if (!strcmp (layout, "interplay")) { ++ id = CODEC_ID_INTERPLAY_DPCM; ++ } else if (!strcmp (layout, "xan")) { ++ id = CODEC_ID_XAN_DPCM; ++ } else if (!strcmp (layout, "sol")) { ++ id = CODEC_ID_SOL_DPCM; ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-flac")) { ++ id = CODEC_ID_FLAC; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-shorten")) { ++ id = CODEC_ID_SHORTEN; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-alac")) { ++ id = CODEC_ID_ALAC; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-cinepak")) { ++ id = CODEC_ID_CINEPAK; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-pn-realvideo")) { ++ gint rmversion; ++ ++ if (gst_structure_get_int (structure, "rmversion", &rmversion)) { ++ switch (rmversion) { ++ case 1: ++ id = CODEC_ID_RV10; ++ break; ++ case 2: ++ id = CODEC_ID_RV20; ++ break; ++ case 3: ++ id = CODEC_ID_RV30; ++ break; ++ case 4: ++ id = CODEC_ID_RV40; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ video = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-sipro")) { ++ id = CODEC_ID_SIPR; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/x-pn-realaudio")) { ++ gint raversion; ++ ++ if (gst_structure_get_int (structure, "raversion", &raversion)) { ++ switch (raversion) { ++ case 1: ++ id = CODEC_ID_RA_144; ++ break; ++ case 2: ++ id = CODEC_ID_RA_288; ++ break; ++ case 8: ++ id = CODEC_ID_COOK; ++ break; ++ } ++ } ++ if (id != CODEC_ID_NONE) ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-rle")) { ++ const gchar *layout; ++ ++ if ((layout = gst_structure_get_string (structure, "layout"))) { ++ if (!strcmp (layout, "microsoft")) { ++ id = CODEC_ID_MSRLE; ++ video = TRUE; ++ } ++ } ++ } else if (!strcmp (mimetype, "video/x-xan")) { ++ gint wcversion = 0; ++ ++ if ((gst_structure_get_int (structure, "wcversion", &wcversion))) { ++ switch (wcversion) { ++ case 3: ++ id = CODEC_ID_XAN_WC3; ++ video = TRUE; ++ break; ++ case 4: ++ id = CODEC_ID_XAN_WC4; ++ video = TRUE; ++ break; ++ default: ++ break; ++ } ++ } ++ } else if (!strcmp (mimetype, "audio/AMR")) { ++ audio = TRUE; ++ id = CODEC_ID_AMR_NB; ++ } else if (!strcmp (mimetype, "audio/AMR-WB")) { ++ id = CODEC_ID_AMR_WB; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "audio/qcelp")) { ++ id = CODEC_ID_QCELP; ++ audio = TRUE; ++ } else if (!strcmp (mimetype, "video/x-h264")) { ++ id = CODEC_ID_H264; ++ video = TRUE; ++ } else if (!strcmp (mimetype, "video/x-flash-video")) { ++ gint flvversion = 0; ++ ++ if ((gst_structure_get_int (structure, "flvversion", &flvversion))) { ++ switch (flvversion) { ++ case 1: ++ id = CODEC_ID_FLV1; ++ video = TRUE; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ } else if (!strcmp (mimetype, "audio/x-nellymoser")) { ++ id = CODEC_ID_NELLYMOSER; ++ audio = TRUE; ++ } else if (!strncmp (mimetype, "audio/x-gst_ff-", 15)) { ++ gchar ext[16]; ++ AVCodec *codec; ++ ++ if (strlen (mimetype) <= 30 && ++ sscanf (mimetype, "audio/x-gst_ff-%s", ext) == 1) { ++ if ((codec = avcodec_find_decoder_by_name (ext)) || ++ (codec = avcodec_find_encoder_by_name (ext))) { ++ id = codec->id; ++ audio = TRUE; ++ } ++ } ++ } else if (!strncmp (mimetype, "video/x-gst_ff-", 15)) { ++ gchar ext[16]; ++ AVCodec *codec; ++ ++ if (strlen (mimetype) <= 30 && ++ sscanf (mimetype, "video/x-gst_ff-%s", ext) == 1) { ++ if ((codec = avcodec_find_decoder_by_name (ext)) || ++ (codec = avcodec_find_encoder_by_name (ext))) { ++ id = codec->id; ++ video = TRUE; ++ } ++ } ++ } ++ ++ if (context != NULL) { ++ if (video == TRUE) { ++ context->codec_type = AVMEDIA_TYPE_VIDEO; ++ } else if (audio == TRUE) { ++ context->codec_type = AVMEDIA_TYPE_AUDIO; ++ } else { ++ context->codec_type = AVMEDIA_TYPE_UNKNOWN; ++ } ++ context->codec_id = id; ++ gst_ffmpeg_caps_with_codecid (id, context->codec_type, caps, context); ++ } ++ ++ if (id != CODEC_ID_NONE) { ++ GST_DEBUG ("The id=%d belongs to the caps %" GST_PTR_FORMAT, id, caps); ++ } else { ++ GST_WARNING ("Couldn't figure out the id for caps %" GST_PTR_FORMAT, caps); ++ } ++ ++ return id; ++} +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.rej gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.rej +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c.rej 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegcodecmap.c.rej 2014-08-08 15:31:06.055868246 +0200 +@@ -0,0 +1,12 @@ ++--- ext/ffmpeg/gstffmpegcodecmap.c +++++ ext/ffmpeg/gstffmpegcodecmap.c ++@@ -1884,9 +1842,6 @@ ++ gst_ff_vid_caps_new (context, codec_id, encode, "video/x-raw-rgb", ++ "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, "endianness", ++ G_TYPE_INT, endianness, NULL); ++- if (caps && context) { ++- gst_ffmpeg_set_palette (caps, context); ++- } ++ } ++ } else if (fmt) { ++ caps = gst_ff_vid_caps_new (context, codec_id, encode, "video/x-raw-yuv", +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c 2014-08-08 14:46:31.462772351 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c 2014-08-08 15:32:18.608870847 +0200 +@@ -88,7 +88,6 @@ + gint depth; + } audio; + } format; +- gboolean waiting_for_key; + gboolean discont; + gboolean clear_ts; + +@@ -438,7 +437,6 @@ + ffmpegdec->pcache = NULL; + ffmpegdec->par = NULL; + ffmpegdec->opened = FALSE; +- ffmpegdec->waiting_for_key = TRUE; + ffmpegdec->skip_frame = ffmpegdec->lowres = 0; + ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING; + ffmpegdec->do_padding = DEFAULT_DO_PADDING; +@@ -608,11 +606,6 @@ + gst_ffmpeg_avcodec_close (ffmpegdec->context); + ffmpegdec->opened = FALSE; + +- if (ffmpegdec->context->palctrl) { +- av_free (ffmpegdec->context->palctrl); +- ffmpegdec->context->palctrl = NULL; +- } +- + if (ffmpegdec->context->extradata) { + av_free (ffmpegdec->context->extradata); + ffmpegdec->context->extradata = NULL; +@@ -864,7 +857,7 @@ + + /* workaround encoder bugs */ + ffmpegdec->context->workaround_bugs |= FF_BUG_AUTODETECT; +- ffmpegdec->context->error_recognition = 1; ++ ffmpegdec->context->err_recognition = 1; + + /* for slow cpus */ + ffmpegdec->context->lowres = ffmpegdec->lowres; +@@ -944,7 +937,7 @@ + fsize = gst_ffmpeg_avpicture_get_size (ffmpegdec->context->pix_fmt, + width, height); + +- if (!ffmpegdec->context->palctrl && ffmpegdec->can_allocate_aligned) { ++ if (ffmpegdec->can_allocate_aligned) { + GST_LOG_OBJECT (ffmpegdec, "calling pad_alloc"); + /* no pallete, we can use the buffer size to alloc */ + ret = gst_pad_alloc_buffer_and_set_caps (ffmpegdec->srcpad, +@@ -1083,7 +1076,6 @@ + /* tell ffmpeg we own this buffer, tranfer the ref we have on the buffer to + * the opaque data. */ + picture->type = FF_BUFFER_TYPE_USER; +- picture->age = 256 * 256 * 256 * 64; + picture->opaque = buf; + + #ifdef EXTRA_REF +@@ -1414,10 +1406,6 @@ + } else { + if (diff >= 0) { + /* we're too slow, try to speed up */ +- if (ffmpegdec->waiting_for_key) { +- /* we were waiting for a keyframe, that's ok */ +- goto skipping; +- } + /* switch to skip_frame mode */ + goto skip_frame; + } +@@ -1427,11 +1415,6 @@ + ffmpegdec->processed++; + return TRUE; + +-skipping: +- { +- res = FALSE; +- goto drop_qos; +- } + normal_mode: + { + if (ffmpegdec->context->skip_frame != AVDISCARD_DEFAULT) { +@@ -1528,43 +1511,6 @@ + } + + +-/* figure out if the current picture is a keyframe, return TRUE if that is +- * the case. */ +-static gboolean +-check_keyframe (GstFFMpegDec * ffmpegdec) +-{ +- GstFFMpegDecClass *oclass; +- gboolean is_itype = FALSE; +- gboolean is_reference = FALSE; +- gboolean iskeyframe; +- +- /* figure out if we are dealing with a keyframe */ +- oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); +- +- /* remember that we have B frames, we need this for the DTS -> PTS conversion +- * code */ +- if (!ffmpegdec->has_b_frames && ffmpegdec->picture->pict_type == FF_B_TYPE) { +- GST_DEBUG_OBJECT (ffmpegdec, "we have B frames"); +- ffmpegdec->has_b_frames = TRUE; +- } +- +- is_itype = (ffmpegdec->picture->pict_type == FF_I_TYPE); +- is_reference = (ffmpegdec->picture->reference == 1); +- +- iskeyframe = (is_itype || is_reference || ffmpegdec->picture->key_frame) +- || (oclass->in_plugin->id == CODEC_ID_INDEO3) +- || (oclass->in_plugin->id == CODEC_ID_MSZH) +- || (oclass->in_plugin->id == CODEC_ID_ZLIB) +- || (oclass->in_plugin->id == CODEC_ID_VP3) +- || (oclass->in_plugin->id == CODEC_ID_HUFFYUV); +- +- GST_LOG_OBJECT (ffmpegdec, +- "current picture: type: %d, is_keyframe:%d, is_itype:%d, is_reference:%d", +- ffmpegdec->picture->pict_type, iskeyframe, is_itype, is_reference); +- +- return iskeyframe; +-} +- + /* get an outbuf buffer with the current picture */ + static GstFlowReturn + get_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf) +@@ -1694,7 +1640,6 @@ + { + gint len = -1; + gint have_data; +- gboolean iskeyframe; + gboolean mode_switch; + gboolean decode; + gint skip_frame = AVDISCARD_DEFAULT; +@@ -1809,7 +1754,6 @@ + gst_ffmpegdec_negotiate (ffmpegdec, TRUE); + } + +- + /* Whether a frame is interlaced or not is unknown at the time of + buffer allocation, so caps on the buffer in opaque will have + the previous frame's interlaced flag set. So if interlacedness +@@ -1831,10 +1775,6 @@ + } + } + +- /* check if we are dealing with a keyframe here, this will also check if we +- * are dealing with B frames. */ +- iskeyframe = check_keyframe (ffmpegdec); +- + /* check that the timestamps go upwards */ + if (ffmpegdec->last_out != -1 && ffmpegdec->last_out > out_pts) { + /* timestamps go backwards, this means frames were reordered and we must +@@ -1865,7 +1805,7 @@ + * timestamps */ + if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) { + /* PTS and DTS are the same for keyframes */ +- if (!iskeyframe && ffmpegdec->next_out != -1) { ++ if (ffmpegdec->next_out != -1) { + /* interpolate all timestamps except for keyframes, FIXME, this is + * wrong when QoS is active. */ + GST_DEBUG_OBJECT (ffmpegdec, "interpolate timestamps"); +@@ -1874,16 +1814,6 @@ + } + } + +- /* when we're waiting for a keyframe, see if we have one or drop the current +- * non-keyframe */ +- if (G_UNLIKELY (ffmpegdec->waiting_for_key)) { +- if (G_LIKELY (!iskeyframe)) +- goto drop_non_keyframe; +- +- /* we have a keyframe, we can stop waiting for one */ +- ffmpegdec->waiting_for_key = FALSE; +- } +- + /* get a handle to the output buffer */ + *ret = get_output_buffer (ffmpegdec, outbuf); + if (G_UNLIKELY (*ret != GST_FLOW_OK)) +@@ -2000,20 +1930,11 @@ + else + ffmpegdec->next_out = -1; + +- /* palette is not part of raw video frame in gst and the size +- * of the outgoing buffer needs to be adjusted accordingly */ +- if (ffmpegdec->context->palctrl != NULL) +- GST_BUFFER_SIZE (*outbuf) -= AVPALETTE_SIZE; +- + /* now see if we need to clip the buffer against the segment boundaries. */ + if (G_UNLIKELY (!clip_video_buffer (ffmpegdec, *outbuf, out_timestamp, + out_duration))) + goto clipped; + +- /* mark as keyframe or delta unit */ +- if (!iskeyframe) +- GST_BUFFER_FLAG_SET (*outbuf, GST_BUFFER_FLAG_DELTA_UNIT); +- + if (ffmpegdec->picture->top_field_first) + GST_BUFFER_FLAG_SET (*outbuf, GST_VIDEO_BUFFER_TFF); + +@@ -2024,11 +1945,6 @@ + return len; + + /* special cases */ +-drop_non_keyframe: +- { +- GST_WARNING_OBJECT (ffmpegdec, "Dropping non-keyframe (seek/init)"); +- goto beach; +- } + no_output: + { + GST_DEBUG_OBJECT (ffmpegdec, "no output buffer"); +@@ -2422,7 +2338,6 @@ + gst_ffmpegdec_reset_ts (ffmpegdec); + gst_ffmpegdec_reset_qos (ffmpegdec); + gst_ffmpegdec_flush_pcache (ffmpegdec); +- ffmpegdec->waiting_for_key = TRUE; + gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME); + clear_queued (ffmpegdec); + break; +@@ -2560,17 +2475,6 @@ + + oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); + +- /* do early keyframe check pretty bad to rely on the keyframe flag in the +- * source for this as it might not even be parsed (UDP/file/..). */ +- if (G_UNLIKELY (ffmpegdec->waiting_for_key)) { +- GST_DEBUG_OBJECT (ffmpegdec, "waiting for keyframe"); +- if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DELTA_UNIT) && +- oclass->in_plugin->type != AVMEDIA_TYPE_AUDIO) +- goto skip_keyframe; +- +- GST_DEBUG_OBJECT (ffmpegdec, "got keyframe"); +- ffmpegdec->waiting_for_key = FALSE; +- } + /* parse cache joining. If there is cached data */ + if (ffmpegdec->pcache) { + /* join with previous data */ +@@ -2805,12 +2709,6 @@ + gst_buffer_unref (inbuf); + return GST_FLOW_NOT_NEGOTIATED; + } +-skip_keyframe: +- { +- GST_DEBUG_OBJECT (ffmpegdec, "skipping non keyframe"); +- gst_buffer_unref (inbuf); +- return GST_FLOW_OK; +- } + } + + static GstStateChangeReturn +@@ -2936,7 +2834,7 @@ + gchar *plugin_name; + + /* only decoders */ +- if (!in_plugin->decode) { ++ if (!av_codec_is_decoder (in_plugin)) { + goto next; + } + +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.orig +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.orig 2014-08-08 15:31:06.057868246 +0200 +@@ -0,0 +1,2973 @@ ++/* GStreamer ++ * Copyright (C) <1999> Erik Walthinsen ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++ ++#ifdef HAVE_FFMPEG_UNINSTALLED ++#include ++#else ++#include ++#endif ++ ++#include ++#include ++ ++#include "gstffmpeg.h" ++#include "gstffmpegcodecmap.h" ++#include "gstffmpegutils.h" ++ ++/* define to enable alternative buffer refcounting algorithm */ ++#undef EXTRA_REF ++ ++typedef struct _GstFFMpegDec GstFFMpegDec; ++ ++#define MAX_TS_MASK 0xff ++ ++/* for each incomming buffer we keep all timing info in a structure like this. ++ * We keep a circular array of these structures around to store the timing info. ++ * The index in the array is what we pass as opaque data (to pictures) and ++ * pts (to parsers) so that ffmpeg can remember them for us. */ ++typedef struct ++{ ++ gint idx; ++ GstClockTime timestamp; ++ GstClockTime duration; ++ gint64 offset; ++} GstTSInfo; ++ ++struct _GstFFMpegDec ++{ ++ GstElement element; ++ ++ /* We need to keep track of our pads, so we do so here. */ ++ GstPad *srcpad; ++ GstPad *sinkpad; ++ ++ /* decoding */ ++ AVCodecContext *context; ++ AVFrame *picture; ++ gboolean opened; ++ union ++ { ++ struct ++ { ++ gint width, height; ++ gint clip_width, clip_height; ++ gint par_n, par_d; ++ gint fps_n, fps_d; ++ gint old_fps_n, old_fps_d; ++ gboolean interlaced; ++ ++ enum PixelFormat pix_fmt; ++ } video; ++ struct ++ { ++ gint channels; ++ gint samplerate; ++ gint depth; ++ } audio; ++ } format; ++ gboolean discont; ++ gboolean clear_ts; ++ ++ /* for tracking DTS/PTS */ ++ gboolean has_b_frames; ++ gboolean reordered_in; ++ GstClockTime last_in; ++ GstClockTime last_diff; ++ guint last_frames; ++ gboolean reordered_out; ++ GstClockTime last_out; ++ GstClockTime next_out; ++ ++ /* parsing */ ++ gboolean turnoff_parser; /* used for turning off aac raw parsing ++ * See bug #566250 */ ++ AVCodecParserContext *pctx; ++ GstBuffer *pcache; ++ guint8 *padded; ++ guint padded_size; ++ ++ GValue *par; /* pixel aspect ratio of incoming data */ ++ gboolean current_dr; /* if direct rendering is enabled */ ++ gboolean extra_ref; /* keep extra ref around in get/release */ ++ ++ /* some properties */ ++ enum AVDiscard skip_frame; ++ gint lowres; ++ gboolean direct_rendering; ++ gboolean do_padding; ++ gboolean debug_mv; ++ gboolean crop; ++ int max_threads; ++ ++ /* QoS stuff *//* with LOCK */ ++ gdouble proportion; ++ GstClockTime earliest_time; ++ gint64 processed; ++ gint64 dropped; ++ ++ /* clipping segment */ ++ GstSegment segment; ++ ++ gboolean is_realvideo; ++ ++ GstTSInfo ts_info[MAX_TS_MASK + 1]; ++ gint ts_idx; ++ ++ /* reverse playback queue */ ++ GList *queued; ++ ++ /* Can downstream allocate 16bytes aligned data. */ ++ gboolean can_allocate_aligned; ++}; ++ ++typedef struct _GstFFMpegDecClass GstFFMpegDecClass; ++ ++struct _GstFFMpegDecClass ++{ ++ GstElementClass parent_class; ++ ++ AVCodec *in_plugin; ++ GstPadTemplate *srctempl, *sinktempl; ++}; ++ ++#define GST_TS_INFO_NONE &ts_info_none ++static const GstTSInfo ts_info_none = { -1, -1, -1, -1 }; ++ ++static const GstTSInfo * ++gst_ts_info_store (GstFFMpegDec * dec, GstClockTime timestamp, ++ GstClockTime duration, gint64 offset) ++{ ++ gint idx = dec->ts_idx; ++ dec->ts_info[idx].idx = idx; ++ dec->ts_info[idx].timestamp = timestamp; ++ dec->ts_info[idx].duration = duration; ++ dec->ts_info[idx].offset = offset; ++ dec->ts_idx = (idx + 1) & MAX_TS_MASK; ++ ++ return &dec->ts_info[idx]; ++} ++ ++static const GstTSInfo * ++gst_ts_info_get (GstFFMpegDec * dec, gint idx) ++{ ++ if (G_UNLIKELY (idx < 0 || idx > MAX_TS_MASK)) ++ return GST_TS_INFO_NONE; ++ ++ return &dec->ts_info[idx]; ++} ++ ++#define GST_TYPE_FFMPEGDEC \ ++ (gst_ffmpegdec_get_type()) ++#define GST_FFMPEGDEC(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FFMPEGDEC,GstFFMpegDec)) ++#define GST_FFMPEGDEC_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FFMPEGDEC,GstFFMpegDecClass)) ++#define GST_IS_FFMPEGDEC(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FFMPEGDEC)) ++#define GST_IS_FFMPEGDEC_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FFMPEGDEC)) ++ ++#define DEFAULT_LOWRES 0 ++#define DEFAULT_SKIPFRAME 0 ++#define DEFAULT_DIRECT_RENDERING TRUE ++#define DEFAULT_DO_PADDING TRUE ++#define DEFAULT_DEBUG_MV FALSE ++#define DEFAULT_CROP TRUE ++#define DEFAULT_MAX_THREADS 1 ++ ++enum ++{ ++ PROP_0, ++ PROP_LOWRES, ++ PROP_SKIPFRAME, ++ PROP_DIRECT_RENDERING, ++ PROP_DO_PADDING, ++ PROP_DEBUG_MV, ++ PROP_CROP, ++ PROP_MAX_THREADS, ++ PROP_LAST ++}; ++ ++/* A number of function prototypes are given so we can refer to them later. */ ++static void gst_ffmpegdec_base_init (GstFFMpegDecClass * klass); ++static void gst_ffmpegdec_class_init (GstFFMpegDecClass * klass); ++static void gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec); ++static void gst_ffmpegdec_finalize (GObject * object); ++ ++static gboolean gst_ffmpegdec_query (GstPad * pad, GstQuery * query); ++static gboolean gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event); ++ ++static gboolean gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps); ++static gboolean gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event); ++static GstFlowReturn gst_ffmpegdec_chain (GstPad * pad, GstBuffer * buf); ++ ++static GstStateChangeReturn gst_ffmpegdec_change_state (GstElement * element, ++ GstStateChange transition); ++ ++static void gst_ffmpegdec_set_property (GObject * object, ++ guint prop_id, const GValue * value, GParamSpec * pspec); ++static void gst_ffmpegdec_get_property (GObject * object, ++ guint prop_id, GValue * value, GParamSpec * pspec); ++ ++static gboolean gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec, ++ gboolean force); ++ ++/* some sort of bufferpool handling, but different */ ++static int gst_ffmpegdec_get_buffer (AVCodecContext * context, ++ AVFrame * picture); ++static void gst_ffmpegdec_release_buffer (AVCodecContext * context, ++ AVFrame * picture); ++ ++static void gst_ffmpegdec_drain (GstFFMpegDec * ffmpegdec); ++ ++#define GST_FFDEC_PARAMS_QDATA g_quark_from_static_string("ffdec-params") ++ ++static GstElementClass *parent_class = NULL; ++ ++#define GST_FFMPEGDEC_TYPE_LOWRES (gst_ffmpegdec_lowres_get_type()) ++static GType ++gst_ffmpegdec_lowres_get_type (void) ++{ ++ static GType ffmpegdec_lowres_type = 0; ++ ++ if (!ffmpegdec_lowres_type) { ++ static const GEnumValue ffmpegdec_lowres[] = { ++ {0, "0", "full"}, ++ {1, "1", "1/2-size"}, ++ {2, "2", "1/4-size"}, ++ {0, NULL, NULL}, ++ }; ++ ++ ffmpegdec_lowres_type = ++ g_enum_register_static ("GstFFMpegDecLowres", ffmpegdec_lowres); ++ } ++ ++ return ffmpegdec_lowres_type; ++} ++ ++#define GST_FFMPEGDEC_TYPE_SKIPFRAME (gst_ffmpegdec_skipframe_get_type()) ++static GType ++gst_ffmpegdec_skipframe_get_type (void) ++{ ++ static GType ffmpegdec_skipframe_type = 0; ++ ++ if (!ffmpegdec_skipframe_type) { ++ static const GEnumValue ffmpegdec_skipframe[] = { ++ {0, "0", "Skip nothing"}, ++ {1, "1", "Skip B-frames"}, ++ {2, "2", "Skip IDCT/Dequantization"}, ++ {5, "5", "Skip everything"}, ++ {0, NULL, NULL}, ++ }; ++ ++ ffmpegdec_skipframe_type = ++ g_enum_register_static ("GstFFMpegDecSkipFrame", ffmpegdec_skipframe); ++ } ++ ++ return ffmpegdec_skipframe_type; ++} ++ ++static void ++gst_ffmpegdec_base_init (GstFFMpegDecClass * klass) ++{ ++ GstElementClass *element_class = GST_ELEMENT_CLASS (klass); ++ GstPadTemplate *sinktempl, *srctempl; ++ GstCaps *sinkcaps, *srccaps; ++ AVCodec *in_plugin; ++ gchar *longname, *classification, *description; ++ ++ in_plugin = ++ (AVCodec *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), ++ GST_FFDEC_PARAMS_QDATA); ++ g_assert (in_plugin != NULL); ++ ++ /* construct the element details struct */ ++ longname = g_strdup_printf ("FFmpeg %s decoder", in_plugin->long_name); ++ classification = g_strdup_printf ("Codec/Decoder/%s", ++ (in_plugin->type == AVMEDIA_TYPE_VIDEO) ? "Video" : "Audio"); ++ description = g_strdup_printf ("FFmpeg %s decoder", in_plugin->name); ++ gst_element_class_set_details_simple (element_class, longname, classification, ++ description, ++ "Wim Taymans , " ++ "Ronald Bultje , " ++ "Edward Hervey "); ++ g_free (longname); ++ g_free (classification); ++ g_free (description); ++ ++ /* get the caps */ ++ sinkcaps = gst_ffmpeg_codecid_to_caps (in_plugin->id, NULL, FALSE); ++ if (!sinkcaps) { ++ GST_DEBUG ("Couldn't get sink caps for decoder '%s'", in_plugin->name); ++ sinkcaps = gst_caps_from_string ("unknown/unknown"); ++ } ++ if (in_plugin->type == AVMEDIA_TYPE_VIDEO) { ++ srccaps = gst_caps_from_string ("video/x-raw-rgb; video/x-raw-yuv"); ++ } else { ++ srccaps = gst_ffmpeg_codectype_to_audio_caps (NULL, ++ in_plugin->id, FALSE, in_plugin); ++ } ++ if (!srccaps) { ++ GST_DEBUG ("Couldn't get source caps for decoder '%s'", in_plugin->name); ++ srccaps = gst_caps_from_string ("unknown/unknown"); ++ } ++ ++ /* pad templates */ ++ sinktempl = gst_pad_template_new ("sink", GST_PAD_SINK, ++ GST_PAD_ALWAYS, sinkcaps); ++ srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, srccaps); ++ ++ gst_element_class_add_pad_template (element_class, srctempl); ++ gst_element_class_add_pad_template (element_class, sinktempl); ++ ++ klass->in_plugin = in_plugin; ++ klass->srctempl = srctempl; ++ klass->sinktempl = sinktempl; ++} ++ ++static void ++gst_ffmpegdec_class_init (GstFFMpegDecClass * klass) ++{ ++ GObjectClass *gobject_class = G_OBJECT_CLASS (klass); ++ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); ++ ++ parent_class = g_type_class_peek_parent (klass); ++ ++ gobject_class->finalize = gst_ffmpegdec_finalize; ++ ++ gobject_class->set_property = gst_ffmpegdec_set_property; ++ gobject_class->get_property = gst_ffmpegdec_get_property; ++ ++ if (klass->in_plugin->type == AVMEDIA_TYPE_VIDEO) { ++ int caps; ++ ++ g_object_class_install_property (gobject_class, PROP_SKIPFRAME, ++ g_param_spec_enum ("skip-frame", "Skip frames", ++ "Which types of frames to skip during decoding", ++ GST_FFMPEGDEC_TYPE_SKIPFRAME, 0, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ g_object_class_install_property (gobject_class, PROP_LOWRES, ++ g_param_spec_enum ("lowres", "Low resolution", ++ "At which resolution to decode images", GST_FFMPEGDEC_TYPE_LOWRES, ++ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ g_object_class_install_property (gobject_class, PROP_DIRECT_RENDERING, ++ g_param_spec_boolean ("direct-rendering", "Direct Rendering", ++ "Enable direct rendering", DEFAULT_DIRECT_RENDERING, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ g_object_class_install_property (gobject_class, PROP_DO_PADDING, ++ g_param_spec_boolean ("do-padding", "Do Padding", ++ "Add 0 padding before decoding data", DEFAULT_DO_PADDING, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ g_object_class_install_property (gobject_class, PROP_DEBUG_MV, ++ g_param_spec_boolean ("debug-mv", "Debug motion vectors", ++ "Whether ffmpeg should print motion vectors on top of the image", ++ DEFAULT_DEBUG_MV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++#if 0 ++ g_object_class_install_property (gobject_class, PROP_CROP, ++ g_param_spec_boolean ("crop", "Crop", ++ "Crop images to the display region", ++ DEFAULT_CROP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++#endif ++ ++ caps = klass->in_plugin->capabilities; ++ if (caps & (CODEC_CAP_FRAME_THREADS | CODEC_CAP_SLICE_THREADS)) { ++ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MAX_THREADS, ++ g_param_spec_int ("max-threads", "Maximum decode threads", ++ "Maximum number of worker threads to spawn. (0 = auto)", ++ 0, G_MAXINT, DEFAULT_MAX_THREADS, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ } ++ } ++ ++ gstelement_class->change_state = gst_ffmpegdec_change_state; ++} ++ ++static void ++gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec) ++{ ++ GstFFMpegDecClass *oclass; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ /* setup pads */ ++ ffmpegdec->sinkpad = gst_pad_new_from_template (oclass->sinktempl, "sink"); ++ gst_pad_set_setcaps_function (ffmpegdec->sinkpad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegdec_setcaps)); ++ gst_pad_set_event_function (ffmpegdec->sinkpad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegdec_sink_event)); ++ gst_pad_set_chain_function (ffmpegdec->sinkpad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegdec_chain)); ++ gst_element_add_pad (GST_ELEMENT (ffmpegdec), ffmpegdec->sinkpad); ++ ++ ffmpegdec->srcpad = gst_pad_new_from_template (oclass->srctempl, "src"); ++ gst_pad_use_fixed_caps (ffmpegdec->srcpad); ++ gst_pad_set_event_function (ffmpegdec->srcpad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegdec_src_event)); ++ gst_pad_set_query_function (ffmpegdec->srcpad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegdec_query)); ++ gst_element_add_pad (GST_ELEMENT (ffmpegdec), ffmpegdec->srcpad); ++ ++ /* some ffmpeg data */ ++ ffmpegdec->context = avcodec_alloc_context (); ++ ffmpegdec->picture = avcodec_alloc_frame (); ++ ffmpegdec->pctx = NULL; ++ ffmpegdec->pcache = NULL; ++ ffmpegdec->par = NULL; ++ ffmpegdec->opened = FALSE; ++ ffmpegdec->skip_frame = ffmpegdec->lowres = 0; ++ ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING; ++ ffmpegdec->do_padding = DEFAULT_DO_PADDING; ++ ffmpegdec->debug_mv = DEFAULT_DEBUG_MV; ++ ffmpegdec->crop = DEFAULT_CROP; ++ ffmpegdec->max_threads = DEFAULT_MAX_THREADS; ++ ++ ffmpegdec->format.video.par_n = -1; ++ ffmpegdec->format.video.fps_n = -1; ++ ffmpegdec->format.video.old_fps_n = -1; ++ gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME); ++ ++ /* We initially assume downstream can allocate 16 bytes aligned buffers */ ++ ffmpegdec->can_allocate_aligned = TRUE; ++} ++ ++static void ++gst_ffmpegdec_finalize (GObject * object) ++{ ++ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object; ++ ++ if (ffmpegdec->context != NULL) { ++ av_free (ffmpegdec->context); ++ ffmpegdec->context = NULL; ++ } ++ ++ if (ffmpegdec->picture != NULL) { ++ av_free (ffmpegdec->picture); ++ ffmpegdec->picture = NULL; ++ } ++ ++ G_OBJECT_CLASS (parent_class)->finalize (object); ++} ++ ++static gboolean ++gst_ffmpegdec_query (GstPad * pad, GstQuery * query) ++{ ++ GstFFMpegDec *ffmpegdec; ++ GstPad *peer; ++ gboolean res; ++ ++ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad); ++ ++ res = FALSE; ++ ++ if ((peer = gst_pad_get_peer (ffmpegdec->sinkpad))) { ++ /* just forward to peer */ ++ res = gst_pad_query (peer, query); ++ gst_object_unref (peer); ++ } ++#if 0 ++ { ++ GstFormat bfmt; ++ ++ bfmt = GST_FORMAT_BYTES; ++ ++ /* ok, do bitrate calc... */ ++ if ((type != GST_QUERY_POSITION && type != GST_QUERY_TOTAL) || ++ *fmt != GST_FORMAT_TIME || ffmpegdec->context->bit_rate == 0 || ++ !gst_pad_query (peer, type, &bfmt, value)) ++ return FALSE; ++ ++ if (ffmpegdec->pcache && type == GST_QUERY_POSITION) ++ *value -= GST_BUFFER_SIZE (ffmpegdec->pcache); ++ *value *= GST_SECOND / ffmpegdec->context->bit_rate; ++ } ++#endif ++ ++ gst_object_unref (ffmpegdec); ++ ++ return res; ++} ++ ++static void ++gst_ffmpegdec_reset_ts (GstFFMpegDec * ffmpegdec) ++{ ++ ffmpegdec->last_in = GST_CLOCK_TIME_NONE; ++ ffmpegdec->last_diff = GST_CLOCK_TIME_NONE; ++ ffmpegdec->last_frames = 0; ++ ffmpegdec->last_out = GST_CLOCK_TIME_NONE; ++ ffmpegdec->next_out = GST_CLOCK_TIME_NONE; ++ ffmpegdec->reordered_in = FALSE; ++ ffmpegdec->reordered_out = FALSE; ++} ++ ++static void ++gst_ffmpegdec_update_qos (GstFFMpegDec * ffmpegdec, gdouble proportion, ++ GstClockTime timestamp) ++{ ++ GST_LOG_OBJECT (ffmpegdec, "update QOS: %f, %" GST_TIME_FORMAT, ++ proportion, GST_TIME_ARGS (timestamp)); ++ ++ GST_OBJECT_LOCK (ffmpegdec); ++ ffmpegdec->proportion = proportion; ++ ffmpegdec->earliest_time = timestamp; ++ GST_OBJECT_UNLOCK (ffmpegdec); ++} ++ ++static void ++gst_ffmpegdec_reset_qos (GstFFMpegDec * ffmpegdec) ++{ ++ gst_ffmpegdec_update_qos (ffmpegdec, 0.5, GST_CLOCK_TIME_NONE); ++ ffmpegdec->processed = 0; ++ ffmpegdec->dropped = 0; ++} ++ ++static void ++gst_ffmpegdec_read_qos (GstFFMpegDec * ffmpegdec, gdouble * proportion, ++ GstClockTime * timestamp) ++{ ++ GST_OBJECT_LOCK (ffmpegdec); ++ *proportion = ffmpegdec->proportion; ++ *timestamp = ffmpegdec->earliest_time; ++ GST_OBJECT_UNLOCK (ffmpegdec); ++} ++ ++static gboolean ++gst_ffmpegdec_src_event (GstPad * pad, GstEvent * event) ++{ ++ GstFFMpegDec *ffmpegdec; ++ gboolean res; ++ ++ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad); ++ ++ switch (GST_EVENT_TYPE (event)) { ++ case GST_EVENT_QOS: ++ { ++ gdouble proportion; ++ GstClockTimeDiff diff; ++ GstClockTime timestamp; ++ ++ gst_event_parse_qos (event, &proportion, &diff, ×tamp); ++ ++ /* update our QoS values */ ++ gst_ffmpegdec_update_qos (ffmpegdec, proportion, timestamp + diff); ++ ++ /* forward upstream */ ++ res = gst_pad_push_event (ffmpegdec->sinkpad, event); ++ break; ++ } ++ default: ++ /* forward upstream */ ++ res = gst_pad_push_event (ffmpegdec->sinkpad, event); ++ break; ++ } ++ ++ gst_object_unref (ffmpegdec); ++ ++ return res; ++} ++ ++/* with LOCK */ ++static void ++gst_ffmpegdec_close (GstFFMpegDec * ffmpegdec) ++{ ++ if (!ffmpegdec->opened) ++ return; ++ ++ GST_LOG_OBJECT (ffmpegdec, "closing ffmpeg codec"); ++ ++ if (ffmpegdec->par) { ++ g_free (ffmpegdec->par); ++ ffmpegdec->par = NULL; ++ } ++ ++ if (ffmpegdec->context->priv_data) ++ gst_ffmpeg_avcodec_close (ffmpegdec->context); ++ ffmpegdec->opened = FALSE; ++ ++ if (ffmpegdec->context->extradata) { ++ av_free (ffmpegdec->context->extradata); ++ ffmpegdec->context->extradata = NULL; ++ } ++ ++ if (ffmpegdec->pctx) { ++ if (ffmpegdec->pcache) { ++ gst_buffer_unref (ffmpegdec->pcache); ++ ffmpegdec->pcache = NULL; ++ } ++ av_parser_close (ffmpegdec->pctx); ++ ffmpegdec->pctx = NULL; ++ } ++ ++ ffmpegdec->format.video.par_n = -1; ++ ffmpegdec->format.video.fps_n = -1; ++ ffmpegdec->format.video.old_fps_n = -1; ++ ffmpegdec->format.video.interlaced = FALSE; ++} ++ ++/* with LOCK */ ++static gboolean ++gst_ffmpegdec_open (GstFFMpegDec * ffmpegdec) ++{ ++ GstFFMpegDecClass *oclass; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ if (gst_ffmpeg_avcodec_open (ffmpegdec->context, oclass->in_plugin) < 0) ++ goto could_not_open; ++ ++ ffmpegdec->opened = TRUE; ++ ffmpegdec->is_realvideo = FALSE; ++ ++ GST_LOG_OBJECT (ffmpegdec, "Opened ffmpeg codec %s, id %d", ++ oclass->in_plugin->name, oclass->in_plugin->id); ++ ++ /* open a parser if we can */ ++ switch (oclass->in_plugin->id) { ++ case CODEC_ID_MPEG4: ++ case CODEC_ID_MJPEG: ++ case CODEC_ID_VC1: ++ GST_LOG_OBJECT (ffmpegdec, "not using parser, blacklisted codec"); ++ ffmpegdec->pctx = NULL; ++ break; ++ case CODEC_ID_H264: ++ /* For H264, only use a parser if there is no context data, if there is, ++ * we're talking AVC */ ++ if (ffmpegdec->context->extradata_size == 0) { ++ GST_LOG_OBJECT (ffmpegdec, "H264 with no extradata, creating parser"); ++ ffmpegdec->pctx = av_parser_init (oclass->in_plugin->id); ++ } else { ++ GST_LOG_OBJECT (ffmpegdec, ++ "H264 with extradata implies framed data - not using parser"); ++ ffmpegdec->pctx = NULL; ++ } ++ break; ++ case CODEC_ID_RV10: ++ case CODEC_ID_RV30: ++ case CODEC_ID_RV20: ++ case CODEC_ID_RV40: ++ ffmpegdec->is_realvideo = TRUE; ++ break; ++ default: ++ if (!ffmpegdec->turnoff_parser) { ++ ffmpegdec->pctx = av_parser_init (oclass->in_plugin->id); ++ if (ffmpegdec->pctx) ++ GST_LOG_OBJECT (ffmpegdec, "Using parser %p", ffmpegdec->pctx); ++ else ++ GST_LOG_OBJECT (ffmpegdec, "No parser for codec"); ++ } else { ++ GST_LOG_OBJECT (ffmpegdec, "Parser deactivated for format"); ++ } ++ break; ++ } ++ ++ switch (oclass->in_plugin->type) { ++ case AVMEDIA_TYPE_VIDEO: ++ ffmpegdec->format.video.width = 0; ++ ffmpegdec->format.video.height = 0; ++ ffmpegdec->format.video.clip_width = -1; ++ ffmpegdec->format.video.clip_height = -1; ++ ffmpegdec->format.video.pix_fmt = PIX_FMT_NB; ++ ffmpegdec->format.video.interlaced = FALSE; ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ ffmpegdec->format.audio.samplerate = 0; ++ ffmpegdec->format.audio.channels = 0; ++ ffmpegdec->format.audio.depth = 0; ++ break; ++ default: ++ break; ++ } ++ ++ gst_ffmpegdec_reset_ts (ffmpegdec); ++ /* FIXME, reset_qos holds the LOCK */ ++ ffmpegdec->proportion = 0.0; ++ ffmpegdec->earliest_time = -1; ++ ++ return TRUE; ++ ++ /* ERRORS */ ++could_not_open: ++ { ++ gst_ffmpegdec_close (ffmpegdec); ++ GST_DEBUG_OBJECT (ffmpegdec, "ffdec_%s: Failed to open FFMPEG codec", ++ oclass->in_plugin->name); ++ return FALSE; ++ } ++} ++ ++static gboolean ++gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps) ++{ ++ GstFFMpegDec *ffmpegdec; ++ GstFFMpegDecClass *oclass; ++ GstStructure *structure; ++ const GValue *par; ++ const GValue *fps; ++ gboolean ret = TRUE; ++ ++ ffmpegdec = (GstFFMpegDec *) (gst_pad_get_parent (pad)); ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ GST_DEBUG_OBJECT (pad, "setcaps called"); ++ ++ GST_OBJECT_LOCK (ffmpegdec); ++ ++ /* stupid check for VC1 */ ++ if ((oclass->in_plugin->id == CODEC_ID_WMV3) || ++ (oclass->in_plugin->id == CODEC_ID_VC1)) ++ oclass->in_plugin->id = gst_ffmpeg_caps_to_codecid (caps, NULL); ++ ++ /* close old session */ ++ if (ffmpegdec->opened) { ++ GST_OBJECT_UNLOCK (ffmpegdec); ++ gst_ffmpegdec_drain (ffmpegdec); ++ GST_OBJECT_LOCK (ffmpegdec); ++ gst_ffmpegdec_close (ffmpegdec); ++ ++ /* and reset the defaults that were set when a context is created */ ++ avcodec_get_context_defaults (ffmpegdec->context); ++ } ++ ++ /* set buffer functions */ ++ ffmpegdec->context->get_buffer = gst_ffmpegdec_get_buffer; ++ ffmpegdec->context->release_buffer = gst_ffmpegdec_release_buffer; ++ ffmpegdec->context->draw_horiz_band = NULL; ++ ++ /* default is to let format decide if it needs a parser */ ++ ffmpegdec->turnoff_parser = FALSE; ++ ++ ffmpegdec->has_b_frames = FALSE; ++ ++ GST_LOG_OBJECT (ffmpegdec, "size %dx%d", ffmpegdec->context->width, ++ ffmpegdec->context->height); ++ ++ /* get size and so */ ++ gst_ffmpeg_caps_with_codecid (oclass->in_plugin->id, ++ oclass->in_plugin->type, caps, ffmpegdec->context); ++ ++ GST_LOG_OBJECT (ffmpegdec, "size after %dx%d", ffmpegdec->context->width, ++ ffmpegdec->context->height); ++ ++ if (!ffmpegdec->context->time_base.den || !ffmpegdec->context->time_base.num) { ++ GST_DEBUG_OBJECT (ffmpegdec, "forcing 25/1 framerate"); ++ ffmpegdec->context->time_base.num = 1; ++ ffmpegdec->context->time_base.den = 25; ++ } ++ ++ /* get pixel aspect ratio if it's set */ ++ structure = gst_caps_get_structure (caps, 0); ++ ++ par = gst_structure_get_value (structure, "pixel-aspect-ratio"); ++ if (par) { ++ GST_DEBUG_OBJECT (ffmpegdec, "sink caps have pixel-aspect-ratio of %d:%d", ++ gst_value_get_fraction_numerator (par), ++ gst_value_get_fraction_denominator (par)); ++ /* should be NULL */ ++ if (ffmpegdec->par) ++ g_free (ffmpegdec->par); ++ ffmpegdec->par = g_new0 (GValue, 1); ++ gst_value_init_and_copy (ffmpegdec->par, par); ++ } ++ ++ /* get the framerate from incoming caps. fps_n is set to -1 when ++ * there is no valid framerate */ ++ fps = gst_structure_get_value (structure, "framerate"); ++ if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) { ++ ffmpegdec->format.video.fps_n = gst_value_get_fraction_numerator (fps); ++ ffmpegdec->format.video.fps_d = gst_value_get_fraction_denominator (fps); ++ GST_DEBUG_OBJECT (ffmpegdec, "Using framerate %d/%d from incoming caps", ++ ffmpegdec->format.video.fps_n, ffmpegdec->format.video.fps_d); ++ } else { ++ ffmpegdec->format.video.fps_n = -1; ++ GST_DEBUG_OBJECT (ffmpegdec, "Using framerate from codec"); ++ } ++ ++ /* figure out if we can use direct rendering */ ++ ffmpegdec->current_dr = FALSE; ++ ffmpegdec->extra_ref = FALSE; ++ if (ffmpegdec->direct_rendering) { ++ GST_DEBUG_OBJECT (ffmpegdec, "trying to enable direct rendering"); ++ if (oclass->in_plugin->capabilities & CODEC_CAP_DR1) { ++ if (oclass->in_plugin->id == CODEC_ID_H264) { ++ GST_DEBUG_OBJECT (ffmpegdec, "disable direct rendering setup for H264"); ++ /* does not work, many stuff reads outside of the planes */ ++ ffmpegdec->current_dr = FALSE; ++ ffmpegdec->extra_ref = TRUE; ++ } else if ((oclass->in_plugin->id == CODEC_ID_SVQ1) || ++ (oclass->in_plugin->id == CODEC_ID_VP5) || ++ (oclass->in_plugin->id == CODEC_ID_VP6) || ++ (oclass->in_plugin->id == CODEC_ID_VP6F) || ++ (oclass->in_plugin->id == CODEC_ID_VP6A)) { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "disable direct rendering setup for broken stride support"); ++ /* does not work, uses a incompatible stride. See #610613 */ ++ ffmpegdec->current_dr = FALSE; ++ ffmpegdec->extra_ref = TRUE; ++ } else { ++ GST_DEBUG_OBJECT (ffmpegdec, "enabled direct rendering"); ++ ffmpegdec->current_dr = TRUE; ++ } ++ } else { ++ GST_DEBUG_OBJECT (ffmpegdec, "direct rendering not supported"); ++ } ++ } ++ if (ffmpegdec->current_dr) { ++ /* do *not* draw edges when in direct rendering, for some reason it draws ++ * outside of the memory. */ ++ ffmpegdec->context->flags |= CODEC_FLAG_EMU_EDGE; ++ } ++ ++ /* for AAC we only use av_parse if not on stream-format==raw or ==loas */ ++ if (oclass->in_plugin->id == CODEC_ID_AAC ++ || oclass->in_plugin->id == CODEC_ID_AAC_LATM) { ++ const gchar *format = gst_structure_get_string (structure, "stream-format"); ++ ++ if (format == NULL || strcmp (format, "raw") == 0) { ++ ffmpegdec->turnoff_parser = TRUE; ++ } ++ } ++ ++ /* for FLAC, don't parse if it's already parsed */ ++ if (oclass->in_plugin->id == CODEC_ID_FLAC) { ++ if (gst_structure_has_field (structure, "streamheader")) ++ ffmpegdec->turnoff_parser = TRUE; ++ } ++ ++ /* workaround encoder bugs */ ++ ffmpegdec->context->workaround_bugs |= FF_BUG_AUTODETECT; ++ ffmpegdec->context->err_recognition = 1; ++ ++ /* for slow cpus */ ++ ffmpegdec->context->lowres = ffmpegdec->lowres; ++ ffmpegdec->context->skip_frame = ffmpegdec->skip_frame; ++ ++ /* ffmpeg can draw motion vectors on top of the image (not every decoder ++ * supports it) */ ++ ffmpegdec->context->debug_mv = ffmpegdec->debug_mv; ++ ++ if (ffmpegdec->max_threads == 0) ++ ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads (); ++ else ++ ffmpegdec->context->thread_count = ffmpegdec->max_threads; ++ ++ /* open codec - we don't select an output pix_fmt yet, ++ * simply because we don't know! We only get it ++ * during playback... */ ++ if (!gst_ffmpegdec_open (ffmpegdec)) ++ goto open_failed; ++ ++ /* clipping region */ ++ gst_structure_get_int (structure, "width", ++ &ffmpegdec->format.video.clip_width); ++ gst_structure_get_int (structure, "height", ++ &ffmpegdec->format.video.clip_height); ++ ++ GST_DEBUG_OBJECT (pad, "clipping to %dx%d", ++ ffmpegdec->format.video.clip_width, ffmpegdec->format.video.clip_height); ++ ++ /* take into account the lowres property */ ++ if (ffmpegdec->format.video.clip_width != -1) ++ ffmpegdec->format.video.clip_width >>= ffmpegdec->lowres; ++ if (ffmpegdec->format.video.clip_height != -1) ++ ffmpegdec->format.video.clip_height >>= ffmpegdec->lowres; ++ ++ GST_DEBUG_OBJECT (pad, "final clipping to %dx%d", ++ ffmpegdec->format.video.clip_width, ffmpegdec->format.video.clip_height); ++ ++done: ++ GST_OBJECT_UNLOCK (ffmpegdec); ++ ++ gst_object_unref (ffmpegdec); ++ ++ return ret; ++ ++ /* ERRORS */ ++open_failed: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "Failed to open"); ++ if (ffmpegdec->par) { ++ g_free (ffmpegdec->par); ++ ffmpegdec->par = NULL; ++ } ++ ret = FALSE; ++ goto done; ++ } ++} ++ ++static GstFlowReturn ++alloc_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf, ++ gint width, gint height) ++{ ++ GstFlowReturn ret; ++ gint fsize; ++ ++ ret = GST_FLOW_ERROR; ++ *outbuf = NULL; ++ ++ GST_LOG_OBJECT (ffmpegdec, "alloc output buffer"); ++ ++ /* see if we need renegotiation */ ++ if (G_UNLIKELY (!gst_ffmpegdec_negotiate (ffmpegdec, FALSE))) ++ goto negotiate_failed; ++ ++ /* get the size of the gstreamer output buffer given a ++ * width/height/format */ ++ fsize = gst_ffmpeg_avpicture_get_size (ffmpegdec->context->pix_fmt, ++ width, height); ++ ++ if (ffmpegdec->can_allocate_aligned) { ++ GST_LOG_OBJECT (ffmpegdec, "calling pad_alloc"); ++ /* no pallete, we can use the buffer size to alloc */ ++ ret = gst_pad_alloc_buffer_and_set_caps (ffmpegdec->srcpad, ++ GST_BUFFER_OFFSET_NONE, fsize, ++ GST_PAD_CAPS (ffmpegdec->srcpad), outbuf); ++ if (G_UNLIKELY (ret != GST_FLOW_OK)) ++ goto alloc_failed; ++ ++ /* If buffer isn't 128-bit aligned, create a memaligned one ourselves */ ++ if (((uintptr_t) GST_BUFFER_DATA (*outbuf)) % 16) { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Downstream can't allocate aligned buffers."); ++ ffmpegdec->can_allocate_aligned = FALSE; ++ gst_buffer_unref (*outbuf); ++ *outbuf = new_aligned_buffer (fsize, GST_PAD_CAPS (ffmpegdec->srcpad)); ++ } ++ } else { ++ GST_LOG_OBJECT (ffmpegdec, ++ "not calling pad_alloc, we have a pallete or downstream can't give 16 byte aligned buffers."); ++ /* for paletted data we can't use pad_alloc_buffer(), because ++ * fsize contains the size of the palette, so the overall size ++ * is bigger than ffmpegcolorspace's unit size, which will ++ * prompt GstBaseTransform to complain endlessly ... */ ++ *outbuf = new_aligned_buffer (fsize, GST_PAD_CAPS (ffmpegdec->srcpad)); ++ ret = GST_FLOW_OK; ++ } ++ /* set caps, we do this here because the buffer is still writable here and we ++ * are sure to be negotiated */ ++ gst_buffer_set_caps (*outbuf, GST_PAD_CAPS (ffmpegdec->srcpad)); ++ ++ return ret; ++ ++ /* special cases */ ++negotiate_failed: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "negotiate failed"); ++ return GST_FLOW_NOT_NEGOTIATED; ++ } ++alloc_failed: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "pad_alloc failed %d (%s)", ret, ++ gst_flow_get_name (ret)); ++ return ret; ++ } ++} ++ ++static int ++gst_ffmpegdec_get_buffer (AVCodecContext * context, AVFrame * picture) ++{ ++ GstBuffer *buf = NULL; ++ GstFFMpegDec *ffmpegdec; ++ gint width, height; ++ gint coded_width, coded_height; ++ gint res; ++ ++ ffmpegdec = (GstFFMpegDec *) context->opaque; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "getting buffer"); ++ ++ /* apply the last info we have seen to this picture, when we get the ++ * picture back from ffmpeg we can use this to correctly timestamp the output ++ * buffer */ ++ picture->reordered_opaque = context->reordered_opaque; ++ /* make sure we don't free the buffer when it's not ours */ ++ picture->opaque = NULL; ++ ++ /* take width and height before clipping */ ++ width = context->width; ++ height = context->height; ++ coded_width = context->coded_width; ++ coded_height = context->coded_height; ++ ++ GST_LOG_OBJECT (ffmpegdec, "dimension %dx%d, coded %dx%d", width, height, ++ coded_width, coded_height); ++ if (!ffmpegdec->current_dr) { ++ GST_LOG_OBJECT (ffmpegdec, "direct rendering disabled, fallback alloc"); ++ res = avcodec_default_get_buffer (context, picture); ++ ++ GST_LOG_OBJECT (ffmpegdec, "linsize %d %d %d", picture->linesize[0], ++ picture->linesize[1], picture->linesize[2]); ++ GST_LOG_OBJECT (ffmpegdec, "data %u %u %u", 0, ++ (guint) (picture->data[1] - picture->data[0]), ++ (guint) (picture->data[2] - picture->data[0])); ++ return res; ++ } ++ ++ switch (context->codec_type) { ++ case AVMEDIA_TYPE_VIDEO: ++ /* some ffmpeg video plugins don't see the point in setting codec_type ... */ ++ case AVMEDIA_TYPE_UNKNOWN: ++ { ++ GstFlowReturn ret; ++ gint clip_width, clip_height; ++ ++ /* take final clipped output size */ ++ if ((clip_width = ffmpegdec->format.video.clip_width) == -1) ++ clip_width = width; ++ if ((clip_height = ffmpegdec->format.video.clip_height) == -1) ++ clip_height = height; ++ ++ GST_LOG_OBJECT (ffmpegdec, "raw outsize %d/%d", width, height); ++ ++ /* this is the size ffmpeg needs for the buffer */ ++ avcodec_align_dimensions (context, &width, &height); ++ ++ GST_LOG_OBJECT (ffmpegdec, "aligned outsize %d/%d, clip %d/%d", ++ width, height, clip_width, clip_height); ++ ++ if (width != clip_width || height != clip_height) { ++ /* We can't alloc if we need to clip the output buffer later */ ++ GST_LOG_OBJECT (ffmpegdec, "we need clipping, fallback alloc"); ++ return avcodec_default_get_buffer (context, picture); ++ } ++ ++ /* alloc with aligned dimensions for ffmpeg */ ++ ret = alloc_output_buffer (ffmpegdec, &buf, width, height); ++ if (G_UNLIKELY (ret != GST_FLOW_OK)) { ++ /* alloc default buffer when we can't get one from downstream */ ++ GST_LOG_OBJECT (ffmpegdec, "alloc failed, fallback alloc"); ++ return avcodec_default_get_buffer (context, picture); ++ } ++ ++ /* copy the right pointers and strides in the picture object */ ++ gst_ffmpeg_avpicture_fill ((AVPicture *) picture, ++ GST_BUFFER_DATA (buf), context->pix_fmt, width, height); ++ break; ++ } ++ case AVMEDIA_TYPE_AUDIO: ++ default: ++ GST_ERROR_OBJECT (ffmpegdec, ++ "_get_buffer() should never get called for non-video buffers !"); ++ g_assert_not_reached (); ++ break; ++ } ++ ++ /* tell ffmpeg we own this buffer, tranfer the ref we have on the buffer to ++ * the opaque data. */ ++ picture->type = FF_BUFFER_TYPE_USER; ++ picture->opaque = buf; ++ ++#ifdef EXTRA_REF ++ if (picture->reference != 0 || ffmpegdec->extra_ref) { ++ GST_DEBUG_OBJECT (ffmpegdec, "adding extra ref"); ++ gst_buffer_ref (buf); ++ } ++#endif ++ ++ GST_LOG_OBJECT (ffmpegdec, "returned buffer %p", buf); ++ ++ return 0; ++} ++ ++static void ++gst_ffmpegdec_release_buffer (AVCodecContext * context, AVFrame * picture) ++{ ++ gint i; ++ GstBuffer *buf; ++ GstFFMpegDec *ffmpegdec; ++ ++ ffmpegdec = (GstFFMpegDec *) context->opaque; ++ ++ /* check if it was our buffer */ ++ if (picture->opaque == NULL) { ++ GST_DEBUG_OBJECT (ffmpegdec, "default release buffer"); ++ avcodec_default_release_buffer (context, picture); ++ return; ++ } ++ ++ /* we remove the opaque data now */ ++ buf = GST_BUFFER_CAST (picture->opaque); ++ GST_DEBUG_OBJECT (ffmpegdec, "release buffer %p", buf); ++ picture->opaque = NULL; ++ ++#ifdef EXTRA_REF ++ if (picture->reference != 0 || ffmpegdec->extra_ref) { ++ GST_DEBUG_OBJECT (ffmpegdec, "remove extra ref"); ++ gst_buffer_unref (buf); ++ } ++#else ++ gst_buffer_unref (buf); ++#endif ++ ++ /* zero out the reference in ffmpeg */ ++ for (i = 0; i < 4; i++) { ++ picture->data[i] = NULL; ++ picture->linesize[i] = 0; ++ } ++} ++ ++static void ++gst_ffmpegdec_add_pixel_aspect_ratio (GstFFMpegDec * ffmpegdec, ++ GstStructure * s) ++{ ++ gboolean demuxer_par_set = FALSE; ++ gboolean decoder_par_set = FALSE; ++ gint demuxer_num = 1, demuxer_denom = 1; ++ gint decoder_num = 1, decoder_denom = 1; ++ ++ GST_OBJECT_LOCK (ffmpegdec); ++ ++ if (ffmpegdec->par) { ++ demuxer_num = gst_value_get_fraction_numerator (ffmpegdec->par); ++ demuxer_denom = gst_value_get_fraction_denominator (ffmpegdec->par); ++ demuxer_par_set = TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, "Demuxer PAR: %d:%d", demuxer_num, ++ demuxer_denom); ++ } ++ ++ if (ffmpegdec->context->sample_aspect_ratio.num && ++ ffmpegdec->context->sample_aspect_ratio.den) { ++ decoder_num = ffmpegdec->context->sample_aspect_ratio.num; ++ decoder_denom = ffmpegdec->context->sample_aspect_ratio.den; ++ decoder_par_set = TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, "Decoder PAR: %d:%d", decoder_num, ++ decoder_denom); ++ } ++ ++ GST_OBJECT_UNLOCK (ffmpegdec); ++ ++ if (!demuxer_par_set && !decoder_par_set) ++ goto no_par; ++ ++ if (demuxer_par_set && !decoder_par_set) ++ goto use_demuxer_par; ++ ++ if (decoder_par_set && !demuxer_par_set) ++ goto use_decoder_par; ++ ++ /* Both the demuxer and the decoder provide a PAR. If one of ++ * the two PARs is 1:1 and the other one is not, use the one ++ * that is not 1:1. */ ++ if (demuxer_num == demuxer_denom && decoder_num != decoder_denom) ++ goto use_decoder_par; ++ ++ if (decoder_num == decoder_denom && demuxer_num != demuxer_denom) ++ goto use_demuxer_par; ++ ++ /* Both PARs are non-1:1, so use the PAR provided by the demuxer */ ++ goto use_demuxer_par; ++ ++use_decoder_par: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Setting decoder provided pixel-aspect-ratio of %u:%u", decoder_num, ++ decoder_denom); ++ gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, decoder_num, ++ decoder_denom, NULL); ++ return; ++ } ++ ++use_demuxer_par: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Setting demuxer provided pixel-aspect-ratio of %u:%u", demuxer_num, ++ demuxer_denom); ++ gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, demuxer_num, ++ demuxer_denom, NULL); ++ return; ++ } ++no_par: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Neither demuxer nor codec provide a pixel-aspect-ratio"); ++ return; ++ } ++} ++ ++static gboolean ++gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec, gboolean force) ++{ ++ GstFFMpegDecClass *oclass; ++ GstCaps *caps; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ switch (oclass->in_plugin->type) { ++ case AVMEDIA_TYPE_VIDEO: ++ if (!force && ffmpegdec->format.video.width == ffmpegdec->context->width ++ && ffmpegdec->format.video.height == ffmpegdec->context->height ++ && ffmpegdec->format.video.fps_n == ffmpegdec->format.video.old_fps_n ++ && ffmpegdec->format.video.fps_d == ffmpegdec->format.video.old_fps_d ++ && ffmpegdec->format.video.pix_fmt == ffmpegdec->context->pix_fmt ++ && ffmpegdec->format.video.par_n == ++ ffmpegdec->context->sample_aspect_ratio.num ++ && ffmpegdec->format.video.par_d == ++ ffmpegdec->context->sample_aspect_ratio.den) ++ return TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Renegotiating video from %dx%d@ %d:%d PAR %d/%d fps to %dx%d@ %d:%d PAR %d/%d fps", ++ ffmpegdec->format.video.width, ffmpegdec->format.video.height, ++ ffmpegdec->format.video.par_n, ffmpegdec->format.video.par_d, ++ ffmpegdec->format.video.old_fps_n, ffmpegdec->format.video.old_fps_n, ++ ffmpegdec->context->width, ffmpegdec->context->height, ++ ffmpegdec->context->sample_aspect_ratio.num, ++ ffmpegdec->context->sample_aspect_ratio.den, ++ ffmpegdec->format.video.fps_n, ffmpegdec->format.video.fps_d); ++ ffmpegdec->format.video.width = ffmpegdec->context->width; ++ ffmpegdec->format.video.height = ffmpegdec->context->height; ++ ffmpegdec->format.video.old_fps_n = ffmpegdec->format.video.fps_n; ++ ffmpegdec->format.video.old_fps_d = ffmpegdec->format.video.fps_d; ++ ffmpegdec->format.video.pix_fmt = ffmpegdec->context->pix_fmt; ++ ffmpegdec->format.video.par_n = ++ ffmpegdec->context->sample_aspect_ratio.num; ++ ffmpegdec->format.video.par_d = ++ ffmpegdec->context->sample_aspect_ratio.den; ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ { ++ gint depth = av_smp_format_depth (ffmpegdec->context->sample_fmt); ++ if (!force && ffmpegdec->format.audio.samplerate == ++ ffmpegdec->context->sample_rate && ++ ffmpegdec->format.audio.channels == ffmpegdec->context->channels && ++ ffmpegdec->format.audio.depth == depth) ++ return TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Renegotiating audio from %dHz@%dchannels (%d) to %dHz@%dchannels (%d)", ++ ffmpegdec->format.audio.samplerate, ffmpegdec->format.audio.channels, ++ ffmpegdec->format.audio.depth, ++ ffmpegdec->context->sample_rate, ffmpegdec->context->channels, depth); ++ ffmpegdec->format.audio.samplerate = ffmpegdec->context->sample_rate; ++ ffmpegdec->format.audio.channels = ffmpegdec->context->channels; ++ ffmpegdec->format.audio.depth = depth; ++ } ++ break; ++ default: ++ break; ++ } ++ ++ caps = gst_ffmpeg_codectype_to_caps (oclass->in_plugin->type, ++ ffmpegdec->context, oclass->in_plugin->id, FALSE); ++ ++ if (caps == NULL) ++ goto no_caps; ++ ++ switch (oclass->in_plugin->type) { ++ case AVMEDIA_TYPE_VIDEO: ++ { ++ gint width, height; ++ gboolean interlaced; ++ ++ width = ffmpegdec->format.video.clip_width; ++ height = ffmpegdec->format.video.clip_height; ++ interlaced = ffmpegdec->format.video.interlaced; ++ ++ if (width != -1 && height != -1) { ++ /* overwrite the output size with the dimension of the ++ * clipping region but only if they are smaller. */ ++ if (width < ffmpegdec->context->width) ++ gst_caps_set_simple (caps, "width", G_TYPE_INT, width, NULL); ++ if (height < ffmpegdec->context->height) ++ gst_caps_set_simple (caps, "height", G_TYPE_INT, height, NULL); ++ } ++ gst_caps_set_simple (caps, "interlaced", G_TYPE_BOOLEAN, interlaced, ++ NULL); ++ ++ /* If a demuxer provided a framerate then use it (#313970) */ ++ if (ffmpegdec->format.video.fps_n != -1) { ++ gst_caps_set_simple (caps, "framerate", ++ GST_TYPE_FRACTION, ffmpegdec->format.video.fps_n, ++ ffmpegdec->format.video.fps_d, NULL); ++ } ++ gst_ffmpegdec_add_pixel_aspect_ratio (ffmpegdec, ++ gst_caps_get_structure (caps, 0)); ++ break; ++ } ++ case AVMEDIA_TYPE_AUDIO: ++ { ++ break; ++ } ++ default: ++ break; ++ } ++ ++ if (!gst_pad_set_caps (ffmpegdec->srcpad, caps)) ++ goto caps_failed; ++ ++ gst_caps_unref (caps); ++ ++ return TRUE; ++ ++ /* ERRORS */ ++no_caps: ++ { ++#ifdef HAVE_FFMPEG_UNINSTALLED ++ /* using internal ffmpeg snapshot */ ++ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, ++ ("Could not find GStreamer caps mapping for FFmpeg codec '%s'.", ++ oclass->in_plugin->name), (NULL)); ++#else ++ /* using external ffmpeg */ ++ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, ++ ("Could not find GStreamer caps mapping for FFmpeg codec '%s', and " ++ "you are using an external libavcodec. This is most likely due to " ++ "a packaging problem and/or libavcodec having been upgraded to a " ++ "version that is not compatible with this version of " ++ "gstreamer-ffmpeg. Make sure your gstreamer-ffmpeg and libavcodec " ++ "packages come from the same source/repository.", ++ oclass->in_plugin->name), (NULL)); ++#endif ++ return FALSE; ++ } ++caps_failed: ++ { ++ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, (NULL), ++ ("Could not set caps for ffmpeg decoder (%s), not fixed?", ++ oclass->in_plugin->name)); ++ gst_caps_unref (caps); ++ ++ return FALSE; ++ } ++} ++ ++/* perform qos calculations before decoding the next frame. ++ * ++ * Sets the skip_frame flag and if things are really bad, skips to the next ++ * keyframe. ++ * ++ * Returns TRUE if the frame should be decoded, FALSE if the frame can be dropped ++ * entirely. ++ */ ++static gboolean ++gst_ffmpegdec_do_qos (GstFFMpegDec * ffmpegdec, GstClockTime timestamp, ++ gboolean * mode_switch) ++{ ++ GstClockTimeDiff diff; ++ gdouble proportion; ++ GstClockTime qostime, earliest_time; ++ gboolean res = TRUE; ++ ++ *mode_switch = FALSE; ++ ++ /* no timestamp, can't do QoS */ ++ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp))) ++ goto no_qos; ++ ++ /* get latest QoS observation values */ ++ gst_ffmpegdec_read_qos (ffmpegdec, &proportion, &earliest_time); ++ ++ /* skip qos if we have no observation (yet) */ ++ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (earliest_time))) { ++ /* no skip_frame initialy */ ++ ffmpegdec->context->skip_frame = AVDISCARD_DEFAULT; ++ goto no_qos; ++ } ++ ++ /* qos is done on running time of the timestamp */ ++ qostime = gst_segment_to_running_time (&ffmpegdec->segment, GST_FORMAT_TIME, ++ timestamp); ++ ++ /* timestamp can be out of segment, then we don't do QoS */ ++ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (qostime))) ++ goto no_qos; ++ ++ /* see how our next timestamp relates to the latest qos timestamp. negative ++ * values mean we are early, positive values mean we are too late. */ ++ diff = GST_CLOCK_DIFF (qostime, earliest_time); ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "QOS: qostime %" GST_TIME_FORMAT ++ ", earliest %" GST_TIME_FORMAT, GST_TIME_ARGS (qostime), ++ GST_TIME_ARGS (earliest_time)); ++ ++ /* if we using less than 40% of the available time, we can try to ++ * speed up again when we were slow. */ ++ if (proportion < 0.4 && diff < 0) { ++ goto normal_mode; ++ } else { ++ if (diff >= 0) { ++ /* we're too slow, try to speed up */ ++ /* switch to skip_frame mode */ ++ goto skip_frame; ++ } ++ } ++ ++no_qos: ++ ffmpegdec->processed++; ++ return TRUE; ++ ++normal_mode: ++ { ++ if (ffmpegdec->context->skip_frame != AVDISCARD_DEFAULT) { ++ ffmpegdec->context->skip_frame = AVDISCARD_DEFAULT; ++ *mode_switch = TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, "QOS: normal mode %g < 0.4", proportion); ++ } ++ ffmpegdec->processed++; ++ return TRUE; ++ } ++skip_frame: ++ { ++ if (ffmpegdec->context->skip_frame != AVDISCARD_NONREF) { ++ ffmpegdec->context->skip_frame = AVDISCARD_NONREF; ++ *mode_switch = TRUE; ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "QOS: hurry up, diff %" G_GINT64_FORMAT " >= 0", diff); ++ } ++ goto drop_qos; ++ } ++drop_qos: ++ { ++ GstClockTime stream_time, jitter; ++ GstMessage *qos_msg; ++ ++ ffmpegdec->dropped++; ++ stream_time = ++ gst_segment_to_stream_time (&ffmpegdec->segment, GST_FORMAT_TIME, ++ timestamp); ++ jitter = GST_CLOCK_DIFF (qostime, earliest_time); ++ qos_msg = ++ gst_message_new_qos (GST_OBJECT_CAST (ffmpegdec), FALSE, qostime, ++ stream_time, timestamp, GST_CLOCK_TIME_NONE); ++ gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000); ++ gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS, ++ ffmpegdec->processed, ffmpegdec->dropped); ++ gst_element_post_message (GST_ELEMENT_CAST (ffmpegdec), qos_msg); ++ ++ return res; ++ } ++} ++ ++/* returns TRUE if buffer is within segment, else FALSE. ++ * if Buffer is on segment border, it's timestamp and duration will be clipped */ ++static gboolean ++clip_video_buffer (GstFFMpegDec * dec, GstBuffer * buf, GstClockTime in_ts, ++ GstClockTime in_dur) ++{ ++ gboolean res = TRUE; ++ gint64 cstart, cstop; ++ GstClockTime stop; ++ ++ GST_LOG_OBJECT (dec, ++ "timestamp:%" GST_TIME_FORMAT " , duration:%" GST_TIME_FORMAT, ++ GST_TIME_ARGS (in_ts), GST_TIME_ARGS (in_dur)); ++ ++ /* can't clip without TIME segment */ ++ if (G_UNLIKELY (dec->segment.format != GST_FORMAT_TIME)) ++ goto beach; ++ ++ /* we need a start time */ ++ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (in_ts))) ++ goto beach; ++ ++ /* generate valid stop, if duration unknown, we have unknown stop */ ++ stop = ++ GST_CLOCK_TIME_IS_VALID (in_dur) ? (in_ts + in_dur) : GST_CLOCK_TIME_NONE; ++ ++ /* now clip */ ++ res = ++ gst_segment_clip (&dec->segment, GST_FORMAT_TIME, in_ts, stop, &cstart, ++ &cstop); ++ if (G_UNLIKELY (!res)) ++ goto beach; ++ ++ /* we're pretty sure the duration of this buffer is not till the end of this ++ * segment (which _clip will assume when the stop is -1) */ ++ if (stop == GST_CLOCK_TIME_NONE) ++ cstop = GST_CLOCK_TIME_NONE; ++ ++ /* update timestamp and possibly duration if the clipped stop time is ++ * valid */ ++ GST_BUFFER_TIMESTAMP (buf) = cstart; ++ if (GST_CLOCK_TIME_IS_VALID (cstop)) ++ GST_BUFFER_DURATION (buf) = cstop - cstart; ++ ++ GST_LOG_OBJECT (dec, ++ "clipped timestamp:%" GST_TIME_FORMAT " , duration:%" GST_TIME_FORMAT, ++ GST_TIME_ARGS (cstart), GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); ++ ++beach: ++ GST_LOG_OBJECT (dec, "%sdropping", (res ? "not " : "")); ++ return res; ++} ++ ++ ++/* get an outbuf buffer with the current picture */ ++static GstFlowReturn ++get_output_buffer (GstFFMpegDec * ffmpegdec, GstBuffer ** outbuf) ++{ ++ GstFlowReturn ret; ++ ++ ret = GST_FLOW_OK; ++ *outbuf = NULL; ++ ++ if (ffmpegdec->picture->opaque != NULL) { ++ /* we allocated a picture already for ffmpeg to decode into, let's pick it ++ * up and use it now. */ ++ *outbuf = (GstBuffer *) ffmpegdec->picture->opaque; ++ GST_LOG_OBJECT (ffmpegdec, "using opaque buffer %p", *outbuf); ++#ifndef EXTRA_REF ++ gst_buffer_ref (*outbuf); ++#endif ++ } else { ++ AVPicture pic, *outpic; ++ gint width, height; ++ ++ GST_LOG_OBJECT (ffmpegdec, "get output buffer"); ++ ++ /* figure out size of output buffer, this is the clipped output size because ++ * we will copy the picture into it but only when the clipping region is ++ * smaller than the actual picture size. */ ++ if ((width = ffmpegdec->format.video.clip_width) == -1) ++ width = ffmpegdec->context->width; ++ else if (width > ffmpegdec->context->width) ++ width = ffmpegdec->context->width; ++ ++ if ((height = ffmpegdec->format.video.clip_height) == -1) ++ height = ffmpegdec->context->height; ++ else if (height > ffmpegdec->context->height) ++ height = ffmpegdec->context->height; ++ ++ GST_LOG_OBJECT (ffmpegdec, "clip width %d/height %d", width, height); ++ ++ ret = alloc_output_buffer (ffmpegdec, outbuf, width, height); ++ if (G_UNLIKELY (ret != GST_FLOW_OK)) ++ goto alloc_failed; ++ ++ /* original ffmpeg code does not handle odd sizes correctly. ++ * This patched up version does */ ++ gst_ffmpeg_avpicture_fill (&pic, GST_BUFFER_DATA (*outbuf), ++ ffmpegdec->context->pix_fmt, width, height); ++ ++ outpic = (AVPicture *) ffmpegdec->picture; ++ ++ GST_LOG_OBJECT (ffmpegdec, "linsize %d %d %d", outpic->linesize[0], ++ outpic->linesize[1], outpic->linesize[2]); ++ GST_LOG_OBJECT (ffmpegdec, "data %u %u %u", 0, ++ (guint) (outpic->data[1] - outpic->data[0]), ++ (guint) (outpic->data[2] - outpic->data[0])); ++ ++ av_picture_copy (&pic, outpic, ffmpegdec->context->pix_fmt, width, height); ++ } ++ ffmpegdec->picture->reordered_opaque = -1; ++ ++ return ret; ++ ++ /* special cases */ ++alloc_failed: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "pad_alloc failed"); ++ return ret; ++ } ++} ++ ++static void ++clear_queued (GstFFMpegDec * ffmpegdec) ++{ ++ g_list_foreach (ffmpegdec->queued, (GFunc) gst_mini_object_unref, NULL); ++ g_list_free (ffmpegdec->queued); ++ ffmpegdec->queued = NULL; ++} ++ ++static GstFlowReturn ++flush_queued (GstFFMpegDec * ffmpegdec) ++{ ++ GstFlowReturn res = GST_FLOW_OK; ++ ++ while (ffmpegdec->queued) { ++ GstBuffer *buf = GST_BUFFER_CAST (ffmpegdec->queued->data); ++ ++ GST_LOG_OBJECT (ffmpegdec, "pushing buffer %p, offset %" ++ G_GUINT64_FORMAT ", timestamp %" ++ GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT, buf, ++ GST_BUFFER_OFFSET (buf), ++ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), ++ GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); ++ ++ /* iterate ouput queue an push downstream */ ++ res = gst_pad_push (ffmpegdec->srcpad, buf); ++ ++ ffmpegdec->queued = ++ g_list_delete_link (ffmpegdec->queued, ffmpegdec->queued); ++ } ++ return res; ++} ++ ++static void ++gst_avpacket_init (AVPacket * packet, guint8 * data, guint size) ++{ ++ memset (packet, 0, sizeof (AVPacket)); ++ packet->data = data; ++ packet->size = size; ++} ++ ++/* gst_ffmpegdec_[video|audio]_frame: ++ * ffmpegdec: ++ * data: pointer to the data to decode ++ * size: size of data in bytes ++ * in_timestamp: incoming timestamp. ++ * in_duration: incoming duration. ++ * in_offset: incoming offset (frame number). ++ * outbuf: outgoing buffer. Different from NULL ONLY if it contains decoded data. ++ * ret: Return flow. ++ * ++ * Returns: number of bytes used in decoding. The check for successful decode is ++ * outbuf being non-NULL. ++ */ ++static gint ++gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec, ++ guint8 * data, guint size, ++ const GstTSInfo * dec_info, GstBuffer ** outbuf, GstFlowReturn * ret) ++{ ++ gint len = -1; ++ gint have_data; ++ gboolean mode_switch; ++ gboolean decode; ++ gint skip_frame = AVDISCARD_DEFAULT; ++ GstClockTime out_timestamp, out_duration, out_pts; ++ gint64 out_offset; ++ const GstTSInfo *out_info; ++ AVPacket packet; ++ ++ *ret = GST_FLOW_OK; ++ *outbuf = NULL; ++ ++ ffmpegdec->context->opaque = ffmpegdec; ++ ++ /* in case we skip frames */ ++ ffmpegdec->picture->pict_type = -1; ++ ++ /* run QoS code, we don't stop decoding the frame when we are late because ++ * else we might skip a reference frame */ ++ decode = gst_ffmpegdec_do_qos (ffmpegdec, dec_info->timestamp, &mode_switch); ++ ++ if (ffmpegdec->is_realvideo && data != NULL) { ++ gint slice_count; ++ gint i; ++ ++ /* setup the slice table for realvideo */ ++ if (ffmpegdec->context->slice_offset == NULL) ++ ffmpegdec->context->slice_offset = g_malloc (sizeof (guint32) * 1000); ++ ++ slice_count = (*data++) + 1; ++ ffmpegdec->context->slice_count = slice_count; ++ ++ for (i = 0; i < slice_count; i++) { ++ data += 4; ++ ffmpegdec->context->slice_offset[i] = GST_READ_UINT32_LE (data); ++ data += 4; ++ } ++ } ++ ++ if (!decode) { ++ /* no decoding needed, save previous skip_frame value and brutely skip ++ * decoding everything */ ++ skip_frame = ffmpegdec->context->skip_frame; ++ ffmpegdec->context->skip_frame = AVDISCARD_NONREF; ++ } ++ ++ /* save reference to the timing info */ ++ ffmpegdec->context->reordered_opaque = (gint64) dec_info->idx; ++ ffmpegdec->picture->reordered_opaque = (gint64) dec_info->idx; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "stored opaque values idx %d", dec_info->idx); ++ ++ /* now decode the frame */ ++ gst_avpacket_init (&packet, data, size); ++ len = avcodec_decode_video2 (ffmpegdec->context, ++ ffmpegdec->picture, &have_data, &packet); ++ ++ /* restore previous state */ ++ if (!decode) ++ ffmpegdec->context->skip_frame = skip_frame; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "after decode: len %d, have_data %d", ++ len, have_data); ++ ++ /* when we are in skip_frame mode, don't complain when ffmpeg returned ++ * no data because we told it to skip stuff. */ ++ if (len < 0 && (mode_switch || ffmpegdec->context->skip_frame)) ++ len = 0; ++ ++ if (len > 0 && have_data <= 0 && (mode_switch ++ || ffmpegdec->context->skip_frame)) { ++ /* we consumed some bytes but nothing decoded and we are skipping frames, ++ * disable the interpollation of DTS timestamps */ ++ ffmpegdec->last_out = -1; ++ } ++ ++ /* no data, we're done */ ++ if (len < 0 || have_data <= 0) ++ goto beach; ++ ++ /* get the output picture timing info again */ ++ out_info = gst_ts_info_get (ffmpegdec, ffmpegdec->picture->reordered_opaque); ++ out_pts = out_info->timestamp; ++ out_duration = out_info->duration; ++ out_offset = out_info->offset; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "pts %" G_GUINT64_FORMAT " duration %" G_GUINT64_FORMAT " offset %" ++ G_GINT64_FORMAT, out_pts, out_duration, out_offset); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: pts %" G_GUINT64_FORMAT, ++ (guint64) ffmpegdec->picture->pts); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: num %d", ++ ffmpegdec->picture->coded_picture_number); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: ref %d", ++ ffmpegdec->picture->reference); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: display %d", ++ ffmpegdec->picture->display_picture_number); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: opaque %p", ++ ffmpegdec->picture->opaque); ++ GST_DEBUG_OBJECT (ffmpegdec, "picture: reordered opaque %" G_GUINT64_FORMAT, ++ (guint64) ffmpegdec->picture->reordered_opaque); ++ GST_DEBUG_OBJECT (ffmpegdec, "repeat_pict:%d", ++ ffmpegdec->picture->repeat_pict); ++ GST_DEBUG_OBJECT (ffmpegdec, "interlaced_frame:%d", ++ ffmpegdec->picture->interlaced_frame); ++ ++ if (G_UNLIKELY (ffmpegdec->picture->interlaced_frame != ++ ffmpegdec->format.video.interlaced)) { ++ GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d", ++ ffmpegdec->picture->interlaced_frame, ++ ffmpegdec->format.video.interlaced); ++ ffmpegdec->format.video.interlaced = ffmpegdec->picture->interlaced_frame; ++ gst_ffmpegdec_negotiate (ffmpegdec, TRUE); ++ } ++ ++ /* Whether a frame is interlaced or not is unknown at the time of ++ buffer allocation, so caps on the buffer in opaque will have ++ the previous frame's interlaced flag set. So if interlacedness ++ has changed since allocation, we update the buffer (if any) ++ caps now with the correct interlaced flag. */ ++ if (ffmpegdec->picture->opaque != NULL) { ++ GstBuffer *buffer = ffmpegdec->picture->opaque; ++ if (GST_BUFFER_CAPS (buffer) && GST_PAD_CAPS (ffmpegdec->srcpad)) { ++ GstStructure *s = gst_caps_get_structure (GST_BUFFER_CAPS (buffer), 0); ++ gboolean interlaced; ++ gboolean found = gst_structure_get_boolean (s, "interlaced", &interlaced); ++ if (!found || (!!interlaced != !!ffmpegdec->format.video.interlaced)) { ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Buffer interlacing does not match pad, updating"); ++ buffer = gst_buffer_make_metadata_writable (buffer); ++ gst_buffer_set_caps (buffer, GST_PAD_CAPS (ffmpegdec->srcpad)); ++ ffmpegdec->picture->opaque = buffer; ++ } ++ } ++ } ++ ++ /* check that the timestamps go upwards */ ++ if (ffmpegdec->last_out != -1 && ffmpegdec->last_out > out_pts) { ++ /* timestamps go backwards, this means frames were reordered and we must ++ * be dealing with DTS as the buffer timestamps */ ++ if (!ffmpegdec->reordered_out) { ++ GST_DEBUG_OBJECT (ffmpegdec, "detected reordered out timestamps"); ++ ffmpegdec->reordered_out = TRUE; ++ } ++ if (ffmpegdec->reordered_in) { ++ /* we reset the input reordering here because we want to recover from an ++ * occasionally wrong reordered input timestamp */ ++ GST_DEBUG_OBJECT (ffmpegdec, "assuming DTS input timestamps"); ++ ffmpegdec->reordered_in = FALSE; ++ } ++ } ++ ++ if (out_pts == 0 && out_pts == ffmpegdec->last_out) { ++ GST_LOG_OBJECT (ffmpegdec, "ffmpeg returns 0 timestamps, ignoring"); ++ /* some codecs only output 0 timestamps, when that happens, make us select an ++ * output timestamp based on the input timestamp. We do this by making the ++ * ffmpeg timestamp and the interpollated next timestamp invalid. */ ++ out_pts = -1; ++ ffmpegdec->next_out = -1; ++ } else ++ ffmpegdec->last_out = out_pts; ++ ++ /* we assume DTS as input timestamps unless we see reordered input ++ * timestamps */ ++ if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) { ++ /* PTS and DTS are the same for keyframes */ ++ if (ffmpegdec->next_out != -1) { ++ /* interpolate all timestamps except for keyframes, FIXME, this is ++ * wrong when QoS is active. */ ++ GST_DEBUG_OBJECT (ffmpegdec, "interpolate timestamps"); ++ out_pts = -1; ++ out_offset = -1; ++ } ++ } ++ ++ /* get a handle to the output buffer */ ++ *ret = get_output_buffer (ffmpegdec, outbuf); ++ if (G_UNLIKELY (*ret != GST_FLOW_OK)) ++ goto no_output; ++ ++ /* ++ * Timestamps: ++ * ++ * 1) Copy picture timestamp if valid ++ * 2) else interpolate from previous output timestamp ++ * 3) else copy input timestamp ++ */ ++ out_timestamp = -1; ++ if (out_pts != -1) { ++ /* Get (interpolated) timestamp from FFMPEG */ ++ out_timestamp = (GstClockTime) out_pts; ++ GST_LOG_OBJECT (ffmpegdec, "using timestamp %" GST_TIME_FORMAT ++ " returned by ffmpeg", GST_TIME_ARGS (out_timestamp)); ++ } ++ if (!GST_CLOCK_TIME_IS_VALID (out_timestamp) && ffmpegdec->next_out != -1) { ++ out_timestamp = ffmpegdec->next_out; ++ GST_LOG_OBJECT (ffmpegdec, "using next timestamp %" GST_TIME_FORMAT, ++ GST_TIME_ARGS (out_timestamp)); ++ } ++ if (!GST_CLOCK_TIME_IS_VALID (out_timestamp)) { ++ out_timestamp = dec_info->timestamp; ++ GST_LOG_OBJECT (ffmpegdec, "using in timestamp %" GST_TIME_FORMAT, ++ GST_TIME_ARGS (out_timestamp)); ++ } ++ GST_BUFFER_TIMESTAMP (*outbuf) = out_timestamp; ++ ++ /* ++ * Offset: ++ * 0) Use stored input offset (from opaque) ++ * 1) Use value converted from timestamp if valid ++ * 2) Use input offset if valid ++ */ ++ if (out_offset != GST_BUFFER_OFFSET_NONE) { ++ /* out_offset already contains the offset from ts_info */ ++ GST_LOG_OBJECT (ffmpegdec, "Using offset returned by ffmpeg"); ++ } else if (out_timestamp != GST_CLOCK_TIME_NONE) { ++ GstFormat out_fmt = GST_FORMAT_DEFAULT; ++ GST_LOG_OBJECT (ffmpegdec, "Using offset converted from timestamp"); ++ /* FIXME, we should really remove this as it's not nice at all to do ++ * upstream queries for each frame to get the frame offset. We also can't ++ * really remove this because it is the only way of setting frame offsets ++ * on outgoing buffers. We should have metadata so that the upstream peer ++ * can set a frame number on the encoded data. */ ++ gst_pad_query_peer_convert (ffmpegdec->sinkpad, ++ GST_FORMAT_TIME, out_timestamp, &out_fmt, &out_offset); ++ } else if (dec_info->offset != GST_BUFFER_OFFSET_NONE) { ++ /* FIXME, the input offset is input media specific and might not ++ * be the same for the output media. (byte offset as input, frame number ++ * as output, for example) */ ++ GST_LOG_OBJECT (ffmpegdec, "using in_offset %" G_GINT64_FORMAT, ++ dec_info->offset); ++ out_offset = dec_info->offset; ++ } else { ++ GST_LOG_OBJECT (ffmpegdec, "no valid offset found"); ++ out_offset = GST_BUFFER_OFFSET_NONE; ++ } ++ GST_BUFFER_OFFSET (*outbuf) = out_offset; ++ ++ /* ++ * Duration: ++ * ++ * 1) Use reordered input duration if valid ++ * 2) Else use input duration ++ * 3) else use input framerate ++ * 4) else use ffmpeg framerate ++ */ ++ if (GST_CLOCK_TIME_IS_VALID (out_duration)) { ++ /* We have a valid (reordered) duration */ ++ GST_LOG_OBJECT (ffmpegdec, "Using duration returned by ffmpeg"); ++ } else if (GST_CLOCK_TIME_IS_VALID (dec_info->duration)) { ++ GST_LOG_OBJECT (ffmpegdec, "using in_duration"); ++ out_duration = dec_info->duration; ++ } else if (GST_CLOCK_TIME_IS_VALID (ffmpegdec->last_diff)) { ++ GST_LOG_OBJECT (ffmpegdec, "using last-diff"); ++ out_duration = ffmpegdec->last_diff; ++ } else { ++ /* if we have an input framerate, use that */ ++ if (ffmpegdec->format.video.fps_n != -1 && ++ (ffmpegdec->format.video.fps_n != 1000 && ++ ffmpegdec->format.video.fps_d != 1)) { ++ GST_LOG_OBJECT (ffmpegdec, "using input framerate for duration"); ++ out_duration = gst_util_uint64_scale_int (GST_SECOND, ++ ffmpegdec->format.video.fps_d, ffmpegdec->format.video.fps_n); ++ } else { ++ /* don't try to use the decoder's framerate when it seems a bit abnormal, ++ * which we assume when den >= 1000... */ ++ if (ffmpegdec->context->time_base.num != 0 && ++ (ffmpegdec->context->time_base.den > 0 && ++ ffmpegdec->context->time_base.den < 1000)) { ++ GST_LOG_OBJECT (ffmpegdec, "using decoder's framerate for duration"); ++ out_duration = gst_util_uint64_scale_int (GST_SECOND, ++ ffmpegdec->context->time_base.num * ++ ffmpegdec->context->ticks_per_frame, ++ ffmpegdec->context->time_base.den); ++ } else { ++ GST_LOG_OBJECT (ffmpegdec, "no valid duration found"); ++ } ++ } ++ } ++ ++ /* Take repeat_pict into account */ ++ if (GST_CLOCK_TIME_IS_VALID (out_duration)) { ++ out_duration += out_duration * ffmpegdec->picture->repeat_pict / 2; ++ } ++ GST_BUFFER_DURATION (*outbuf) = out_duration; ++ ++ if (out_timestamp != -1 && out_duration != -1 && out_duration != 0) ++ ffmpegdec->next_out = out_timestamp + out_duration; ++ else ++ ffmpegdec->next_out = -1; ++ ++ /* now see if we need to clip the buffer against the segment boundaries. */ ++ if (G_UNLIKELY (!clip_video_buffer (ffmpegdec, *outbuf, out_timestamp, ++ out_duration))) ++ goto clipped; ++ ++ if (ffmpegdec->picture->top_field_first) ++ GST_BUFFER_FLAG_SET (*outbuf, GST_VIDEO_BUFFER_TFF); ++ ++ ++beach: ++ GST_DEBUG_OBJECT (ffmpegdec, "return flow %d, out %p, len %d", ++ *ret, *outbuf, len); ++ return len; ++ ++ /* special cases */ ++no_output: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "no output buffer"); ++ len = -1; ++ goto beach; ++ } ++clipped: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "buffer clipped"); ++ gst_buffer_unref (*outbuf); ++ *outbuf = NULL; ++ goto beach; ++ } ++} ++ ++/* returns TRUE if buffer is within segment, else FALSE. ++ * if Buffer is on segment border, it's timestamp and duration will be clipped */ ++static gboolean ++clip_audio_buffer (GstFFMpegDec * dec, GstBuffer * buf, GstClockTime in_ts, ++ GstClockTime in_dur) ++{ ++ GstClockTime stop; ++ gint64 diff, ctime, cstop; ++ gboolean res = TRUE; ++ ++ GST_LOG_OBJECT (dec, ++ "timestamp:%" GST_TIME_FORMAT ", duration:%" GST_TIME_FORMAT ++ ", size %u", GST_TIME_ARGS (in_ts), GST_TIME_ARGS (in_dur), ++ GST_BUFFER_SIZE (buf)); ++ ++ /* can't clip without TIME segment */ ++ if (G_UNLIKELY (dec->segment.format != GST_FORMAT_TIME)) ++ goto beach; ++ ++ /* we need a start time */ ++ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (in_ts))) ++ goto beach; ++ ++ /* trust duration */ ++ stop = in_ts + in_dur; ++ ++ res = gst_segment_clip (&dec->segment, GST_FORMAT_TIME, in_ts, stop, &ctime, ++ &cstop); ++ if (G_UNLIKELY (!res)) ++ goto out_of_segment; ++ ++ /* see if some clipping happened */ ++ if (G_UNLIKELY ((diff = ctime - in_ts) > 0)) { ++ /* bring clipped time to bytes */ ++ diff = ++ gst_util_uint64_scale_int (diff, dec->format.audio.samplerate, ++ GST_SECOND) * (dec->format.audio.depth * dec->format.audio.channels); ++ ++ GST_DEBUG_OBJECT (dec, "clipping start to %" GST_TIME_FORMAT " %" ++ G_GINT64_FORMAT " bytes", GST_TIME_ARGS (ctime), diff); ++ ++ GST_BUFFER_SIZE (buf) -= diff; ++ GST_BUFFER_DATA (buf) += diff; ++ } ++ if (G_UNLIKELY ((diff = stop - cstop) > 0)) { ++ /* bring clipped time to bytes */ ++ diff = ++ gst_util_uint64_scale_int (diff, dec->format.audio.samplerate, ++ GST_SECOND) * (dec->format.audio.depth * dec->format.audio.channels); ++ ++ GST_DEBUG_OBJECT (dec, "clipping stop to %" GST_TIME_FORMAT " %" ++ G_GINT64_FORMAT " bytes", GST_TIME_ARGS (cstop), diff); ++ ++ GST_BUFFER_SIZE (buf) -= diff; ++ } ++ GST_BUFFER_TIMESTAMP (buf) = ctime; ++ GST_BUFFER_DURATION (buf) = cstop - ctime; ++ ++beach: ++ GST_LOG_OBJECT (dec, "%sdropping", (res ? "not " : "")); ++ return res; ++ ++ /* ERRORS */ ++out_of_segment: ++ { ++ GST_LOG_OBJECT (dec, "out of segment"); ++ goto beach; ++ } ++} ++ ++static gint ++gst_ffmpegdec_audio_frame (GstFFMpegDec * ffmpegdec, ++ AVCodec * in_plugin, guint8 * data, guint size, ++ const GstTSInfo * dec_info, GstBuffer ** outbuf, GstFlowReturn * ret) ++{ ++ gint len = -1; ++ gint have_data = AVCODEC_MAX_AUDIO_FRAME_SIZE; ++ GstClockTime out_timestamp, out_duration; ++ gint64 out_offset; ++ AVPacket packet; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "size:%d, offset:%" G_GINT64_FORMAT ", ts:%" GST_TIME_FORMAT ", dur:%" ++ GST_TIME_FORMAT ", ffmpegdec->next_out:%" GST_TIME_FORMAT, size, ++ dec_info->offset, GST_TIME_ARGS (dec_info->timestamp), ++ GST_TIME_ARGS (dec_info->duration), GST_TIME_ARGS (ffmpegdec->next_out)); ++ ++ *outbuf = ++ new_aligned_buffer (AVCODEC_MAX_AUDIO_FRAME_SIZE, ++ GST_PAD_CAPS (ffmpegdec->srcpad)); ++ ++ gst_avpacket_init (&packet, data, size); ++ len = avcodec_decode_audio3 (ffmpegdec->context, ++ (int16_t *) GST_BUFFER_DATA (*outbuf), &have_data, &packet); ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Decode audio: len=%d, have_data=%d", len, have_data); ++ ++ if (len >= 0 && have_data > 0) { ++ GST_DEBUG_OBJECT (ffmpegdec, "Creating output buffer"); ++ if (!gst_ffmpegdec_negotiate (ffmpegdec, FALSE)) { ++ gst_buffer_unref (*outbuf); ++ *outbuf = NULL; ++ len = -1; ++ goto beach; ++ } ++ ++ /* Buffer size */ ++ GST_BUFFER_SIZE (*outbuf) = have_data; ++ ++ /* ++ * Timestamps: ++ * ++ * 1) Copy input timestamp if valid ++ * 2) else interpolate from previous input timestamp ++ */ ++ /* always take timestamps from the input buffer if any */ ++ if (GST_CLOCK_TIME_IS_VALID (dec_info->timestamp)) { ++ out_timestamp = dec_info->timestamp; ++ } else { ++ out_timestamp = ffmpegdec->next_out; ++ } ++ ++ /* ++ * Duration: ++ * ++ * 1) calculate based on number of samples ++ */ ++ out_duration = gst_util_uint64_scale (have_data, GST_SECOND, ++ ffmpegdec->format.audio.depth * ffmpegdec->format.audio.channels * ++ ffmpegdec->format.audio.samplerate); ++ ++ /* offset: ++ * ++ * Just copy ++ */ ++ out_offset = dec_info->offset; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "Buffer created. Size:%d , timestamp:%" GST_TIME_FORMAT " , duration:%" ++ GST_TIME_FORMAT, have_data, ++ GST_TIME_ARGS (out_timestamp), GST_TIME_ARGS (out_duration)); ++ ++ GST_BUFFER_TIMESTAMP (*outbuf) = out_timestamp; ++ GST_BUFFER_DURATION (*outbuf) = out_duration; ++ GST_BUFFER_OFFSET (*outbuf) = out_offset; ++ gst_buffer_set_caps (*outbuf, GST_PAD_CAPS (ffmpegdec->srcpad)); ++ ++ /* the next timestamp we'll use when interpolating */ ++ if (GST_CLOCK_TIME_IS_VALID (out_timestamp)) ++ ffmpegdec->next_out = out_timestamp + out_duration; ++ ++ /* now see if we need to clip the buffer against the segment boundaries. */ ++ if (G_UNLIKELY (!clip_audio_buffer (ffmpegdec, *outbuf, out_timestamp, ++ out_duration))) ++ goto clipped; ++ ++ } else { ++ gst_buffer_unref (*outbuf); ++ *outbuf = NULL; ++ } ++ ++ /* If we don't error out after the first failed read with the AAC decoder, ++ * we must *not* carry on pushing data, else we'll cause segfaults... */ ++ if (len == -1 && (in_plugin->id == CODEC_ID_AAC ++ || in_plugin->id == CODEC_ID_AAC_LATM)) { ++ GST_ELEMENT_ERROR (ffmpegdec, STREAM, DECODE, (NULL), ++ ("Decoding of AAC stream by FFMPEG failed.")); ++ *ret = GST_FLOW_ERROR; ++ } ++ ++beach: ++ GST_DEBUG_OBJECT (ffmpegdec, "return flow %d, out %p, len %d", ++ *ret, *outbuf, len); ++ return len; ++ ++ /* ERRORS */ ++clipped: ++ { ++ GST_DEBUG_OBJECT (ffmpegdec, "buffer clipped"); ++ gst_buffer_unref (*outbuf); ++ *outbuf = NULL; ++ goto beach; ++ } ++} ++ ++/* gst_ffmpegdec_frame: ++ * ffmpegdec: ++ * data: pointer to the data to decode ++ * size: size of data in bytes ++ * got_data: 0 if no data was decoded, != 0 otherwise. ++ * in_time: timestamp of data ++ * in_duration: duration of data ++ * ret: GstFlowReturn to return in the chain function ++ * ++ * Decode the given frame and pushes it downstream. ++ * ++ * Returns: Number of bytes used in decoding, -1 on error/failure. ++ */ ++ ++static gint ++gst_ffmpegdec_frame (GstFFMpegDec * ffmpegdec, ++ guint8 * data, guint size, gint * got_data, const GstTSInfo * dec_info, ++ GstFlowReturn * ret) ++{ ++ GstFFMpegDecClass *oclass; ++ GstBuffer *outbuf = NULL; ++ gint have_data = 0, len = 0; ++ ++ if (G_UNLIKELY (ffmpegdec->context->codec == NULL)) ++ goto no_codec; ++ ++ GST_LOG_OBJECT (ffmpegdec, "data:%p, size:%d, id:%d", data, size, ++ dec_info->idx); ++ ++ *ret = GST_FLOW_OK; ++ ffmpegdec->context->frame_number++; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ switch (oclass->in_plugin->type) { ++ case AVMEDIA_TYPE_VIDEO: ++ len = ++ gst_ffmpegdec_video_frame (ffmpegdec, data, size, dec_info, &outbuf, ++ ret); ++ break; ++ case AVMEDIA_TYPE_AUDIO: ++ len = ++ gst_ffmpegdec_audio_frame (ffmpegdec, oclass->in_plugin, data, size, ++ dec_info, &outbuf, ret); ++ ++ /* if we did not get an output buffer and we have a pending discont, don't ++ * clear the input timestamps, we will put them on the next buffer because ++ * else we might create the first buffer with a very big timestamp gap. */ ++ if (outbuf == NULL && ffmpegdec->discont) { ++ GST_DEBUG_OBJECT (ffmpegdec, "no buffer but keeping timestamp"); ++ ffmpegdec->clear_ts = FALSE; ++ } ++ break; ++ default: ++ GST_ERROR_OBJECT (ffmpegdec, "Asked to decode non-audio/video frame !"); ++ g_assert_not_reached (); ++ break; ++ } ++ ++ if (outbuf) ++ have_data = 1; ++ ++ if (len < 0 || have_data < 0) { ++ GST_WARNING_OBJECT (ffmpegdec, ++ "ffdec_%s: decoding error (len: %d, have_data: %d)", ++ oclass->in_plugin->name, len, have_data); ++ *got_data = 0; ++ goto beach; ++ } else if (len == 0 && have_data == 0) { ++ *got_data = 0; ++ goto beach; ++ } else { ++ /* this is where I lost my last clue on ffmpeg... */ ++ *got_data = 1; ++ } ++ ++ if (outbuf) { ++ GST_LOG_OBJECT (ffmpegdec, ++ "Decoded data, now pushing buffer %p with offset %" G_GINT64_FORMAT ++ ", timestamp %" GST_TIME_FORMAT " and duration %" GST_TIME_FORMAT, ++ outbuf, GST_BUFFER_OFFSET (outbuf), ++ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), ++ GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf))); ++ ++ /* mark pending discont */ ++ if (ffmpegdec->discont) { ++ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); ++ ffmpegdec->discont = FALSE; ++ } ++ ++ if (ffmpegdec->segment.rate > 0.0) { ++ /* and off we go */ ++ *ret = gst_pad_push (ffmpegdec->srcpad, outbuf); ++ } else { ++ /* reverse playback, queue frame till later when we get a discont. */ ++ GST_DEBUG_OBJECT (ffmpegdec, "queued frame"); ++ ffmpegdec->queued = g_list_prepend (ffmpegdec->queued, outbuf); ++ *ret = GST_FLOW_OK; ++ } ++ } else { ++ GST_DEBUG_OBJECT (ffmpegdec, "We didn't get a decoded buffer"); ++ } ++ ++beach: ++ return len; ++ ++ /* ERRORS */ ++no_codec: ++ { ++ GST_ERROR_OBJECT (ffmpegdec, "no codec context"); ++ return -1; ++ } ++} ++ ++static void ++gst_ffmpegdec_drain (GstFFMpegDec * ffmpegdec) ++{ ++ GstFFMpegDecClass *oclass; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ if (oclass->in_plugin->capabilities & CODEC_CAP_DELAY) { ++ gint have_data, len, try = 0; ++ ++ GST_LOG_OBJECT (ffmpegdec, ++ "codec has delay capabilities, calling until ffmpeg has drained everything"); ++ ++ do { ++ GstFlowReturn ret; ++ ++ len = ++ gst_ffmpegdec_frame (ffmpegdec, NULL, 0, &have_data, &ts_info_none, ++ &ret); ++ if (len < 0 || have_data == 0) ++ break; ++ } while (try++ < 10); ++ } ++ if (ffmpegdec->segment.rate < 0.0) { ++ /* if we have some queued frames for reverse playback, flush them now */ ++ flush_queued (ffmpegdec); ++ } ++} ++ ++static void ++gst_ffmpegdec_flush_pcache (GstFFMpegDec * ffmpegdec) ++{ ++ if (ffmpegdec->pctx) { ++ gint size, bsize; ++ guint8 *data; ++ guint8 bdata[FF_INPUT_BUFFER_PADDING_SIZE]; ++ ++ bsize = FF_INPUT_BUFFER_PADDING_SIZE; ++ memset (bdata, 0, bsize); ++ ++ /* parse some dummy data to work around some ffmpeg weirdness where it keeps ++ * the previous pts around */ ++ av_parser_parse2 (ffmpegdec->pctx, ffmpegdec->context, ++ &data, &size, bdata, bsize, -1, -1, -1); ++ ffmpegdec->pctx->pts = -1; ++ ffmpegdec->pctx->dts = -1; ++ } ++ ++ if (ffmpegdec->pcache) { ++ gst_buffer_unref (ffmpegdec->pcache); ++ ffmpegdec->pcache = NULL; ++ } ++} ++ ++static gboolean ++gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event) ++{ ++ GstFFMpegDec *ffmpegdec; ++ gboolean ret = FALSE; ++ ++ ffmpegdec = (GstFFMpegDec *) gst_pad_get_parent (pad); ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "Handling %s event", ++ GST_EVENT_TYPE_NAME (event)); ++ ++ switch (GST_EVENT_TYPE (event)) { ++ case GST_EVENT_EOS: ++ { ++ gst_ffmpegdec_drain (ffmpegdec); ++ break; ++ } ++ case GST_EVENT_FLUSH_STOP: ++ { ++ if (ffmpegdec->opened) { ++ avcodec_flush_buffers (ffmpegdec->context); ++ } ++ gst_ffmpegdec_reset_ts (ffmpegdec); ++ gst_ffmpegdec_reset_qos (ffmpegdec); ++ gst_ffmpegdec_flush_pcache (ffmpegdec); ++ gst_segment_init (&ffmpegdec->segment, GST_FORMAT_TIME); ++ clear_queued (ffmpegdec); ++ break; ++ } ++ case GST_EVENT_NEWSEGMENT: ++ { ++ gboolean update; ++ GstFormat fmt; ++ gint64 start, stop, time; ++ gdouble rate, arate; ++ ++ gst_event_parse_new_segment_full (event, &update, &rate, &arate, &fmt, ++ &start, &stop, &time); ++ ++ switch (fmt) { ++ case GST_FORMAT_TIME: ++ /* fine, our native segment format */ ++ break; ++ case GST_FORMAT_BYTES: ++ { ++ gint bit_rate; ++ ++ bit_rate = ffmpegdec->context->bit_rate; ++ ++ /* convert to time or fail */ ++ if (!bit_rate) ++ goto no_bitrate; ++ ++ GST_DEBUG_OBJECT (ffmpegdec, "bitrate: %d", bit_rate); ++ ++ /* convert values to TIME */ ++ if (start != -1) ++ start = gst_util_uint64_scale_int (start, GST_SECOND, bit_rate); ++ if (stop != -1) ++ stop = gst_util_uint64_scale_int (stop, GST_SECOND, bit_rate); ++ if (time != -1) ++ time = gst_util_uint64_scale_int (time, GST_SECOND, bit_rate); ++ ++ /* unref old event */ ++ gst_event_unref (event); ++ ++ /* create new converted time segment */ ++ fmt = GST_FORMAT_TIME; ++ /* FIXME, bitrate is not good enough too find a good stop, let's ++ * hope start and time were 0... meh. */ ++ stop = -1; ++ event = gst_event_new_new_segment (update, rate, fmt, ++ start, stop, time); ++ break; ++ } ++ default: ++ /* invalid format */ ++ goto invalid_format; ++ } ++ ++ /* drain pending frames before trying to use the new segment, queued ++ * buffers belonged to the previous segment. */ ++ if (ffmpegdec->context->codec) ++ gst_ffmpegdec_drain (ffmpegdec); ++ ++ GST_DEBUG_OBJECT (ffmpegdec, ++ "NEWSEGMENT in time start %" GST_TIME_FORMAT " -- stop %" ++ GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (stop)); ++ ++ /* and store the values */ ++ gst_segment_set_newsegment_full (&ffmpegdec->segment, update, ++ rate, arate, fmt, start, stop, time); ++ break; ++ } ++ default: ++ break; ++ } ++ ++ /* and push segment downstream */ ++ ret = gst_pad_push_event (ffmpegdec->srcpad, event); ++ ++done: ++ gst_object_unref (ffmpegdec); ++ ++ return ret; ++ ++ /* ERRORS */ ++no_bitrate: ++ { ++ GST_WARNING_OBJECT (ffmpegdec, "no bitrate to convert BYTES to TIME"); ++ gst_event_unref (event); ++ goto done; ++ } ++invalid_format: ++ { ++ GST_WARNING_OBJECT (ffmpegdec, "unknown format received in NEWSEGMENT"); ++ gst_event_unref (event); ++ goto done; ++ } ++} ++ ++static GstFlowReturn ++gst_ffmpegdec_chain (GstPad * pad, GstBuffer * inbuf) ++{ ++ GstFFMpegDec *ffmpegdec; ++ GstFFMpegDecClass *oclass; ++ guint8 *data, *bdata; ++ gint size, bsize, len, have_data; ++ GstFlowReturn ret = GST_FLOW_OK; ++ GstClockTime in_timestamp; ++ GstClockTime in_duration; ++ gboolean discont; ++ gint64 in_offset; ++ const GstTSInfo *in_info; ++ const GstTSInfo *dec_info; ++ ++ ffmpegdec = (GstFFMpegDec *) (GST_PAD_PARENT (pad)); ++ ++ if (G_UNLIKELY (!ffmpegdec->opened)) ++ goto not_negotiated; ++ ++ discont = GST_BUFFER_IS_DISCONT (inbuf); ++ ++ /* The discont flags marks a buffer that is not continuous with the previous ++ * buffer. This means we need to clear whatever data we currently have. We ++ * currently also wait for a new keyframe, which might be suboptimal in the ++ * case of a network error, better show the errors than to drop all data.. */ ++ if (G_UNLIKELY (discont)) { ++ GST_DEBUG_OBJECT (ffmpegdec, "received DISCONT"); ++ /* drain what we have queued */ ++ gst_ffmpegdec_drain (ffmpegdec); ++ gst_ffmpegdec_flush_pcache (ffmpegdec); ++ avcodec_flush_buffers (ffmpegdec->context); ++ ffmpegdec->discont = TRUE; ++ gst_ffmpegdec_reset_ts (ffmpegdec); ++ } ++ /* by default we clear the input timestamp after decoding each frame so that ++ * interpollation can work. */ ++ ffmpegdec->clear_ts = TRUE; ++ ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ ++ /* parse cache joining. If there is cached data */ ++ if (ffmpegdec->pcache) { ++ /* join with previous data */ ++ GST_LOG_OBJECT (ffmpegdec, "join parse cache"); ++ inbuf = gst_buffer_join (ffmpegdec->pcache, inbuf); ++ /* no more cached data, we assume we can consume the complete cache */ ++ ffmpegdec->pcache = NULL; ++ } ++ ++ in_timestamp = GST_BUFFER_TIMESTAMP (inbuf); ++ in_duration = GST_BUFFER_DURATION (inbuf); ++ in_offset = GST_BUFFER_OFFSET (inbuf); ++ ++ /* get handle to timestamp info, we can pass this around to ffmpeg */ ++ in_info = gst_ts_info_store (ffmpegdec, in_timestamp, in_duration, in_offset); ++ ++ if (in_timestamp != -1) { ++ /* check for increasing timestamps if they are jumping backwards, we ++ * probably are dealing with PTS as timestamps */ ++ if (!ffmpegdec->reordered_in && ffmpegdec->last_in != -1) { ++ if (in_timestamp < ffmpegdec->last_in) { ++ GST_LOG_OBJECT (ffmpegdec, "detected reordered input timestamps"); ++ ffmpegdec->reordered_in = TRUE; ++ ffmpegdec->last_diff = GST_CLOCK_TIME_NONE; ++ } else if (in_timestamp > ffmpegdec->last_in) { ++ GstClockTime diff; ++ /* keep track of timestamp diff to estimate duration */ ++ diff = in_timestamp - ffmpegdec->last_in; ++ /* need to scale with amount of frames in the interval */ ++ if (ffmpegdec->last_frames) ++ diff /= ffmpegdec->last_frames; ++ ++ GST_LOG_OBJECT (ffmpegdec, "estimated duration %" GST_TIME_FORMAT " %u", ++ GST_TIME_ARGS (diff), ffmpegdec->last_frames); ++ ++ ffmpegdec->last_diff = diff; ++ } ++ } ++ ffmpegdec->last_in = in_timestamp; ++ ffmpegdec->last_frames = 0; ++ } ++ ++ GST_LOG_OBJECT (ffmpegdec, ++ "Received new data of size %u, offset:%" G_GUINT64_FORMAT ", ts:%" ++ GST_TIME_FORMAT ", dur:%" GST_TIME_FORMAT ", info %d", ++ GST_BUFFER_SIZE (inbuf), GST_BUFFER_OFFSET (inbuf), ++ GST_TIME_ARGS (in_timestamp), GST_TIME_ARGS (in_duration), in_info->idx); ++ ++ /* workarounds, functions write to buffers: ++ * libavcodec/svq1.c:svq1_decode_frame writes to the given buffer. ++ * libavcodec/svq3.c:svq3_decode_slice_header too. ++ * ffmpeg devs know about it and will fix it (they said). */ ++ if (oclass->in_plugin->id == CODEC_ID_SVQ1 || ++ oclass->in_plugin->id == CODEC_ID_SVQ3) { ++ inbuf = gst_buffer_make_writable (inbuf); ++ } ++ ++ bdata = GST_BUFFER_DATA (inbuf); ++ bsize = GST_BUFFER_SIZE (inbuf); ++ ++ if (ffmpegdec->do_padding) { ++ /* add padding */ ++ if (ffmpegdec->padded_size < bsize + FF_INPUT_BUFFER_PADDING_SIZE) { ++ ffmpegdec->padded_size = bsize + FF_INPUT_BUFFER_PADDING_SIZE; ++ ffmpegdec->padded = g_realloc (ffmpegdec->padded, ffmpegdec->padded_size); ++ GST_LOG_OBJECT (ffmpegdec, "resized padding buffer to %d", ++ ffmpegdec->padded_size); ++ } ++ memcpy (ffmpegdec->padded, bdata, bsize); ++ memset (ffmpegdec->padded + bsize, 0, FF_INPUT_BUFFER_PADDING_SIZE); ++ ++ bdata = ffmpegdec->padded; ++ } ++ ++ do { ++ guint8 tmp_padding[FF_INPUT_BUFFER_PADDING_SIZE]; ++ ++ /* parse, if at all possible */ ++ if (ffmpegdec->pctx) { ++ gint res; ++ ++ GST_LOG_OBJECT (ffmpegdec, ++ "Calling av_parser_parse2 with offset %" G_GINT64_FORMAT ", ts:%" ++ GST_TIME_FORMAT " size %d", in_offset, GST_TIME_ARGS (in_timestamp), ++ bsize); ++ ++ /* feed the parser. We pass the timestamp info so that we can recover all ++ * info again later */ ++ res = av_parser_parse2 (ffmpegdec->pctx, ffmpegdec->context, ++ &data, &size, bdata, bsize, in_info->idx, in_info->idx, in_offset); ++ ++ GST_LOG_OBJECT (ffmpegdec, ++ "parser returned res %d and size %d, id %" G_GINT64_FORMAT, res, size, ++ ffmpegdec->pctx->pts); ++ ++ /* store pts for decoding */ ++ if (ffmpegdec->pctx->pts != AV_NOPTS_VALUE && ffmpegdec->pctx->pts != -1) ++ dec_info = gst_ts_info_get (ffmpegdec, ffmpegdec->pctx->pts); ++ else { ++ /* ffmpeg sometimes loses track after a flush, help it by feeding a ++ * valid start time */ ++ ffmpegdec->pctx->pts = in_info->idx; ++ ffmpegdec->pctx->dts = in_info->idx; ++ dec_info = in_info; ++ } ++ ++ GST_LOG_OBJECT (ffmpegdec, "consuming %d bytes. id %d", size, ++ dec_info->idx); ++ ++ if (res) { ++ /* there is output, set pointers for next round. */ ++ bsize -= res; ++ bdata += res; ++ } else { ++ /* Parser did not consume any data, make sure we don't clear the ++ * timestamp for the next round */ ++ ffmpegdec->clear_ts = FALSE; ++ } ++ ++ /* if there is no output, we must break and wait for more data. also the ++ * timestamp in the context is not updated. */ ++ if (size == 0) { ++ if (bsize > 0) ++ continue; ++ else ++ break; ++ } ++ } else { ++ data = bdata; ++ size = bsize; ++ ++ dec_info = in_info; ++ } ++ ++ if (ffmpegdec->do_padding) { ++ /* add temporary padding */ ++ memcpy (tmp_padding, data + size, FF_INPUT_BUFFER_PADDING_SIZE); ++ memset (data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); ++ } ++ ++ /* decode a frame of audio/video now */ ++ len = ++ gst_ffmpegdec_frame (ffmpegdec, data, size, &have_data, dec_info, &ret); ++ ++ if (ffmpegdec->do_padding) { ++ memcpy (data + size, tmp_padding, FF_INPUT_BUFFER_PADDING_SIZE); ++ } ++ ++ if (ret != GST_FLOW_OK) { ++ GST_LOG_OBJECT (ffmpegdec, "breaking because of flow ret %s", ++ gst_flow_get_name (ret)); ++ /* bad flow retun, make sure we discard all data and exit */ ++ bsize = 0; ++ break; ++ } ++ if (!ffmpegdec->pctx) { ++ if (len == 0 && !have_data) { ++ /* nothing was decoded, this could be because no data was available or ++ * because we were skipping frames. ++ * If we have no context we must exit and wait for more data, we keep the ++ * data we tried. */ ++ GST_LOG_OBJECT (ffmpegdec, "Decoding didn't return any data, breaking"); ++ break; ++ } else if (len < 0) { ++ /* a decoding error happened, we must break and try again with next data. */ ++ GST_LOG_OBJECT (ffmpegdec, "Decoding error, breaking"); ++ bsize = 0; ++ break; ++ } ++ /* prepare for the next round, for codecs with a context we did this ++ * already when using the parser. */ ++ bsize -= len; ++ bdata += len; ++ } else { ++ if (len == 0) { ++ /* nothing was decoded, this could be because no data was available or ++ * because we were skipping frames. Since we have a parser we can ++ * continue with the next frame */ ++ GST_LOG_OBJECT (ffmpegdec, ++ "Decoding didn't return any data, trying next"); ++ } else if (len < 0) { ++ /* we have a context that will bring us to the next frame */ ++ GST_LOG_OBJECT (ffmpegdec, "Decoding error, trying next"); ++ } ++ } ++ ++ /* make sure we don't use the same old timestamp for the next frame and let ++ * the interpollation take care of it. */ ++ if (ffmpegdec->clear_ts) { ++ in_timestamp = GST_CLOCK_TIME_NONE; ++ in_duration = GST_CLOCK_TIME_NONE; ++ in_offset = GST_BUFFER_OFFSET_NONE; ++ in_info = GST_TS_INFO_NONE; ++ } else { ++ ffmpegdec->clear_ts = TRUE; ++ } ++ ffmpegdec->last_frames++; ++ ++ GST_LOG_OBJECT (ffmpegdec, "Before (while bsize>0). bsize:%d , bdata:%p", ++ bsize, bdata); ++ } while (bsize > 0); ++ ++ /* keep left-over */ ++ if (ffmpegdec->pctx && bsize > 0) { ++ in_timestamp = GST_BUFFER_TIMESTAMP (inbuf); ++ in_offset = GST_BUFFER_OFFSET (inbuf); ++ ++ GST_LOG_OBJECT (ffmpegdec, ++ "Keeping %d bytes of data with offset %" G_GINT64_FORMAT ", timestamp %" ++ GST_TIME_FORMAT, bsize, in_offset, GST_TIME_ARGS (in_timestamp)); ++ ++ ffmpegdec->pcache = gst_buffer_create_sub (inbuf, ++ GST_BUFFER_SIZE (inbuf) - bsize, bsize); ++ /* we keep timestamp, even though all we really know is that the correct ++ * timestamp is not below the one from inbuf */ ++ GST_BUFFER_TIMESTAMP (ffmpegdec->pcache) = in_timestamp; ++ GST_BUFFER_OFFSET (ffmpegdec->pcache) = in_offset; ++ } else if (bsize > 0) { ++ GST_DEBUG_OBJECT (ffmpegdec, "Dropping %d bytes of data", bsize); ++ } ++ gst_buffer_unref (inbuf); ++ ++ return ret; ++ ++ /* ERRORS */ ++not_negotiated: ++ { ++ oclass = (GstFFMpegDecClass *) (G_OBJECT_GET_CLASS (ffmpegdec)); ++ GST_ELEMENT_ERROR (ffmpegdec, CORE, NEGOTIATION, (NULL), ++ ("ffdec_%s: input format was not set before data start", ++ oclass->in_plugin->name)); ++ gst_buffer_unref (inbuf); ++ return GST_FLOW_NOT_NEGOTIATED; ++ } ++} ++ ++static GstStateChangeReturn ++gst_ffmpegdec_change_state (GstElement * element, GstStateChange transition) ++{ ++ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) element; ++ GstStateChangeReturn ret; ++ ++ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); ++ ++ switch (transition) { ++ case GST_STATE_CHANGE_PAUSED_TO_READY: ++ GST_OBJECT_LOCK (ffmpegdec); ++ gst_ffmpegdec_close (ffmpegdec); ++ GST_OBJECT_UNLOCK (ffmpegdec); ++ clear_queued (ffmpegdec); ++ g_free (ffmpegdec->padded); ++ ffmpegdec->padded = NULL; ++ ffmpegdec->padded_size = 0; ++ ffmpegdec->can_allocate_aligned = TRUE; ++ break; ++ default: ++ break; ++ } ++ ++ return ret; ++} ++ ++static void ++gst_ffmpegdec_set_property (GObject * object, ++ guint prop_id, const GValue * value, GParamSpec * pspec) ++{ ++ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object; ++ ++ switch (prop_id) { ++ case PROP_LOWRES: ++ ffmpegdec->lowres = ffmpegdec->context->lowres = g_value_get_enum (value); ++ break; ++ case PROP_SKIPFRAME: ++ ffmpegdec->skip_frame = ffmpegdec->context->skip_frame = ++ g_value_get_enum (value); ++ break; ++ case PROP_DIRECT_RENDERING: ++ ffmpegdec->direct_rendering = g_value_get_boolean (value); ++ break; ++ case PROP_DO_PADDING: ++ ffmpegdec->do_padding = g_value_get_boolean (value); ++ break; ++ case PROP_DEBUG_MV: ++ ffmpegdec->debug_mv = ffmpegdec->context->debug_mv = ++ g_value_get_boolean (value); ++ break; ++ case PROP_CROP: ++ ffmpegdec->crop = g_value_get_boolean (value); ++ break; ++ case PROP_MAX_THREADS: ++ ffmpegdec->max_threads = g_value_get_int (value); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++static void ++gst_ffmpegdec_get_property (GObject * object, ++ guint prop_id, GValue * value, GParamSpec * pspec) ++{ ++ GstFFMpegDec *ffmpegdec = (GstFFMpegDec *) object; ++ ++ switch (prop_id) { ++ case PROP_LOWRES: ++ g_value_set_enum (value, ffmpegdec->context->lowres); ++ break; ++ case PROP_SKIPFRAME: ++ g_value_set_enum (value, ffmpegdec->context->skip_frame); ++ break; ++ case PROP_DIRECT_RENDERING: ++ g_value_set_boolean (value, ffmpegdec->direct_rendering); ++ break; ++ case PROP_DO_PADDING: ++ g_value_set_boolean (value, ffmpegdec->do_padding); ++ break; ++ case PROP_DEBUG_MV: ++ g_value_set_boolean (value, ffmpegdec->context->debug_mv); ++ break; ++ case PROP_CROP: ++ g_value_set_boolean (value, ffmpegdec->crop); ++ break; ++ case PROP_MAX_THREADS: ++ g_value_set_int (value, ffmpegdec->max_threads); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++gboolean ++gst_ffmpegdec_register (GstPlugin * plugin) ++{ ++ GTypeInfo typeinfo = { ++ sizeof (GstFFMpegDecClass), ++ (GBaseInitFunc) gst_ffmpegdec_base_init, ++ NULL, ++ (GClassInitFunc) gst_ffmpegdec_class_init, ++ NULL, ++ NULL, ++ sizeof (GstFFMpegDec), ++ 0, ++ (GInstanceInitFunc) gst_ffmpegdec_init, ++ }; ++ GType type; ++ AVCodec *in_plugin; ++ gint rank; ++ ++ in_plugin = av_codec_next (NULL); ++ ++ GST_LOG ("Registering decoders"); ++ ++ while (in_plugin) { ++ gchar *type_name; ++ gchar *plugin_name; ++ ++ /* only decoders */ ++ if (!in_plugin->decode) { ++ goto next; ++ } ++ ++ /* no quasi-codecs, please */ ++ if (in_plugin->id == CODEC_ID_RAWVIDEO || ++ in_plugin->id == CODEC_ID_V210 || ++ in_plugin->id == CODEC_ID_V210X || ++ in_plugin->id == CODEC_ID_R210 || ++ (in_plugin->id >= CODEC_ID_PCM_S16LE && ++ in_plugin->id <= CODEC_ID_PCM_BLURAY)) { ++ goto next; ++ } ++ ++ /* No decoders depending on external libraries (we don't build them, but ++ * people who build against an external ffmpeg might have them. ++ * We have native gstreamer plugins for all of those libraries anyway. */ ++ if (!strncmp (in_plugin->name, "lib", 3)) { ++ GST_DEBUG ++ ("Not using external library decoder %s. Use the gstreamer-native ones instead.", ++ in_plugin->name); ++ goto next; ++ } ++ ++ /* No vdpau plugins until we can figure out how to properly use them ++ * outside of ffmpeg. */ ++ if (g_str_has_suffix (in_plugin->name, "_vdpau")) { ++ GST_DEBUG ++ ("Ignoring VDPAU decoder %s. We can't handle this outside of ffmpeg", ++ in_plugin->name); ++ goto next; ++ } ++ ++ if (g_str_has_suffix (in_plugin->name, "_xvmc")) { ++ GST_DEBUG ++ ("Ignoring XVMC decoder %s. We can't handle this outside of ffmpeg", ++ in_plugin->name); ++ goto next; ++ } ++ ++ GST_DEBUG ("Trying plugin %s [%s]", in_plugin->name, in_plugin->long_name); ++ ++ /* no codecs for which we're GUARANTEED to have better alternatives */ ++ /* MPEG1VIDEO : the mpeg2video decoder is preferred */ ++ /* MP1 : Use MP3 for decoding */ ++ /* MP2 : Use MP3 for decoding */ ++ /* Theora: Use libtheora based theoradec */ ++ if (!strcmp (in_plugin->name, "gif") || ++ !strcmp (in_plugin->name, "vorbis") || ++ !strcmp (in_plugin->name, "theora") || ++ !strcmp (in_plugin->name, "mpeg1video") || ++ !strcmp (in_plugin->name, "wavpack") || ++ !strcmp (in_plugin->name, "mp1") || ++ !strcmp (in_plugin->name, "mp2") || ++ !strcmp (in_plugin->name, "libfaad") || ++ !strcmp (in_plugin->name, "mpeg4aac") || ++ !strcmp (in_plugin->name, "ass") || ++ !strcmp (in_plugin->name, "srt") || ++ !strcmp (in_plugin->name, "pgssub") || ++ !strcmp (in_plugin->name, "dvdsub") || ++ !strcmp (in_plugin->name, "dvbsub")) { ++ GST_LOG ("Ignoring decoder %s", in_plugin->name); ++ goto next; ++ } ++ ++ /* construct the type */ ++ plugin_name = g_strdup ((gchar *) in_plugin->name); ++ g_strdelimit (plugin_name, NULL, '_'); ++ type_name = g_strdup_printf ("ffdec_%s", plugin_name); ++ g_free (plugin_name); ++ ++ type = g_type_from_name (type_name); ++ ++ if (!type) { ++ /* create the gtype now */ ++ type = g_type_register_static (GST_TYPE_ELEMENT, type_name, &typeinfo, 0); ++ g_type_set_qdata (type, GST_FFDEC_PARAMS_QDATA, (gpointer) in_plugin); ++ } ++ ++ /* (Ronald) MPEG-4 gets a higher priority because it has been well- ++ * tested and by far outperforms divxdec/xviddec - so we prefer it. ++ * msmpeg4v3 same, as it outperforms divxdec for divx3 playback. ++ * VC1/WMV3 are not working and thus unpreferred for now. */ ++ switch (in_plugin->id) { ++ case CODEC_ID_MPEG4: ++ case CODEC_ID_MSMPEG4V3: ++ case CODEC_ID_H264: ++ case CODEC_ID_RA_144: ++ case CODEC_ID_RA_288: ++ case CODEC_ID_RV10: ++ case CODEC_ID_RV20: ++ case CODEC_ID_RV30: ++ case CODEC_ID_RV40: ++ case CODEC_ID_COOK: ++ rank = GST_RANK_SECONDARY; ++ break; ++ /* DVVIDEO: we have a good dv decoder, fast on both ppc as well as x86. ++ * They say libdv's quality is better though. leave as secondary. ++ * note: if you change this, see the code in gstdv.c in good/ext/dv. ++ * ++ * SIPR: decoder should have a higher rank than realaudiodec. ++ */ ++ case CODEC_ID_DVVIDEO: ++ case CODEC_ID_SIPR: ++ rank = GST_RANK_SECONDARY; ++ break; ++ case CODEC_ID_MP3: ++ rank = GST_RANK_NONE; ++ break; ++ /* TEMPORARILY DISABLING AC3/EAC3/DTS for 0.10.12 release ++ * due to downmixing failure. ++ * See Bug #608892 for more details */ ++ case CODEC_ID_EAC3: ++ case CODEC_ID_AC3: ++ case CODEC_ID_DTS: ++ rank = GST_RANK_NONE; ++ break; ++ default: ++ rank = GST_RANK_MARGINAL; ++ break; ++ } ++ if (!gst_element_register (plugin, type_name, rank, type)) { ++ g_warning ("Failed to register %s", type_name); ++ g_free (type_name); ++ return FALSE; ++ } ++ ++ g_free (type_name); ++ ++ next: ++ in_plugin = av_codec_next (in_plugin); ++ } ++ ++ GST_LOG ("Finished Registering decoders"); ++ ++ return TRUE; ++} +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.rej gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.rej +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdec.c.rej 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdec.c.rej 2014-08-08 15:26:38.471858652 +0200 +@@ -0,0 +1,11 @@ ++--- ext/ffmpeg/gstffmpegdec.c +++++ ext/ffmpeg/gstffmpegdec.c ++@@ -1565,7 +1564,7 @@ ++ gst_message_new_latency (GST_OBJECT_CAST (ffmpegdec))); ++ } ++ ++- is_itype = (ffmpegdec->picture->pict_type == FF_I_TYPE); +++ is_itype = (ffmpegdec->picture->pict_type == AV_PICTURE_TYPE_I); ++ is_reference = (ffmpegdec->picture->reference == 1); ++ ++ iskeyframe = (is_itype || is_reference || ffmpegdec->picture->key_frame) +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdemux.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdemux.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegdemux.c 2011-07-13 11:07:28.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegdemux.c 2014-08-08 15:26:07.874857555 +0200 +@@ -343,8 +343,11 @@ + demux->audiopads = 0; + + /* close demuxer context from ffmpeg */ +- av_close_input_file (demux->context); +- demux->context = NULL; ++ if (demux->seekable) ++ gst_ffmpegdata_close (demux->context->pb); ++ else ++ gst_ffmpeg_pipe_close (demux->context->pb); ++ avformat_close_input (&demux->context); + + GST_OBJECT_LOCK (demux); + demux->opened = FALSE; +@@ -1146,9 +1149,9 @@ + static gboolean + gst_ffmpegdemux_open (GstFFMpegDemux * demux) + { ++ AVIOContext *iocontext = NULL; + GstFFMpegDemuxClass *oclass = + (GstFFMpegDemuxClass *) G_OBJECT_GET_CLASS (demux); +- gchar *location; + gint res, n_streams, i; + #if 0 + /* Re-enable once converted to new AVMetaData API +@@ -1164,15 +1167,14 @@ + + /* open via our input protocol hack */ + if (demux->seekable) +- location = g_strdup_printf ("gstreamer://%p", demux->sinkpad); ++ res = gst_ffmpegdata_open (demux->sinkpad, AVIO_FLAG_READ, &iocontext); + else +- location = g_strdup_printf ("gstpipe://%p", &demux->ffpipe); +- GST_DEBUG_OBJECT (demux, "about to call av_open_input_file %s", location); ++ res = gst_ffmpeg_pipe_open (&demux->ffpipe, AVIO_FLAG_READ, &iocontext); + +- res = av_open_input_file (&demux->context, location, +- oclass->in_plugin, 0, NULL); ++ demux->context = avformat_alloc_context (); ++ demux->context->pb = iocontext; ++ res = avformat_open_input (&demux->context, NULL, oclass->in_plugin, NULL); + +- g_free (location); + GST_DEBUG_OBJECT (demux, "av_open_input returned %d", res); + if (res < 0) + goto open_failed; +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegenc.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegenc.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegenc.c 2011-10-31 11:14:03.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegenc.c 2014-08-08 15:32:18.608870847 +0200 +@@ -770,7 +770,7 @@ + GST_OBJECT_UNLOCK (ffmpegenc); + + if (force_keyframe) +- ffmpegenc->picture->pict_type = FF_I_TYPE; ++ ffmpegenc->picture->pict_type = AV_PICTURE_TYPE_I; + + frame_size = gst_ffmpeg_avpicture_fill ((AVPicture *) ffmpegenc->picture, + GST_BUFFER_DATA (inbuf), +@@ -1136,7 +1136,7 @@ + const GstStructure *s; + s = gst_event_get_structure (event); + if (gst_structure_has_name (s, "GstForceKeyUnit")) { +- ffmpegenc->picture->pict_type = FF_I_TYPE; ++ ffmpegenc->picture->pict_type = AV_PICTURE_TYPE_I; + } + break; + } +@@ -1339,7 +1339,7 @@ + } + + /* only encoders */ +- if (!in_plugin->encode) { ++ if (!av_codec_is_encoder (in_plugin)) { + goto next; + } + +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c 2011-07-13 11:07:28.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c 2014-08-08 15:26:07.874857555 +0200 +@@ -24,8 +24,10 @@ + #include + #ifdef HAVE_FFMPEG_UNINSTALLED + #include ++#include + #else + #include ++#include + #endif + + #include +@@ -336,9 +338,6 @@ + ffmpegmux->context = g_new0 (AVFormatContext, 1); + ffmpegmux->context->oformat = oclass->in_plugin; + ffmpegmux->context->nb_streams = 0; +- g_snprintf (ffmpegmux->context->filename, +- sizeof (ffmpegmux->context->filename), +- "gstreamer://%p", ffmpegmux->srcpad); + ffmpegmux->opened = FALSE; + + ffmpegmux->videopads = 0; +@@ -450,10 +449,10 @@ + gst_element_add_pad (element, pad); + + /* AVStream needs to be created */ +- st = av_new_stream (ffmpegmux->context, collect_pad->padnum); ++ st = avformat_new_stream (ffmpegmux->context, NULL); ++ st->id = collect_pad->padnum; + st->codec->codec_type = type; + st->codec->codec_id = CODEC_ID_NONE; /* this is a check afterwards */ +- st->stream_copy = 1; /* we're not the actual encoder */ + st->codec->bit_rate = bitrate; + st->codec->frame_size = framesize; + /* we fill in codec during capsnego */ +@@ -485,7 +484,7 @@ + collect_pad = (GstFFMpegMuxPad *) gst_pad_get_element_private (pad); + + st = ffmpegmux->context->streams[collect_pad->padnum]; +- ffmpegmux->context->preload = ffmpegmux->preload; ++ av_opt_set_int (&ffmpegmux->context, "preload", ffmpegmux->preload, 0); + ffmpegmux->context->max_delay = ffmpegmux->max_delay; + + /* for the format-specific guesses, we'll go to +@@ -552,7 +551,7 @@ + + /* open "file" (gstreamer protocol to next element) */ + if (!ffmpegmux->opened) { +- int open_flags = URL_WRONLY; ++ int open_flags = AVIO_FLAG_WRITE; + + /* we do need all streams to have started capsnego, + * or things will go horribly wrong */ +@@ -646,19 +645,13 @@ + open_flags |= GST_FFMPEG_URL_STREAMHEADER; + } + +- if (url_fopen (&ffmpegmux->context->pb, +- ffmpegmux->context->filename, open_flags) < 0) { ++ if (gst_ffmpegdata_open (ffmpegmux->srcpad, open_flags, ++ &ffmpegmux->context->pb) < 0) { + GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, TOO_LAZY, (NULL), + ("Failed to open stream context in ffmux")); + return GST_FLOW_ERROR; + } + +- if (av_set_parameters (ffmpegmux->context, NULL) < 0) { +- GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, INIT, (NULL), +- ("Failed to initialize muxer")); +- return GST_FLOW_ERROR; +- } +- + /* now open the mux format */ + if (av_write_header (ffmpegmux->context) < 0) { + GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, SETTINGS, (NULL), +@@ -670,7 +663,7 @@ + ffmpegmux->opened = TRUE; + + /* flush the header so it will be used as streamheader */ +- put_flush_packet (ffmpegmux->context->pb); ++ avio_flush (ffmpegmux->context->pb); + } + + /* take the one with earliest timestamp, +@@ -770,8 +763,8 @@ + /* close down */ + av_write_trailer (ffmpegmux->context); + ffmpegmux->opened = FALSE; +- put_flush_packet (ffmpegmux->context->pb); +- url_fclose (ffmpegmux->context->pb); ++ avio_flush (ffmpegmux->context->pb); ++ gst_ffmpegdata_close (ffmpegmux->context->pb); + gst_pad_push_event (ffmpegmux->srcpad, gst_event_new_eos ()); + return GST_FLOW_UNEXPECTED; + } +@@ -795,6 +788,10 @@ + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_collect_pads_stop (ffmpegmux->collect); ++ if (ffmpegmux->opened) { ++ ffmpegmux->opened = FALSE; ++ gst_ffmpegdata_close (ffmpegmux->context->pb); ++ } + break; + default: + break; +@@ -809,7 +806,7 @@ + gst_tag_setter_reset_tags (GST_TAG_SETTER (ffmpegmux)); + if (ffmpegmux->opened) { + ffmpegmux->opened = FALSE; +- url_fclose (ffmpegmux->context->pb); ++ avio_close (ffmpegmux->context->pb); + } + break; + case GST_STATE_CHANGE_READY_TO_NULL: +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c.orig +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegmux.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegmux.c.orig 2011-07-13 11:07:28.000000000 +0200 +@@ -0,0 +1,970 @@ ++/* GStreamer ++ * Copyright (C) <1999> Erik Walthinsen ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#ifdef HAVE_FFMPEG_UNINSTALLED ++#include ++#else ++#include ++#endif ++ ++#include ++#include ++ ++#include "gstffmpeg.h" ++#include "gstffmpegcodecmap.h" ++#include "gstffmpegutils.h" ++ ++typedef struct _GstFFMpegMux GstFFMpegMux; ++typedef struct _GstFFMpegMuxPad GstFFMpegMuxPad; ++ ++struct _GstFFMpegMuxPad ++{ ++ GstCollectData collect; /* we extend the CollectData */ ++ ++ gint padnum; ++}; ++ ++struct _GstFFMpegMux ++{ ++ GstElement element; ++ ++ GstCollectPads *collect; ++ /* We need to keep track of our pads, so we do so here. */ ++ GstPad *srcpad; ++ ++ AVFormatContext *context; ++ gboolean opened; ++ ++ gint videopads, audiopads; ++ ++ /*< private > */ ++ /* event_function is the collectpads default eventfunction */ ++ GstPadEventFunction event_function; ++ int preload; ++ int max_delay; ++}; ++ ++typedef struct _GstFFMpegMuxClass GstFFMpegMuxClass; ++ ++struct _GstFFMpegMuxClass ++{ ++ GstElementClass parent_class; ++ ++ AVOutputFormat *in_plugin; ++}; ++ ++#define GST_TYPE_FFMPEGMUX \ ++ (gst_ffmpegdec_get_type()) ++#define GST_FFMPEGMUX(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FFMPEGMUX,GstFFMpegMux)) ++#define GST_FFMPEGMUX_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FFMPEGMUX,GstFFMpegMuxClass)) ++#define GST_IS_FFMPEGMUX(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FFMPEGMUX)) ++#define GST_IS_FFMPEGMUX_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FFMPEGMUX)) ++ ++enum ++{ ++ /* FILL ME */ ++ LAST_SIGNAL ++}; ++ ++enum ++{ ++ ARG_0, ++ /* FILL ME */ ++}; ++ ++enum ++{ ++ PROP_0, ++ PROP_PRELOAD, ++ PROP_MAXDELAY ++}; ++ ++/* A number of function prototypes are given so we can refer to them later. */ ++static void gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass); ++static void gst_ffmpegmux_base_init (gpointer g_class); ++static void gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux, ++ GstFFMpegMuxClass * g_class); ++static void gst_ffmpegmux_finalize (GObject * object); ++ ++static gboolean gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps); ++static GstPad *gst_ffmpegmux_request_new_pad (GstElement * element, ++ GstPadTemplate * templ, const gchar * name); ++static GstFlowReturn gst_ffmpegmux_collected (GstCollectPads * pads, ++ gpointer user_data); ++ ++static gboolean gst_ffmpegmux_sink_event (GstPad * pad, GstEvent * event); ++ ++static GstStateChangeReturn gst_ffmpegmux_change_state (GstElement * element, ++ GstStateChange transition); ++ ++static void gst_ffmpegmux_set_property (GObject * object, guint prop_id, ++ const GValue * value, GParamSpec * pspec); ++static void gst_ffmpegmux_get_property (GObject * object, guint prop_id, ++ GValue * value, GParamSpec * pspec); ++ ++static GstCaps *gst_ffmpegmux_get_id_caps (enum CodecID *id_list); ++static void gst_ffmpeg_mux_simple_caps_set_int_list (GstCaps * caps, ++ const gchar * field, guint num, const gint * values); ++ ++#define GST_FFMUX_PARAMS_QDATA g_quark_from_static_string("ffmux-params") ++ ++static GstElementClass *parent_class = NULL; ++ ++/*static guint gst_ffmpegmux_signals[LAST_SIGNAL] = { 0 }; */ ++ ++typedef struct ++{ ++ const char *name; ++ const char *replacement; ++} GstFFMpegMuxReplacement; ++ ++static const char * ++gst_ffmpegmux_get_replacement (const char *name) ++{ ++ static const GstFFMpegMuxReplacement blacklist[] = { ++ {"avi", "avimux"}, ++ {"matroska", "matroskamux"}, ++ {"mov", "qtmux"}, ++ {"mpegts", "mpegtsmux"}, ++ {"mp4", "mp4mux"}, ++ {"mpjpeg", "multipartmux"}, ++ {"ogg", "oggmux"}, ++ {"wav", "wavenc"}, ++ {"webm", "webmmux"}, ++ {"mxf", "mxfmux"}, ++ {"3gp", "gppmux"}, ++ {"yuv4mpegpipe", "y4menc"}, ++ {"aiff", "aiffmux"}, ++ {"adts", "aacparse"}, ++ {"asf", "asfmux"}, ++ {"asf_stream", "asfmux"}, ++ {"flv", "flvmux"}, ++ {"mp3", "id3v2mux"}, ++ {"mp2", "id3v2mux"} ++ }; ++ int i; ++ ++ for (i = 0; i < sizeof (blacklist) / sizeof (blacklist[0]); i++) { ++ if (strcmp (blacklist[i].name, name) == 0) { ++ return blacklist[i].replacement; ++ } ++ } ++ ++ return NULL; ++} ++ ++static gboolean ++gst_ffmpegmux_is_formatter (const char *name) ++{ ++ static const char *replace[] = { ++ "mp2", "mp3", NULL ++ }; ++ int i; ++ ++ for (i = 0; replace[i]; i++) ++ if (strcmp (replace[i], name) == 0) ++ return TRUE; ++ return FALSE; ++} ++ ++static void ++gst_ffmpegmux_base_init (gpointer g_class) ++{ ++ GstFFMpegMuxClass *klass = (GstFFMpegMuxClass *) g_class; ++ GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); ++ GstPadTemplate *videosinktempl, *audiosinktempl, *srctempl; ++ AVOutputFormat *in_plugin; ++ GstCaps *srccaps, *audiosinkcaps, *videosinkcaps; ++ enum CodecID *video_ids = NULL, *audio_ids = NULL; ++ gchar *longname, *description; ++ const char *replacement; ++ gboolean is_formatter; ++ ++ in_plugin = ++ (AVOutputFormat *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), ++ GST_FFMUX_PARAMS_QDATA); ++ g_assert (in_plugin != NULL); ++ ++ /* construct the element details struct */ ++ replacement = gst_ffmpegmux_get_replacement (in_plugin->name); ++ is_formatter = gst_ffmpegmux_is_formatter (in_plugin->name); ++ if (replacement != NULL) { ++ longname = ++ g_strdup_printf ("FFmpeg %s %s (not recommended, use %s instead)", ++ in_plugin->long_name, is_formatter ? "formatter" : "muxer", ++ replacement); ++ description = ++ g_strdup_printf ("FFmpeg %s %s (not recommended, use %s instead)", ++ in_plugin->long_name, is_formatter ? "formatter" : "muxer", ++ replacement); ++ } else { ++ longname = g_strdup_printf ("FFmpeg %s %s", in_plugin->long_name, ++ is_formatter ? "formatter" : "muxer"); ++ description = g_strdup_printf ("FFmpeg %s %s", in_plugin->long_name, ++ is_formatter ? "formatter" : "muxer"); ++ } ++ gst_element_class_set_details_simple (element_class, longname, ++ is_formatter ? "Formatter/Metadata" : "Codec/Muxer", description, ++ "Wim Taymans , " ++ "Ronald Bultje "); ++ g_free (longname); ++ g_free (description); ++ ++ /* Try to find the caps that belongs here */ ++ srccaps = gst_ffmpeg_formatid_to_caps (in_plugin->name); ++ if (!srccaps) { ++ GST_DEBUG ("Couldn't get source caps for muxer '%s', skipping format", ++ in_plugin->name); ++ goto beach; ++ } ++ ++ if (!gst_ffmpeg_formatid_get_codecids (in_plugin->name, ++ &video_ids, &audio_ids, in_plugin)) { ++ gst_caps_unref (srccaps); ++ GST_DEBUG ++ ("Couldn't get sink caps for muxer '%s'. Most likely because no input format mapping exists.", ++ in_plugin->name); ++ goto beach; ++ } ++ ++ videosinkcaps = video_ids ? gst_ffmpegmux_get_id_caps (video_ids) : NULL; ++ audiosinkcaps = audio_ids ? gst_ffmpegmux_get_id_caps (audio_ids) : NULL; ++ ++ /* fix up allowed caps for some muxers */ ++ /* FIXME : This should be in gstffmpegcodecmap.c ! */ ++ if (strcmp (in_plugin->name, "flv") == 0) { ++ const gint rates[] = { 44100, 22050, 11025 }; ++ ++ gst_ffmpeg_mux_simple_caps_set_int_list (audiosinkcaps, "rate", 3, rates); ++ } else if (strcmp (in_plugin->name, "gif") == 0) { ++ if (videosinkcaps) ++ gst_caps_unref (videosinkcaps); ++ ++ videosinkcaps = ++ gst_caps_from_string ("video/x-raw-rgb, bpp=(int)24, depth=(int)24"); ++ } ++ ++ /* pad templates */ ++ srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, srccaps); ++ gst_element_class_add_pad_template (element_class, srctempl); ++ ++ if (audiosinkcaps) { ++ audiosinktempl = gst_pad_template_new ("audio_%d", ++ GST_PAD_SINK, GST_PAD_REQUEST, audiosinkcaps); ++ gst_element_class_add_pad_template (element_class, audiosinktempl); ++ } ++ ++ if (videosinkcaps) { ++ videosinktempl = gst_pad_template_new ("video_%d", ++ GST_PAD_SINK, GST_PAD_REQUEST, videosinkcaps); ++ gst_element_class_add_pad_template (element_class, videosinktempl); ++ } ++ ++beach: ++ klass->in_plugin = in_plugin; ++} ++ ++static void ++gst_ffmpegmux_class_init (GstFFMpegMuxClass * klass) ++{ ++ GObjectClass *gobject_class; ++ GstElementClass *gstelement_class; ++ ++ gobject_class = (GObjectClass *) klass; ++ gstelement_class = (GstElementClass *) klass; ++ ++ parent_class = g_type_class_peek_parent (klass); ++ ++ gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_ffmpegmux_set_property); ++ gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_ffmpegmux_get_property); ++ ++ g_object_class_install_property (gobject_class, PROP_PRELOAD, ++ g_param_spec_int ("preload", "preload", ++ "Set the initial demux-decode delay (in microseconds)", 0, G_MAXINT, ++ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property (gobject_class, PROP_MAXDELAY, ++ g_param_spec_int ("maxdelay", "maxdelay", ++ "Set the maximum demux-decode delay (in microseconds)", 0, G_MAXINT, ++ 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ ++ gstelement_class->request_new_pad = gst_ffmpegmux_request_new_pad; ++ gstelement_class->change_state = gst_ffmpegmux_change_state; ++ gobject_class->finalize = gst_ffmpegmux_finalize; ++} ++ ++static void ++gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux, GstFFMpegMuxClass * g_class) ++{ ++ GstElementClass *klass = GST_ELEMENT_CLASS (g_class); ++ GstFFMpegMuxClass *oclass = (GstFFMpegMuxClass *) klass; ++ GstPadTemplate *templ = gst_element_class_get_pad_template (klass, "src"); ++ ++ ffmpegmux->srcpad = gst_pad_new_from_template (templ, "src"); ++ gst_pad_set_caps (ffmpegmux->srcpad, gst_pad_template_get_caps (templ)); ++ gst_element_add_pad (GST_ELEMENT (ffmpegmux), ffmpegmux->srcpad); ++ ++ ffmpegmux->collect = gst_collect_pads_new (); ++ gst_collect_pads_set_function (ffmpegmux->collect, ++ (GstCollectPadsFunction) gst_ffmpegmux_collected, ffmpegmux); ++ ++ ffmpegmux->context = g_new0 (AVFormatContext, 1); ++ ffmpegmux->context->oformat = oclass->in_plugin; ++ ffmpegmux->context->nb_streams = 0; ++ g_snprintf (ffmpegmux->context->filename, ++ sizeof (ffmpegmux->context->filename), ++ "gstreamer://%p", ffmpegmux->srcpad); ++ ffmpegmux->opened = FALSE; ++ ++ ffmpegmux->videopads = 0; ++ ffmpegmux->audiopads = 0; ++ ffmpegmux->preload = 0; ++ ffmpegmux->max_delay = 0; ++} ++ ++static void ++gst_ffmpegmux_set_property (GObject * object, guint prop_id, ++ const GValue * value, GParamSpec * pspec) ++{ ++ GstFFMpegMux *src; ++ ++ src = (GstFFMpegMux *) object; ++ ++ switch (prop_id) { ++ case PROP_PRELOAD: ++ src->preload = g_value_get_int (value); ++ break; ++ case PROP_MAXDELAY: ++ src->max_delay = g_value_get_int (value); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++static void ++gst_ffmpegmux_get_property (GObject * object, guint prop_id, GValue * value, ++ GParamSpec * pspec) ++{ ++ GstFFMpegMux *src; ++ ++ src = (GstFFMpegMux *) object; ++ ++ switch (prop_id) { ++ case PROP_PRELOAD: ++ g_value_set_int (value, src->preload); ++ break; ++ case PROP_MAXDELAY: ++ g_value_set_int (value, src->max_delay); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++ ++static void ++gst_ffmpegmux_finalize (GObject * object) ++{ ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) object; ++ ++ g_free (ffmpegmux->context); ++ gst_object_unref (ffmpegmux->collect); ++ ++ if (G_OBJECT_CLASS (parent_class)->finalize) ++ G_OBJECT_CLASS (parent_class)->finalize (object); ++} ++ ++static GstPad * ++gst_ffmpegmux_request_new_pad (GstElement * element, ++ GstPadTemplate * templ, const gchar * name) ++{ ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) element; ++ GstElementClass *klass = GST_ELEMENT_GET_CLASS (element); ++ GstFFMpegMuxPad *collect_pad; ++ gchar *padname; ++ GstPad *pad; ++ AVStream *st; ++ enum AVMediaType type; ++ gint bitrate = 0, framesize = 0; ++ ++ g_return_val_if_fail (templ != NULL, NULL); ++ g_return_val_if_fail (templ->direction == GST_PAD_SINK, NULL); ++ g_return_val_if_fail (ffmpegmux->opened == FALSE, NULL); ++ ++ /* figure out a name that *we* like */ ++ if (templ == gst_element_class_get_pad_template (klass, "video_%d")) { ++ padname = g_strdup_printf ("video_%d", ffmpegmux->videopads++); ++ type = AVMEDIA_TYPE_VIDEO; ++ bitrate = 64 * 1024; ++ framesize = 1152; ++ } else if (templ == gst_element_class_get_pad_template (klass, "audio_%d")) { ++ padname = g_strdup_printf ("audio_%d", ffmpegmux->audiopads++); ++ type = AVMEDIA_TYPE_AUDIO; ++ bitrate = 285 * 1024; ++ } else { ++ g_warning ("ffmux: unknown pad template!"); ++ return NULL; ++ } ++ ++ /* create pad */ ++ pad = gst_pad_new_from_template (templ, padname); ++ collect_pad = (GstFFMpegMuxPad *) ++ gst_collect_pads_add_pad (ffmpegmux->collect, pad, ++ sizeof (GstFFMpegMuxPad)); ++ collect_pad->padnum = ffmpegmux->context->nb_streams; ++ ++ /* small hack to put our own event pad function and chain up to collect pad */ ++ ffmpegmux->event_function = GST_PAD_EVENTFUNC (pad); ++ gst_pad_set_event_function (pad, ++ GST_DEBUG_FUNCPTR (gst_ffmpegmux_sink_event)); ++ ++ gst_pad_set_setcaps_function (pad, GST_DEBUG_FUNCPTR (gst_ffmpegmux_setcaps)); ++ gst_element_add_pad (element, pad); ++ ++ /* AVStream needs to be created */ ++ st = av_new_stream (ffmpegmux->context, collect_pad->padnum); ++ st->codec->codec_type = type; ++ st->codec->codec_id = CODEC_ID_NONE; /* this is a check afterwards */ ++ st->stream_copy = 1; /* we're not the actual encoder */ ++ st->codec->bit_rate = bitrate; ++ st->codec->frame_size = framesize; ++ /* we fill in codec during capsnego */ ++ ++ /* we love debug output (c) (tm) (r) */ ++ GST_DEBUG ("Created %s pad for ffmux_%s element", ++ padname, ((GstFFMpegMuxClass *) klass)->in_plugin->name); ++ g_free (padname); ++ ++ return pad; ++} ++ ++/** ++ * gst_ffmpegmux_setcaps ++ * @pad: #GstPad ++ * @caps: New caps. ++ * ++ * Set caps to pad. ++ * ++ * Returns: #TRUE on success. ++ */ ++static gboolean ++gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps) ++{ ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (gst_pad_get_parent (pad)); ++ GstFFMpegMuxPad *collect_pad; ++ AVStream *st; ++ ++ collect_pad = (GstFFMpegMuxPad *) gst_pad_get_element_private (pad); ++ ++ st = ffmpegmux->context->streams[collect_pad->padnum]; ++ ffmpegmux->context->preload = ffmpegmux->preload; ++ ffmpegmux->context->max_delay = ffmpegmux->max_delay; ++ ++ /* for the format-specific guesses, we'll go to ++ * our famous codec mapper */ ++ if (gst_ffmpeg_caps_to_codecid (caps, st->codec) == CODEC_ID_NONE) ++ goto not_accepted; ++ ++ /* copy over the aspect ratios, ffmpeg expects the stream aspect to match the ++ * codec aspect. */ ++ st->sample_aspect_ratio = st->codec->sample_aspect_ratio; ++ ++ GST_LOG_OBJECT (pad, "accepted caps %" GST_PTR_FORMAT, caps); ++ return TRUE; ++ ++ /* ERRORS */ ++not_accepted: ++ { ++ GST_LOG_OBJECT (pad, "rejecting caps %" GST_PTR_FORMAT, caps); ++ return FALSE; ++ } ++} ++ ++ ++static gboolean ++gst_ffmpegmux_sink_event (GstPad * pad, GstEvent * event) ++{ ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) gst_pad_get_parent (pad); ++ gboolean res = TRUE; ++ ++ switch (GST_EVENT_TYPE (event)) { ++ case GST_EVENT_TAG:{ ++ GstTagList *taglist; ++ GstTagSetter *setter = GST_TAG_SETTER (ffmpegmux); ++ const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter); ++ ++ gst_event_parse_tag (event, &taglist); ++ gst_tag_setter_merge_tags (setter, taglist, mode); ++ break; ++ } ++ default: ++ break; ++ } ++ ++ /* chaining up to collectpads default event function */ ++ res = ffmpegmux->event_function (pad, event); ++ ++ gst_object_unref (ffmpegmux); ++ return res; ++} ++ ++static GstFlowReturn ++gst_ffmpegmux_collected (GstCollectPads * pads, gpointer user_data) ++{ ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) user_data; ++ GSList *collected; ++ GstFFMpegMuxPad *best_pad; ++ GstClockTime best_time; ++#if 0 ++ /* Re-enable once converted to new AVMetaData API ++ * See #566605 ++ */ ++ const GstTagList *tags; ++#endif ++ ++ /* open "file" (gstreamer protocol to next element) */ ++ if (!ffmpegmux->opened) { ++ int open_flags = URL_WRONLY; ++ ++ /* we do need all streams to have started capsnego, ++ * or things will go horribly wrong */ ++ for (collected = ffmpegmux->collect->data; collected; ++ collected = g_slist_next (collected)) { ++ GstFFMpegMuxPad *collect_pad = (GstFFMpegMuxPad *) collected->data; ++ AVStream *st = ffmpegmux->context->streams[collect_pad->padnum]; ++ ++ /* check whether the pad has successfully completed capsnego */ ++ if (st->codec->codec_id == CODEC_ID_NONE) { ++ GST_ELEMENT_ERROR (ffmpegmux, CORE, NEGOTIATION, (NULL), ++ ("no caps set on stream %d (%s)", collect_pad->padnum, ++ (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) ? ++ "video" : "audio")); ++ return GST_FLOW_ERROR; ++ } ++ /* set framerate for audio */ ++ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) { ++ switch (st->codec->codec_id) { ++ case CODEC_ID_PCM_S16LE: ++ case CODEC_ID_PCM_S16BE: ++ case CODEC_ID_PCM_U16LE: ++ case CODEC_ID_PCM_U16BE: ++ case CODEC_ID_PCM_S8: ++ case CODEC_ID_PCM_U8: ++ st->codec->frame_size = 1; ++ break; ++ default: ++ { ++ GstBuffer *buffer; ++ ++ /* FIXME : This doesn't work for RAW AUDIO... ++ * in fact I'm wondering if it even works for any kind of audio... */ ++ buffer = gst_collect_pads_peek (ffmpegmux->collect, ++ (GstCollectData *) collect_pad); ++ if (buffer) { ++ st->codec->frame_size = ++ st->codec->sample_rate * ++ GST_BUFFER_DURATION (buffer) / GST_SECOND; ++ gst_buffer_unref (buffer); ++ } ++ } ++ } ++ } ++ } ++ ++#if 0 ++ /* Re-enable once converted to new AVMetaData API ++ * See #566605 ++ */ ++ ++ /* tags */ ++ tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (ffmpegmux)); ++ if (tags) { ++ gint i; ++ gchar *s; ++ ++ /* get the interesting ones */ ++ if (gst_tag_list_get_string (tags, GST_TAG_TITLE, &s)) { ++ strncpy (ffmpegmux->context->title, s, ++ sizeof (ffmpegmux->context->title)); ++ } ++ if (gst_tag_list_get_string (tags, GST_TAG_ARTIST, &s)) { ++ strncpy (ffmpegmux->context->author, s, ++ sizeof (ffmpegmux->context->author)); ++ } ++ if (gst_tag_list_get_string (tags, GST_TAG_COPYRIGHT, &s)) { ++ strncpy (ffmpegmux->context->copyright, s, ++ sizeof (ffmpegmux->context->copyright)); ++ } ++ if (gst_tag_list_get_string (tags, GST_TAG_COMMENT, &s)) { ++ strncpy (ffmpegmux->context->comment, s, ++ sizeof (ffmpegmux->context->comment)); ++ } ++ if (gst_tag_list_get_string (tags, GST_TAG_ALBUM, &s)) { ++ strncpy (ffmpegmux->context->album, s, ++ sizeof (ffmpegmux->context->album)); ++ } ++ if (gst_tag_list_get_string (tags, GST_TAG_GENRE, &s)) { ++ strncpy (ffmpegmux->context->genre, s, ++ sizeof (ffmpegmux->context->genre)); ++ } ++ if (gst_tag_list_get_int (tags, GST_TAG_TRACK_NUMBER, &i)) { ++ ffmpegmux->context->track = i; ++ } ++ } ++#endif ++ ++ /* set the streamheader flag for gstffmpegprotocol if codec supports it */ ++ if (!strcmp (ffmpegmux->context->oformat->name, "flv")) { ++ open_flags |= GST_FFMPEG_URL_STREAMHEADER; ++ } ++ ++ if (url_fopen (&ffmpegmux->context->pb, ++ ffmpegmux->context->filename, open_flags) < 0) { ++ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, TOO_LAZY, (NULL), ++ ("Failed to open stream context in ffmux")); ++ return GST_FLOW_ERROR; ++ } ++ ++ if (av_set_parameters (ffmpegmux->context, NULL) < 0) { ++ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, INIT, (NULL), ++ ("Failed to initialize muxer")); ++ return GST_FLOW_ERROR; ++ } ++ ++ /* now open the mux format */ ++ if (av_write_header (ffmpegmux->context) < 0) { ++ GST_ELEMENT_ERROR (ffmpegmux, LIBRARY, SETTINGS, (NULL), ++ ("Failed to write file header - check codec settings")); ++ return GST_FLOW_ERROR; ++ } ++ ++ /* we're now opened */ ++ ffmpegmux->opened = TRUE; ++ ++ /* flush the header so it will be used as streamheader */ ++ put_flush_packet (ffmpegmux->context->pb); ++ } ++ ++ /* take the one with earliest timestamp, ++ * and push it forward */ ++ best_pad = NULL; ++ best_time = GST_CLOCK_TIME_NONE; ++ for (collected = ffmpegmux->collect->data; collected; ++ collected = g_slist_next (collected)) { ++ GstFFMpegMuxPad *collect_pad = (GstFFMpegMuxPad *) collected->data; ++ GstBuffer *buffer = gst_collect_pads_peek (ffmpegmux->collect, ++ (GstCollectData *) collect_pad); ++ ++ /* if there's no buffer, just continue */ ++ if (buffer == NULL) { ++ continue; ++ } ++ ++ /* if we have no buffer yet, just use the first one */ ++ if (best_pad == NULL) { ++ best_pad = collect_pad; ++ best_time = GST_BUFFER_TIMESTAMP (buffer); ++ goto next_pad; ++ } ++ ++ /* if we do have one, only use this one if it's older */ ++ if (GST_BUFFER_TIMESTAMP (buffer) < best_time) { ++ best_time = GST_BUFFER_TIMESTAMP (buffer); ++ best_pad = collect_pad; ++ } ++ ++ next_pad: ++ gst_buffer_unref (buffer); ++ ++ /* Mux buffers with invalid timestamp first */ ++ if (!GST_CLOCK_TIME_IS_VALID (best_time)) ++ break; ++ } ++ ++ /* now handle the buffer, or signal EOS if we have ++ * no buffers left */ ++ if (best_pad != NULL) { ++ GstBuffer *buf; ++ AVPacket pkt; ++ gboolean need_free = FALSE; ++ ++ /* push out current buffer */ ++ buf = gst_collect_pads_pop (ffmpegmux->collect, ++ (GstCollectData *) best_pad); ++ ++ ffmpegmux->context->streams[best_pad->padnum]->codec->frame_number++; ++ ++ /* set time */ ++ pkt.pts = gst_ffmpeg_time_gst_to_ff (GST_BUFFER_TIMESTAMP (buf), ++ ffmpegmux->context->streams[best_pad->padnum]->time_base); ++ pkt.dts = pkt.pts; ++ ++ if (strcmp (ffmpegmux->context->oformat->name, "gif") == 0) { ++ AVStream *st = ffmpegmux->context->streams[best_pad->padnum]; ++ AVPicture src, dst; ++ ++ need_free = TRUE; ++ pkt.size = st->codec->width * st->codec->height * 3; ++ pkt.data = g_malloc (pkt.size); ++ ++ dst.data[0] = pkt.data; ++ dst.data[1] = NULL; ++ dst.data[2] = NULL; ++ dst.linesize[0] = st->codec->width * 3; ++ ++ gst_ffmpeg_avpicture_fill (&src, GST_BUFFER_DATA (buf), ++ PIX_FMT_RGB24, st->codec->width, st->codec->height); ++ ++ av_picture_copy (&dst, &src, PIX_FMT_RGB24, ++ st->codec->width, st->codec->height); ++ } else { ++ pkt.data = GST_BUFFER_DATA (buf); ++ pkt.size = GST_BUFFER_SIZE (buf); ++ } ++ ++ pkt.stream_index = best_pad->padnum; ++ pkt.flags = 0; ++ ++ if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) ++ pkt.flags |= AV_PKT_FLAG_KEY; ++ ++ if (GST_BUFFER_DURATION_IS_VALID (buf)) ++ pkt.duration = ++ gst_ffmpeg_time_gst_to_ff (GST_BUFFER_DURATION (buf), ++ ffmpegmux->context->streams[best_pad->padnum]->time_base); ++ else ++ pkt.duration = 0; ++ av_write_frame (ffmpegmux->context, &pkt); ++ gst_buffer_unref (buf); ++ if (need_free) ++ g_free (pkt.data); ++ } else { ++ /* close down */ ++ av_write_trailer (ffmpegmux->context); ++ ffmpegmux->opened = FALSE; ++ put_flush_packet (ffmpegmux->context->pb); ++ url_fclose (ffmpegmux->context->pb); ++ gst_pad_push_event (ffmpegmux->srcpad, gst_event_new_eos ()); ++ return GST_FLOW_UNEXPECTED; ++ } ++ ++ return GST_FLOW_OK; ++} ++ ++static GstStateChangeReturn ++gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition) ++{ ++ GstFlowReturn ret; ++ GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (element); ++ ++ switch (transition) { ++ case GST_STATE_CHANGE_NULL_TO_READY: ++ break; ++ case GST_STATE_CHANGE_READY_TO_PAUSED: ++ gst_collect_pads_start (ffmpegmux->collect); ++ break; ++ case GST_STATE_CHANGE_PAUSED_TO_PLAYING: ++ break; ++ case GST_STATE_CHANGE_PAUSED_TO_READY: ++ gst_collect_pads_stop (ffmpegmux->collect); ++ break; ++ default: ++ break; ++ } ++ ++ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); ++ ++ switch (transition) { ++ case GST_STATE_CHANGE_PLAYING_TO_PAUSED: ++ break; ++ case GST_STATE_CHANGE_PAUSED_TO_READY: ++ gst_tag_setter_reset_tags (GST_TAG_SETTER (ffmpegmux)); ++ if (ffmpegmux->opened) { ++ ffmpegmux->opened = FALSE; ++ url_fclose (ffmpegmux->context->pb); ++ } ++ break; ++ case GST_STATE_CHANGE_READY_TO_NULL: ++ break; ++ default: ++ break; ++ } ++ ++ return ret; ++} ++ ++static GstCaps * ++gst_ffmpegmux_get_id_caps (enum CodecID *id_list) ++{ ++ GstCaps *caps, *t; ++ gint i; ++ ++ caps = gst_caps_new_empty (); ++ for (i = 0; id_list[i] != CODEC_ID_NONE; i++) { ++ if ((t = gst_ffmpeg_codecid_to_caps (id_list[i], NULL, TRUE))) ++ gst_caps_append (caps, t); ++ } ++ if (gst_caps_is_empty (caps)) { ++ gst_caps_unref (caps); ++ return NULL; ++ } ++ ++ return caps; ++} ++ ++/* set a list of integer values on the caps, e.g. for sample rates */ ++static void ++gst_ffmpeg_mux_simple_caps_set_int_list (GstCaps * caps, const gchar * field, ++ guint num, const gint * values) ++{ ++ GValue list = { 0, }; ++ GValue val = { 0, }; ++ gint i; ++ ++ g_return_if_fail (GST_CAPS_IS_SIMPLE (caps)); ++ ++ g_value_init (&list, GST_TYPE_LIST); ++ g_value_init (&val, G_TYPE_INT); ++ ++ for (i = 0; i < num; ++i) { ++ g_value_set_int (&val, values[i]); ++ gst_value_list_append_value (&list, &val); ++ } ++ ++ gst_structure_set_value (gst_caps_get_structure (caps, 0), field, &list); ++ ++ g_value_unset (&val); ++ g_value_unset (&list); ++} ++ ++gboolean ++gst_ffmpegmux_register (GstPlugin * plugin) ++{ ++ GTypeInfo typeinfo = { ++ sizeof (GstFFMpegMuxClass), ++ (GBaseInitFunc) gst_ffmpegmux_base_init, ++ NULL, ++ (GClassInitFunc) gst_ffmpegmux_class_init, ++ NULL, ++ NULL, ++ sizeof (GstFFMpegMux), ++ 0, ++ (GInstanceInitFunc) gst_ffmpegmux_init, ++ }; ++ static const GInterfaceInfo tag_setter_info = { ++ NULL, NULL, NULL ++ }; ++ GType type; ++ AVOutputFormat *in_plugin; ++ ++ in_plugin = av_oformat_next (NULL); ++ ++ GST_LOG ("Registering muxers"); ++ ++ while (in_plugin) { ++ gchar *type_name; ++ gchar *p; ++ GstRank rank = GST_RANK_MARGINAL; ++ ++ if ((!strncmp (in_plugin->name, "u16", 3)) || ++ (!strncmp (in_plugin->name, "s16", 3)) || ++ (!strncmp (in_plugin->name, "u24", 3)) || ++ (!strncmp (in_plugin->name, "s24", 3)) || ++ (!strncmp (in_plugin->name, "u8", 2)) || ++ (!strncmp (in_plugin->name, "s8", 2)) || ++ (!strncmp (in_plugin->name, "u32", 3)) || ++ (!strncmp (in_plugin->name, "s32", 3)) || ++ (!strncmp (in_plugin->name, "f32", 3)) || ++ (!strncmp (in_plugin->name, "f64", 3)) || ++ (!strncmp (in_plugin->name, "raw", 3)) || ++ (!strncmp (in_plugin->name, "crc", 3)) || ++ (!strncmp (in_plugin->name, "null", 4)) || ++ (!strncmp (in_plugin->name, "gif", 3)) || ++ (!strncmp (in_plugin->name, "frame", 5)) || ++ (!strncmp (in_plugin->name, "image", 5)) || ++ (!strncmp (in_plugin->name, "mulaw", 5)) || ++ (!strncmp (in_plugin->name, "alaw", 4)) || ++ (!strncmp (in_plugin->name, "h26", 3)) || ++ (!strncmp (in_plugin->name, "rtp", 3)) || ++ (!strncmp (in_plugin->name, "ass", 3)) || ++ (!strncmp (in_plugin->name, "ffmetadata", 10)) || ++ (!strncmp (in_plugin->name, "srt", 3)) ++ ) { ++ GST_LOG ("Ignoring muxer %s", in_plugin->name); ++ goto next; ++ } ++ ++ if ((!strncmp (in_plugin->long_name, "raw ", 4))) { ++ GST_LOG ("Ignoring raw muxer %s", in_plugin->name); ++ goto next; ++ } ++ ++ if (gst_ffmpegmux_get_replacement (in_plugin->name)) ++ rank = GST_RANK_NONE; ++ ++ /* FIXME : We need a fast way to know whether we have mappings for this ++ * muxer type. */ ++ ++ /* construct the type */ ++ type_name = g_strdup_printf ("ffmux_%s", in_plugin->name); ++ ++ p = type_name; ++ ++ while (*p) { ++ if (*p == '.') ++ *p = '_'; ++ p++; ++ } ++ ++ type = g_type_from_name (type_name); ++ ++ if (!type) { ++ /* create the type now */ ++ type = g_type_register_static (GST_TYPE_ELEMENT, type_name, &typeinfo, 0); ++ g_type_set_qdata (type, GST_FFMUX_PARAMS_QDATA, (gpointer) in_plugin); ++ g_type_add_interface_static (type, GST_TYPE_TAG_SETTER, &tag_setter_info); ++ } ++ ++ if (!gst_element_register (plugin, type_name, rank, type)) { ++ g_free (type_name); ++ return FALSE; ++ } ++ ++ g_free (type_name); ++ ++ next: ++ in_plugin = av_oformat_next (in_plugin); ++ } ++ ++ GST_LOG ("Finished registering muxers"); ++ ++ return TRUE; ++} +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegprotocol.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegprotocol.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegprotocol.c 2011-07-12 16:35:28.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegprotocol.c 2014-08-08 15:26:07.875857555 +0200 +@@ -46,63 +46,14 @@ + }; + + static int +-gst_ffmpegdata_open (URLContext * h, const char *filename, int flags) +-{ +- GstProtocolInfo *info; +- GstPad *pad; +- +- GST_LOG ("Opening %s", filename); +- +- info = g_new0 (GstProtocolInfo, 1); +- +- info->set_streamheader = flags & GST_FFMPEG_URL_STREAMHEADER; +- flags &= ~GST_FFMPEG_URL_STREAMHEADER; +- h->flags &= ~GST_FFMPEG_URL_STREAMHEADER; +- +- /* we don't support R/W together */ +- if (flags != URL_RDONLY && flags != URL_WRONLY) { +- GST_WARNING ("Only read-only or write-only are supported"); +- return -EINVAL; +- } +- +- if (sscanf (&filename[12], "%p", &pad) != 1) { +- GST_WARNING ("could not decode pad from %s", filename); +- return -EIO; +- } +- +- /* make sure we're a pad and that we're of the right type */ +- g_return_val_if_fail (GST_IS_PAD (pad), -EINVAL); +- +- switch (flags) { +- case URL_RDONLY: +- g_return_val_if_fail (GST_PAD_IS_SINK (pad), -EINVAL); +- break; +- case URL_WRONLY: +- g_return_val_if_fail (GST_PAD_IS_SRC (pad), -EINVAL); +- break; +- } +- +- info->eos = FALSE; +- info->pad = pad; +- info->offset = 0; +- +- h->priv_data = (void *) info; +- h->is_streamed = FALSE; +- h->max_packet_size = 0; +- +- return 0; +-} +- +-static int +-gst_ffmpegdata_peek (URLContext * h, unsigned char *buf, int size) ++gst_ffmpegdata_peek (void *priv_data, unsigned char *buf, int size) + { + GstProtocolInfo *info; + GstBuffer *inbuf = NULL; + GstFlowReturn ret; + int total = 0; + +- g_return_val_if_fail (h->flags == URL_RDONLY, AVERROR (EIO)); +- info = (GstProtocolInfo *) h->priv_data; ++ info = (GstProtocolInfo *) priv_data; + + GST_DEBUG ("Pulling %d bytes at position %" G_GUINT64_FORMAT, size, + info->offset); +@@ -134,17 +85,17 @@ + } + + static int +-gst_ffmpegdata_read (URLContext * h, unsigned char *buf, int size) ++gst_ffmpegdata_read (void *priv_data, unsigned char *buf, int size) + { + gint res; + GstProtocolInfo *info; + +- info = (GstProtocolInfo *) h->priv_data; ++ info = (GstProtocolInfo *) priv_data; + + GST_DEBUG ("Reading %d bytes of data at position %" G_GUINT64_FORMAT, size, + info->offset); + +- res = gst_ffmpegdata_peek (h, buf, size); ++ res = gst_ffmpegdata_peek (priv_data, buf, size); + if (res >= 0) + info->offset += res; + +@@ -154,15 +105,13 @@ + } + + static int +-gst_ffmpegdata_write (URLContext * h, const unsigned char *buf, int size) ++gst_ffmpegdata_write (void *priv_data, const unsigned char *buf, int size) + { + GstProtocolInfo *info; + GstBuffer *outbuf; + + GST_DEBUG ("Writing %d bytes", size); +- info = (GstProtocolInfo *) h->priv_data; +- +- g_return_val_if_fail (h->flags != URL_RDONLY, -EIO); ++ info = (GstProtocolInfo *) priv_data; + + /* create buffer and push data further */ + if (gst_pad_alloc_buffer_and_set_caps (info->pad, +@@ -179,7 +128,7 @@ + } + + static int64_t +-gst_ffmpegdata_seek (URLContext * h, int64_t pos, int whence) ++gst_ffmpegdata_seek (void *priv_data, int64_t pos, int whence) + { + GstProtocolInfo *info; + guint64 newpos = 0; +@@ -187,70 +136,62 @@ + GST_DEBUG ("Seeking to %" G_GINT64_FORMAT ", whence=%d", + (gint64) pos, whence); + +- info = (GstProtocolInfo *) h->priv_data; ++ info = (GstProtocolInfo *) priv_data; + + /* TODO : if we are push-based, we need to return sensible info */ + +- switch (h->flags) { +- case URL_RDONLY: +- { +- /* sinkpad */ +- switch (whence) { +- case SEEK_SET: +- newpos = (guint64) pos; +- break; +- case SEEK_CUR: +- newpos = info->offset + pos; +- break; +- case SEEK_END: +- case AVSEEK_SIZE: +- /* ffmpeg wants to know the current end position in bytes ! */ +- { +- GstFormat format = GST_FORMAT_BYTES; +- gint64 duration; +- +- GST_DEBUG ("Seek end"); +- +- if (gst_pad_is_linked (info->pad)) +- if (gst_pad_query_duration (GST_PAD_PEER (info->pad), &format, +- &duration)) +- newpos = ((guint64) duration) + pos; +- } +- break; +- default: +- g_assert (0); +- break; ++ if (GST_PAD_IS_SINK (info->pad)) { ++ /* sinkpad */ ++ switch (whence) { ++ case SEEK_SET: ++ newpos = (guint64) pos; ++ break; ++ case SEEK_CUR: ++ newpos = info->offset + pos; ++ break; ++ case SEEK_END: ++ case AVSEEK_SIZE: ++ /* ffmpeg wants to know the current end position in bytes ! */ ++ { ++ GstFormat format = GST_FORMAT_BYTES; ++ gint64 duration; ++ ++ GST_DEBUG ("Seek end"); ++ ++ if (gst_pad_is_linked (info->pad)) ++ if (gst_pad_query_duration (GST_PAD_PEER (info->pad), &format, ++ &duration)) ++ newpos = ((guint64) duration) + pos; + } +- /* FIXME : implement case for push-based behaviour */ +- if (whence != AVSEEK_SIZE) +- info->offset = newpos; ++ break; ++ default: ++ g_assert (0); ++ break; + } +- break; +- case URL_WRONLY: +- { +- /* srcpad */ +- switch (whence) { +- case SEEK_SET: +- info->offset = (guint64) pos; +- gst_pad_push_event (info->pad, gst_event_new_new_segment +- (TRUE, 1.0, GST_FORMAT_BYTES, info->offset, +- GST_CLOCK_TIME_NONE, info->offset)); +- break; +- case SEEK_CUR: +- info->offset += pos; +- gst_pad_push_event (info->pad, gst_event_new_new_segment +- (TRUE, 1.0, GST_FORMAT_BYTES, info->offset, +- GST_CLOCK_TIME_NONE, info->offset)); +- break; +- default: +- break; +- } +- newpos = info->offset; ++ /* FIXME : implement case for push-based behaviour */ ++ if (whence != AVSEEK_SIZE) ++ info->offset = newpos; ++ } else if (GST_PAD_IS_SRC (info->pad)) { ++ /* srcpad */ ++ switch (whence) { ++ case SEEK_SET: ++ info->offset = (guint64) pos; ++ gst_pad_push_event (info->pad, gst_event_new_new_segment ++ (TRUE, 1.0, GST_FORMAT_BYTES, info->offset, ++ GST_CLOCK_TIME_NONE, info->offset)); ++ break; ++ case SEEK_CUR: ++ info->offset += pos; ++ gst_pad_push_event (info->pad, gst_event_new_new_segment ++ (TRUE, 1.0, GST_FORMAT_BYTES, info->offset, ++ GST_CLOCK_TIME_NONE, info->offset)); ++ break; ++ default: ++ break; + } +- break; +- default: +- g_assert (0); +- break; ++ newpos = info->offset; ++ } else { ++ g_assert_not_reached (); + } + + GST_DEBUG ("Now at offset %" G_GUINT64_FORMAT " (returning %" G_GUINT64_FORMAT +@@ -258,85 +199,91 @@ + return newpos; + } + +-static int +-gst_ffmpegdata_close (URLContext * h) ++int ++gst_ffmpegdata_close (AVIOContext * h) + { + GstProtocolInfo *info; + +- info = (GstProtocolInfo *) h->priv_data; ++ info = (GstProtocolInfo *) h->opaque; + if (info == NULL) + return 0; + + GST_LOG ("Closing file"); + +- switch (h->flags) { +- case URL_WRONLY: +- { +- /* send EOS - that closes down the stream */ +- gst_pad_push_event (info->pad, gst_event_new_eos ()); +- break; +- } +- default: +- break; ++ if (GST_PAD_IS_SRC (info->pad)) { ++ /* send EOS - that closes down the stream */ ++ gst_pad_push_event (info->pad, gst_event_new_eos ()); + } + + /* clean up data */ + g_free (info); +- h->priv_data = NULL; ++ h->opaque = NULL; ++ ++ av_freep (&h->buffer); ++ av_free (h); + + return 0; + } + ++int ++gst_ffmpegdata_open (GstPad * pad, int flags, AVIOContext ** context) ++{ ++ GstProtocolInfo *info; ++ static const int buffer_size = 4096; ++ unsigned char *buffer = NULL; + +-URLProtocol gstreamer_protocol = { +- /*.name = */ "gstreamer", +- /*.url_open = */ gst_ffmpegdata_open, +- /*.url_read = */ gst_ffmpegdata_read, +- /*.url_write = */ gst_ffmpegdata_write, +- /*.url_seek = */ gst_ffmpegdata_seek, +- /*.url_close = */ gst_ffmpegdata_close, +-}; ++ info = g_new0 (GstProtocolInfo, 1); + ++ info->set_streamheader = flags & GST_FFMPEG_URL_STREAMHEADER; ++ flags &= ~GST_FFMPEG_URL_STREAMHEADER; + +-/* specialized protocol for cross-thread pushing, +- * based on ffmpeg's pipe protocol */ ++ /* we don't support R/W together */ ++ if ((flags & AVIO_FLAG_WRITE) && (flags & AVIO_FLAG_READ)) { ++ GST_WARNING ("Only read-only or write-only are supported"); ++ return -EINVAL; ++ } + +-static int +-gst_ffmpeg_pipe_open (URLContext * h, const char *filename, int flags) +-{ +- GstFFMpegPipe *ffpipe; ++ /* make sure we're a pad and that we're of the right type */ ++ g_return_val_if_fail (GST_IS_PAD (pad), -EINVAL); + +- GST_LOG ("Opening %s", filename); ++ if ((flags & AVIO_FLAG_READ)) ++ g_return_val_if_fail (GST_PAD_IS_SINK (pad), -EINVAL); ++ if ((flags & AVIO_FLAG_WRITE)) ++ g_return_val_if_fail (GST_PAD_IS_SRC (pad), -EINVAL); + +- /* we don't support W together */ +- if (flags != URL_RDONLY) { +- GST_WARNING ("Only read-only is supported"); +- return -EINVAL; +- } ++ info->eos = FALSE; ++ info->pad = pad; ++ info->offset = 0; + +- if (sscanf (&filename[10], "%p", &ffpipe) != 1) { +- GST_WARNING ("could not decode pipe info from %s", filename); +- return -EIO; ++ buffer = av_malloc (buffer_size); ++ if (buffer == NULL) { ++ GST_WARNING ("Failed to allocate buffer"); ++ return -ENOMEM; + } + +- /* sanity check */ +- g_return_val_if_fail (GST_IS_ADAPTER (ffpipe->adapter), -EINVAL); +- +- h->priv_data = (void *) ffpipe; +- h->is_streamed = TRUE; +- h->max_packet_size = 0; ++ *context = ++ avio_alloc_context (buffer, buffer_size, flags, (void *) info, ++ gst_ffmpegdata_read, gst_ffmpegdata_write, gst_ffmpegdata_seek); ++ (*context)->seekable = AVIO_SEEKABLE_NORMAL; ++ if (!(flags & AVIO_FLAG_WRITE)) { ++ (*context)->buf_ptr = (*context)->buf_end; ++ (*context)->write_flag = 0; ++ } + + return 0; + } + ++/* specialized protocol for cross-thread pushing, ++ * based on ffmpeg's pipe protocol */ ++ + static int +-gst_ffmpeg_pipe_read (URLContext * h, unsigned char *buf, int size) ++gst_ffmpeg_pipe_read (void *priv_data, unsigned char *buf, int size) + { + GstFFMpegPipe *ffpipe; + const guint8 *data; + guint available; + +- ffpipe = (GstFFMpegPipe *) h->priv_data; ++ ffpipe = (GstFFMpegPipe *) priv_data; + + GST_LOG ("requested size %d", size); + +@@ -367,21 +314,38 @@ + return size; + } + +-static int +-gst_ffmpeg_pipe_close (URLContext * h) ++int ++gst_ffmpeg_pipe_close (AVIOContext * h) + { + GST_LOG ("Closing pipe"); + +- h->priv_data = NULL; ++ h->opaque = NULL; ++ av_freep (&h->buffer); ++ av_free (h); + + return 0; + } + +-URLProtocol gstpipe_protocol = { +- "gstpipe", +- gst_ffmpeg_pipe_open, +- gst_ffmpeg_pipe_read, +- NULL, +- NULL, +- gst_ffmpeg_pipe_close, +-}; ++int ++gst_ffmpeg_pipe_open (GstFFMpegPipe * ffpipe, int flags, AVIOContext ** context) ++{ ++ static const int buffer_size = 4096; ++ unsigned char *buffer = NULL; ++ ++ /* sanity check */ ++ g_return_val_if_fail (GST_IS_ADAPTER (ffpipe->adapter), -EINVAL); ++ ++ buffer = av_malloc (buffer_size); ++ if (buffer == NULL) { ++ GST_WARNING ("Failed to allocate buffer"); ++ return -ENOMEM; ++ } ++ ++ *context = ++ avio_alloc_context (buffer, buffer_size, 0, (void *) ffpipe, ++ gst_ffmpeg_pipe_read, NULL, NULL); ++ (*context)->seekable = 0; ++ (*context)->buf_ptr = (*context)->buf_end; ++ ++ return 0; ++} +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c 2011-07-13 11:07:28.000000000 +0200 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c 2014-08-08 15:34:04.007874626 +0200 +@@ -25,6 +25,11 @@ + #ifdef __APPLE__ + #include + #endif ++#ifdef HAVE_FFMPEG_UNINSTALLED ++#include ++#else ++#include ++#endif + + G_CONST_RETURN gchar * + gst_ffmpeg_get_codecid_longname (enum CodecID codec_id) +@@ -39,21 +44,21 @@ + } + + gint +-av_smp_format_depth (enum SampleFormat smp_fmt) ++av_smp_format_depth (enum AVSampleFormat smp_fmt) + { + gint depth = -1; + switch (smp_fmt) { +- case SAMPLE_FMT_U8: ++ case AV_SAMPLE_FMT_U8: + depth = 1; + break; +- case SAMPLE_FMT_S16: ++ case AV_SAMPLE_FMT_S16: + depth = 2; + break; +- case SAMPLE_FMT_S32: +- case SAMPLE_FMT_FLT: ++ case AV_SAMPLE_FMT_S32: ++ case AV_SAMPLE_FMT_FLT: + depth = 4; + break; +- case SAMPLE_FMT_DBL: ++ case AV_SAMPLE_FMT_DBL: + depth = 8; + break; + default: +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c.orig +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.c.orig 2011-07-13 11:07:28.000000000 +0200 +@@ -0,0 +1,483 @@ ++/* GStreamer ++ * Copyright (c) 2009 Edward Hervey ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++#include "gstffmpegutils.h" ++#include ++#ifdef __APPLE__ ++#include ++#endif ++ ++G_CONST_RETURN gchar * ++gst_ffmpeg_get_codecid_longname (enum CodecID codec_id) ++{ ++ AVCodec *codec; ++ /* Let's use what ffmpeg can provide us */ ++ ++ if ((codec = avcodec_find_decoder (codec_id)) || ++ (codec = avcodec_find_encoder (codec_id))) ++ return codec->long_name; ++ return NULL; ++} ++ ++gint ++av_smp_format_depth (enum SampleFormat smp_fmt) ++{ ++ gint depth = -1; ++ switch (smp_fmt) { ++ case SAMPLE_FMT_U8: ++ depth = 1; ++ break; ++ case SAMPLE_FMT_S16: ++ depth = 2; ++ break; ++ case SAMPLE_FMT_S32: ++ case SAMPLE_FMT_FLT: ++ depth = 4; ++ break; ++ case SAMPLE_FMT_DBL: ++ depth = 8; ++ break; ++ default: ++ GST_ERROR ("UNHANDLED SAMPLE FORMAT !"); ++ break; ++ } ++ return depth; ++} ++ ++ ++/* ++ * Fill in pointers to memory in a AVPicture, where ++ * everything is aligned by 4 (as required by X). ++ * This is mostly a copy from imgconvert.c with some ++ * small changes. ++ */ ++ ++#define FF_COLOR_RGB 0 /* RGB color space */ ++#define FF_COLOR_GRAY 1 /* gray color space */ ++#define FF_COLOR_YUV 2 /* YUV color space. 16 <= Y <= 235, 16 <= U, V <= 240 */ ++#define FF_COLOR_YUV_JPEG 3 /* YUV color space. 0 <= Y <= 255, 0 <= U, V <= 255 */ ++ ++#define FF_PIXEL_PLANAR 0 /* each channel has one component in AVPicture */ ++#define FF_PIXEL_PACKED 1 /* only one components containing all the channels */ ++#define FF_PIXEL_PALETTE 2 /* one components containing indexes for a palette */ ++ ++typedef struct PixFmtInfo ++{ ++ const char *name; ++ uint8_t nb_channels; /* number of channels (including alpha) */ ++ uint8_t color_type; /* color type (see FF_COLOR_xxx constants) */ ++ uint8_t pixel_type; /* pixel storage type (see FF_PIXEL_xxx constants) */ ++ uint8_t is_alpha:1; /* true if alpha can be specified */ ++ uint8_t x_chroma_shift; /* X chroma subsampling factor is 2 ^ shift */ ++ uint8_t y_chroma_shift; /* Y chroma subsampling factor is 2 ^ shift */ ++ uint8_t depth; /* bit depth of the color components */ ++} PixFmtInfo; ++ ++ ++/* this table gives more information about formats */ ++static PixFmtInfo pix_fmt_info[PIX_FMT_NB]; ++void ++gst_ffmpeg_init_pix_fmt_info (void) ++{ ++ /* YUV formats */ ++ pix_fmt_info[PIX_FMT_YUV420P].name = g_strdup ("yuv420p"); ++ pix_fmt_info[PIX_FMT_YUV420P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUV420P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUV420P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUV420P].depth = 8, ++ pix_fmt_info[PIX_FMT_YUV420P].x_chroma_shift = 1, ++ pix_fmt_info[PIX_FMT_YUV420P].y_chroma_shift = 1; ++ ++ pix_fmt_info[PIX_FMT_YUV422P].name = g_strdup ("yuv422p"); ++ pix_fmt_info[PIX_FMT_YUV422P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUV422P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUV422P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUV422P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUV422P].x_chroma_shift = 1; ++ pix_fmt_info[PIX_FMT_YUV422P].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_YUV444P].name = g_strdup ("yuv444p"); ++ pix_fmt_info[PIX_FMT_YUV444P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUV444P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUV444P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUV444P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUV444P].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_YUV444P].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_YUYV422].name = g_strdup ("yuv422"); ++ pix_fmt_info[PIX_FMT_YUYV422].nb_channels = 1; ++ pix_fmt_info[PIX_FMT_YUYV422].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUYV422].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_YUYV422].depth = 8; ++ pix_fmt_info[PIX_FMT_YUYV422].x_chroma_shift = 1; ++ pix_fmt_info[PIX_FMT_YUYV422].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_YUV410P].name = g_strdup ("yuv410p"); ++ pix_fmt_info[PIX_FMT_YUV410P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUV410P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUV410P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUV410P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUV410P].x_chroma_shift = 2; ++ pix_fmt_info[PIX_FMT_YUV410P].y_chroma_shift = 2; ++ ++ pix_fmt_info[PIX_FMT_YUV411P].name = g_strdup ("yuv411p"); ++ pix_fmt_info[PIX_FMT_YUV411P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUV411P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUV411P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUV411P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUV411P].x_chroma_shift = 2; ++ pix_fmt_info[PIX_FMT_YUV411P].y_chroma_shift = 0; ++ ++ /* JPEG YUV */ ++ pix_fmt_info[PIX_FMT_YUVJ420P].name = g_strdup ("yuvj420p"); ++ pix_fmt_info[PIX_FMT_YUVJ420P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUVJ420P].color_type = FF_COLOR_YUV_JPEG; ++ pix_fmt_info[PIX_FMT_YUVJ420P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUVJ420P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUVJ420P].x_chroma_shift = 1; ++ pix_fmt_info[PIX_FMT_YUVJ420P].y_chroma_shift = 1; ++ ++ pix_fmt_info[PIX_FMT_YUVJ422P].name = g_strdup ("yuvj422p"); ++ pix_fmt_info[PIX_FMT_YUVJ422P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUVJ422P].color_type = FF_COLOR_YUV_JPEG; ++ pix_fmt_info[PIX_FMT_YUVJ422P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUVJ422P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUVJ422P].x_chroma_shift = 1; ++ pix_fmt_info[PIX_FMT_YUVJ422P].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_YUVJ444P].name = g_strdup ("yuvj444p"); ++ pix_fmt_info[PIX_FMT_YUVJ444P].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_YUVJ444P].color_type = FF_COLOR_YUV_JPEG; ++ pix_fmt_info[PIX_FMT_YUVJ444P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUVJ444P].depth = 8; ++ pix_fmt_info[PIX_FMT_YUVJ444P].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_YUVJ444P].y_chroma_shift = 0; ++ ++ /* RGB formats */ ++ pix_fmt_info[PIX_FMT_RGB24].name = g_strdup ("rgb24"); ++ pix_fmt_info[PIX_FMT_RGB24].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_RGB24].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_RGB24].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_RGB24].depth = 8; ++ pix_fmt_info[PIX_FMT_RGB24].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_RGB24].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_BGR24].name = g_strdup ("bgr24"); ++ pix_fmt_info[PIX_FMT_BGR24].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_BGR24].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_BGR24].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_BGR24].depth = 8; ++ pix_fmt_info[PIX_FMT_BGR24].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_BGR24].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_RGB32].name = g_strdup ("rgba32"); ++ pix_fmt_info[PIX_FMT_RGB32].nb_channels = 4; ++ pix_fmt_info[PIX_FMT_RGB32].is_alpha = 1; ++ pix_fmt_info[PIX_FMT_RGB32].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_RGB32].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_RGB32].depth = 8; ++ pix_fmt_info[PIX_FMT_RGB32].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_RGB32].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_RGB565].name = g_strdup ("rgb565"); ++ pix_fmt_info[PIX_FMT_RGB565].nb_channels = 3; ++ pix_fmt_info[PIX_FMT_RGB565].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_RGB565].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_RGB565].depth = 5; ++ pix_fmt_info[PIX_FMT_RGB565].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_RGB565].y_chroma_shift = 0; ++ ++ pix_fmt_info[PIX_FMT_RGB555].name = g_strdup ("rgb555"); ++ pix_fmt_info[PIX_FMT_RGB555].nb_channels = 4; ++ pix_fmt_info[PIX_FMT_RGB555].is_alpha = 1; ++ pix_fmt_info[PIX_FMT_RGB555].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_RGB555].pixel_type = FF_PIXEL_PACKED; ++ pix_fmt_info[PIX_FMT_RGB555].depth = 5; ++ pix_fmt_info[PIX_FMT_RGB555].x_chroma_shift = 0; ++ pix_fmt_info[PIX_FMT_RGB555].y_chroma_shift = 0; ++ ++ /* gray / mono formats */ ++ pix_fmt_info[PIX_FMT_GRAY8].name = g_strdup ("gray"); ++ pix_fmt_info[PIX_FMT_GRAY8].nb_channels = 1; ++ pix_fmt_info[PIX_FMT_GRAY8].color_type = FF_COLOR_GRAY; ++ pix_fmt_info[PIX_FMT_GRAY8].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_GRAY8].depth = 8; ++ ++ pix_fmt_info[PIX_FMT_MONOWHITE].name = g_strdup ("monow"); ++ pix_fmt_info[PIX_FMT_MONOWHITE].nb_channels = 1; ++ pix_fmt_info[PIX_FMT_MONOWHITE].color_type = FF_COLOR_GRAY; ++ pix_fmt_info[PIX_FMT_MONOWHITE].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_MONOWHITE].depth = 1; ++ ++ pix_fmt_info[PIX_FMT_MONOBLACK].name = g_strdup ("monob"); ++ pix_fmt_info[PIX_FMT_MONOBLACK].nb_channels = 1; ++ pix_fmt_info[PIX_FMT_MONOBLACK].color_type = FF_COLOR_GRAY; ++ pix_fmt_info[PIX_FMT_MONOBLACK].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_MONOBLACK].depth = 1; ++ ++ /* paletted formats */ ++ pix_fmt_info[PIX_FMT_PAL8].name = g_strdup ("pal8"); ++ pix_fmt_info[PIX_FMT_PAL8].nb_channels = 4; ++ pix_fmt_info[PIX_FMT_PAL8].is_alpha = 1; ++ pix_fmt_info[PIX_FMT_PAL8].color_type = FF_COLOR_RGB; ++ pix_fmt_info[PIX_FMT_PAL8].pixel_type = FF_PIXEL_PALETTE; ++ pix_fmt_info[PIX_FMT_PAL8].depth = 8; ++ ++ pix_fmt_info[PIX_FMT_YUVA420P].name = g_strdup ("yuva420p"); ++ pix_fmt_info[PIX_FMT_YUVA420P].nb_channels = 4; ++ pix_fmt_info[PIX_FMT_YUVA420P].is_alpha = 1; ++ pix_fmt_info[PIX_FMT_YUVA420P].color_type = FF_COLOR_YUV; ++ pix_fmt_info[PIX_FMT_YUVA420P].pixel_type = FF_PIXEL_PLANAR; ++ pix_fmt_info[PIX_FMT_YUVA420P].depth = 8, ++ pix_fmt_info[PIX_FMT_YUVA420P].x_chroma_shift = 1, ++ pix_fmt_info[PIX_FMT_YUVA420P].y_chroma_shift = 1; ++}; ++ ++int ++gst_ffmpeg_avpicture_get_size (int pix_fmt, int width, int height) ++{ ++ AVPicture dummy_pict; ++ ++ return gst_ffmpeg_avpicture_fill (&dummy_pict, NULL, pix_fmt, width, height); ++} ++ ++#define GEN_MASK(x) ((1<<(x))-1) ++#define ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) & ~GEN_MASK(x)) ++#define ROUND_UP_2(x) ROUND_UP_X (x, 1) ++#define ROUND_UP_4(x) ROUND_UP_X (x, 2) ++#define ROUND_UP_8(x) ROUND_UP_X (x, 3) ++#define DIV_ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) >> (x)) ++ ++int ++gst_ffmpeg_avpicture_fill (AVPicture * picture, ++ uint8_t * ptr, enum PixelFormat pix_fmt, int width, int height) ++{ ++ int size, w2, h2, size2; ++ int stride, stride2; ++ PixFmtInfo *pinfo; ++ ++ pinfo = &pix_fmt_info[pix_fmt]; ++ ++ switch (pix_fmt) { ++ case PIX_FMT_YUV420P: ++ case PIX_FMT_YUV422P: ++ case PIX_FMT_YUV444P: ++ case PIX_FMT_YUV410P: ++ case PIX_FMT_YUV411P: ++ case PIX_FMT_YUVJ420P: ++ case PIX_FMT_YUVJ422P: ++ case PIX_FMT_YUVJ444P: ++ stride = ROUND_UP_4 (width); ++ h2 = ROUND_UP_X (height, pinfo->y_chroma_shift); ++ size = stride * h2; ++ w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift); ++ stride2 = ROUND_UP_4 (w2); ++ h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift); ++ size2 = stride2 * h2; ++ picture->data[0] = ptr; ++ picture->data[1] = picture->data[0] + size; ++ picture->data[2] = picture->data[1] + size2; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = stride2; ++ picture->linesize[2] = stride2; ++ picture->linesize[3] = 0; ++ GST_DEBUG ("planes %d %d %d", 0, size, size + size2); ++ GST_DEBUG ("strides %d %d %d", stride, stride2, stride2); ++ return size + 2 * size2; ++ case PIX_FMT_YUVA420P: ++ stride = ROUND_UP_4 (width); ++ h2 = ROUND_UP_X (height, pinfo->y_chroma_shift); ++ size = stride * h2; ++ w2 = DIV_ROUND_UP_X (width, pinfo->x_chroma_shift); ++ stride2 = ROUND_UP_4 (w2); ++ h2 = DIV_ROUND_UP_X (height, pinfo->y_chroma_shift); ++ size2 = stride2 * h2; ++ picture->data[0] = ptr; ++ picture->data[1] = picture->data[0] + size; ++ picture->data[2] = picture->data[1] + size2; ++ picture->data[3] = picture->data[2] + size2; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = stride2; ++ picture->linesize[2] = stride2; ++ picture->linesize[3] = stride; ++ GST_DEBUG ("planes %d %d %d %d", 0, size, size + size2, size + 2 * size2); ++ GST_DEBUG ("strides %d %d %d %d", stride, stride2, stride2, stride); ++ return 2 * size + 2 * size2; ++ case PIX_FMT_RGB24: ++ case PIX_FMT_BGR24: ++ stride = ROUND_UP_4 (width * 3); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size; ++ /*case PIX_FMT_AYUV4444: ++ case PIX_FMT_BGR32: ++ case PIX_FMT_BGRA32: ++ case PIX_FMT_RGB32: */ ++ case PIX_FMT_RGB32: ++ stride = width * 4; ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size; ++ case PIX_FMT_RGB555: ++ case PIX_FMT_RGB565: ++ case PIX_FMT_YUYV422: ++ case PIX_FMT_UYVY422: ++ stride = ROUND_UP_4 (width * 2); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size; ++ case PIX_FMT_UYYVYY411: ++ /* FIXME, probably not the right stride */ ++ stride = ROUND_UP_4 (width); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = width + width / 2; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size + size / 2; ++ case PIX_FMT_GRAY8: ++ stride = ROUND_UP_4 (width); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size; ++ case PIX_FMT_MONOWHITE: ++ case PIX_FMT_MONOBLACK: ++ stride = ROUND_UP_4 ((width + 7) >> 3); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 0; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size; ++ case PIX_FMT_PAL8: ++ /* already forced to be with stride, so same result as other function */ ++ stride = ROUND_UP_4 (width); ++ size = stride * height; ++ picture->data[0] = ptr; ++ picture->data[1] = ptr + size; /* palette is stored here as 256 32 bit words */ ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ picture->linesize[0] = stride; ++ picture->linesize[1] = 4; ++ picture->linesize[2] = 0; ++ picture->linesize[3] = 0; ++ return size + 256 * 4; ++ default: ++ picture->data[0] = NULL; ++ picture->data[1] = NULL; ++ picture->data[2] = NULL; ++ picture->data[3] = NULL; ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* Create a GstBuffer of the requested size and caps. ++ * The memory will be allocated by ffmpeg, making sure it's properly aligned ++ * for any processing. */ ++ ++GstBuffer * ++new_aligned_buffer (gint size, GstCaps * caps) ++{ ++ GstBuffer *buf; ++ ++ buf = gst_buffer_new (); ++ GST_BUFFER_DATA (buf) = GST_BUFFER_MALLOCDATA (buf) = av_malloc (size); ++ GST_BUFFER_SIZE (buf) = size; ++ GST_BUFFER_FREE_FUNC (buf) = av_free; ++ if (caps) ++ gst_buffer_set_caps (buf, caps); ++ ++ return buf; ++} ++ ++int ++gst_ffmpeg_auto_max_threads (void) ++{ ++ static gsize n_threads = 0; ++ if (g_once_init_enter (&n_threads)) { ++ int n = 1; ++#if defined(_WIN32) ++ { ++ const char *s = getenv ("NUMBER_OF_PROCESSORS"); ++ if (s) { ++ n = atoi (s); ++ } ++ } ++#elif defined(__APPLE__) ++ { ++ int mib[] = { CTL_HW, HW_NCPU }; ++ size_t dataSize = sizeof (int); ++ ++ if (sysctl (mib, 2, &n_threads, &dataSize, NULL, 0)) { ++ n = 1; ++ } ++ } ++#else ++ n = sysconf (_SC_NPROCESSORS_CONF); ++#endif ++ if (n < 1) ++ n = 1; ++ ++ g_once_init_leave (&n_threads, n); ++ } ++ ++ return (int) (n_threads); ++} +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h 2011-11-02 14:04:05.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h 2014-08-08 15:34:04.007874626 +0200 +@@ -23,6 +23,7 @@ + #ifdef HAVE_FFMPEG_UNINSTALLED + #include + #else ++#include + #include + #endif + #include +@@ -87,7 +88,7 @@ + gst_ffmpeg_get_codecid_longname (enum CodecID codec_id); + + gint +-av_smp_format_depth(enum SampleFormat smp_fmt); ++av_smp_format_depth(enum AVSampleFormat smp_fmt); + + GstBuffer * + new_aligned_buffer (gint size, GstCaps * caps); +diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h.orig gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h.orig +--- gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegutils.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gst-ffmpeg-0.10.13/ext/ffmpeg/gstffmpegutils.h.orig 2014-08-08 15:26:38.473858652 +0200 +@@ -0,0 +1,95 @@ ++/* GStreamer ++ * Copyright (C) <2009> Edward Hervey ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifndef __GST_FFMPEG_UTILS_H__ ++#define __GST_FFMPEG_UTILS_H__ ++ ++#ifdef HAVE_FFMPEG_UNINSTALLED ++#include ++#else ++#include ++#endif ++#include ++ ++/* ++ *Get the size of an picture ++ */ ++int ++gst_ffmpeg_avpicture_get_size (int pix_fmt, int width, int height); ++ ++/* ++ * Fill in pointers in an AVPicture, aligned by 4 (required by X). ++ */ ++ ++int ++gst_ffmpeg_avpicture_fill (AVPicture * picture, ++ uint8_t * ptr, ++ enum PixelFormat pix_fmt, ++ int width, ++ int height); ++ ++/* ++ * Convert from/to a GStreamer <-> FFMpeg timestamp. ++ */ ++static inline guint64 ++gst_ffmpeg_time_ff_to_gst (gint64 pts, AVRational base) ++{ ++ guint64 out; ++ ++ if (pts == AV_NOPTS_VALUE){ ++ out = GST_CLOCK_TIME_NONE; ++ } else { ++ AVRational bq = { 1, GST_SECOND }; ++ out = av_rescale_q (pts, base, bq); ++ } ++ ++ return out; ++} ++ ++static inline gint64 ++gst_ffmpeg_time_gst_to_ff (guint64 time, AVRational base) ++{ ++ gint64 out; ++ ++ if (!GST_CLOCK_TIME_IS_VALID (time) || base.num == 0) { ++ out = AV_NOPTS_VALUE; ++ } else { ++ AVRational bq = { 1, GST_SECOND }; ++ out = av_rescale_q (time, bq, base); ++ } ++ ++ return out; ++} ++ ++void ++gst_ffmpeg_init_pix_fmt_info(void); ++ ++int ++gst_ffmpeg_auto_max_threads(void); ++ ++G_CONST_RETURN gchar * ++gst_ffmpeg_get_codecid_longname (enum CodecID codec_id); ++ ++gint ++av_smp_format_depth(enum AVSampleFormat smp_fmt); ++ ++GstBuffer * ++new_aligned_buffer (gint size, GstCaps * caps); ++ ++#endif /* __GST_FFMPEG_UTILS_H__ */ diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch new file mode 100644 index 000000000..eba498803 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e500mc.patch @@ -0,0 +1,21 @@ +diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure +index 8473069..4f74952 100755 +--- a/gst-libs/ext/libav/configure ++++ b/gst-libs/ext/libav/configure +Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080) + +Upstream-Status: Backport + +Signed-off-by: Yao Zhao + +@@ -2210,6 +2210,10 @@ elif enabled ppc; then + cpuflags="-mcpu=cell" + enable ldbrx + ;; ++ e500mc) ++ cpuflags="-mcpu=e500mc" ++ disable altivec ++ ;; + e500v2) + cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" + disable altivec diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch new file mode 100644 index 000000000..d9ea2c29e --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/libav_e5500.patch @@ -0,0 +1,19 @@ +libav: Add configs for ppc e5500 + +Upstream-Status: Pending + +Signed-off-by: Jesse Zhang + +--- gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:36.073104964 -0400 ++++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:38.269104150 -0400 +@@ -2222,6 +2222,10 @@ + cpuflags="-mcpu=8540 -mhard-float" + disable altivec + ;; ++ e5500) ++ cpuflags="-mcpu=e5500 -mhard-float" ++ disable altivec ++ ;; + esac + + elif enabled x86; then diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff new file mode 100644 index 000000000..5f08afe59 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff @@ -0,0 +1,16 @@ +Lower the rank of ffmpeg plugin so codecs that hook into accelerated pieces (e.g. dsp or hw engines) can get picked over this +Derived from OE by Dongxiao Xu + +Upstream-Status: Inappropriate [embedded specific] + +--- /tmp/gstffmpegdec.c 2009-03-05 09:31:15.000000000 +0100 ++++ gst-ffmpeg-0.10.6/ext/ffmpeg/gstffmpegdec.c 2009-03-05 09:33:09.000000000 +0100 +@@ -2588,7 +2588,7 @@ + case CODEC_ID_MSMPEG4V3: + case CODEC_ID_H264: + case CODEC_ID_COOK: +- rank = GST_RANK_PRIMARY; ++ rank = GST_RANK_SECONDARY; + break; + case CODEC_ID_DVVIDEO: + /* we have a good dv decoder, fast on both ppc as well as x86. they say diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb new file mode 100644 index 000000000..891b10ca4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg_0.10.13.bb @@ -0,0 +1,103 @@ +SUMMARY = "FFmpeg-based GStreamer plug-in" +SECTION = "multimedia" +LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ext/libpostproc/gstpostproc.c;beginline=1;endline=18;md5=5896e445e41681324381f5869ee33d38 \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://ext/ffmpeg/gstffmpeg.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9 \ + file://gst-libs/ext/libav/LICENSE;md5=abc3b8cb02856aa7823bbbd162d16232 \ + file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \ + file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" +LICENSE_FLAGS = "commercial" +HOMEPAGE = "http://www.gstreamer.net/" +DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native libpostproc" + +inherit autotools-brokensep pkgconfig + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://lower-rank.diff \ + file://configure-fix.patch \ + file://h264_qpel_mmx.patch \ + file://libav_e500mc.patch \ + file://libav_e5500.patch \ + file://gst-ffmpeg-CVE-2013-3674.patch \ + file://0001-avformat-mpegtsenc-Check-data-array-size-in-mpegts_w.patch \ + file://0001-vqavideo-check-chunk-sizes-before-reading-chunks.patch \ + file://0001-avcodec-msrle-use-av_image_get_linesize-to-calculate.patch \ + file://0001-huffyuvdec-Skip-len-0-cases.patch \ + file://0001-huffyuvdec-Check-init_vlc-return-codes.patch \ + file://0001-alsdec-check-block-length.patch \ + file://0001-pgssubdec-check-RLE-size-before-copying.-Fix-out-of-.patch \ + file://0001-atrac3dec-Check-coding-mode-against-channels.patch \ + file://0001-eamad-fix-out-of-array-accesses.patch \ + file://0001-mjpegdec-check-SE.patch \ + file://0001-alac-fix-nb_samples-order-case.patch \ + file://0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch \ + file://0001-roqvideodec-check-dimensions-validity.patch \ + file://0001-aacdec-check-channel-count.patch \ + file://0001-pngdec-filter-dont-access-out-of-array-elements-at-t.patch \ + file://0001-error_concealment-Check-that-the-picture-is-not-in-a.patch \ + file://0001-vp3-fix-oob-read-for-negative-tokens-and-memleaks-on.patch \ + file://0001-vp3-Copy-all-3-frames-for-thread-updates.patch \ + file://0001-h264_sei-Fix-infinite-loop.patch \ + file://0001-avcodec-parser-reset-indexes-on-realloc-failure.patch \ + file://0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch \ + file://gst-ffmpeg-CVE-2013-0855.patch \ + file://0001-qdm2dec-fix-buffer-overflow.patch \ + file://0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch \ + file://0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch \ + file://0001-error-concealment-initialize-block-index.patch \ + file://0001-qdm2-check-array-index-before-use-fix-out-of-array-a.patch \ + file://0001-lavf-compute-probe-buffer-size-more-reliably.patch \ + file://0001-ffserver-set-oformat.patch \ + file://0001-h264-set-parameters-from-SPS-whenever-it-changes.patch \ + file://0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch \ + file://0001-avcodec-smc-fix-off-by-1-error.patch \ + file://0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch \ + file://libav-9.patch \ + file://gst-ffmpeg-fix-CVE-2011-4352.patch \ + file://gst-ffmpeg-fix-CVE-2014-7933.patch \ + file://gst-ffmpeg-fix-CVE-2014-8542.patch \ + file://gst-ffmpeg-fix-CVE-2014-8543.patch \ + file://gst-ffmpeg-fix-CVE-2014-8544.patch \ + file://gst-ffmpeg-fix-CVE-2014-8545.patch \ + file://gst-ffmpeg-fix-CVE-2014-8546.patch \ + file://gst-ffmpeg-fix-CVE-2014-8547.patch \ + file://gst-ffmpeg-fix-CVE-2014-9318.patch \ + file://gst-ffmpeg-fix-CVE-2014-9603.patch \ +" + +SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4" +SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62" + +PR = "r8" + +GSTREAMER_DEBUG ?= "--disable-debug" + +FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure" +# pass --cpu for powerpc. get cpu name by stripping "ppc" or "ppc64" +# from DEFAULTTUNE +FFMPEG_CPU_powerpc = "--cpu=${@d.getVar('DEFAULTTUNE', False)[3:]}" +FFMPEG_CPU_powerpc64 = "--cpu=${@d.getVar('DEFAULTTUNE', False)[5:]}" +FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux ${FFMPEG_CPU} \ + --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ + --ranlib='${RANLIB}' \ + ${GSTREAMER_DEBUG}" +FFMPEG_EXTRA_CONFIGURE_COMMON = \ +'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"' + +EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}" + +PACKAGECONFIG ??= "external-libav" +PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" + +FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a" + +# http://errors.yoctoproject.org/Errors/Details/40736/ +PNBLACKLIST[gst-ffmpeg] ?= "Not compatible with currently used ffmpeg 3" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb new file mode 100644 index 000000000..1e2cd2a4a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb @@ -0,0 +1,14 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2" +LICENSE_FLAGS = "commercial" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38" +SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb new file mode 100644 index 000000000..7bba41a34 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb @@ -0,0 +1,12 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer" +LICENSE = "MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \ + file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd" +LICENSE_FLAGS = "commercial" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970" +SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc new file mode 100644 index 000000000..7a77d624f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc @@ -0,0 +1,14 @@ +SUMMARY = "Fluendo closed-format GStreamer plug-in" +SECTION = "multimedia" +HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki" +DEPENDS = "gstreamer gst-plugins-base zlib" + +inherit autotools pkgconfig + +SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2" + +FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" + +EXTRA_OECONF = "--disable-valgrind" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb new file mode 100644 index 000000000..039abe14f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb @@ -0,0 +1,73 @@ +SUMMARY = "GStreamer package groups" +LICENSE = "MIT" + +COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" +DEPENDS_UGLY="${@'gst-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS_BAD="${@'gst-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS = "gstreamer gst-plugins-base gst-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}" + +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +PR = "r13" + +PACKAGES = "\ + gst-meta-base \ + gst-meta-x11-base \ + gst-meta-audio \ + gst-meta-debug \ + gst-meta-video" + +ALLOW_EMPTY_gst-meta-base = "1" +ALLOW_EMPTY_gst-meta-x11-base = "1" +ALLOW_EMPTY_gst-meta-audio = "1" +ALLOW_EMPTY_gst-meta-debug = "1" +ALLOW_EMPTY_gst-meta-video = "1" + +RDEPENDS_gst-meta-base = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \ + gstreamer \ + gst-plugins-base-playbin \ + gst-plugins-base-decodebin \ + gst-plugins-base-decodebin2 \ + gst-plugins-base-gio \ + gst-plugins-base-alsa \ + gst-plugins-base-volume \ + gst-plugins-base-audioconvert \ + gst-plugins-base-audioresample \ + gst-plugins-base-typefindfunctions \ + gst-plugins-base-videoscale \ + gst-plugins-base-ffmpegcolorspace \ + gst-plugins-good-autodetect \ + gst-plugins-good-souphttpsrc" + +RRECOMMENDS_gst-meta-x11-base = "\ + gst-plugins-base-ximagesink \ + gst-plugins-base-xvimagesink" + +RDEPENDS_gst-meta-audio = "\ + gst-meta-base \ + gst-plugins-base-vorbis \ + gst-plugins-base-ogg \ + gst-plugins-good-wavparse \ + gst-plugins-good-flac \ + ${COMMERCIAL_AUDIO_PLUGINS}" + + +RDEPENDS_gst-meta-debug = "\ + gst-meta-base \ + gst-plugins-good-debug \ + gst-plugins-base-audiotestsrc \ + gst-plugins-base-videotestsrc" + + +RDEPENDS_gst-meta-video = "\ + gst-meta-base \ + gst-plugins-good-avi \ + gst-plugins-good-matroska \ + gst-plugins-base-theora \ + ${COMMERCIAL_VIDEO_PLUGINS}" + +RRECOMMENDS_gst-meta-video = "\ + gst-meta-audio" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch new file mode 100644 index 000000000..57a63b5a0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Signed-off-by: Saul Wold + +Index: gst-openmax-0.10.1/omx/gstomx.c +=================================================================== +--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700 ++++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700 +@@ -238,7 +238,8 @@ + const gchar *element_name = gst_structure_nth_field_name (element_table, i); + GstStructure *element = get_element_entry (element_name); + const gchar *type_name, *parent_type_name; +- const gchar *component_name, *component_role, *library_name; ++ const gchar *component_name, *library_name; ++ const gchar __attribute__((__unused__)) *component_role; + GType type; + gint rank; + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch new file mode 100644 index 000000000..5965bbafb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch @@ -0,0 +1,46 @@ +Rename static functions that use GLib naming conventions as one of them +(g_ptr_array_insert) has now been added to GLib. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c +index 423e441..579dbf5 100644 +--- a/omx/gstomx_util.c ++++ b/omx/gstomx_util.c +@@ -85,7 +85,7 @@ static gboolean initialized; + */ + + static void +-g_ptr_array_clear (GPtrArray * array) ++omx_g_ptr_array_clear (GPtrArray * array) + { + guint index; + for (index = 0; index < array->len; index++) +@@ -93,7 +93,7 @@ g_ptr_array_clear (GPtrArray * array) + } + + static void +-g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) ++omx_g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) + { + if (index + 1 > array->len) { + g_ptr_array_set_size (array, index + 1); +@@ -394,7 +394,7 @@ g_omx_core_unload (GOmxCore * core) + } + + core_for_each_port (core, g_omx_port_free); +- g_ptr_array_clear (core->ports); ++ omx_g_ptr_array_clear (core->ports); + } + + static inline GOmxPort * +@@ -418,7 +418,7 @@ g_omx_core_new_port (GOmxCore * core, guint index) + } + + port = g_omx_port_new (core, index); +- g_ptr_array_insert (core->ports, index, port); ++ omx_g_ptr_array_insert (core->ports, index, port); + + return port; + } diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb new file mode 100644 index 000000000..2e0157956 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components" +DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \ +communication with OpenMAX Integration Layer (IL) components. OpenMAX \ +IL is an industry standard that provides an abstraction layer for \ +computer graphics, video, and sound routines." +HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX" +DEPENDS = "gstreamer" +RDEPENDS_${PN} = "libomxil" +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \ + file://gcc_4.6.patch \ + file://ptr-array.patch \ + " + +inherit autotools pkgconfig + +# Tell configure that this isn't a development snapshot so we don't want +# -Werror (hopefully fixed in 0.10.2) +export GST_CVS="no" + +EXTRA_OECONF += "--disable-valgrind" + +PR = "r4" + +FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/" + +SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e" +SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch new file mode 100644 index 000000000..235acda8b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch @@ -0,0 +1,36 @@ +Description: Fix buffer overflow in mp4 parsing +Author: Ralph Giles +--- +Backport patch from debian to fix CVE-2015-0797. +https://sources.debian.net/data/main/g/gst-plugins-bad0.10/0.10.23-7.1+deb7u2/debian/patches/buffer-overflow-mp4.patch + +Upstream-Status: Backport + +Signed-off-by: Kai Kang +--- +--- gst-plugins-bad0.10-0.10.23.orig/gst/videoparsers/gsth264parse.c ++++ gst-plugins-bad0.10-0.10.23/gst/videoparsers/gsth264parse.c +@@ -384,6 +384,11 @@ gst_h264_parse_wrap_nal (GstH264Parse * + + GST_DEBUG_OBJECT (h264parse, "nal length %d", size); + ++ if (size > G_MAXUINT32 - nl) { ++ GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), ++ ("overflow in nal size")); ++ return NULL; ++ } + buf = gst_buffer_new_and_alloc (size + nl + 4); + if (format == GST_H264_PARSE_FORMAT_AVC) { + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl)); +@@ -452,6 +457,11 @@ gst_h264_parse_process_nal (GstH264Parse + GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size); + return; + } ++ if (G_UNLIKELY (nalu->size > 20 * 1024 * 1024)) { ++ GST_DEBUG_OBJECT (h264parse, "not processing nal size %u (too big)", ++ nalu->size); ++ return; ++ } + + /* we have a peek as well */ + nal_type = nalu->type; diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb new file mode 100644 index 000000000..8aad0b78f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb @@ -0,0 +1,60 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" + +DEPENDS += "gst-plugins-base" + +PR = "r4" + +SRC_URI += "file://buffer-overflow-mp4.patch" + +inherit gettext gsettings + +EXTRA_OECONF += "--disable-experimental \ + --disable-sdl --disable-cdaudio --disable-directfb \ + --disable-vdpau --disable-apexsink" + +PACKAGECONFIG ??= "bzip curl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}" + +PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg," +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx" +PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[schro] = "--enable-schro,--disable-schro,schroedinger" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" + +ARM_INSTRUCTION_SET = "arm" + +PACKAGES =+ "${PN}-resindvd" +FILES_${PN}-resindvd = "${libdir}/gstreamer-${LIBV}/libresindvd.so" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/libresindvd.la" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987" +SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch new file mode 100644 index 000000000..52142562a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch @@ -0,0 +1,37 @@ +audioresample: Fix build on x86 if emmintrin.h is available but can't be used + +On x86, EMMINTRIN is defined but not usable without SSE so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +Upstream-Status: Backport + +Signed-off-by: Jackie Huang +--- + gst/audioresample/resample.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch new file mode 100644 index 000000000..b8602c80d --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch @@ -0,0 +1,27 @@ +Upstream-Status: Submitted [similar patch by other author, bugzilla] +Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600 + +Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't +search for gstconfig.h in /usr/include. + +Signed-off-by: Andreas Oberritter +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1901bcf..460fb0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume) + dnl check for gstreamer core features (subsystems) + dnl FIXME: this assumes srcdir == builddir for uninstalled setups + GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH) ++AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH) + AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1") + + dnl disable plug-ins that require libxml2's HTML support if it is not available +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch new file mode 100644 index 000000000..99dbc9d52 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch @@ -0,0 +1,20 @@ +Remove -DTREMOR option since Tremor has dropped its internal +libogg2, and gst-plugins-base has dependency on that. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu +Signed-off-by: Shane Wang + +diff -r 70065fb4e085 ext/vorbis/Makefile.am +--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800 ++++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800 +@@ -30,7 +30,7 @@ + gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c + libgstivorbisdec_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ +- -DTREMOR $(IVORBIS_CFLAGS) ++ $(IVORBIS_CFLAGS) + libgstivorbisdec_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \ diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb new file mode 100644 index 000000000..c86834f3b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb @@ -0,0 +1,43 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0" + +DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native" + +SRC_URI += "file://gst-plugins-base-tremor.patch \ + file://configure.ac-fix-subparse-plugin.patch \ + file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \ +" + +SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a" +SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976" + +PR = "r8" + +inherit gettext + +EXTRA_OECONF += "--disable-freetypetest" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" + +PACKAGECONFIG[gnomevfs] = "--enable-gnome_vfs,--disable-gnome_vfs,gnome-vfs" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm -f ${S}/m4/lib-link.m4 +} + +FILES_${PN} += "${datadir}/${BPN}" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +# /usr/bin/gst-visualise-0.10 is a perl script. +RDEPENDS_${PN}-apps += "perl" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch new file mode 100644 index 000000000..bc2f88b24 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch @@ -0,0 +1,35 @@ +From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001 +From: Jeremy Stashluk +Date: Wed, 6 Feb 2013 09:59:48 -0500 +Subject: [PATCH] conditional gl framebuffer undefined use + +The OpenGL extension GL_ARB_framebuffer_object defines the macro +GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error +string if the extension provides functions that might return the macro. + +Upstream-Status: Pending + +Signed-off-by: Jeremy Stashluk +--- + gst-libs/gst/gl/gstgldisplay.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c +index 3ed0b71..64c6c2c 100644 +--- a/gst-libs/gst/gl/gstgldisplay.c ++++ b/gst-libs/gst/gl/gstgldisplay.c +@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void) + GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); + break; + ++#if defined(GL_ARB_framebuffer_object) + case GL_FRAMEBUFFER_UNDEFINED: + GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED"); + break; ++#endif + + default: + GST_ERROR ("General FBO error"); +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb new file mode 100644 index 000000000..6859f338e --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb @@ -0,0 +1,25 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938" +SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210" + +SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch" + +DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew" + +PR = "r4" + +inherit gettext + +# This package doesn't have a configure switch for EGL or GL, so forcibly tell +# configure that it can't find gl.h so it always uses EGL. If/when we have some +# way for machines to specify their preferred GL flavour this can be +# automatically adapted. +EXTRA_OECONF += "ac_cv_header_GL_gl_h=no" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-apps = "1" +ALLOW_EMPTY_${PN}-glib = "1" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch new file mode 100644 index 000000000..6456d3c6c --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch @@ -0,0 +1,33 @@ +From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Sep 2012 18:54:42 +0200 +Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input + field was removed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012 + +Signed-off-by: Andreas Müller +--- + sys/v4l2/gstv4l2bufferpool.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c +index b81c6a4..51cc0ce 100644 +--- a/sys/v4l2/gstv4l2bufferpool.c ++++ b/sys/v4l2/gstv4l2bufferpool.c +@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps) + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch new file mode 100644 index 000000000..bd0de583a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch @@ -0,0 +1,45 @@ +From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 22 Aug 2013 12:15:54 -0400 +Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER + +kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls] +removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three +years of depreciation. + +The ioctl values are still free, and the case statement which processess them +in v4l2 userspace falls through to the proper replacement. So in the short +term, we can explicitly define them using the old absolute values, and everything +will work. + +Signed-off-by: Bruce Ashfield +--- + sys/v4l2/v4l2_calls.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 309bfb6..3c64544 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -54,11 +54,16 @@ + #include "gst/gst-i18n-plugin.h" + + /* Those are ioctl calls */ ++ ++/* V4L2_CID_HCENTER has been removed from the mainline kernel, but ++ the ioctl space is still present. Since these values fall through ++ to their replacement, it is safe (in the short term) to re-use the ++ old values explictily */ + #ifndef V4L2_CID_HCENTER +-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED ++#define V4L2_CID_HCENTER V4L2_CID_BASE+22 + #endif + #ifndef V4L2_CID_VCENTER +-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED ++#define V4L2_CID_VCENTER V4L2_CID_BASE+23 + #endif + + GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch new file mode 100644 index 000000000..48b8e98b8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch @@ -0,0 +1,47 @@ +From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001 +From: Roland Krikava +Date: Fri, 2 Nov 2012 12:38:44 -0400 +Subject: [PATCH 407/440] mulawdec: fix integer overrun + +There might be more than 65535 samples in a chunk of data. + +https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Roland Krikava +--- + gst/law/mulaw-conversion.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c +index 8afae80..190a9f5 100644 +--- a/gst/law/mulaw-conversion.c ++++ b/gst/law/mulaw-conversion.c +@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples) + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; +- gint16 sign, exponent, mantissa, i; ++ gint16 sign, exponent, mantissa; + gint16 sample; + guint8 ulawbyte; ++ gint i; + + for (i = 0; i < numsamples; i++) { + sample = in[i]; +@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples) + static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 }; + gint16 sign, exponent, mantissa; + guint8 ulawbyte; +- gint16 linear, i; ++ gint16 linear; ++ gint i; + + for (i = 0; i < numsamples; i++) { + ulawbyte = in[i]; +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb new file mode 100644 index 000000000..d92289502 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb @@ -0,0 +1,48 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +PR = "r8" + +PACKAGECONFIG ?= "jpeg v4l \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ +" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" + +DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \ + speex libsoup-2.4 libcap" + +inherit gettext gconf + +SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \ + file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \ + file://0407-mulawdec-fix-integer-overrun.patch \ +" +EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \ + --disable-examples --disable-taglib" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" +SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" + +FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch new file mode 100644 index 000000000..1f72fc036 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch @@ -0,0 +1,193 @@ +From 649bd92cd2600719862ad5189899212409dd0a67 Mon Sep 17 00:00:00 2001 +From: Leon Merten Lohse +Date: Thu, 3 May 2012 23:50:30 +0100 +Subject: [PATCH] cdio: compensate for libcdio's recent cd-text api changes + +https://bugzilla.gnome.org/show_bug.cgi?id=675112 + +Conflicts: + + ext/cdio/gstcdiocddasrc.c + +Signed-off-by: Andreas Müller + +Upstream-Status: Backport +--- + ext/cdio/gstcdio.c | 35 ++++++++++++++++++++++++++++------- + ext/cdio/gstcdio.h | 16 ++++++++++++++++ + ext/cdio/gstcdiocddasrc.c | 19 +++++++++++++++++++ + 3 files changed, 63 insertions(+), 7 deletions(-) + +diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c +index 2f58d18..483ebf5 100644 +--- a/ext/cdio/gstcdio.c ++++ b/ext/cdio/gstcdio.c +@@ -30,12 +30,16 @@ + GST_DEBUG_CATEGORY (gst_cdio_debug); + + void +-gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, ++gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track, + cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) + { + const gchar *txt; + ++#if LIBCDIO_VERSION_NUM > 83 ++ txt = cdtext_get_const (cdtext, field, track); ++#else + txt = cdtext_get_const (field, cdtext); ++#endif + if (txt == NULL || *txt == '\0') { + GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag); + return; +@@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, + } + + GstTagList * ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track) ++{ ++ GstTagList *tags = NULL; ++ ++#else + gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + { + GstTagList *tags = NULL; +@@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track); + return NULL; + } ++#endif + +- gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE, ++ &tags); + + return tags; + } + + void ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t, ++ GstTagList * tags) ++{ ++#else + gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + { + cdtext_t *t; +@@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + GST_DEBUG_OBJECT (src, "no CD-TEXT for album"); + return; + } ++#endif + +- /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); +- ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ALBUM_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM, ++ &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE, ++ &tags); + GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); + } + +diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h +index ef31ed0..c6da580 100644 +--- a/ext/cdio/gstcdio.h ++++ b/ext/cdio/gstcdio.h +@@ -24,22 +24,38 @@ + #include + #include + #include ++#include ++ ++#if LIBCDIO_VERSION_NUM <= 83 ++ #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER ++ #define CDTEXT_FIELD_GENRE CDTEXT_GENRE ++ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE ++#endif + + GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); + #define GST_CAT_DEFAULT gst_cdio_debug + + void gst_cdio_add_cdtext_field (GstObject * src, + cdtext_t * cdtext, ++ track_t track, + cdtext_field_t field, + const gchar * gst_tag, + GstTagList ** p_tags); + + GstTagList * gst_cdio_get_cdtext (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + track_t track); + + void gst_cdio_add_cdtext_album_tags (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + GstTagList * tags); + + #endif /* __GST_CDIO_H__ */ +diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c +index 615a0c8..830839e 100644 +--- a/ext/cdio/gstcdiocddasrc.c ++++ b/ext/cdio/gstcdiocddasrc.c +@@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + GstCdioCddaSrc *src; + discmode_t discmode; + gint first_track, num_tracks, i; ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t *cdtext; ++#endif + + src = GST_CDIO_CDDA_SRC (audiocdsrc); + +@@ -244,8 +244,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) + if (src->read_speed != -1) + cdio_set_speed (src->cdio, src->read_speed); + ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext = cdio_get_cdtext (src->cdio); ++ ++ if (NULL == cdtext) ++ GST_DEBUG_OBJECT (src, "no CD-TEXT on disc"); ++ else ++ gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext, ++ cddabasesrc->tags); ++#else + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, + cddabasesrc->tags); ++#endif + + GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); + +@@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + * the right thing here (for cddb id calculations etc. as well) */ + track.start = cdio_get_track_lsn (src->cdio, i + first_track); + track.end = track.start + len_sectors - 1; /* -1? */ ++#if LIBCDIO_VERSION_NUM > 83 ++ if (NULL != cdtext) ++ track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext, ++ i + first_track); ++#else + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio, + i + first_track); ++#endif + + gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track); + } +-- +2.1.0 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch new file mode 100644 index 000000000..3fd6a2697 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch @@ -0,0 +1,58 @@ +From e634bc6420826f760f6519a9f134c6a4d3412ef8 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Mon, 19 Oct 2015 15:26:24 +0200 +Subject: [PATCH] Fix opencore include paths + +Upstream-Status: Inappropriate [no upstream - GStreamer 0.10 is no longer being maintained] + +Signed-off-by: Carlos Rafael Giani +--- + ext/amrnb/amrnbdec.h | 2 +- + ext/amrnb/amrnbenc.h | 2 +- + ext/amrwbdec/amrwbdec.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ext/amrnb/amrnbdec.h b/ext/amrnb/amrnbdec.h +index 1e81839..01b7154 100644 +--- a/ext/amrnb/amrnbdec.h ++++ b/ext/amrnb/amrnbdec.h +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + + G_BEGIN_DECLS + +diff --git a/ext/amrnb/amrnbenc.h b/ext/amrnb/amrnbenc.h +index 7f673ac..5be39b5 100644 +--- a/ext/amrnb/amrnbenc.h ++++ b/ext/amrnb/amrnbenc.h +@@ -21,7 +21,7 @@ + #define __GST_AMRNBENC_H__ + + #include +-#include ++#include + #include + + G_BEGIN_DECLS +diff --git a/ext/amrwbdec/amrwbdec.h b/ext/amrwbdec/amrwbdec.h +index c3528fc..f27c6d2 100644 +--- a/ext/amrwbdec/amrwbdec.h ++++ b/ext/amrwbdec/amrwbdec.h +@@ -22,8 +22,8 @@ + + #include + #include +-#include +-#include ++#include ++#include + + G_BEGIN_DECLS + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb new file mode 100644 index 000000000..a8cb85275 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb @@ -0,0 +1,35 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \ + file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9" + +DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame" +PR = "r3" + +inherit gettext + +EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \ + --disable-orc" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" +PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2" +SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0" +SRC_URI += "file://0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch \ + file://0002-Fix-opencore-include-paths.patch" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-0.10/presets/GstAmrnbEnc.prs" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc new file mode 100644 index 000000000..68a70b136 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc @@ -0,0 +1,29 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +DEPENDS = "gstreamer" + +# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST +inherit autotools pkgconfig gobject-introspection + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "0.10" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PACKAGES_DYNAMIC += "^${PN}-.*" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + if [ -e ${S}/po/Makefile.in.in ]; then + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in + fi +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch new file mode 100644 index 000000000..3afca4ec9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch @@ -0,0 +1,34 @@ +index gst-rtsp_0.10.8/bindings/python/Makefile.am +--- gst-rtsp_0.10.8.orig/bindings/python/Makefile.am ++++ gst-rtsp_0.10.8/bindings/python/Makefile.am +@@ -14,7 +14,7 @@ defs_DATA = $(DEFS) + defsdir = $(pkgdatadir)/$(GST_MAJORMINOR)/defs + OVERRIDES = rtspserver.override + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) + + rtspserver_la_CFLAGS = -I$(top_srcdir)/src \ + $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +index gst-rtsp_0.10.8/examples/Makefile.am +--- gst-rtsp_0.10.8.orig/examples/Makefile.am ++++ gst-rtsp_0.10.8/examples/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-video test-ogg test-mp4 test-readme test-launch test-sdp test-uri test-auth + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ +index gst-rtsp_0.10.8/tests/Makefile.am +--- gst-rtsp_0.10.8.orig/tests/Makefile.am ++++ gst-rtsp_0.10.8/tests/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-cleanup + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb new file mode 100644 index 000000000..b78bcaf5a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb @@ -0,0 +1,18 @@ +SUMMARY = "GStreamer RTSP server" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch" +SRC_URI[md5sum] = "b511af07000595f63c3a705946221643" +SRC_URI[sha256sum] = "9915887cf8515bda87462c69738646afb715b597613edc7340477ccab63a6617" + +DEPENDS = "gst-plugins-base gstreamer" + +EXTRA_OECONF = "--disable-introspection" + +# Configure always checks for Python so inherit pythonnative. Better solution +# would be to disable the checks entirely. +inherit autotools pythonnative gettext + +FILES_${PN}-dev += "${datadir}/vala/vapi/" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch new file mode 100644 index 000000000..d07749682 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch @@ -0,0 +1,32 @@ +From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001 +From: Sebastian Droege +Date: Tue, 6 Mar 2012 12:28:02 +0100 +Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true' + +This was really a bug. + +Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Sebastian Droege +--- + libs/gst/base/gstbaseparse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c +index 851ec1d..108ee89 100644 +--- a/libs/gst/base/gstbaseparse.c ++++ b/libs/gst/base/gstbaseparse.c +@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) + seek event (in bytes) to upstream. Segment / flush handling happens + in corresponding src event handlers */ + GST_DEBUG_OBJECT (parse, "seek in PUSH mode"); +- if (seekstop >= 0 && seekpos <= seekpos) ++ if (seekstop >= 0 && seekstop <= seekpos) + seekstop = seekpos; + new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop); +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch new file mode 100644 index 000000000..dc2d60612 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch @@ -0,0 +1,35 @@ +From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001 +From: Kerrick Staley +Date: Tue, 20 Aug 2013 23:59:29 -0700 +Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3 + +YYLEX_PARAM is no longer supported in Bison 3. + +https://bugzilla.gnome.org/show_bug.cgi?id=706462 +--- + gst/parse/grammar.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y +index 24fc87b..7f9dd16 100644 +--- a/gst/parse/grammar.y ++++ b/gst/parse/grammar.y +@@ -26,7 +26,6 @@ + */ + + #define YYERROR_VERBOSE 1 +-#define YYLEX_PARAM scanner + + #define YYENABLE_NLS 0 + +@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s); + %right '.' + %left '!' '=' + ++%lex-param { void *scanner } + %parse-param { void *scanner } + %parse-param { graph_t *graph } + %pure-parser +-- +2.7.2 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch new file mode 100644 index 000000000..5d8bb1340 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch @@ -0,0 +1,19 @@ +# gstreamer: Fix a problem with configure if check has already been built +# Richard Purdie + +Upstream-Status: Inappropriate [configuration] + +diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac +--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 ++++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 +@@ -543,8 +543,10 @@ + *) BUILD_CHECK=yes ;; + esac + ]) ++ + dnl bit of a misnomer, but keep the conditional named like this so we don't + dnl have to change too much elsewhere ++HAVE_CHECK=no + AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") + + dnl configure the desired buffer alignment diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch new file mode 100644 index 000000000..30be85f59 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch @@ -0,0 +1,16 @@ +# Fix crash with gst-inspect +# Chris Lord + +Upstream-Status: Pending + +--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 ++++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 +@@ -1123,7 +1123,7 @@ + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_print ("Error initializing: %s\n", err->message); ++ g_print ("Error initializing: %s\n", err ? err->message : "(null)"); + exit (1); + } + g_option_context_free (ctx); diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c new file mode 100644 index 000000000..c1f3e71af --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c @@ -0,0 +1,487 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2005 David A. Schleef + * + * gstregistryxml.c: GstRegistry object, support routines + * + * This library is free software; you can redistribute it and/or + * modify it ulnder the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include + +/* +** Simple handy function to write a memory location to the registry cache file +*/ +inline static gboolean +gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size) +{ + if (write(registry->cache_file, mem, size) != size) + { + GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n", + mem, size, strerror(errno)); + return FALSE; + } + return TRUE; +} + +/* +** Save features GstBinary style +*/ +static gboolean +gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name) +{ + GstBinaryChunck *chk; + + if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = dest; + chk->size = sizeof (GstBinaryPluginFeature); + + *list = g_list_append(*list, chk); + + dest->rank = orig->rank; + if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) || + !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + + if (GST_IS_ELEMENT_FACTORY(orig)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(orig); + + if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) || + !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) || + !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) || + !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + } + + dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0; + return TRUE; + + fail: + free(chk); + return FALSE; +} + + +/* +** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version +*/ +inline static gboolean +gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m) +{ + if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) || + !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Failed to write magic to the registry magic structure"); + return FALSE; + } + return TRUE; +} + +/* +** Check GstBinaryRegistryMagic validity. +** Return a pointer pointing right after the magic structure +*/ +static gchar * +gst_registry_binary_check_magic(gchar *in) +{ + GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in; + + if (m == NULL || m->magic == NULL || m->version == NULL) + { + GST_ERROR("Binary registry magic structure is broken"); + return NULL; + } + if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0) + { + GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x", + GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff, + GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff, + m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff); + return NULL; + } + if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Binary registry magic version is different : %s != %s", + GST_MAJORMINOR, m->version); + return NULL; + } + return (in + sizeof (GstBinaryRegistryMagic)); +} + +/* +** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the +** registry file. +*/ +static gboolean +gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin) +{ + GstBinaryPluginElement *e; + GstBinaryChunck *chk; + GList *walk; + + if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL || + (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = e; + chk->size = sizeof (GstBinaryPluginElement); + *list = g_list_append(*list, chk); + + if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) || + !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) || + !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) || + !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) || + !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) || + !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) || + !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) || + !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN)) + { + GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement"); + goto fail; + } + + e->size = plugin->file_size; + e->m32p = plugin->file_mtime; + + GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name); + + for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++) + { + GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data); + GstBinaryPluginFeature *newfeat; + const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat)); + + if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL) + goto fail; + + if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name)) + { + GST_ERROR("Can't fill plugin feature, aborting."); + goto fail; + } + } + + GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name); + return TRUE; + + fail: + free(chk); + free(e); + return FALSE; +} + +/* +** Write the cache to file. Part of the code was taken from gstregistryxml.c +*/ +gboolean +gst_registry_binary_write_cache(GstRegistry *registry, const char *location) +{ + GList *walk; + char *tmp_location; + GstBinaryRegistryMagic *magic; + GstBinaryChunck *magic_chunck; + GList *to_write = NULL; + + GST_INFO("Writing binary registry cache"); + + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL); + registry->cache_file = g_mkstemp (tmp_location); + if (registry->cache_file == -1) + { + char *dir; + + /* oops, I bet the directory doesn't exist */ + dir = g_path_get_dirname (location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + + registry->cache_file = g_mkstemp (tmp_location); + } + + if (registry->cache_file == -1) + goto fail; + + if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL || + !gst_registry_binary_initialize_magic(magic)) + goto fail; + + if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL) + goto fail; + + magic_chunck->data = magic; + magic_chunck->size = sizeof (GstBinaryRegistryMagic); + to_write = g_list_append(to_write, magic_chunck); + + /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */ + for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk)) + { + GstPlugin *plugin = GST_PLUGIN(walk->data); + + if (!plugin->filename) + continue; + + if (plugin->flags & GST_PLUGIN_FLAG_CACHED) + { + int ret; + struct stat statbuf; + + ret = g_stat (plugin->filename, &statbuf); + if ((ret = g_stat (plugin->filename, &statbuf)) < 0 || + plugin->file_mtime != statbuf.st_mtime || + plugin->file_size != statbuf.st_size) + continue; + } + + if (!gst_registry_binary_save_plugin(&to_write, registry, plugin)) + { + GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename); + continue; /* Try anyway */ + } + } + + for (walk = g_list_first(to_write); walk; walk = g_list_next(walk)) + { + GstBinaryChunck *cur = walk->data; + + if (!gst_registry_binary_write(registry, cur->data, cur->size)) + { + free(cur->data); + free(cur); + g_list_free(to_write); + goto fail; + } + free(cur->data); + free(cur); + } + g_list_free(to_write); + + if (close(registry->cache_file) < 0) + { + GST_DEBUG("Can't close registry file : %s", strerror(errno)); + goto fail; + } + + if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) { +#ifdef WIN32 + remove (location); +#endif + rename (tmp_location, location); + } + + g_free (tmp_location); + return TRUE; + + fail: + g_free(tmp_location); + return FALSE; +} + +static GstPluginFeature* +gst_registry_binary_load_feature(GstBinaryPluginFeature *in) +{ + GstPluginFeature *feature; + GType type; + + if (!in->typename || !*(in->typename)) + return NULL; + + /* GST_INFO("Plugin feature typename : %s", in->typename);*/ + + if (!(type = g_type_from_name(in->typename))) + { + GST_ERROR("Unknown type from typename"); + return NULL; + } + feature = g_object_new (type, NULL); + + if (!feature) { + GST_ERROR("Can't create feature from type"); + return NULL; + } + + if (!GST_IS_PLUGIN_FEATURE (feature)) { + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); + return NULL; + } + + feature->name = g_strdup(in->name); + feature->rank = in->rank; + + if (GST_IS_ELEMENT_FACTORY(feature)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(feature); + + factory->details.longname = g_strdup(in->longname); + factory->details.klass = g_strdup(in->class); + factory->details.description = g_strdup(in->description); + factory->details.author = g_strdup(in->author); + + /* GST_INFO("Element factory : %s", factory->details.longname); */ + } + + GST_DEBUG("Added feature %p with name %s", feature, feature->name); + return feature; +} + +/* +** Make a new plugin from current GstBinaryPluginElement structure +** and save it to the GstRegistry. Return an offset to the next +** GstBinaryPluginElement structure. +*/ +static unsigned long +gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in) +{ + GstBinaryPluginElement *p = (GstBinaryPluginElement *) in; + GstPlugin *plugin = NULL; + GList *plugin_features = NULL; + GstBinaryPluginFeature *feat; + unsigned int i; + unsigned long offset; + + plugin = g_object_new (GST_TYPE_PLUGIN, NULL); + + plugin->flags |= GST_PLUGIN_FLAG_CACHED; + + plugin->desc.name = g_strdup(p->name); + plugin->desc.description= g_strdup(p->description); + plugin->filename = g_strdup(p->filename); + plugin->desc.version = g_strdup(p->version); + plugin->desc.license = g_strdup(p->license); + plugin->desc.source = g_strdup(p->source); + plugin->desc.package = g_strdup(p->package); + plugin->desc.origin = g_strdup(p->origin); + plugin->file_mtime = p->m32p; + plugin->file_size = p->size; + plugin->basename = g_path_get_basename (plugin->filename); + + if (plugin->file_mtime < 0 || plugin->file_size < 0) + { + GST_ERROR("Plugin time or file size is not valid !"); + g_free(plugin); + return -1; + } + + if (p->nfeatures < 0) + { + GST_ERROR("The number of feature structure is not valid !"); + gst_object_unref(plugin); + return -1; + } + + for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0; + i < p->nfeatures; i++, feat++) + { + GstPluginFeature *gstfeat; + + if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL) + { + g_list_free(plugin_features); + g_free(plugin); + GST_ERROR("Error while loading binary feature"); + return -1; + } + gstfeat->plugin_name = g_strdup(plugin->desc.name); + plugin_features = g_list_prepend(plugin_features, gstfeat); + } + + GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name); + GList *g; + + gst_registry_add_plugin (registry, plugin); + for (g = plugin_features; g; g = g_list_next (g)) + gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data)); + /* g_list_free(plugin_features); */ + + offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature); + return offset; +} + + +/* +** Read the cache and adapt it to fill GstRegistry +*/ +gboolean +gst_registry_binary_read_cache(GstRegistry *registry, const char *location) +{ + GMappedFile *mapped = NULL; + GTimer *timer = NULL; + gchar *contents = NULL; + gdouble seconds; + unsigned long offset, inc; + gsize size; + + /* make sure these types exist */ + GST_TYPE_ELEMENT_FACTORY; + GST_TYPE_TYPE_FIND_FACTORY; + GST_TYPE_INDEX_FACTORY; + + timer = g_timer_new (); + + if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL || + (contents = g_mapped_file_get_contents(mapped)) == NULL) + { + GST_ERROR("Can't load file : %s", strerror(errno)); + return FALSE; + } + if ((contents = gst_registry_binary_check_magic(contents)) == NULL) + { + GST_ERROR("Binary registry type not recognized (invalid magic)"); + g_mapped_file_free(mapped); + return FALSE; + } + + if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement)) + { + GST_INFO("No binary plugins structure to read"); + return TRUE; /* This is not really an error */ + } + + for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size && + (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0; + offset += inc) + ; /* May want in the future to do something here */ + if (inc < 0) + { + GST_DEBUG("Problem while reading binary registry"); + return FALSE; + } + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_timer_destroy (timer); + + GST_INFO ("loaded %s in %f seconds", location, seconds); + + if (mapped) + g_mapped_file_free (mapped); + return TRUE; +} diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h new file mode 100644 index 000000000..2ef24d765 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h @@ -0,0 +1,194 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * + * gstregistry.h: Header for registry handling + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* SUGGESTIONS AND TODO : +** ==================== +** - Use a compressed registry, but would induce performance loss +** - Encrypt the registry, for security purpose, but would also reduce performances +** - Also have a non-mmap based cache reading (work with file descriptors) +*/ + +#ifndef __GST_REGISTRYBINARY_H__ +#define __GST_REGISTRYBINARY_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glib-compat-private.h" +#include + +/* A magic, written at the beginning of the file */ +#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d" +#define GST_MAGIC_BINARY_REGISTRY_LEN (4) +#define GST_MAGIC_BINARY_VERSION_LEN (64) + +typedef struct _GstBinaryRegistryMagic +{ + char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + char version[GST_MAGIC_BINARY_VERSION_LEN]; +} GstBinaryRegistryMagic; + + +/* Used to store pointers to write */ +typedef struct _GstBinaryChunck +{ + void *data; + unsigned int size; +} GstBinaryChunck; + + +/* A structure containing (staticely) every information needed for a plugin +** +** Notes : +** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have +** right after the structure itself. +*/ + +/* Various lenght defines for our GstBinaryPluginElement structure +** Note : We could eventually use smaller size +*/ +#define GST_BINARY_REGISTRY_NAME_LEN (256) +#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_VERSION_LEN (64) +#define GST_BINARY_REGISTRY_LICENSE_LEN (256) +#define GST_BINARY_REGISTRY_SOURCE_LEN (256) +#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024) +#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024) + +typedef struct _GstBinaryPluginElement +{ + char name[GST_BINARY_REGISTRY_NAME_LEN]; + char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN]; + char filename[_POSIX_PATH_MAX]; + char version[GST_BINARY_REGISTRY_VERSION_LEN]; + char license[GST_BINARY_REGISTRY_LICENSE_LEN]; + char source[GST_BINARY_REGISTRY_SOURCE_LEN]; + char package[GST_BINARY_REGISTRY_PACKAGE_LEN]; + char origin[GST_BINARY_REGISTRY_ORIGIN_LEN]; + unsigned long size; + unsigned long m32p; + unsigned int nfeatures; +} GstBinaryPluginElement; + + +/* A structure containing the plugin features +** +** Note : +** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. +** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. +** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. +*/ +#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512) +#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256) + +typedef struct _GstBinaryPluginFeature +{ + char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN]; + char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN]; + unsigned long rank; + char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN]; + char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN]; + char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN]; + char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN]; + unsigned int npadtemplates; + unsigned int ninterfaces; + unsigned int nuritypes; +} GstBinaryPluginFeature; + + +/* +** A structure containing the static pad templates of a plugin feature +*/ +#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256) +#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024) + +typedef struct _GstBinaryPadTemplate +{ + char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN]; + char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN]; + int direction; /* Either 0:"sink" or 1:"src" */ + GstPadPresence presence; +} GstBinaryPadTemplate; + +/* +** A very simple structure defining the plugin feature interface string +*/ +#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) +typedef struct _GstBinaryInterface +{ + char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; + unsigned long size; +} GstBinaryInterface; + +/* Uri Type */ +typedef struct _GstBinaryUriType +{ + GstURIType type; + unsigned long nuriprotocols; +} GstBinaryUriType; + +/* +** Function prototypes +*/ + +/* Local prototypes */ +inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); +inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); +static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); +static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); +static gchar *gst_registry_binary_check_magic(gchar *in); +static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); +static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); + +/* Exportable */ +gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); +gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location); + +#endif /* !__GST_REGISTRYBINARY_H__ */ + + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb new file mode 100644 index 000000000..f61a41092 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb @@ -0,0 +1,52 @@ +SUMMARY = "GStreamer multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" +DEPENDS = "glib-2.0 libxml2 bison-native flex-native" + +PR = "r2" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ + file://check_fix.patch \ + file://gst-inspect-check-error.patch \ + file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \ + file://0001-parse-make-grammar.y-work-with-Bison-3.patch \ +" + +SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b" +SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30" + +inherit autotools pkgconfig gettext + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ + --disable-dependency-tracking --disable-check \ + --disable-examples --disable-tests \ + --disable-valgrind ${GSTREAMER_DEBUG} \ + --disable-introspection \ + " + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in +} + +#do_compile_prepend () { +# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ +#} + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" + +FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch new file mode 100644 index 000000000..61b0e6c87 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/files/display.patch @@ -0,0 +1,60 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 3e46d2e501da68d929bb5f26900a292a5fc04a1f Mon Sep 17 00:00:00 2001 +From: Stefan Westerfeld +Date: Mon, 23 Apr 2012 03:10:22 +0200 +Subject: [PATCH] Fix time display updates (broken by introduction of quiet + mode). + +--- + src/gst123.cc | 1 + + src/msg.cc | 7 +++++++ + src/msg.h | 1 + + 3 files changed, 9 insertions(+) + +diff --git a/src/gst123.cc b/src/gst123.cc +index 20e91e5..ce5876d 100644 +--- a/src/gst123.cc ++++ b/src/gst123.cc +@@ -640,6 +640,7 @@ cb_print_position (gpointer *data) + else + blanks += " "; + Msg::print ("%s%s\r", status.c_str(), blanks.c_str()); ++ Msg::flush(); + } + + /* call me again */ +diff --git a/src/msg.cc b/src/msg.cc +index 547cd90..33cada2 100644 +--- a/src/msg.cc ++++ b/src/msg.cc +@@ -41,6 +41,13 @@ print (const char *format, ...) + } + } + ++void ++flush() ++{ ++ if (!Options::the().quiet) ++ fflush (stdout); ++} ++ + } + + } +diff --git a/src/msg.h b/src/msg.h +index e0ced24..5bebac0 100644 +--- a/src/msg.h ++++ b/src/msg.h +@@ -27,6 +27,7 @@ namespace Msg + { + + void print (const char *format, ...); ++void flush(); + + } + +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb new file mode 100644 index 000000000..47f1d9f7b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/gst123_0.3.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "Flexible CLI player in the spirit of mpg123, based on GStreamer" +HOMEPAGE = "http://space.twc.de/~stefan/gst123.php" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://src/gst123.cc;beginline=1;endline=19;md5=05d2f5d54b985b986c26af931d2084f8" + +DEPENDS = "libx11 gstreamer gst-plugins-base gtk+ ncurses" + +SRC_URI = "http://space.twc.de/~stefan/gst123/${BPN}-${PV}.tar.bz2 \ + file://display.patch" + +SRC_URI[md5sum] = "1e77767c9d6fecee5641f95804f160fe" +SRC_URI[sha256sum] = "89d1de025eca0466c125dcd6a11b64341bdf98ee4c03c3e5a12321d77cb8b0ce" + +inherit autotools + +PNBLACKLIST[gst123] ?= "gst123 is still "sometimes" using wrong sysroot" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb new file mode 100644 index 000000000..1339df6df --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Cross-platform audio output library and plugins" +DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \ + output audio using a simple API on a wide variety of platforms." +SECTION = "multimedia" +HOMEPAGE = "https://www.xiph.org/ao/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz" +SRC_URI[md5sum] = "9f5dd20d7e95fd0dd72df5353829f097" +SRC_URI[sha256sum] = "03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf" + +inherit autotools + +PACKAGES += "${BPN}-ckport" +PACKAGES_DYNAMIC += "^${BPN}-plugin-.*" + +do_install_append () { + find "${D}" -name '*.la' -exec rm -f {} + +} + +python populate_packages_prepend () { + rootdir = bb.data.expand('${libdir}/ao/plugins-4', d) + rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d) + do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') + do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') +} + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" +PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +FILES_${BPN}-ckport = "${libdir}/ckport" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb new file mode 100644 index 000000000..97e2bf1b4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "libavc1394 is a programming interface for the 1394 Trade \ +Association AV/C (Audio/Video Control) Digital Interface Command Set" +HOMEPAGE = "http://sourceforge.net/projects/libavc1394/" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "caf0db059d8b8d35d6f08e6c0e1c7dfe" +SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4215b53" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch new file mode 100755 index 000000000..89133adec --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch @@ -0,0 +1,14 @@ +Index: libdc1394/examples/Makefile.am +=================================================================== +--- libdc1394.orig/examples/Makefile.am 2012-06-30 17:50:46.000000000 -0700 ++++ libdc1394/examples/Makefile.am 2012-06-30 19:02:13.822646430 -0700 +@@ -36,8 +36,7 @@ + AM_LDFLAGS = -framework CoreFoundation -framework Carbon + endif + +-noinst_PROGRAMS = $(A) +-bin_PROGRAMS = $(B) ++bin_PROGRAMS = $(A) $(B) + + LDADD = ../dc1394/libdc1394.la + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb new file mode 100755 index 000000000..0ea5cb90a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "Capture and control API for IIDC compliant cameras" +HOMEPAGE = "http://sourceforge.net/projects/libdc1394/" +SECTION = "libs" +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" + +# libsdl to provide sdl.m4 with AM_PATH_SDL +DEPENDS += "libusb1 libraw1394 libsdl" + +PV = "2.2.1+gitr${SRCPV}" + +SRCREV = "b90342933b4b48634b98b73805f47bd25ed5857e" + +SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \ + file://install_examples.patch \ + " + +S = "${WORKDIR}/git/${PN}" + +inherit autotools-brokensep pkgconfig + +EXTRA_OECONF += "--disable-doxygen-doc --disable-examples" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb new file mode 100644 index 000000000..48b011104 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libdvbpsi is a simple library designed for decoding \ +and generation of MPEG TS and DVB PSI tables according to standards \ +ISO/IEC 13818 and ITU-T H.222.0." +HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2" +SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a" +SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb new file mode 100644 index 000000000..c2dd96f9d --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "library for DVD navigation features" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libdvdread" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2" +SRC_URI[md5sum] = "e9ea4de3bd8f204e61301d407d09f033" +SRC_URI[sha256sum] = "5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb new file mode 100644 index 000000000..e6079bd75 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "An implementation of the most relevant parts of IEC 61883 over \ +libraw1394 for transmission, reception, and management of media streams and \ +devices such as DV, MPEG2-TS, audio, and MIDI" +HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libiec61883" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff" + +SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "ed91bc1727fac8e019402fc3724a283d" +SRC_URI[sha256sum] = "d1e02c7e276fac37313a2f8c1c33d7a9e19282ff16f32e72435428ff5121f09e" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.22.4.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.22.4.bb new file mode 100644 index 000000000..e6a912b35 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.22.4.bb @@ -0,0 +1,65 @@ +SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" +DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ +mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ +and also can write the decoded audio to WAV." +HOMEPAGE = "http://mpg123.de/" +BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" + +DEPENDS = "audiofile" + +SRC_URI = "${SOURCEFORGE_MIRROR}/mpg123/mpg123/${PV}/${BP}.tar.bz2" + +SRC_URI[md5sum] = "2dfafae3bbc532b4c8b04a77c6a6de89" +SRC_URI[sha256sum] = "5069e02e50138600f10cc5f7674e44e9bf6f1930af81d0e1d2f869b3c0ee40d2" + +inherit autotools pkgconfig + +# The options should be mutually exclusive for configuration script. +# If both alsa and pulseaudio are specified (as in the default distro features) +# pulseaudio takes precedence. +PACKAGECONFIG_ALSA = "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" + +PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" +PACKAGECONFIG[esd] = ",,esound" +PACKAGECONFIG[jack] = ",,jack" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[portaudio] = ",,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" +PACKAGECONFIG[sdl] = ",,libsdl" + +# Following are possible sound output modules: +# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'alsa', 'alsa', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'esd', 'esd', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'jack', 'jack', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'openal', 'openal', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'portaudio', 'portaudio', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'sdl', 'sdl', '', d)}" + +EXTRA_OECONF = " \ + --enable-shared \ + --with-audio='${AUDIOMODS}' \ + --with-module-suffix=.so \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ +" + +# The x86 assembler optimisations contains text relocations and there are no +# upstream plans to fix them: http://sourceforge.net/p/mpg123/bugs/168/ +INSANE_SKIP_${PN}_append_x86 = " textrel" + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' +#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' +#... +#| make[3]: *** [equalizer.lo] Error 1 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch new file mode 100644 index 000000000..d59d12e69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch @@ -0,0 +1,21 @@ +Allow LIB_INSTALL_DIR to be set by the the cmake configure invocation. We dont +easily have a way of determining something that patches ${LIB_SUFFIX} so we'll +set LIB_INSTALL_DIR. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Kumar Gala + +Index: libmusicbrainz-3.0.3/CMakeLists.txt +=================================================================== +--- libmusicbrainz-3.0.3.orig/CMakeLists.txt ++++ libmusicbrainz-3.0.3/CMakeLists.txt +@@ -26,7 +26,7 @@ FIND_PACKAGE(DiscId) + SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") + SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE) + SET(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE) +-SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE) ++SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries") + SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE) + + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz3.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz3.pc) diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb new file mode 100644 index 000000000..a6a4f6a8a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb @@ -0,0 +1,41 @@ +SUMMARY = "MusicBrainz client library" +DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server." +HOMEPAGE = "http://musicbrainz.org" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24" +DEPENDS = "expat neon neon-native" + +PV = "5.0.1+git${SRCPV}" +PR = "r1" + +SRCREV = "0749dd0a35b4a54316da064475863a4ac6e28e7e" +SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git \ + file://allow-libdir-override.patch " + +S = "${WORKDIR}/git" + +LDFLAGS_prepend_libc-uclibc = " -lpthread " + +inherit cmake pkgconfig + +do_configure_prepend() { + # The native build really doesn't like being rebuilt, so delete + # it if it's already present. Also delete all other files not + # known to Git to fix subsequent invocations of do_configure. + git clean -dfx -e /.pc/ -e /patches/ . + mkdir build-native + cd build-native + cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \ + -DCMAKE_C_COMPILER=${BUILD_CC} \ + -DCMAKE_CXX_FLAGS=${BUILD_CXXFLAGS} \ + -DCMAKE_CXX_COMPILER=${BUILD_CXX} \ + .. + make make-c-interface + cd .. +} + +EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:PATH=${libdir} \ + -DIMPORT_EXECUTABLES=build-native/ImportExecutables.cmake" + +# out-of-tree building doesn't appear to work for this package. +B = "${S}" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch new file mode 100644 index 000000000..4a2b25cdd --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch @@ -0,0 +1,10 @@ +--- libmpd-11.8.17/src/libmpd-internal.h.orig 2014-09-30 04:08:50.963292427 +0200 ++++ libmpd-11.8.17/src/libmpd-internal.h 2014-09-30 04:08:30.595292223 +0200 +@@ -21,6 +21,7 @@ + #define __MPD_INTERNAL_LIB_ + + #include "libmpdclient.h" ++#include "config.h" + struct _MpdData_real; + + typedef struct _MpdData_real { diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb new file mode 100644 index 000000000..54d79109d --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb @@ -0,0 +1,13 @@ +SUMMARY = "Music Player Daemon library" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE ="http://sourceforge.net/projects/musicpd" +DEPENDS = "glib-2.0" + +SRC_URI = "http://www.musicpd.org/download/${BPN}/${PV}/${BP}.tar.gz \ + file://glibc-2.20.patch \ +" +SRC_URI[md5sum] = "5ae3d87467d52aef3345407adb0a2488" +SRC_URI[sha256sum] = "fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in new file mode 100644 index 000000000..f9f92c98b --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in @@ -0,0 +1,420 @@ +# An example configuration file for MPD +# See the mpd.conf man page for a more detailed description of each parameter. + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "%music_directory%" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "%playlist_directory%" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "%db_file%" +# +# These settings are the locations for the daemon log files for the daemon. +# These logs are great for troubleshooting, depending on your log_level +# settings. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog, otherwise logging is disabled. +# +log_file "%log_file%" +# +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +#pid_file "/var/run/mpd/mpd.pid" +# +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "%state_file%" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +#sticker_file "~/.mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +user "mpd" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +group "audio" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other then the default, any. +# This setting can deny access to control of the daemon. +# +# For network +bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +#port "6600" +# +# This setting controls the type of information which is logged. Available +# setting arguments are "default", "secure" or "verbose". The "verbose" setting +# argument is recommended for troubleshooting, though can quickly stretch +# available resources on limited hardware storage. +# +#log_level "default" +# +# If you have a problem with your MP3s ending abruptly it is recommended that +# you set this argument to "no" to attempt to fix the problem. If this solves +# the problem, it is highly recommended to fix the MP3 files with vbrfix +# (available from ), at which +# point gapless MP3 playback can be enabled. +# +#gapless_mp3_playback "yes" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. Optionally, 'comment' can be added to this +# list. +# +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. +# +#zeroconf_name "Music Player" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# can setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Input ####################################################################### +# + +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# See for examples of +# other audio outputs. +# +# board specific examples ##################################################### +# (feel free to add futher) +# +# gumstix overo (tested with TOBI expansion board) +#audio_output { +# type "alsa" +# name "overo" +# mixer_control "Headset" +# mixer_index "0" +#} +# +# general examples ############################################################ +# +# An example of an ALSA output: +# +#audio_output { +# type "alsa" +# name "My ALSA Device" +## device "hw:0,0" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +#} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoding "ogg" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # optional, vorbis or lame +# port "8000" +# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +# max_clients "0" # optional 0=no limit +#} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +#audio_output { +# type "pulse" +# name "My Pulse Output" +## server "remote_server" # optional +## sink "remote_server_sink" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +# This setting will change all decoded audio to be converted to the specified +# format before being passed to the audio outputs. By default, this setting is +# disabled. +# +#audio_output_format "44100:16:2" +# +# If MPD has been compiled with libsamplerate support, this setting specifies +# the sample rate converter to use. Possible values can be found in the +# mpd.conf man page or the libsamplerate documentation. By default, this is +# setting is disabled. +# +#samplerate_converter "Fastest Sinc Interpolator" +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album" or "track". See +# for more details. This setting is off by default. +# +#replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +#volume_normalization "no" +# +############################################################################### + + +# MPD Internal Buffering ###################################################### +# +# This setting adjusts the size of internal decoded audio buffering. Changing +# this may have undesired effects. Don't change this if you don't know what you +# are doing. +# +#audio_buffer_size "2048" +# +# This setting controls the percentage of the buffer which is filled before +# beginning to play. Increasing this reduces the chance of audio file skipping, +# at the cost of increased time prior to audio playback. +# +#buffer_before_play "10%" +# +############################################################################### + + +# Resource Limitations ######################################################## +# +# These settings are various limitations to prevent MPD from using too many +# resources. Generally, these settings should be minimized to prevent security +# risks, depending on the operating resources. +# +#connection_timeout "60" +#max_connections "10" +#max_playlist_length "16384" +#max_command_list_size "2048" +#max_output_buffer_size "8192" +# +############################################################################### + + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +# This setting controls the encoding that ID3v1 tags should be converted from. +# +#id3v1_encoding "ISO-8859-1" +# +############################################################################### + + +# SIDPlay decoder ############################################################# +# +# songlength_database: +# Location of your songlengths file, as distributed with the HVSC. +# The sidplay plugin checks this for matching MD5 fingerprints. +# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq +# +# default_songlength: +# This is the default playing time in seconds for songs not in the +# songlength database, or in case you're not using a database. +# A value of 0 means play indefinitely. +# +# filter: +# Turns the SID filter emulation on or off. +# +#decoder { +# plugin "sidplay" +# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" +# default_songlength "120" +# filter "true" +#} +# +############################################################################### + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.10.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.10.bb new file mode 100644 index 000000000..7b124ca15 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.10.bb @@ -0,0 +1,59 @@ +SUMMARY = "Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE ="http://www.musicpd.org" + +DEPENDS = "alsa-lib libsamplerate0 libsndfile1 libvorbis libogg faad2 ffmpeg curl sqlite bzip2 pulseaudio tcp-wrappers openal-soft yajl jack faad2 flac libao fluidsynth libcdio wavpack libopus mpg123 libmms libmodplug boost icu dbus expat zlib libupnp" + +SRC_URI = " \ + http://www.musicpd.org/download/${BPN}/0.19/${BP}.tar.xz \ + file://mpd.conf.in \ +" +SRC_URI[md5sum] = "da4bc3e47afd0faf9e7a67168e012102" +SRC_URI[sha256sum] = "c386eb3d22f98dc993b5ae3c272f969aa7763713483c6800040ebf1791b15851" + +inherit autotools useradd systemd + +EXTRA_OECONF = "enable_bzip2=yes" +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" + +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag" +PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame" +PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba" + +do_install_append() { + install -d ${D}/${localstatedir}/lib/mpd/music + chmod 775 ${D}/${localstatedir}/lib/mpd/music + install -d ${D}/${localstatedir}/lib/mpd/playlists + chown -R mpd ${D}/${localstatedir}/lib/mpd + chown mpd:mpd ${D}/${localstatedir}/lib/mpd/music + + install -d ${D}/${sysconfdir} + install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf + sed -i \ + -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ + -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ + -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ + -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ + -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ + ${D}/${sysconfdir}/mpd.conf + + if [ -e ${D}/${systemd_unitdir}/system/mpd.service ] ; then + sed -i \ + 's|^ExecStart=.*|ExecStart=${bindir}/mpd --no-daemon|' \ + ${D}/${systemd_unitdir}/system/mpd.service + fi +} + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "mpd.service mpd.socket" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = " \ + --system --no-create-home \ + --home ${localstatedir}/lib/mpd \ + --groups audio \ + --user-group mpd" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb new file mode 100644 index 000000000..589523482 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "OpenAL is a cross-platform 3D audio API" +HOMEPAGE = "http://kcat.strangesoft.net/openal.html" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=facc3a8f452930083bbb95d82b989c35" + +inherit cmake + +SRC_URI = "http://kcat.strangesoft.net/openal-releases/${BP}.tar.bz2" +SRC_URI[md5sum] = "ea83dec3b9655a27d28e7bc7cae9cd71" +SRC_URI[sha256sum] = "0e29a162f0841ccb4135ce76e92e8a704589b680a85eddf76f898de5236eb056" + +PACKAGECONFIG ?= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ +" +PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib" +PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio" +# currently doesn't work with libav-9 +# PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100) +# but alffmpeg.c:418:44: error: 'AV_CH_LAYOUT_MONO' undeclared (first use in this function) +PACKAGECONFIG[examples] = "-DEXAMPLES=TRUE, -DEXAMPLES=FALSE, libav" + +FILES_${PN} += "${datadir}/openal" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb new file mode 100644 index 000000000..ab5813ebe --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "OpenCORE Adaptive Multi Rate (AMR) speech codec library implementation" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725" +SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb new file mode 100644 index 000000000..ce3736294 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Advanced Audio Coding (AAC) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "b574da1d92d75fc40b0b75aa16f24ac4" +SRC_URI[sha256sum] = "e51a7477a359f18df7c4f82d195dab4e14e7414cbd48cf79cc195fc446850f36" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb new file mode 100644 index 000000000..cc049edb8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Adaptive Multi Rate Wideband (AMR-WB) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "f63bb92bde0b1583cb3cb344c12922e0" +SRC_URI[sha256sum] = "5652b391e0f0e296417b841b02987d3fd33e6c0af342c69542cbb016a71d9d4e" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch new file mode 100644 index 000000000..bb3d8b0ef --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch @@ -0,0 +1,18 @@ +Make sure libdir (SODIR) is created when running parallel make. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andrei Gherzan + +Index: git/librtmp/Makefile +=================================================================== +--- git.orig/librtmp/Makefile ++++ git/librtmp/Makefile +@@ -107,6 +107,7 @@ install_base: librtmp.a librtmp.pc + cp librtmp.3 $(MANDIR)/man3 + + install_so: librtmp.$(SO_EXT) ++ -mkdir -p $(SODIR) + cp librtmp.$(SO_EXT) $(SODIR) + cd $(SODIR); ln -sf librtmp.$(SO_EXT) librtmp.$(SOX) + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb new file mode 100644 index 000000000..a1e650243 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb @@ -0,0 +1,22 @@ +SUMMARY = "RTMP Dump" +DESCRIPTION = "rtmpdump is a toolkit for RTMP streams. All forms of RTMP are \ +supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://." +HOMEPAGE = "http://rtmpdump.mplayerhq.hu/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "openssl zlib" + +SRCREV = "3121324046e4ca1934e7e28293fc8326475d5053" +SRC_URI = " \ + git://git.ffmpeg.org/rtmpdump \ + file://fix-racing-build-issue.patch" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep + +EXTRA_OEMAKE = " \ + CC='${CC}' LD='${LD} ${STAGING_LIBDIR}' \ + SYS=posix INC=-I=/usr/include DESTDIR=${D} \ + prefix=${prefix} libdir=${libdir} incdir=${includedir}/librtmp bindir=${bindir} mandir=${mandir}" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb new file mode 100644 index 000000000..e91ba45c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 1080P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi" +SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" +SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb new file mode 100644 index 000000000..e7029d9b0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 480P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi" +SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" +SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db044634f" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb new file mode 100644 index 000000000..55fceabc8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 720P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi" +SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" +SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06edcd528c" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb new file mode 100644 index 000000000..bb7ee7cf7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -0,0 +1,16 @@ +SUMMARY = "Tears of Steel movie - 1080P" +LICENSE = "CC-BY-3.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" +SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" +SRC_URI[sha256sum] = "bd2b5bc6c16d4085034f47ef7e4b3938afe86b4eec4ac3cf2685367d3b0b23b0" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch new file mode 100644 index 000000000..2ed8d22c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch @@ -0,0 +1,20 @@ +Use the version of orcc in the sysroot not the one from the host + +Signed-off-by: Dongxiao Xu +Signed-off-by: Paul Eggleton + +Upstream-Status: Inappropriate [configuration] + +Index: schroedinger-1.0.9/configure.ac +=================================================================== +--- schroedinger-1.0.9.orig/configure.ac ++++ schroedinger-1.0.9/configure.ac +@@ -54,7 +54,7 @@ if test "x${HAVE_ORC}" != xyes ; then + AC_ERROR([orc-0.4 >= $ORC_VER is required]) + fi + SCHRO_PKG_DEPS="$SCHRO_PKG_DEPS orc-0.4 >= $ORC_VER" +-ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` ++ORCC=$STAGING_DIR`$PKG_CONFIG --variable=orcc orc-0.4` + AC_SUBST(ORCC) + + AC_ARG_WITH([thread], diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb new file mode 100644 index 000000000..d38eb9477 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb @@ -0,0 +1,22 @@ +SUMMARY = "Dirac compressed video encoder/decoder" +HOMEPAGE = "http://schrodinger.sourceforge.net/" +LICENSE = "MPL-1.1 | GPLv2 | LGPLv2 | MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \ + file://COPYING.GPL;md5=e181e3b7c66f5f96921d813c1074f833 \ + file://COPYING.LGPL;md5=38c893e21baec4cd75ad800ba9e2410a \ + file://COPYING.MIT;md5=8b345371b3536b4ce37ead1eafc88221 \ + file://COPYING.MPL;md5=0117647fecb9a932c25a7bbfc0333c37" + +DEPENDS = "liboil orc-native orc" + +SRC_URI = "http://www.diracvideo.org/download/schroedinger/${BP}.tar.gz \ + file://configure.ac.patch" + +SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891" +SRC_URI[sha256sum] = "1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8cc9f912" + +EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE}" + +inherit autotools-brokensep pkgconfig + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb new file mode 100644 index 000000000..4b73aa354 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb @@ -0,0 +1,38 @@ +DESCRIPTION="SoX is the Swiss Army knife of sound processing tools. \ +It converts audio files among various standard audio file formats \ +and can apply different effects and filters to the audio data." +HOMEPAGE = "http://sox.sourceforge.net" +SECTION = "audio" + +DEPENDS = "libpng ffmpeg libsndfile1 libvorbis" + +PR = "r2" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ + magic \ +" +PACKAGECONFIG[pulseaudio] = "--with-pulseaudio=dyn,--with-pulseaudio=no,pulseaudio," +PACKAGECONFIG[alsa] = "--with-alsa=dyn,--with-alsa=no,alsa-lib," +PACKAGECONFIG[wavpack] = "--with-wavpack=dyn,--with-wavpack=no,wavpack," +PACKAGECONFIG[flac] = "--with-flac=dyn,--with-flac=no,flac," +PACKAGECONFIG[amrwb] = "--with-amrwb=dyn,--with-amrwb=no,opencore-amr," +PACKAGECONFIG[amrnb] = "--with-amrnb=dyn,--with-amrnb=no,opencore-amr," +PACKAGECONFIG[magic] = "--with-magic,--without-magic,file," +PACKAGECONFIG[mad] = "--with-mad,--without-mad,libmad," +PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag," +PACKAGECONFIG[lame] = "--with-lame,--without-lame,lame," +PACKAGECONFIG[ao] = "--with-ao,--without-ao,libao," + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \ + file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sox/sox-${PV}.tar.gz" +SRC_URI[md5sum] = "b0c15cff7a4ba0ec17fdc74e6a1f9cf1" +SRC_URI[sha256sum] = "3ee34b14dd267de378e8a117aae81ec4cae330772342e6a55bbf6520a0a88aa3" + +inherit autotools + +BBCLASSEXTEND = "native" + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb new file mode 100644 index 000000000..79e64aebd --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2" + +inherit autotools + +EXTRA_OECONF = " --disable-doc " + +SRC_URI[md5sum] = "7f0fdb3ff91d638f5e45ed7536f7eb67" +SRC_URI[sha256sum] = "7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc new file mode 100644 index 000000000..8142e1651 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc @@ -0,0 +1,106 @@ +DESCRIPTION = "Video player and streamer - davinci edition" +HOMEPAGE = "http://www.videolan.org" +SECTION = "multimedia" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "libfribidi libtool libgcrypt libgcrypt-native \ + dbus dbus-glib libxml2 gnutls \ + tremor faad2 ffmpeg flac fluidsynth alsa-lib \ + lua-native lua libidn \ + avahi jpeg xz libmodplug mpeg2dec \ + libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ + tiff" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz" + +inherit autotools gettext pkgconfig distro_features_check + +ARM_INSTRUCTION_SET = "arm" + +EXTRA_OECONF = "\ + --enable-run-as-root \ + --enable-xvideo \ + --disable-screen --disable-caca \ + --enable-httpd --enable-vlm \ + --enable-freetype \ + --enable-tremor \ + --enable-v4l2 --disable-aa --disable-faad \ + --enable-dbus \ + --without-contrib \ + --without-kde-solid \ + --enable-realrtsp \ + --disable-libtar \ + ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}/moc4 \ + ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}/rcc4 \ + ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}/uic4 \ +" + +PACKAGECONFIG ?= " live555 dc1394 dv1394 notify fontconfig freetype dvdread png ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 sdl', '', d)}" +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl libsdl-image " +PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555" +PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" +PACKAGECONFIG[mkv] = "--enable-mkv,--disable-mkv,libmatroska libebml" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[libva] = "--enable-libva --enable-avcodec,--disable-libva --disable-avcodec,libva libav" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" +PACKAGECONFIG[qt4] = "--enable-qt,--disable-qt, qt4-x11-free" +PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" +PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi" +PACKAGECONFIG[gnome-vfs] = "--enable-gnomevfs,--disable-gnomevfs, gnome-vfs" +PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba" +PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" +PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss" +PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" +PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" +PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" +PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+" +PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" +PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" +PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" +PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" + +do_configure_prepend() { + cp ${STAGING_DATADIR}/libtool/config.* ${S}/autotools/ || true +} + +do_configure_append() { + sed -i -e s:'$(MOC) $(DEFS) $(CPPFLAGS)':'$(MOC) $(DEFS)'\ -I${B}/include\ -DSYS_LINUX:g ${B}/modules/gui/qt4/Makefile + sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool +} + +# This recipe packages vlc as a library as well, so qt4 dependencies +# can be avoided when only the library is installed. +PACKAGES =+ "libvlc" + +LEAD_SONAME_libvlc = "libvlc.so.5" +FILES_libvlc = "${libdir}/lib*.so.*" + +FILES_${PN} += "\ + ${bindir}/vlc \ + ${datadir}/applications \ + ${datadir}/vlc/ \ + ${datadir}/icons \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/vlc/*/.debug \ + ${libdir}/vlc/plugins/*/.debug \ +" + +FILES_${PN}-staticdev += "\ + ${libdir}/vlc/plugins/*/*.a \ +" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch new file mode 100644 index 000000000..9f0e708ed --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch @@ -0,0 +1,13 @@ +Index: vlc-2.1.2/configure.ac +=================================================================== +--- vlc-2.1.2.orig/configure.ac ++++ vlc-2.1.2/configure.ac +@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD + AC_CANONICAL_HOST + AC_PRESERVE_HELP_ORDER + +-AM_INIT_AUTOMAKE(tar-ustar color-tests foreign) ++AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects) + AC_CONFIG_HEADERS([config.h]) + + # Disable with "./configure --disable-silent-rules" or "make V=1" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch new file mode 100644 index 000000000..6d2a46fb3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch @@ -0,0 +1,17 @@ +Index: vlc-2.1.2/src/input/subtitles.c +=================================================================== +--- vlc-2.1.2.orig/src/input/subtitles.c ++++ vlc-2.1.2/src/input/subtitles.c +@@ -44,6 +44,12 @@ + #include "input_internal.h" + + /** ++ * Drepper's alternative ++ * http://en.wikibooks.org/wiki/C_Programming/C_Reference/nonstandard/strlcpy ++ */ ++#define strlcpy(dst, src, n) *((char* ) mempcpy(dst, src, n)) = '\0' ++ ++/** + * We are not going to autodetect more subtitle files than this. + */ + #define MAX_SUBTITLE_FILES 128 diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch new file mode 100644 index 000000000..8e881d093 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch @@ -0,0 +1,46 @@ +* The upstream tests for libgcrypt are awkward and not working. + - Requires libgcrypt-config, which seems broken? +* AM_PATH_LIBGCRYPT exists for a reason, why not use it? KISS. +* Upstream abandoned AM_PATH_LIBGCRYPT in the past...newer automake ok? + +Upstream status: Pending + +Index: vlc-2.2.1/configure.ac +=================================================================== +--- vlc-2.2.1.orig/configure.ac ++++ vlc-2.2.1/configure.ac +@@ -4017,25 +4017,19 @@ PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], + dnl + dnl libgcrypt + dnl ++GCRYPT_LIBVER=1 ++GCRYPT_REQ=1.1.94 + AC_ARG_ENABLE(libgcrypt, + [ --disable-libgcrypt gcrypt support (default enabled)]) + AS_IF([test "${enable_libgcrypt}" != "no"], [ +- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [ +- libgcrypt-config --version >/dev/null || \ +- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found]) +- AC_CHECK_LIB(gcrypt, gcry_control, [ +- have_libgcrypt="yes" +- GCRYPT_CFLAGS="`libgcrypt-config --cflags`" +- GCRYPT_LIBS="`libgcrypt-config --libs`" +- ], [ +- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [`libgcrypt-config --libs`]) +- ], [ +- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [#include ] +- ) ++ AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_REQ, ++ [ ++ GCRYPT_CFLAGS="$LIBGCRYPT_CFLAGS" ++ GCRYPT_LIBS="$LIBGCRYPT_LIBS" ++ ],[ ++ AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.]) ++ ]) + ]) +- + AC_SUBST(GCRYPT_CFLAGS) + AC_SUBST(GCRYPT_LIBS) + AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"]) diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch new file mode 100644 index 000000000..53df1c6eb --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch @@ -0,0 +1,19 @@ +* modules/gui/qt4/Makefile.am not B!=S friendly +* Simple solution to missing directories in ${B} + +Upstream status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/gui/qt4/Makefile.am +=================================================================== +--- vlc-2.2.1.orig/modules/gui/qt4/Makefile.am ++++ vlc-2.2.1/modules/gui/qt4/Makefile.am +@@ -127,6 +127,7 @@ moc_verbose_0 = @echo " MOC " $@; + moc_verbose__0 = $(moc_verbose_0) + + .hpp.moc.cpp: ++ [ -d $(dir $@) ] || mkdir -p $(dir $@) + $(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $< + + # These MOC files depend on the configure settings: diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch new file mode 100644 index 000000000..2d84ffd2f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch @@ -0,0 +1,17 @@ +* Also look for postprocess.h under libpostproc/ + +Upstream-status: Pending + +Index: vlc-2.1.4/configure.ac +=================================================================== +--- vlc-2.1.4.orig/configure.ac ++++ vlc-2.1.4/configure.ac +@@ -2444,7 +2444,7 @@ then + VLC_SAVE_FLAGS + CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}" + CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}" +- AC_CHECK_HEADERS(postproc/postprocess.h) ++ AC_CHECK_HEADERS(postproc/postprocess.h,[],[AC_CHECK_HEADERS(libpostproc/postprocess.h)]) + VLC_ADD_PLUGIN([postproc]) + VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS]) + VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS]) diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch new file mode 100644 index 000000000..950c09b8a --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch @@ -0,0 +1,29 @@ +Recent opencv API changes break upstream filter and example. +Make opencv explicitly configurable. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Tim Orling + +Index: vlc-2.1.4/configure.ac +=================================================================== +--- vlc-2.1.4.orig/configure.ac ++++ vlc-2.1.4/configure.ac +@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu + dnl + dnl OpenCV wrapper and example filters + dnl +-PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto]) ++AC_ARG_ENABLE(opencv, ++ [AS_HELP_STRING([--disable-opencv], ++ [disable OpenCV computer vision filter and example (default auto)])]) ++if test "${enable_opencv}" != "no" ++then ++ PKG_ENABLE_MODULES_VLC([OPENCV], ++ [opencv_example opencv_wrapper], ++ [opencv > 2.0], ++ (OpenCV (computer vision) filter), [auto]) ++fi + + + dnl diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch new file mode 100644 index 000000000..d05cf02b7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch @@ -0,0 +1,19 @@ +* tremor provides libvorbisidec, use it instead of libvorbisdec + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/codec/Makefile.am +=================================================================== +--- vlc-2.2.1.orig/modules/codec/Makefile.am ++++ vlc-2.2.1/modules/codec/Makefile.am +@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora) + libtremor_plugin_la_SOURCES = codec/vorbis.c + libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor + libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' +-libtremor_plugin_la_LIBADD = -lvorbisdec -logg ++libtremor_plugin_la_LIBADD = -lvorbisidec -logg + EXTRA_LTLIBRARIES += libtremor_plugin.la + codec_LTLIBRARIES += $(LTLIBtremor) + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch new file mode 100644 index 000000000..145e1ab82 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch @@ -0,0 +1,279 @@ +* luaL_checkint and luaL_optint were deprecated in lua 5.3 +* replacement functions are luaL_checkinteger and luaL_optinteger + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/lua/demux.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/demux.c ++++ vlc-2.2.1/modules/lua/demux.c +@@ -52,7 +52,7 @@ struct demux_sys_t + static int vlclua_demux_peek( lua_State *L ) + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + const uint8_t *p_peek; + + int i_peek = stream_Peek( p_demux->s, &p_peek, n ); +@@ -67,7 +67,7 @@ static int vlclua_demux_read( lua_State + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); + const uint8_t *p_read; +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + int i_read = stream_Peek( p_demux->s, &p_read, n ); + + if( i_read > 0 ) +Index: vlc-2.2.1/modules/lua/libs/configuration.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/configuration.c ++++ vlc-2.2.1/modules/lua/libs/configuration.c +@@ -84,7 +84,7 @@ static int vlclua_config_set( lua_State + break; + + case VLC_VAR_INTEGER: +- config_PutInt( p_this, psz_name, luaL_checkint( L, 2 ) ); ++ config_PutInt( p_this, psz_name, luaL_checkinteger( L, 2 ) ); + break; + + case VLC_VAR_BOOL: +Index: vlc-2.2.1/modules/lua/libs/net.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/net.c ++++ vlc-2.2.1/modules/lua/libs/net.c +@@ -202,7 +202,7 @@ static int vlclua_net_listen_tcp( lua_St + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int *pi_fd = net_ListenTCP( p_this, psz_host, i_port ); + if( pi_fd == NULL ) + return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port ); +@@ -274,7 +274,7 @@ static int vlclua_net_connect_tcp( lua_S + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int i_fd = net_Connect( p_this, psz_host, i_port, SOCK_STREAM, IPPROTO_TCP ); + lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) ); + return 1; +@@ -282,26 +282,26 @@ static int vlclua_net_connect_tcp( lua_S + + static int vlclua_net_close( lua_State *L ) + { +- int i_fd = luaL_checkint( L, 1 ); ++ int i_fd = luaL_checkinteger( L, 1 ); + vlclua_fd_unmap_safe( L, i_fd ); + return 0; + } + + static int vlclua_net_send( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? send( fd, psz_buffer, i_len, 0 ) : -1 ); + return 1; + } + + static int vlclua_net_recv( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? recv( fd, psz_buffer, i_len, 0 ) : -1; +@@ -382,19 +382,19 @@ static int vlclua_fd_open( lua_State *L + #ifndef _WIN32 + static int vlclua_fd_write( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? write( fd, psz_buffer, i_len ) : -1 ); + return 1; + } + + static int vlclua_fd_read( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? read( fd, psz_buffer, i_len ) : -1; +Index: vlc-2.2.1/modules/lua/libs/osd.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/osd.c ++++ vlc-2.2.1/modules/lua/libs/osd.c +@@ -67,7 +67,7 @@ static int vlclua_osd_icon( lua_State *L + { + const char *psz_icon = luaL_checkstring( L, 1 ); + int i_icon = vlc_osd_icon_from_string( psz_icon ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + if( !i_icon ) + return luaL_error( L, "\"%s\" is not a valid osd icon.", psz_icon ); + +@@ -114,9 +114,9 @@ static int vlc_osd_position_from_string( + static int vlclua_osd_message( lua_State *L ) + { + const char *psz_message = luaL_checkstring( L, 1 ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + const char *psz_position = luaL_optstring( L, 3, "top-right" ); +- mtime_t duration = luaL_optint( L, 4, 1000000 ); ++ mtime_t duration = luaL_optinteger( L, 4, 1000000 ); + + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( p_input ) +@@ -154,10 +154,10 @@ static int vlc_osd_slider_type_from_stri + + static int vlclua_osd_slider( lua_State *L ) + { +- int i_position = luaL_checkint( L, 1 ); ++ int i_position = luaL_checkinteger( L, 1 ); + const char *psz_type = luaL_checkstring( L, 2 ); + int i_type = vlc_osd_slider_type_from_string( psz_type ); +- int i_chan = luaL_optint( L, 3, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 3, SPU_DEFAULT_CHANNEL ); + if( !i_type ) + return luaL_error( L, "\"%s\" is not a valid slider type.", + psz_type ); +@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register( + + static int vlclua_spu_channel_clear( lua_State *L ) + { +- int i_chan = luaL_checkint( L, 1 ); ++ int i_chan = luaL_checkinteger( L, 1 ); + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( !p_input ) + return luaL_error( L, "Unable to find input." ); +Index: vlc-2.2.1/modules/lua/libs/playlist.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/playlist.c ++++ vlc-2.2.1/modules/lua/libs/playlist.c +@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta + + static int vlclua_playlist_skip( lua_State * L ) + { +- int i_skip = luaL_checkint( L, 1 ); ++ int i_skip = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + playlist_Skip( p_playlist, i_skip ); + return 0; +@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S + + static int vlclua_playlist_gotoitem( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + int i_ret = playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, +@@ -139,7 +139,7 @@ static int vlclua_playlist_gotoitem( lua + + static int vlclua_playlist_delete( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id ); +@@ -155,8 +155,8 @@ static int vlclua_playlist_delete( lua_S + + static int vlclua_playlist_move( lua_State * L ) + { +- int i_item = luaL_checkint( L, 1 ); +- int i_target = luaL_checkint( L, 2 ); ++ int i_item = luaL_checkinteger( L, 1 ); ++ int i_target = luaL_checkinteger( L, 2 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item ); +Index: vlc-2.2.1/modules/lua/libs/stream.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/stream.c ++++ vlc-2.2.1/modules/lua/libs/stream.c +@@ -101,7 +101,7 @@ static int vlclua_stream_read( lua_State + { + int i_read; + stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" ); +- int n = luaL_checkint( L, 2 ); ++ int n = luaL_checkinteger( L, 2 ); + uint8_t *p_read = malloc( n ); + if( !p_read ) return vlclua_error( L ); + +Index: vlc-2.2.1/modules/lua/libs/variables.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/variables.c ++++ vlc-2.2.1/modules/lua/libs/variables.c +@@ -103,7 +103,7 @@ static int vlclua_tovalue( lua_State *L, + val->b_bool = luaL_checkboolean( L, -1 ); + break; + case VLC_VAR_INTEGER: +- val->i_int = luaL_checkint( L, -1 ); ++ val->i_int = luaL_checkinteger( L, -1 ); + break; + case VLC_VAR_STRING: + val->psz_string = (char*)luaL_checkstring( L, -1 ); /* XXX: Beware, this only stays valid as long as (L,-1) stays in the stack */ +Index: vlc-2.2.1/modules/lua/libs/volume.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/volume.c ++++ vlc-2.2.1/modules/lua/libs/volume.c +@@ -48,7 +48,7 @@ + static int vlclua_volume_set( lua_State *L ) + { + playlist_t *p_this = vlclua_get_playlist_internal( L ); +- int i_volume = luaL_checkint( L, 1 ); ++ int i_volume = luaL_checkinteger( L, 1 ); + if( i_volume < 0 ) + i_volume = 0; + int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT ); +@@ -68,7 +68,7 @@ static int vlclua_volume_up( lua_State * + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeUp( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeUp( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +@@ -78,7 +78,7 @@ static int vlclua_volume_down( lua_State + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeDown( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeDown( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +Index: vlc-2.2.1/modules/lua/libs/win.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/win.c ++++ vlc-2.2.1/modules/lua/libs/win.c +@@ -123,7 +123,7 @@ static int vlclua_console_init( lua_Stat + + static int vlclua_console_wait( lua_State *L ) + { +- int i_timeout = luaL_optint( L, 1, 0 ); ++ int i_timeout = luaL_optinteger( L, 1, 0 ); + DWORD status = WaitForSingleObject( GetConsole( L ), i_timeout ); + lua_pushboolean( L, status == WAIT_OBJECT_0 ); + return 1; diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch new file mode 100644 index 000000000..cb3ba71dd --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch @@ -0,0 +1,293 @@ +From 427732a379893491eac27aeadff0e0b3e252d158 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 08:19:00 +0200 +Subject: [PATCH] Avcodec/swscale: use AV_PIX_FMT consistently +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit faa7bd357b1f9e07a6ffbc451a188773fad7a275) +Signed-off-by: Rafaël Carré + +Conflicts: + modules/codec/avcodec/chroma.c + modules/codec/avcodec/video.c +--- + modules/codec/avcodec/chroma.c | 104 ++++++++++++++++++++--------------------- + modules/codec/avcodec/video.c | 10 ++-- + modules/video_chroma/swscale.c | 28 +++++------ + 3 files changed, 71 insertions(+), 71 deletions(-) + +diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c +index 393364b..c31f93d 100644 +--- a/modules/codec/avcodec/chroma.c ++++ b/modules/codec/avcodec/chroma.c +@@ -62,77 +62,77 @@ static const struct + } chroma_table[] = + { + /* Planar YUV formats */ +- {VLC_CODEC_I444, PIX_FMT_YUV444P, 0, 0, 0 }, +- {VLC_CODEC_J444, PIX_FMT_YUVJ444P, 0, 0, 0 }, +- +- {VLC_CODEC_I440, PIX_FMT_YUV440P, 0, 0, 0 }, +- {VLC_CODEC_J440, PIX_FMT_YUVJ440P, 0, 0, 0 }, +- +- {VLC_CODEC_I422, PIX_FMT_YUV422P, 0, 0, 0 }, +- {VLC_CODEC_J422, PIX_FMT_YUVJ422P, 0, 0, 0 }, +- +- {VLC_CODEC_I420, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_YV12, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_FOURCC('I','Y','U','V'), PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_J420, PIX_FMT_YUVJ420P, 0, 0, 0 }, +- {VLC_CODEC_I411, PIX_FMT_YUV411P, 0, 0, 0 }, +- {VLC_CODEC_I410, PIX_FMT_YUV410P, 0, 0, 0 }, +- {VLC_FOURCC('Y','V','U','9'), PIX_FMT_YUV410P, 0, 0, 0 }, +- +- {VLC_FOURCC('N','V','1','2'), PIX_FMT_NV12, 0, 0, 0 }, +- {VLC_FOURCC('N','V','2','1'), PIX_FMT_NV21, 0, 0, 0 }, +- +- {VLC_CODEC_I420_9L, PIX_FMT_YUV420P9LE, 0, 0, 0 }, +- {VLC_CODEC_I420_9B, PIX_FMT_YUV420P9BE, 0, 0, 0 }, +- {VLC_CODEC_I420_10L, PIX_FMT_YUV420P10LE, 0, 0, 0 }, +- {VLC_CODEC_I420_10B, PIX_FMT_YUV420P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444, AV_PIX_FMT_YUV444P, 0, 0, 0 }, ++ {VLC_CODEC_J444, AV_PIX_FMT_YUVJ444P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I440, AV_PIX_FMT_YUV440P, 0, 0, 0 }, ++ {VLC_CODEC_J440, AV_PIX_FMT_YUVJ440P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I422, AV_PIX_FMT_YUV422P, 0, 0, 0 }, ++ {VLC_CODEC_J422, AV_PIX_FMT_YUVJ422P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_YV12, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_FOURCC('I','Y','U','V'), AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_J420, AV_PIX_FMT_YUVJ420P, 0, 0, 0 }, ++ {VLC_CODEC_I411, AV_PIX_FMT_YUV411P, 0, 0, 0 }, ++ {VLC_CODEC_I410, AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ {VLC_FOURCC('Y','V','U','9'), AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ ++ {VLC_FOURCC('N','V','1','2'), AV_PIX_FMT_NV12, 0, 0, 0 }, ++ {VLC_FOURCC('N','V','2','1'), AV_PIX_FMT_NV21, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,13,0) +- {VLC_CODEC_I422_9L, PIX_FMT_YUV422P9LE, 0, 0, 0 }, +- {VLC_CODEC_I422_9B, PIX_FMT_YUV422P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, 0, 0, 0 }, + #endif +- {VLC_CODEC_I422_10L, PIX_FMT_YUV422P10LE, 0, 0, 0 }, +- {VLC_CODEC_I422_10B, PIX_FMT_YUV422P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, 0, 0, 0 }, + +- {VLC_CODEC_YUV420A, PIX_FMT_YUVA420P, 0, 0, 0 }, ++ {VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_CHECK( 51, 45, 0, 74, 100 ) + {VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P, 0, 0, 0 }, + #endif + +- {VLC_CODEC_I444_9L, PIX_FMT_YUV444P9LE, 0, 0, 0 }, +- {VLC_CODEC_I444_9B, PIX_FMT_YUV444P9BE, 0, 0, 0 }, +- {VLC_CODEC_I444_10L, PIX_FMT_YUV444P10LE, 0, 0, 0 }, +- {VLC_CODEC_I444_10B, PIX_FMT_YUV444P10BE, 0, 0, 0 }, +- {VLC_CODEC_I444_16L, PIX_FMT_YUV444P16LE, 0, 0, 0 }, +- {VLC_CODEC_I444_16B, PIX_FMT_YUV444P16BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE, 0, 0, 0 }, + + /* Packed YUV formats */ +- {VLC_CODEC_YUYV, PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_FOURCC('Y','U','Y','V'), PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_CODEC_UYVY, PIX_FMT_UYVY422, 0, 0, 0 }, +- {VLC_FOURCC('Y','4','1','1'), PIX_FMT_UYYVYY411, 0, 0, 0 }, ++ {VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','U','Y','V'), AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','4','1','1'), AV_PIX_FMT_UYYVYY411, 0, 0, 0 }, + + /* Packed RGB formats */ +- VLC_RGB( VLC_FOURCC('R','G','B','4'), PIX_FMT_RGB4, PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) +- VLC_RGB( VLC_FOURCC('R','G','B','8'), PIX_FMT_RGB8, PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','4'), AV_PIX_FMT_RGB4, AV_PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','8'), AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) + +- VLC_RGB( VLC_CODEC_RGB15, PIX_FMT_RGB555, PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB16, PIX_FMT_RGB565, PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB24, PIX_FMT_BGR24, PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) ++ VLC_RGB( VLC_CODEC_RGB15, AV_PIX_FMT_RGB555, AV_PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB16, AV_PIX_FMT_RGB565, AV_PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) + +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32, PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32, AV_PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32_1, AV_PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) + + #ifdef AV_PIX_FMT_0BGR32 + VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_0BGR32, AV_PIX_FMT_0RGB32, 0x000000ff, 0x0000ff00, 0x00ff0000 ) + #endif + +- {VLC_CODEC_RGBA, PIX_FMT_RGBA, 0, 0, 0 }, +- {VLC_CODEC_ARGB, PIX_FMT_ARGB, 0, 0, 0 }, +- {VLC_CODEC_BGRA, PIX_FMT_BGRA, 0, 0, 0 }, +- {VLC_CODEC_GREY, PIX_FMT_GRAY8, 0, 0, 0}, ++ {VLC_CODEC_RGBA, AV_PIX_FMT_RGBA, 0, 0, 0 }, ++ {VLC_CODEC_ARGB, AV_PIX_FMT_ARGB, 0, 0, 0 }, ++ {VLC_CODEC_BGRA, AV_PIX_FMT_BGRA, 0, 0, 0 }, ++ {VLC_CODEC_GREY, AV_PIX_FMT_GRAY8, 0, 0, 0}, + + /* Paletized RGB */ +- {VLC_CODEC_RGBP, PIX_FMT_PAL8, 0, 0, 0}, ++ {VLC_CODEC_RGBP, AV_PIX_FMT_PAL8, 0, 0, 0}, + + #if LIBAVUTIL_VERSION_CHECK(51, 42, 0, 74,100) + {VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP, 0, 0, 0 }, +@@ -201,5 +201,5 @@ int FindFfmpegChroma( vlc_fourcc_t fourcc ) + for( int i = 0; chroma_table[i].i_chroma != 0; i++ ) + if( chroma_table[i].i_chroma == fourcc ) + return chroma_table[i].i_chroma_id; +- return PIX_FMT_NONE; ++ return AV_PIX_FMT_NONE; + } +diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c +index c115db9..ae600e8 100644 +--- a/modules/codec/avcodec/video.c ++++ b/modules/codec/avcodec/video.c +@@ -1004,7 +1004,7 @@ static picture_t *lavc_dr_GetFrame(struct AVCodecContext *ctx, + if (GetVlcChroma(&dec->fmt_out.video, ctx->pix_fmt) != VLC_SUCCESS) + return NULL; + dec->fmt_out.i_codec = dec->fmt_out.video.i_chroma; +- if (ctx->pix_fmt == PIX_FMT_PAL8) ++ if (ctx->pix_fmt == AV_PIX_FMT_PAL8) + return NULL; + + int width = frame->width; +@@ -1180,7 +1180,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + if (GetVlcChroma(&p_dec->fmt_out.video, p_context->pix_fmt) != VLC_SUCCESS) + goto no_dr; + +- if (p_context->pix_fmt == PIX_FMT_PAL8) ++ if (p_context->pix_fmt == AV_PIX_FMT_PAL8) + goto no_dr; + + p_dec->fmt_out.i_codec = p_dec->fmt_out.video.i_chroma; +@@ -1215,7 +1215,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + goto no_dr; + } + +- if( p_context->pix_fmt == PIX_FMT_YUV422P ) ++ if( p_context->pix_fmt == AV_PIX_FMT_YUV422P ) + { + if( 2 * p_pic->p[1].i_pitch != p_pic->p[0].i_pitch || + 2 * p_pic->p[2].i_pitch != p_pic->p[0].i_pitch ) +@@ -1325,7 +1325,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + + /* Enumerate available formats */ + bool can_hwaccel = false; +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(pi_fmt[i]); + if (dsc == NULL) +@@ -1352,7 +1352,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + if( p_va == NULL ) + goto end; + +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + if( p_va->pix_fmt != pi_fmt[i] ) + continue; +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 569e0f5..4e0ecf1 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -257,35 +257,35 @@ static void FixParameters( int *pi_fmt, bool *pb_has_a, bool *pb_swap_uv, vlc_fo + switch( fmt ) + { + case VLC_CODEC_YUV422A: +- *pi_fmt = PIX_FMT_YUV422P; ++ *pi_fmt = AV_PIX_FMT_YUV422P; + *pb_has_a = true; + break; + case VLC_CODEC_YUV420A: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_has_a = true; + break; + case VLC_CODEC_YUVA: +- *pi_fmt = PIX_FMT_YUV444P; ++ *pi_fmt = AV_PIX_FMT_YUV444P; + *pb_has_a = true; + break; + case VLC_CODEC_RGBA: +- *pi_fmt = PIX_FMT_BGR32; ++ *pi_fmt = AV_PIX_FMT_BGR32; + *pb_has_a = true; + break; + case VLC_CODEC_ARGB: +- *pi_fmt = PIX_FMT_BGR32_1; ++ *pi_fmt = AV_PIX_FMT_BGR32_1; + *pb_has_a = true; + break; + case VLC_CODEC_BGRA: +- *pi_fmt = PIX_FMT_RGB32; ++ *pi_fmt = AV_PIX_FMT_RGB32; + *pb_has_a = true; + break; + case VLC_CODEC_YV12: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_swap_uv = true; + break; + case VLC_CODEC_YV9: +- *pi_fmt = PIX_FMT_YUV410P; ++ *pi_fmt = AV_PIX_FMT_YUV410P; + *pb_swap_uv = true; + break; + default: +@@ -314,7 +314,7 @@ static int GetParameters( ScalerConfiguration *p_cfg, + { + if( p_fmti->i_chroma == VLC_CODEC_YUVP && ALLOW_YUVP ) + { +- i_fmti = i_fmto = PIX_FMT_GRAY8; ++ i_fmti = i_fmto = AV_PIX_FMT_GRAY8; + i_sws_flags = SWS_POINT; + } + } +@@ -327,9 +327,9 @@ static int GetParameters( ScalerConfiguration *p_cfg, + * Without SWS_ACCURATE_RND the quality is really bad for some conversions */ + switch( i_fmto ) + { +- case PIX_FMT_ARGB: +- case PIX_FMT_RGBA: +- case PIX_FMT_ABGR: ++ case AV_PIX_FMT_ARGB: ++ case AV_PIX_FMT_RGBA: ++ case AV_PIX_FMT_ABGR: + i_sws_flags |= SWS_ACCURATE_RND; + break; + } +@@ -403,8 +403,8 @@ static int Init( filter_t *p_filter ) + const unsigned i_fmto_visible_width = p_fmto->i_visible_width * p_sys->i_extend_factor; + for( int n = 0; n < (cfg.b_has_a ? 2 : 1); n++ ) + { +- const int i_fmti = n == 0 ? cfg.i_fmti : PIX_FMT_GRAY8; +- const int i_fmto = n == 0 ? cfg.i_fmto : PIX_FMT_GRAY8; ++ const int i_fmti = n == 0 ? cfg.i_fmti : AV_PIX_FMT_GRAY8; ++ const int i_fmto = n == 0 ? cfg.i_fmto : AV_PIX_FMT_GRAY8; + struct SwsContext *ctx; + + ctx = sws_getContext( i_fmti_visible_width, p_fmti->i_visible_height, i_fmti, +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch new file mode 100644 index 000000000..56744e7de --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch @@ -0,0 +1,45 @@ +From 6fa8a4a9bb64ff34328aae46acd600f8502b2c05 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 09:07:39 +0200 +Subject: [PATCH] SWSCALE: fix compilation with 4.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit 2b23857c68622edda76b72b74aeb3d943ee277c9) +Signed-off-by: Rafaël Carré +--- + modules/video_chroma/swscale.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 4e0ecf1..26d0d6f 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -36,6 +36,7 @@ + #include + + #include ++#include + + #ifdef __APPLE__ + # include +@@ -235,6 +236,7 @@ static int GetSwsCpuMask(void) + { + int i_sws_cpu = 0; + ++#if LIBSWSCALE_VERSION_MAJOR < 4 + #if defined(__i386__) || defined(__x86_64__) + if( vlc_CPU_MMX() ) + i_sws_cpu |= SWS_CPU_CAPS_MMX; +@@ -248,6 +250,7 @@ static int GetSwsCpuMask(void) + if( vlc_CPU_ALTIVEC() ) + i_sws_cpu |= SWS_CPU_CAPS_ALTIVEC; + #endif ++#endif + + return i_sws_cpu; + } +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb new file mode 100644 index 000000000..b5be04cb9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb @@ -0,0 +1,19 @@ +require ${BPN}.inc + +# work around build failure +EXTRA_OECONF += " --enable-libxml2=no" + +SRC_URI += "file://0001-enable-subdir-objects.patch \ + file://0002-glibc-does-not-provide-strlcpy.patch \ + file://0003-use-am-path-libgcrypt.patch \ + file://0004-modules-gui-qt4-out-of-tree-build.patch \ + file://0005-libpostproc-header-check.patch \ + file://0006-make-opencv-configurable.patch \ + file://0007-use-vorbisidec.patch \ + file://0008-fix-luaL-checkint.patch \ + file://0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch \ + file://0010-SWSCALE-fix-compilation-with-4.x.patch \ +" + +SRC_URI[md5sum] = "f98d60f0f59ef72b6e3407f2ff09bda6" +SRC_URI[sha256sum] = "9ad23128be16f9b40ed772961272cb0748ed8e4aa1bc79c129e589feebea5fb5" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch new file mode 100644 index 000000000..b623dbf37 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch @@ -0,0 +1,49 @@ +Upstream-Status: Backport + +Backport patch to fix CVE-2015-6749 from: + +https://trac.xiph.org/ticket/2212 + +Signed-off-by: Kai Kang +--- +From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001 +From: Mark Harris +Date: Sun, 30 Aug 2015 05:54:46 -0700 +Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input + +Fixes #2212 +--- + oggenc/audio.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/oggenc/audio.c b/oggenc/audio.c +index 477da8c..4921fb9 100644 +--- a/oggenc/audio.c ++++ b/oggenc/audio.c +@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] = + int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + { + int aifc; /* AIFC or AIFF? */ +- unsigned int len; +- unsigned char *buffer; ++ unsigned int len, readlen; ++ unsigned char buffer[22]; + unsigned char buf2[8]; + aiff_fmt format; + aifffile *aiff = malloc(sizeof(aifffile)); +@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + return 0; /* Weird common chunk */ + } + +- buffer = alloca(len); +- +- if(fread(buffer,1,len,in) < len) ++ readlen = len < sizeof(buffer) ? len : sizeof(buffer); ++ if(fread(buffer,1,readlen,in) < readlen || ++ (len > readlen && !seek_forward(in, len-readlen))) + { + fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n")); + return 0; +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb new file mode 100644 index 000000000..2683555f1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Vorbis Tools" +DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ +that is free of intellectual property restrictions. vorbis-tools \ +include some command line applications to use the libraries." +HOMEPAGE = "http://www.vorbis.com/" +BUGTRACKER = "https://trac.xiph.org" +SECTION = "multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libogg libvorbis curl libao" + +SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \ + file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \ + " + +SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6" +SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc" + +inherit autotools pkgconfig gettext + +PACKAGECONFIG ??= "flac" +PACKAGECONFIG[flac] = ",--without-flac,flac,libflac" +PACKAGECONFIG[speex] = ",--without-speex,speex,speex" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb new file mode 100644 index 000000000..44f135a21 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb @@ -0,0 +1,7 @@ +require libmediaart.inc + +SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz" +SRC_URI[md5sum] = "0b65d64398d2f3dff89534c9dfffab4f" +SRC_URI[sha256sum] = "94668adb29d4dc3115b0fd105942ebd5ca6f5f9dbb2afa8a191a73a747dd506f" + +S = "${WORKDIR}/libmediaart-${PV}" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc new file mode 100644 index 000000000..57dca9c17 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart.inc @@ -0,0 +1,14 @@ +SUMMARY = "Library tasked with managing, extracting and handling media art caches" + +LICENSE = "LGPLv2+ & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ + file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \ + file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e" + +DEPENDS = "glib-2.0 gdk-pixbuf" + +GNOME_COMPRESS_TYPE = "xz" + +inherit gnomebase gtk-doc gobject-introspection + +EXTRA_OECONF = "--disable-qt --enable-gdkpixbuf" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb new file mode 100644 index 000000000..eb45974b1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb @@ -0,0 +1,4 @@ +require libmediaart.inc + +SRC_URI[archive.md5sum] = "1a44933d4cd0064e3c76d8d0ddacddc9" +SRC_URI[archive.sha256sum] = "3a9dffcad862aed7c0921579b93080d694b8a66f3676bfee8037867f653a1cd3" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch new file mode 100644 index 000000000..aff1cb184 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch @@ -0,0 +1,41 @@ +Upstream-Status: Inappropriate [configuration] + +From 1921498bcc06408e8b051a3a9e9ce4182998f748 Mon Sep 17 00:00:00 2001 +From: David Schleef +Date: Fri, 8 Apr 2011 10:05:49 -0700 +Subject: [PATCH 10/10] Fix --enable-vfp flag + +Patch from Christophe Lyon, fixes #36084. +--- + configure.ac | 4 ++-- + liboil/arm/Makefile.am | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 98c81fb..407d88c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -188,8 +188,8 @@ fi + AC_ARG_ENABLE(vfp, + AC_HELP_STRING([--enable-vfp],[compile with Vector Floating-point unit support]), + enable_vfp=$enableval,enable_vfp=yes) +-if test "x$enable-vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then +- AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"], ++if test "x$enable_vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then ++ AS_COMPILER_FLAG(["-mfpu=vfp"], + [VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"], + true) + #AS_COMPILER_FLAG(["-Wa,-mfloat-abi=softfp"], +diff --git a/liboil/arm/Makefile.am b/liboil/arm/Makefile.am +index ead08ed..cd8d9fa 100644 +--- a/liboil/arm/Makefile.am ++++ b/liboil/arm/Makefile.am +@@ -6,4 +6,5 @@ libarm_la_SOURCES = \ + math_vfp_asm.S + + libarm_la_CFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS) ++libarm_la_CCASFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS) + +-- +1.7.6 + diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch new file mode 100644 index 000000000..c8e3c1f72 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch @@ -0,0 +1,19 @@ +Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=31358 + +configure: fix whitelisting of x86_64 unaligned memory access + +Fix typo in whitelist so cross-compile works for x86_64. + +Upstream-Status: Inappropriate [configuration] + +--- liboil-0.3.17/m4/as-unaligned-access.m4.orig 2009-02-26 14:40:08.000000000 -0500 ++++ liboil-0.3.17/m4/as-unaligned-access.m4 2010-11-03 12:19:55.000000000 -0400 +@@ -9,7 +9,7 @@ + _AS_ECHO_N([(blacklisted) ]) + as_cv_unaligned_access=no + ;; +- i?86*|x86_64|amd64|powerpc*|m68k*|cris*) ++ i?86*|x86_64*|amd64*|powerpc*|m68k*|cris*) + _AS_ECHO_N([(whitelisted) ]) + as_cv_unaligned_access=yes + ;; diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch new file mode 100644 index 000000000..473380e9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch @@ -0,0 +1,222 @@ +Upstream-Status: Pending + +Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors. + +Signed-Off-By: Nitin A Kamble +2011/12/01 + + +Index: liboil-0.3.17/liboil/amd64/wavelet.c +=================================================================== +--- liboil-0.3.17.orig/liboil/amd64/wavelet.c ++++ liboil-0.3.17/liboil/amd64/wavelet.c +@@ -21,14 +21,14 @@ deinterleave2_asm (int16_t *d1, int16_t + asm volatile ("\n" + " sub $2, %%rcx\n" + "1:\n" +- " movw (%1,%%rcx,4), %%ax\n" +- " movw %%ax, (%0,%%rcx,2)\n" +- " movw 2(%1,%%rcx,4), %%ax\n" +- " movw %%ax, (%2,%%rcx,2)\n" +- " movw 4(%1,%%rcx,4), %%ax\n" +- " movw %%ax, 2(%0,%%rcx,2)\n" +- " movw 6(%1,%%rcx,4), %%ax\n" +- " movw %%ax, 2(%2,%%rcx,2)\n" ++ " movw (%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, (%q0,%%rcx,2)\n" ++ " movw 2(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, (%q2,%%rcx,2)\n" ++ " movw 4(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, 2(%q0,%%rcx,2)\n" ++ " movw 6(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, 2(%q2,%%rcx,2)\n" + " sub $2, %%rcx\n" + " jge 1b\n" + : "+r" (d1), "+r" (s_2xn), "+r" (d2), "+c" (n) +@@ -53,20 +53,20 @@ deinterleave2_mmx (int16_t *d1, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm0\n" +- " movq 8(%1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm0\n" ++ " movq 8(%q1,%%rcx,4), %%mm1\n" + " pslld $16, %%mm0\n" + " pslld $16, %%mm1\n" + " psrad $16, %%mm0\n" + " psrad $16, %%mm1\n" + " packssdw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" +- " movq (%1,%%rcx,4), %%mm0\n" +- " movq 8(%1,%%rcx,4), %%mm1\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" ++ " movq (%q1,%%rcx,4), %%mm0\n" ++ " movq 8(%q1,%%rcx,4), %%mm1\n" + " psrad $16, %%mm0\n" + " psrad $16, %%mm1\n" + " packssdw %%mm1, %%mm0\n" +- " movq %%mm0, (%2,%%rcx,2)\n" ++ " movq %%mm0, (%q2,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -93,10 +93,10 @@ deinterleave2_mmx_2 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " pshufw $0xd8, (%1,%%rcx,4), %%mm0\n" +- " movd %%mm0, (%0,%%rcx,2)\n" +- " pshufw $0x8d, (%1,%%rcx,4), %%mm0\n" +- " movd %%mm0, (%2,%%rcx,2)\n" ++ " pshufw $0xd8, (%q1,%%rcx,4), %%mm0\n" ++ " movd %%mm0, (%q0,%%rcx,2)\n" ++ " pshufw $0x8d, (%q1,%%rcx,4), %%mm0\n" ++ " movd %%mm0, (%q2,%%rcx,2)\n" + " add $2, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -123,16 +123,16 @@ deinterleave2_mmx_3 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm1\n" +- " movq (%1,%%rcx,4), %%mm2\n" +- " movq 8(%1,%%rcx,4), %%mm0\n" ++ " movq (%q1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm2\n" ++ " movq 8(%q1,%%rcx,4), %%mm0\n" + " punpcklwd %%mm0, %%mm1\n" + " punpckhwd %%mm0, %%mm2\n" + " movq %%mm1, %%mm0\n" + " punpcklwd %%mm2, %%mm0\n" + " punpckhwd %%mm2, %%mm1\n" +- " movq %%mm0, (%0,%%rcx,2)\n" +- " movq %%mm1, (%2,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" ++ " movq %%mm1, (%q2,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -159,26 +159,26 @@ deinterleave2_mmx_4 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm1\n" + " movq %%mm1, %%mm2\n" +- " movq 8(%1,%%rcx,4), %%mm0\n" +- " movq 16(%1,%%rcx,4), %%mm5\n" ++ " movq 8(%q1,%%rcx,4), %%mm0\n" ++ " movq 16(%q1,%%rcx,4), %%mm5\n" + " punpcklwd %%mm0, %%mm1\n" + " movq %%mm5, %%mm6\n" + " punpckhwd %%mm0, %%mm2\n" +- " movq 24(%1,%%rcx,4), %%mm4\n" ++ " movq 24(%q1,%%rcx,4), %%mm4\n" + " movq %%mm1, %%mm0\n" + " punpcklwd %%mm4, %%mm5\n" + " punpcklwd %%mm2, %%mm0\n" + " punpckhwd %%mm4, %%mm6\n" + " punpckhwd %%mm2, %%mm1\n" + " movq %%mm5, %%mm4\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " punpcklwd %%mm6, %%mm4\n" +- " movq %%mm1, (%2,%%rcx,2)\n" ++ " movq %%mm1, (%q2,%%rcx,2)\n" + " punpckhwd %%mm6, %%mm5\n" +- " movq %%mm4, 8(%0,%%rcx,2)\n" +- " movq %%mm5, 8(%2,%%rcx,2)\n" ++ " movq %%mm4, 8(%q0,%%rcx,2)\n" ++ " movq %%mm5, 8(%q2,%%rcx,2)\n" + " add $8, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -252,13 +252,13 @@ interleave2_mmx (int16_t *d_2xn, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,2), %%mm0\n" +- " movq (%2,%%rcx,2), %%mm1\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" + " movq %%mm0, %%mm2\n" + " punpckhwd %%mm1, %%mm0\n" + " punpcklwd %%mm1, %%mm2\n" +- " movq %%mm2, (%0,%%rcx,4)\n" +- " movq %%mm0, 8(%0,%%rcx,4)\n" ++ " movq %%mm2, (%q0,%%rcx,4)\n" ++ " movq %%mm0, 8(%q0,%%rcx,4)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -285,12 +285,12 @@ lift_add_shift1_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" + " paddw %%mm2, %%mm1\n" + " psraw $1, %%mm1\n" +- " paddw (%1,%%rcx,2), %%mm1\n" +- " movq %%mm1, (%0,%%rcx,2)\n" ++ " paddw (%q1,%%rcx,2), %%mm1\n" ++ " movq %%mm1, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -317,13 +317,13 @@ lift_sub_shift1_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" +- " movq (%1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" + " paddw %%mm2, %%mm1\n" + " psraw $1, %%mm1\n" + " psubw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -350,12 +350,12 @@ lift_add_shift2_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" + " paddw %%mm2, %%mm1\n" + " psraw $2, %%mm1\n" +- " paddw (%1,%%rcx,2), %%mm1\n" +- " movq %%mm1, (%0,%%rcx,2)\n" ++ " paddw (%q1,%%rcx,2), %%mm1\n" ++ " movq %%mm1, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -382,13 +382,13 @@ lift_sub_shift2_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" +- " movq (%1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" + " paddw %%mm2, %%mm1\n" + " psraw $2, %%mm1\n" + " psubw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch new file mode 100644 index 000000000..892d44131 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch @@ -0,0 +1,24 @@ +Upstream-Status: Inappropriate [disable feature] + +--- liboil-0.3.9/liboil/liboilfunction.c.old 2006-09-18 13:03:20.000000000 +0100 ++++ liboil-0.3.9/liboil/liboilfunction.c 2006-09-18 13:04:10.000000000 +0100 +@@ -345,7 +345,9 @@ + return; + } + +- test = oil_test_new (klass); ++ klass->chosen_impl = klass->reference_impl; ++ klass->func = klass->reference_impl->func; ++/* test = oil_test_new (klass); + if (test == NULL) { + OIL_ERROR ("failed to test function class %s", klass->name); + return; +@@ -385,7 +387,7 @@ + klass->chosen_impl = min_impl; + klass->func = min_impl->func; + +- oil_test_free (test); ++ oil_test_free (test);*/ + } + + static void diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb new file mode 100644 index 000000000..03b778521 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb @@ -0,0 +1,27 @@ +SUMMARY = "Library of simple functions optimized for various CPUs" +HOMEPAGE = "http://liboil.freedesktop.org/" +BUGTRACKER = "https://bugs.freedesktop.org/" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=ad80780d9c5205d63481a0184e199a15 \ + file://liboil/liboil.h;endline=28;md5=95c794a66b88800d949fed17e437d9fb \ + file://liboil/liboilcpu.c;endline=28;md5=89da69a61d88eedcba066f42353fb75a \ + file://examples/example1.c;endline=29;md5=9d4dad9fcbbdf0441ee063f8af5170c9 \ + file://testsuite/trans.c;endline=29;md5=380ecd43121fe3dcc0d8d7e5984f283d" + +DEPENDS = "glib-2.0" +PR = "r5" + +SRC_URI = "http://liboil.freedesktop.org/download/${BPN}-${PV}.tar.gz \ + file://no-tests.patch \ + file://fix-unaligned-whitelist.patch \ + file://0001-Fix-enable-vfp-flag.patch \ + file://liboil_fix_for_x32.patch \ + " + +SRC_URI[md5sum] = "47dc734f82faeb2964d97771cfd2e701" +SRC_URI[sha256sum] = "105f02079b0b50034c759db34b473ecb5704ffa20a5486b60a8b7698128bfc69" + +inherit autotools pkgconfig + +ARM_INSTRUCTION_SET = "arm" diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb new file mode 100644 index 000000000..8ee6634b5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "library implementing Secure RTP (RFC 3711)" +HOMEPAGE = "https://github.com/cisco/libsrtp" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=15bc16b9d2e305974dde47e733883714" + +SRC_URI = "https://github.com/cisco/libsrtp/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz" +SRC_URI[md5sum] = "2309aa6027992810a4285b042c71e644" +SRC_URI[sha256sum] = "86e1efe353397c0751f6bdd709794143bd1b76494412860f16ff2b6d9c304eda" + +inherit autotools + +do_install[postfuncs] += " rm_unused_bindir " + +rm_unused_bindir() { + rmdir ${D}/${bindir} +} diff --git a/import-layers/meta-openembedded/meta-networking/COPYING.MIT b/import-layers/meta-openembedded/meta-networking/COPYING.MIT new file mode 100644 index 000000000..fb950dc69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/import-layers/meta-openembedded/meta-networking/MAINTAINERS b/import-layers/meta-openembedded/meta-networking/MAINTAINERS new file mode 100644 index 000000000..f3896725c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/MAINTAINERS @@ -0,0 +1,38 @@ +This file contains a list of maintainers for the meta-networking layer. + +Please submit any patches against meta-networking to the OpenEmbedded +development mailing list (openembedded-devel@lists.openembedded.org) with +'[meta-networking][krogoth]' in the subject. + +When sending single patches, please use something like: + + git send-email -1 -M \ + --to openembedded-devel@lists.openembedded.org \ + --subject-prefix=meta-networking][krogoth][PATCH + +krogoth Branch Maintainer: +Armin Kuster + +You may also contact the maintainers directly. + +Descriptions of section entries: + + M: Mail patches to: FullName + F: Files and directories with wildcard patterns. + A trailing slash includes all files and subdirectory files. + F: recipes-devtools/ all files in and below recipes-devtools + F: recipes-selinux/* all files in recipes-selinux, but not below + One pattern per line. Multiple F: lines acceptable. + +Please keep this list in alphabetical order. + +Maintainers List (try to look for most precise areas first) + +COMMON +M: Joe MacDonald +F: conf +F: recipes-* + +NETKIT +M: Armin Kuster +F: recipes-netkit diff --git a/import-layers/meta-openembedded/meta-networking/README b/import-layers/meta-openembedded/meta-networking/README new file mode 100644 index 000000000..e1ba27d83 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/README @@ -0,0 +1,40 @@ +meta-networking +=============== + +This layer is intended to be a central point for networking-related +packages and configuration. It should be useful directly on top of +oe-core and compliments meta-openembedded. It should be primarily useful +to the following groups: + + - Anyone building a small networking device (eg. a home router / + bridge / switch). + + - Anyone wanting to add network services to their device (eg. + anything that might benefit from a small ftp/tftp server) + +Dependencies +------------ + +This layer depends on: + +URI: git://github.com/openembedded/openembedded-core.git +branch: master +revision: HEAD + +For some recipes, the meta-oe layer is required: + +URI: git://github.com/openembedded/meta-openembedded.git +subdirectory: meta-oe +branch: master +revision: HEAD + +URI: git://github.com/openembedded/meta-openembedded.git +subdirectory: meta-python +branch: master +revision: HEAD + +Maintenance +----------- + +Please see the MAINTAINERS file for information on contacting the +maintainers of this layer, as well as instructions for submitting patches. diff --git a/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass new file mode 100644 index 000000000..45fbcc342 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass @@ -0,0 +1,95 @@ +# waf is a build system which is used by samba related project. +# Obtain details from https://wiki.samba.org/index.php/Waf +# +inherit qemu pythonnative + +DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" + +CONFIGUREOPTS = " --prefix=${prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --oldincludedir=${oldincludedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + " + +# Three methods for waf cross compile: +# 1. answers: +# Only --cross-answers - try the cross-answers file, and if +# there's no corresponding answer, add to the file and mark +# the configure process as unfinished. +# 2. exec: +# Only --cross-execute - get the answer from cross-execute, +# an emulator (qemu) is used to run cross-compiled binaries. +# 3. both: +# (notes: not supported in lower version of some packages, +# please check buildtools/wafsamba/samba_cross.py in the +# package source) +# Try the cross-answers file first, and if there is no +# corresponding answer, use cross-execute to get an answer, +# and add that answer to the file. +# +# The first one is preferred since it may fail with 2 or 3 if +# the target board is not suported by qemu, but we can use 2 or 3 +# to help generate the cross answer when adding new board support. +CROSS_METHOD ?= "answer" + +do_configure() { + + # Prepare the cross-answers file + CROSS_ANSWERS="${B}/cross-answers-${TARGET_ARCH}.txt" + if [ -e ${CROSS_ANSWERS} ]; then + rm -f ${CROSS_ANSWERS} + fi + echo 'Checking uname machine type: "${TARGET_ARCH}"' >> ${CROSS_ANSWERS} + echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS} + cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS} + + qemu_binary="${@qemu_target_binary(d)}" + if [ "${qemu_binary}" = "qemu-allarch" ]; then + qemu_binary="qemuwrapper" + fi + + libdir_qemu="${STAGING_DIR_HOST}/${libdir}" + base_libdir_qemu="${STAGING_DIR_HOST}/${base_libdir}" + + CROSS_EXEC="${qemu_binary} \ + ${QEMU_OPTIONS} \ + -L ${STAGING_DIR_HOST} \ + -E LD_LIBRARY_PATH=${libdir_qemu}:${base_libdir_qemu}" + + export BUILD_SYS=${BUILD_SYS} + export HOST_SYS=${HOST_SYS} + export BUILD_ARCH=${BUILD_ARCH} + export HOST_ARCH=${HOST_ARCH} + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + export PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} + + CONFIG_CMD="./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} --cross-compile" + if [ "${CROSS_METHOD}" = "answer" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" + elif [ "${CROSS_METHOD}" = "exec" ]; then + ${CONFIG_CMD} --cross-exec="${CROSS_EXEC}" + elif [ "${CROSS_METHOD}" = "both" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" --cross-exec="${CROSS_EXEC}" + else + echo "ERROR: ${CROSS_METHOD} is not valid for cross-compile!" + exit 1 + fi +} + +do_compile () { + python ./buildtools/bin/waf ${PARALLEL_MAKE} +} + +do_install() { + oe_runmake install DESTDIR=${D} +} diff --git a/import-layers/meta-openembedded/meta-networking/conf/layer.conf b/import-layers/meta-openembedded/meta-networking/conf/layer.conf new file mode 100644 index 000000000..5fd636a87 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/conf/layer.conf @@ -0,0 +1,23 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "networking-layer" +BBFILE_PATTERN_networking-layer := "^${LAYERDIR}/" +BBFILE_PRIORITY_networking-layer = "5" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_networking-layer = "1" + +LAYERDEPENDS_networking-layer = "core" +LAYERDEPENDS_networking-layer += "openembedded-layer" +LAYERDEPENDS_networking-layer += "meta-python" + +LICENSE_PATH += "${LAYERDIR}/licenses" + +# used by waf-samba.bbclass +WAF_CROSS_ANSWERS_PATH = "${LAYERDIR}/files/waf-cross-answers" diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/README b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/README new file mode 100644 index 000000000..dda45c508 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/README @@ -0,0 +1,3 @@ +The files in this directory are cross answers files +used by waf-samba.bbclass, please see waf-samba.bbclass +for details about how they are used. diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt new file mode 100644 index 000000000..bbf7f1620 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt @@ -0,0 +1,38 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt new file mode 100644 index 000000000..e926fcd3c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt new file mode 100644 index 000000000..e926fcd3c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt new file mode 100644 index 000000000..e926fcd3c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt new file mode 100644 index 000000000..18bfa0203 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt new file mode 100644 index 000000000..8fa015ab9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt @@ -0,0 +1,38 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: OK +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt new file mode 100644 index 000000000..18bfa0203 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt new file mode 100644 index 000000000..fb93b56fc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt new file mode 100644 index 000000000..fd585f0d5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: (255, "") +Checking if can we convert from IBM850 to UCS-2LE: (255, "") +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt new file mode 100644 index 000000000..bbf7f1620 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt @@ -0,0 +1,38 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK diff --git a/import-layers/meta-openembedded/meta-networking/licenses/DMTF b/import-layers/meta-openembedded/meta-networking/licenses/DMTF new file mode 100644 index 000000000..54a28120e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/licenses/DMTF @@ -0,0 +1,34 @@ +// Copyright 1998-2008 Distributed Management Task Force, Inc. (DMTF). +// All rights reserved. +// DMTF is a not-for-profit association of industry members dedicated +// to promoting enterprise and systems management and interoperability. +// DMTF specifications and documents may be reproduced by +// members and non-members, provided that correct attribution is given. +// As DMTF specifications may be revised from time to time, +// the particular version and release date should always be noted. +// +// Implementation of certain elements of this standard or proposed +// standard may be subject to third party patent rights, including +// provisional patent rights (herein "patent rights"). DMTF makes +// no representations to users of the standard as to the existence +// of such rights, and is not responsible to recognize, disclose, or +// identify any or all such third party patent right, owners or +// claimants, nor for any incomplete or inaccurate identification or +// disclosure of such rights, owners or claimants. DMTF shall have no +// liability to any party, in any manner or circumstance, under any +// legal theory whatsoever, for failure to recognize, disclose, or +// identify any such third party patent rights, or for such party's +// reliance on the standard or incorporation thereof in its product, +// protocols or testing procedures. DMTF shall have no liability to +// any party implementing such standard, whether such implementation +// is foreseeable or not, nor to any patent owner or claimant, and shall +// have no liability or responsibility for costs or losses incurred if +// a standard is withdrawn or modified after publication, and shall be +// indemnified and held harmless by any party implementing the +// standard from any and all claims of infringement by a patent owner +// for such implementations. +// +// For information about patents held by third-parties which have +// notified the DMTF that, in their opinion, such patent may relate to +// or impact implementations of DMTF standards, visit +// http://www.dmtf.org/about/policies/disclosures.php. diff --git a/import-layers/meta-openembedded/meta-networking/licenses/copyleft-next-0.3.0 b/import-layers/meta-openembedded/meta-networking/licenses/copyleft-next-0.3.0 new file mode 100644 index 000000000..a66d5bf5e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/licenses/copyleft-next-0.3.0 @@ -0,0 +1,219 @@ + copyleft-next 0.3.0 ("this License") + Release date: 2013-05-16 + +1. License Grants; No Trademark License + + Subject to the terms of this License, I grant You: + + a) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable + copyright license, to reproduce, Distribute, prepare derivative works + of, publicly perform and publicly display My Work. + + b) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable + patent license under Licensed Patents to make, have made, use, sell, + offer for sale, and import Covered Works. + + This License does not grant any rights in My name, trademarks, service + marks, or logos. + +2. Distribution: General Conditions + + You may Distribute Covered Works, provided that You (i) inform + recipients how they can obtain a copy of this License; (ii) satisfy the + applicable conditions of sections 3 through 6; and (iii) preserve all + Legal Notices contained in My Work (to the extent they remain + pertinent). "Legal Notices" means copyright notices, license notices, + license texts, and author attributions, but does not include logos, + other graphical images, trademarks or trademark legends. + +3. Conditions for Distributing Derived Works; Outbound GPL Compatibility + + If You Distribute a Derived Work, You must license the entire Derived + Work as a whole under this License, with prominent notice of such + licensing. This condition may not be avoided through such means as + separate Distribution of portions of the Derived Work. You may + additionally license the Derived Work under the GPL, so that the + recipient may further Distribute the Derived Work under either this + License or the GPL. + +4. Condition Against Further Restrictions; Inbound License Compatibility + + When Distributing a Covered Work, You may not impose further + restrictions on the exercise of rights in the Covered Work granted under + this License. This condition is not excused merely because such + restrictions result from Your compliance with conditions or obligations + extrinsic to this License (such as a court order or an agreement with a + third party). + + However, You may Distribute a Covered Work incorporating material + governed by a license that is both OSI-Approved and FSF-Free as of the + release date of this License, provided that Your Distribution complies + with such other license. + +5. Conditions for Distributing Object Code + + You may Distribute an Object Code form of a Covered Work, provided that + you accompany the Object Code with a URL through which the Corresponding + Source is made available, at no charge, by some standard or customary + means of providing network access to source code. + + If you Distribute the Object Code in a physical product or tangible + storage medium ("Product"), the Corresponding Source must be available + through such URL for two years from the date of Your most recent + Distribution of the Object Code in the Product. However, if the Product + itself contains or is accompanied by the Corresponding Source (made + available in a customarily accessible manner), You need not also comply + with the first paragraph of this section. + + Each recipient of the Covered Work from You is an intended third-party + beneficiary of this License solely as to this section 5, with the right + to enforce its terms. + +6. Symmetrical Licensing Condition for Upstream Contributions + + If You Distribute a work to Me specifically for inclusion in or + modification of a Covered Work (a "Patch"), and no explicit licensing + terms apply to the Patch, You license the Patch under this License, to + the extent of Your copyright in the Patch. This condition does not + negate the other conditions of this License, if applicable to the Patch. + +7. Nullification of Copyleft/Proprietary Dual Licensing + + If I offer to license, for a fee, a Covered Work under terms other than + a license that is OSI-Approved or FSF-Free as of the release date of this + License or a numbered version of copyleft-next released by the + Copyleft-Next Project, then the license I grant You under section 1 is no + longer subject to the conditions in sections 2 through 5. + +8. Copyleft Sunset + + The conditions in sections 2 through 5 no longer apply once fifteen + years have elapsed from the date of My first Distribution of My Work + under this License. + +9. Pass-Through + + When You Distribute a Covered Work, the recipient automatically receives + a license to My Work from Me, subject to the terms of this License. + +10. Termination + + Your license grants under section 1 are automatically terminated if You + + a) fail to comply with the conditions of this License, unless You cure + such noncompliance within thirty days after becoming aware of it, or + + b) initiate a patent infringement litigation claim (excluding + declaratory judgment actions, counterclaims, and cross-claims) + alleging that any part of My Work directly or indirectly infringes + any patent. + + Termination of Your license grants extends to all copies of Covered + Works You subsequently obtain. Termination does not terminate the + rights of those who have received copies or rights from You subject to + this License. + + To the extent permission to make copies of a Covered Work is necessary + merely for running it, such permission is not terminable. + +11. Later License Versions + + The Copyleft-Next Project may release new versions of copyleft-next, + designated by a distinguishing version number ("Later Versions"). + Unless I explicitly remove the option of Distributing Covered Works + under Later Versions, You may Distribute Covered Works under any Later + Version. + +** 12. No Warranty ** +** ** +** My Work is provided "as-is", without warranty. You bear the risk ** +** of using it. To the extent permitted by applicable law, each ** +** Distributor of My Work excludes the implied warranties of title, ** +** merchantability, fitness for a particular purpose and ** +** non-infringement. ** + +** 13. Limitation of Liability ** +** ** +** To the extent permitted by applicable law, in no event will any ** +** Distributor of My Work be liable to You for any damages ** +** whatsoever, whether direct, indirect, special, incidental, or ** +** consequential damages, whether arising under contract, tort ** +** (including negligence), or otherwise, even where the Distributor ** +** knew or should have known about the possibility of such damages. ** + +14. Severability + + The invalidity or unenforceability of any provision of this License + does not affect the validity or enforceability of the remainder of + this License. Such provision is to be reformed to the minimum extent + necessary to make it valid and enforceable. + +15. Definitions + + "Copyleft-Next Project" means the project that maintains the source + code repository at as of the + release date of this License. + + "Corresponding Source" of a Covered Work in Object Code form means (i) + the Source Code form of the Covered Work; (ii) all scripts, + instructions and similar information that are reasonably necessary for + a skilled developer to generate such Object Code from the Source Code + provided under (i); and (iii) a list clearly identifying all Separate + Works (other than those provided in compliance with (ii)) that were + specifically used in building and (if applicable) installing the + Covered Work (for example, a specified proprietary compiler including + its version number). Corresponding Source must be machine-readable. + + "Covered Work" means My Work or a Derived Work. + + "Derived Work" means a work of authorship that copies from, modifies, + adapts, is based on, is a derivative work of, transforms, translates or + contains all or part of My Work, such that copyright permission is + required. The following are not Derived Works: (i) Mere Aggregation; + (ii) a mere reproduction of My Work; and (iii) if My Work fails to + explicitly state an expectation otherwise, a work that merely makes + reference to My Work. + + "Distribute" means to distribute, transfer or make a copy available to + someone else, such that copyright permission is required. + + "Distributor" means Me and anyone else who Distributes a Covered Work. + + "FSF-Free" means classified as 'free' by the Free Software Foundation. + + "GPL" means a version of the GNU General Public License or the GNU + Affero General Public License. + + "I"/"Me"/"My" refers to the individual or legal entity that places My + Work under this License. "You"/"Your" refers to the individual or legal + entity exercising rights in My Work under this License. A legal entity + includes each entity that controls, is controlled by, or is under + common control with such legal entity. "Control" means (a) the power to + direct the actions of such legal entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent of the + outstanding shares or beneficial ownership of such legal entity. + + "Licensed Patents" means all patent claims licensable royalty-free by + Me, now or in the future, that are necessarily infringed by making, + using, or selling My Work, and excludes claims that would be infringed + only as a consequence of further modification of My Work. + + "Mere Aggregation" means an aggregation of a Covered Work with a + Separate Work. + + "My Work" means the particular work of authorship I license to You + under this License. + + "Object Code" means any form of a work that is not Source Code. + + "OSI-Approved" means approved as 'Open Source' by the Open Source + Initiative. + + "Separate Work" means a work that is separate from and independent of a + particular Covered Work and is not by its nature an extension or + enhancement of the Covered Work, and/or a runtime library, standard + library or similar component that is used to generate an Object Code + form of a Covered Work. + + "Source Code" means the preferred form of a work for making + modifications to it. diff --git a/import-layers/meta-openembedded/meta-networking/licenses/netperf b/import-layers/meta-openembedded/meta-networking/licenses/netperf new file mode 100644 index 000000000..3f3ceb2fc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/licenses/netperf @@ -0,0 +1,43 @@ + + + Copyright (C) 1993 Hewlett-Packard Company + ALL RIGHTS RESERVED. + + The enclosed software and documentation includes copyrighted works + of Hewlett-Packard Co. For as long as you comply with the following + limitations, you are hereby authorized to (i) use, reproduce, and + modify the software and documentation, and to (ii) distribute the + software and documentation, including modifications, for + non-commercial purposes only. + + 1. The enclosed software and documentation is made available at no + charge in order to advance the general development of + high-performance networking products. + + 2. You may not delete any copyright notices contained in the + software or documentation. All hard copies, and copies in + source code or object code form, of the software or + documentation (including modifications) must contain at least + one of the copyright notices. + + 3. The enclosed software and documentation has not been subjected + to testing and quality control and is not a Hewlett-Packard Co. + product. At a future time, Hewlett-Packard Co. may or may not + offer a version of the software and documentation as a product. + + 4. THE SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS". + HEWLETT-PACKARD COMPANY DOES NOT WARRANT THAT THE USE, + REPRODUCTION, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR + DOCUMENTATION WILL NOT INFRINGE A THIRD PARTY'S INTELLECTUAL + PROPERTY RIGHTS. HP DOES NOT WARRANT THAT THE SOFTWARE OR + DOCUMENTATION IS ERROR FREE. HP DISCLAIMS ALL WARRANTIES, + EXPRESS AND IMPLIED, WITH REGARD TO THE SOFTWARE AND THE + DOCUMENTATION. HP SPECIFICALLY DISCLAIMS ALL WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + 5. HEWLETT-PACKARD COMPANY WILL NOT IN ANY EVENT BE LIABLE FOR ANY + DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES + (INCLUDING LOST PROFITS) RELATED TO ANY USE, REPRODUCTION, + MODIFICATION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION. + + diff --git a/import-layers/meta-openembedded/meta-networking/licenses/radvd b/import-layers/meta-openembedded/meta-networking/licenses/radvd new file mode 100644 index 000000000..03db0b6ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/licenses/radvd @@ -0,0 +1,37 @@ +The author(s) grant permission for redistribution and use in source and +binary forms, with or without modification, of the software and documentation +provided that the following conditions are met: + +0. If you receive a version of the software that is specifically labelled + as not being for redistribution (check the version message and/or README), + you are not permitted to redistribute that version of the software in any + way or form. +1. All terms of all other applicable copyrights and licenses must be + followed. +2. Redistributions of source code must retain the authors' copyright + notice(s), this list of conditions, and the following disclaimer. +3. Redistributions in binary form must reproduce the authors' copyright + notice(s), this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. +4. All advertising materials mentioning features or use of this software + must display the following acknowledgement with the name(s) of the + authors as specified in the copyright notice(s) substituted where + indicated: + + This product includes software developed by the authors which are + mentioned at the start of the source files and other contributors. + +5. Neither the name(s) of the author(s) nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch new file mode 100644 index 000000000..3ef35ee54 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch @@ -0,0 +1,21 @@ +From: Ben Hutchings +Date: Sat, 23 Aug 2014 12:27:34 -0700 +Subject: crda: Do not run ldconfig if DESTDIR is set + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126028.html] + +Signed-off-by: Ben Hutchings +Signed-off-by: Joe MacDonald + +--- a/Makefile ++++ b/Makefile +@@ -132,7 +132,9 @@ install-libreg: + $(NQ) ' INSTALL libreg' + $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) + $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ ++ifndef DESTDIR + $(Q)ldconfig ++endif + + %.o: %.c regdb.h $(LIBREG) + $(NQ) ' CC ' $@ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch new file mode 100644 index 000000000..aceb56df7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch @@ -0,0 +1,50 @@ +From: Ben Hutchings +Date: Sat, 23 Aug 2014 12:26:37 -0700 +Subject: Fix linking of libraries used by libreg + +The math and crypto libraries are called by and need to be linked to +libreg.so, not to the executables. + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126027.html] + +Signed-off-by: Ben Hutchings +Signed-off-by: Joe MacDonald + +--- a/Makefile ++++ b/Makefile +@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -peda + CFLAGS += -Wall -g + LDLIBREG += -lreg + LDLIBS += $(LDLIBREG) +-LDLIBS += -lm ++LIBREGLDLIBS += -lm + LIBREG += libreg.so + LDFLAGS += -L ./ + +@@ -40,7 +40,7 @@ all_noverify: $(LIBREG) crda intersect r + + ifeq ($(USE_OPENSSL),1) + CFLAGS += -DUSE_OPENSSL -DPUBKEY_DIR=\"$(RUNTIME_PUBKEY_DIR)\" `pkg-config --cflags openssl` +-LDLIBS += `pkg-config --libs openssl` ++LIBREGLDLIBS += `pkg-config --libs openssl` + + ifeq ($(RUNTIME_PUBKEY_ONLY),1) + CFLAGS += -DRUNTIME_PUBKEY_ONLY +@@ -51,7 +51,7 @@ endif + + else + CFLAGS += -DUSE_GCRYPT +-LDLIBS += -lgcrypt ++LIBREGLDLIBS += -lgcrypt + + $(LIBREG): keys-gcrypt.c + +@@ -121,7 +121,7 @@ keys-%.c: utils/key2pub.py $(wildcard $( + + $(LIBREG): regdb.h reglib.h reglib.c + $(NQ) ' CC ' $@ +- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ ++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS) + + install-libreg-headers: + $(NQ) ' INSTALL libreg-headers' diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb new file mode 100644 index 000000000..931a05352 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb @@ -0,0 +1,41 @@ +SUMMARY = "Wireless Central Regulatory Domain Agent" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "copyleft-next-0.3.0 & ISC" +LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe \ + file://${WORKDIR}/wireless-regdb-2014.11.18/LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +DEPENDS = "python-m2crypto-native python-native libgcrypt libnl" + +SRC_URI = "https://www.kernel.org/pub/software/network/crda/${BP}.tar.xz;name=crda \ + https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2014.11.18.tar.xz;name=bin \ + file://do-not-run-ldconfig-if-destdir-is-set.patch \ + file://fix-linking-of-libraries-used-by-reglib.patch \ +" +SRC_URI[crda.md5sum] = "0431fef3067bf503dfb464069f06163a" +SRC_URI[crda.sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf" + +SRC_URI[bin.md5sum] = "d750c402c5510add7380edcb1d9b75b2" +SRC_URI[bin.sha256sum] = "eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd" + +inherit python-dir pythonnative +# Recursive make problem +EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" + +do_compile() { + oe_runmake all_noverify +} + +do_install() { + oe_runmake SBINDIR=${sbindir}/ install + + install -d ${D}${libdir}/crda/ + + install -m 0644 ${WORKDIR}/wireless-regdb-2014.11.18/regulatory.bin ${D}${libdir}/crda/regulatory.bin +} + + +RDEPENDS_${PN} = "udev" +FILES_${PN} += "${libdir}crda/regulatory.bin \ + ${base_libdir}/udev/rules.d/85-regulatory.rules \ +" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb new file mode 100644 index 000000000..48039f07a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb @@ -0,0 +1,26 @@ +SUMMARY = "The dump DAQ test the various inline mode features " +HOMEPAGE = "http://www.snort.org" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0" + +PARALLEL_MAKE = "" + +DEPENDS = "libpcap libpcre libdnet" + +SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ + file://disable-run-test-program-while-cross-compiling.patch " + +# these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking +# this error from test-dependencies script: +# daq/daq/latest lost dependency on libdnet libmnl libnetfilter-queue libnfnetlink +# +# never look to /usr/local lib while cross compiling + +EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \ + --with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}" + +SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" +SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" + +inherit autotools diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch new file mode 100644 index 000000000..a100b7cb8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch @@ -0,0 +1,31 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +configure: error: cannot run test program while cross compiling + +Signed-off-by: Chunrong Guo + +--- a/m4/sf.m4old 2015-10-28 10:21:20.270557986 +0800 ++++ a/m4/sf.m4 2015-10-28 10:23:22.726551974 +0800 +@@ -135,20 +135,7 @@ + echo + exit 1 + fi +- AC_CACHE_CHECK([for libpcap version >= $1], [daq_cv_libpcap_version_1x], [ +- AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [[ +- #include +- #include +- extern char pcap_version[]; +- ]], +- [[ +- if (strcmp(pcap_version, $1) < 0) +- return 1; +- ]])], +- [daq_cv_libpcap_version_1x="yes"], +- [daq_cv_libpcap_version_1x="no"])]) ++ AC_CACHE_CHECK([for libpcap version >= $1], [daq_cv_libpcap_version_1x]) + if test "x$daq_cv_libpcap_version_1x" = "xno"; then + echo + echo " ERROR! Libpcap library version >= $1 not found." diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.10.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.10.1.bb new file mode 100644 index 000000000..cd8042866 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.10.1.bb @@ -0,0 +1,24 @@ +SECTION = "console/network" +SUMMARY = "dhcpcd - a DHCP client" +DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration." + +HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://dhcpcd.c;endline=26;md5=77c40d671aff804ca91ea99556da8e9b" + +SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "a7b83c57f47b62f48373905d3b4f7978" +SRC_URI[sha256sum] = "284abf8c3be0580bbac5eaca95359346ab0d78d4072317b6ce87cc68f2e8ae7b" + +inherit autotools-brokensep + +PACKAGECONFIG ?= "udev ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" + +PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" + +EXTRA_OECONF = "--enable-ipv4" + +FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch new file mode 100644 index 000000000..d4764f586 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch @@ -0,0 +1,31 @@ +Upstream-Status: Pending + +Subject: rcp: fix to work with large files + +When we copy file by rcp command, if the file > 2GB, it will fail. +The cause is that it used incorrect data type on file size in sink() of rcp. + +Signed-off-by: Chen Qi +--- + src/rcp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/rcp.c b/src/rcp.c +index 21f55b6..bafa35f 100644 +--- a/src/rcp.c ++++ b/src/rcp.c +@@ -876,9 +876,9 @@ sink (int argc, char *argv[]) + enum + { YES, NO, DISPLAYED } wrerr; + BUF *bp; +- off_t i, j; ++ off_t i, j, size; + int amt, count, exists, first, mask, mode, ofd, omode; +- int setimes, size, targisdir, wrerrno; ++ int setimes, targisdir, wrerrno; + char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ]; + const char *why; + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch new file mode 100644 index 000000000..bd3ae476b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch @@ -0,0 +1,60 @@ +Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html + +Upstream-Status: Pending + +diff -ur inetutils-1.8.orig/ping/ping_common.h inetutils-1.8/ping/ping_common.h +--- inetutils-1.8.orig/ping/ping_common.h 2010-05-15 20:55:47.000000000 +0930 ++++ inetutils-1.8/ping/ping_common.h 2010-12-01 12:19:08.000000000 +1030 +@@ -17,10 +17,14 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see `http://www.gnu.org/licenses/'. */ + ++#include ++ + #include + #include + #include ++#ifdef HAVE_IPV6 + #include ++#endif + #include + #include + #include +@@ -66,13 +70,19 @@ + (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\ + } while (0) + ++#ifdef HAVE_IPV6 + /* Not sure about this step*/ + #define _PING_BUFLEN(p, USE_IPV6) ((USE_IPV6)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \ + ((p)->ping_datalen + sizeof (icmphdr_t))) ++#else ++#define _PING_BUFLEN(p, USE_IPV6) ((p)->ping_datalen + sizeof (icmphdr_t)) ++#endif + ++#ifdef HAVE_IPV6 + typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest, + struct sockaddr_in6 * from, struct icmp6_hdr * icmp, + int datalen); ++#endif + + typedef int (*ping_efp) (int code, + void *closure, +@@ -81,13 +91,17 @@ + struct ip * ip, icmphdr_t * icmp, int datalen); + + union event { ++#ifdef HAVE_IPV6 + ping_efp6 handler6; ++#endif + ping_efp handler; + }; + + union ping_address { + struct sockaddr_in ping_sockaddr; ++#ifdef HAVE_IPV6 + struct sockaddr_in6 ping_sockaddr6; ++#endif + }; + + typedef struct ping_data PING; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch new file mode 100644 index 000000000..3da4e9f55 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch @@ -0,0 +1,29 @@ +From 552a7d64ad4a7188a9b7cd89933ae7caf7ebfe90 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Thu, 18 Nov 2010 16:59:14 -0500 +Subject: [PATCH gnulib] printf-parse: pull in features.h for __GLIBC__ + +Upstream-Status: Pending + +Signed-off-by: Mike Frysinger +--- + lib/printf-parse.h | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/lib/printf-parse.h b/lib/printf-parse.h +index 67a4a2a..3bd6152 100644 +--- a/lib/printf-parse.h ++++ b/lib/printf-parse.h +@@ -25,6 +25,9 @@ + + #include "printf-args.h" + ++#ifdef HAVE_FEATURES_H ++# include /* for __GLIBC__ */ ++#endif + + /* Flags */ + #define FLAG_GROUP 1 /* ' flag */ +-- +1.7.3.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch new file mode 100644 index 000000000..b13bb9229 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch @@ -0,0 +1,14 @@ +Upstream-Status: Pending + +--- inetutils-1.8/lib/wchar.in.h ++++ inetutils-1.8/lib/wchar.in.h +@@ -70,6 +70,9 @@ + /* The include_next requires a split double-inclusion guard. */ + #if @HAVE_WCHAR_H@ + # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ ++#else ++# include ++# define MB_CUR_MAX 1 + #endif + + #undef _GL_ALREADY_INCLUDING_WCHAR_H diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch new file mode 100644 index 000000000..2592989a9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch @@ -0,0 +1,26 @@ +inetutils: define PATH_PROCNET_DEV if not already defined + +this prevents the following compilation error : +system/linux.c:401:15: error: 'PATH_PROCNET_DEV' undeclared (first use in this function) + +this patch comes from : + http://repository.timesys.com/buildsources/i/inetutils/inetutils-1.9/ + +Upstream-Status: Inappropriate [not author] + +Signed-of-by: Eric Bénard +--- +diff -Naur inetutils-1.9.orig/ifconfig/system/linux.c inetutils-1.9/ifconfig/system/linux.c +--- inetutils-1.9.orig/ifconfig/system/linux.c 2012-01-04 16:31:36.000000000 -0500 ++++ inetutils-1.9/ifconfig/system/linux.c 2012-01-04 16:40:53.000000000 -0500 +@@ -49,6 +49,10 @@ + #include "../ifconfig.h" + + ++#ifndef PATH_PROCNET_DEV ++ #define PATH_PROCNET_DEV "/proc/net/dev" ++#endif ++ + /* ARPHRD stuff. */ + + static void diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch new file mode 100644 index 000000000..ff3abd86a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch @@ -0,0 +1,40 @@ +Only check security/pam_appl.h which is provided by package libpam when pam is +enabled. + +Upstream-Status: Pending + +Signed-off-by: Kai Kang +--- +diff --git a/configure.ac b/configure.ac +index b35e672..e78a751 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -195,6 +195,19 @@ fi + + # See if we have libpam.a. Investigate PAM versus Linux-PAM. + if test "$with_pam" = yes ; then ++ AC_CHECK_HEADERS([security/pam_appl.h], [], [], [ ++#include ++#ifdef HAVE_NETINET_IN_SYSTM_H ++# include ++#endif ++#include ++#ifdef HAVE_NETINET_IP_H ++# include ++#endif ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++]) + AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl) + AC_CHECK_LIB(pam, pam_authenticate, LIBPAM=-lpam) + if test "$ac_cv_lib_pam_pam_authenticate" = yes ; then +@@ -587,7 +600,7 @@ AC_HEADER_DIRENT + AC_CHECK_HEADERS([arpa/nameser.h errno.h fcntl.h features.h \ + glob.h memory.h netinet/ether.h netinet/in_systm.h \ + netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h \ +- security/pam_appl.h shadow.h \ ++ shadow.h \ + stdarg.h stdlib.h string.h stropts.h sys/tty.h \ + sys/utsname.h sys/ptyvar.h sys/msgbuf.h sys/filio.h \ + sys/ioctl_compat.h sys/cdefs.h sys/stream.h sys/mkdev.h \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils new file mode 100644 index 000000000..30e81ef45 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils @@ -0,0 +1,20 @@ +# default: off +# description: +# Rexecd is the server for the rexec program. The server provides remote +# execution facilities with authentication based on user names and +# passwords. +# +service exec +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rexecd + disable = yes +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils new file mode 100644 index 000000000..21b55da9a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils @@ -0,0 +1,23 @@ +# default: off +# description: +# Rlogind is a server for the rlogin program. The server provides remote +# execution with authentication based on privileged port numbers from trusted +# host +# +service login +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rlogind -a + disable = yes +} + + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils new file mode 100644 index 000000000..2b894a74b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils @@ -0,0 +1,21 @@ +# default: off +# description: +# The rshd server is a server for the rcmd(3) routine and, +# consequently, for the rsh(1) program. The server provides +# remote execution facilities with authentication based on +# privileged port numbers from trusted hosts. +# +service shell +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rshd -aL + disable = yes +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils new file mode 100644 index 000000000..2d9a0408c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils @@ -0,0 +1,13 @@ +# default: on +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. +service telnet +{ + disable = no + flags = REUSE + socket_type = stream + wait = no + user = root + server = @SBINDIR@/in.telnetd + log_on_failure += USERID +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils new file mode 100644 index 000000000..67b44c43e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils @@ -0,0 +1,19 @@ +# default: off +# description: +# Tftpd is a server which supports the Internet Trivial File Transfer +# Pro-tocol (RFC 783). The TFTP server operates at the port indicated +# in the tftp service description; see services(5). +# +service tftp +{ + disable = yes + socket_type = dgram + protocol = udp + flags = IPv6 + wait = yes + user = root + group = root + server = @SBINDIR@/in.tftpd + server_args = /tftpboot +} + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch new file mode 100644 index 000000000..532a0e5c0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch @@ -0,0 +1,17 @@ +Upstream-Status: Pending + +remove m4_esyscmd function + +Signed-off-by: Chunrong Guo +--- inetutils-1.9.1/configure.ac 2012-01-06 22:05:05.000000000 +0800 ++++ inetutils-1.9.1/configure.ac 2012-11-12 14:01:11.732957019 +0800 +@@ -20,8 +20,7 @@ + + AC_PREREQ(2.59) + +-AC_INIT([GNU inetutils], +- m4_esyscmd([build-aux/git-version-gen .tarball-version 's/inetutils-/v/;s/_/./g']), ++AC_INIT([GNU inetutils],[1.9.4], + [bug-inetutils@gnu.org]) + + AC_CONFIG_SRCDIR([src/inetd.c]) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb new file mode 100644 index 000000000..68487eab7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -0,0 +1,179 @@ +DESCRIPTION = "The GNU inetutils are a collection of common \ +networking utilities and servers including ftp, ftpd, rcp, \ +rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ +talkd, telnet, telnetd, tftp, tftpd, and uucpd." +HOMEPAGE = "http://www.gnu.org/software/inetutils" +SECTION = "net" +DEPENDS = "ncurses netbase readline" +LICENSE = "GPLv3" + +LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7" + +SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ + file://version.patch \ + file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \ + file://inetutils-1.8-0003-wchar.patch \ + file://rexec.xinetd.inetutils \ + file://rlogin.xinetd.inetutils \ + file://rsh.xinetd.inetutils \ + file://telnet.xinetd.inetutils \ + file://tftpd.xinetd.inetutils \ + file://inetutils-1.9-PATH_PROCNET_DEV.patch \ + file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ + file://0001-rcp-fix-to-work-with-large-files.patch \ +" + +SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52" +SRC_URI[sha256sum] = "be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616" + +inherit autotools gettext update-alternatives texinfo + +SRC_URI += "${@base_contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" +noipv6="${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6 gl_cv_socket_ipv6=no', d)}" + +PACKAGECONFIG ??= "ftp uucpd \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + " +PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" +PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline" +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" + +EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \ + ${noipv6} \ + inetutils_cv_path_login=${base_bindir}/login \ + --with-libreadline-prefix=${STAGING_LIBDIR} \ + --enable-rpath=no \ +" + +do_configure_prepend () { + export HELP2MAN='true' + cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath + rm -f ${S}/glob/configure* +} + +do_install_append () { + install -m 0755 -d ${D}${base_bindir} + install -m 0755 -d ${D}${base_sbindir} + install -m 0755 -d ${D}${sbindir} + install -m 0755 -d ${D}${sysconfdir}/xinetd.d + mv ${D}${bindir}/ping ${D}${base_bindir}/ + mv ${D}${bindir}/ping6 ${D}${base_bindir}/ + mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ + mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ + mv ${D}${bindir}/hostname ${D}${base_bindir}/ + mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd + mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd + mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd + mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind + mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd + mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd + mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd + mv ${D}${libexecdir}/* ${D}${bindir}/ + cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec + cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin + cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh + cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet + cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd + + sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/* + + rm -rf ${D}${libexecdir}/ + # remove usr/lib if empty + rmdir ${D}${libdir} || true +} + +PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \ +${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \ +${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \ +${PN}-rsh ${PN}-rshd" + +# The packages tftpd, telnetd and rshd conflict with the ones +# provided by netkit, so add the corresponding -dbg packages +# for them to avoid the confliction between the dbg package +# of inetutils and netkit. +PACKAGES += "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" + +ALTERNATIVE_PRIORITY = "80" +ALTERNATIVE_${PN} = "talk whois" +ALTERNATIVE_LINK_NAME[talkd] = "${sbindir}/in.talkd" +ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd" + +ALTERNATIVE_${PN}-logger = "logger" +ALTERNATIVE_${PN}-syslogd = "syslogd" +ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd" + +ALTERNATIVE_${PN}-ftp = "ftp" +ALTERNATIVE_${PN}-ftpd = "ftpd" +ALTERNATIVE_${PN}-tftp = "tftp" +ALTERNATIVE_${PN}-tftpd = "tftpd" +ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd" +ALTERNATIVE_TARGET[tftpd] = "${sbindir}/in.tftpd" + +ALTERNATIVE_${PN}-telnet = "telnet" +ALTERNATIVE_${PN}-telnetd = "telnetd" +ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd" +ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd" + +ALTERNATIVE_${PN}-rsh = "rcp rexec rlogin rsh" +ALTERNATIVE_${PN}-rshd = "rshd rexecd rlogind" +ALTERNATIVE_LINK_NAME[rshd] = "${sbindir}/rshd" +ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd" +ALTERNATIVE_LINK_NAME[rexecd] = "${sbindir}/rexecd" +ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" +ALTERNATIVE_LINK_NAME[rlogind] = "${sbindir}/rlogind" +ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" + +ALTERNATIVE_${PN}-inetd= "inetd" +ALTERNATIVE_${PN}-traceroute = "traceroute" + +ALTERNATIVE_${PN}-hostname = "hostname" +ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname" + +ALTERNATIVE_${PN}-ifconfig = "ifconfig" +ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig" + +ALTERNATIVE_${PN}-ping = "ping" +ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" + +ALTERNATIVE_${PN}-ping6 = "ping6" +ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" + + +FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" +FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}" +FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}" +FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}" +FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}" +FILES_${PN}-logger = "${bindir}/logger.${BPN}" +FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}" +FILES_${PN}-ftp = "${bindir}/ftp.${BPN}" + +FILES_${PN}-tftp = "${bindir}/tftp.${BPN}" +FILES_${PN}-telnet = "${bindir}/telnet.${BPN}" +FILES_${PN}-rsh = "${bindir}/rsh.${BPN} ${bindir}/rlogin.${BPN} ${bindir}/rexec.${BPN} ${bindir}/rcp.${BPN}" + +FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \ + ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec" +FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd" +RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers" +RCONFLICTS_${PN}-rshd += "netkit-rshd" +RPROVIDES_${PN}-rshd = "rshd" + +FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}" +FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}" +RDEPENDS_${PN}-ftpd += "xinetd" + +FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd" +FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd" +RCONFLICTS_${PN}-tftpd += "netkit-tftpd" +RDEPENDS_${PN}-tftpd += "xinetd" + +FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet" +FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd" +RCONFLICTS_${PN}-telnetd += "netkit-telnetd" +RPROVIDES_${PN}-telnetd = "telnetd" +RDEPENDS_${PN}-telnetd += "xinetd" + +FILES_${PN}-inetd = "${bindir}/inetd.${BPN}" + +RDEPENDS_${PN} = "xinetd" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.6.3a.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.6.3a.bb new file mode 100644 index 000000000..e6796a699 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.6.3a.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "LFTP is a sophisticated file transfer program with \ + command line interface. It supports FTP, HTTP, \ + FISH, SFTP, HTTPS and FTPS protocols" +HOMEPAGE = "http://lftp.yar.ru/" +SECTION = "console/network" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "readline" + +SRC_URI = "http://fossies.org/linux/misc/lftp-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "2777dd514d21fe1da764bedd1d0ab36c" +SRC_URI[sha256sum] = "a8b53e5ca2c1acbecd181c87f21a8673ca9038dc9f2be6ab8c23790bd91fd446" + +inherit autotools gettext pkgconfig + +EXTRA_OECONF += "--with-modules" + +PACKAGECONFIG ??= "libidn openssl zlib gnutls" +PACKAGECONFIG[libidn] = "--with-libidn, --without-libidn, libidn" +PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" +PACKAGECONFIG[zlib] = "--with-zlib, --without-zlib, zlib" +PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" + +FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug" +RDEPENDS_${PN} = "perl bash readline" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb new file mode 100644 index 000000000..28b6c8254 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb @@ -0,0 +1,15 @@ +SUMMARY = "dumb networking library" +HOMEPAGE = "http://code.google.com/p/libdnet/" +SECTION = "libs" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9" + +SRC_URI = "http://libdnet.googlecode.com/files/libdnet-${PV}.tgz" + +SRC_URI[md5sum] = "9253ef6de1b5e28e9c9a62b882e44cc9" +SRC_URI[sha256sum] = "83b33039787cf99990e977cef7f18a5d5e7aaffc4505548a83d31bd3515eb026" + +inherit autotools + +acpaths = "-I ./config/" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.10.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.10.bb new file mode 100644 index 000000000..d5c7afe04 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.10.bb @@ -0,0 +1,37 @@ +SUMMARY = "Lightweight crypto and SSL/TLS library" +DESCRIPTION = "mbedtls is a lean open source crypto library \ +for providing SSL and TLS support in your programs. It offers \ +an intuitive API and documented header files, so you can actually \ +understand what the code does. It features: \ + \ + - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \ + Camellia and XTEA \ + - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \ + - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \ + - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \ + ECDSA and ECDH \ + - SSL v3 and TLS 1.0, 1.1 and 1.2 \ + - Abstraction layers for ciphers, hashes, public key operations, \ + platform abstraction and threading \ +" + +HOMEPAGE = "https://polarssl.org" +BUGTRACKER = "https://github.com/polarssl/polarssl/issues" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +SECTION = "libdevel" + +SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-gpl.tgz" + +SRC_URI[md5sum] = "19ebbc96feceb430ad958dfe89cb633f" +SRC_URI[sha256sum] = "746fd88e0c6623691fc56c4eed52e40a57b2da0ac80f6dd8995094aa6adb407e" + +DEPENDS = "openssl" +RDEPENDS_${PN} += "libcrypto" +PROVIDES += "polarssl" +RPROVIDES_${PN} = "polarssl" +EXTRA_OECMAKE = "-DUSE_SHARED_POLARSSL_LIBRARY=on -DLIB_INSTALL_DIR=${baselib}" + +inherit cmake diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb new file mode 100644 index 000000000..6d3c25217 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Open client for Cisco AnyConnect VPN" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" + +DEPENDS = "vpnc libxml2 gnutls lz4 krb5 libproxy pcsc-lite" +RDEPENDS_${PN} = "vpnc" + +PV = "7.06" + +SRCREV = "35542d52202672b8c12ecc63867432128244013a" +SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \ + --disable-static" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb new file mode 100644 index 000000000..aab2ab5f0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Layer 3 relay daemon" +SECTION = "console/network" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab2" + +DEPENDS = "libubox" + +SRC_URI = "git://nbd.name/relayd.git" + +SRCREV = "2970ff60bac6b70ecb682779d5c776dc559dc0b9" + +S = "${WORKDIR}/git" + +inherit cmake diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/00-fix-typos-in-man-pages.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/00-fix-typos-in-man-pages.patch new file mode 100644 index 000000000..c94bc3185 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/00-fix-typos-in-man-pages.patch @@ -0,0 +1,108 @@ +From 1573638212a9733a44939a4d38a226f38dca36f1 Mon Sep 17 00:00:00 2001 +From: Michele Baldessari +Date: Tue, 9 Jul 2013 23:23:33 +0200 +Subject: [PATCH] Fix typos in man-pages + +Fix some typos in the man-pages. + +Signed-off-by: Michele Baldessari +Reviewed-by: Simo Sorce + +Autobuild-User(master): Simo Sorce +Autobuild-Date(master): Wed Jul 10 16:45:07 CEST 2013 on sn-devel-104 +--- + docs-xml/manpages/dbwrap_tool.1.xml | 2 +- + docs-xml/manpages/idmap_autorid.8.xml | 2 +- + docs-xml/manpages/net.8.xml | 2 +- + docs-xml/manpages/pdbedit.8.xml | 2 +- + docs-xml/manpages/samba.7.xml | 2 +- + docs-xml/manpages/smbclient.1.xml | 2 +- + docs-xml/manpages/smbpasswd.5.xml | 2 +- + docs-xml/manpages/vfs_smb_traffic_analyzer.8.xml | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +Index: samba-4.1.11/docs-xml/manpages/smbstatus.1.xml +=================================================================== +--- samba-4.1.11.orig/docs-xml/manpages/smbstatus.1.xml ++++ samba-4.1.11/docs-xml/manpages/smbstatus.1.xml +@@ -137,6 +137,13 @@ + + + ++ ++ -n|--numeric ++ causes smbstatus to display numeric UIDs and GIDs instead of ++ resolving them to names. ++ ++ ++ + + + +Index: samba-4.1.11/docs-xml/manpages/sharesec.1.xml +=================================================================== +--- samba-4.1.11.orig/docs-xml/manpages/sharesec.1.xml ++++ samba-4.1.11/docs-xml/manpages/sharesec.1.xml +@@ -129,6 +129,13 @@ + + + ++ ++ -S|--setsddl=STRING ++ ++ Set security descriptor by providing ACL in SDDL format. ++ ++ ++ + &stdarg.help; + &stdarg.server.debug; + &popt.common.samba; +Index: samba-4.1.11/docs-xml/build/DTD/samba.entities +=================================================================== +--- samba-4.1.11.orig/docs-xml/build/DTD/samba.entities ++++ samba-4.1.11/docs-xml/build/DTD/samba.entities +@@ -270,6 +270,44 @@ file. + &popt.common.samba; + '> + ++ ++-S|--signing on|off|required ++Set the client signing state. ++ ++ ++'> ++ ++ ++-P|--machine-pass ++Use stored machine account password. ++ ++ ++'> ++ ++ ++-e|--encrypt ++ ++This command line parameter requires the remote ++server support the UNIX extensions or that the SMB3 protocol has been selected. ++Requests that the connection be encrypted. Negotiates SMB encryption using either ++SMB3 or POSIX extensions via GSSAPI. Uses the given credentials for ++the encryption negotiation (either kerberos or NTLMv1/v2 if given ++domain/username/password triple. Fails the connection if encryption ++cannot be negotiated. ++ ++ ++'> ++ ++ ++--pw-nt-hash ++The supplied password is the NT hash. ++ ++ ++'> + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/0006-avoid-using-colon-in-the-checking-msg.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/0006-avoid-using-colon-in-the-checking-msg.patch new file mode 100644 index 000000000..cdf7a38c1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/0006-avoid-using-colon-in-the-checking-msg.patch @@ -0,0 +1,32 @@ +From 5413f97290d3126262eb309ecbcf7769509f2a11 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 10 Nov 2015 00:48:35 -0500 +Subject: [PATCH 6/7] avoid using colon in the checking msg + +Upstream-Status: Pending + +colon is used as the separator when parse from +a answers file, the colon here makes it never +get the right answer. + +Signed-off-by: Jackie Huang +--- + wscript_configure_system_mitkrb5 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 +index a62d00b..a2d89f0 100644 +--- a/wscript_configure_system_mitkrb5 ++++ b/wscript_configure_system_mitkrb5 +@@ -240,7 +240,7 @@ conf.CHECK_CODE(''' + ''', + 'HAVE_WRFILE_KEYTAB', + headers='krb5.h', lib='krb5', execute=True, +- msg="Checking whether the WRFILE:-keytab is supported"); ++ msg="Checking whether the WRFILE -keytab is supported"); + # Check for KRB5_DEPRECATED handling + conf.CHECK_CODE('''#define KRB5_DEPRECATED 1 + #include ''', +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/16-do-not-check-xsltproc-manpages.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/16-do-not-check-xsltproc-manpages.patch new file mode 100644 index 000000000..c37cfcde4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/16-do-not-check-xsltproc-manpages.patch @@ -0,0 +1,43 @@ +Don't check xsltproc manpages + +Signed-off-by: Bian Naimeng + +Index: samba-4.4.2/lib/ldb/wscript +=================================================================== +--- samba-4.4.2.orig/lib/ldb/wscript ++++ samba-4.4.2/lib/ldb/wscript +@@ -65,7 +65,7 @@ def configure(conf): + conf.define('USING_SYSTEM_LDB', 1) + + if conf.env.standalone_ldb: +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + # we need this for the ldap backend + if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): +Index: samba-4.4.2/lib/talloc/wscript +=================================================================== +--- samba-4.4.2.orig/lib/talloc/wscript ++++ samba-4.4.2/lib/talloc/wscript +@@ -56,7 +56,7 @@ def configure(conf): + if conf.env.standalone_talloc: + conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1 + +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + if not conf.env.disable_python: + # also disable if we don't have the python libs installed +Index: samba-4.4.2/lib/tdb/wscript +=================================================================== +--- samba-4.4.2.orig/lib/tdb/wscript ++++ samba-4.4.2/lib/tdb/wscript +@@ -92,7 +92,7 @@ def configure(conf): + not conf.env.disable_tdb_mutex_locking): + conf.define('USE_TDB_MUTEX_LOCKING', 1) + +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + if not conf.env.disable_python: + # also disable if we don't have the python libs installed diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/20-do-not-import-target-module-while-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/20-do-not-import-target-module-while-cross-compile.patch new file mode 100644 index 000000000..e112b3b40 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/20-do-not-import-target-module-while-cross-compile.patch @@ -0,0 +1,58 @@ +Some modules such as dynamic library maybe cann't be imported while cross compile, +we just check whether does the module exist. + +Signed-off-by: Bian Naimeng + +Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py +=================================================================== +--- samba-4.4.2.orig/buildtools/wafsamba/samba_bundled.py ++++ samba-4.4.2/buildtools/wafsamba/samba_bundled.py +@@ -2,6 +2,7 @@ + + import sys + import Build, Options, Logs ++import imp, os + from Configure import conf + from samba_utils import TO_LIST + +@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li + # versions + minversion = minimum_library_version(conf, libname, minversion) + +- try: +- m = __import__(modulename) +- except ImportError: +- found = False +- else: ++ # Find module in PYTHONPATH ++ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]]) ++ if stuff: + try: +- version = m.__version__ +- except AttributeError: ++ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2]) ++ except ImportError: + found = False ++ ++ if conf.env.CROSS_COMPILE: ++ # Some modules such as dynamic library maybe cann't be imported ++ # while cross compile, we just check whether the module exist ++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1])) ++ found = True + else: +- found = tuplize_version(version) >= tuplize_version(minversion) ++ try: ++ version = m.__version__ ++ except AttributeError: ++ found = False ++ else: ++ found = tuplize_version(version) >= tuplize_version(minversion) ++ finally: ++ if stuff[0]: ++ stuff[0].close() ++ else: ++ found = False ++ + if not found and not conf.LIB_MAY_BE_BUNDLED(libname): + Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion)) + sys.exit(1) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/21-add-config-option-without-valgrind.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/21-add-config-option-without-valgrind.patch new file mode 100644 index 000000000..025ac2775 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/21-add-config-option-without-valgrind.patch @@ -0,0 +1,63 @@ +From 9a2d6315ff206b2a47100dfd85afe3af56576995 Mon Sep 17 00:00:00 2001 +From: Wenzong Fan +Date: Thu, 10 Dec 2015 04:20:51 -0500 +Subject: [PATCH] Add config option without-valgrind + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + lib/replace/wscript | 4 +++- + source3/wscript | 5 ++++- + wscript | 4 ++++ + 3 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/lib/replace/wscript b/lib/replace/wscript +index f0040b1..aca73af 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -101,7 +101,9 @@ struct foo bar = { .y = 'X', .x = 1 }; + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if not Options.options.disable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h malloc.h') +diff --git a/source3/wscript b/source3/wscript +index bac3dd5..a5c51ea 100644 +--- a/source3/wscript ++++ b/source3/wscript +@@ -1016,7 +1016,10 @@ syscall(SYS_setgroups32, 0, NULL); + Logs.warn("--with-dnsupdate=yes but gssapi support not sufficient") + else: + conf.DEFINE('WITH_DNS_UPDATES', 1) +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ ++ if not Options.options.disable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + if Options.options.developer: + if conf.CONFIG_SET('HAVE_VALGRIND_H') or conf.CONFIG_SET('HAVE_VALGRIND_VALGRIND_H'): + conf.DEFINE('VALGRIND', '1') +diff --git a/wscript b/wscript +index 7679c0f..681ac17 100644 +--- a/wscript ++++ b/wscript +@@ -72,6 +72,10 @@ def set_options(opt): + help=("Disable systemd integration"), + action='store_false', dest='enable_systemd') + ++ opt.add_option('--without-valgrind', ++ help=("Disable use of the valgrind headers"), ++ action="store_true", dest='disable_valgrind', default=False) ++ + gr = opt.option_group('developer options') + + opt.tool_options('python') # options for disabling pyc or pyo compilation +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/volatiles.03_samba b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/volatiles.03_samba new file mode 100644 index 000000000..4bdfa7d2c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.2/volatiles.03_samba @@ -0,0 +1,3 @@ +# +d root root 0755 /var/log/samba none +d root root 0755 /var/run/samba none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.2.bb new file mode 100644 index 000000000..6a2220ac1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.2.bb @@ -0,0 +1,320 @@ +SECTION = "console/network" + +LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " + +SAMBA_MIRROR = "http://samba.org/samba/ftp" +MIRRORS += "\ +${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \ +${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ +" + +SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ + file://00-fix-typos-in-man-pages.patch \ + file://16-do-not-check-xsltproc-manpages.patch \ + file://20-do-not-import-target-module-while-cross-compile.patch \ + file://21-add-config-option-without-valgrind.patch \ + file://0006-avoid-using-colon-in-the-checking-msg.patch \ + file://volatiles.03_samba \ + " + +SRC_URI[md5sum] = "03a65a3adf08ceb1636ad59d234d7f9d" +SRC_URI[sha256sum] = "eaecd41a85ebb9507b8db9856ada2a949376e9d53cf75664b5493658f6e5926a" + +inherit systemd waf-samba cpan-base perlnative +# remove default added RDEPENDS on perl +RDEPENDS_${PN}_remove = "perl" + +DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb krb5 libbsd libaio" + +SYSVINITTYPE_linuxstdbase = "lsb" +SYSVINITTYPE = "sysv" + +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${SYSVINITTYPE}', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'zeroconf', 'zeroconf', '', d)} \ + acl cups ldap \ +" + +RDEPENDS_${PN}-base += "${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'lsb', '', d)}" +RDEPENDS_${PN}-ctdb-tests += "bash" + +PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl" +PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" +PACKAGECONFIG[pam] = "--with-pam --with-pammodulesdir=${base_libdir}/security,--without-pam,libpam" +PACKAGECONFIG[lsb] = ",,lsb" +PACKAGECONFIG[sysv] = ",,sysvinit" +PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[sasl] = ",,cyrus-sasl" +PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd" +PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi" +PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind," +PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust" +PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive" + + +SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2" +SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4" +SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4" +SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}" + +SAMBA4_LIBS="heimdal,!zlib,!popt,!talloc,!pytalloc,!pytalloc-util,!tevent,!pytevent,!tdb,!pytdb,!ldb,!pyldb" + +EXTRA_OECONF += "--enable-fhs \ + --with-piddir=/run \ + --with-sockets-dir=/run/samba \ + --with-modulesdir=${libdir}/samba \ + --with-lockdir=${localstatedir}/lib/samba \ + --with-cachedir=${localstatedir}/lib/samba \ + --disable-gnutls \ + --disable-rpath-install \ + --with-shared-modules=${SAMBA4_MODULES} \ + --bundled-libraries=${SAMBA4_LIBS} \ + --with-system-mitkrb5 \ + --without-ad-dc \ + ${@base_conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \ + --with-cluster-support \ + --with-profiling-data \ + --with-libiconv=${STAGING_DIR_HOST}${prefix} \ + " +DISABLE_STATIC = "" + +LDFLAGS += "-Wl,-z,relro,-z,now" + +do_install_append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + for i in nmb smb winbind; do + install -m 0644 packaging/systemd/$i.service ${D}${systemd_unitdir}/system + done + sed -i 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' ${D}${systemd_unitdir}/system/*.service + + install -d ${D}${sysconfdir}/tmpfiles.d + install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf + echo "d ${localstatedir}/log/samba 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/samba.conf + elif ${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d + update-rc.d -r ${D} samba.sh start 20 3 5 . + update-rc.d -r ${D} samba.sh start 20 0 1 6 . + elif ${@bb.utils.contains('PACKAGECONFIG', 'sysv', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba.sh + sed -e 's,/opt/samba/bin,${sbindir},g' \ + -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ + -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ + -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba.sh,g' \ + -i ${D}${sysconfdir}/init.d/samba.sh + update-rc.d -r ${D} samba.sh start 20 3 5 . + update-rc.d -r ${D} samba.sh start 20 0 1 6 . + fi + + install -d ${D}${sysconfdir}/samba + echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts + install -m644 packaging/LSB/smb.conf ${D}${sysconfdir}/samba/smb.conf + install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba + + install -d ${D}${sysconfdir}/sysconfig/ + install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/sysconfig/samba + + rm -rf ${D}/run ${D}${localstatedir}/run +} + +PACKAGES += "${PN}-python ${PN}-python-dbg ${PN}-pidl libwinbind libwinbind-dbg libwinbind-krb5-locator" +PACKAGES =+ "libwbclient libnss-winbind winbind winbind-dbg libnetapi libsmbsharemodes \ + libsmbclient libsmbclient-dev lib${PN}-base ${PN}-base ${PN}-ctdb-tests" + +RDEPENDS_${PN} += "${PN}-base" + +FILES_${PN}-base = "${sbindir}/nmbd \ + ${sbindir}/smbd \ + ${sysconfdir}/init.d \ + ${localstatedir}/lib/samba \ + ${localstatedir}/log/samba \ + ${localstatedir}/nmbd \ + ${localstatedir}/spool/samba \ +" + +FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \ + ${libdir}/ctdb-tests \ + ${datadir}/ctdb-tests \ + /run/ctdb \ + " + +# figured out by +# FILES="tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/smbd tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/nmbd" +# +# while [ "${FILES}" != "${OLDFILES}" ] +# do +# OLDFILES="${FILES}" +# NEEDED=`tmp/sysroots/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/5.2.0/objdump -x ${FILES} | grep NEEDED | egrep -E 'so(.[0-9]|$)' | sort -u | perl -MData::Dumper -le 'while (<>) {chomp; push @lib, (split)[1]}; print "(", join("|", @lib), ")"'` +# NF=`find tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib -type f | egrep "${NEEDED}" | sort -u` +# +# FILES=`perl -le 'foreach (@ARGV) { $f{$_}++ }; print join(" ", sort keys %f)' ${FILES} ${NF}` +# done +# +# LIBS=`echo ${FILES} | sed -e 's,tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib,${libdir},g' -e 's,.so.[0-9]+.*$,.so.*,g'` +# for l in ${LIBS} +# do +# echo $l +# done + +FILES_lib${PN}-base = "\ + ${sysconfdir}/default \ + ${sysconfdir}/samba \ + ${libdir}/libdcerpc-binding.so.* \ + ${libdir}/libgensec.so.* \ + ${libdir}/libndr-krb5pac.so.* \ + ${libdir}/libndr-nbt.so.* \ + ${libdir}/libndr-standard.so.* \ + ${libdir}/libndr.so.* \ + ${libdir}/libnetapi.so.* \ + ${libdir}/libpdb.so.* \ + ${libdir}/libsamba-credentials.so.* \ + ${libdir}/libsamba-hostconfig.so.* \ + ${libdir}/libsamba-util.so.* \ + ${libdir}/libsamdb.so.* \ + ${libdir}/libsmbconf.so.* \ + ${libdir}/libtevent-util.so.* \ + ${libdir}/samba/libCHARSET3.so \ + ${libdir}/samba/libaddns.so \ + ${libdir}/samba/libads.so \ + ${libdir}/samba/libasn1util.so \ + ${libdir}/samba/libauth.so \ + ${libdir}/samba/libauth_sam_reply.so \ + ${libdir}/samba/libauthkrb5.so \ + ${libdir}/samba/libccan.so \ + ${libdir}/samba/libcli-ldap-common.so \ + ${libdir}/samba/libcli-nbt.so \ + ${libdir}/samba/libcli_cldap.so \ + ${libdir}/samba/libcli_smb_common.so \ + ${libdir}/samba/libcli_spoolss.so \ + ${libdir}/samba/libcliauth.so \ + ${libdir}/samba/libdbwrap.so \ + ${libdir}/samba/libdcerpc-samba.so \ + ${libdir}/samba/liberrors.so \ + ${libdir}/samba/libflag_mapping.so \ + ${libdir}/samba/libgse.so \ + ${libdir}/samba/libinterfaces.so \ + ${libdir}/samba/libkrb5samba.so \ + ${libdir}/samba/libldbsamba.so \ + ${libdir}/samba/liblibcli_lsa3.so \ + ${libdir}/samba/liblibcli_netlogon3.so \ + ${libdir}/samba/liblibsmb.so \ + ${libdir}/samba/libmsrpc3.so \ + ${libdir}/samba/libndr-samba.so \ + ${libdir}/samba/libndr-samba4.so \ + ${libdir}/samba/libnpa_tstream.so \ + ${libdir}/samba/libntdb.so.* \ + ${libdir}/samba/libpopt_samba3.so \ + ${libdir}/samba/libprinting_migrate.so \ + ${libdir}/samba/libsamba-modules.so \ + ${libdir}/samba/libsamba-security.so \ + ${libdir}/samba/libsamba-sockets.so \ + ${libdir}/samba/libsamba3-util.so \ + ${libdir}/samba/libsamdb-common.so \ + ${libdir}/samba/libsecrets3.so \ + ${libdir}/samba/libserver-role.so \ + ${libdir}/samba/libsmb_transport.so \ + ${libdir}/samba/libsmbd_base.so \ + ${libdir}/samba/libsmbd_conn.so \ + ${libdir}/samba/libsmbd_shim.so \ + ${libdir}/samba/libsmbregistry.so \ + ${libdir}/samba/libtdb-wrap.so \ + ${libdir}/samba/libutil_cmdline.so \ + ${libdir}/samba/libutil_ntdb.so \ + ${libdir}/samba/libutil_reg.so \ + ${libdir}/samba/libutil_setid.so \ + ${libdir}/samba/libutil_tdb.so \ + ${libdir}/samba/pdb/smbpasswd.so \ + ${libdir}/samba/pdb/tdbsam.so \ + ${libdir}/samba/pdb/wbc_sam.so \ +" + +FILES_winbind-dbg = "${libdir}/idmap/.debug/*.so \ + ${libdir}/security/.debug/pam_winbind.so \ +" + +FILES_${PN} += "${libdir}/vfs/*.so \ + ${libdir}/charset/*.so \ + ${libdir}/*.dat \ + ${libdir}/auth/*.so \ + ${libdir}/security/pam_smbpass.so \ +" + +FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so \ + ${libdir}/charset/.debug/*.so \ + ${libdir}/auth/.debug/*.so \ + ${libdir}/security/.debug/pam_smbpass.so \ +" + +FILES_libwbclient = "${libdir}/libwbclient.so.* ${libdir}/samba/libwinbind-client.so" +FILES_libnetapi = "${libdir}/libnetapi.so.*" +FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*" +FILES_libsmbclient = "${libdir}/libsmbclient.so.*" +FILES_libsmbclient-dev = "${libdir}/libsmbclient.so ${includedir}" +FILES_winbind = "${sbindir}/winbindd \ + ${bindir}/wbinfo \ + ${bindir}/ntlm_auth \ + ${sysconfdir}/init.d/winbind \ + ${systemd_unitdir}/system/winbind.service \ +" + +FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \ + ${libdir}/nss_info \ +" + +FILES_${PN} += "${base_libdir}/security/pam_smbpass.so \ +" + +SMB_SERVICE="${systemd_unitdir}/system/nmb.service ${systemd_unitdir}/system/smb.service" +SMB_SYSV="${sysconfdir}/init.d ${sysconfdir}/rc?.d" +FILES_${PN}-base +="${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${SMB_SERVICE}', '', d)}" +FILES_${PN}-base +="${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${SMB_SYSV}', '', d)}" + +FILES_${PN}-dbg += "${libdir}/samba/idmap/.debug/* \ + ${libdir}/samba/pdb/.debug/* \ + ${libdir}/samba/auth/.debug/* \ + ${libdir}/samba/nss_info/.debug/* \ + ${libdir}/samba/ldb/.debug/* \ + ${libdir}/samba/vfs/.debug/* \ + ${base_libdir}/security/.debug/pam_smbpass.so \ +" + +FILES_libwinbind = "${base_libdir}/security/pam_winbind.so" +FILES_libwinbind += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/winbind.service', '', d)}" +FILES_libwinbind-dbg = "${base_libdir}/security/.debug/pam_winbind.so" +FILES_libwinbind-krb5-locator = "${libdir}/winbind_krb5_locator.so" + +FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.so \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/_ldb_text.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/*.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/*.so \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/*.so \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/*.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/external/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/kcc/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/netcmd/*.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/provision/*.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/*.py \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/*.so \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/subunit/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/tests/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/third_party/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/web_server/* \ +" + +FILES_${PN}-python-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/.debug/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/.debug/* \ + ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/.debug/* \ +" + +RDEPENDS_${PN}-pidl_append = " perl" +FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch new file mode 100644 index 000000000..f25a02cd8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch @@ -0,0 +1,42 @@ +From 9a9137c3df5309ac359737d6ebd67fb4ff5f3cf2 Mon Sep 17 00:00:00 2001 +From: Wenzong Fan +Date: Mon, 24 Nov 2014 22:05:18 -0500 +Subject: [PATCH] sethdlc: fix host contamination + +Clean INCLUDES to fix the host contamination errors: + + In file included from /usr/src/linux/include/linux/posix_types.h:47:0, + from /usr/src/linux/include/linux/types.h:17, + from /usr/src/linux/include/linux/if.h:22, + from sethdlc.c:23: + /usr/src/linux/include/asm-generic/posix_types.h:91:3: \ + error: conflicting types for '__kernel_fsid_t' + } __kernel_fsid_t; + ^ + .../tmp/sysroots/qemumips/usr/include/asm/posix_types.h:26:3: \ + note: previous declaration of '__kernel_fsid_t' was here + } __kernel_fsid_t; + ^ + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0492f2b..97dec22 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + CC = gcc + CFLAGS = -O2 -Wall -W -Wno-long-long -pipe +-INCLUDES = -I/usr/src/linux/include -I/usr/src/linux-2.6/include ++INCLUDES = + + all: sethdlc + +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb new file mode 100644 index 000000000..fc304fae7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "set Linux HDLC packet radio modem driver port information" +HOMEPAGE = "https://www.kernel.org/pub/linux/utils/net/hdlc" +SECTION = "comm" +LICENSE = "GPLv2 & GPLv2+ " +LIC_FILES_CHKSUM = "file://sethdlc.c;endline=10;md5=90f936879e9f8b755a138aeb348782eb" + + +SRC_URI = "https://www.kernel.org/pub/linux/utils/net/hdlc/${BPN}-1.18.tar.gz \ + file://sethdlc-fix-host-contamination.patch \ +" +SRC_URI[md5sum] = "9016878156a5eadb06c0bae71cc5c9ab" +SRC_URI[sha256sum] = "21b1e2e1cb0e288b0ec8fcfd9fed449914e0f8e6fc273706bd5b3d4f6ab6b04e" + + +S = "${WORKDIR}/${BPN}-1.18" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +DEPENDS = "virtual/kernel" + +EXTRA_OEMAKE="CROSS_COMPILE=${TARGET_PREFIX} CC='${CC} ${LDFLAGS}' \ + KERNEL_DIR=${STAGING_KERNEL_DIR} " + +do_compile_prepend () { + oe_runmake clean +} + + +do_install() { + install -d ${D}/${bindir} + install sethdlc ${D}/${bindir}/ +} + +FILES_${PN} += "${bindir}/sethdlc" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch new file mode 100644 index 000000000..1520553a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch @@ -0,0 +1,35 @@ +From 815e861721a9c43efddb78521147145ebc7569ca Mon Sep 17 00:00:00 2001 +From: Zhiquan Li +Date: Fri, 13 Nov 2015 17:40:24 +0800 +Subject: [PATCH] fix do_package failed since snort 2.9.7.0 + +Remove redundant '/' as a workround for below error: +/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character + +It's a rpm debugedit bug: +* http://sourceforge.net/p/snort/mailman/message/34130268/ +* https://bugzilla.redhat.com/show_bug.cgi?id=304121 + +Upstream-Status:Inappropriate [embedded specific] + +Signed-off-by: Zhiquan Li +--- + src/snort.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/snort.h b/src/snort.h +index 8308e57..499d157 100644 +--- a/src/snort.h ++++ b/src/snort.h +@@ -39,7 +39,7 @@ + #include "sfdaq.h" + #include "sf_types.h" + #include "sfutil/sflsq.h" +-#include "sfutil//sfActionQueue.h" ++#include "sfutil/sfActionQueue.h" + #include "profiler.h" + #include "rules.h" + #include "treenodes.h" +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-libpcap-search-sysroot-for-headers.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-libpcap-search-sysroot-for-headers.patch new file mode 100644 index 000000000..54c2a9521 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/0001-libpcap-search-sysroot-for-headers.patch @@ -0,0 +1,31 @@ +From 4d7ebe3ed6cee72bc7db98bd408d22c10ef5dd82 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Wed, 20 Nov 2013 16:06:07 -0500 +Subject: [PATCH] libpcap: search sysroot for headers + +Configure hard-coded host header paths when building with libpcap. Point +the search path at the sysroot instead. + +Upstream-Status: Pending + +Signed-off-by: Joe MacDonald +--- + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index e52bb6c..8ded35d 100644 +--- a/configure.in ++++ b/configure.in +@@ -78,7 +78,7 @@ case "$host" in + linux="yes" + AC_DEFINE([LINUX],[1],[Define if Linux]) + AC_SUBST(extra_incl) +- extra_incl="-I/usr/include/pcap" ++ extra_incl="-I=/usr/include/pcap" + ;; + *-hpux10*|*-hpux11*) + AC_DEFINE([HPUX],[1],[Define if HP-UX 10 or 11]) +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch new file mode 100644 index 000000000..39e5c9c03 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch @@ -0,0 +1,52 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +checking for dap address space id... configure: +configure: error: cannot run test program while cross compiling + + +Signed-off-by: Chunrong Guo + +--- a/configure.in 2013-08-23 00:06:37.239361932 -0500 ++++ b/configure.in 2013-08-23 00:07:32.860266534 -0500 +@@ -679,23 +679,23 @@ + + AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta]) + +-AC_MSG_CHECKING([for daq address space ID]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.address_space_id = 0; +-]])], +-[have_daq_address_space_id="yes"], +-[have_daq_address_space_id="no"]) +-AC_MSG_RESULT($have_daq_address_space_id) +-if test "x$have_daq_address_space_id" = "xyes"; then +- AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], +- [DAQ version supports address space ID in header.]) +-fi ++#AC_MSG_CHECKING([for daq address space ID]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# DAQ_PktHdr_t hdr; ++# hdr.address_space_id = 0; ++#]])], ++have_daq_address_space_id="yes" ++#[have_daq_address_space_id="no"]) ++#AC_MSG_RESULT($have_daq_address_space_id) ++#if test "x$have_daq_address_space_id" = "xyes"; then ++# AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], ++# [DAQ version supports address space ID in header.]) ++#fi + + # any sparc platform has to have this one defined. + AC_MSG_CHECKING(for sparc) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch new file mode 100644 index 000000000..e6afcabaa --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch @@ -0,0 +1,50 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +checking for daq flow ID... configure: +configure: error: cannot run test program while cross compiling + + +--- a/configure.in 2015-10-28 10:36:42.918512690 +0800 ++++ b/configure.in 2015-10-28 10:37:36.738510048 +0800 +@@ -716,23 +716,23 @@ + # [DAQ version supports address space ID in header.]) + #fi + +-AC_MSG_CHECKING([for daq flow ID]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.flow_id = 0; +-]])], +-[have_daq_flow_id="yes"], +-[have_daq_flow_id="no"]) +-AC_MSG_RESULT($have_daq_flow_id) +-if test "x$have_daq_flow_id" = "xyes"; then +- AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], +- [DAQ version supports flow ID in header.]) +-fi ++#AC_MSG_CHECKING([for daq flow ID]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# DAQ_PktHdr_t hdr; ++# hdr.flow_id = 0; ++#]])], ++have_daq_flow_id="yes" ++#[have_daq_flow_id="no"]) ++#AC_MSG_RESULT($have_daq_flow_id) ++#if test "x$have_daq_flow_id" = "xyes"; then ++# AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], ++# [DAQ version supports flow ID in header.]) ++#fi + + AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) + AC_RUN_IFELSE( diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch new file mode 100644 index 000000000..1a13298ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch @@ -0,0 +1,51 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +checking for DAQ_VERDICT_RETRY... configure: +configure: error: cannot run test program while cross compiling + + +--- a/configure.in 2015-10-28 10:45:18.174487395 +0800 ++++ b/configure.in 2015-10-28 10:45:47.586485951 +0800 +@@ -734,23 +734,23 @@ + # [DAQ version supports flow ID in header.]) + #fi + +-AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- DAQ_Verdict verdict; +- verdict = DAQ_VERDICT_RETRY; +-]])], +-[have_daq_verdict_retry="yes"], +-[have_daq_verdict_retry="no"]) +-AC_MSG_RESULT($have_daq_verdict_retry) +-if test "x$have_daq_verdict_retry" = "xyes"; then +- AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], +- [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) +-fi ++#AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# DAQ_Verdict verdict; ++# verdict = DAQ_VERDICT_RETRY; ++#]])], ++have_daq_verdict_retry="yes" ++#[have_daq_verdict_retry="no"]) ++#AC_MSG_RESULT($have_daq_verdict_retry) ++#if test "x$have_daq_verdict_retry" = "xyes"; then ++# AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], ++# [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) ++#fi + + # any sparc platform has to have this one defined. + AC_MSG_CHECKING(for sparc) + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch new file mode 100644 index 000000000..9dafe6345 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch @@ -0,0 +1,75 @@ +Upstream-Status: Inappropriate [embedded specific] + +fix the below error: +checking for INADDR_NONE... configure: +configure: error: cannot run test program while cross compiling + +Signed-off-by: Chunrong Guo + + +--- a/configure.in 2013-08-21 03:56:17.197414789 -0500 ++++ b/configure.in 2013-08-21 23:19:05.298553560 -0500 +@@ -281,25 +281,7 @@ + AC_CHECK_TYPES([boolean]) + + # In case INADDR_NONE is not defined (like on Solaris) +-have_inaddr_none="no" +-AC_MSG_CHECKING([for INADDR_NONE]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-#include +-#include +-]], +-[[ +- if (inet_addr("10,5,2") == INADDR_NONE); +- return 0; +-]])], +-[have_inaddr_none="yes"], +-[have_inaddr_none="no"]) +-AC_MSG_RESULT($have_inaddr_none) +-if test "x$have_inaddr_none" = "xno"; then +- AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition]) +-fi ++have_inaddr_none="yes" + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include +@@ -397,21 +379,21 @@ + fi + fi + +-AC_MSG_CHECKING([for pcap_lex_destroy]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- pcap_lex_destroy(); +-]])], +-[have_pcap_lex_destroy="yes"], +-[have_pcap_lex_destroy="no"]) +-AC_MSG_RESULT($have_pcap_lex_destroy) +-if test "x$have_pcap_lex_destroy" = "xyes"; then +- AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) +-fi ++#AC_MSG_CHECKING([for pcap_lex_destroy]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# pcap_lex_destroy(); ++#]])], ++have_pcap_lex_destroy="yes" ++#[have_pcap_lex_destroy="no"]) ++#AC_MSG_RESULT($have_pcap_lex_destroy) ++#if test "x$have_pcap_lex_destroy" = "xyes"; then ++# AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) ++#fi + + AC_MSG_CHECKING([for pcap_lib_version]) + AC_LINK_IFELSE( diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.init b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.init new file mode 100644 index 000000000..d8a00c43f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.init @@ -0,0 +1,109 @@ +#!/bin/sh +# +# Snort Startup Script modified for OpenEmbedded +# + +# Script variables + +LAN_INTERFACE="$2" +RETURN_VAL=0 +BINARY=/usr/bin/snort +PATH=/bin:/usr/bin +PID=/var/run/snort_${LAN_INTERFACE}_ids.pid +DEL_PID=$PID +LOGDIR="/var/log/snort" +DATE=`/bin/date +%Y%m%d` +CONFIG_FILE=/etc/snort/snort.conf +PROG=snort +USER=root +GROUP=root + +if [ ! -x "$BINARY" ]; then + echo "ERROR: $BINARY not found." + exit 1 +fi + +if [ ! -r "$CONFIG_FILE" ]; then + echo "ERROR: $CONFIG_FILE not found." + exit 1 +fi + +start() +{ + + [ -n "$LAN_INTERFACE" ] || return 0 + # Check if log diratory is present. Otherwise, create it. + if [ ! -d $LOGDIR/$DATE ]; then + mkdir -d $LOGDIR/$DATE + /bin/chown -R $USER:$USER $LOGDIR/$DATE + /bin/chmod -R 700 $LOGDIR/$DATE + fi + + /bin/echo "Starting $PROG: " + # Snort parameters + # -D Run Snort in background (daemon) mode + # -i Listen on interface + # -u Run snort uid as user (or uid) + # -g Run snort uid as group (or gid) + # -c Load configuration file + # -N Turn off logging (alerts still work) (removed to enable logging) :) + # -l Log to directory + # -t Chroots process to directory after initialization + # -R Include 'id' in snort_intf.pid file name + + $BINARY -D -i $LAN_INTERFACE -u $USER -g $GROUP -c $CONFIG_FILE -l $LOGDIR/$DATE -t $LOGDIR/$DATE -R _ids + /bin/echo "$PROG startup complete." + return $RETURN_VAL +} + +stop() +{ + if [ -s $PID ]; then + /bin/echo "Stopping $PROG with PID `cat $PID`: " + kill -TERM `cat $PID` 2>/dev/null + RETURN_VAL=$? + /bin/echo "$PROG shutdown complete." + [ -e $DEL_PID ] && rm -f $DEL_PID + [ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck + else + /bin/echo "ERROR: PID in $PID file not found." + RETURN_VAL=1 + fi + return $RETURN_VAL +} + +status() { + if [ -s $PID ]; then + echo "$PROG is running as pid `cat $PID`:" + else + echo "$PROG is not running." + fi +} + +restart() +{ + stop + start + RETURN_VAL=$? + return $RETURN_VAL +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status + ;; + restart|reload) + restart + ;; + *) + /bin/echo "Usage: $0 {start|stop|status|restart|reload}" + RETURN_VAL=1 +esac + +exit $RETURN_VAL diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb new file mode 100644 index 000000000..7d946af25 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb @@ -0,0 +1,89 @@ +DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows." +HOMEPAGE = "http://www.snort.org/" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" + +DEPENDS = "libpcap libpcre daq libdnet util-linux" + +SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ + file://snort.init \ + file://disable-inaddr-none.patch \ + file://disable-dap-address-space-id.patch \ + file://disable-daq-flow-id.patch \ + file://disable-daq-verdict-retry.patch \ + file://0001-libpcap-search-sysroot-for-headers.patch \ + file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \ +" + +SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202" +SRC_URI[tarball.sha256sum] = "ad03f11b5301b16642199a86aa90388eaa53f5003f83b0c5595745a490047be1" + +inherit autotools gettext update-rc.d pkgconfig + +INITSCRIPT_NAME = "snort" +INITSCRIPT_PARAMS = "defaults" + +EXTRA_OECONF = " \ + --enable-gre \ + --enable-linux-smp-stats \ + --enable-reload \ + --enable-reload-error-restart \ + --enable-targetbased \ + --disable-static-daq \ + --with-dnet-includes=${STAGING_INCDIR} \ + --with-dnet-libraries=${STAGING_LIBDIR} \ + --with-libpcre-includes=${STAGING_INCDIR} \ + --with-libpcre-libraries=${STAGING_LIBDIR} \ + --with-daq-includes=${STAGING_INCDIR} \ + --with-daq-libraries=${STAGING_LIBDIR} \ +" + +# if you want to disable it, you need to patch configure.in first +# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no") +# is called even with --without-openssl-includes +PACKAGECONFIG ?= "openssl" +PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl," + +do_install_append() { + install -d ${D}${sysconfdir}/snort/rules + install -d ${D}${sysconfdir}/snort/preproc_rules + install -d ${D}${sysconfdir}/init.d + for i in map config conf dtd; do + cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/ + done + cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/ + install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort + mkdir -p ${D}${localstatedir}/log/snort + install -d ${D}/var/log/snort +} + +FILES_${PN} += " \ + ${libdir}/snort_dynamicengine/*.so.* \ + ${libdir}/snort_dynamicpreprocessor/*.so.* \ + ${libdir}/snort_dynamicrules/*.so.* \ +" +FILES_${PN}-dbg += " \ + ${libdir}/snort_dynamicengine/.debug \ + ${libdir}/snort_dynamicpreprocessor/.debug \ + ${libdir}/snort_dynamicrules/.debug \ +" +FILES_${PN}-staticdev += " \ + ${libdir}/snort_dynamicengine/*.a \ + ${libdir}/snort_dynamicpreprocessor/*.a \ + ${libdir}/snort_dynamicrules/*.a \ + ${libdir}/snort/dynamic_preproc/*.a \ + ${libdir}/snort/dynamic_output/*.a \ +" +FILES_${PN}-dev += " \ + ${libdir}/snort_dynamicengine/*.la \ + ${libdir}/snort_dynamicpreprocessor/*.la \ + ${libdir}/snort_dynamicrules/*.la \ + ${libdir}/snort_dynamicengine/*.so \ + ${libdir}/snort_dynamicpreprocessor/*.so \ + ${libdir}/snort_dynamicrules/*.so \ + ${prefix}/src/snort_dynamicsrc \ +" + +# http://errors.yoctoproject.org/Errors/Details/35137/ +PNBLACKLIST[snort] ?= "BROKEN: QA Issue: snort_preproc.pc, snort_output.pc, snort.pc" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch new file mode 100644 index 000000000..a1e56b7ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch @@ -0,0 +1,25 @@ +Author: Jamie Strandboge +Description: to improve boot speed when disabled, don't source all of + ufw-init-functions (which also sources in other files). + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald + +Index: ufw-0.31/src/ufw-init +=================================================================== +--- ufw-0.31.orig/src/ufw-init 2012-03-09 17:07:11.000000000 -0600 ++++ ufw-0.31/src/ufw-init 2012-03-17 09:37:51.000000000 -0500 +@@ -18,6 +18,12 @@ + # + set -e + ++# Debian/Ubuntu: small boot speed improvement ++. "#CONFIG_PREFIX#/ufw/ufw.conf" ++if [ "$1" = "start" ] && [ "$2" = "quiet" ] && [ "$ENABLED" = "no" ]; then ++ exit 0 ++fi ++ + if [ -s "#STATE_PREFIX#/ufw-init-functions" ]; then + . "#STATE_PREFIX#/ufw-init-functions" + else diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch new file mode 100644 index 000000000..804c18bc9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch @@ -0,0 +1,118 @@ +Origin: r795, r796 +Description: move netfilter capabilities checking into initcaps(), and call + initcaps() only when we need it. +Bug-Ubuntu: https://launchpad.net/bugs/1044361 + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald + +Index: ufw-0.33/src/backend_iptables.py +=================================================================== +--- ufw-0.33.orig/src/backend_iptables.py 2012-09-23 09:58:34.000000000 -0500 ++++ ufw-0.33/src/backend_iptables.py 2012-09-23 09:58:36.000000000 -0500 +@@ -160,6 +160,9 @@ + out += "> " + _("Checking raw ip6tables\n") + return out + ++ # Initialize the capabilities database ++ self.initcaps() ++ + args = ['-n', '-v', '-x', '-L'] + items = [] + items6 = [] +@@ -470,6 +473,9 @@ + if self.dryrun: + return False + ++ # Initialize the capabilities database ++ self.initcaps() ++ + prefix = "ufw" + exe = self.iptables + if v6: +@@ -684,6 +690,9 @@ + except Exception: + raise + ++ # Initialize the capabilities database ++ self.initcaps() ++ + chain_prefix = "ufw" + rules = self.rules + if v6: +@@ -830,6 +839,10 @@ + * updating user rules file + * reloading the user rules file if rule is modified + ''' ++ ++ # Initialize the capabilities database ++ self.initcaps() ++ + rstr = "" + + if rule.v6: +@@ -1073,6 +1086,9 @@ + if self.dryrun: + return + ++ # Initialize the capabilities database ++ self.initcaps() ++ + rules_t = [] + try: + rules_t = self._get_logging_rules(level) +Index: ufw-0.33/src/backend.py +=================================================================== +--- ufw-0.33.orig/src/backend.py 2012-09-23 09:58:34.000000000 -0500 ++++ ufw-0.33/src/backend.py 2012-09-23 09:59:03.000000000 -0500 +@@ -21,7 +21,7 @@ + import stat + import sys + import ufw.util +-from ufw.util import warn, debug ++from ufw.util import error, warn, debug + from ufw.common import UFWError, config_dir, iptables_dir, UFWRule + import ufw.applications + +@@ -68,6 +68,17 @@ + err_msg = _("Couldn't determine iptables version") + raise UFWError(err_msg) + ++ # Initialize via initcaps only when we need it (LP: #1044361) ++ self.caps = None ++ ++ def initcaps(self): ++ '''Initialize the capabilities database. This needs to be called ++ before accessing the database.''' ++ ++ # Only initialize if not initialized already ++ if self.caps != None: ++ return ++ + self.caps = {} + self.caps['limit'] = {} + +@@ -78,14 +89,20 @@ + # Try to get capabilities from the running system if root + if self.do_checks and os.getuid() == 0 and not self.dryrun: + # v4 +- nf_caps = ufw.util.get_netfilter_capabilities(self.iptables) ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.iptables) ++ except OSError as e: ++ error("initcaps\n%s" % e) + if 'recent-set' in nf_caps and 'recent-update' in nf_caps: + self.caps['limit']['4'] = True + else: + self.caps['limit']['4'] = False + + # v6 +- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ except OSError as e: ++ error("initcaps\n%s" % e) + if 'recent-set' in nf_caps and 'recent-update' in nf_caps: + self.caps['limit']['6'] = True + else: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch new file mode 100644 index 000000000..b259fdf78 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch @@ -0,0 +1,20 @@ +Origin: r797 +Description: src/backend_iptables.py: fix misplaced parenthesis + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald + +Index: ufw-0.33/src/backend_iptables.py +=================================================================== +--- ufw-0.33.orig/src/backend_iptables.py 2012-09-24 08:51:13.000000000 -0500 ++++ ufw-0.33/src/backend_iptables.py 2012-09-24 08:52:00.000000000 -0500 +@@ -1075,7 +1075,7 @@ + exe = self.ip6tables + (rc, out) = cmd([exe] + args) + if rc != 0: +- err_msg = _("Could not perform '%s'") % (args) ++ err_msg = _("Could not perform '%s'" % (args)) + if fail_ok: + debug("FAILOK: " + err_msg) + else: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch new file mode 100644 index 000000000..695b26567 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch @@ -0,0 +1,40 @@ +Origin: r803, r804 +Description: Don't call get_netfilter_capabilities() with ipv6 if ipv6 is + disabled. +Bug-Ubuntu: https://launchpad.net/ufw/bugs/1039729 + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald + +Index: ufw-0.33/src/backend.py +=================================================================== +--- ufw-0.33.orig/src/backend.py 2012-12-04 09:21:57.000000000 -0600 ++++ ufw-0.33/src/backend.py 2012-12-04 09:22:40.000000000 -0600 +@@ -98,15 +98,17 @@ + else: + self.caps['limit']['4'] = False + +- # v6 +- try: +- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) +- except OSError as e: +- error("initcaps\n%s" % e) +- if 'recent-set' in nf_caps and 'recent-update' in nf_caps: +- self.caps['limit']['6'] = True +- else: +- self.caps['limit']['6'] = False ++ # v6 (skip capabilities check for ipv6 if ipv6 is disabled in ufw ++ # because the system may not have ipv6 support (LP: #1039729) ++ if self.use_ipv6(): ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ except OSError as e: ++ error("initcaps\n%s" % e) ++ if 'recent-set' in nf_caps and 'recent-update' in nf_caps: ++ self.caps['limit']['6'] = True ++ else: ++ self.caps['limit']['6'] = False + + def is_enabled(self): + '''Is firewall configured as enabled''' diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch new file mode 100644 index 000000000..b760d3fd3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch @@ -0,0 +1,32 @@ +Origin: r816 +Description: add check for -m rt --rt-type 0 +Bug-Ubuntu: https://launchpad.net/bugs/1191197 +Forwarded: yes + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald + +Index: ufw-0.33/tests/check-requirements +=================================================================== +--- ufw-0.33.orig/tests/check-requirements 2012-08-17 16:12:49.000000000 -0500 ++++ ufw-0.33/tests/check-requirements 2013-06-15 07:47:00.000000000 -0500 +@@ -3,7 +3,7 @@ + # check-requirements: verify all the required iptables functionality is + # available + # +-# Copyright 2008-2012 Canonical Ltd. ++# Copyright 2008-2013 Canonical Ltd. + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License version 3, +@@ -218,6 +218,9 @@ + echo -n "icmpv6 with hl ($j): " + runcmd $exe -A $c -p icmpv6 --icmpv6-type $j -m hl --hl-eq 255 -j ACCEPT + done ++ ++ echo -n "ipv6 rt: " ++ runcmd $exe -A $c -m rt --rt-type 0 -j ACCEPT + fi + + echo "" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch new file mode 100644 index 000000000..511742338 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch @@ -0,0 +1,107 @@ +From c54d36d0582a60fd281cd9287077cea205fd849d Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Thu, 27 Nov 2014 15:20:34 -0500 +Subject: [PATCH] setup: add an option to specify iptables location + +When cross-compiling it isn't certain that the location of iptables on the +target will be the same as on the host. It also doesn't make sense the +test the version of the host during setup. We provide an option to +specify an alternate iptables directory. This is assumed to be a +cross-compile environment and therefore no attempt is made to verify the +version of iptables to be used. + +Upstream-Status: Pending + +Signed-off-by: Joe MacDonald +--- + setup.py | 69 ++++++++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 39 insertions(+), 30 deletions(-) + +diff --git a/setup.py b/setup.py +index 6fb3751..b13d11c 100644 +--- a/setup.py ++++ b/setup.py +@@ -225,41 +225,50 @@ shutil.copytree('src', 'staging') + os.unlink(os.path.join('staging', 'ufw-init')) + os.unlink(os.path.join('staging', 'ufw-init-functions')) + ++iptables_set = 0 + iptables_exe = '' + iptables_dir = '' + +-for e in ['iptables']: +- for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \ +- '/usr/local/bin']: +- if e == "iptables": +- if os.path.exists(os.path.join(dir, e)): +- iptables_dir = dir +- iptables_exe = os.path.join(iptables_dir, "iptables") +- print("Found '%s'" % iptables_exe) +- else: +- continue +- +- if iptables_exe != "": +- break +- +- +-if iptables_exe == '': +- print("ERROR: could not find required binary 'iptables'", file=sys.stderr) +- sys.exit(1) +- +-for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']: +- if not os.path.exists(os.path.join(iptables_dir, e)): +- print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr) ++if "--iptables-dir" in sys.argv: ++ iptables_dir = sys.argv[sys.argv.index("--iptables-dir") + 1] ++ iptables_exe = os.path.join(iptables_dir, "iptables") ++ iptables_set = 1 ++ print("INFO: iptables manually set: '%s'" % (iptables_exe)) ++ sys.argv.remove(iptables_dir) ++ sys.argv.remove("--iptables-dir") ++ ++if not iptables_set: ++ for e in ['iptables']: ++ for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \ ++ '/usr/local/bin']: ++ if e == "iptables": ++ if os.path.exists(os.path.join(dir, e)): ++ iptables_dir = dir ++ iptables_exe = os.path.join(iptables_dir, "iptables") ++ print("Found '%s'" % iptables_exe) ++ else: ++ continue ++ ++ if iptables_exe != "": ++ break ++ ++ if iptables_exe == '': ++ print("ERROR: could not find required binary 'iptables'", file=sys.stderr) + sys.exit(1) + +-(rc, out) = cmd([iptables_exe, '-V']) +-if rc != 0: +- raise OSError(errno.ENOENT, "Could not find version for '%s'" % \ +- (iptables_exe)) +-version = re.sub('^v', '', re.split('\s', str(out))[1]) +-print("Found '%s' version '%s'" % (iptables_exe, version)) +-if version < "1.4": +- print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr) ++ for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']: ++ if not os.path.exists(os.path.join(iptables_dir, e)): ++ print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr) ++ sys.exit(1) ++ ++ (rc, out) = cmd([iptables_exe, '-V']) ++ if rc != 0: ++ raise OSError(errno.ENOENT, "Could not find version for '%s'" % \ ++ (iptables_exe)) ++ version = re.sub('^v', '', re.split('\s', str(out))[1]) ++ print("Found '%s' version '%s'" % (iptables_exe, version)) ++ if version < "1.4": ++ print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr) + + setup (name='ufw', + version=ufw_version, +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch new file mode 100644 index 000000000..ff704b5a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch @@ -0,0 +1,77 @@ +From be53eea06a5655fdc98f47a73be8277b65bb42ed Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 11 Nov 2014 21:41:14 -0500 +Subject: [PATCH] setup: only make one reference to env + +If sys.executable happens to be '/usr/bin/env python' or something +similar, the setup script will result in 'ufw' getting /usr/bin/env +repeated on the top line. This causes an error at runtime. Perform a +quick sanity check on sys.executable before doing the substitution. + +While we're at it, change the default value of 'exe' to the one we either +detected or specified on the build line. + +Upstream-Status: Inappropriate [ embedded specific ] + +Signed-off-by: Joe MacDonald +--- + setup.py | 34 ++++++++++++++++++++++++++++------ + 1 file changed, 28 insertions(+), 6 deletions(-) + +diff --git a/setup.py b/setup.py +index b13d11c..73acdef 100644 +--- a/setup.py ++++ b/setup.py +@@ -64,7 +64,7 @@ class Install(_install, object): + real_sharedir = os.path.join(real_prefix, 'share', 'ufw') + + # Update the modules' paths +- for file in [ 'common.py' ]: ++ for file in [ 'common.py', 'util.py' ]: + print("Updating " + file) + subprocess.call(["sed", + "-i", +@@ -91,6 +91,11 @@ class Install(_install, object): + "s%#SHARE_DIR#%" + real_sharedir + "%g", + os.path.join('staging', file)]) + ++ subprocess.call(["sed", ++ "-i.jjm", ++ "s%/sbin/iptables%" + iptables_exe + "%g", ++ os.path.join('staging', file)]) ++ + # Now byte-compile everything + super(Install, self).run() + +@@ -107,12 +112,23 @@ class Install(_install, object): + for f in [ script, manpage, manpage_f ]: + self.mkpath(os.path.dirname(f)) + ++ # if sys.executable == /usr/bin/env python* the result will be the top ++ # of ufw getting: ++ # ++ # #! /usr/bin/env /usr/bin/env python ++ # ++ # which is not ideal ++ # + # update the interpreter to that of the one the user specified for setup +- print("Updating staging/ufw to use %s" % (sys.executable)) +- subprocess.call(["sed", +- "-i", +- "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g", +- 'staging/ufw']) ++ print("Updating staging/ufw to use (%s)" % (sys.executable)) ++ ++ if re.search("(/usr/bin/env)", sys.executable): ++ print("found 'env' in sys.executable (%s)" % (sys.executable)) ++ subprocess.call(["sed", ++ "-i.jjm", ++ "1s%^#.*python.*%#! " + sys.executable + "%g", ++ 'staging/ufw']) ++ + self.copy_file('staging/ufw', script) + self.copy_file('doc/ufw.8', manpage) + self.copy_file('doc/ufw-framework.8', manpage_f) +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb new file mode 100644 index 000000000..19cfe46b7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb @@ -0,0 +1,56 @@ +SUMMARY = "Uncomplicated Firewall" +DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \ +managing a netfilter firewall. It provides a command line interface and aims \ +to be uncomplicated and easy to use." +HOMEPAGE = "https://launchpad.net/ufw" +SECTION = "net" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" + +SRC_URI = " \ + https://launchpad.net/ufw/0.33/0.33/+download/ufw-0.33.tar.gz \ + file://setup-add-an-option-to-specify-iptables-location.patch \ + file://setup-only-make-one-reference-to-env.patch \ + file://0001-optimize-boot.patch \ + file://0002-lp1044361.patch \ + file://0003-fix-typeerror-on-error.patch \ + file://0004-lp1039729.patch \ + file://0005-lp1191197.patch \ +" +SRC_URI[md5sum] = "3747b453d76709e5a99da209fc0bb5f5" +SRC_URI[sha256sum] = "5f85a8084ad3539b547bec097286948233188c971f498890316dec170bdd1da8" + +inherit setuptools distro_features_check + +RDEPENDS_${PN} = " \ + iptables \ + python \ + python-modules \ + " + +RRECOMMENDS_${PN} = " \ + kernel-module-ipv6 \ + kernel-module-nf-conntrack-ipv6 \ + kernel-module-nf-log-common \ + kernel-module-nf-log-ipv4 \ + kernel-module-nf-log-ipv6 \ + kernel-module-nf-addrtype \ + kernel-module-nf-limit \ + kernel-module-nf-log \ + kernel-module-nf-recent \ +" + +# Certain items are explicitly put under /lib, not base_libdir when installed. +# +FILES_${PN} += " \ + ${sbindir}/* \ + ${datadir}/ufw/* \ + /lib/ufw/* \ + ${sysconfdir}/ufw/* \ + ${sysconfdir}/default/ufw \ +" + +REQUIRED_DISTRO_FEATURES = "ipv6" + +DISTUTILS_BUILD_ARGS_append = " --iptables-dir /usr/sbin" +DISTUTILS_INSTALL_ARGS_append = " --iptables-dir /usr/sbin" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch new file mode 100644 index 000000000..b7ab7d97c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch @@ -0,0 +1,22 @@ +From: Dmitry Eremin-Solenikov +Subject: vlan: do not include ${HOME}/linux/include dir + +~/linux/include dir may exist and so will be added to include path +in front of sanitized kernel headers in OE chroot. Drop this include +option. + +Upstream-Status: not-applicable + +Index: vlan/MakeInclude +=================================================================== +--- vlan.orig/MakeInclude ++++ vlan/MakeInclude +@@ -16,7 +16,7 @@ ifeq "${PLATFORM}" "" + endif + + ## You may need to change this linux/include part. +-CCFLAGS = -g -D_GNU_SOURCE -Wall -I${HOME}/linux/include ++CCFLAGS = -g -D_GNU_SOURCE -Wall + LDLIBS = # -lm #-lnsl # -lsocket + + ARM_TC_BIN = ${HOME}/Intrinsyc/bin diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb new file mode 100644 index 000000000..09c4007ef --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb @@ -0,0 +1,29 @@ +SUMMARY = "VLAN provides vconfig utility" +SECTION = "misc" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://vconfig.c;md5=293ef69c4e88434d37a5ee577a5288cb" + +SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \ + file://no-HOME-includes.patch" + +SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394" +SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca" + +S = "${WORKDIR}/${BPN}" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +# comment out MakeInclude in Makefile which sets build environment +do_configure_append () { + sed -i 's/^ include/#^include/' ${S}/Makefile +} + +# ignore strip to avoid yocto errors in stripping +do_compile () { + oe_runmake PLATFORM=ARM 'STRIP=echo' all +} + +do_install () { + install -d ${D}/${base_sbindir} + install -m 0755 ${S}/vconfig ${D}/${base_sbindir}/ +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/default.conf b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/default.conf new file mode 100644 index 000000000..48b15eca6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/default.conf @@ -0,0 +1,19 @@ +# Comment out the options you need. +# Verify your config with "vpnc --print-config". +# You might also try "vpnc --long-help" or look into the documentation. + +# Needed (you will be prompted if this is missing): +#IPSec gateway 10.1.2.3 +#IPSec ID YOURPEERSID +#IPSec secret YOURPEERSSECRET +#Xauth username YOURUSERNAME +#Xauth password YOURPASSWORD + +# Optional: +#UDP Encapsulate +#UDP Encapsulation Port 10000 +#Noninteractive +#No Detach +#Debug 99 +#Interface name tun0 +#Script /etc/vpnc/vpnc-script diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/long-help b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/long-help new file mode 100644 index 000000000..fbec25414 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/long-help @@ -0,0 +1,168 @@ +Usage: vpnc [--version] [--print-config] [--help] [--long-help] [options] [config files] + +Options: + --gateway + IP/name of your IPSec gateway + conf-variable: IPSec gateway + + --id + your group name + conf-variable: IPSec ID + + (configfile only option) + your group password (cleartext) + conf-variable: IPSec secret + + (configfile only option) + your group password (obfuscated) + conf-variable: IPSec obfuscated secret + + --username + your username + conf-variable: Xauth username + + (configfile only option) + your password (cleartext) + conf-variable: Xauth password + + (configfile only option) + your password (obfuscated) + conf-variable: Xauth obfuscated password + + --domain + (NT-) Domain name for authentication + conf-variable: Domain + + --xauth-inter + enable interactive extended authentication (for challenge response auth) + conf-variable: Xauth interactive + + --vendor + vendor of your IPSec gateway + Default: cisco + conf-variable: Vendor + + --natt-mode + Which NAT-Traversal Method to use: + * natt -- NAT-T as defined in RFC3947 + * none -- disable use of any NAT-T method + * force-natt -- always use NAT-T encapsulation even + without presence of a NAT device + (useful if the OS captures all ESP traffic) + * cisco-udp -- Cisco proprietary UDP encapsulation, commonly over Port 10000 + Note: cisco-tcp encapsulation is not yet supported + Default: natt + conf-variable: NAT Traversal Mode + + --script + command is executed using system() to configure the interface, + routing and so on. Device name, IP, etc. are passed using enviroment + variables, see README. This script is executed right after ISAKMP is + done, but before tunneling is enabled. It is called when vpnc + terminates, too + Default: /etc/vpnc/vpnc-script + conf-variable: Script + + --dh + name of the IKE DH Group + Default: dh2 + conf-variable: IKE DH Group + + --pfs + Diffie-Hellman group to use for PFS + Default: server + conf-variable: Perfect Forward Secrecy + + --enable-1des + enables weak single DES encryption + conf-variable: Enable Single DES + + --enable-no-encryption + enables using no encryption for data traffic (key exchanged must be encrypted) + conf-variable: Enable no encryption + + --application-version + Application Version to report. Note: Default string is generated at runtime. + Default: Cisco Systems VPN Client 0.5.3-394:Linux + conf-variable: Application version + + --ifname + visible name of the TUN/TAP interface + conf-variable: Interface name + + --ifmode + mode of TUN/TAP interface: + * tun: virtual point to point interface (default) + * tap: virtual ethernet interface + Default: tun + conf-variable: Interface mode + + --debug <0/1/2/3/99> + Show verbose debug messages + * 0: Do not print debug information. + * 1: Print minimal debug information. + * 2: Show statemachine and packet/payload type information. + * 3: Dump everything exluding authentication data. + * 99: Dump everything INCLUDING AUTHENTICATION data (e.g. PASSWORDS). + conf-variable: Debug <0/1/2/3/99> + + --no-detach + Don't detach from the console after login + conf-variable: No Detach + + --pid-file + store the pid of background process in + Default: /var/run/vpnc/pid + conf-variable: Pidfile + + --local-addr + local IP to use for ISAKMP / ESP / ... (0.0.0.0 == automatically assign) + Default: 0.0.0.0 + conf-variable: Local Addr + + --local-port <0-65535> + local ISAKMP port number to use (0 == use random port) + Default: 500 + conf-variable: Local Port <0-65535> + + --udp-port <0-65535> + Local UDP port number to use (0 == use random port). + This is only relevant if cisco-udp nat-traversal is used. + This is the _local_ port, the remote udp port is discovered automatically. + It is especially not the cisco-tcp port. + Default: 10000 + conf-variable: Cisco UDP Encapsulation Port <0-65535> + + --dpd-idle <0,10-86400> + Send DPD packet after not receiving anything for seconds. + Use 0 to disable DPD completely (both ways). + Default: 300 + conf-variable: DPD idle timeout (our side) <0,10-86400> + + --non-inter + Don't ask anything, exit on missing options + conf-variable: Noninteractive + + --auth-mode + Authentication mode: + * psk: pre-shared key (default) + * cert: server + client certificate (not implemented yet) + * hybrid: server certificate + xauth (if built with openssl support) + Default: psk + conf-variable: IKE Authmode + + --ca-file + filename and path to the CA-PEM-File + conf-variable: CA-File + + --ca-dir + path of the trusted CA-Directory + Default: /etc/ssl/certs + conf-variable: CA-Dir + + --target-network + Target network in dotted decimal or CIDR notation + Default: 0.0.0.0/0.0.0.0 + conf-variable: IPSEC target network + +Report bugs to vpnc@unix-ag.uni-kl.de diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch new file mode 100644 index 000000000..f394e6abd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch @@ -0,0 +1,11 @@ +--- vpnc-0.5.1/makeman.pl.old 2008-03-16 02:17:59.000000000 -0500 ++++ vpnc-0.5.1/makeman.pl 2008-03-16 02:29:34.000000000 -0500 +@@ -29,7 +29,7 @@ my $vpnc = './vpnc'; + # indenting lists (those originally starting with an asterisk). I hope + # this pays off when converting the manpage to HTML or such. + +-open my $LONGHELP, '-|', "$vpnc --long-help"; ++open my $LONGHELP, '-|', "cat ../long-help"; + my $vpnc_options = ''; + my $relative_indent = 0; + my $indent_needed = 0; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch new file mode 100644 index 000000000..3de65ec35 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch @@ -0,0 +1,35 @@ +--- a/Makefile~ 2009-01-20 18:44:30.000000000 +0100 ++++ b/Makefile 2009-01-20 18:44:30.000000000 +0100 +@@ -119,21 +119,21 @@ + else \ + install vpnc-script $(DESTDIR)$(ETCDIR); \ + fi +- install -m600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf +- install -m755 vpnc-disconnect $(DESTDIR)$(SBINDIR) +- install -m755 pcf2vpnc $(DESTDIR)$(BINDIR) +- install -m644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 +- install -m644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 +- install -m644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 +- install -m644 COPYING $(DESTDIR)$(DOCDIR) ++ install -m 600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf ++ install -m 755 vpnc-disconnect $(DESTDIR)$(SBINDIR) ++ install -m 755 pcf2vpnc $(DESTDIR)$(BINDIR) ++ install -m 644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 ++ install -m 644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 ++ install -m 644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 ++ install -m 644 COPYING $(DESTDIR)$(DOCDIR) + + install : install-common +- install -m755 vpnc $(DESTDIR)$(SBINDIR) +- install -m755 cisco-decrypt $(DESTDIR)$(BINDIR) ++ install -m 755 vpnc $(DESTDIR)$(SBINDIR) ++ install -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) + + install-strip : install-common +- install -s -m755 vpnc $(DESTDIR)$(SBINDIR) +- install -s -m755 cisco-decrypt $(DESTDIR)$(BINDIR) ++ install -s -m 755 vpnc $(DESTDIR)$(SBINDIR) ++ install -s -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) + + uninstall : + rm -f $(DESTDIR)$(SBINDIR)/vpnc \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb new file mode 100644 index 000000000..ccb449476 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb @@ -0,0 +1,45 @@ +SUMMARY = "A client for the Cisco3000 VPN Concentrator" +HOMEPAGE = "http://www.unix-ag.uni-kl.de/~massar/vpnc/" +AUTHOR = "Maurice Massar vpnc@unix-ag.uni-kl.de" +SECTION = "net" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33" +DEPENDS = "libgcrypt" + +inherit perlnative + +EXTRA_OEMAKE = "-e MAKEFLAGS=" +CFLAGS_append = ' -DVERSION=\\"${PV}\\"' +LDFLAGS_append = " -lgcrypt -lgpg-error" + +do_configure_append () { + # Make sure we use our nativeperl wrapper + sed -i "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/*.pl +} + +do_install () { + sed -i s:m600:m\ 600:g Makefile + oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install + rm -f ${D}${sysconfdir}/vpnc/vpnc.conf #This file is useless + install ${WORKDIR}/default.conf ${D}${sysconfdir}/vpnc/default.conf +} + +SYSROOT_PREPROCESS_FUNCS += "vpnc_sysroot_preprocess" + +vpnc_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${sysconfdir}/vpnc + install -m 755 ${D}${sysconfdir}/vpnc/vpnc-script ${SYSROOT_DESTDIR}${sysconfdir}/vpnc +} + +CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf" +RDEPENDS_${PN} = "perl-module-io-file" +RRECOMMENDS_${PN} = "kernel-module-tun" + +SRC_URI = "http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-${PV}.tar.gz \ + file://makeman.patch \ + file://vpnc-install.patch \ + file://long-help \ + file://default.conf" + +SRC_URI[md5sum] = "4378f9551d5b077e1770bbe09995afb3" +SRC_URI[sha256sum] = "46cea3bd02f207c62c7c6f2f22133382602baeda1dc320747809e94881414884" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb new file mode 100644 index 000000000..d086cefc5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "wolfSSL Lightweight, Embedded SSL Library" +DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written in C and \ + optimized for embedded and RTOS environments. It can be \ + Up to 20 times smaller than OpenSSL while still supporting \ + a full TLS 1.2 client and server." +HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html" +BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PROVIDES += "cyassl" +RPROVIDES_${PN} = "cyassl" + +SRC_URI = "http://www.wolfssl.com/${BP}.zip" + +SRC_URI[md5sum] = "f3396726a9befd61443c2cce216e39ba" +SRC_URI[sha256sum] = "98f50244f7b43f8683bd0cf5c599849d330e75e6cf077e96f14e83bda8b03ca3" + +inherit autotools + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp/atftpd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp/atftpd.service new file mode 100644 index 000000000..480bc702e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp/atftpd.service @@ -0,0 +1,10 @@ +[Unit] +Description=Advanced TFTP Server +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/atftpd --daemon --port 69 + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_git.bb new file mode 100644 index 000000000..0ece58f7d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/atftp_git.bb @@ -0,0 +1,63 @@ +SUMMARY = "Advanced TFTP server and client" +SECTION = "net" +HOMEPAGE = "http://packages.debian.org/atftp" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" +PV = "0.7.1+git${SRCPV}" +PR = "r3" + +SRCREV = "be3291a18c069ae23a124ffdc56d64a5ff0bbec7" + +SRC_URI = "git://git.code.sf.net/p/atftp/code \ + file://atftpd-0.7_circumvent_tftp_size_restrictions.patch \ + file://atftpd-0.7_unprotected_assignments_crash.patch \ + file://atftpd.init \ + file://atftpd.service \ + file://atftp-0.7-sorcerers_apprentice.patch \ +" +S = "${WORKDIR}/git" + +inherit autotools update-rc.d useradd systemd + +PACKAGECONFIG ??= "tcp-wrappers" +PACKAGECONFIG[pcre] = "--enable-libpcre,--disable-libpcre,libpcre" +PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" +PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline" + +INITSCRIPT_PACKAGES = "${PN}d" +INITSCRIPT_NAME_${PN}d = "atftpd" +INITSCRIPT_PARAMS_${PN}d = "defaults 80" + +USERADD_PACKAGES = "${PN}d" +USERADD_PARAM_${PN}d = "--system --no-create-home --shell /bin/false \ + --user-group nobody" + +EXTRA_OEMAKE = "CFLAGS='${CFLAGS} -std=gnu89'" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/atftpd.init ${D}${sysconfdir}/init.d/atftpd + + install -d ${D}/srv/tftp + + rm ${D}${sbindir}/in.tftpd + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/atftpd.service ${D}${systemd_unitdir}/system +} + +PACKAGES =+ "${PN}d" + +FILES_${PN} = "${bindir}/*" + +FILES_${PN}d = "${sbindir}/* \ + ${sysconfdir} \ + /srv/tftp \ + ${systemd_unitdir}/system/atftpd.service \ +" + +SYSTEMD_PACKAGES = "${PN}d" +SYSTEMD_SERVICE_${PN}d = "atftpd.service" +RPROVIDES_${PN}d += "${PN}d-systemd" +RREPLACES_${PN}d += "${PN}d-systemd" +RCONFLICTS_${PN}d += "${PN}d-systemd" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch new file mode 100644 index 000000000..fc64291cd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch @@ -0,0 +1,94 @@ +atftp exhibits the well known "Sorcerer's Apprentice Syndrome"(SAS) problem. +According to RFC 1350, the fix to SAS is quite simple: further copies of the +acknowledgment for a particular data block would be ignored. + +Patch originally from OpenSUSE: +https://build.opensuse.org/package/view_file?file=atftp-0.7-sorcerers_apprentice.patch&package=atftp.539&project=openSUSE%3A12.1%3AUpdate&rev=84569792975e00573d7df597d2a6e895 + +Upstream-Status: Pending + +Signed-off-by: Roy.Li +Index: atftp-0.7/tftp_file.c +=================================================================== +--- atftp-0.7.orig/tftp_file.c 2011-11-22 15:12:53.792744083 +0100 ++++ atftp-0.7/tftp_file.c 2011-11-22 15:13:51.706421893 +0100 +@@ -605,6 +605,7 @@ + int timeout_state = state; /* what state should we go on when timeout */ + int result; + long block_number = 0; ++ long last_requested_block = -1; + long last_block = -1; + int data_size; /* size of data received */ + int sockfd = data->sockfd; /* just to simplify calls */ +@@ -765,6 +766,17 @@ + connected = 1; + } + block_number = ntohs(tftphdr->th_block); ++ ++ if (last_requested_block >= block_number) ++ { ++ if (data->trace) ++ fprintf(stderr, "received duplicated ACK = %ld>\n", ++ last_requested_block, block_number); ++ break; ++ } ++ else ++ last_requested_block = block_number; ++ + if (data->trace) + fprintf(stderr, "received ACK \n", + block_number); +Index: atftp-0.7/tftpd_file.c +=================================================================== +--- atftp-0.7.orig/tftpd_file.c 2011-11-22 15:12:53.793744112 +0100 ++++ atftp-0.7/tftpd_file.c 2011-11-22 15:15:04.617534260 +0100 +@@ -403,6 +403,7 @@ + int timeout_state = state; + int result; + long block_number = 0; ++ long last_requested_block = -1; + long last_block = -1; + int block_loops = 0; + int data_size; +@@ -859,6 +860,32 @@ + { + logger(LOG_DEBUG, "received ACK ", block_number); + } ++ ++ /* check whether the block request isn't already fulfilled */ ++ ++ /* multicast, block numbers could contain gaps */ ++ if (multicast) { ++ if (last_requested_block >= block_number) ++ { ++ if (data->trace) ++ logger(LOG_DEBUG, "received duplicated ACK = %d>", last_requested_block, block_number); ++ break; ++ } ++ else ++ last_requested_block = block_number; ++ /* unicast, blocks should be requested one after another */ ++ } else { ++ if (last_requested_block + 1 != block_number && last_requested_block != -1) ++ { ++ if (data->trace) ++ logger(LOG_DEBUG, "received out of order ACK ", last_requested_block + 1, block_number); ++ break; ++ } ++ else ++ last_requested_block = block_number; ++ } ++ ++ + if (ntohs(tftphdr->th_block) == 65535) + { + block_loops++; +@@ -958,6 +985,8 @@ + /* nedd to send an oack to that client */ + state = S_SEND_OACK; + fseek(fp, 0, SEEK_SET); ++ /* reset the last block received counter */ ++ last_requested_block = -1; + } + else + { diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch new file mode 100644 index 000000000..280b570b2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch @@ -0,0 +1,163 @@ +Fate #303031: Circumvent TFTP size restrictions in atftpd +The size of a single image file that can be transferred with TFTP is limited to +2^(2*8) *BLOCKSIZE (as per RFC 1350 there are only two bytes for the block +counter). This is problematic for one of our customers who needs to transfer +100+ MB Windows images using a TFTP client (NT bootloader) which has a +hardwared BLOCKSIZE setting of 1432). + +block rollover +http://www.compuphase.com/tftp.htm + +Patch originally from OpenSUSE: +https://build.opensuse.org/package/show?package=atftp&project=openSUSE%3A12.2 + +Upstream-Status: Pending + +Index: git/tftp_def.h +=================================================================== +--- git.orig/tftp_def.h 2012-11-19 16:28:50.221027144 -0800 ++++ git/tftp_def.h 2012-11-20 17:40:54.391206979 -0800 +@@ -32,6 +32,7 @@ + #define TIMEOUT 5 /* Client timeout */ + #define S_TIMEOUT 5 /* Server timout. */ + #define NB_OF_RETRY 5 ++#define MAXBLOCKS 1000000 /* maximum number of blocks in a download */ + + /* definition to use tftp_options structure */ + #define OPT_FILENAME 0 +Index: git/tftp_file.c +=================================================================== +--- git.orig/tftp_file.c 2012-11-19 16:28:50.221027144 -0800 ++++ git/tftp_file.c 2012-11-19 16:28:51.201027167 -0800 +@@ -622,8 +622,8 @@ + int state = S_SEND_REQ; /* current state in the state machine */ + int timeout_state = state; /* what state should we go on when timeout */ + int result; +- int block_number = 0; +- int last_block = -1; ++ long block_number = 0; ++ long last_block = -1; + int data_size; /* size of data received */ + int sockfd = data->sockfd; /* just to simplify calls */ + struct sockaddr_storage sa; /* a copy of data.sa_peer */ +@@ -637,8 +637,8 @@ + int convert = 0; /* if true, do netascii convertion */ + char string[MAXLEN]; + +- int prev_block_number = 0; /* needed to support netascii convertion */ +- int prev_file_pos = 0; ++ long prev_block_number = 0; /* needed to support netascii convertion */ ++ long prev_file_pos = 0; + int temp = 0; + + data->file_size = 0; +@@ -745,7 +745,7 @@ + data_size, data->data_buffer); + data->file_size += data_size; + if (data->trace) +- fprintf(stderr, "sent DATA \n", ++ fprintf(stderr, "sent DATA \n", + block_number + 1, data_size - 4); + state = S_WAIT_PACKET; + break; +@@ -785,7 +785,7 @@ + } + block_number = ntohs(tftphdr->th_block); + if (data->trace) +- fprintf(stderr, "received ACK \n", ++ fprintf(stderr, "received ACK \n", + block_number); + if ((last_block != -1) && (block_number > last_block)) + { +Index: git/tftp_io.c +=================================================================== +--- git.orig/tftp_io.c 2012-11-19 16:28:50.221027144 -0800 ++++ git/tftp_io.c 2012-11-19 16:28:51.201027167 -0800 +@@ -350,8 +350,8 @@ + /* + * Read from file and do netascii conversion if needed + */ +-int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, int block_number, +- int convert, int *prev_block_number, int *prev_file_pos, int *temp) ++int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, long block_number, ++ int convert, long *prev_block_number, long *prev_file_pos, int *temp) + { + int i; + int c; +Index: git/tftp_io.h +=================================================================== +--- git.orig/tftp_io.h 2012-11-19 16:28:50.221027144 -0800 ++++ git/tftp_io.h 2012-11-19 16:28:51.201027167 -0800 +@@ -52,8 +52,8 @@ + int tftp_get_packet(int sock1, int sock2, int *sock, struct sockaddr_storage *sa, + struct sockaddr_storage *from, struct sockaddr_storage *to, + int timeout, int *size, char *data); +-int tftp_file_read(FILE *fp, char *buffer, int buffer_size, int block_number, int convert, +- int *prev_block_number, int *prev_file_pos, int *temp); ++int tftp_file_read(FILE *fp, char *buffer, int buffer_size, long block_number, int convert, ++ long *prev_block_number, long *prev_file_pos, int *temp); + int tftp_file_write(FILE *fp, char *data_buffer, int data_buffer_size, int block_number, + int data_size, int convert, int *prev_block_number, int *temp); + #endif +Index: git/tftpd_file.c +=================================================================== +--- git.orig/tftpd_file.c 2012-11-19 16:28:50.225027144 -0800 ++++ git/tftpd_file.c 2012-11-19 16:28:51.201027167 -0800 +@@ -407,8 +407,9 @@ + int state = S_BEGIN; + int timeout_state = state; + int result; +- int block_number = 0; +- int last_block = -1; ++ long block_number = 0; ++ long last_block = -1; ++ int block_loops = 0; + int data_size; + struct sockaddr_storage *sa = &data->client_info->client; + struct sockaddr_storage from; +@@ -431,8 +432,8 @@ + struct client_info *client_old = NULL; + struct tftp_opt options[OPT_NUMBER]; + +- int prev_block_number = 0; /* needed to support netascii convertion */ +- int prev_file_pos = 0; ++ long prev_block_number = 0; /* needed to support netascii convertion */ ++ long prev_file_pos = 0; + int temp = 0; + + /* look for mode option */ +@@ -565,11 +566,12 @@ + logger(LOG_INFO, "blksize option -> %d", result); + } + +- /* Verify that the file can be sent in 2^16 block of BLKSIZE octets */ +- if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535) ++ /* Verify that the file can be sent in MAXBLOCKS blocks of BLKSIZE octets */ ++ if ((file_stat.st_size / (data->data_buffer_size - 4)) > MAXBLOCKS) + { + tftp_send_error(sockfd, sa, EUNDEF, data->data_buffer, data->data_buffer_size); +- logger(LOG_NOTICE, "Requested file to big, increase BLKSIZE"); ++ logger(LOG_NOTICE, "Requested file too big, increase BLKSIZE"); ++ logger(LOG_NOTICE, "Only %d blocks of %d bytes can be served.", MAXBLOCKS, data->data_buffer_size); + if (data->trace) + logger(LOG_DEBUG, "sent ERROR ", EUNDEF, + tftp_errmsg[EUNDEF]); +@@ -880,10 +882,15 @@ + } + /* The ACK is from the current client */ + number_of_timeout = 0; +- block_number = ntohs(tftphdr->th_block); ++ block_number = (block_loops * 65536) + ntohs(tftphdr->th_block); + if (data->trace) +- logger(LOG_DEBUG, "received ACK ", +- block_number); ++ { ++ logger(LOG_DEBUG, "received ACK ", block_number); ++ } ++ if (ntohs(tftphdr->th_block) == 65535) ++ { ++ block_loops++; ++ }; + if ((last_block != -1) && (block_number > last_block)) + { + state = S_END; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch new file mode 100644 index 000000000..28fba6cf5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch @@ -0,0 +1,152 @@ +Avoid assigning thread data outside of mutex lock + +Patch originally from OpenSUSE: +https://build.opensuse.org/package/show?package=atftp&project=openSUSE%3A12.2 + +Upstream-Status: Pending + +Index: git/tftpd_list.c +=================================================================== +--- git.orig/tftpd_list.c 2012-10-24 21:48:47.000000000 -0700 ++++ git/tftpd_list.c 2012-10-24 21:52:04.266205076 -0700 +@@ -49,11 +49,11 @@ + */ + int tftpd_list_add(struct thread_data *new) + { +- struct thread_data *current = thread_data; ++ struct thread_data *current; + int ret; + + pthread_mutex_lock(&thread_list_mutex); +- ++ current = thread_data; + number_of_thread++; + + ret = number_of_thread; +@@ -81,11 +81,13 @@ + */ + int tftpd_list_remove(struct thread_data *old) + { +- struct thread_data *current = thread_data; ++ struct thread_data *current; + int ret; + + pthread_mutex_lock(&thread_list_mutex); + ++ current = thread_data; ++ + number_of_thread--; + ret = number_of_thread; + +@@ -137,23 +139,26 @@ + struct thread_data *data, + struct client_info *client) + { +- struct thread_data *current = thread_data; /* head of the list */ +- struct tftp_opt *tftp_options = data->tftp_options; ++ struct thread_data *current; /* head of the list */ ++ struct tftp_opt *tftp_options; + struct client_info *tmp; + char options[MAXLEN]; + char string[MAXLEN]; + char *index; + int len; + ++ /* lock the whole list before walking it */ ++ pthread_mutex_lock(&thread_list_mutex); ++ + *thread = NULL; + ++ current = thread_data; ++ tftp_options = data->tftp_options; ++ + opt_request_to_string(tftp_options, options, MAXLEN); + index = strstr(options, "multicast"); + len = (int)index - (int)options; + +- /* lock the whole list before walking it */ +- pthread_mutex_lock(&thread_list_mutex); +- + while (current) + { + if (current != data) +@@ -214,9 +219,10 @@ + void tftpd_clientlist_remove(struct thread_data *thread, + struct client_info *client) + { +- struct client_info *tmp = thread->client_info; ++ struct client_info *tmp; + + pthread_mutex_lock(&thread->client_mutex); ++ tmp = thread->client_info; + while ((tmp->next != client) && (tmp->next != NULL)) + tmp = tmp->next; + if (tmp->next == NULL) +@@ -231,9 +237,11 @@ + void tftpd_clientlist_free(struct thread_data *thread) + { + struct client_info *tmp; +- struct client_info *head = thread->client_info; ++ struct client_info *head; + + pthread_mutex_lock(&thread->client_mutex); ++ head = thread->client_info; ++ + while (head) + { + tmp = head; +@@ -250,9 +258,10 @@ + struct client_info *client, + struct sockaddr_storage *sock) + { +- struct client_info *head = thread->client_info; ++ struct client_info *head; + + pthread_mutex_lock(&thread->client_mutex); ++ head = thread->client_info; + + if (client) + { +@@ -334,10 +343,10 @@ + + void tftpd_list_kill_threads(void) + { +- struct thread_data *current = thread_data; /* head of list */ ++ struct thread_data *current; /* head of list */ + + pthread_mutex_lock(&thread_list_mutex); +- ++ current = thread_data; + + while (current != NULL) + { +Index: git/tftpd_mcast.c +=================================================================== +--- git.orig/tftpd_mcast.c 2012-10-24 21:48:47.000000000 -0700 ++++ git/tftpd_mcast.c 2012-10-24 21:49:11.570201582 -0700 +@@ -51,9 +51,11 @@ + */ + int tftpd_mcast_get_tid(char **addr, short *port) + { +- struct tid *current = tid_list; ++ struct tid *current; + + pthread_mutex_lock(&mcast_tid_list); ++ current = tid_list; ++ + /* walk the list for a free tid */ + while (current != NULL) + { +@@ -74,9 +76,11 @@ + + int tftpd_mcast_free_tid(char *addr, short port) + { +- struct tid *current = tid_list; ++ struct tid *current; + + pthread_mutex_lock(&mcast_tid_list); ++ current = tid_list; ++ + while (current != NULL) + { + if ((current->used == 1) && (current->port == port) && diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd.init new file mode 100644 index 000000000..161d97aca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd.init @@ -0,0 +1,37 @@ +#! /bin/sh +# +# This is an init script for openembedded +# Copy it to /etc/init.d/atftpd and type +# > update-rc.d atftpd defaults 60 +# + + +test -f /usr/sbin/atftpd || exit 0 + +test -d /srv/tftp || mkdir -p /srv/tftp + +case "$1" in + start) + echo -n "Starting tftp daemon: atftpd" + start-stop-daemon --start --quiet --exec /usr/sbin/atftpd -- --daemon --port 69 + echo "." + ;; + stop) + echo -n "Stopping tftp daemon: atftpd" + start-stop-daemon --stop --quiet --exec /usr/sbin/atftpd + echo "." + ;; + reload|force-reload) + start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/atftpd + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: /etc/init.d/atftpd {start|stop|reload|restart|force-reload}" + exit 1 +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch new file mode 100644 index 000000000..742f25de1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch @@ -0,0 +1,47 @@ +From 40971911d653bf53de295d7462c643e4073916b9 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Fri, 1 Nov 2013 12:47:18 -0400 +Subject: [PATCH] systemd: allow --with-systemd to take a path arg + +If building for a cross-compile environment with systemd it is convenient +to be able to specify a systemd path for the target that may not be the +same as that on the host. + +Upstream-status: Submitted [http://www.spinics.net/lists/autofs/msg00740.html] + +Signed-off-by: Joe MacDonald +--- + aclocal.m4 | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 3e6f223..105e3e9 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -229,8 +229,10 @@ dnl Check the location of the systemd unit files directory + dnl -------------------------------------------------------------------------- + AC_DEFUN([AF_WITH_SYSTEMD], + [AC_ARG_WITH(systemd, +-[ --with-systemd install systemd unit file if systemd unit directory +- is found on system], ++[ --with-systemd@<:@=systemddir@:>@ install systemd unit file. If 'yes' ++ probe the system for unit directory. ++ If a path is specified, assume that ++ is a valid install path.], + [if test "$withval" = yes; then + if test -z "$systemddir"; then + AC_MSG_CHECKING([location of the systemd unit files directory]) +@@ -247,6 +249,10 @@ AC_DEFUN([AF_WITH_SYSTEMD], + else + AC_MSG_RESULT(not found) + fi ++else ++ if test "$withval" != no; then ++ systemddir=$withval ++ fi + fi]) + ]) + +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch new file mode 100644 index 000000000..7dc7096c2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch @@ -0,0 +1,23 @@ +Index: autofs-5.0.7/Makefile.rules +=================================================================== +--- autofs-5.0.7.orig/Makefile.rules 2012-07-24 23:05:26.000000000 -0700 ++++ autofs-5.0.7/Makefile.rules 2012-10-26 09:23:40.270204270 -0700 +@@ -34,14 +34,14 @@ + else + CFLAGS ?= -O2 -Wall + LDFLAGS = -s +-STRIP = strip --strip-debug ++STRIP = ${TARGET_PREFIX}strip --strip-debug + endif + endif + +-CC = gcc +-CXX = g++ ++CC ?= ${TARGET_PREFIX}gcc ++CXX ?= ${TARGET_PREFIX}g++ + CXXFLAGS = $(CFLAGS) +-LD = ld ++LD ?= ${TARGET_PREFIX}ld + SOLDFLAGS = -shared + + CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch new file mode 100644 index 000000000..fdb906b22 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch @@ -0,0 +1,24 @@ +[PATCH] add the needed stdarg.h + +Upstream-status: Pending + +Signed-off-by: Roy Li +--- + lib/defaults.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/defaults.c b/lib/defaults.c +index 2b03ea2..5728e67 100644 +--- a/lib/defaults.c ++++ b/lib/defaults.c +@@ -16,6 +16,7 @@ + + #include + #include ++#include + #include + #include + #include +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch new file mode 100644 index 000000000..af5be6a83 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch @@ -0,0 +1,75 @@ +Description: Loading autofs module is #ifdef'ed in the source, so + there is no need to check for /proc (which is only used + to load module) or modprobe. Both modprobe and /proc + are always in the fixed location so there's no need to + check for these to start with. + +Upstream-Status: Backport [1] +[1] http://www.spinics.net/lists/autofs/msg00139.html + +diff -urpN a/configure.in b/configure.in +--- a/configure.in 2013-01-15 11:30:22.000000000 +0800 ++++ b/configure.in 2013-01-15 11:31:45.000000000 +0800 +@@ -34,11 +34,6 @@ AC_MSG_CHECKING([for binaries in]) + AC_MSG_RESULT([$searchpath]) + + # +-# Make sure we have "/proc" +-# +-AF_LINUX_PROCFS() +- +-# + # Location of init.d directory? + # + AF_INIT_D() +@@ -142,7 +137,6 @@ AF_PATH_INCLUDE(UMOUNT, umount, /bin/umo + AF_PATH_INCLUDE(E2FSCK, fsck.ext2 e2fsck, , $searchpath) + AF_PATH_INCLUDE(E3FSCK, fsck.ext3 e3fsck, , $searchpath) + AF_PATH_INCLUDE(E4FSCK, fsck.ext4 e4fsck, , $searchpath) +-AF_PATH_INCLUDE(MODPROBE, modprobe, , $searchpath) + + AF_CHECK_PROG(LEX, flex lex, , $searchpath) + AF_CHECK_PROG(YACC, bison, , $searchpath) +diff -urpN a/daemon/module.c b/daemon/module.c +--- a/daemon/module.c 2013-01-15 11:30:49.000000000 +0800 ++++ b/daemon/module.c 2013-01-15 11:32:00.000000000 +0800 +@@ -18,6 +18,8 @@ + #include + #include "automount.h" + ++#if 0 ++/* see comment in daemon/automount.c around load_autofs4_module() call */ + int load_autofs4_module(void) + { + FILE *fp; +@@ -52,6 +54,7 @@ int load_autofs4_module(void) + + return 1; + } ++#endif + + struct lookup_mod *open_lookup(const char *name, const char *err_prefix, + const char *mapfmt, int argc, const char *const *argv) +diff -urpN a/include/automount.h b/include/automount.h +--- a/include/automount.h 2013-01-15 11:31:10.000000000 +0800 ++++ b/include/automount.h 2013-01-15 11:32:06.000000000 +0800 +@@ -50,16 +50,11 @@ + #error Failed to locate umount(8)! + #endif + +-#ifndef HAVE_MODPROBE +-#error Failed to locate modprobe(8)! +-#endif +- +-#ifndef HAVE_LINUX_PROCFS +-#error Failed to verify existence of procfs filesystem! +-#endif +- ++#if 0 ++/* see comment in daemon/automount.c around load_autofs4_module() call */ + #define FS_MODULE_NAME "autofs4" + int load_autofs4_module(void); ++#endif + + /* The -s (sloppy) option to mount is good, if we have it... */ + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch new file mode 100644 index 000000000..09fea495d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch @@ -0,0 +1,28 @@ +From 54a9bd28a307dd74df044d779ca85adcf36aa202 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 18 Jun 2013 10:05:21 -0400 +Subject: [PATCH] Fix the dependency issue + +Upstream-Status: Pending + +autofs's lib sources have a dependency on a number of files that are +generated by rpcgen during buildtime + +Signed-off-by: Roy.Li +Signed-off-by: Joe MacDonald +--- + lib/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/Makefile b/lib/Makefile +index 5418009..bff4e1d 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -75,3 +75,4 @@ install: all + clean: + rm -f $(LIB) $(RPCS) $(OBJS) $(YACCSRC) *.output *~ + ++$(OBJS): $(RPCS) +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch new file mode 100644 index 000000000..3a878980a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch @@ -0,0 +1,32 @@ +Upstream-Status: Pending + +From 44bdce8c6ed9b30c1643e5981172a4f9025f013c Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Wed, 13 Mar 2013 16:17:08 +0100 +Subject: [PATCH] autofs-5.0.7: include linux/nfs.h directly in rpc_subs.h + +Fixes compile error with uclibc. Glibc's nfs/nfs.h contains +nothing but "#include linux/nfs.h". rpc_subs.h already includes +other linux/nfs*.h files directly. + +Signed-off-by: Andreas Oberritter +--- + include/rpc_subs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/rpc_subs.h b/include/rpc_subs.h +index b6d59f9..a2d9648 100644 +--- a/include/rpc_subs.h ++++ b/include/rpc_subs.h +@@ -18,7 +18,7 @@ + + #include + #include +-#include ++#include + #include + #include + +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch new file mode 100644 index 000000000..6a35843ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch @@ -0,0 +1,12 @@ +--- autofs-4.1.4/samples/rc.autofs.in~ 2005-04-11 06:30:54.000000000 -0500 ++++ autofs-4.1.4/samples/rc.autofs.in 2007-04-07 13:18:44.000000000 -0500 +@@ -43,6 +43,9 @@ + system=debian + elif [ -f /etc/redhat-release ]; then + system=redhat ++elif [ -f /etc/issue ] && grep -q "^SlugOS\|Yocto" /etc/issue ; then ++ # SlugOS and Yocto behave like Debian, at least for autofs purposes. ++ system=debian + else + echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 + exit 1 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/cross.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/cross.patch new file mode 100644 index 000000000..8f1af625f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/cross.patch @@ -0,0 +1,44 @@ +Index: autofs-5.0.7/aclocal.m4 +=================================================================== +--- autofs-5.0.7.orig/aclocal.m4 2012-10-28 04:45:07.000000000 -0700 ++++ autofs-5.0.7/aclocal.m4 2012-10-28 10:47:53.263996910 -0700 +@@ -7,6 +7,8 @@ + AC_DEFUN(AF_PATH_INCLUDE, + [AC_PATH_PROGS($1,$2,$3,$4) + if test -n "$$1"; then ++ AH_TEMPLATE([HAVE_$1], [Have $2]) ++ AH_TEMPLATE([PATH_$1], [Have $2]) + AC_DEFINE(HAVE_$1,1,[define if you have $1]) + AC_DEFINE_UNQUOTED(PATH_$1, "$$1", [define if you have $1]) + HAVE_$1=1 +Index: autofs-5.0.7/configure.in +=================================================================== +--- autofs-5.0.7.orig/configure.in 2012-10-28 04:45:06.000000000 -0700 ++++ autofs-5.0.7/configure.in 2012-10-28 10:50:07.580000628 -0700 +@@ -301,13 +301,15 @@ + cat > pietest.c < +--- + lib/Makefile | 6 ++++-- + modules/Makefile | 3 ++- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/lib/Makefile b/lib/Makefile +index 4798a4b..c40cf86 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -57,7 +57,8 @@ mount_xdr.o: mount_xdr.c + master_tok.c: master_tok.l + $(LEX) -o$@ -Pmaster_ $? + +-master_parse.tab.c master_parse.tab.h: master_parse.y ++master_parse.tab.h: master_parse.tab.c ++master_parse.tab.c: master_parse.y + $(YACC) -v -d -p master_ -b master_parse $? + + master_tok.o: master_tok.c master_parse.tab.h +@@ -67,7 +68,8 @@ master_parse.tab.o: master_parse.tab.c master_parse.tab.h + nss_tok.c: nss_tok.l + $(LEX) -o$@ -Pnss_ $? + +-nss_parse.tab.c nss_parse.tab.h: nss_parse.y ++nss_parse.tab.h: nss_parse.tab.c ++nss_parse.tab.c: nss_parse.y + $(YACC) -v -d -p nss_ -b nss_parse $? + + nss_tok.o: nss_tok.c nss_parse.tab.h +diff --git a/modules/Makefile b/modules/Makefile +index 237b70b..71415d0 100644 +--- a/modules/Makefile ++++ b/modules/Makefile +@@ -103,7 +103,8 @@ amd_tok.c: amd_tok.l + + amd_tok.o: amd_tok.c amd_parse.tab.h + +-amd_parse.tab.c amd_parse.tab.h: amd_parse.y ++amd_parse.tab.h: amd_parse.tab.c ++amd_parse.tab.c: amd_parse.y + $(YACC) -v -d -p amd_ -b amd_parse $? + + amd_parse.tab.o: amd_parse.tab.c amd_parse.tab.h +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch new file mode 100644 index 000000000..31c8510a6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch @@ -0,0 +1,42 @@ +autofs: fails to compile with openldap disabled + +As of 5.0.6, it appears that changes were introduced so that +if you compile with openldap disabled and openldap headers are not +available, then autofs fails to build. + +Upstream-Status: Pending + +Signed-off-by: Amy Fong +-- + lookup_ldap.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- + include/lookup_ldap.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/include/lookup_ldap.h ++++ b/include/lookup_ldap.h +@@ -1,7 +1,9 @@ + #ifndef LOOKUP_LDAP_H + #define LOOKUP_LDAP_H + ++#ifdef WITH_LDAP + #include ++#endif + + #ifdef WITH_SASL + #include +@@ -109,10 +111,12 @@ + + #define LDAP_AUTH_USESIMPLE 0x0008 + ++#ifdef WITH_LDAP + /* lookup_ldap.c */ + LDAP *init_ldap_connection(unsigned logopt, const char *uri, struct lookup_context *ctxt); + int unbind_ldap_connection(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt); + int authtype_requires_creds(const char *authtype); ++#endif + + #ifdef WITH_SASL + /* cyrus-sasl.c */ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch new file mode 100644 index 000000000..634005bd2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch @@ -0,0 +1,25 @@ +[PATCH] force STRIP to emtpy + +otherwise the generate file will be stripped + +Signed-off-by: Roy Li +--- + Makefile.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.rules b/Makefile.rules +index 710a2c9..e4334db 100644 +--- a/Makefile.rules ++++ b/Makefile.rules +@@ -31,7 +31,7 @@ LDFLAGS ?= -s + endif + + ifdef DONTSTRIP +-STRIP ?= : ++STRIP = : + else + STRIP ?= strip --strip-debug + endif +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch new file mode 100644 index 000000000..e93021d56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch @@ -0,0 +1,28 @@ +--- + lib/rpc_subs.c | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c +index 5d6ead0..c7177f2 100644 +--- a/lib/rpc_subs.c ++++ b/lib/rpc_subs.c +@@ -34,16 +34,6 @@ + #include + + #ifdef WITH_LIBTIRPC +-#undef auth_destroy +-#define auth_destroy(auth) \ +- do { \ +- int refs; \ +- if ((refs = auth_put((auth))) == 0) \ +- ((*((auth)->ah_ops->ah_destroy))(auth));\ +- } while (0) +-#endif +- +-#ifdef WITH_LIBTIRPC + const rpcprog_t rpcb_prog = RPCBPROG; + const rpcvers_t rpcb_version = RPCBVERS; + #else +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch new file mode 100644 index 000000000..d68944b45 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch @@ -0,0 +1,26 @@ +Index: autofs-5.0.7/aclocal.m4 +=================================================================== +--- autofs-5.0.7.orig/aclocal.m4 2012-10-28 13:17:45.504237027 -0700 ++++ autofs-5.0.7/aclocal.m4 2012-10-28 13:20:50.108242739 -0700 +@@ -403,7 +403,7 @@ + # save current flags + af_check_libtirpc_save_cflags="$CFLAGS" + af_check_libtirpc_save_ldflags="$LDFLAGS" +-CFLAGS="$CFLAGS -I/usr/include/tirpc" ++CFLAGS="$CFLAGS -I=/usr/include/tirpc" + LDFLAGS="$LDFLAGS -ltirpc" + + AC_TRY_LINK( +Index: autofs-5.0.7/Makefile.rules +=================================================================== +--- autofs-5.0.7.orig/Makefile.rules 2012-10-28 13:17:45.308237022 -0700 ++++ autofs-5.0.7/Makefile.rules 2012-10-28 13:21:25.720242803 -0700 +@@ -48,7 +48,7 @@ + LIBS += -lpthread + + ifdef TIRPCLIB +-CFLAGS += -I/usr/include/tirpc ++CFLAGS += -I=/usr/include/tirpc + LIBS += $(TIRPCLIB) + endif + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch new file mode 100644 index 000000000..cf0363527 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch @@ -0,0 +1,20 @@ +Index: autofs-5.0.7/samples/auto.net +=================================================================== +--- autofs-5.0.7.orig/samples/auto.net 2012-07-24 23:05:26.000000000 -0700 ++++ autofs-5.0.7/samples/auto.net 2012-10-28 10:44:25.035991715 -0700 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + # This file must be executable to work! chmod 755! + +Index: autofs-5.0.7/samples/auto.smb +=================================================================== +--- autofs-5.0.7.orig/samples/auto.smb 2012-07-24 23:05:26.000000000 -0700 ++++ autofs-5.0.7/samples/auto.smb 2012-10-28 10:44:25.035991715 -0700 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + # This file must be executable to work! chmod 755! + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch new file mode 100644 index 000000000..282d6f0ad --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch @@ -0,0 +1,120 @@ +From 79034f969bbd12215d65b4337dfd38a13d02d4ef Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sat, 13 Sep 2014 20:19:28 -0700 +Subject: [PATCH] autofs.init.in: remove bashism + +It can work without the bashism. + +Upstream-Status: Pending + +Signed-off-by: Mike Looijmans +Signed-off-by: Robert Yang +--- + redhat/autofs.init.in | 12 ++++++------ + samples/rc.autofs.in | 10 +++++----- + 2 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/redhat/autofs.init.in b/redhat/autofs.init.in +index 9d008ff..4f1c0d8 100644 +--- a/redhat/autofs.init.in ++++ b/redhat/autofs.init.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # rc file for automount using a Sun-style "master map". + # +@@ -42,7 +42,7 @@ if [ -r $confdir/autofs ]; then + . $confdir/autofs + fi + +-function start() { ++start() { + # Make sure autofs4 module is loaded + if ! grep -q autofs /proc/filesystems + then +@@ -102,7 +102,7 @@ function start() { + return $RETVAL + } + +-function stop() { ++stop() { + echo -n $"Stopping $prog: " + count=0 + while [ -n "`pidof $prog`" -a $count -lt 15 ] ; do +@@ -125,7 +125,7 @@ function stop() { + return $RETVAL + } + +-function restart() { ++restart() { + status autofs > /dev/null 2>&1 + if [ $? -eq 0 ]; then + stop +@@ -143,7 +143,7 @@ function restart() { + start + } + +-function reload() { ++reload() { + if [ ! -f /var/lock/subsys/autofs ]; then + echo $"$prog not running" + RETVAL=1 +@@ -161,7 +161,7 @@ function reload() { + return $RETVAL + } + +-function usage_message() { ++usage_message() { + echo $"Usage: $0 {start|forcestart|stop|status|restart|force-reload|forcerestart|reload|condrestart|try-restart|usage}" + } + +diff --git a/samples/rc.autofs.in b/samples/rc.autofs.in +index 487669f..e96cde1 100644 +--- a/samples/rc.autofs.in ++++ b/samples/rc.autofs.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # rc file for automount using a Sun-style "master map". + # +@@ -36,7 +36,7 @@ if [ -r $confdir/autofs ]; then + . $confdir/autofs + fi + +-function start() { ++start() { + echo -n "Starting $prog: " + + # Make sure autofs4 module is loaded +@@ -85,7 +85,7 @@ function start() { + return $RETVAL + } + +-function stop() { ++stop() { + echo -n $"Stopping $prog: " + count=0 + while [ -n "`pidof $prog`" -a $count -lt 15 ] ; do +@@ -102,7 +102,7 @@ function stop() { + return $RETVAL + } + +-function restart() { ++restart() { + stop + while [ -n "`pidof $prog`" ] ; do + sleep 5 +@@ -110,7 +110,7 @@ function restart() { + start + } + +-function reload() { ++reload() { + pid=`pidof $prog` + if [ -z $pid ]; then + echo $"$prog not running" +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch new file mode 100644 index 000000000..93b76bd66 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch @@ -0,0 +1,39 @@ +using pkg-config to detect libxml-2.0 and krb5 + +Upstream-status: Pending + +Signed-off-by: Roy Li +--- + configure.in | 16 ++++++++++++++-- + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/configure.in b/configure.in +index 392d122..a3028aa 100644 +--- a/configure.in ++++ b/configure.in +@@ -162,8 +162,20 @@ if test x$enable_sloppy_mount = xyes; then + fi + + # LDAP SASL auth needs libxml and Kerberos +-AF_CHECK_LIBXML() +-AF_CHECK_KRB5() ++PKG_CHECK_MODULES(XML, [libxml-2.0],HAVE_LIBXML=1,HAVE_LIBXML=0) ++AC_SUBST([HAVE_LIBXML]) ++XML_FLAGS=$XML_CFLAGS ++ ++PKG_CHECK_MODULES(KRB5, [krb5],HAVE_KRB5=1,HAVE_KRB5=0) ++AC_SUBST([HAVE_KRB5]) ++if test "x$HAVE_KRB5" = "x1"; then ++ SAVE_CFLAGS=$CFLAGS ++ SAVE_LIBS=$LIBS ++ CFLAGS="$CFLAGS $KRB5_FLAGS" ++ LIBS="$LIBS $KRB5_LIBS" ++ ++ AC_CHECK_FUNCS([krb5_principal_get_realm]) ++fi + + AC_SEARCH_LIBS([versionsort],[]) + if test "$ac_cv_search_versionsort" = "no"; then +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb new file mode 100644 index 000000000..0f4c2478e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb @@ -0,0 +1,72 @@ +SUMMARY = "Kernel based automounter for linux" +SECTION = "utils" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +DEPENDS += "libtirpc flex-native bison-native" + +inherit autotools-brokensep systemd + +SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ + file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \ + file://no-bash.patch \ + file://cross.patch \ + file://libtirpc.patch \ + file://libtirpc-name-clash-backout.patch \ + file://autofs-5.0.7-do-not-check-for-modprobe.patch \ + file://fix_disable_ldap.patch \ + file://autofs-5.0.7-fix-lib-deps.patch \ + file://add-the-needed-stdarg.h.patch \ + file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \ + file://force-STRIP-to-emtpy.patch \ + file://remove-bashism.patch \ + file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ +" + +SRC_URI[md5sum] = "e143df66b614b8cdb1ff533735f8e12d" +SRC_URI[sha256sum] = "795419383b120d15699ab3b89ea0f3d029f6fb28405a83982d305c4b7b61130f" + +inherit update-rc.d pkgconfig + +INITSCRIPT_NAME = "autofs" +INITSCRIPT_PARAMS = "defaults" + +# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS +CFLAGS += "${LDFLAGS}" + +PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" + +PACKAGECONFIG ?= "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" + +EXTRA_OEMAKE = "DONTSTRIP=1" +EXTRA_OECONF += "--disable-mount-locking \ + --enable-ignore-busy --with-openldap=no \ + --with-sasl=no --with-libtirpc=yes \ + --with-path=${STAGING_BINDIR_NATIVE} \ +" +CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ + ac_cv_path_RPCGEN=rpcgen \ +" + +do_configure_prepend () { + sed -e "s:filagdir:flagdir:" -i configure.in + if [ ! -e acinclude.m4 ]; then + cp aclocal.m4 acinclude.m4 + fi +} + +do_install_append () { + if [ -d ${D}/run ]; then + rmdir ${D}/run + fi + if [ -d ${D}${localstatedir}/run ]; then + rmdir ${D}${localstatedir}/run + fi +} + +INSANE_SKIP_${PN} = "dev-so" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "autofs.service" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch new file mode 100644 index 000000000..3fa8431c3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch @@ -0,0 +1,25 @@ +Fix hardcoded libdir. + +Upstream-Status: Pending + +Signed-off-by: Roy.Li +--- + plugins/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/plugins/Makefile.am b/plugins/Makefile.am +index b00915f..25262a1 100644 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -62,7 +62,7 @@ plugindir = @plugindir@ + + common_sources = plugin_common.c plugin_common.h + +-sasldir = $(prefix)/lib/sasl2 ++sasldir = $(libdir)/sasl2 + sasl_LTLIBRARIES = @SASL_MECHS@ + EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \ + libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \ +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch new file mode 100644 index 000000000..6407721ae --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch @@ -0,0 +1,46 @@ +Avoid to call AC_TRY_RUN + +Upstream-Status: Inappropriate [configuration] + +Avoid to call AC_TRY_RUN to check if GSSAPI libraries support SPNEGO +on cross-compile environment by definition AC_ARG_ENABLE enable-spnego + +Signed-off-by: Roy.Li +--- + cmulocal/sasl2.m4 | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/cmulocal/sasl2.m4 b/cmulocal/sasl2.m4 +index 3c2841a..a5ecf81 100644 +--- a/cmulocal/sasl2.m4 ++++ b/cmulocal/sasl2.m4 +@@ -281,6 +281,17 @@ if test "$gssapi" != no; then + + cmu_save_LIBS="$LIBS" + LIBS="$LIBS $GSSAPIBASE_LIBS" ++ AC_ARG_ENABLE([spnego], ++ [AC_HELP_STRING([--enable-spnego=], ++ [enable SPNEGO support in GSSAPI libraries [no]])], ++ [spnego=$enableval], ++ [spnego=no]) ++ ++ if test "$spnego" = no; then ++ echo "no" ++ elif test "$spnego" = yes; then ++ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO]) ++ else + AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries]) + AC_TRY_RUN([ + #ifdef HAVE_GSSAPI_H +@@ -308,7 +319,7 @@ int main(void) + AC_MSG_RESULT(yes) ], + AC_MSG_RESULT(no)) + LIBS="$cmu_save_LIBS" +- ++ fi + else + AC_MSG_RESULT([disabled]) + fi +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff new file mode 100644 index 000000000..8eff5a8bd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff @@ -0,0 +1,14 @@ +Author: Fabian Fagerholm +Description: Fix linking with libsasldb.a when saslauthd is built with sasldb +support. +--- a/saslauthd/configure.in ++++ b/saslauthd/configure.in +@@ -77,7 +77,7 @@ if test "$authsasldb" != no; then + AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support]) + SASL_DB_PATH_CHECK() + SASL_DB_CHECK() +- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al" ++ SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.a" + fi + + AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ], diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff new file mode 100644 index 000000000..2e5b1750d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff @@ -0,0 +1,27 @@ +Author: Fabian Fagerholm +Description: This patch makes sure the non-PIC version of libsasldb.a, which +is created out of non-PIC objects, is not going to overwrite the PIC version, +which is created out of PIC objects. The PIC version is placed in .libs, and +the non-PIC version in the current directory. This ensures that both non-PIC +and PIC versions are available in the correct locations. +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -78,7 +78,7 @@ endif + + libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS) + @echo adding static plugins and dependencies +- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS) ++ $(AR) cru $@ $(SASL_STATIC_OBJS) + @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \ + if test ! -f $$i; then continue; fi; . $$i; \ + for j in $$dependency_libs foo; do \ +--- a/sasldb/Makefile.am ++++ b/sasldb/Makefile.am +@@ -63,6 +63,6 @@ libsasldb_a_SOURCES = + EXTRA_libsasldb_a_SOURCES = + + libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC) +- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC) ++ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC) + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch new file mode 100644 index 000000000..ecbab845d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch @@ -0,0 +1,31 @@ +From 92d72789c811b0d55f624a8bac5ccc4412f5996e Mon Sep 17 00:00:00 2001 +From: Ken Murchison +Date: Thu, 20 Dec 2012 18:14:50 -0500 +Subject: [PATCH] sasl.h: #include for size_t on NetBSD + +This patch was imported from git://git.cyrusimap.org/cyrus-sasl +commit 67a188693796a14e3a76ac603104807fbbfddfc4 + +Upstream-Status: Backport + +Signed-off-by: Mark Asselstine +--- + include/sasl.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/sasl.h b/include/sasl.h +index fef4d51..8b8a63f 100755 +--- a/include/sasl.h ++++ b/include/sasl.h +@@ -121,6 +121,8 @@ + #ifndef SASL_H + #define SASL_H 1 + ++#include /* For size_t */ ++ + /* Keep in sync with win32/common.mak */ + #define SASL_VERSION_MAJOR 2 + #define SASL_VERSION_MINOR 1 +-- +1.8.3.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf new file mode 100644 index 000000000..a91a9d334 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf @@ -0,0 +1,11 @@ +# Directory in which to place saslauthd's listening socket, pid file, and so +# on. This directory must already exist. +SOCKETDIR=@LOCALSTATEDIR@/run/saslauthd + +# Mechanism to use when checking passwords. Run "saslauthd -v" to get a list +# of which mechanism your installation was compiled with the ablity to use. +MECH=pam + +# Additional flags to pass to saslauthd on the command line. See saslauthd(8) +# for the list of accepted flags. +FLAGS= diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service new file mode 100644 index 000000000..96dbae378 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service @@ -0,0 +1,12 @@ +[Unit] +Description=SASL authentication daemon. +After=syslog.target + +[Service] +Type=forking +PIDFile=@LOCALSTATEDIR@/run/saslauthd/saslauthd.pid +EnvironmentFile=@SYSCONFDIR@/default/saslauthd +ExecStart=@SBINDIR@/saslauthd -m $SOCKETDIR -a $MECH $FLAGS + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb new file mode 100644 index 000000000..5da3d965b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb @@ -0,0 +1,95 @@ +SUMMARY = "Generic client/server library for SASL authentication" +SECTION = "libs" +DEPENDS = "openssl virtual/db" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396" + +SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \ + file://avoid-to-call-AC_TRY_RUN.patch \ + file://Fix-hardcoded-libdir.patch \ + file://debian_patches_0009_sasldb_al.diff \ + file://debian_patches_0014_avoid_pic_overwrite.diff \ + file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \ + file://saslauthd.service \ + file://saslauthd.conf \ + " + +inherit autotools-brokensep pkgconfig useradd systemd + +EXTRA_OECONF += "--with-dblib=berkeley \ + --with-bdb-libdir=${STAGING_LIBDIR} \ + --with-bdb-incdir=${STAGING_INCDIR} \ + --with-bdb=db-5.3 \ + --with-plugindir="${libdir}/sasl2" \ + andrew_cv_runpath_switch=none" + +PACKAGECONFIG ??= "ntlm \ + ${@base_contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + " +PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5," +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," +PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie," +PACKAGECONFIG[des] = "--with-des,--without-des,," +PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap," +PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,," + +CFLAGS += "-fPIC" + +do_configure_prepend () { + rm -f acinclude.m4 config/libtool.m4 + + # make it be able to work with db 5.0 version + local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c" + for sed_file in $sed_files; do + sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' $sed_file + done +} + +do_compile_prepend () { + cd include + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} makemd5.c -o makemd5 + touch makemd5.o makemd5.lo makemd5 + cd .. +} + +do_install_append() { + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd + fi +} + +USERADD_PACKAGES = "${PN}-bin" +USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "saslauthd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425" +SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3" + +PACKAGES =+ "${PN}-bin" + +FILES_${PN} += "${libdir}/sasl2/*.so*" +FILES_${PN}-bin += "${bindir} \ + ${sysconfdir}/default/saslauthd \ + ${systemd_unitdir}/system/saslauthd.service \ + ${sysconfdir}/tmpfiles.d/saslauthd.conf" +FILES_${PN}-dev += "${libdir}/sasl2/*.la" +FILES_${PN}-dbg += "${libdir}/sasl2/.debug" +FILES_${PN}-staticdev += "${libdir}/sasl2/*.a" + +INSANE_SKIP_${PN} += "dev-so" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample new file mode 100644 index 000000000..ec0584193 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample @@ -0,0 +1,21 @@ +# options to dnrd + +# example: two default dns servers and dns servers for exampledomain.com. The +# latter are load balanced (-b) +# +# + +# DNRD_OPTS=" +# -s XXX.XXX.XX.XXX +# -s XXX.XXX.XX.XXX +# -b +# -s XXX.XXX.XX.XXX:exampledomain.com +# -s XXX.XXX.XX.XXX:exampledomain.com" + +# example: dnrd user +# + +# DNRD_USER="user" +# + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init new file mode 100644 index 000000000..2fe583fcf --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init @@ -0,0 +1,94 @@ +#!/bin/sh +# +# Startup script for dnrd +# +# Copyright 2008, Rakesh Pandit +# +# This source is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This source is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# chkconfig: - 85 15 +# description: dnrd is a proxying nameserver. It forwards DNS queries to the +# appropriate nameserver, but can also act as the primary nameserver for +# a subnet behind a firewall. It also has features such as caching DNS +# requests, support for DNS servers, cache poisoning prevention, TCP +# support, etc.. + +# processname: dnrd +# pidfile: /var/run/dnrd.pid +# config: /etc/dnrd/dnrd.conf + +# Provides: dnrd +# Required-Start: +# Should-Start: +# Required-Stop: +# Default-Stop: 0 1 2 6 +# Short-Description: Start dnrd daemon +# Description: Domain Name Relay Daemon +# END INIT INFO + +exe=/usr/sbin/dnrd +pfile=/etc/passwd + +# Source function library. +. /etc/init.d/functions + +# Source conf file +. /etc/dnrd/dnrd.conf + +[ -x $exe ] || exit 1 +[ -r "/etc/dnrd/dnrd.conf" ] || exit 1 +if [ $DNRD_USER ] +then + grep "^${LOGIN}:" $pfile >/dev/null 2>&1 + if [ $? -eq 0 ];then + echo "$DNRD_USER specified in /etc/dnrd/dnrd.conf does not exist!" + fi +else + echo "DNRD_USER not set at /etc/dnrd/dnrd.conf!" + exit 1 +fi + +case "$1" in + start) + echo -n "Starting dnrd: " + daemon dnrd $DNRD_OPTS -u $DNRD_USER + echo + touch /var/lock/subsys/dnrd + ;; + stop) + echo -n "Shutting down dnrd: " + killproc dnrd + echo + rm -f /var/lock/subsys/dnrd + rm -f /var/run/dnrd.pid + ;; + status) + status dnrd + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo -n "Reloading dnrd: " + killproc dnrd -HUP + echo + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|status}" + exit 1 +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service new file mode 100644 index 000000000..9c9fa6639 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Domain Name Relay Daemon +After=network.target + +[Service] +Type=forking +PIDFile=/var/run/dnrd.pid +EnvironmentFile=/etc/dnrd/dnrd.conf +ExecStart=/usr/sbin/dnrd $DNRD_OPTS -u $DNRD_USER + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb new file mode 100644 index 000000000..8769e5294 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb @@ -0,0 +1,41 @@ +SUMMARY = "A caching, forwarding DNS proxy server" +DESCRIPTION = "\ +dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \ +nameserver, but can also act as the primary nameserver for a subnet behind \ +a firewall. It also has features such as caching DNS requests, support for \ +DNS servers, cache poisoning prevention, TCP support, etc.." +HOMEPAGE = "http://dnrd.sourceforge.net/" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://dnrd.service \ + file://dnrd.conf.sample \ + file://dnrd.init" +SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c" +SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015" + +PNBLACKLIST[dnrd] ?= "BROKEN: dnrd-2.20.3-r0 do_package: QA Issue: dnrd: Files/directories were installed but not shipped in any package:" + +SYSTEMD_SERVICE_${PN} = "dnrd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +inherit autotools +inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} + +do_install() { + oe_runmake install DESTDIR=${D} INSTALL="install -p" + + sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \ + ${WORKDIR}/dnrd.init + install -d -m 0755 ${D}${sysconfdir}/init.d + install -d -m 0755 ${D}${sysconfdir}/dnrd + install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf + install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd + + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d -m 0755 ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system + fi +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/99_iscsi-initiator-utils b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/99_iscsi-initiator-utils new file mode 100644 index 000000000..42fdd602f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/99_iscsi-initiator-utils @@ -0,0 +1,2 @@ +# +d root root 0755 /var/lock/iscsi none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/initd.debian b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/initd.debian new file mode 100644 index 000000000..99a763861 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/initd.debian @@ -0,0 +1,119 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: +# Required-Start: +# Required-Stop: +# Default-Start: +# Default-Stop: +# Short-Description: Starts and stops the iSCSI initiator services and logins to default targets +### END INIT INFO +#set -x +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/iscsid +ADM=/usr/sbin/iscsiadm +PIDFILE=/var/run/iscsid.pid + +[ -x "$DAEMON" ] || exit 0 + +if [ ! -d /sys/class/ ]; then + echo "Failure:" "iSCSI requires a mounted sysfs, not started." + exit 1 +fi + +nodestartup_re='s/^node\.conn\[0]\.startup[ ]*=[ ]*//p' + +RETVAL=0 + +start() { + echo "Starting iSCSI initiator service" "iscsid" + modprobe -q iscsi_tcp 2>/dev/null || : + modprobe -q ib_iser 2>/dev/null || : + if [ ! -f /etc/iscsi/initiatorname.iscsi ]; then + INITIATORNAME=$(iscsi-iname) + cat >/etc/iscsi/initiatorname.iscsi </dev/null + if [ "$?" -ne "0" -a "$?" -ne "1" ]; then + status=1 + fi + modprobe -r iscsi_tcp 2>/dev/null + if [ "$?" -ne "0" -a "$?" -ne "1" ]; then + status=1 + fi +} + +restart() { + stop + if [ $RETVAL -ne 0 ]; then + echo "Failure:" "Stopping iSCSI initiator service failed, not starting" + return $RETVAL + fi + start +} + +restarttargets() { + stoptargets + if [ $RETVAL -ne 0 ]; then + echo "Failure:" "Could not stop all targets, try again later" + return $RETVAL + fi + starttargets +} + +status() { + #XXX FIXME: what to do here? + #status iscsid + # list active sessions + echo Current active iSCSI sessions: + $ADM -m session +} + +case "$1" in + start|starttargets|stop|stoptargets|restart|restarttargets|status) + $1 + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit $RETVAL diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator new file mode 100644 index 000000000..7fa49a2d6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator @@ -0,0 +1,4 @@ +# default command line settings for open-iscsi's iscsid + +OPTS_ISCSID="" +OPTS_ISCSIADM="" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-targets.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-targets.service new file mode 100644 index 000000000..564b2d21d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-targets.service @@ -0,0 +1,15 @@ +[Unit] +Description=Open-iSCSI initiator (i.e. client) target bindings +After=iscsi-initiator.service +Requires=iscsi-initiator.service + +[Service] +Type=oneshot +EnvironmentFile=/etc/default/iscsi-initiator +ExecStart=/usr/sbin/iscsiadm -m node --loginall=automatic $OPTS_ISCSIADM +ExecStop=/usr/sbin/iscsiadm -m node --logoutall=all $OPTS_ISCSIADM +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch new file mode 100644 index 000000000..ce48e2bb3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch @@ -0,0 +1,21 @@ +iscsi-initiator-utils not to use static + +Upstream-status: Backport +This patch is from fedora17. + +Signed-off-by: Yao Zhao +Signed-off-by: Vu Tran + +diff --git a/usr/Makefile b/usr/Makefile +index 673b7f1..fd14a10 100644 +--- a/usr/Makefile ++++ b/usr/Makefile +@@ -61,7 +61,7 @@ iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o + + iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \ + iscsistart.o statics.o +- $(CC) $(CFLAGS) -static $^ -o $@ ++ $(CC) $(CFLAGS) $^ -o $@ + clean: + rm -f *.o $(PROGRAMS) .depend $(LIBSYS) + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch new file mode 100644 index 000000000..50227a774 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch @@ -0,0 +1,240 @@ +iscsi-initiator-utils to use var for config + +Upstream-status: Backport +This patch is from fedora. + +Use /var/lib/iscsi/ instead of /etc/iscsi/ for holding +state files. + +Signed-off-by: Yao Zhao +Signed-off-by: Vu Tran + +diff --git a/README b/README +index 7364b2d..5e8bff8 100644 +--- a/README ++++ b/README +@@ -164,10 +164,10 @@ available on all Linux installations. + + The database contains two tables: + +-- Discovery table (/etc/iscsi/send_targets); +-- Node table (/etc/iscsi/nodes). ++- Discovery table (/var/lib/iscsi/send_targets); ++- Node table (/var/lib/iscsi/nodes). + +-The regular place for iSCSI database files: /etc/iscsi/nodes ++The regular place for iSCSI database files: /var/lib/iscsi/nodes + + The iscsiadm utility is a command-line tool to manage (update, delete, + insert, query) the persistent database. +@@ -444,7 +444,7 @@ a scsi_host per HBA port). + To manage both types of initiator stacks, iscsiadm uses the interface (iface) + structure. For each HBA port or for software iscsi for each network + device (ethX) or NIC, that you wish to bind sessions to you must create +-a iface config /etc/iscsi/ifaces. ++a iface config /var/lib/iscsi/ifaces. + + Prep: + +@@ -478,29 +478,29 @@ Running: + iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax + iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax + +-Will report iface configurations that are setup in /etc/iscsi/ifaces. ++Will report iface configurations that are setup in /var/lib/iscsi/ifaces. + The format is: + + iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname + + For software iscsi, you can create the iface configs by hand, but it is + reccomended that you use iscsiadm's iface mode. There is a iface.example in +-/etc/iscsi/ifaces which can be used as a template for the daring. ++/var/lib/iscsi/ifaces which can be used as a template for the daring. + + For each network object you wish to bind a session to you must create +-a seperate iface config in /etc/iscsi/ifaces and each iface config file ++a seperate iface config in /var/lib/iscsi/ifaces and each iface config file + must have a unique name which is less than or equal to 64 characters. + + Example: + + If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with + MAC address 00:C0:DD:08:63:E7 and you wanted to do software iscsi over +-TCP/IP. Then in /etc/iscsi/ifaces/iface0 you would enter: ++TCP/IP. Then in /var/lib/iscsi/ifaces/iface0 you would enter: + + iface.transport_name = tcp + iface.hwaddress = 00:0F:1F:92:6B:BF + +-and in /etc/iscsi/ifaces/iface1 you would enter: ++and in /var/lib/iscsi/ifaces/iface1 you would enter: + + iface.transport_name = tcp + iface.hwaddress = 00:C0:DD:08:63:E7 +@@ -550,7 +550,7 @@ cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,,, + qla4xxx.00:0e:1e:04:8b:2e qla4xxx,00:0e:1e:04:8b:2e,,, + + +-Will report iface configurations that are setup in /etc/iscsi/ifaces. ++Will report iface configurations that are setup in /var/lib/iscsi/ifaces. + The format is: + + iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname +@@ -636,7 +636,7 @@ need a seperate network connection to the target for discovery purposes. + *This will be fixed in the next version of open-iscsi* + + For compatibility reasons, when you run iscsiadm to do discovery, it +-will check for interfaces in /etc/iscsi/iscsi/ifaces that are using ++will check for interfaces in /var/lib/iscsi/iscsi/ifaces that are using + tcp for the iface.transport and it will bind the portals that are discovered + so that they will be logged in through those ifaces. This behavior can also + be overriden by passing in the interfaces you want to use. For the case +@@ -654,7 +654,7 @@ we do not bind a session to a iface, then you can use the special iface + + iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 + +-And if you did not define any interfaces in /etc/iscsi/ifaces and do ++And if you did not define any interfaces in /var/lib/iscsi/ifaces and do + not pass anything into iscsiadm, running iscsiadm will do the default + behavior, where we allow the network subsystem to decide which + device to use. +@@ -696,7 +696,7 @@ To now log into targets it is the same as with sofware iscsi. See section + + ./iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover + +- This will search /etc/iscsi/send_targets for a record with the ++ This will search /var/lib/iscsi/send_targets for a record with the + ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it + will perform discovery using the settings stored in the record. + If a record does not exist, it will be created using the iscsid.conf +@@ -705,7 +705,7 @@ To now log into targets it is the same as with sofware iscsi. See section + The argument to -p may also be a hostname instead of an address. + ./iscsiadm -m discoverydb -t st -p smoehost --discover + +- For the ifaces, iscsiadm will first search /etc/iscsi/ifaces for ++ For the ifaces, iscsiadm will first search /var/lib/iscsi/ifaces for + interfaces using software iscsi. If any are found then nodes found + during discovery will be setup so that they can logged in through + those interfaces. To specify a specific iface, pass the +@@ -761,7 +761,7 @@ To now log into targets it is the same as with sofware iscsi. See section + This command will perform discovery, but not manipulate the node DB. + + - SendTargets iSCSI Discovery with a specific interface. If you +- wish to only use a subset of the interfaces in /etc/iscsi/ifaces ++ wish to only use a subset of the interfaces in /var/lib/iscsi/ifaces + then you can pass them in during discovery: + + ./iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ +@@ -1072,8 +1072,8 @@ where targetname is the name of the target and ip_address:port is the address + and port of the portal. tpgt, is the portal group tag of + the portal, and is not used in iscsiadm commands except for static + record creation. And iface name is the name of the iscsi interface +-defined in /etc/iscsi/ifaces. If no interface was defined in +-/etc/iscsi/ifaces or passed in, the default behavior is used. ++defined in /var/lib/iscsi/ifaces. If no interface was defined in ++/var/lib/iscsi/ifaces or passed in, the default behavior is used. + Default here is iscsi_tcp/tcp to be used over which ever NIC the + network layer decides is best. + +@@ -1188,7 +1188,7 @@ If set, iscsid will perform discovery to the address every + discovery.isns.discoveryd_poll_inval or + discovery.sendtargets.discoveryd_poll_inval seconds, + and it will log into any portals found from the discovery source using +-the ifaces in /etc/iscsi/ifaces. ++the ifaces in /var/lib/iscsi/ifaces. + + Note that for iSNS the poll_interval does not have to be set. If not set, + iscsid will only perform rediscovery when it gets a SCN from the server. +diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8 +index 7c209f6..e94cca0 100644 +--- a/doc/iscsiadm.8 ++++ b/doc/iscsiadm.8 +@@ -89,7 +89,7 @@ This option is only valid for ping submode. + .TP + \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR + The interface argument specifies the iSCSI interface to use for the operation. +-iSCSI interfaces (iface) are defined in /etc/iscsi/ifaces. For hardware ++iSCSI interfaces (iface) are defined in /var/lib/iscsi/ifaces. For hardware + iSCSI (qla4xxx) the iface config must have the hardware address + (iface.hwaddress = port's MAC address) + and the driver/transport_name (iface.transport_name). The iface's name is +@@ -166,7 +166,7 @@ If no other options are specified: for \fIdiscoverydb\fR and \fInode\fR, all + of their respective records are displayed; for \fIsession\fR, all active + sessions and connections are displayed; for \fIfw\fR, all boot firmware + values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; and +-for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed. ++for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed. + + .TP + \fB\-n\fR, \fB\-\-name=\fIname\fR +@@ -535,10 +535,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup. + The file containing the iSCSI InitiatorName and InitiatorAlias read by + \fBiscsid\fR and \fBiscsiadm\fR on startup. + .TP +-/etc/iscsi/nodes/ ++/var/lib/iscsi/nodes/ + This directory contains the nodes with their targets. + .TP +-/etc/iscsi/send_targets ++/var/lib/iscsi/send_targets + This directory contains the portals. + + .SH "SEE ALSO" +diff --git a/usr/idbm.c b/usr/idbm.c +index 4d30aa9..316e54f 100644 +--- a/usr/idbm.c ++++ b/usr/idbm.c +@@ -2468,9 +2468,9 @@ free_info: + int idbm_init(idbm_get_config_file_fn *fn) + { + /* make sure root db dir is there */ +- if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) { +- if (mkdir(ISCSI_CONFIG_ROOT, 0660) != 0) { +- log_error("Could not make %s %d\n", ISCSI_CONFIG_ROOT, ++ if (access(ISCSIVAR, F_OK) != 0) { ++ if (mkdir(ISCSIVAR, 0660) != 0) { ++ log_error("Could not make %s %d\n", ISCSIVAR, + errno); + return errno; + } +diff --git a/usr/idbm.h b/usr/idbm.h +index 245f046..f45e86e 100644 +--- a/usr/idbm.h ++++ b/usr/idbm.h +@@ -28,12 +28,16 @@ + #include "config.h" + #include "list.h" + +-#define NODE_CONFIG_DIR ISCSI_CONFIG_ROOT"nodes" +-#define SLP_CONFIG_DIR ISCSI_CONFIG_ROOT"slp" +-#define ISNS_CONFIG_DIR ISCSI_CONFIG_ROOT"isns" +-#define STATIC_CONFIG_DIR ISCSI_CONFIG_ROOT"static" +-#define FW_CONFIG_DIR ISCSI_CONFIG_ROOT"fw" +-#define ST_CONFIG_DIR ISCSI_CONFIG_ROOT"send_targets" ++#define ISCSIVAR "/var/lib/iscsi/" ++ ++#define NODE_CONFIG_DIR ISCSIVAR"nodes" ++#define SLP_CONFIG_DIR ISCSIVAR"slp" ++#define ISNS_CONFIG_DIR ISCSIVAR"isns" ++#define STATIC_CONFIG_DIR ISCSIVAR"static" ++#define FW_CONFIG_DIR ISCSIVAR"fw" ++#define ST_CONFIG_DIR ISCSIVAR"send_targets" ++ ++ + #define ST_CONFIG_NAME "st_config" + #define ISNS_CONFIG_NAME "isns_config" + +diff --git a/usr/iface.h b/usr/iface.h +index 01f7074..2c6ef72 100644 +--- a/usr/iface.h ++++ b/usr/iface.h +@@ -20,7 +20,8 @@ + #ifndef ISCSI_IFACE_H + #define ISCSI_IFACE_H + +-#define IFACE_CONFIG_DIR ISCSI_CONFIG_ROOT"ifaces" ++#include "idbm.h" ++#define IFACE_CONFIG_DIR ISCSIVAR"ifaces" + + struct iface_rec; + struct list_head; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service new file mode 100644 index 000000000..b1397513b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service @@ -0,0 +1,12 @@ +[Unit] +Description=Open-iSCSI initiator (i.e. client) service +After=syslog.target + +[Service] +EnvironmentFile=/etc/default/iscsi-initiator +ExecStartPre=/sbin/modprobe iscsi_tcp +ExecStart=/usr/sbin/iscsid -f $OPTS_ISCSID + +[Install] +WantedBy=multi-user.target + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb new file mode 100644 index 000000000..03f64594c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb @@ -0,0 +1,113 @@ +SUMMARY = "iSCSI daemon and utility programs" +DESCRIPTION = "Open-iSCSI project is a high performance, transport \ +independent, multi-platform implementation of RFC3720. The iscsi package \ +provides the server daemon for the iSCSI protocol, as well as the utility \ +programs used to manage it. iSCSI is a protocol for distributed \ +disk access using SCSI commands sent over Internet Protocol networks." +HOMEPAGE = "http://www.open-iscsi.org/" +LICENSE = "GPLv2 & LGPLv2.1" +SECTION = "net" +DEPENDS = "openssl flex-native bison-native" + +LIC_FILES_CHKSUM = \ + "file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ + file://utils/open-isns/COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +SRC_URI = "http://www.open-iscsi.org/bits/open-iscsi-${PV}.tar.gz \ + file://iscsi-initiator-utils-use-var-for-config.patch \ + file://iscsi-initiator-utils-dont-use-static.patch \ + file://initd.debian \ + file://99_iscsi-initiator-utils \ + file://iscsi-initiator \ + file://iscsi-initiator.service \ + file://iscsi-initiator-targets.service \ +" +SRC_URI[md5sum] = "8b8316d7c9469149a6cc6234478347f7" +SRC_URI[sha256sum] = "7dd9f2f97da417560349a8da44ea4fcfe98bfd5ef284240a2cc4ff8e88ac7cd9" + +S = "${WORKDIR}/open-iscsi-${PV}" + +inherit update-rc.d systemd + +TARGET_CC_ARCH += "${LDFLAGS}" +do_configure () { + #need to support cross-compiling in open-isns only + (cd utils/open-isns; gnu-configize; \ + ./configure --host=${TARGET_SYS} --build=${BUILD_SYS} --with-security=no ) +} + +do_compile () { + #make iscsistart one of PROGRAMS if install_user in do_install + #sed -i -e '/^PROGRAMS = /s;$; usr/iscsistart;' Makefile + + #fix the ar used in open-isns + sed -i -e 's:ar cr :$(AR) cr :' ${S}/utils/open-isns/Makefile + oe_runmake user +} + +do_install () { + #completely override the install_user as bugs in Makefile + #oe_runmake DESTDIR="${D}" install_user + + #install necessary directories + install -d ${D}${sbindir} \ + ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/iscsi \ + ${D}${localstatedir}/lib/iscsi/nodes \ + ${D}${localstatedir}/lib/iscsi/send_targets \ + ${D}${localstatedir}/lib/iscsi/static \ + ${D}${localstatedir}/lib/iscsi/isns \ + ${D}${localstatedir}/lib/iscsi/slp \ + ${D}${localstatedir}/lib/iscsi/ifaces \ + ${D}/${mandir}/man8 + + install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \ + ${S}/utils/iscsi-iname \ + ${S}/usr/iscsistart ${D}/${sbindir} + + install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8 + install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi + install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid + + sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN}/lock - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf + install -d ${D}/etc/default/ + install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/ + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/iscsi-initiator.service \ + ${WORKDIR}/iscsi-initiator-targets.service \ + ${D}${systemd_unitdir}/system/ + else + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles + fi +} + +pkg_postinst_${PN}() { + #default there is no initiatorname.iscsi installed + #but it is needed or iscsid will fail + + #will run only when postinst on target + if [ "x$D" != "x" ]; then + exit 1 + fi + if [ ! -f ${sysconfdir}/iscsi/initiatorname.iscsi ]; then + echo "InitiatorName=$(${sbindir}/iscsi-iname)" > \ + ${sysconfdir}/iscsi/initiatorname.iscsi + fi + + if [ -e /etc/init.d/populate-volatile.sh ]; then + /etc/init.d/populate-volatile.sh update + elif command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf + fi +} + +SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service " +INITSCRIPT_NAME = "iscsid" +INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ." diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.default b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.default new file mode 100644 index 000000000..3acacfd90 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.default @@ -0,0 +1,2 @@ +# Uncomment to start SNMP subagent and enable CDP, SONMP and EDP protocol +#DAEMON_ARGS="-x -c -s -e" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d new file mode 100644 index 000000000..88bf95898 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d @@ -0,0 +1,128 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lldpd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: LLDP daemon +# Description: lldpd is a 802.1AB implementation, a L2 network +# discovery protocol. It also supports CDP, EDP and +# various other protocols. +### END INIT INFO + +# Do NOT "set -e" + +log_daemon_msg() { + echo $* +} + +log_end_msg() { + if [ $1 -eq 0 ]; then + success $* + else + failure $* + fi +} + +log_failure_msg() { + echo $* +} + +log_success_msg() { + echo $* +} + + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="LLDP daemon" +NAME=lldpd +DAEMON=/usr/sbin/$NAME +DAEMON_ARGS="" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +CHROOT=/var/run/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# LSB log_* functions +. /etc/init.d/functions + +do_start() +{ + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +do_reload() { + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + reload) + log_daemon_msg "Reloading $DESC" "$NAME" + do_reload + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + status) + status_of_proc $DAEMON $NAME -p $PIDFILE && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2 + exit 3 + ;; +esac + +: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb new file mode 100644 index 000000000..77ed09f54 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb @@ -0,0 +1,65 @@ +SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" +SECTION = "net/misc" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" + +DEPENDS = "libbsd libevent" + +SRC_URI = "\ + http://media.luffy.cx/files/${BPN}/${BPN}-${PV}.tar.gz \ + file://lldpd.init.d \ + file://lldpd.default \ + " + +SRC_URI[md5sum] = "b809887bc927fb558fd5dd64b6c0a494" +SRC_URI[sha256sum] = "6054f29d41faf32186a22331853a299c87f4419b4332df4a564f76a139305a32" + +inherit autotools update-rc.d useradd systemd pkgconfig bash-completion + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system -g lldpd --shell /bin/false lldpd" +GROUPADD_PARAM_${PN} = "--system lldpd" + +EXTRA_OECONF += "--without-embedded-libevent \ + --disable-oldies \ + --with-privsep-user=lldpd \ + --with-privsep-group=lldpd \ + --with-systemdsystemunitdir=${systemd_system_unitdir} \ + --without-sysusersdir \ +" + +PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3" +PACKAGECONFIG[json] = "--with-json,--without-json,jansson" +PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2" +PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[seccomp] = "--with-seccomp,--without-seccomp,libseccomp" +PACKAGECONFIG[cdp] = "--enable-cdp,--disable-cdp" +PACKAGECONFIG[fdp] = "--enable-fdp,--disable-fdp" +PACKAGECONFIG[edp] = "--enable-edp,--disable-edp" +PACKAGECONFIG[sonmp] = "--enable-sonmp,--disable-sonmp" +PACKAGECONFIG[lldpmed] = "--enable-lldpmed,--disable-lldpmed" +PACKAGECONFIG[dot1] = "--enable-dot1,--disable-dot1" +PACKAGECONFIG[dot3] = "--enable-dot3,--disable-dot3" +PACKAGECONFIG[custom] = "--enable-custom,--disable-custom" + +INITSCRIPT_NAME = "lldpd" +INITSCRIPT_PARAMS = "defaults" + +SYSTEMD_SERVICE_${PN} = "lldpd.service" + +do_install_append() { + install -Dm 0755 ${WORKDIR}/lldpd.init.d ${D}${sysconfdir}/init.d/lldpd + install -Dm 0644 ${WORKDIR}/lldpd.default ${D}${sysconfdir}/default/lldpd + # Make an empty configuration file + touch ${D}${sysconfdir}/lldpd.conf +} + +PACKAGES =+ "${PN}-zsh-completion" + +FILES_${PN} += "${libdir}/sysusers.d" +RDEPENDS_${PN} += "os-release" + +FILES_${PN}-zsh-completion += "${datadir}/zsh/" +# FIXME: zsh is broken in meta-oe so this cannot be enabled for now +#RDEPENDS_${PN}-zsh-completion += "zsh" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch new file mode 100644 index 000000000..aa590175c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch @@ -0,0 +1,32 @@ +From 043e1a9ec83a59671ef8c4cad679dbf781e5ef98 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Sun, 29 Nov 2015 23:37:06 -0800 +Subject: [PATCH] configure: use BUILD_CC for ccdv + +ccdv is intended to be invoked from Makefiles only, +it doesn't work for the cross compiling, so compile +it with $BUILD_CC and corresponding CFLAGS. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Jackie Huang +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 2f0fae0..a7e9112 100755 +--- a/configure ++++ b/configure +@@ -11286,7 +11286,7 @@ panic: + } /* main */ + /* eof ccdv.c */ + EOF +- ${CC-cc} $DEFS $CPPFLAGS $CFLAGS "ccdv.c" -o "ccdv" >/dev/null 2>&1 ++ ${BUILD_CC} $DEFS ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} "ccdv.c" -o "ccdv" >/dev/null 2>&1 + rm -f ccdv.c ccdv.o ccdv.c.gz.uu ccdv.c.gz + strip ./ccdv >/dev/null 2>&1 + ./ccdv >/dev/null 2>&1 +-- +2.3.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb new file mode 100644 index 000000000..893eacb99 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "A sophisticated console ftp client" +HOMEPAGE = "http://ncftp.com/" +SECTION = "net" +LICENSE = "ClArtistic" +LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9de76faeaedc4f908082e3f8142715f4" +DEPENDS = "ncurses" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://ncftp-configure-use-BUILD_CC-for-ccdv.patch \ +" +SRC_URI[md5sum] = "685e45f60ac11c89442c572c28af4228" +SRC_URI[sha256sum] = "ac111b71112382853b2835c42ebe7bd59acb7f85dd00d44b2c19fbd074a436c4" + +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,," + +do_configure() { + oe_runconf +} +do_install () { + install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir} + oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \ + 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \ + install +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch new file mode 100644 index 000000000..624cd2d7b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch @@ -0,0 +1,43 @@ +From f1813af4c154fb1d3950abbdf678c3a5a67222fc Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Thu, 25 Jun 2015 11:44:27 +0900 +Subject: [PATCH] plmcd: error fix + +ld: cannot find -lsystemd-daemon +collect2: error: ld returned 1 exit status + +Signed-off-by: Li Xin +--- + contrib/plmc/plmcd/Makefile.am | 2 +- + contrib/plmc/plmcd/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/contrib/plmc/plmcd/Makefile.am b/contrib/plmc/plmcd/Makefile.am +index 8d847f2..dd7913a 100644 +--- a/contrib/plmc/plmcd/Makefile.am ++++ b/contrib/plmc/plmcd/Makefile.am +@@ -32,7 +32,7 @@ plmcd_SOURCES = \ + plmcd_LDFLAGS = -lpthread + + if ENABLE_SYSTEMD +-plmcd_LDFLAGS += -lsystemd-daemon ++plmcd_LDFLAGS += -lsystemd + endif + + plmcd_LDADD = \ +diff --git a/contrib/plmc/plmcd/Makefile.in b/contrib/plmc/plmcd/Makefile.in +index 0185dc4..e40513a 100644 +--- a/contrib/plmc/plmcd/Makefile.in ++++ b/contrib/plmc/plmcd/Makefile.in +@@ -106,7 +106,7 @@ build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ + sbin_PROGRAMS = plmcd$(EXEEXT) +-@ENABLE_SYSTEMD_TRUE@am__append_1 = -lsystemd-daemon ++@ENABLE_SYSTEMD_TRUE@am__append_1 = -lsystemd + subdir = plmcd + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/configure.ac +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch new file mode 100644 index 000000000..016b64f2e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch @@ -0,0 +1,11 @@ +--- opensaf-4.5.0.orig/Makefile.am 2014-12-31 14:45:54.088797989 +0800 ++++ opensaf-4.5.0/Makefile.am 2014-12-31 14:45:08.328796688 +0800 +@@ -219,7 +219,7 @@ install-data-local: + $(mkinstalldirs) $(DESTDIR)$(pkgpiddir) + $(mkinstalldirs) $(DESTDIR)$(lockdir) + $(mkinstalldirs) $(DESTDIR)$(pkglocalstatedir) +- cp -R samples/ $(DESTDIR)$(pkgdatadir) ++ cp -R $(srcdir)/samples/ $(DESTDIR)$(pkgdatadir) + + install-data-hook: + @for i in $$(grep -lr -e 'xxLIBDIRxx' -e 'xxLOGDIRxx' -e 'xxCLCCLIDIRxx' $(DESTDIR)$(pkgimmxml_svcdir)/*.xml) ; do \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_4.7.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_4.7.0.bb new file mode 100644 index 000000000..42e883a31 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_4.7.0.bb @@ -0,0 +1,66 @@ +SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification" +DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \ +middleware consistent with Service Availability Forum (SA Forum) \ +specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \ +established by leading Communications and Enterprise Computing Companies to \ +facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \ +code base in commercial products. \ +The OpenSAF project was launched in mid 2007 and has been under development by \ +an informal group of supporters of the OpenSAF initiative. The OpenSAF \ +Foundation was founded on January 22nd 2008 with Emerson Network Power, \ +Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members." +HOMEPAGE = "http://www.opensaf.org" + +inherit autotools useradd systemd pkgconfig + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ + file://install-samples-from-srcdir.patch \ + file://0001-plmcd-error-fix.patch \ + " + +SRC_URI[md5sum] = "82dd2777a672140e22b8205f10aa55d3" +SRC_URI[sha256sum] = "da9e138650b835728ad51d99268d3a31419b254c4cb4e87c6ec90bc45266d7d2" + +SECTION = "admin" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" + +DEPENDS = "libxml2 python" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "-f -r opensaf" +USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf" + +SYSTEMD_SERVICE_${PN} += "opensafd.service plmcboot.service plmcd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +PACKAGECONFIG[systemd] = "--enable-systemd-daemon" +PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03 --enable-ais-plm,,openhpi" + +do_configure_prepend () { + ( cd ${S}; autoreconf -f -i -s ) +} + +EXTRA_OECONF += " --libdir=${libdir}/opensaf " +EXTRA_OEMAKE += " -Wl,-rpath,${libdir}/opensaf " + +PKGLIBDIR="${libdir}/opensaf/opensaf" + +FILES_${PN} += "${localstatedir}/run" + +FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a" + +RDEPENDS_${PN} += "bash python" + +INSANE_SKIP_${PN} = "dev-so" + +do_install_append() { + rm -fr "${D}${localstatedir}/lock" + rm -fr "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${B}/osaf/services/infrastructure/nid/config/opensafd.service \ + ${D}${systemd_unitdir}/system + install -m 0644 ${B}/contrib/plmc/config/*.service ${D}/${systemd_unitdir}/system + +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb new file mode 100755 index 000000000..855a64f70 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/aliasesdb @@ -0,0 +1,20 @@ +#!/bin/sh + +ALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp + +make_aliasesdb() { + if [ "$(/usr/sbin/postconf -h alias_database)" = "hash:/etc/aliases" ] + then + # /etc/aliases.db may be used by other MTA, make sure nothing + # has touched it since our last newaliases call + [ /etc/aliases -nt /etc/aliases.db ] || + [ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] || + [ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return 0 + /usr/bin/newaliases + touch -r /etc/aliases.db "$ALIASESDB_STAMP" + else + /usr/bin/newaliases + fi +} + +make_aliasesdb diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh new file mode 100755 index 000000000..37a0dd088 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/check_hostname.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +HOSTNAME=$(/bin/hostname) + +if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ]; then + # If hostname is invalid, and myhostname not existed in main.cf + /usr/sbin/postconf -h "myhostname" 2>/dev/null + if [ $? -ne 0 ]; then + # Set "localhost" to main.cf + /usr/sbin/postconf -e "myhostname=localhost" + fi +fi + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch new file mode 100644 index 000000000..d023680f3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/install.patch @@ -0,0 +1,93 @@ +From 190650e1cd5700cd6950ead3fcb17ebcec192a2e Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 19 Jun 2015 17:14:58 +0900 +Subject: [PATCH] Change fixed postconf to a variable for cross-compiling + +Upstreamstatus: Inappropriate [embedded specific] + +Signed-off-by: Yao Zhao +--- + postfix-install | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/postfix-install b/postfix-install +index 1662c3d..d11fa12 100644 +--- a/postfix-install ++++ b/postfix-install +@@ -226,8 +226,8 @@ test -z "$non_interactive" -a ! -t 0 && { + exit 1 + } + +-test -x bin/postconf || { +- echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2 ++test -x "$POSTCONF" || { ++ echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2 + exit 1 + } + +@@ -248,7 +248,7 @@ do + case "$junk" in + *MAIL_VERSION*) + case "$mail_version" in +- "") mail_version="`bin/postconf -dhx mail_version`" || exit 1 ++ "") mail_version="`$POSTCONF -dhx mail_version`" || exit 1 + esac + val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1 + case "$val" in +@@ -434,7 +434,7 @@ template files main.cf.proto and master.cf.proto." + + : ${install_root=/} + : ${tempdir=`pwd`} +-: ${config_directory=`bin/postconf -c conf -h -d config_directory`} ++: ${config_directory=`$POSTCONF -c conf -h -d config_directory`} + + # Find out the location of installed configuration files. + +@@ -500,7 +500,7 @@ test -f $CONFIG_DIRECTORY/main.cf && { + case "$junk" in + "") eval unset $name;; + esac +- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} || ++ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} || + exit 1 + done + } +@@ -513,7 +513,7 @@ do + case "$junk" in + "") eval unset $name;; + esac +- eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1 ++ eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1 + done + + # Override settings manually. +@@ -639,6 +639,8 @@ README_DIRECTORY=$install_root$readme_directory + SHLIB_DIRECTORY=$install_root$shlib_directory + META_DIRECTORY=$install_root$meta_directory + ++test "x$POSTCONF" != "x" || POSTCONF="bin/postconf" ++ + # Avoid repeated tests for existence of these; default permissions suffice. + + test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1 +@@ -810,7 +812,7 @@ IFS="$BACKUP_IFS" + # the wrong place when Postfix is being upgraded. + + case "$mail_version" in +-"") mail_version="`bin/postconf -dhx mail_version`" || exit 1 ++"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1 + esac + + # Undo MAIL_VERSION expansion at the end of a parameter value. If +@@ -830,7 +832,7 @@ do + esac + done + +-bin/postconf -c $CONFIG_DIRECTORY -e \ ++"$POSTCONF" -c $CONFIG_DIRECTORY -e \ + "daemon_directory = $daemon_directory" \ + "data_directory = $data_directory" \ + "command_directory = $command_directory" \ +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/internal_recipient b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/internal_recipient new file mode 100644 index 000000000..6a8f2681b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/internal_recipient @@ -0,0 +1 @@ +root@ permit_mynetworks,reject diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 new file mode 100644 index 000000000..dc7feb57b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 @@ -0,0 +1,102 @@ +# Configure your domain and accounts +#mydomain=sample.com +#FQDN from gethostname +#myhostname = +mydomain=localdomain +mydestination = $myhostname, localhost.localdomain localhost +mynetworks = 127.0.0.1/8 +inet_interfaces = 127.0.0.1 + +virtual_mailbox_domains = sample.com, other.net +virtual_mailbox_maps = hash:/etc/postfix/virtual +virtual_alias_maps = hash:/etc/postfix/virtual_alias + +alias_maps = hash:/etc/aliases + +# You'll start with the following lines for maildir storage +virtual_mailbox_base = /var/spool/vmail +virtual_uid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 3` +virtual_gid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 4` + + +# You'll start with the following lines for IMAP storage +#virtual_transport = lmtp:unix:/var/lib/cyrus/socket/lmtp + + +# General stuff here again +#config_directory = /etc/postfix +sample_directory = /etc/postfix +queue_directory = /var/spool/postfix +mail_spool_directory = /var/spool/mail +readme_directory = no +command_directory = /usr/sbin +daemon_directory = @LIBEXECDIR@ +mail_owner = postfix +setgid_group = postdrop +unknown_local_recipient_reject_code = 450 +mynetworks_style = host +debug_peer_level = 2 +sendmail_path = /usr/sbin/sendmail +newaliases_path = /usr/bin/newaliases +mailq_path = /usr/bin/mailq + +smtpd_data_restrictions = + permit_mynetworks, + reject_unauth_pipelining, + permit + +smtpd_client_restrictions = + permit_mynetworks, + # reject_unknown_client, # This can cause a lot of false rejects. + reject_invalid_hostname, + reject_rbl_client list.dsbl.org, + reject_rbl_client sbl.spamhaus.org, + reject_rbl_client cbl.abuseat.org, + reject_rbl_client dul.dnsbl.sorbs.net, + permit + +smtpd_helo_required = yes +smtpd_helo_restrictions = + permit_mynetworks, + reject_unauth_pipelining, + # reject_non_fqdn_hostname, # This can cause a lot of false rejects. + # reject_unknown_hostname, # This can cause a lot of false rejects. + reject_invalid_hostname, + permit + +smtpd_sender_restrictions = + permit_mynetworks, + reject_non_fqdn_sender, + # check_sender_access hash:/etc/postfix/access_domains, + reject_unknown_sender_domain, + permit + +smtpd_recipient_restrictions = + permit_mynetworks, + permit_sasl_authenticated, + reject_unauth_destination, + + # check_recipient_access pcre:/etc/postfix/recipient_checks.pcre, + # check_helo_access pcre:/etc/postfix/helo_checks.pcre, + + # check_client_access hash:/etc/postfix/maps/access_client, + # check_client_access hash:/etc/postfix/maps/exceptions_client, + # check_helo_access hash:/etc/postfix/maps/access_helo, + # check_helo_access hash:/etc/postfix/maps/verify_helo, + # check_sender_access hash:/etc/postfix/maps/access_sender, + # check_sender_access hash:/etc/postfix/maps/verify_sender, + # check_recipient_access hash:/etc/postfix/maps/access_recipient, + + # reject_multi_recipient_bounce, + reject_non_fqdn_recipient, + reject_unknown_recipient_domain, + # reject_unlisted_recipient, + #check_policy_service unix:private/policy, + + # check_sender_access hash:/etc/postfix/maps/no_verify_sender, + # check_sender_access hash:/etc/postfix/access_domains, + # reject_unverified_sender, + # reject_unverified_recipient + check_recipient_access hash:/etc/postfix/internal_recipient + +disable_vrfy_command = yes diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch new file mode 100644 index 000000000..98d5f7ed6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/makedefs.patch @@ -0,0 +1,116 @@ +From 4f49e2ce420fb3c17415937530493158ef312733 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 19 Jun 2015 16:45:54 +0900 +Subject: [PATCH] 1)remove RANLIB, SYSLIBS, AR and get them from env. + +2)reference sysroot when searching header files +3)include sysroot path instead of absolute include path +for Linux2 and Linux3 systems. +4)for non-native build, search STAGING_BASELIBDIR/LIBDIR + native build, search host library path for nsl and resolv library + which comes from libc + +Upstreamstatus: Inappropriate [embedded specific] + +Signed-off-by: Yao Zhao +--- + makedefs | 27 +++++++++++---------------- + 1 file changed, 11 insertions(+), 16 deletions(-) + +diff --git a/makedefs b/makedefs +index 8b84e47..893fb0d 100644 +--- a/makedefs ++++ b/makedefs +@@ -170,9 +170,6 @@ echo "# pie=$pie" + + # Defaults for most sane systems + +-RANLIB=ranlib +-SYSLIBS= +-AR=ar + ARFL=rv + + # Ugly function to make our error message more visible among the +@@ -424,12 +421,12 @@ case "$SYSTEM.$RELEASE" in + case "$CCARGS" in + *-DNO_DB*) ;; + *-DHAS_DB*) ;; +- *) if [ -f /usr/include/db.h ] ++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ] + then + : we are all set +- elif [ -f /usr/include/db/db.h ] ++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ] + then +- CCARGS="$CCARGS -I/usr/include/db" ++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db" + else + # No, we're not going to try db1 db2 db3 etc. + # On a properly installed system, Postfix builds +@@ -438,12 +435,12 @@ case "$SYSTEM.$RELEASE" in + echo "Install the appropriate db*-devel package first." 1>&2 + exit 1 + fi +- SYSLIBS="-ldb" ++ SYSLIBS="$SYSLIBS -ldb" + ;; + esac + for name in nsl resolv $GDBM_LIBS + do +- for lib in /usr/lib64 /lib64 /usr/lib /lib ++ for lib in $BUILD_SYSROOT_NSL_PATH + do + test -e $lib/lib$name.a -o -e $lib/lib$name.so && { + SYSLIBS="$SYSLIBS -l$name" +@@ -463,7 +460,7 @@ case "$SYSTEM.$RELEASE" in + if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ] + then + : +- elif [ ! -e /usr/include/sys/epoll.h ] ++ elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ] + then + echo CCARGS="$CCARGS -DNO_EPOLL" + else +@@ -487,8 +484,6 @@ int main(int argc, char **argv) + } + EOF + ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1 +- ./makedefs.test 2>/dev/null || +- CCARGS="$CCARGS -DNO_EPOLL" + rm -f makedefs.test makedefs.test.[co] + fi;; + esac +@@ -504,12 +499,12 @@ EOF + case "$CCARGS" in + *-DNO_DB*) ;; + *-DHAS_DB*) ;; +- *) if [ -f /usr/include/db.h ] ++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ] + then + : we are all set +- elif [ -f /usr/include/db/db.h ] ++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ] + then +- CCARGS="$CCARGS -I/usr/include/db" ++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db" + else + # On a properly installed system, Postfix builds + # by including and by linking with -ldb +@@ -517,12 +512,12 @@ EOF + echo "Install the appropriate db*-devel package first." 1>&2 + exit 1 + fi +- SYSLIBS="-ldb" ++ SYSLIBS="$SYSLIBS -ldb" + ;; + esac + for name in nsl resolv + do +- for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/* ++ for lib in $BUILD_SYSROOT_NSL_PATH + do + test -e $lib/lib$name.a -o -e $lib/lib$name.so && { + SYSLIBS="$SYSLIBS -l$name" +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix new file mode 100755 index 000000000..8c7a60175 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix @@ -0,0 +1,94 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: postfix MTA +# Default-Start: 2345 +# Default-Stop: 016 +# Short-Description: start and stop postfix +# Description: Postfix is a Mail Transport Agent, which is the program +# that moves mail from one machine to another. +### END INIT INFO + +success() { + echo " Successful" + exit 0 +} + +fail() { + echo " Failed" + exit 1 + +} + +check_return () { + local ret="$1" + + if [ "$ret" = "0" ]; then + success + else + fail + fi +} + +PIDFile=/var/spool/postfix/pid/master.pid +case "$1" in + + start) + echo -n "Starting Postfix..." + if [ ! -e /etc/aliases.db ]; then + # The alias database is necessary for postfix to work correctly. + echo "Creating aliases database ..." + newaliases + fi + if ! postfix status >/dev/null 2>&1; then + /usr/sbin/check_hostname.sh + postfix start + check_return $? + else + success + fi + ;; + + stop) + echo -n "Stopping Postfix..." + if postfix status >/dev/null 2>&1; then + postfix stop + check_return $? + else + success + fi + ;; + + reload) + echo -n "Reloading Postfix..." + if postfix status >/dev/null 2>&1; then + postfix reload + check_return $? + else + postfix start + check_return $? + fi + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + status) + if postfix status >/dev/null 2>&1; then + pid=`sed -e 's/\s//g' $PIDFile` + echo "The Postfix mail system is running (PID: $pid)" + exit 0 + else + echo "The Postfix mail system is not running" + exit 1 + fi + ;; + + *) + echo "Usage: $0 {start|stop|status|reload|restart}" + exit 1 + ;; +esac + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix.service new file mode 100644 index 000000000..3a9a0a181 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix.service @@ -0,0 +1,16 @@ +[Unit] +Description=Postfix Mail Transport Agent +After=syslog.target network.target +Conflicts=sendmail.service exim.service + +[Service] +Type=forking +PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid +ExecStartPre=-@SBINDIR@/check_hostname.sh +ExecStartPre=-@LIBEXECDIR@/aliasesdb +ExecStart=@SBINDIR@/postfix start +ExecReload=@SBINDIR@/postfix reload +ExecStop=@SBINDIR@/postfix stop + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc new file mode 100644 index 000000000..17dbf76ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc @@ -0,0 +1,251 @@ +SUMMARY = "Postfix Mail Transport Agent" +DESCRIPTION = "Postfix is Wietse Venema's mail server that started life at \ +IBM research as an alternative to the widely-used Sendmail program. \ +Postfix attempts to be fast, easy to administer, and secure. The outsidei \ +has a definite Sendmail-ish flavor, but the inside is completely different." + +HOMEPAGE= "http://www.postfix.org" +SECTION = "mail" +DEPENDS = "virtual/db libpcre openssl postfix-native \ + ${@base_contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ +" +DEPENDS_class-native = "virtual/db-native openssl-native libpcre-native" + +LICENSE = "IPL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354" + +SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \ + file://makedefs.patch \ + file://install.patch \ + file://main.cf_2.0 \ + file://postfix \ + file://internal_recipient \ + file://postfix.service \ + file://aliasesdb \ + file://check_hostname.sh \ +" + +S = "${WORKDIR}/postfix-${PV}" + +CLEANBROKEN = "1" + +BBCLASSEXTEND = "native" + +inherit update-rc.d useradd update-alternatives systemd + +INITSCRIPT_NAME = "postfix" +INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ." +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = \ +"-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \ + -d /var/spool/vmail -r -g vmail --shell /bin/false vmail \ +" +GROUPADD_PARAM_${PN} = "--system postfix;--system postdrop;--system vmail" + +export SYSLIBS = "${LDFLAGS}" + +# CCARGS specifies includes, defines +# AUXLIBS specifies libraries +# Linux2/Linux3 has HAS_DB defined +# makedefs will make CC to be CC+CCARGS + +# ldap support +export CCARGS-ldap = "\ + ${@base_contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" +export AUXLIBS-ldap = "\ + ${@base_contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" + +# no native openldap +export CCARGS-ldap_class-native = "" +export AUXLIBS-ldap_class-native = "" + +# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH +# current openldap didn't enable SASL +export CCARGS-sasl = "\ + ${@base_contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}" +export AUXLIBS-sasl = "\ + ${@base_contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" +export CCARGS-sasl_class-native = "" +export AUXLIBS-sasl_class-native = "" + +# PCRE, TLS support default +export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS ${CCARGS-ldap} ${CCARGS-sasl}" +export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}" +export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf" + +# OPT,DEBUG is aready in CFLAGS +# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS +EXTRA_OEMAKE += "OPT= DEBUG= OPTS= " + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS + local native_build + + native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}" + + # if not native build, then pass SYSTEM and RELEASE to makedefs + if [ "${native_build}" != "1" ]; then + # uname -s for target + SYSTEM="Linux" + + # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6 + RELEASE="2.6.34" + sed -i -e \ + "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \ + ${S}/Makefile.in + export BUILD_SYSROOT="${STAGING_DIR_HOST}" + export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \ + ${STAGING_LIBDIR}" + else + # native build + export BUILD_SYSROOT="${STAGING_DIR_NATIVE}" + + # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32) + # on 64 bits, 32 libs in i386-linux-gnu + # let makedefs finds nsl and resolv libs, host CC will link + # the correct libraries + BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \ + sed -n '/^libraries: =/s/libraries: =//p' | \ + sed -e 's/:/\n/g' | xargs -n1 readlink -f | \ + grep -v 'gcc\|/[0-9.]\+$' | sort -u)" + if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then + BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \ + /lib/x86_64-linux-gnu \ + /usr/lib /lib \ + /lib/i386-linux-gnu" + fi + export BUILD_SYSROOT_NSL_PATH + fi + + oe_runmake makefiles + oe_runmake +} + +do_install_prepend_class-native() { + export POSTCONF="bin/postconf" +} + +SYSTEMD_SERVICE_${PN} = "postfix.service" + +do_install () { + sh ./postfix-install 'install_root=${D}' \ + 'config_directory=${sysconfdir}/postfix' \ + 'daemon_directory=${libexecdir}' \ + 'command_directory=${sbindir}' \ + 'queue_directory=${localstatedir}/spool/postfix' \ + 'sendmail_path=${sbindir}/sendmail.postfix' \ + 'newaliases_path=${bindir}/newaliases' \ + 'mailq_path=${bindir}/mailq' \ + 'manpage_directory=${mandir}' \ + 'readme_directory=${datadir}/doc/postfix' \ + 'data_directory=${localstatedir}/lib/postfix' \ + -non-interactive + rm -rf ${D}${localstatedir}/spool/postfix + mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf + install -m 755 ${S}/bin/smtp-sink ${D}/${sbindir}/ + install -d ${D}${sysconfdir}/init.d + install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf + sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf + + install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/ + + install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix + install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system + sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/postfix.service + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/postfix.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/postfix.service + + install -m 0755 ${WORKDIR}/aliasesdb ${D}${libexecdir} + + install -m 770 -d ${D}${localstatedir}/spool/postfix + chown postfix:postfix ${D}${localstatedir}/spool/postfix + + install -m 2755 -d ${D}${localstatedir}/spool/mail + chown postfix:nogroup ${D}${localstatedir}/spool/mail + install -m 0755 -d ${D}${localstatedir}/lib/postfix + chown postfix:nogroup ${D}${localstatedir}/lib/postfix + install -m 0755 -d ${D}${localstatedir}/spool/postfix + chown root:postfix ${D}${localstatedir}/spool/postfix + install -m 0700 -d ${D}${localstatedir}/spool/postfix/active + chown postfix:root ${D}${localstatedir}/spool/postfix/active + install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce + chown postfix:root ${D}${localstatedir}/spool/postfix/bounce + install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt + chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt + install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer + chown postfix:root ${D}${localstatedir}/spool/postfix/defer + install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred + chown postfix:root ${D}${localstatedir}/spool/postfix/deferred + install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush + chown postfix:root ${D}${localstatedir}/spool/postfix/flush + install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold + chown postfix:root ${D}${localstatedir}/spool/postfix/hold + install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming + chown postfix:root ${D}${localstatedir}/spool/postfix/incoming + install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved + chown postfix:root ${D}${localstatedir}/spool/postfix/saved + install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace + chown postfix:root ${D}${localstatedir}/spool/postfix/trace + install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop + install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid + chown root:root ${D}${localstatedir}/spool/postfix/pid + install -m 0700 -d ${D}${localstatedir}/spool/postfix/private + chown postfix:root ${D}${localstatedir}/spool/postfix/private + install -m 0710 -d ${D}${localstatedir}/spool/postfix/public + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public + install -m 0755 -d ${D}${localstatedir}/spool/vmail + chown vmail:vmail ${D}${localstatedir}/spool/vmail + + chown :postdrop ${D}${sbindir}/postqueue + chown :postdrop ${D}${sbindir}/postdrop + chmod g+s ${D}${sbindir}/postqueue + chmod g+s ${D}${sbindir}/postdrop +} + +do_install_append_class-native() { + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq +} + +do_install_append_class-target() { + # Remove references to buildmachine paths in target makedefs.out + sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out +} + +NATIVE_INSTALL_WORKS = "1" + +ALTERNATIVE_${PN} = "sendmail" +ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix" +ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" +ALTERNATIVE_PRIORITY = "120" + +pkg_postinst_${PN} () { + if [ "x$D" = "x" ]; then + touch /etc/aliases + newaliases + + # generate virtual_alias, default is hash + touch /etc/postfix/virtual_alias + postmap /etc/postfix/virtual_alias + else + touch $D/etc/aliases + newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases + touch $D/etc/postfix/virtual_alias + postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias + + if ${@'true' if 'linuxstdbase' in d.getVar('DISTROOVERRIDES', False) else 'false'}; then + # /usr/lib/sendmial is required by LSB core test + [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/ + fi + fi +} + +# Exclude .debug directories from the main package +FILES_${PN} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \ + ${libexecdir}/* ${systemd_unitdir}/*" +FILES_${PN}-dbg += "${libexecdir}/.debug" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.0.3.bb new file mode 100644 index 000000000..7104a9d1c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.0.3.bb @@ -0,0 +1,4 @@ +require postfix.inc + +SRC_URI[md5sum] = "61caffae689c11d09b4c972a394ae3b1" +SRC_URI[sha256sum] = "401e46ec3450569dcce60d1d8ca22a19ab1f7f817b0cc730cdf4875ba608ac02" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/CVE-2016-3125.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/CVE-2016-3125.patch new file mode 100644 index 000000000..69c9be031 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/CVE-2016-3125.patch @@ -0,0 +1,247 @@ +From 7a8f683cedf9b0d1024a80362693c9f8b93a0f2b Mon Sep 17 00:00:00 2001 +From: TJ Saunders +Date: Thu, 10 Mar 2016 15:07:58 -0800 +Subject: [PATCH] Backport of fix for Bug#4230 to 1.3.5 branch. + +Upstream-Status: Backport +CVE: CVE-2016-3125 + +Author: TJ Saunders +Signed-off-by: Catalin Enache +--- + contrib/mod_tls.c | 167 +++++++++++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 147 insertions(+), 20 deletions(-) + +diff --git a/contrib/mod_tls.c b/contrib/mod_tls.c +index df92658..5883cc7 100644 +--- a/contrib/mod_tls.c ++++ b/contrib/mod_tls.c +@@ -411,6 +411,13 @@ static int tls_required_on_ctrl = 0; + static int tls_required_on_data = 0; + static unsigned char *tls_authenticated = NULL; + ++/* Define the minimum DH group length we allow (unless the AllowWeakDH ++ * TLSOption is used). Ideally this would be 2048, per https://weakdh.org, ++ * but for compatibility with older Java versions, which only support up to ++ * 1024, we'll use 1024. For now. ++ */ ++#define TLS_DH_MIN_LEN 1024 ++ + /* mod_tls session flags */ + #define TLS_SESS_ON_CTRL 0x0001 + #define TLS_SESS_ON_DATA 0x0002 +@@ -438,6 +445,7 @@ static unsigned char *tls_authenticated = NULL; + #define TLS_OPT_USE_IMPLICIT_SSL 0x0200 + #define TLS_OPT_ALLOW_CLIENT_RENEGOTIATIONS 0x0400 + #define TLS_OPT_VERIFY_CERT_CN 0x0800 ++#define TLS_OPT_ALLOW_WEAK_DH 0x1000 + + /* mod_tls SSCN modes */ + #define TLS_SSCN_MODE_SERVER 0 +@@ -2417,24 +2425,139 @@ static int tls_ctrl_renegotiate_cb(CALLBACK_FRAME) { + + static DH *tls_dh_cb(SSL *ssl, int is_export, int keylength) { + DH *dh = NULL; ++ EVP_PKEY *pkey; ++ int pkeylen = 0, use_pkeylen = FALSE; ++ ++ /* OpenSSL will only ever call us (currently) with a keylen of 512 or 1024; ++ * see the SSL_EXPORT_PKEYLENGTH macro in ssl_locl.h. Sigh. ++ * ++ * Thus we adjust the DH parameter length according to the size of the ++ * RSA/DSA private key used for the current connection. ++ * ++ * NOTE: This MAY cause interoperability issues with some clients, notably ++ * Java 7 (and earlier) clients, since Java 7 and earlier supports ++ * Diffie-Hellman only up to 1024 bits. More sighs. To deal with these ++ * clients, then, you need to configure a certificate/key of 1024 bits. ++ */ ++ pkey = SSL_get_privatekey(ssl); ++ if (pkey != NULL) { ++ if (EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA || ++ EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) { ++ pkeylen = EVP_PKEY_bits(pkey); ++ ++ if (pkeylen < TLS_DH_MIN_LEN) { ++ if (!(tls_opts & TLS_OPT_ALLOW_WEAK_DH)) { ++ pr_trace_msg(trace_channel, 11, ++ "certificate private key length %d less than %d bits, using %d " ++ "(see AllowWeakDH TLSOption)", pkeylen, TLS_DH_MIN_LEN, ++ TLS_DH_MIN_LEN); ++ pkeylen = TLS_DH_MIN_LEN; ++ } ++ } ++ ++ if (pkeylen != keylen) { ++ pr_trace_msg(trace_channel, 13, ++ "adjusted DH parameter length from %d to %d bits", keylen, pkeylen); ++ use_pkeylen = TRUE; ++ } ++ } ++ } + + if (tls_tmp_dhs != NULL && + tls_tmp_dhs->nelts > 0) { + register unsigned int i; +- DH **dhs; ++ DH *best_dh = NULL, **dhs; ++ int best_dhlen = 0; + + dhs = tls_tmp_dhs->elts; ++ ++ /* Search the configured list of DH parameters twice: once for any sizes ++ * matching the actual requested size (usually 1024), and once for any ++ * matching the certificate private key size (pkeylen). ++ * ++ * This behavior allows site admins to configure a TLSDHParamFile that ++ * contains 1024-bit parameters, for e.g. Java 7 (and earlier) clients. ++ */ ++ ++ /* Note: the keylen argument is in BITS, but DH_size() returns the number ++ * of BYTES. ++ */ + for (i = 0; i < tls_tmp_dhs->nelts; i++) { +- /* Note: the keylength argument is in BITS, but DH_size() returns +- * the number of BYTES. ++ int dhlen; ++ ++ dhlen = DH_size(dhs[i]) * 8; ++ if (dhlen == keylen) { ++ pr_trace_msg(trace_channel, 11, ++ "found matching DH parameter for key length %d", keylen); ++ return dhs[i]; ++ } ++ ++ /* Try to find the next "best" DH to use, where "best" means ++ * the smallest DH that is larger than the necessary keylen. + */ +- if (DH_size(dhs[i]) == (keylength / 8)) { ++ if (dhlen > keylen) { ++ if (best_dh != NULL) { ++ if (dhlen < best_dhlen) { ++ best_dh = dhs[i]; ++ best_dhlen = dhlen; ++ } ++ ++ } else { ++ best_dh = dhs[i]; ++ best_dhlen = dhlen; ++ } ++ } ++ } ++ ++ for (i = 0; i < tls_tmp_dhs->nelts; i++) { ++ int dhlen; ++ ++ dhlen = DH_size(dhs[i]) * 8; ++ if (dhlen == pkeylen) { ++ pr_trace_msg(trace_channel, 11, ++ "found matching DH parameter for certificate private key length %d", ++ pkeylen); + return dhs[i]; + } ++ ++ if (dhlen > pkeylen) { ++ if (best_dh != NULL) { ++ if (dhlen < best_dhlen) { ++ best_dh = dhs[i]; ++ best_dhlen = dhlen; ++ } ++ ++ } else { ++ best_dh = dhs[i]; ++ best_dhlen = dhlen; ++ } ++ } ++ } ++ ++ if (best_dh != NULL) { ++ pr_trace_msg(trace_channel, 11, ++ "using best DH parameter for key length %d (length %d)", keylen, ++ best_dhlen); ++ return best_dh; + } + } + +- switch (keylength) { ++ /* Still no DH parameters found? Use the built-in ones. */ ++ ++ if (keylen < TLS_DH_MIN_LEN) { ++ if (!(tls_opts & TLS_OPT_ALLOW_WEAK_DH)) { ++ pr_trace_msg(trace_channel, 11, ++ "requested key length %d less than %d bits, using %d " ++ "(see AllowWeakDH TLSOption)", keylen, TLS_DH_MIN_LEN, TLS_DH_MIN_LEN); ++ keylen = TLS_DH_MIN_LEN; ++ } ++ } ++ ++ if (use_pkeylen) { ++ keylen = pkeylen; ++ } ++ ++ switch (keylen) { + case 512: + dh = get_dh512(); + break; +@@ -2443,32 +2566,33 @@ static DH *tls_dh_cb(SSL *ssl, int is_export, int keylength) { + dh = get_dh768(); + break; + +- case 1024: +- dh = get_dh1024(); +- break; ++ case 1024: ++ dh = get_dh1024(); ++ break; + +- case 1536: +- dh = get_dh1536(); +- break; ++ case 1536: ++ dh = get_dh1536(); ++ break; + +- case 2048: +- dh = get_dh2048(); +- break; ++ case 2048: ++ dh = get_dh2048(); ++ break; + +- default: +- tls_log("unsupported DH key length %d requested, returning 1024 bits", +- keylength); +- dh = get_dh1024(); +- break; ++ default: ++ tls_log("unsupported DH key length %d requested, returning 1024 bits", ++ keylen); ++ dh = get_dh1024(); ++ break; + } + ++ pr_trace_msg(trace_channel, 11, "using builtin DH for %d bits", keylen); ++ + /* Add this DH to the list, so that it can be freed properly later. */ + if (tls_tmp_dhs == NULL) { + tls_tmp_dhs = make_array(session.pool, 1, sizeof(DH *)); + } + + *((DH **) push_array(tls_tmp_dhs)) = dh; +- + return dh; + } + +@@ -8445,6 +8569,9 @@ MODRET set_tlsoptions(cmd_rec *cmd) { + strcmp(cmd->argv[i], "AllowClientRenegotiations") == 0) { + opts |= TLS_OPT_ALLOW_CLIENT_RENEGOTIATIONS; + ++ } else if (strcmp(cmd->argv[i], "AllowWeakDH") == 0) { ++ opts |= TLS_OPT_ALLOW_WEAK_DH; ++ + } else if (strcmp(cmd->argv[i], "EnableDiags") == 0) { + opts |= TLS_OPT_ENABLE_DIAGS; + +-- +2.7.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/basic.conf.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/basic.conf.patch new file mode 100644 index 000000000..4967bed1e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/basic.conf.patch @@ -0,0 +1,21 @@ +Upstream-Status: Inappropriate [configuration] + +proftpd tries to get the IP address from the hostname. +Unluckily now the hostname is not properly configured in /etc/hosts. +We can use this patch as a workaround. + +Author: Dexuan Cui +Tue Oct 25 12:59:27 CST 2011 + +--- proftpd-1.3.3c.orig/sample-configurations/basic.conf ++++ proftpd-1.3.3c/sample-configurations/basic.conf +@@ -7,6 +7,9 @@ + ServerType standalone + DefaultServer on + ++#By default we bind to all interfaces. ++DefaultAddress 0.0.0.0 ++ + # Port 21 is the standard FTP port. + Port 21 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch new file mode 100644 index 000000000..19617a6bb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch @@ -0,0 +1,112 @@ +Upstream-Status: Inappropriate [configuration] + +combined the following patches into one: +make, move-pidfile-to-var-run, move-runfile-to-var-run + +move pidfile to /var/run +redefine PR_RUN_DIR as ${localstatedir}/run + +Signed-off-By: Armin Kuster + + +Index: proftpd-1.3.5/Make.rules.in +=================================================================== +--- proftpd-1.3.5.orig/Make.rules.in ++++ proftpd-1.3.5/Make.rules.in +@@ -29,9 +29,9 @@ INSTALL=@INSTALL@ + INSTALL_STRIP=@INSTALL_STRIP@ + INSTALL_USER=@install_user@ + INSTALL_GROUP=@install_group@ +-INSTALL_BIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_SBIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_MAN=$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 ++INSTALL_BIN=$(INSTALL) -m 0755 ++INSTALL_SBIN=$(INSTALL) -m 0755 ++INSTALL_MAN=$(INSTALL) -m 0644 + + RM=rm -f + SHELL=@CONFIG_SHELL@ +Index: proftpd-1.3.5/Makefile.in +=================================================================== +--- proftpd-1.3.5.orig/Makefile.in ++++ proftpd-1.3.5/Makefile.in +@@ -105,7 +105,6 @@ check: proftpd$(EXEEXT) + $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -115,7 +114,6 @@ install-proftpd: proftpd $(DESTDIR)$(inc + rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \ + fi + ln -s proftpd $(DESTDIR)$(sbindir)/in.proftpd +- -chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd + + install-libs: $(DESTDIR)$(libdir)/proftpd + cd lib/ && $(MAKE) install +@@ -152,11 +150,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DE + $(INSTALL_SBIN) ftpshut $(DESTDIR)$(sbindir)/ftpshut + $(INSTALL_BIN) ftptop $(DESTDIR)$(bindir)/ftptop + $(INSTALL_BIN) ftpwho $(DESTDIR)$(bindir)/ftpwho +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs ++ $(INSTALL) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs + + install-conf: $(DESTDIR)$(sysconfdir) + if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \ +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 \ ++ $(INSTALL) -m 0644 \ + $(top_srcdir)/sample-configurations/basic.conf \ + $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ + fi +Index: proftpd-1.3.5/configure +=================================================================== +--- proftpd-1.3.5.orig/configure ++++ proftpd-1.3.5/configure +@@ -38255,7 +38255,7 @@ _ACEOF + + + cat >>confdefs.h <<_ACEOF +-#define PR_RUN_DIR "`eval echo "${localstatedir}"`" ++#define PR_RUN_DIR "`eval echo "${localstatedir}"/run/`" + _ACEOF + + cat >>confdefs.h <<_ACEOF +@@ -38263,7 +38263,7 @@ cat >>confdefs.h <<_ACEOF + _ACEOF + + cat >>confdefs.h <<_ACEOF +-#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/proftpd.pid"`" ++#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/run/proftpd.pid"`" + _ACEOF + + +Index: proftpd-1.3.5/configure.in +=================================================================== +--- proftpd-1.3.5.orig/configure.in ++++ proftpd-1.3.5/configure.in +@@ -2971,8 +2971,8 @@ locale_dir="`eval echo ${locale_dir}`" + AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") + + AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") +-AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") +-AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`") ++AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`") ++AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`") + + prefix="$pr_saved_prefix" + exec_prefix="$pr_saved_exec_prefix" +Index: proftpd-1.3.5/lib/libcap/Makefile +=================================================================== +--- proftpd-1.3.5.orig/lib/libcap/Makefile ++++ proftpd-1.3.5/lib/libcap/Makefile +@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES)) + all: $(LIBNAME) + + _makenames: _makenames.c cap_names.sed +- $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ ++ $(BUILD_CC) $(CFLAGS) $(LDFLAGS) $< -o $@ + + cap_names.h: _makenames + ./_makenames > cap_names.h diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/close-RequireValidShell-check.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/close-RequireValidShell-check.patch new file mode 100644 index 000000000..c64535cac --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/close-RequireValidShell-check.patch @@ -0,0 +1,27 @@ +close RequireValidShell check + +Upstream-Status: Inappropriate [configuration] + +close RequireValidShell check since we like to make /bin/false as shell +for ftp user + +Signed-off-by: Roy Li +--- + sample-configurations/basic.conf | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sample-configurations/basic.conf b/sample-configurations/basic.conf +index 314eb79..abcb284 100644 +--- a/sample-configurations/basic.conf ++++ b/sample-configurations/basic.conf +@@ -53,6 +53,7 @@ AllowOverwrite on + # We want clients to be able to login with "anonymous" as well as "ftp" + UserAlias anonymous ftp + ++ RequireValidShell off + # Limit the maximum number of anonymous logins + MaxClients 10 + +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch new file mode 100644 index 000000000..7e2a8e3ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch @@ -0,0 +1,42 @@ +The contrib directory now contains its own Makefile which is +used during installation. It was required to pass DESTDIR through +when it gets called from the base Makefile. + +Upstream-Status: Pending + +Signed-off-by: Kevin Strasser +--- + Makefile.in | 2 +- + contrib/Makefile.in | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 5b2e683..ee72fe1 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -120,7 +120,7 @@ install-modules: $(DESTDIR)$(libexecdir) $(DESTDIR)$(sysconfdir) + test -z "$(SHARED_MODULE_OBJS)" -a -z "$(SHARED_MODULE_DIRS)" -a -z "$(STATIC_MODULE_DIRS)" || (cd modules/ && $(MAKE) install) + + install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir) +- cd contrib/ && $(MAKE) install-utils ++ cd contrib/ && $(MAKE) DESTDIR=${DESTDIR} install-utils + $(INSTALL_BIN) ftpcount $(DESTDIR)$(bindir)/ftpcount + $(INSTALL_BIN) ftpdctl $(DESTDIR)$(bindir)/ftpdctl + $(INSTALL_SBIN) ftpscrub $(DESTDIR)$(sbindir)/ftpscrub +diff --git a/contrib/Makefile.in b/contrib/Makefile.in +index 5bcc038..51d248c 100644 +--- a/contrib/Makefile.in ++++ b/contrib/Makefile.in +@@ -18,6 +18,6 @@ Makefile: Makefile.in ../config.status + cd ../ && ./config.status + + install-utils: +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota ++ $(INSTALL) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd ++ $(INSTALL) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail ++ $(INSTALL) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/default b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/default new file mode 100644 index 000000000..b31f36ce2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/default @@ -0,0 +1,9 @@ +# Defaults for proftpd initscript + +# Master system-wide proftpd switch. The initscript +# will not run if it is not set to yes. +RUN="yes" + +# Default options. +# For more exhaustive logging, try "-d 3". +OPTIONS="" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd-basic.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd-basic.init new file mode 100644 index 000000000..01c998c92 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd-basic.init @@ -0,0 +1,220 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: proftpd +# Required-Start: $remote_fs $syslog $local_fs $network +# Required-Stop: $remote_fs $syslog $local_fs $network +# Should-Start: $named +# Should-Stop: $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts ProFTPD daemon +# Description: This script runs the FTP service offered +# by the ProFTPD daemon +### END INIT INFO + +# Start the proftpd FTP daemon. + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAEMON=/usr/sbin/proftpd +NAME=proftpd + +# Defaults +RUN="no" +OPTIONS="" +CONFIG_FILE=/etc/proftpd.conf + +PIDFILE=`grep -i '^pidfile' $CONFIG_FILE|awk '{ print $2 }'` +if [ "x$PIDFILE" = "x" ]; +then + PIDFILE=/var/run/proftpd.pid +fi + +# Read config (will override defaults) +[ -r /etc/default/proftpd ] && . /etc/default/proftpd + +trap "" 1 +trap "" 15 + +test -f $DAEMON || exit 0 + +. /etc/init.d/functions + +# +# Servertype could be inetd|standalone|none. +# In all cases check against inetd and xinetd support. +# +if ! egrep -qi "^[[:space:]]*ServerType.*standalone" $CONFIG_FILE +then + if egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.conf 2>/dev/null || \ + egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.d/* 2>/dev/null || \ + egrep -qi "^ftp.*/usr/sbin/proftpd" /etc/inetd.conf 2>/dev/null + then + RUN="no" + INETD="yes" + else + if ! egrep -qi "^[[:space:]]*ServerType.*inetd" $CONFIG_FILE + then + RUN="yes" + INETD="no" + else + RUN="no" + INETD="no" + fi + fi +fi + +# /var/run could be on a tmpfs + +[ ! -d /var/run/proftpd ] && mkdir /var/run/proftpd + +inetd_check() +{ + if [ ! -x /usr/sbin/inetd -a ! -x /usr/sbin/xinetd ]; then + echo "Neither inetd nor xinetd appears installed: check your configuration." + fi +} + +start() +{ + set -e + echo -n "Starting ftp server $NAME... " + start-stop-daemon --start --quiet --pidfile "$PIDFILE" --oknodo --exec $DAEMON -- -c $CONFIG_FILE $OPTIONS + echo "done." +} + +signal() +{ + + if [ "$1" = "stop" ]; then + SIGNAL="TERM" + echo -n "Stopping ftp server $NAME... " + else + if [ "$1" = "reload" ]; then + SIGNAL="HUP" + echo -n "Reloading ftp server $NAME... " + else + echo "ERR: wrong parameter given to signal()" + exit 1 + fi + fi + if [ -f "$PIDFILE" ]; then + start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" + if [ $? = 0 ]; then + echo "done." + return + else + SIGNAL="KILL" + start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" + if [ $? != 0 ]; then + echo + [ $2 != 0 ] || exit 0 + else + echo "done." + return + fi + fi + if [ "$SIGNAL" = "KILL" ]; then + rm -f "$PIDFILE" + fi + else + echo "done." + return + fi +} + +case "$1" in + start) + if [ "x$RUN" = "xyes" ] ; then + start + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPD is started from inetd/xinetd." + inetd_check + else + echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." + fi + fi + ;; + + force-start) + if [ "x$INETD" = "xyes" ] ; then + echo "Warning: ProFTPD is started from inetd/xinetd (trying to start anyway)." + inetd_check + fi + start + ;; + + stop) + if [ "x$RUN" = "xyes" ] ; then + signal stop 0 + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPD is started from inetd/xinetd." + inetd_check + else + echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." + fi + fi + ;; + + force-stop) + if [ "x$INETD" = "xyes" ] ; then + echo "Warning: ProFTPD is started from inetd/xinetd (trying to kill anyway)." + inetd_check + fi + signal stop 0 + ;; + + reload) + signal reload 0 + ;; + + force-reload|restart) + if [ "x$RUN" = "xyes" ] ; then + signal stop 1 + sleep 2 + start + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPD is started from inetd/xinetd." + inetd_check + else + echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." + fi + fi + ;; + + status) + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPD is started from inetd/xinetd." + inetd_check + exit 0 + else + if [ -f "$PIDFILE" ]; then + pid=$(cat $PIDFILE) + else + pid="x" + fi + if [ `pidof proftpd|grep "$pid"|wc -l` -ne 0 ] ; then + echo "ProFTPD is started in standalone mode, currently running." + exit 0 + else + echo "ProFTPD is started in standalone mode, currently not running." + exit 3 + fi + fi + ;; + + check-config) + $DAEMON -t >/dev/null && echo "ProFTPD configuration OK" && exit 0 + exit 1 + ;; + + *) + echo "Usage: /etc/init.d/$NAME {start|status|force-start|stop|force-stop|reload|restart|force-reload|check-config}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd.service new file mode 100644 index 000000000..ba97f8e1c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/proftpd.service @@ -0,0 +1,7 @@ +[Unit] +Description=proftpd Daemon + +[Service] +Type=forking +ExecStart=-@SBINDIR@/proftpd -c @SYSCONFDIR@/proftpd.conf +StandardError=syslog diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5a.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5a.bb new file mode 100644 index 000000000..57d4984bd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5a.bb @@ -0,0 +1,115 @@ +SUMMARY = "Secure and configurable FTP server" +SECTION = "net" +HOMEPAGE = "http://www.proftpd.org" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184" + +SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \ + file://basic.conf.patch \ + file://proftpd-basic.init \ + file://default \ + file://close-RequireValidShell-check.patch \ + file://contrib.patch \ + file://build_fixup.patch \ + file://proftpd.service \ + file://CVE-2016-3125.patch \ + " + +SRC_URI[md5sum] = "b9d3092411478415b31d435f8e26d173" +SRC_URI[sha256sum] = "a1f48df8539c414ec56e0cea63dcf4b8e16e606c05f10156f030a4a67fae5696" + +inherit autotools-brokensep useradd update-rc.d systemd + +PACKAGECONFIG ??= "sia shadow" +PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" + +PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses" +PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl" +PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam" +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" +PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow" +PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre " + +# enable POSIX.1e capabilities +PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap" + +#enable support for POSIX ACLs +PACKAGECONFIG[acl] = "--enable-facl, --disable-facl" + +#enable proftpd controls via ftpdct +PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls" + +#prevent proftpd from using its bundled getopt implementation. +PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt" + +#do not strip debugging symbols from installed code +PACKAGECONFIG[strip] = "--enable-strip, --disable-strip" + +#enable SIA authentication support (Tru64) +PACKAGECONFIG[sia] = "--enable-sia, --disable-sia" +PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile" + +#enable Native Language Support (NLS) +PACKAGECONFIG[nls] = "--enable-nls, --disable-nls" + +#add mod_dso to core modules +PACKAGECONFIG[dso] = "--enable-dso, --disable-dso" +PACKAGECONFIG[largefile] = "--enable-largefile, --disable-largefile" + +#omit mod_auth_file from core modules +PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file" + + +# proftpd uses libltdl which currently makes configuring using +# autotools.bbclass a pain... +do_configure () { + oe_runconf + cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool +} + +FTPUSER = "ftp" +FTPGROUP = "ftp" + +do_install () { + oe_runmake DESTDIR=${D} install + rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale + [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir} + sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf + sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd + + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd + + # create the pub directory + mkdir -p ${D}/home/${FTPUSER}/pub/ + chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub + + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system + sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -i ${D}${systemd_unitdir}/system/*.service +} + +INITSCRIPT_NAME = "proftpd" +INITSCRIPT_PARAM = "defaults 85 15" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "proftpd.service" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}" +USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \ + --shell /bin/false ${FTPUSER}" + +FILES_${PN} += "/home/${FTPUSER}" + +RDEPENDS_${PN} += "perl" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch new file mode 100644 index 000000000..e4578dda7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch @@ -0,0 +1,35 @@ +From 4c850b92a1cf8cfa19677c66bcde2edfab1a4490 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 24 Feb 2015 23:02:14 -0500 +Subject: [PATCH] ptpd: use pkgconfig + +Yocto uses pkg-config for libpcap, rather than pcap-config, so use that +instead as the source for libs and cflags. + +Upstream-status: Inappropriate [ embedded specific ] + +Signed-off-by: Joe MacDonald +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dc9541f..288f547 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -112,10 +112,10 @@ case "$try_pcap" in + yes) + case "$PATH_PCAP_CONFIG" in + /*) +- PCAP_LIBS=`$PATH_PCAP_CONFIG --libs` ++ PCAP_LIBS=`$PATH_PCAP_CONFIG --libs libpcap` + AC_SUBST([PCAP_LIBS]) + # Separate CPPFLAGS and CFLAGS +- foo=`$PATH_PCAP_CONFIG --cflags` ++ foo=`$PATH_PCAP_CONFIG --cflags libpcap` + PCAP_CPPFLAGS= + PCAP_CFLAGS= + for i in $foo; do +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf new file mode 100644 index 000000000..ddd571036 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf @@ -0,0 +1,7 @@ +# +# PTPD Configuration +# +# See man ptpd2 for arguments. +# +# Example arguments +PTPDARGS="-d 1 -i eth0" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service new file mode 100644 index 000000000..f84799eb5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service @@ -0,0 +1,10 @@ +[Unit] +Description=ptpd time precision daemon + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/ptpd +ExecStart=@BINDIR@/ptpd2 $PTPDARGS + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb new file mode 100644 index 000000000..f6aaee0eb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb @@ -0,0 +1,58 @@ +SUMMARY = "The PTP daemon (PTPd)" +DESCRIPTION = "The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as \ +defined by the relevant IEEE 1588 standard. PTP Version 1 implements IEEE-1588-2002, \ +and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very precise \ +time coordination of LAN connected computers." +HOMEPAGE = "http://sourceforge.net/projects/ptpd" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d" + +DEPENDS = "libpcap" + +inherit autotools systemd + +# return something like '1.2.3' or '1.2.3/rc1' +# +def get_sub(d): + parts = d.getVar('PV',True).split('-') + try: + return parts[0] + '/' + parts[1] + except: + return parts[0] + +SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz \ + file://ptpd-use-pkgconfig.patch \ + file://ptpd.service \ + file://ptpd.conf \ +" + +SRC_URI[md5sum] = "253bab7ab51d969616ea811be1f132f3" +SRC_URI[sha256sum] = "0dbf54dd2c178bd9fe62481d2c37513ee36636d8bf137cfdad96891490cdbf93" + +S = "${WORKDIR}/ptpd-${PV}" + +EXTRA_OEMAKE = "" + +EXTRA_OECONF += "--disable-snmp --with-pcap-config=pkg-config" + +do_install() { + install -d ${D}${bindir} ${D}${mandir}/man8 + install -m 0755 ${B}/src/ptpd2 ${D}${bindir} + install -m 0644 ${B}/src/ptpd2.8 ${D}${mandir}/man8 + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ptpd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/ptpd.service + sed -i -e 's#@BINDIR@#${bindir}#g' ${D}${systemd_unitdir}/system/ptpd.service + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/ptpd.conf ${D}${sysconfdir}/default/ptpd + fi +} + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "ptpd.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch new file mode 100644 index 000000000..76523fb99 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch @@ -0,0 +1,39 @@ +From 1bafadf2502334a3e972ff667061469316d0d2ca Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Tue, 4 Aug 2015 02:46:39 +0200 +Subject: [PATCH] Remove hardcoded /usr/local includes from configure.ac + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Yauhen Kharuzhy +Signed-off-by: Tudor Florea +--- + configure.ac | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6c78e8c..851d45d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -100,18 +100,6 @@ AC_ARG_VAR(PYTHON,local path to the python interpreter) + python_possible_path="/usr/bin:/usr/local/bin:/bin:/opt/python/bin:/opt/python/usr/bin:/opt/python/usr/local/bin" + AC_PATH_PROG(PYTHON,python,/usr/bin/env python,$python_possible_path) + +-if test -d /usr/local/include; then +- CPPFLAGS="$CPPFLAGS -I/usr/local/include" +-fi +- +-if test -d /usr/kerberos/include; then +- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" +-fi +- +-if test -d /usr/local/lib; then +- LDFLAGS="$LDFLAGS -L/usr/local/lib" +-fi +- + CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + + dnl Checks for header files +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch new file mode 100644 index 000000000..4cb33bc5c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch @@ -0,0 +1,31 @@ +From 0290bd6f4ceddff2c52dff833c9d31d24de7d0e1 Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Tue, 4 Aug 2015 03:07:01 +0200 +Subject: [PATCH] Don't mess with CFLAGS and LDFLAGS when --with-minimal is specified + +We especially don't want stripping enabled. + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Paul Eggleton +Signed-off-by: Tudor Florea +--- + configure.ac | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 851d45d..dc410a1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -423,8 +423,6 @@ AC_ARG_WITH(minimal, + AC_DEFINE(NO_FTP_USERS) + AC_DEFINE(WITHOUT_ASCII) + AC_DEFINE(BORING_MODE) +- CFLAGS="$CFLAGS -Os -fomit-frame-pointer -fno-unroll-loops " +- LDFLAGS="$LDFLAGS -s " + fi ]) + + AC_ARG_WITH(paranoidmsg, +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb new file mode 100644 index 000000000..c1f150405 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb @@ -0,0 +1,22 @@ +SUMMARY = "FTP Server with a strong focus on software security" +DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server." +HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=90352fb2bfe17f4261687a0d6e09f489" + +DEPENDS = "libcap" + + +SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \ + file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \ + file://nostrip.patch \ +" +SRC_URI[md5sum] = "4195af8f0e5ee2a798b1014071dae3a3" +SRC_URI[sha256sum] = "7be73a8e58b190a7054d2ae00c5e650cb9e091980420082d02ec3c3b68d8e7f9" + +inherit autotools + +EXTRA_OECONF = "--with-minimal" +PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \ + ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default new file mode 100644 index 000000000..7cb73c771 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default @@ -0,0 +1 @@ +OPTIONS="-u radvd" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init new file mode 100755 index 000000000..8b26317ee --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init @@ -0,0 +1,135 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: radvd +# Required-Start: $remote_fs $named $syslog +# Required-Stop: $remote_fs $named $syslog +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Description: router advertisement daemon +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/radvd +NAME=radvd +DESC=radvd +CONFIG=/etc/radvd.conf +SAVED_SETTINGS=/var/run/radvd/saved-settings +PIDFILE=/var/run/radvd/radvd.pid +OPTIONS="-u radvd -p $PIDFILE" + +test -x $DAEMON || exit 0 + +set -e + +# Check for IPv6 support in kernel +if test \! -e /proc/sys/net/ipv6; then + echo "IPv6 support must be enabled in the kernel for $DESC to work." + exit +fi + +save_settings() +{ + local file=$1 + + rm -f $file + for if_conf in /proc/sys/net/ipv6/conf/*; do + echo -e "$if_conf/forwarding\t `cat $if_conf/forwarding`" >> $file + done + return 0 +} + +restore_settings() +{ + file=$1 + + if [ ! -f $file ]; then + echo "$0: warning: cannot restore settings" + return + fi + + ( + while read f value; do + if [ -w $f ]; then + echo $value > $f + fi + done + ) < $file +} + +chkconfig() { + if [ ! -e $CONFIG -o ! -s $CONFIG ]; then + echo "" + echo "* $CONFIG does not exist or is empty." + echo "* See /usr/share/doc/radvd/radvd.conf.example for a simple" + echo "* configuration suitable for most systems, and radvd.conf(5)" + echo "* for configuration file syntax. radvd will *not* be started." + exit 0 + fi +} + +case "$1" in + start) + echo -n "Starting $DESC: " + chkconfig + save_settings $SAVED_SETTINGS + + # We must enable IPv6 forwarding for radvd to work + echo 1 > /proc/sys/net/ipv6/conf/all/forwarding + + # Check for stale pidfile; radvd won't start if one is lying around + if [ -f $PIDFILE ] && ! ps `cat $PIDFILE` > /dev/null; then + rm -f $PIDFILE + fi + if ! start-stop-daemon --oknodo --start --pidfile $PIDFILE \ + --exec $DAEMON -- $OPTIONS; then + echo "failed." && exit 1 + fi + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + if ! [ -f $PIDFILE ] ; then + echo "not running." + exit 0 + fi + start-stop-daemon --oknodo --stop --pidfile $PIDFILE \ + --exec $DAEMON + restore_settings $SAVED_SETTINGS + rm -f $SAVED_SETTINGS + echo "$NAME." + ;; + status) + status $DAEMON; + exit $? + ;; + reload|force-reload) + echo "Reloading $DESC configuration files." + start-stop-daemon --stop --signal HUP --quiet --pidfile \ + $PIDFILE --exec $DAEMON + ;; + restart) + chkconfig + echo -n "Restarting $DESC: " + if ! start-stop-daemon --stop --quiet --pidfile \ + $PIDFILE --exec $DAEMON; then + # stop failed, so we were not running + save_settings $SAVED_SETTINGS + echo 1 > /proc/sys/net/ipv6/conf/all/forwarding + fi + sleep 1 + start-stop-daemon --start --quiet --pidfile \ + $PIDFILE --exec $DAEMON -- $OPTIONS + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|status|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service new file mode 100644 index 000000000..e60798a6b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Router advertisement daemon for IPv6 +After=network.target +ConditionPathExists=@SYSCONFDIR@/radvd.conf + +[Service] +EnvironmentFile=-@SYSCONFDIR@/default/radvd +ExecStart=@SBINDIR@/radvd -n $OPTIONS + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd new file mode 100644 index 000000000..89256a40e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd @@ -0,0 +1,2 @@ +# +d radvd root 0755 /var/run/radvd none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc new file mode 100644 index 000000000..47e4736b7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc @@ -0,0 +1,67 @@ +SUMMARY = "IPv6 router advertisement daemon" +DESCRIPTION = "radvd is the router advertisement daemon for IPv6. It \ +listens to router solicitations and sends router \ +advertisements as described in RFC 2461, Neighbor \ +Discovery for IP Version 6 (IPv6). With these \ +advertisements hosts can automatically configure their \ +addresses and some other parameters. They also can \ +choose a default router based on these advertisements." +HOMEPAGE = "http://www.litech.org/radvd/" +SECTION = "net" +DEPENDS = "flex-native libdaemon" + +# License is BSD-Style (with advertising clause) but also has an additional 0th clause +LICENSE = "radvd" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db" + +SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \ + file://radvd.init \ + file://radvd.service \ + file://volatiles.03_radvd \ + file://radvd.default" + +inherit autotools update-rc.d useradd pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "radvd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +do_install_append () { + install -m 0755 -d ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/default/volatiles \ + ${D}${docdir}/radvd + # Install init script and volatiles + install -m 0755 ${WORKDIR}/radvd.init ${D}${sysconfdir}/init.d/radvd + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd + + install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd + + # Install systemd service files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/radvd.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' \ + -e 's#@SBINDIR@#${sbindir}#g' \ + -e 's#@BASE_BINDIR@#${base_bindir}#g' ${D}${systemd_unitdir}/system/radvd.service + + # Install default environment file + install -m 0644 ${WORKDIR}/radvd.default ${D}${sysconfdir}/default/radvd + + # Documentation + for i in radvd.conf.example README; do \ + install -m 0644 ${S}/$i ${D}${docdir}/radvd; \ + done +} + +INITSCRIPT_NAME = "radvd" +INITSCRIPT_PARAMS = "defaults 20 80" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd" + +pkg_postinst_${PN} () { + if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then + /etc/init.d/populate-volatile.sh update + fi +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb new file mode 100644 index 000000000..c0b7532ba --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb @@ -0,0 +1,5 @@ + +require radvd.inc + +SRC_URI[md5sum] = "57fc6021f6a5e5472e455937685472a3" +SRC_URI[sha256sum] = "80ad60b15689e9591a5af393a57a1d93304deeff2e46482f0fd98046c00622f8" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch new file mode 100644 index 000000000..5f845bb4c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch @@ -0,0 +1,31 @@ +From faa212a4e0aaf442ff58fca50770a8fadc1038e3 Mon Sep 17 00:00:00 2001 +Message-Id: +From: Jim Somerville +Date: Thu, 17 Oct 2013 16:17:48 -0400 +Subject: [PATCH 1/1] Add default entry for cross compile + +Signed-off-by: Jim Somerville +--- + acinclude/krb5.m4 | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 +index 5d9ac36..7a072a2 100644 +--- a/acinclude/krb5.m4 ++++ b/acinclude/krb5.m4 +@@ -82,7 +82,11 @@ main(void) + + return 0; + } +-]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) ++]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], ++[ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no ++]) + ], + [ + dnl Can't test in cross compiled env - so assume good +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/CVE-2016-3947.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/CVE-2016-3947.patch new file mode 100644 index 000000000..c83e6ab51 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/CVE-2016-3947.patch @@ -0,0 +1,48 @@ +From 0fe108ecb2bbdf684f159950eaa55d22f07c4008 Mon Sep 17 00:00:00 2001 +From: Catalin Enache +Date: Wed, 20 Apr 2016 15:17:18 +0300 +Subject: [PATCH] pinger: Fix buffer overflow in Icmp6::Recv + +Upstream-Status: Backport +CVE: CVE-2016-3947 + +Author: Yuriy M. Kaminskiy +Committer: Amos Jeffries +--- + src/icmp/Icmp6.cc | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/src/icmp/Icmp6.cc b/src/icmp/Icmp6.cc +index 794a51a..ee84b80 100644 +--- a/src/icmp/Icmp6.cc ++++ b/src/icmp/Icmp6.cc +@@ -256,7 +256,7 @@ Icmp6::Recv(void) + #define ip6_hops // HOPS!!! (can it be true??) + + ip = (struct ip6_hdr *) pkt; +- pkt += sizeof(ip6_hdr); ++ NP: echo size needs to +sizeof(ip6_hdr); + + debugs(42, DBG_CRITICAL, HERE << "ip6_nxt=" << ip->ip6_nxt << + ", ip6_plen=" << ip->ip6_plen << +@@ -267,7 +267,6 @@ Icmp6::Recv(void) + */ + + icmp6header = (struct icmp6_hdr *) pkt; +- pkt += sizeof(icmp6_hdr); + + if (icmp6header->icmp6_type != ICMP6_ECHO_REPLY) { + +@@ -292,7 +291,7 @@ Icmp6::Recv(void) + return; + } + +- echo = (icmpEchoData *) pkt; ++ echo = (icmpEchoData *) (pkt + sizeof(icmp6_hdr)); + + preply.opcode = echo->opcode; + +-- +2.7.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch new file mode 100644 index 000000000..2304c5f1d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch @@ -0,0 +1,43 @@ +From 0d5b337ff5ef7dd48f970f08bd95d6327917cfd1 Mon Sep 17 00:00:00 2001 +Message-Id: <0d5b337ff5ef7dd48f970f08bd95d6327917cfd1.1382375807.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Mon, 21 Oct 2013 12:50:44 -0400 +Subject: [PATCH 1/1] Fix flawed dynamic -ldb link test in configure + +The test uses dbopen, but just ignores the fact +that this function may not exist in the db version +used. This leads to the dynamic link test failing +and the configure script just making assumptions +about why and setting the need for -ldb incorrectly. + +Signed-off-by: Jim Somerville +--- + configure.ac | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 962a748..42e6a93 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3051,8 +3051,16 @@ AC_CHECK_DECL(dbopen,,,[ + #include + #endif]) + +-dnl 1.85 +-SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++if test "x$ac_cv_have_decl_dbopen" = "xyes"; then ++ dnl 1.85 ++ SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++else ++ # dbopen isn't there. So instead of running a compile/link test that ++ # uses it and is thus guaranteed to fail, we just assume that we will ++ # need to link in the db library, rather than fabricate some other ++ # dynamic compile/link test. ++ ac_cv_dbopen_libdb="yes" ++fi + if test "x$ac_cv_dbopen_libdb" = "xyes"; then + LIB_DB="-ldb" + fi +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch new file mode 100644 index 000000000..4ca27444a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch @@ -0,0 +1,29 @@ +From 17e5a28667f667859c48bee25e575a072d39ee1b Mon Sep 17 00:00:00 2001 +Message-Id: <17e5a28667f667859c48bee25e575a072d39ee1b.1381956170.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Wed, 16 Oct 2013 16:41:03 -0400 +Subject: [PATCH 1/1] Set up for cross compilation + +Set the host compiler to BUILD_CXX so +proper cross compilation can occur. + +Signed-off-by: Jim Somerville +--- + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c2d3033..dda9ed9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,6 +19,7 @@ m4_include([acinclude/lib-checks.m4]) + m4_include([acinclude/ax_cxx_compile_stdcxx_0x.m4]) + m4_include([acinclude/ax_cxx_0x_types.m4]) + ++HOSTCXX="$BUILD_CXX" + PRESET_CFLAGS="$CFLAGS" + PRESET_CXXFLAGS="$CXXFLAGS" + PRESET_LDFLAGS="$LDFLAGS" +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch new file mode 100644 index 000000000..7b6dcc820 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch @@ -0,0 +1,64 @@ +Subject: [PATCH] Skip AC_RUN_IFELSE tests + +Upstream-Status: Inappropriate [cross compiling specific] + +Such tests are not supported in a cross compile +environment. Choose sane defaults. + +Signed-off-by: Jim Somerville +Signed-off-by: Jackie Huang +--- + acinclude/krb5.m4 | 10 +++++++++- + acinclude/lib-checks.m4 | 8 ++++++-- + 2 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 +index 946bea8..7a072a2 100644 +--- a/acinclude/krb5.m4 ++++ b/acinclude/krb5.m4 +@@ -82,7 +82,15 @@ main(void) + + return 0; + } +-]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) ++]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], ++[ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no ++]) ++ ], ++ [ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no + ]) + ]) + ]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H +diff --git a/acinclude/lib-checks.m4 b/acinclude/lib-checks.m4 +index 2bf98ee..50dba9b 100644 +--- a/acinclude/lib-checks.m4 ++++ b/acinclude/lib-checks.m4 +@@ -128,7 +128,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + AC_DEFINE(SQUID_SSLGETCERTIFICATE_BUGGY, 1) + AC_MSG_RESULT([yes]) + ], +- []) ++ [ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++ ]) + + AC_MSG_CHECKING(whether the workaround for SSL_get_certificate works) + AC_RUN_IFELSE([ +@@ -154,7 +156,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + [ + AC_MSG_RESULT([no]) + ], +-[]) ++[ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++]) + + SQUID_STATE_ROLLBACK(check_SSL_get_certificate) + ]) +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/run-ptest b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/run-ptest new file mode 100644 index 000000000..de79a293c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh +# +make -C test-suite -k runtest-TESTS diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch new file mode 100644 index 000000000..9e2ceab88 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch @@ -0,0 +1,31 @@ +From 2192fdbc90b0ff2d5408e8763df200620870deea Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 13 Oct 2014 01:32:37 -0700 +Subject: [PATCH] squid: use serial-tests config needed by ptest + +ptest needs buildtest-TESTS and runtest-TESTS targets. +serial-tests is required to generate those targets. + +Upstream-Status: Inappropriate [default automake behavior incompatible with ptest] + +Signed-off-by: Jackie Huang +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6f7171f..ab9b93e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_PREREQ(2.61) + AC_CONFIG_HEADERS([include/autoconf.h]) + AC_CONFIG_AUX_DIR(cfgaux) + AC_CONFIG_SRCDIR([src/main.cc]) +-AM_INIT_AUTOMAKE([tar-ustar nostdinc]) ++AM_INIT_AUTOMAKE([tar-ustar nostdinc serial-tests]) + AC_REVISION($Revision$)dnl + AC_PREFIX_DEFAULT(/usr/local/squid) + AM_MAINTAINER_MODE +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/volatiles.03_squid b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/volatiles.03_squid new file mode 100644 index 000000000..b96865d73 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/volatiles.03_squid @@ -0,0 +1,2 @@ +# +d squid squid 0755 /var/run/squid none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.7.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.7.bb new file mode 100644 index 000000000..e35aad7cf --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.7.bb @@ -0,0 +1,79 @@ +SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux" +DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \ +Squid offers a rich access control, authorization and logging environment to \ +develop web proxy and content serving applications. \ +Squid offers a rich set of traffic optimization options, most of which are \ +enabled by default for simpler installation and high performance. \ +" +HOMEPAGE = "http://www.squid-cache.org" +SECTION = "web" +LICENSE = "GPLv2+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}" +MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \ + file://Set-up-for-cross-compilation.patch \ + file://Skip-AC_RUN_IFELSE-tests.patch \ + file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \ + file://squid-use-serial-tests-config-needed-by-ptest.patch \ + file://run-ptest \ + file://volatiles.03_squid \ + file://CVE-2016-3947.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ + file://errors/COPYRIGHT;md5=0fed8f1462f6fdbc62bb431bcb618f46 \ + " +SRC_URI[md5sum] = "06e43abc67aedcc3903a2780de20a3ed" +SRC_URI[sha256sum] = "b7dcec8c5cb7f5687aff4256a7522f670c310a350cc9e9c0f29f3fd9cf88d017" + +DEPENDS = "libtool krb5 openldap db cyrus-sasl" + +inherit autotools useradd ptest + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" + +PACKAGECONFIG ??= "${@base_contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \ + ${@base_contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \ + " +PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" +PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,," + +BASIC_AUTH = "DB SASL LDAP NIS" +DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +BASIC_AUTH += "${@base_contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}" + +EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}'" +export BUILDCXXFLAGS="${BUILD_CXXFLAGS}" + +TESTDIR = "test-suite" +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} + cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH} + + # do NOT need to rebuild Makefile itself + sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile +} + +do_install_append() { + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/volatiles.03_squid + rmdir "${D}${localstatedir}/run/${BPN}" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run" +} + +FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons" +FILES_${PN}-dbg += "/usr/src/debug" +FILES_${PN}-doc += "${datadir}/*.txt" + +RDEPENDS_${PN} += "perl" +RDEPENDS_${PN}-ptest += "make" + +# http://errors.yoctoproject.org/Errors/Details/35128/ +PNBLACKLIST[squid] ?= "BROKEN: sysroots/qemuarm/usr/include/linux/in.h:28:16: error: redeclaration of 'IPPROTO_IP'" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch new file mode 100644 index 000000000..d01c20d38 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch @@ -0,0 +1,81 @@ +From bd5773947af5ca80ca546ad5625818fc912bdd60 Mon Sep 17 00:00:00 2001 +From: "Roy.Li" +Date: Thu, 22 Aug 2013 08:56:09 +0800 +Subject: [PATCH] tftp-hpa: add error check for disk filled up + +Upstream-status: Pending [Sent to http://www.syslinux.org/archives/2013-August/020765.html] + +Add error check when the write-buffer is finally flushed to the file, +the caller can detect if the disk filled up (or had an i/o error) and +return a NOSAPCE nak to the other side. + +Signed-off-by: Ming Liu +Signed-off-by: Roy.Li +--- + common/tftpsubs.c | 8 +++++--- + tftpd/tftpd.c | 12 ++++++++++-- + 2 files changed, 15 insertions(+), 5 deletions(-) + +diff --git a/common/tftpsubs.c b/common/tftpsubs.c +index 8c999f6..b4d4ffe 100644 +--- a/common/tftpsubs.c ++++ b/common/tftpsubs.c +@@ -206,20 +206,22 @@ int write_behind(FILE * file, int convert) + + p = buf; + ct = count; ++ count = 0; + while (ct--) { /* loop over the buffer */ + c = *p++; /* pick up a character */ + if (prevchar == '\r') { /* if prev char was cr */ + if (c == '\n') /* if have cr,lf then just */ +- fseek(file, -1, 1); /* smash lf on top of the cr */ ++ count = count - 1; + else if (c == '\0') /* if have cr,nul then */ + goto skipit; /* just skip over the putc */ + /* else just fall through and allow it */ + } +- putc(c, file); ++ buf[count] = c; ++ count ++; + skipit: + prevchar = c; + } +- return count; ++ return write(fileno(file), buf, count); + } + + /* When an error has occurred, it is possible that the two sides +diff --git a/tftpd/tftpd.c b/tftpd/tftpd.c +index 1873e70..c2adbda 100644 +--- a/tftpd/tftpd.c ++++ b/tftpd/tftpd.c +@@ -1681,7 +1681,11 @@ static void tftp_recvfile(const struct formats *pf, struct tftphdr *oap, int oac + syslog(LOG_WARNING, "tftpd: write(ack): %m"); + goto abort; + } +- write_behind(file, pf->f_convert); ++ if(write_behind(file, pf->f_convert) < 0) { ++ nak(ENOSPACE, NULL); ++ (void)fclose(file); ++ goto abort; ++ } + for (;;) { + n = recv_time(peer, dp, PKTSIZE, 0, &r_timeout); + if (n < 0) { /* really? */ +@@ -1712,7 +1716,11 @@ static void tftp_recvfile(const struct formats *pf, struct tftphdr *oap, int oac + goto abort; + } + } while (size == segsize); +- write_behind(file, pf->f_convert); ++ if(write_behind(file, pf->f_convert) < 0) { ++ nak(ENOSPACE, NULL); ++ (void)fclose(file); ++ goto abort; ++ } + (void)fclose(file); /* close data file */ + + ap->th_opcode = htons((u_short) ACK); /* send the "final" ack */ +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/default b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/default new file mode 100644 index 000000000..1dce7fdfe --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/default @@ -0,0 +1,3 @@ +#Defaults for tftpd-hpa +RUN_DAEMON="yes" +OPTIONS="-l -s /var/lib/tftpboot" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch new file mode 100644 index 000000000..452aa05f8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch @@ -0,0 +1,39 @@ +[PATCH] fix the empty file writting + +Upstream-Status: pending + +With the feature that checking the disk filled up, the return +value of function write_behind was checked and used to detect +the disk status. While for empty file, without data being +written, this function will return -1 thus the disk filled up +error was miss-raised. + +make write_behind to return 0 if written file is empty, to fix +the this bug. + +Signed-off-by: Roy.Li +--- + common/tftpsubs.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/common/tftpsubs.c b/common/tftpsubs.c +index b4ea3f2..9f6cafc 100644 +--- a/common/tftpsubs.c ++++ b/common/tftpsubs.c +@@ -198,9 +198,12 @@ int write_behind(FILE * file, int convert) + nextone = !nextone; /* incr for next time */ + buf = dp->th_data; + +- if (count <= 0) ++ if (count < 0) + return -1; /* nak logic? */ + ++ if (count == 0) ++ return 0; ++ + if (convert == 0) + return write(fileno(file), buf, count); + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/init new file mode 100644 index 000000000..9e1843635 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/init @@ -0,0 +1,105 @@ +#! /bin/sh +# +# Author: Jaakko Niemi +# Modified from skeleton file in sarge + +### BEGIN INIT INFO +# Provides: tftp-hpa +# Required-Start: $local_fs $remote_fs $syslog $network +# Required-Stop: $local_fs $remote_fs $syslog $network +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: HPA's tftp client +# Description: tftp server to allow booting clients which support +# the PXE protocol. +### END INIT INFO + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="HPA's tftpd" +NAME=in.tftpd-hpa +SCRIPTNAME=/etc/init.d/tftpd-hpa + +# Read config file if it is present. +if [ -r /etc/default/tftpd-hpa ] +then + . /etc/default/tftpd-hpa +fi + +DAEMON=/usr/sbin/$NAME +PIDFILE=/var/run/$NAME.pid + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +if [ "$RUN_DAEMON" != "yes" ] ; then + echo "tftpd-hpa disabled in /etc/default/tftpd-hpa" + exit 0 +fi + +# +# Function that starts the daemon/service. +# +d_start() { + start-stop-daemon --start --quiet --exec $DAEMON -- $OPTIONS +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --quiet --name $NAME +} + +# +# Function that sends a SIGHUP to the daemon/service. +# +d_reload() { + start-stop-daemon --stop --quiet --name $NAME --signal 1 +} + +case "$1" in + start) + echo "Starting $DESC: $NAME" + d_start + echo "." + ;; + stop) + echo "Stopping $DESC: $NAME" + d_stop + echo "." + ;; + #reload) + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this an "exit 0". + # + # echo -n "Reloading $DESC configuration..." + # d_reload + # echo "done." + #;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + echo "Restarting $DESC: $NAME" + d_stop + sleep 1 + d_start + echo "." + ;; + *) + # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.40-remap.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.40-remap.patch new file mode 100644 index 000000000..3f690609a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.40-remap.patch @@ -0,0 +1,25 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.49/tftpd/remap.c.zero tftp-hpa-0.49/tftpd/remap.c +--- tftp-hpa-0.49/tftpd/remap.c.zero 2008-10-20 18:08:31.000000000 -0400 ++++ tftp-hpa-0.49/tftpd/remap.c 2008-11-25 11:41:09.000000000 -0500 +@@ -286,6 +286,7 @@ struct rule *parserulefile(FILE * f) + int lineno = 0; + int err = 0; + ++ memset(this_rule, '\0', sizeof(struct rule)); + while (lineno++, fgets(line, MAXLINE, f)) { + rv = parseline(line, this_rule, lineno); + if (rv < 0) +@@ -294,6 +295,7 @@ struct rule *parserulefile(FILE * f) + *last_rule = this_rule; + last_rule = &this_rule->next; + this_rule = tfmalloc(sizeof(struct rule)); ++ memset(this_rule, '\0', sizeof(struct rule)); + } + } + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.42-tftpboot.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.42-tftpboot.patch new file mode 100644 index 000000000..98a86b78b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.42-tftpboot.patch @@ -0,0 +1,60 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.48/tftp-xinetd.tftpboot tftp-hpa-0.48/tftp-xinetd +--- tftp-hpa-0.48/tftp-xinetd.tftpboot 2007-01-31 00:51:05.000000000 +0100 ++++ tftp-hpa-0.48/tftp-xinetd 2008-05-20 12:05:53.000000000 +0200 +@@ -10,7 +10,7 @@ service tftp + wait = yes + user = root + server = /usr/sbin/in.tftpd +- server_args = -s /tftpboot ++ server_args = -s /var/lib/tftpboot + disable = yes + per_source = 11 + cps = 100 2 +diff -up tftp-hpa-0.48/README.security.tftpboot tftp-hpa-0.48/README.security +--- tftp-hpa-0.48/README.security.tftpboot 2008-05-29 17:36:32.000000000 +0200 ++++ tftp-hpa-0.48/README.security 2008-05-29 17:37:21.000000000 +0200 +@@ -17,10 +17,10 @@ probably the following: + + 1. Create a separate "tftpd" user and group only used for tftpd; + 2. Have all your boot files in a single directory tree (usually called +- /tftpboot). +-3. Specify "-p -u tftpd -s /tftpboot" on the tftpd command line; if ++ /var/lib/tftpboot). ++3. Specify "-p -u tftpd -s /var/lib/tftpboot" on the tftpd command line; if + you want clients to be able to create files use +- "-p -c -U 002 -u tftpd -s /tftpboot" (replace 002 with whatever ++ "-p -c -U 002 -u tftpd -s /var/lib/tftpboot" (replace 002 with whatever + umask is appropriate for your setup.) + + ======================================= +@@ -40,12 +40,12 @@ directly. Thus, if your /etc/inetd.conf + line): + + tftp dgram udp wait root /usr/sbin/tcpd +-/usr/sbin/in.tftpd -s /tftpboot -r blksize ++/usr/sbin/in.tftpd -s /var/lib/tftpboot -r blksize + + ... it's better to change to ... + + tftp dgram udp wait root /usr/sbin/in.tftpd +-in.tftpd -s /tftpboot -r blksize ++in.tftpd -s /var/lib/tftpboot -r blksize + + You should make sure that you are using "wait" option in tftpd; you + also need to have tftpd spawned as root in order for chroot (-s) to +diff -up tftp-hpa-0.48/tftpd/sample.rules.tftpboot tftp-hpa-0.48/tftpd/sample.rules +--- tftp-hpa-0.48/tftpd/sample.rules.tftpboot 2008-05-29 17:38:46.000000000 +0200 ++++ tftp-hpa-0.48/tftpd/sample.rules 2008-05-29 17:38:05.000000000 +0200 +@@ -30,5 +30,5 @@ rg \\ / # Convert backslashes to slash + rg \# @ # Convert hash marks to @ signs + rg /../ /..no../ # Convert /../ to /..no../ + e ^ok/ # These are always ok +-r ^[^/] /tftpboot/\0 # Convert non-absolute files ++r ^[^/] /var/lib/tftpboot/\0 # Convert non-absolute files + a \.pvt$ # Reject requests for private files diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-chk_retcodes.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-chk_retcodes.patch new file mode 100644 index 000000000..7ae1a8722 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-chk_retcodes.patch @@ -0,0 +1,21 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.49/tftpd/tftpd.c.chk_retcodes tftp-hpa-0.49/tftpd/tftpd.c +--- tftp-hpa-0.49/tftpd/tftpd.c.chk_retcodes 2009-01-15 15:28:50.000000000 +0100 ++++ tftp-hpa-0.49/tftpd/tftpd.c 2009-01-15 15:31:36.000000000 +0100 +@@ -932,7 +932,10 @@ int main(int argc, char **argv) + exit(EX_OSERR); + } + #ifdef __CYGWIN__ +- chdir("/"); /* Cygwin chroot() bug workaround */ ++ if (chdir("/") < 0) { /* Cygwin chroot() bug workaround */ ++ syslog(LOG_ERR, "chroot: %m"); ++ exit(EX_OSERR); ++ } + #endif + } + #ifdef HAVE_SETREGID diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-cmd_arg.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-cmd_arg.patch new file mode 100644 index 000000000..6b8ceaaeb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-0.49-cmd_arg.patch @@ -0,0 +1,165 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.49/config.h.cmd_arg tftp-hpa-0.49/config.h +--- tftp-hpa-0.49/config.h.cmd_arg 2010-04-19 15:29:10.567331454 +0200 ++++ tftp-hpa-0.49/config.h 2010-04-20 07:33:03.133232772 +0200 +@@ -291,6 +291,7 @@ typedef int socklen_t; + /* Prototypes for libxtra functions */ + + void *xmalloc(size_t); ++void *xrealloc(void *, size_t); + char *xstrdup(const char *); + + #ifndef HAVE_BSD_SIGNAL +diff -up tftp-hpa-0.49/configure.in.cmd_arg tftp-hpa-0.49/configure.in +--- tftp-hpa-0.49/configure.in.cmd_arg 2008-10-21 00:08:31.000000000 +0200 ++++ tftp-hpa-0.49/configure.in 2010-04-19 11:05:12.387340698 +0200 +@@ -152,6 +152,7 @@ OBJROOT=`pwd` + + XTRA=false + PA_SEARCH_LIBS_AND_ADD(xmalloc, iberty) ++PA_SEARCH_LIBS_AND_ADD(xrealloc, iberty) + PA_SEARCH_LIBS_AND_ADD(xstrdup, iberty) + PA_SEARCH_LIBS_AND_ADD(bsd_signal, bsd, bsdsignal) + PA_SEARCH_LIBS_AND_ADD(getopt_long, getopt, getopt_long) +diff -up tftp-hpa-0.49/lib/xrealloc.c.cmd_arg tftp-hpa-0.49/lib/xrealloc.c +--- tftp-hpa-0.49/lib/xrealloc.c.cmd_arg 2010-04-19 11:05:12.387340698 +0200 ++++ tftp-hpa-0.49/lib/xrealloc.c 2010-04-19 11:05:12.387340698 +0200 +@@ -0,0 +1,20 @@ ++/* ++ * xrealloc.c ++ * ++ * Simple error-checking version of realloc() ++ * ++ */ ++ ++#include "config.h" ++ ++void *xrealloc(void *ptr, size_t size) ++{ ++ void *p = realloc(ptr, size); ++ ++ if (!p) { ++ fprintf(stderr, "Out of memory!\n"); ++ exit(128); ++ } ++ ++ return p; ++} +diff -up tftp-hpa-0.49/tftp/main.c.cmd_arg tftp-hpa-0.49/tftp/main.c +--- tftp-hpa-0.49/tftp/main.c.cmd_arg 2008-10-21 00:08:31.000000000 +0200 ++++ tftp-hpa-0.49/tftp/main.c 2010-04-19 11:05:12.389329337 +0200 +@@ -89,11 +89,14 @@ int connected; + const struct modes *mode; + #ifdef WITH_READLINE + char *line = NULL; ++char *remote_pth = NULL; + #else + char line[LBUFLEN]; ++char remote_pth[LBUFLEN]; + #endif + int margc; +-char *margv[20]; ++char **margv; ++int sizeof_margv=0; + const char *prompt = "tftp> "; + sigjmp_buf toplevel; + void intr(int); +@@ -379,6 +382,10 @@ static void getmoreargs(const char *part + free(line); + line = NULL; + } ++ if (remote_pth) { ++ free(remote_pth); ++ remote_pth = NULL; ++ } + line = xmalloc(len + elen + 1); + strcpy(line, partial); + strcpy(line + len, eline); +@@ -535,6 +542,7 @@ void put(int argc, char *argv[]) + int fd; + int n, err; + char *cp, *targ; ++ long dirlen, namelen, lastlen=0; + + if (argc < 2) { + getmoreargs("send ", "(file) "); +@@ -588,9 +596,22 @@ void put(int argc, char *argv[]) + } + /* this assumes the target is a directory */ + /* on a remote unix system. hmmmm. */ +- cp = strchr(targ, '\0'); +- *cp++ = '/'; ++ dirlen = strlen(targ)+1; ++#ifdef WITH_READLINE ++ remote_pth = xmalloc(dirlen+1); ++#endif ++ strcpy(remote_pth, targ); ++ remote_pth[dirlen-1] = '/'; ++ cp = remote_pth + dirlen; + for (n = 1; n < argc - 1; n++) { ++#ifdef WITH_READLINE ++ namelen = strlen(tail(argv[n])) + 1; ++ if (namelen > lastlen) { ++ remote_pth = xrealloc(remote_pth, dirlen + namelen + 1); ++ cp = remote_pth + dirlen; ++ lastlen = namelen; ++ } ++#endif + strcpy(cp, tail(argv[n])); + fd = open(argv[n], O_RDONLY | mode->m_openflags); + if (fd < 0) { +@@ -600,9 +621,9 @@ void put(int argc, char *argv[]) + } + if (verbose) + printf("putting %s to %s:%s [%s]\n", +- argv[n], hostname, targ, mode->m_mode); ++ argv[n], hostname, remote_pth, mode->m_mode); + sa_set_port(&peeraddr, port); +- tftp_sendfile(fd, targ, mode->m_mode); ++ tftp_sendfile(fd, remote_pth, mode->m_mode); + } + } + +@@ -801,6 +822,10 @@ static void command(void) + free(line); + line = NULL; + } ++ if (remote_pth) { ++ free(remote_pth); ++ remote_pth = NULL; ++ } + line = readline(prompt); + if (!line) + exit(0); /* EOF */ +@@ -872,7 +897,13 @@ struct cmd *getcmd(char *name) + static void makeargv(void) + { + char *cp; +- char **argp = margv; ++ char **argp; ++ ++ if (!sizeof_margv) { ++ sizeof_margv = 20; ++ margv = xmalloc(sizeof_margv * sizeof(char *)); ++ } ++ argp = margv; + + margc = 0; + for (cp = line; *cp;) { +@@ -882,6 +913,11 @@ static void makeargv(void) + break; + *argp++ = cp; + margc += 1; ++ if (margc == sizeof_margv) { ++ sizeof_margv += 20; ++ margv = xrealloc(margv, sizeof_margv * sizeof(char *)); ++ argp = margv + margc; ++ } + while (*cp != '\0' && !isspace(*cp)) + cp++; + if (*cp == '\0') diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.39-tzfix.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.39-tzfix.patch new file mode 100644 index 000000000..85110eb28 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.39-tzfix.patch @@ -0,0 +1,24 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.49/tftpd/tftpd.c.tzfix tftp-hpa-0.49/tftpd/tftpd.c +--- tftp-hpa-0.49/tftpd/tftpd.c.tzfix 2008-10-20 18:08:31.000000000 -0400 ++++ tftp-hpa-0.49/tftpd/tftpd.c 2008-11-25 11:45:27.000000000 -0500 +@@ -350,6 +350,14 @@ int main(int argc, char **argv) + const char *pidfile = NULL; + u_short tp_opcode; + ++ time_t my_time = 0; ++ struct tm* p_tm; ++ char envtz[10]; ++ my_time = time(NULL); ++ p_tm = localtime(&my_time); ++ snprintf(envtz, sizeof(envtz) - 1, "UTC%+d", (p_tm->tm_gmtoff * -1)/3600); ++ setenv("TZ", envtz, 0); ++ + /* basename() is way too much of a pain from a portability standpoint */ + + p = strrchr(argv[0], '/'); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-fortify-strcpy-crash.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-fortify-strcpy-crash.patch new file mode 100644 index 000000000..08d2b5b7d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-fortify-strcpy-crash.patch @@ -0,0 +1,32 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -urN tftp-hpa-0.49.orig/tftp/tftp.c tftp-hpa-0.49/tftp/tftp.c +--- tftp-hpa-0.49.orig/tftp/tftp.c 2008-10-20 18:08:31.000000000 -0400 ++++ tftp-hpa-0.49/tftp/tftp.c 2009-08-05 09:47:18.072585848 -0400 +@@ -279,15 +279,16 @@ + struct tftphdr *tp, const char *mode) + { + char *cp; ++ size_t len; + + tp->th_opcode = htons((u_short) request); + cp = (char *)&(tp->th_stuff); +- strcpy(cp, name); +- cp += strlen(name); +- *cp++ = '\0'; +- strcpy(cp, mode); +- cp += strlen(mode); +- *cp++ = '\0'; ++ len = strlen(name) + 1; ++ memcpy(cp, name, len); ++ cp += len; ++ len = strlen(mode) + 1; ++ memcpy(cp, mode, len); ++ cp += len; + return (cp - (char *)tp); + } + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-stats.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-stats.patch new file mode 100644 index 000000000..720cd69de --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-0.49-stats.patch @@ -0,0 +1,20 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-0.49/tftp/tftp.c.stats tftp-hpa-0.49/tftp/tftp.c +--- tftp-hpa-0.49/tftp/tftp.c.stats 2011-01-03 15:38:34.217918067 +0100 ++++ tftp-hpa-0.49/tftp/tftp.c 2011-01-03 15:38:37.498917014 +0100 +@@ -400,8 +400,8 @@ static void printstats(const char *direc + { + double delta; + +- delta = (tstop.tv_sec + (tstop.tv_usec / 100000.0)) - +- (tstart.tv_sec + (tstart.tv_usec / 100000.0)); ++ delta = (tstop.tv_sec + (tstop.tv_usec / 1000000.0)) - ++ (tstart.tv_sec + (tstart.tv_usec / 1000000.0)); + if (verbose) { + printf("%s %lu bytes in %.1f seconds", direction, amount, delta); + printf(" [%.0f bit/s]", (amount * 8.) / delta); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-5.2-pktinfo.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-5.2-pktinfo.patch new file mode 100644 index 000000000..216349d26 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-5.2-pktinfo.patch @@ -0,0 +1,29 @@ +Patch originally from Fedora + +http://pkgs.fedoraproject.org/cgit/tftp.git/ + +Upstream-Status: Pending + +diff -up tftp-hpa-5.2/tftpd/recvfrom.c.test tftp-hpa-5.2/tftpd/recvfrom.c +--- tftp-hpa-5.2/tftpd/recvfrom.c.test 2011-12-11 23:13:52.000000000 +0100 ++++ tftp-hpa-5.2/tftpd/recvfrom.c 2012-01-04 10:05:17.852042256 +0100 +@@ -149,16 +149,16 @@ myrecvfrom(int s, void *buf, int len, un + + /* Try to enable getting the return address */ + #ifdef IP_RECVDSTADDR +- if (from->sa_family == AF_INET) ++ if (from->sa_family == AF_INET || !from->sa_family) + setsockopt(s, IPPROTO_IP, IP_RECVDSTADDR, &on, sizeof(on)); + #endif + #ifdef IP_PKTINFO +- if (from->sa_family == AF_INET) ++ if (from->sa_family == AF_INET || !from->sa_family) + setsockopt(s, IPPROTO_IP, IP_PKTINFO, &on, sizeof(on)); + #endif + #ifdef HAVE_IPV6 + #ifdef IPV6_RECVPKTINFO +- if (from->sa_family == AF_INET6) ++ if (from->sa_family == AF_INET6 || !from->sa_family) + setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on, sizeof(on)); + #endif + #endif diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch new file mode 100644 index 000000000..3e220ec38 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch @@ -0,0 +1,38 @@ +From 6ed1eb8829dee351b54e183bc42c007cb306aaa5 Mon Sep 17 00:00:00 2001 +From: Zhang Xiao +Date: Wed, 11 Jun 2014 14:01:16 +0800 +Subject: [PATCH] tftp-hpa: bug fix on separated CR and LF + +In ascii mode, if the CR and LF was separated into different transfer +blocks, LF will be just dropped instead of replacing the previous CR. +Add a checking on the first character to fix it. + +Upstream-Status: pending + +Signed-off-by: Zhang Xiao +--- + common/tftpsubs.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/common/tftpsubs.c b/common/tftpsubs.c +index b4d4ffe..b4ea3f2 100644 +--- a/common/tftpsubs.c ++++ b/common/tftpsubs.c +@@ -207,6 +207,14 @@ int write_behind(FILE * file, int convert) + p = buf; + ct = count; + count = 0; ++ ++ /* Check the first character together with prevchar */ ++ c = *p; ++ if ((prevchar == '\r') && (c == '\n')) { ++ lseek(fileno(file), -1, SEEK_CUR); ++ count++; ++ } ++ + while (ct--) { /* loop over the buffer */ + c = *p++; /* pick up a character */ + if (prevchar == '\r') { /* if prev char was cr */ +-- +1.8.5.2.233.g932f7e4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-xinetd b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-xinetd new file mode 100644 index 000000000..fe7016396 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/files/tftp-xinetd @@ -0,0 +1,18 @@ +# default: off +# description: The tftp server serves files using the trivial file transfer \ +# protocol. The tftp protocol is often used to boot diskless \ +# workstations, download configuration files to network-aware printers, \ +# and to start the installation process for some operating systems. +service tftp +{ + socket_type = dgram + protocol = udp + wait = yes + user = root + server = /usr/sbin/in.tftpd-hpa + server_args = -s /var/lib/tftpboot + disable = yes + per_source = 11 + cps = 100 2 + flags = IPv6 +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb new file mode 100644 index 000000000..98842e4e9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb @@ -0,0 +1,76 @@ +SUMMARY = "Client for the Trivial File Transfer Protocol" +DESCRIPTION = \ +"The Trivial File Transfer Protocol (TFTP) is normally used only for \ +booting diskless workstations. The tftp package provides the user \ +interface for TFTP, which allows users to transfer files to and from a \ +remote machine. This program and TFTP provide very little security, \ +and should not be enabled unless it is expressly needed." +DEPENDS = "tcp-wrappers readline" +SECTION = "net" +LICENSE = "BSD-4-Clause" +LIC_FILES_CHKSUM = "file://MCONFIG.in;beginline=1;endline=9;md5=c28ba5adb43041fae4629db05c83cbdd \ + file://tftp/tftp.c;beginline=1;endline=32;md5=988c1cba99d70858a26cd877209857f4" + + +SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.tar.bz2 \ + file://tftp-0.40-remap.patch \ + file://tftp-0.42-tftpboot.patch \ + file://tftp-0.49-chk_retcodes.patch \ + file://tftp-0.49-cmd_arg.patch \ + file://tftp-hpa-0.39-tzfix.patch \ + file://tftp-hpa-0.49-fortify-strcpy-crash.patch \ + file://tftp-hpa-0.49-stats.patch \ + file://tftp-hpa-5.2-pktinfo.patch \ + file://default \ + file://init \ + file://add-error-check-for-disk-filled-up.patch \ + file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \ + file://fix-writing-emtpy-file.patch \ +" + +SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21" +SRC_URI[sha256sum] = "0a9f88d4c1c02687b4853b02ab5dd8779d4de4ffdb9b2e5c9332841304d1a269" + +inherit autotools-brokensep update-rc.d update-alternatives + +export AR = "${HOST_PREFIX}ar cq" + +EXTRA_OECONF += "--disable-option-checking" + +# configure.in has errors +do_configure() { + oe_runconf +} + +do_install() { + oe_runmake install INSTALLROOT=${D} + mv ${D}${bindir}/tftp ${D}${bindir}/tftp-hpa + mv ${D}${sbindir}/in.tftpd ${D}${sbindir}/in.tftpd-hpa + + install -m 755 -d ${D}${localstatedir}/lib/tftpboot/ + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/tftpd-hpa + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/tftpd-hpa + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/tftpd-hpa + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/tftpd-hpa + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/tftpd-hpa + + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/tftpd-hpa +} + +FILES_${PN} = "${bindir}" + +PACKAGES += "tftp-hpa-server" +SUMMARY_tftp-hpa-server = "Server for the Trivial File Transfer Protocol" +FILES_tftp-hpa-server = "${sbindir} ${sysconfdir} ${localstatedir}" +CONFFILES_tftp-hpa-server = "${sysconfdir}/default/tftpd-hpa" + +INITSCRIPT_PACKAGES = "tftp-hpa-server" +INITSCRIPT_NAME = "tftpd-hpa" +INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 20 1 ." + +ALTERNATIVE_${PN} = "tftp" +ALTERNATIVE_TARGET[tftp] = "${bindir}/tftp-hpa" +ALTERNATIVE_PRIORITY = "50" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch new file mode 100644 index 000000000..d2eb15614 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch @@ -0,0 +1,16 @@ +Remove CC and CFLAGS values, we set these ourselves + +Upstream-Status: Inappropriate [config] + +diff -urN vblade-19.old//makefile vblade-19//makefile +--- vblade-19.old//makefile 2008-10-08 22:07:40.000000000 +0100 ++++ vblade-19//makefile 2008-11-18 19:07:51.700365029 +0000 +@@ -9,8 +9,6 @@ + mandir = ${sharedir}/man + + O=aoe.o bpf.o ${PLATFORM}.o ata.o +-CFLAGS += -Wall -g -O2 +-CC = gcc + + vblade: $O + ${CC} -o vblade $O diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb new file mode 100644 index 000000000..a357e4037 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_20.bb @@ -0,0 +1,20 @@ +SUMMARY = "Virtual EtherDrive blade AoE target" +SECTION = "admin" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BPN}-${PV}.tgz \ + file://cross.patch" + +SRC_URI[md5sum] = "3c80e4a6bc7d66ae0c235b88cb44bd59" +SRC_URI[sha256sum] = "c8fe2fc4f2fba8e07e5cfdf17335982584eef2cd5c78bf8b1db93f2b56e7121d" + +inherit autotools-brokensep + +do_install() { + install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade + install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed + install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8 +} + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/change-secure_chroot_dir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/change-secure_chroot_dir.patch new file mode 100644 index 000000000..5f2860e84 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/change-secure_chroot_dir.patch @@ -0,0 +1,55 @@ +vsftpd: change default value of secure_chroot_dir + +Upstream-Status: Pending + +Change secure_chroot_dir pointing to a volatile directory. + +Signed-off-by: Ming Liu +--- + INSTALL | 6 +++--- + tunables.c | 2 +- + vsftpd.conf.5 | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff -urpN a/INSTALL b/INSTALL +--- a/INSTALL 2013-09-13 10:23:57.504972397 +0800 ++++ b/INSTALL 2013-09-13 10:25:25.664971779 +0800 +@@ -27,11 +27,11 @@ user in case it does not already exist. + [root@localhost root]# useradd nobody + useradd: user nobody exists + +-2b) vsftpd needs the (empty) directory /usr/share/empty in the default ++2b) vsftpd needs the (empty) directory /var/run/vsftpd/empty in the default + configuration. Add this directory in case it does not already exist. e.g.: + +-[root@localhost root]# mkdir /usr/share/empty/ +-mkdir: cannot create directory `/usr/share/empty': File exists ++[root@localhost root]# mkdir /var/run/vsftpd/empty/ ++mkdir: cannot create directory `/var/run/vsftpd/empty': File exists + + 2c) For anonymous FTP, you will need the user "ftp" to exist, and have a + valid home directory (which is NOT owned or writable by the user "ftp"). +diff -urpN a/tunables.c b/tunables.c +--- a/tunables.c 2013-09-13 10:26:29.554972817 +0800 ++++ b/tunables.c 2013-09-13 10:27:18.104972210 +0800 +@@ -254,7 +254,7 @@ tunables_load_defaults() + /* -rw------- */ + tunable_chown_upload_mode = 0600; + +- install_str_setting("/usr/share/empty", &tunable_secure_chroot_dir); ++ install_str_setting("/var/run/vsftpd/empty", &tunable_secure_chroot_dir); + install_str_setting("ftp", &tunable_ftp_username); + install_str_setting("root", &tunable_chown_username); + install_str_setting("/var/log/xferlog", &tunable_xferlog_file); +diff -urpN a/vsftpd.conf.5 b/vsftpd.conf.5 +--- a/vsftpd.conf.5 2013-09-13 10:09:33.774972462 +0800 ++++ b/vsftpd.conf.5 2013-09-13 10:10:41.914971989 +0800 +@@ -969,7 +969,7 @@ This option should be the name of a dire + directory should not be writable by the ftp user. This directory is used + as a secure chroot() jail at times vsftpd does not require filesystem access. + +-Default: /usr/share/empty ++Default: /var/run/vsftpd/empty + .TP + .B ssl_ciphers + This option can be used to select which SSL ciphers vsftpd will allow for diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/init new file mode 100755 index 000000000..72adf0d9a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/init @@ -0,0 +1,50 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: vsftpd +# Default-Start: 2345 +# Default-Stop: 016 +# Short-Description: Very Secure Ftp Daemon +# Description: vsftpd is a Very Secure FTP daemon. It was written completely from +# scratch +### END INIT INFO + +DAEMON=/usr/sbin/vsftpd +NAME=vsftpd +DESC="FTP Server" +ARGS="" +FTPDIR=/var/lib/ftp + +test -f $DAEMON || exit 0 + +set -e + +case "$1" in + start) + echo -n "* starting $DESC: $NAME... " + if ! test -d $FTPDIR; then + mkdir -p $FTPDIR/in + chown ftp $FTPDIR -R + chmod a-w $FTPDIR + chmod u+w $FTPDIR/in + fi + start-stop-daemon -S -b -x $DAEMON -- $ARGS + echo "done." + ;; + stop) + echo -n "* stopping $DESC: $NAME... " + start-stop-daemon -K -x $DAEMON + echo "done." + ;; + restart) + echo "* restarting $DESC: $NAME... " + $0 stop + $0 start + echo "done." + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/volatiles.99_vsftpd b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/volatiles.99_vsftpd new file mode 100644 index 000000000..8a602ba37 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/volatiles.99_vsftpd @@ -0,0 +1 @@ +d root root 0755 /var/run/vsftpd/empty none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.conf b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.conf new file mode 100644 index 000000000..bb1929480 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.conf @@ -0,0 +1,139 @@ +# Example config file /etc/vsftpd.conf +# +# The default compiled in settings are fairly paranoid. This sample file +# loosens things up a bit, to make the ftp daemon more usable. +# Please see vsftpd.conf.5 for all compiled in defaults. +# +# READ THIS: This example file is NOT an exhaustive list of vsftpd options. +# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's +# capabilities. + +# run standalone +listen=YES + +# Allow anonymous FTP? (Beware - allowed by default if you comment this out). +anonymous_enable=NO +# +# Uncomment this to allow local users to log in. +local_enable=YES +# +# Uncomment this to enable any form of FTP write command. +write_enable=YES +# +# Default umask for local users is 077. You may wish to change this to 022, +# if your users expect that (022 is used by most other ftpd's) +local_umask=022 +# +# Uncomment this to allow the anonymous FTP user to upload files. This only +# has an effect if the above global write enable is activated. Also, you will +# obviously need to create a directory writable by the FTP user. +#anon_upload_enable=YES +# +# Uncomment this if you want the anonymous FTP user to be able to create +# new directories. +#anon_mkdir_write_enable=YES +# +# Activate directory messages - messages given to remote users when they +# go into a certain directory. +dirmessage_enable=YES +# +# Activate logging of uploads/downloads. +xferlog_enable=YES +# +# Make sure PORT transfer connections originate from port 20 (ftp-data). +connect_from_port_20=YES +# +# If you want, you can arrange for uploaded anonymous files to be owned by +# a different user. Note! Using "root" for uploaded files is not +# recommended! +#chown_uploads=YES +#chown_username=whoever +# +# You may override where the log file goes if you like. The default is shown +# below. +#xferlog_file=/var/log/vsftpd.log +# +# If you want, you can have your log file in standard ftpd xferlog format +xferlog_std_format=YES +# +# You may change the default value for timing out an idle session. +#idle_session_timeout=600 +# +# You may change the default value for timing out a data connection. +#data_connection_timeout=120 +# +# It is recommended that you define on your system a unique user which the +# ftp server can use as a totally isolated and unprivileged user. +#nopriv_user=ftp +# +# Enable this and the server will recognise asynchronous ABOR requests. Not +# recommended for security (the code is non-trivial). Not enabling it, +# however, may confuse older FTP clients. +#async_abor_enable=YES +# +# By default the server will pretend to allow ASCII mode but in fact ignore +# the request. Turn on the below options to have the server actually do ASCII +# mangling on files when in ASCII mode. +# Beware that turning on ascii_download_enable enables malicious remote parties +# to consume your I/O resources, by issuing the command "SIZE /big/file" in +# ASCII mode. +# These ASCII options are split into upload and download because you may wish +# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking), +# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be +# on the client anyway.. +#ascii_upload_enable=YES +#ascii_download_enable=YES +# +# You may fully customise the login banner string: +#ftpd_banner=Welcome to blah FTP service. +# +# You may specify a file of disallowed anonymous e-mail addresses. Apparently +# useful for combatting certain DoS attacks. +#deny_email_enable=YES +# (default follows) +#banned_email_file=/etc/vsftpd.banned_emails +# +# You may specify an explicit list of local users to chroot() to their home +# directory. If chroot_local_user is YES, then this list becomes a list of +# users to NOT chroot(). +#chroot_list_enable=YES +# (default follows) +#chroot_list_file=/etc/vsftpd.chroot_list +# +# You may activate the "-R" option to the builtin ls. This is disabled by +# default to avoid remote users being able to cause excessive I/O on large +# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume +# the presence of the "-R" option, so there is a strong case for enabling it. +#ls_recurse_enable=YES +# +# This string is the name of the PAM service vsftpd will use. +pam_service_name=vsftpd +# +# This option is examined if userlist_enable is activated. If you set this +# setting to NO, then users will be denied login unless they are explicitly +# listed in the file specified by userlist_file. When login is denied, the +# denial is issued before the user is asked for a password. +userlist_deny=YES +# +# If enabled, vsftpd will load a list of usernames, from the filename given by +# userlist_file. If a user tries to log in using a name in this file, they +# will be denied before they are asked for a password. This may be useful in +# preventing cleartext passwords being transmitted. See also userlist_deny. +userlist_enable=YES +# +# If enabled, vsftpd will display directory listings with the time in your +# local time zone. The default is to display GMT. The times returned by the +# MDTM FTP command are also affected by this option. +use_localtime=YES +# +# If set to YES, local users will be (by default) placed in a chroot() jail in +# their home directory after login. Warning: This option has security +# implications, especially if the users have upload permission, or shell access. +# Only enable if you know what you are doing. Note that these security implications +# are not vsftpd specific. They apply to all FTP daemons which offer to put +# local users in chroot() jails. +chroot_local_user=YES +# +allow_writeable_chroot=YES +# +tcp_wrappers=YES diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.ftpusers b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.ftpusers new file mode 100644 index 000000000..096142f5d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.ftpusers @@ -0,0 +1,15 @@ +# Users that are not allowed to login via ftp +root +bin +daemon +adm +lp +sync +shutdown +halt +mail +news +uucp +operator +games +nobody diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.service new file mode 100644 index 000000000..e27102026 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Vsftpd ftp daemon +After=network.target + +[Service] +ExecStart=@SBINDIR@/vsftpd + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.user_list b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.user_list new file mode 100644 index 000000000..d283e3d26 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/files/vsftpd.user_list @@ -0,0 +1,20 @@ +# vsftpd userlist +# If userlist_deny=NO, only allow users in this file +# If userlist_deny=YES (default), never allow users in this file, and +# do not even prompt for a password. +# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers +# for users that are denied. +root +bin +daemon +adm +lp +sync +shutdown +halt +mail +news +uucp +operator +games +nobody diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch new file mode 100644 index 000000000..1980d09fd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch @@ -0,0 +1,44 @@ +Use DESTDIR within install to allow installing under a prefix + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton + +diff --git a/Makefile b/Makefile +--- a/Makefile ++++ b/Makefile +@@ -24,21 +24,21 @@ + $(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS) + + install: +- if [ -x /usr/local/sbin ]; then \ +- $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \ ++ if [ -x ${DESTDIR}/usr/local/sbin ]; then \ ++ $(INSTALL) -m 755 vsftpd ${DESTDIR}/usr/local/sbin/vsftpd; \ + else \ +- $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi +- if [ -x /usr/local/man ]; then \ +- $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \ +- $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \ +- elif [ -x /usr/share/man ]; then \ +- $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \ +- $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \ ++ $(INSTALL) -m 755 vsftpd ${DESTDIR}/usr/sbin/vsftpd; fi ++ if [ -x ${DESTDIR}/usr/local/man ]; then \ ++ $(INSTALL) -m 644 vsftpd.8 ${DESTDIR}/usr/local/man/man8/vsftpd.8; \ ++ $(INSTALL) -m 644 vsftpd.conf.5 ${DESTDIR}/usr/local/man/man5/vsftpd.conf.5; \ ++ elif [ -x ${DESTDIR}/usr/share/man ]; then \ ++ $(INSTALL) -m 644 vsftpd.8 ${DESTDIR}/usr/share/man/man8/vsftpd.8; \ ++ $(INSTALL) -m 644 vsftpd.conf.5 ${DESTDIR}/usr/share/man/man5/vsftpd.conf.5; \ + else \ +- $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \ +- $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi +- if [ -x /etc/xinetd.d ]; then \ +- $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi ++ $(INSTALL) -m 644 vsftpd.8 ${DESTDIR}/usr/man/man8/vsftpd.8; \ ++ $(INSTALL) -m 644 vsftpd.conf.5 ${DESTDIR}/usr/man/man5/vsftpd.conf.5; fi ++ if [ -x ${DESTDIR}/etc/xinetd.d ]; then \ ++ $(INSTALL) -m 644 xinetd.d/vsftpd ${DESTDIR}/etc/xinetd.d/vsftpd; fi + + clean: + rm -f *.o *.swp vsftpd diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch new file mode 100644 index 000000000..9a10f722f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch @@ -0,0 +1,21 @@ +Hardcode LIBS instead of using a script to determine available libs + +We want to avoid this dynamic detection so we have a deterministic +build. + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Paul Eggleton + +diff --git a/Makefile b/Makefile +--- a/Makefile ++++ b/Makefile +@@ -5,7 +5,7 @@ + #CFLAGS = -g + CFLAGS = -O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion + +-LIBS = `./vsf_findlibs.sh` ++LIBS = -lssl -lcrypto -lnsl -lresolv + LINK = -Wl,-s + + OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch new file mode 100644 index 000000000..fd3160037 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch @@ -0,0 +1,17 @@ +Disable stripping at link time + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Paul Eggleton + +diff --git a/Makefile b/Makefile +--- a/Makefile ++++ b/Makefile +@@ -9,7 +9,6 @@ CFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \ + #-pedantic -Wconversion + + LIBS = -lssl -lcrypto -lnsl -lresolv +-LINK = -Wl,-s + LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now + + OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch new file mode 100644 index 000000000..fdcf3a02b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch @@ -0,0 +1,17 @@ +Disable PAM + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Roy.Li +diff -ur vsftpd-2.0.1_org/builddefs.h vsftpd-2.0.1_patch/builddefs.h +--- vsftpd-2.0.1_org/builddefs.h 2004-07-02 16:36:59.000000000 +0200 ++++ vsftpd-2.0.1_patch/builddefs.h 2004-07-21 09:34:49.044900488 +0200 +@@ -2,7 +2,7 @@ + #define VSF_BUILDDEFS_H + + #define VSF_BUILD_TCPWRAPPERS +-#define VSF_BUILD_PAM ++#undef VSF_BUILD_PAM + #undef VSF_BUILD_SSL + + #endif /* VSF_BUILDDEFS_H */ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch new file mode 100644 index 000000000..cf0d68e27 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch @@ -0,0 +1,16 @@ +Disable PAM + +Upstream-Status: Inappropriate [config] + +diff -ur vsftpd-2.0.1_org/builddefs.h vsftpd-2.0.1_patch/builddefs.h +--- vsftpd-2.0.1_org/builddefs.h 2004-07-02 16:36:59.000000000 +0200 ++++ vsftpd-2.0.1_patch/builddefs.h 2004-07-21 09:34:49.044900488 +0200 +@@ -2,7 +2,7 @@ + #define VSF_BUILDDEFS_H + + #undef VSF_BUILD_TCPWRAPPERS +-#define VSF_BUILD_PAM ++#undef VSF_BUILD_PAM + #undef VSF_BUILD_SSL + + #endif /* VSF_BUILDDEFS_H */ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch new file mode 100644 index 000000000..32f7e8218 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch @@ -0,0 +1,77 @@ +Fix the CVE-2015-1419 + +Upstream-Status: Pending + +Try to fix deny_file parsing to do more what is expected. Taken +from fedora. CVE-2015-1419 + +ftp://195.220.108.108/linux/fedora/linux/development/rawhide/source/SRPMS/v/vsftpd-3.0.2-13.fc22.src.rpm + +Signed-off-by: Roy Li + +diff -up vsftpd-2.1.0/ls.c.filter vsftpd-2.1.0/ls.c +--- vsftpd-2.1.0/ls.c.filter 2008-02-02 02:30:41.000000000 +0100 ++++ vsftpd-2.1.0/ls.c 2009-01-08 19:31:15.000000000 +0100 +@@ -239,9 +239,31 @@ vsf_filename_passes_filter(const struct + int ret = 0; + char last_token = 0; + int must_match_at_current_pos = 1; ++ ++ + str_copy(&filter_remain_str, p_filter_str); +- str_copy(&name_remain_str, p_filename_str); +- ++ ++ if (!str_isempty (&filter_remain_str) && !str_isempty(p_filename_str)) { ++ if (str_get_char_at(p_filter_str, 0) == '/') { ++ if (str_get_char_at(p_filename_str, 0) != '/') { ++ str_getcwd (&name_remain_str); ++ ++ if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */ ++ str_append_char (&name_remain_str, '/'); ++ ++ str_append_str (&name_remain_str, p_filename_str); ++ } ++ else ++ str_copy (&name_remain_str, p_filename_str); ++ } else { ++ if (str_get_char_at(p_filter_str, 0) != '{') ++ str_basename (&name_remain_str, p_filename_str); ++ else ++ str_copy (&name_remain_str, p_filename_str); ++ } ++ } else ++ str_copy(&name_remain_str, p_filename_str); ++ + while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX) + { + static struct mystr s_match_needed_str; +diff -up vsftpd-2.1.0/str.c.filter vsftpd-2.1.0/str.c +--- vsftpd-2.1.0/str.c.filter 2008-12-17 06:54:16.000000000 +0100 ++++ vsftpd-2.1.0/str.c 2009-01-08 19:31:15.000000000 +0100 +@@ -680,3 +680,14 @@ str_replace_unprintable(struct mystr* p_ + } + } + ++void ++str_basename (struct mystr* d_str, const struct mystr* path) ++{ ++ static struct mystr tmp; ++ ++ str_copy (&tmp, path); ++ str_split_char_reverse(&tmp, d_str, '/'); ++ ++ if (str_isempty(d_str)) ++ str_copy (d_str, path); ++} +diff -up vsftpd-2.1.0/str.h.filter vsftpd-2.1.0/str.h +--- vsftpd-2.1.0/str.h.filter 2008-12-17 06:53:23.000000000 +0100 ++++ vsftpd-2.1.0/str.h 2009-01-08 19:32:14.000000000 +0100 +@@ -100,6 +100,7 @@ void str_replace_unprintable(struct myst + int str_atoi(const struct mystr* p_str); + filesize_t str_a_to_filesize_t(const struct mystr* p_str); + unsigned int str_octal_to_uint(const struct mystr* p_str); ++void str_basename (struct mystr* d_str, const struct mystr* path); + + /* PURPOSE: Extract a line of text (delimited by \n or EOF) from a string + * buffer, starting at character position 'p_pos'. The extracted line will diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch new file mode 100644 index 000000000..69745b3a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch @@ -0,0 +1,25 @@ +Enable tcp_wrapper. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Roy.Li +--- + builddefs.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/builddefs.h b/builddefs.h +index e908352..0106d1a 100644 +--- a/builddefs.h ++++ b/builddefs.h +@@ -1,7 +1,7 @@ + #ifndef VSF_BUILDDEFS_H + #define VSF_BUILDDEFS_H + +-#undef VSF_BUILD_TCPWRAPPERS ++#define VSF_BUILD_TCPWRAPPERS + #define VSF_BUILD_PAM + #undef VSF_BUILD_SSL + +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb new file mode 100644 index 000000000..4ee881ddd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb @@ -0,0 +1,109 @@ +SUMMARY = "Very Secure FTP server" +HOMEPAGE = "https://security.appspot.com/vsftpd.html" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271" + +DEPENDS = "libcap openssl" + +SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ + file://makefile-destdir.patch \ + file://makefile-libs.patch \ + file://makefile-strip.patch \ + file://init \ + file://vsftpd.conf \ + file://vsftpd.user_list \ + file://vsftpd.ftpusers \ + file://change-secure_chroot_dir.patch \ + file://volatiles.99_vsftpd \ + file://vsftpd.service \ + file://vsftpd-2.1.0-filter.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ + file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ + file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb" +SRC_URI[md5sum] = "da119d084bd3f98664636ea05b5bb398" +SRC_URI[sha256sum] = "9d4d2bf6e6e2884852ba4e69e157a2cecd68c5a7635d66a3a8cf8d898c955ef7" + + +PACKAGECONFIG ??= "tcp-wrappers" +PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers" +SRC_URI +="${@base_contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)}" + +DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}" +PAMLIB = "${@base_contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}" +NOPAM_SRC ="${@base_contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}" +SRC_URI += "${@base_contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)}" + +inherit update-rc.d useradd systemd + +CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf" +LDFLAGS_append =" -lcrypt -lcap" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_configure() { + # Fix hardcoded /usr, /etc, /var mess. + cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \ + |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new + mv tunables.c.new tunables.c +} + +do_compile() { + oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} -lwrap" +} + +do_install() { + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${mandir}/man5 + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${sysconfdir} + install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd + install -d ${D}/${sysconfdir}/default/volatiles + install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd + + install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/ + install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/ + if ! test -z "${PAMLIB}" ; then + install -d ${D}${sysconfdir}/pam.d/ + cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd + sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd + sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd + fi + if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/run/vsftpd/empty 0755 root root -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + + # Install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service +} + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME_${PN} = "vsftpd" +INITSCRIPT_PARAMS_${PN} = "defaults 80" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \ + --shell /bin/false ftp " +GROUPADD_PARAM_${PN} = "-r ftp" + +SYSTEMD_SERVICE_${PN} = "vsftpd.service" + +pkg_postinst_${PN}() { + if [ -z "$D" ]; then + if type systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch new file mode 100644 index 000000000..4444234b2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch @@ -0,0 +1,28 @@ +The element skc_v6_daddr (in struct sock_common) is defined in +kernel source only when CONFIG_IPV6 is enabled. Hence, access +sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6 +is defined; to fix below error in world build: + +-- snip -- +/home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr' +-- CUT -- + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-12-29 21:57:50.547932217 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-12-29 22:47:25.254657627 -0800 +@@ -46,10 +46,12 @@ void conn_info_show(struct seq_file *seq + snprintf(buf, sizeof(buf), + "%pI4", &inet_sk(sk)->inet_daddr); + break; ++#if defined(CONFIG_IPV6) + case AF_INET6: + snprintf(buf, sizeof(buf), "[%pI6]", + &(sk)->sk_v6_daddr); + break; ++#endif /* defined(CONFIG_IPV6) */ + default: + break; + } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch new file mode 100644 index 000000000..0e8b792af --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch @@ -0,0 +1,75 @@ +1. test_bit was used to return true boolean value, if + BIO_UPTODATE bit of bio->bi_flags is set. But the same + job can be done by checking bio->bi_error, implemented in + linux kernel 4.3 and above. If bio->bi_error is set, then + it denotes error. + +Ref: https://github.com/torvalds/linux/commit/4246a0b63bd8f56a1469b12eafeb875b1041a451 + +It solves below build error: +-- snip -- +iscsitarget-1.4.20.3+svn502/kernel/block-io.c:40:19: error: 'BIO_UPTODATE' undeclared (first use in this function) + error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; +-- CUT -- + +2. bio can always be filled to a maximum value of BIO_MAX_PAGES, + so no need to check for min value for linux kernel 4.3 and above. + +Ref: https://github.com/torvalds/linux/commit/b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c + +It solves below build error: +-- snip -- +iscsitarget-1.4.20.3+svn502/kernel/block-io.c:80:15: error: implicit declaration of function 'bio_get_nr_vecs' [-Werror=implicit-function-declaration] + max_pages = bio_get_nr_vecs(bio_data->bdev); +-- CUT -- + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2016-04-01 09:07:12.891810059 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2016-04-01 09:15:59.076469313 +0530 +@@ -33,7 +33,11 @@ static void blockio_bio_endio(struct bio + { + struct tio_work *tio_work = bio->bi_private; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ error = bio->bi_error ? -EIO : error; ++#else + error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + + if (error) + atomic_set(&tio_work->error, error); +@@ -61,6 +65,10 @@ blockio_make_request(struct iet_volume * + u32 size = tio->size; + u32 tio_index = 0; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ int err = 0; ++ loff_t ppos = tio->offset; ++#else + int max_pages = 1; + int err = 0; + +@@ -69,6 +77,7 @@ blockio_make_request(struct iet_volume * + /* Calculate max_pages for bio_alloc (memory saver) */ + if (bdev_q) + max_pages = bio_get_nr_vecs(bio_data->bdev); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + + tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL); + if (!tio_work) +@@ -80,7 +89,11 @@ blockio_make_request(struct iet_volume * + + /* Main processing loop, allocate and fill all bios */ + while (size && tio_index < tio->pg_cnt) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ bio = bio_alloc(GFP_KERNEL, BIO_MAX_PAGES); ++#else + bio = bio_alloc(GFP_KERNEL, min(max_pages, BIO_MAX_PAGES)); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + if (!bio) { + err = -ENOMEM; + goto out; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch new file mode 100644 index 000000000..6878ca2d0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch @@ -0,0 +1,198 @@ +Fix build errors with linux kernel v3.19 and above + +Below errors came up while building iscsitarget for +qemux86-64 (and others) because, +1. 'struct user_msghdr' is being used for userland-side msghdr instead +of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19 +and above. + +error snippet: +-- snip -- +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c: In function 'cmnd_skip_pdu': +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c:492:16: error: 'struct msghdr' has no member named 'msg_iov' +| conn->read_msg.msg_iov = conn->read_iov; +-- CUT -- + +Reference: +https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3 + +2. 'SERVICE_ACTION_IN' has been renamed to SERVICE_ACTION_IN_16 in linux v3.19 +and above. + +error snippet: +-- snip -- +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c: In function 'scsi_cmnd_start': +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c:989:7: error: 'SERVICE_ACTION_IN' undeclared (first use in this function) +| case SERVICE_ACTION_IN: +-- CUT -- + +Reference: +https://github.com/torvalds/linux/commit/eb846d9f147455e4e5e1863bfb5e31974bb69b7c + +3. In linux v3.19 and above, f_dentry member has been removed from +'struct file' structure. + +error snippet: +-- snip -- +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind': +| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:130:34: error: 'struct file' has no member named 'f_dentry' +| conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); +-- CUT -- + +new helper function file_inode(file) should be used instead. + +References: +1. https://github.com/torvalds/linux/commit/78d28e651f97866d608d9b41f8ad291e65d47dd5 +2. https://github.com/torvalds/linux/commit/496ad9aa8ef448058e36ca7a787c61f2e63f0f54 + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-08-24 17:27:06.897653698 +0530 +@@ -127,7 +127,11 @@ static void iet_socket_bind(struct iscsi + + dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ conn->sock = SOCKET_I(file_inode(conn->file)); ++#else + conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + conn->sock->sk->sk_user_data = conn; + + write_lock_bh(&conn->sock->sk->sk_callback_lock); +--- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2015-08-24 17:30:54.390131100 +0530 +@@ -69,7 +69,11 @@ static int fileio_make_request(struct ie + static int fileio_sync(struct iet_volume *lu, struct tio *tio) + { + struct fileio_data *p = lu->private; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct inode *inode = file_inode(p->filp); ++#else + struct inode *inode = p->filp->f_dentry->d_inode; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + struct address_space *mapping = inode->i_mapping; + loff_t ppos, count; + int res; +@@ -213,7 +217,11 @@ static int fileio_attach(struct iet_volu + eprintk("%d\n", err); + goto out; + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ inode = file_inode(p->filp); ++#else + inode = p->filp->f_dentry->d_inode; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + + if (S_ISREG(inode->i_mode)) + ; +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2015-08-24 17:33:50.950490156 +0530 +@@ -986,7 +986,11 @@ static void scsi_cmnd_start(struct iscsi + set_cmnd_lunit(req); + + switch (req_hdr->scb[0]) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((req_hdr->scb[1] & 0x1f) != 0x10) + goto error; + case INQUIRY: +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2015-08-24 17:35:31.354690051 +0530 +@@ -257,7 +257,11 @@ struct iscsi_conn { + struct timer_list nop_timer; + + struct iscsi_cmnd *read_cmnd; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct user_msghdr read_msg; ++#else + struct msghdr read_msg; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + struct iovec read_iov[ISCSI_CONN_IOV_MAX]; + u32 read_size; + u32 read_overflow; +--- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2015-08-24 17:41:56.187428925 +0530 +@@ -80,8 +80,11 @@ static int is_data_available(struct iscs + set_fs(oldfs); + return (res >= 0) ? avail : res; + } +- ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++static void forward_iov(struct user_msghdr *msg, int len) ++#else + static void forward_iov(struct msghdr *msg, int len) ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + { + while (msg->msg_iov->iov_len <= len) { + len -= msg->msg_iov->iov_len; +@@ -96,7 +99,11 @@ static void forward_iov(struct msghdr *m + static int do_recv(struct iscsi_conn *conn, int state) + { + mm_segment_t oldfs; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct user_msghdr msg; ++#else + struct msghdr msg; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + struct iovec iov[ISCSI_CONN_IOV_MAX]; + int i, len, res; + +@@ -461,7 +468,11 @@ static void exit_tx(struct iscsi_conn *c + static int tx_ddigest(struct iscsi_cmnd *cmnd, int state) + { + int res, rest = cmnd->conn->write_size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct user_msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT}; ++#else + struct msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT}; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + struct kvec iov; + + iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); +--- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2015-08-24 16:13:26.481924679 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2015-08-24 17:43:42.167625159 +0530 +@@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs + case REQUEST_SENSE: + send_data_rsp(cmnd, build_request_sense_response); + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + send_data_rsp(cmnd, build_service_action_in_response); + break; + case READ_6: +--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2015-08-24 16:13:26.477924674 +0530 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2015-08-24 18:28:15.697074780 +0530 +@@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume + case READ_CAPACITY: + /* allowed commands when reserved */ + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((scb[1] & 0x1F) == 0x10) + break; + /* fall through */ +@@ -465,7 +469,11 @@ int is_volume_reserved(struct iet_volume + if (excl_access_ro && !registered) + err = -EBUSY; + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((scb[1] & 0x1F) == 0x10) + break; + /* fall through */ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch new file mode 100644 index 000000000..95bd047b9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch @@ -0,0 +1,67 @@ +Get linux kernel version from Makefile of kernel source + +We get below messages while building iscsitarget, + +-- snip -- +x86_64-poky-linux-gcc: error: +/CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/version.h: +No such file or directory +x86_64-poky-linux-gcc: fatal error: no input files +compilation terminated. +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +-- CUT -- + +These messages are due to absence of include/linux/version.h file in +kernel source directory and failed to compute linux kernel version. +So, use kernel source Makefile ( i.e $(KSRC)/Makefile) to find out +actual kernel version. + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- iscsitarget-1.4.20.3+svn499_org/Makefile 2014-01-27 00:00:45.000000000 +0530 ++++ iscsitarget-1.4.20.3+svn499/Makefile 2015-07-23 10:44:47.013600285 +0530 +@@ -18,27 +18,11 @@ ifeq ($(KSRC),) + endif + + +-ifneq ($(wildcard $(KSRC)/include/generated/utsrelease.h),) +- VERSION_FILE := $(KSRC)/include/generated/utsrelease.h +-else +- ifneq ($(wildcard $(KSRC)/include/linux/utsrelease.h),) +- VERSION_FILE := $(KSRC)/include/linux/utsrelease.h +- else +- VERSION_FILE := $(KSRC)/include/linux/version.h +- endif +-endif +- +-KVER := $(shell $(CC) $(CFLAGS) $(LDFLAGS) -E -dM $(VERSION_FILE) | \ +- grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g') +- + KMOD := /lib/modules/$(KVER)/extra +- +-KMAJ := $(shell echo $(KVER) | \ +- sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/') +-KMIN := $(shell echo $(KVER) | \ +- sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/') +-KREV := $(shell echo $(KVER) | \ +- sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/') ++KMAJ := $(shell cat $(KSRC)/Makefile | grep ^VERSION | gawk -F " " '{ print $$NF }') ++KMIN := $(shell cat $(KSRC)/Makefile | grep ^PATCHLEVEL | gawk -F " " '{ print $$NF }') ++KREV := $(shell cat $(KSRC)/Makefile | grep ^SUBLEVEL | gawk -F " " '{ print $$NF }') ++KVER := ${KMAJ}.${KMIN}.${KREV} + + kver_eq = $(shell [ $(KMAJ) -eq $(1) -a $(KMIN) -eq $(2) -a $(KREV) -eq $(3) ] && \ + echo 1 || echo 0) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb new file mode 100644 index 000000000..4c5eed6de --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "iSCSI Enterprise Target is aimed to develop an \ + open source iSCSI target with professional features, \ + that works well in enterprise environment under real \ + workload, and is scalable and versatile enough to meet the \ + challenge of future storage needs and developments." +HOMEPAGE = "http://iscsitarget.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e233eda45c807aa29aeaa6d94bc48a2" +DEPENDS = "openssl virtual/kernel" + +SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://use-kernel-makefile-to-get-kernel-version.patch \ + file://fix-errors-observed-with-linux-3.19-and-greater.patch \ + file://access-sk_v6_daddr-iff-IPV6-defined.patch \ + file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch" + +SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089" +SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5" + +inherit module + +do_configure[noexec] = "1" + +# make_scripts requires kernel source directory to create +# kernel scripts +do_make_scripts[depends] += "virtual/kernel:do_shared_workdir" + +do_compile() { + oe_runmake KSRC=${STAGING_KERNEL_DIR} LDFLAGS='' V=1 +} + +do_install() { + # Module + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi + install -m 0644 kernel/iscsi_trgt.ko \ + ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko + + # Userspace utilities + install -d ${D}${sbindir} + install -m 0755 usr/ietd ${D}${sbindir}/ietd + install -m 0755 usr/ietadm ${D}${sbindir}/ietadm + + # Config files, init scripts + mkdir -p ${D}${sysconfdir}/iet + install -m 0644 etc/ietd.conf ${D}/${sysconfdir}/iet/ietd.conf + install -m 0644 etc/initiators.allow ${D}${sysconfdir}/iet/initiators.allow + install -m 0644 etc/targets.allow ${D}${sysconfdir}/iet/targets.allow + mkdir -p ${D}${sysconfdir}/init.d + install -m 0755 etc/initd/initd ${D}${sysconfdir}/init.d/iscsi-target + install -m 0644 etc/initiators.deny ${D}${sysconfdir}/iet/initiators.deny +} + +FILES_${PN} += "${sbindir} \ + ${sysconfdir}" + +RDEPENDS_${PN} = "kernel-module-iscsi-trgt" +RRECOMMENDS_${PN} = "kernel-module-crc32c kernel-module-libcrc32c" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb new file mode 100644 index 000000000..7b11d206c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb @@ -0,0 +1,33 @@ +SUMMARY = "Connection tracking userspace tools for Linux" +SECTION = "net" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \ + libnetfilter-cthelper libnetfilter-queue bison-native" + +SRC_URI = " \ + http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ + file://conntrack-failover \ + file://init \ + file://0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch \ +" +SRC_URI[tar.md5sum] = "b1f9d006e7bf000a77395ff7cd3fac16" +SRC_URI[tar.sha256sum] = "e5c423dc077f9ca8767eaa6cf40446943905711c6a8fe27f9cc1977d4d6aa11e" + +inherit autotools-brokensep update-rc.d pkgconfig + +INITSCRIPT_NAME = "conntrackd" + +do_install_append() { + install -d ${D}/${sysconfdir}/conntrackd + install -d ${D}/${sysconfdir}/init.d + install -m 0644 doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample + install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover + install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd + + # Fix hardcoded paths in scripts + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd + sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample + sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch new file mode 100644 index 000000000..a7ab6d687 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch @@ -0,0 +1,85 @@ +From c392c159605956c7bd4a264ab4490e2b2704c0cd Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso +Date: Fri, 13 Jun 2014 12:53:17 +0200 +Subject: [PATCH] conntrackd: build: fix crash when optional kernel modules are + not loaded + +Upstream-Status: Backport + +Fix a possible crash if conntrackd sees DCCP, SCTP and ICMPv6 traffic +and the corresponding kernel modules that track this traffic are not +available. + +Fixes: http://bugzilla.netfilter.org/show_bug.cgi?id=910 +Signed-off-by: Pablo Neira Ayuso +--- + src/build.c | 22 +++++++++++++--------- + 1 file changed, 13 insertions(+), 9 deletions(-) + +diff --git a/src/build.c b/src/build.c +index 5799b51..9ba8b57 100644 +--- a/src/build.c ++++ b/src/build.c +@@ -105,14 +105,14 @@ static enum nf_conntrack_attr nat_type[] = + ATTR_ORIG_NAT_SEQ_OFFSET_AFTER, ATTR_REPL_NAT_SEQ_CORRECTION_POS, + ATTR_REPL_NAT_SEQ_OFFSET_BEFORE, ATTR_REPL_NAT_SEQ_OFFSET_AFTER }; + ++/* ICMP, UDP and TCP are always loaded with nf_conntrack_ipv4 */ + static void build_l4proto_tcp(const struct nf_conntrack *ct, struct nethdr *n) + { +- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, +- sizeof(struct nfct_attr_grp_port)); +- + if (!nfct_attr_is_set(ct, ATTR_TCP_STATE)) + return; + ++ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, ++ sizeof(struct nfct_attr_grp_port)); + ct_build_u8(ct, ATTR_TCP_STATE, n, NTA_TCP_STATE); + if (CONFIG(sync).tcp_window_tracking) { + ct_build_u8(ct, ATTR_TCP_WSCALE_ORIG, n, NTA_TCP_WSCALE_ORIG); +@@ -122,12 +122,12 @@ static void build_l4proto_tcp(const struct nf_conntrack *ct, struct nethdr *n) + + static void build_l4proto_sctp(const struct nf_conntrack *ct, struct nethdr *n) + { +- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, +- sizeof(struct nfct_attr_grp_port)); +- ++ /* SCTP is optional, make sure nf_conntrack_sctp is loaded */ + if (!nfct_attr_is_set(ct, ATTR_SCTP_STATE)) + return; + ++ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, ++ sizeof(struct nfct_attr_grp_port)); + ct_build_u8(ct, ATTR_SCTP_STATE, n, NTA_SCTP_STATE); + ct_build_u32(ct, ATTR_SCTP_VTAG_ORIG, n, NTA_SCTP_VTAG_ORIG); + ct_build_u32(ct, ATTR_SCTP_VTAG_REPL, n, NTA_SCTP_VTAG_REPL); +@@ -135,18 +135,22 @@ static void build_l4proto_sctp(const struct nf_conntrack *ct, struct nethdr *n) + + static void build_l4proto_dccp(const struct nf_conntrack *ct, struct nethdr *n) + { +- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, +- sizeof(struct nfct_attr_grp_port)); +- ++ /* DCCP is optional, make sure nf_conntrack_dccp is loaded */ + if (!nfct_attr_is_set(ct, ATTR_DCCP_STATE)) + return; + ++ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, ++ sizeof(struct nfct_attr_grp_port)); + ct_build_u8(ct, ATTR_DCCP_STATE, n, NTA_DCCP_STATE); + ct_build_u8(ct, ATTR_DCCP_ROLE, n, NTA_DCCP_ROLE); + } + + static void build_l4proto_icmp(const struct nf_conntrack *ct, struct nethdr *n) + { ++ /* This is also used by ICMPv6 and nf_conntrack_ipv6 is optional */ ++ if (!nfct_attr_is_set(ct, ATTR_ICMP_TYPE)) ++ return; ++ + ct_build_u8(ct, ATTR_ICMP_TYPE, n, NTA_ICMP_TYPE); + ct_build_u8(ct, ATTR_ICMP_CODE, n, NTA_ICMP_CODE); + ct_build_u16(ct, ATTR_ICMP_ID, n, NTA_ICMP_ID); +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrack-failover b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrack-failover new file mode 100644 index 000000000..6d92e637f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrack-failover @@ -0,0 +1,77 @@ +#!/bin/sh +# +# (C) 2008 by Pablo Neira Ayuso +# (C) 2009 Roman I Khimov +# +# This software may be used and distributed according to the terms +# of the GNU General Public License, incorporated herein by reference. +# +# Description: +# +# This is the script for primary-backup setups for keepalived +# (http://www.keepalived.org). You may adapt it to make it work with other +# high-availability managers. +# +# Do not forget to include the required modifications to your keepalived.conf +# file to invoke this script during keepalived's state transitions. +# +# Contributions to improve this script are welcome :). +# +## Modified to work as init.d script under pacemaker control + +CONNTRACKD_BIN=/usr/sbin/conntrackd +CONNTRACKD_LOCK=/var/lock/conntrack.lock +CONNTRACKD_CONFIG=/etc/conntrackd/conntrackd.conf + +case "$1" in + start) + # + # commit the external cache into the kernel table + # + $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -c + if [ $? -eq 1 ] + then + logger "ERROR: failed to invoke conntrackd -c" + fi + + # + # flush the internal and the external caches + # + $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -f + if [ $? -eq 1 ] + then + logger "ERROR: failed to invoke conntrackd -f" + fi + + # + # resynchronize my internal cache to the kernel table + # + $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -R + if [ $? -eq 1 ] + then + logger "ERROR: failed to invoke conntrackd -R" + fi + + # + # send a bulk update to backups + # + $CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -B + if [ $? -eq 1 ] + then + logger "ERROR: failed to invoke conntrackd -B" + fi + ;; + stop) + $CONNTRACKD_BIN -t + $CONNTRACKD_BIN -n + ;; + status) + ;; + *) + logger "ERROR: unknown command" + echo "Usage: conntrack-failover {start|stop|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/init b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/init new file mode 100644 index 000000000..bce2075a7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/init @@ -0,0 +1,87 @@ +#!/bin/sh +# +# /etc/init.d/conntrackd +# +# Maximilian Wilhelm +# -- Mon, 06 Nov 2006 18:39:07 +0100 +# +# Roman I Khimov +# -- Tue, 27 Oct 2009 14:34:00 +0300 + +### BEGIN INIT INFO +# Provides: conntrackd +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Description: Starts conntrackd +# short-description: Starts conntrackd +### END INIT INFO + +export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +NAME="conntrackd" +DAEMON="/usr/sbin/conntrackd" +CONFIG="/etc/conntrackd/conntrackd.conf" +PIDFILE="/var/run/${NAME}.pid" + + +# Gracefully exit if there is no daemon (debian way of life) +if [ ! -x "${DAEMON}" ]; then + exit 0 +fi + +# Check for config file +if [ ! -f /etc/conntrackd/conntrackd.conf ]; then + echo "Error: There is no config file for $NAME" >&2 + exit 1; +fi + +case "$1" in + start) + echo -n "Starting $NAME: " + for i in nf_conntrack_netlink nf_conntrack_netbios_ns nf_conntrack_proto_dccp nf_conntrack_tftp \ + nf_conntrack_sane nf_conntrack_pptp nf_conntrack_irc nf_conntrack_amanda nf_conntrack_h323 \ + nf_conntrack_proto_udplite nf_conntrack_proto_gre nf_conntrack_proto_sctp nf_conntrack_ftp \ + nf_conntrack_sip; do + modprobe $i >/dev/null 2>/dev/null & + done + start-stop-daemon --start --quiet --make-pidfile --pidfile "/var/run/${NAME}.pid" --background --exec "${DAEMON}" + RET=$? + if [ "$?" = "0" ]; then + sleep 2 + # Sync with other server + conntrackd -n + echo "done." + else + echo "FAILED!" + fi + exit $RET + ;; + stop) + echo -n "Stopping $NAME:" + start-stop-daemon --stop --quiet --oknodo --pidfile "/var/run/${NAME}.pid" && echo "done." || echo "FAILED!" + ;; + status) + echo -n "conntrackd " + start-stop-daemon -q -K -t -x $DAEMON + RET=$? + if [ "$RET" = "0" ]; then + PID=`cat $PIDFILE` + echo "($PID) is running" + else + echo "is not running" + exit $RET + fi + ;; + restart) + $0 stop + $0 start + ;; + + *) + echo "Usage: /etc/init.d/conntrackd {start|stop|restart}" + exit 1 +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch new file mode 100644 index 000000000..c260403ea --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch @@ -0,0 +1,50 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## debian_defaultconfig.dpatch by +## +## DP: Debian enhancements to the ebtables "sysconfig" default settings. + +@DPATCH@ + +--- ebtables-2.0.8.1.orig/ebtables-config ++++ ebtables-2.0.8.1/ebtables-config +@@ -1,17 +1,3 @@ +-# Save (and possibly restore) in text format. +-# Value: yes|no, default: yes +-# Save the firewall rules in text format to __SYSCONFIG__/ebtables +-# If EBTABLES_BINARY_FORMAT="no" then restoring the firewall rules +-# is done using this text format. +-EBTABLES_TEXT_FORMAT="yes" +- +-# Save (and restore) in binary format. +-# Value: yes|no, default: yes +-# Save (and restore) the firewall rules in binary format to (and from) +-# __SYSCONFIG__/ebtables.. Enabling this option will make +-# firewall initialisation a lot faster. +-EBTABLES_BINARY_FORMAT="yes" +- + # Unload modules on restart and stop + # Value: yes|no, default: yes + # This option has to be 'yes' to get to a sane state for a firewall +@@ -19,6 +5,12 @@ + # modules. + EBTABLES_MODULES_UNLOAD="yes" + ++# Load firewall rules on system startup. ++# Value: yes|no, default: no ++# Restores the ebtables rulesets from the last saved state when the ++# system boots up. ++EBTABLES_LOAD_ON_START="no" ++ + # Save current firewall rules on stop. + # Value: yes|no, default: no + # Saves all firewall rules if firewall gets stopped +@@ -35,3 +27,9 @@ + # Save rule counters when saving a kernel table to a file. If the + # rule counters were saved, they will be restored when restoring the table. + EBTABLES_SAVE_COUNTER="no" ++ ++# Backup suffix for ruleset save files. ++# Value: , default: "~" ++# Keep one backup level of saved rules. ++# Set this variable to the empty string to disable backups. ++EBTABLES_BACKUP_SUFFIX="~" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common new file mode 100644 index 000000000..640025dba --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common @@ -0,0 +1,163 @@ +#!/bin/sh + +[ -x /sbin/ebtables ] || exit 1 + +EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump + +RETVAL=0 +prog="ebtables" +desc="Ethernet bridge filtering" +umask 0077 + +#default configuration +EBTABLES_MODULES_UNLOAD="yes" +EBTABLES_LOAD_ON_START="no" +EBTABLES_SAVE_ON_STOP="no" +EBTABLES_SAVE_ON_RESTART="no" +EBTABLES_SAVE_COUNTER="no" +EBTABLES_BACKUP_SUFFIX="~" + +config=/etc/default/$prog +[ -f "$config" ] && . "$config" + +function get_supported_tables() { + EBTABLES_SUPPORTED_TABLES= + /sbin/ebtables -t filter -L 2>&1 1>/dev/null | grep -q permission + if [ $? -eq 0 ]; then + echo "Error: insufficient privileges to access the ebtables rulesets." + exit 1 + fi + for table in filter nat broute; do + /sbin/ebtables -t $table -L &> /dev/null + if [ $? -eq 0 ]; then + EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table" + fi + done +} + +function load() { + RETVAL=0 + get_supported_tables + echo -n "Restoring ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit + RET=$? + if [ $RET -ne 0 ]; then + echo -n "(failed) " + RETVAL=$RET + fi + else + echo -n "(no saved state) " + fi + done + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +function clear() { + RETVAL=0 + get_supported_tables + echo -n "Clearing ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + /sbin/ebtables -t $table --init-table + done + + if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then + for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -d' ' -f1) ebtables; do + rmmod $mod 2> /dev/null + done + fi + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +function save() { + RETVAL=0 + get_supported_tables + echo -n "Saving ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + [ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \ + mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save + RET=$? + if [ $RET -ne 0 ]; then + echo -n "(failed) " + RETVAL=$RET + else + if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z + fi + fi + done + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +case "$1" in + start) + [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load + ;; + stop) + [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save + clear + ;; + restart|reload|force-reload) + [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save + clear + [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load + ;; + load) + load + ;; + save) + save + ;; + status) + get_supported_tables + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo "No kernel support for ebtables." + RETVAL=1 + else + echo -n "Ebtables support available, number of installed rules: " + for table in $EBTABLES_SUPPORTED_TABLES; do + COUNT=$(( $(/sbin/ebtables -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 )) + echo -n "$table($COUNT) " + done + echo ok + RETVAL=0 + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2 + RETVAL=1 +esac + +exit $RETVAL diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init new file mode 100755 index 000000000..c9a77a29e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init @@ -0,0 +1,26 @@ +#!/bin/sh +# +# init script for the Ethernet Bridge filter tables +# +# Written by Dag Wieers +# Modified by Rok Papez +# Bart De Schuymer +# Adapted to Debian by Jan Christoph Nordholz +# Adapted to OpenEmbedded by Roman I Khimov +# +# chkconfig: - 15 85 +# description: Ethernet Bridge filtering tables +# +### BEGIN INIT INFO +# Provides: ebtables +# Required-Start: +# Required-Stop: +# Should-Start: $local_fs +# Should-Stop: $local_fs +# Default-Start: S +# Default-Stop: 0 6 +# Short-Description: ebtables ruleset management +# Description: Saves and restores the state of the ebtables rulesets. +### END INIT INFO + +/usr/sbin/ebtables.common $1 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service new file mode 100644 index 000000000..3abd1fe3e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service @@ -0,0 +1,11 @@ +[Unit] +Description=Ethernet Bridge Filtering Tables + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@SBINDIR@/ebtables.common start +ExecStop=@SBINDIR@/ebtables.common stop + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch new file mode 100644 index 000000000..bcd9bed23 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch @@ -0,0 +1,43 @@ +diff --git a/Makefile b/Makefile +index c1106a4..7ea6b7a 100644 +--- a/Makefile ++++ b/Makefile +@@ -157,31 +157,31 @@ tmp3:=$(shell printf $(PIPE) | sed 's/\//\\\//g') + scripts: ebtables-save ebtables.sysv ebtables-config + cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_ + mkdir -p $(DESTDIR)$(BINDIR) +- install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save ++ install -m 0755 ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save + cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi +- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi ++ if test -d $(DESTDIR)$(INITDIR); then install -m 0755 ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi + cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(SYSCONFIGDIR); fi +- if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi ++ if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi + rm -f ebtables-save_ ebtables.sysv_ ebtables-config_ + + tmp4:=$(shell printf $(LOCKFILE) | sed 's/\//\\\//g') + $(MANDIR)/man8/ebtables.8: ebtables.8 + mkdir -p $(DESTDIR)$(@D) + sed -e 's/$$(VERSION)/$(PROGVERSION)/' -e 's/$$(DATE)/$(PROGDATE)/' -e 's/$$(LOCKFILE)/$(tmp4)/' ebtables.8 > ebtables.8_ +- install -m 0644 -o root -g root ebtables.8_ $(DESTDIR)$@ ++ install -m 0644 ebtables.8_ $(DESTDIR)$@ + rm -f ebtables.8_ + + $(DESTDIR)$(ETHERTYPESFILE): ethertypes + mkdir -p $(@D) +- install -m 0644 -o root -g root $< $@ ++ install -m 0644 $< $@ + + .PHONY: exec + exec: ebtables ebtables-restore + mkdir -p $(DESTDIR)$(BINDIR) +- install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME) +- install -m 0755 -o root -g root ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore ++ install -m 0755 $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME) ++ install -m 0755 ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore + + .PHONY: install + install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) exec scripts diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch new file mode 100644 index 000000000..336119d6b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch @@ -0,0 +1,25 @@ +link ebtables with --no-as-needed and adjust the link order to fix runtime crash + +Program terminated with signal 11, Segmentation fault. +#0 0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so +(gdb) bt +#0 0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so +#1 0x00007ffaa83824dc in do_command () from /lib64/ebtables/libebtc.so +#2 0x000000000040065c in ?? () +#3 0x00007ffaa7fed755 in __libc_start_main () from /lib64/libc.so.6 +#4 0x0000000000400691 in ?? () + +Signed-off-by: Khem Raj +Index: ebtables-v2.0.10-4/Makefile +=================================================================== +--- ebtables-v2.0.10-4.orig/Makefile 2011-12-15 12:02:47.000000000 -0800 ++++ ebtables-v2.0.10-4/Makefile 2012-12-17 22:09:45.065973753 -0800 +@@ -90,7 +90,7 @@ + $(CC) -shared $(LDFLAGS) -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2) + + ebtables: $(OBJECTS) ebtables-standalone.o libebtc.so +- $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \ ++ $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -Wl,--no-as-needed $(EXT_LIBSI) -lebtc \ + -Wl,-rpath,$(LIBDIR) + + ebtablesu: ebtablesu.c diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb new file mode 100644 index 000000000..e9b726c5f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb @@ -0,0 +1,90 @@ +SUMMARY = "Filtering tool for a Linux-based bridging firewall" +DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \ + advanced logging, MAC DNAT/SNAT and brouting." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e" +SECTION = "net" +PR = "r3" + +RDEPENDS_${PN} += "perl" + +RRECOMMENDS_${PN} += "kernel-module-ebtables \ + " + +SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \ + file://installnonroot.patch \ + file://01debian_defaultconfig.patch \ + file://ebtables.init \ + file://ebtables.common \ + file://ebtables.service \ + file://no-as-needed.patch \ +" + +SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0" +SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d" + +S = "${WORKDIR}/ebtables-v${PV}" + +inherit update-rc.d systemd + +python __anonymous () { + import re + + karch = d.getVar('KARCH', True) + multilib = d.getVar('MLPREFIX', True) + + if multilib and karch == 'powerpc64': + searchstr = "lib.?32" + reg = re.compile(searchstr) + if reg.search(multilib): + d.appendVar('CFLAGS' ,' -DKERNEL_64_USERSPACE_32 -DEBT_MIN_ALIGN=8') +} + +EXTRA_OEMAKE = " \ + BINDIR=${base_sbindir} \ + MANDIR=${mandir} \ + ETHERTYPESPATH=${sysconfdir} \ + INITDIR=${sysconfdir}/init.d \ + SYSCONFIGDIR=${sysconfdir}/default \ + LIBDIR=${base_libdir}/ebtables \ + 'CC=${CC}' \ + 'CFLAGS=${CFLAGS}' \ + 'LDFLAGS=${LDFLAGS} -Wl,--no-as-needed' \ + 'LD=${LD}' \ +" + +do_install () { + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common + # Fix hardcoded paths in scripts + sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${sbindir}/ebtables.common + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sbindir}/ebtables.common + + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install -d ${D}${sysconfdir}/ebtables + oe_runmake DESTDIR='${D}' install + install -m 0755 ${WORKDIR}/ebtables.init ${D}/${sysconfdir}/init.d/ebtables + mv ${D}${sysconfdir}/default/ebtables-config ${D}${sysconfdir}/default/ebtables + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ebtables + + # The script ebtables-save refernces perl in exec_prefix, so + # move it to sbindir to avoid QA issue + install -d ${D}/${sbindir} + mv ${D}/${base_sbindir}/ebtables-save ${D}/${sbindir} + + # Install systemd service files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service +} + +CONFFILES_${PN} += "${sysconfdir}/default/ebtables" + +INITSCRIPT_NAME = "ebtables" +INITSCRIPT_PARAMS = "start 41 S . stop 41 6 ." + +SYSTEMD_SERVICE_${PN} = "ebtables.service" + +FILES_${PN}-dbg += "${base_libdir}/ebtables/.debug" +FILES_${PN} += "${base_libdir}/ebtables/*.so" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.3.bb new file mode 100644 index 000000000..b3a5f2e95 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libmnl/libmnl_1.0.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "Minimalistic user-space Netlink utility library" +DESCRIPTION = "Minimalistic user-space library oriented to Netlink developers, providing \ + functions for common tasks in parsing, validating, and constructing both the Netlink header and TLVs." +HOMEPAGE = "http://www.netfilter.org/projects/libmnl/index.html" +SECTION = "libs" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "http://www.netfilter.org/projects/libmnl/files/libmnl-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "7d95fc3bea3365bc03c48e484224f65f" +SRC_URI[tar.sha256sum] = "6f14336e9acdbc62c2dc71bbb59ce162e54e9af5c80153e92476c5443fe784de" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch new file mode 100644 index 000000000..16e4af405 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch @@ -0,0 +1,89 @@ +VLAs in structs and unions (non-PODs) is unsupported in non-gcc compilers +therefore convert it to not use VLAs instead use fixed arrays + +Signed-off-by: Khem Raj +Upstream-Status: Pending +Index: libnetfilter_conntrack-1.0.4/src/conntrack/api.c +=================================================================== +--- libnetfilter_conntrack-1.0.4.orig/src/conntrack/api.c ++++ libnetfilter_conntrack-1.0.4/src/conntrack/api.c +@@ -954,16 +954,15 @@ int nfct_query(struct nfct_handle *h, + const enum nf_conntrack_query qt, + const void *data) + { +- size_t size = 4096; /* enough for now */ + union { +- char buffer[size]; ++ char buffer[4096]; + struct nfnlhdr req; + } u; + + assert(h != NULL); + assert(data != NULL); + +- if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, size) == -1) ++ if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, 4096) == -1) + return -1; + + return nfnl_query(h->nfnlh, &u.req.nlh); +@@ -986,16 +985,15 @@ int nfct_send(struct nfct_handle *h, + const enum nf_conntrack_query qt, + const void *data) + { +- size_t size = 4096; /* enough for now */ + union { +- char buffer[size]; ++ char buffer[4096]; + struct nfnlhdr req; + } u; + + assert(h != NULL); + assert(data != NULL); + +- if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, size) == -1) ++ if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, 4096) == -1) + return -1; + + return nfnl_send(h->nfnlh, &u.req.nlh); +Index: libnetfilter_conntrack-1.0.4/src/expect/api.c +=================================================================== +--- libnetfilter_conntrack-1.0.4.orig/src/expect/api.c ++++ libnetfilter_conntrack-1.0.4/src/expect/api.c +@@ -669,16 +669,15 @@ int nfexp_query(struct nfct_handle *h, + const enum nf_conntrack_query qt, + const void *data) + { +- size_t size = 4096; /* enough for now */ + union { +- char buffer[size]; ++ char buffer[4096]; + struct nfnlhdr req; + } u; + + assert(h != NULL); + assert(data != NULL); + +- if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, size) == -1) ++ if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, 4096) == -1) + return -1; + + return nfnl_query(h->nfnlh, &u.req.nlh); +@@ -701,16 +700,15 @@ int nfexp_send(struct nfct_handle *h, + const enum nf_conntrack_query qt, + const void *data) + { +- size_t size = 4096; /* enough for now */ + union { +- char buffer[size]; ++ char buffer[4096]; + struct nfnlhdr req; + } u; + + assert(h != NULL); + assert(data != NULL); + +- if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, size) == -1) ++ if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, 4096) == -1) + return -1; + + return nfnl_send(h->nfnlh, &u.req.nlh); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb new file mode 100644 index 000000000..ecbc86ba7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "Netfilter connection tracking library" +DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter connection tracking state table" +HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_conntrack/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libnfnetlink libmnl" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar \ + file://replace-VLAs-in-union.patch \ +" +SRC_URI[tar.md5sum] = "18cf80c4b339a3285e78822dbd4f08d7" +SRC_URI[tar.sha256sum] = "d9ec4a3caf49417f2b0a2d8d44249133e8c3ec78c757b7eb8c273f1cb6929c7d" + +S = "${WORKDIR}/libnetfilter_conntrack-${PV}" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb new file mode 100644 index 000000000..3d3799726 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "Netfilter connection tracking helper library" +DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter user-space helper infrastructure" +HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_cthelper/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libmnl" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "b2efab1a3a198a5add448960ba011acd" +SRC_URI[tar.sha256sum] = "07618e71c4d9a6b6b3dc1986540486ee310a9838ba754926c7d14a17d8fccf3d" + +S = "${WORKDIR}/libnetfilter_cthelper-${PV}" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb new file mode 100644 index 000000000..dcf748562 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Netfilter connection tracking timeout library" +DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter fine-grain connection tracking timeout infrastructure" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libmnl" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "7697437fc9ebb6f6b83df56a633db7f9" +SRC_URI[tar.sha256sum] = "aeab12754f557cba3ce2950a2029963d817490df7edb49880008b34d7ff8feba" + +S = "${WORKDIR}/libnetfilter_cttimeout-${PV}" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb new file mode 100644 index 000000000..30c9ae6bc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "Netfilter logging library" +DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)" +HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libnfnetlink" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_log/files/libnetfilter_log-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "2a4bb0654ae675a52d2e8d1c06090b94" +SRC_URI[tar.sha256sum] = "74e0fe75753dba3ac114531b5e73240452c789a3f3adccf5c51217da1d933b21" + +S = "${WORKDIR}/libnetfilter_log-${PV}" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb new file mode 100644 index 000000000..ddf2aa5c4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Netfilter packet queue access library" +DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue" +HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libnfnetlink libmnl" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_queue/files/libnetfilter_queue-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "df09befac35cb215865b39a36c96a3fa" +SRC_URI[tar.sha256sum] = "838490eb5dbe358f9669823704982f5313a8d397111562373200203f93ac1a32" + +S = "${WORKDIR}/libnetfilter_queue-${PV}" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb new file mode 100644 index 000000000..edd0f866f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "Low-level library for netfilter related kernel/userspace communication" +DESCRIPTION = "libnfnetlink is the low-level library for netfilter related \ +kernel/userspace communication. It provides a generic messaging \ +infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, \ +nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or \ +management tools in userspace." +HOMEPAGE = "http://www.netfilter.org/projects/libnfnetlink/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" + + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar" +SRC_URI[tar.md5sum] = "98927583d2016a9fb1936fed992e2c5e" +SRC_URI[tar.sha256sum] = "f270e19de9127642d2a11589ef2ec97ef90a649a74f56cf9a96306b04817b51a" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.5.bb new file mode 100644 index 000000000..6171151df --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.5.bb @@ -0,0 +1,13 @@ +SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" +SECTION = "libs" +DEPENDS = "libmnl" + +SRC_URI = "http://netfilter.org/projects/libnftnl/files/${BP}.tar.bz2 \ + " + +SRC_URI[md5sum] = "af0c62ce6bbd7a7d39def0996c1c17c9" +SRC_URI[sha256sum] = "f6d4f5a702e38bc7987f2363f9fcd65930e8b702595c221a497e2f3a359be497" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch new file mode 100644 index 000000000..8dce90a75 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch @@ -0,0 +1,26 @@ +[PATCH] disable to make ntf.8 man + +Upstream-Status: Pending + +$DB2MAN do not support the xinclude parameter whether it is +docbook2x-man or other, so disable to make ntf.8 man + +Signed-off-by: Roy Li +--- + doc/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/Makefile.am b/doc/Makefile.am +index a92de7f..537c36b 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -1,5 +1,5 @@ + if BUILD_MAN +-man_MANS = nft.8 ++#man_MANS = nft.8 + endif + + if BUILD_PDF +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.5.bb new file mode 100644 index 000000000..11b5e5a90 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.5.bb @@ -0,0 +1,17 @@ +SUMMARY = "Netfilter Tables userspace utillites" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" +SECTION = "net" + +DEPENDS = "libmnl libnftnl readline gmp" +RRECOMMENDS_${PN} += "kernel-module-nf-tables \ + " + +SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ + file://fix-to-generate-ntf.8.patch \ + " + +SRC_URI[md5sum] = "94bfe1c54bcb9f6ed974835f2fca8069" +SRC_URI[sha256sum] = "1fb6dff333d8a4fc347cbbe273bf905a2634b27a8c39df0d3a45d5a3fde10ad6" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb new file mode 100644 index 000000000..22aecbad2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "ZNC, an advanced IRC bouncer" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS = "openssl zlib icu" + +PV = "1.6.0" + +SRC_URI = "git://github.com/znc/znc.git;name=znc \ + git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \ + " +SRCREV_znc = "f47e8465efa4e1cd948b9caae93ac401b4355df8" +SRCREV_Csocket = "07b4437396122650e5b8fb3d014e820a5decf4ee" + +# This constructs a composite revision based on multiple SRCREV's. +# +SRCREV_FORMAT = "znc_Csocket" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig + +# ZNC has a custom autogen.sh that states that this command is needed *and* expected to fail +do_configure_prepend() { + automake --add-missing || true +} + +do_install_append() { + sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch new file mode 100644 index 000000000..ea36b1cd9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch @@ -0,0 +1,33 @@ +Upstream-Status: Pending + +From c81bf54d6eb870286662a11d3b4a994717c47696 Mon Sep 17 00:00:00 2001 +From: Armin Kuster +Date: Tue, 8 Sep 2015 05:36:27 -0700 +Subject: [PATCH] testmmap: fix compile issue with gcc 5.x + +this fixes: +examples/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=] +| printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]); +| ^ + +Signed-off-by: Armin Kuster +--- + examples/testmmap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/testmmap.c b/examples/testmmap.c +index d7f6acc..934489a 100644 +--- a/examples/testmmap.c ++++ b/examples/testmmap.c +@@ -537,7 +537,7 @@ do_if() + for (i = 0; i < 5; i++) + printf("spare1[%d] %u\n", i, nifp->ni_spare1[i]); + for (i = 0; i < (nifp->ni_tx_rings + nifp->ni_rx_rings + 2); i++) +- printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]); ++ printf("ring_ofs[%d] %zd\n", i, nifp->ring_ofs[i]); + } + + struct netmap_ring * +-- +2.3.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch new file mode 100644 index 000000000..b050bf001 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch @@ -0,0 +1,97 @@ +The makefile assumes building locally. + +Upstream Status: Inappropriate [Native] + +The configure is not auto-make based + +Signed-of-by: Armin Kuster + +Index: LINUX/netmap.mak.in +=================================================================== +--- a/LINUX/netmap.mak.in ++++ b/LINUX/netmap.mak.in +@@ -12,10 +12,9 @@ SRCDIR:=@SRCDIR@ + # The following commands are needed to build the modules as out-of-tree, + # in fact the kernel sources path must be specified. + +-PWD ?= $(CURDIR) + + # Additional compile flags (e.g. header location) +-EXTRA_CFLAGS := -I$(PWD) -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP ++EXTRA_CFLAGS := -I$(SRCDIR) -I$(SRCDIR)/../sys -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP + EXTRA_CFLAGS += -Wno-unused-but-set-variable + EXTRA_CFLAGS += $(foreach s,$(SUBSYS),-DCONFIG_NETMAP_$(shell echo $s|tr a-z- A-Z_)) + +Index: LINUX/configure +=================================================================== +--- a/LINUX/configure ++++ b/LINUX/configure +@@ -349,52 +349,6 @@ reset_tests() { + EOF + } + +-# run_tests: run all accumulated tests and exec the pertinent +-# success/failure actions for each one. +-run_tests() { +- local t= # prevent -EOF to eat the make TAB +- cat > $TMPDIR/Makefile <<-EOF +- ifneq (\$(KERNELRELEASE),) +- obj-m := $TESTOBJS +- else +- S_DRIVERS := $(drv print) +- all: \$(S_DRIVERS:%=get-%) +- $t \$(MAKE) -C $ksrc M=\$\$PWD $kopts +- +- -include $TOPDIR/drivers.mak +- EOF +- for d in $(drv print); do +- cat >> $TMPDIR/Makefile <<-EOF +- get-$d: +- $t [ -z "\$($d-src)" ] || cp -Rp \$($d-src) \$(if \$($d-dst),\$($d-dst),.) +- $t touch get-$d +- EOF +- done +- echo endif >> $TMPDIR/Makefile +- { +- cat <<-EOF +-############################################################################## +-## BEGIN RUNNING TESTS: $(date) +-############################################################################## +-## Makefile: +- EOF +- cat $TMPDIR/Makefile +- cat <<-EOF +-############################################################################## +- EOF +- } >> config.log +- ( +- cd $TMPDIR +- make -k -j $(grep -c processor /proc/cpuinfo) +- ) >> config.log +- eval "$TESTPOSTPROC" +- cat >> config.log <<-EOF +-############################################################################## +-## END RUNNING TESTS: $(date) +-############################################################################## +- EOF +-} +- + configh=netmap_linux_config.h + # succes/failure actions are expected to write some macros + # in netma_linux_config.h. The following functions can be +@@ -619,7 +573,6 @@ configuration. Please check 'config.log' + reset_tests + rm -f drivers.mak + add_test true broken_buildsystem < /dev/null +-run_tests + + drvname2config() { + local name=$1 +@@ -1280,7 +1233,6 @@ cat > $configh <<-EOF + EOF + + # the TESTPOSTPROC script will add macros to $configh +-run_tests + + define DRIVER_SUFFIX \"$drvsuffix\" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb new file mode 100644 index 000000000..406a4f3cf --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb @@ -0,0 +1,89 @@ +require netmap.inc + +DEPENDS = "virtual/kernel" +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +inherit module + +CLEANBROKEN = "1" + +export INSTALL_MOD_DIR="kernel/netmap-modules" + +EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \ + --kernel-sources=${STAGING_KERNEL_DIR} \ + --install-mod-path=${D} \ + --driver-suffix="-netmap" \ + " + +# The driver builds are optional, but for deterministic builds, +# we should be able to explicitly enable/disable the builds +# for them in a proper place (maybe in BSP). +# But we can't use PACKAGECONFIG since there is no option for +# each driver, and the options are: +# --no-drivers do not compile any driver +# --no-drivers= do not compile the given drivers (comma sep.) +# --drivers= only compile the given drivers (comma sep.) +# +# So use NETMAP_DRIVERS and the following python code to add proper +# configs to EXTRA_OECONF. +# +# The default is no-drivers, and all supported drivers are listed +# in NETMAP_ALL_DRIVERS. +NETMAP_DRIVERS ??= "" +NETMAP_ALL_DRIVERS = "ixgbe igb e1000e e1000 veth.c forcedeth.c virtio_net.c r8169.c" + +python __anonymous () { + drivers_list = d.getVar("NETMAP_DRIVERS", True).split() + all_drivers_list = d.getVar("NETMAP_ALL_DRIVERS", True).split() + config_drivers = "--drivers=" + ",".join(drivers_list) + + extra_oeconf_drivers = bb.utils.contains_any('NETMAP_DRIVERS', all_drivers_list, config_drivers, '--no-drivers', d) + d.appendVar("EXTRA_OECONF", extra_oeconf_drivers) +} + +LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}" +LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}" + +do_configure () { + cd ${S}/LINUX + ./configure ${EXTRA_OECONF} +} + +do_configure_append () { + cat >> ${S}/LINUX/netmap_linux_config.h <> ${S}/LINUX/netmap_linux_config.h < + +Index: netkit-ftp-0.17/ftp/glob.c +=================================================================== +--- netkit-ftp-0.17.orig/ftp/glob.c ++++ netkit-ftp-0.17/ftp/glob.c +@@ -50,6 +50,7 @@ char glob_rcsid[] = + #include + #include + #include ++#include + + #include "ftp_var.h" /* for protos only */ + #include "glob.h" +@@ -57,6 +58,9 @@ char glob_rcsid[] = + #define QUOTE 0200 + #define TRIM 0177 + #define eq(a,b) (strcmp(a, b)==0) ++#ifndef ARG_MAX ++#define ARG_MAX (sysconf(_SC_ARG_MAX)) ++#endif + #define GAVSIZ (ARG_MAX/6) + #define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb new file mode 100644 index 000000000..37f5bc725 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "netkit-ft includes the ftp client." +SECTION = "net" +HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \ + file://Add_ARG_MAX_define.patch \ +" + +SRC_URI[archive.md5sum] = "94441610c9b86ef45c4c6ec609444060" +SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349" +SRC_URI[patch31.md5sum] = "93d71e28ce70df69e080c7f90da63cac" +SRC_URI[patch31.sha256sum] = "4edd46a32d70daa7ba00f0ebf0118dc5d17dff23d6e46aa21a2722be2e22d1c1" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +BINMODE = "0755" +MANMODE = "0644" + +do_install () { + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man5 + + install -m${BINMODE} ${S}/ftp/ftp ${D}${bindir} + ln -sf ftp ${D}${bindir}/pftp + install -m${MANMODE} ${S}/ftp/ftp.1 ${D}${mandir}/man1 + ln -sf ftp.1 ${D}${mandir}/man1/pftp.1 + install -m${MANMODE} ${S}/ftp/netrc.5 ${D}${mandir}/man5 +} + +PACKAGES = "${PN} ${PN}-doc ${BPN}-dbg" +FILES_${PN} = "${bindir}/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug" + +RDEPENDS_${PN} = "readline" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch new file mode 100644 index 000000000..d54cea9fd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch @@ -0,0 +1,39 @@ +This fixes an issue when building with gcc 4.x + +https://github.com/openembedded/openembedded/tree/master/recipes/netkit-rpc/netkit-rpc + +Upstream-status: Backported + +Signed-off-By: Armin Kuster + +--- netkit-rpc-0.17/rpcgen/rpc_cout.c~gcc4 ++++ netkit-rpc-0.17/rpcgen/rpc_cout.c +@@ -101,8 +101,6 @@ + case DEF_TYPEDEF: + emit_typedef(def); + break; +- default: +- /* can't happen */ + } + print_trailer(); + } +@@ -664,9 +662,6 @@ + decl->name,decl->array_max); + emit_single_in_line(decl,flag,REL_VECTOR); + f_print(fout,"\t\t }\n\t\t };\n"); +- +- default: +- /* ?... do nothing I guess */ + } + } + +--- netkit-rpc-0.17/rpcgen/rpc_hout.c~gcc4 ++++ netkit-rpc-0.17/rpcgen/rpc_hout.c +@@ -106,8 +106,6 @@ + f_print(fout, "\n"); + pprogramdef(def); + break; +- default: +- /* ?... shouldn't happen I guess */ + } + } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb new file mode 100644 index 000000000..abc9d88cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "netkit-rpc includes rpcinfo and rpcgen." +HOMEPAGE = "http://ftp.linux.org.uk/pub/linux/Networking/netkit" +SECTION = "net" +LICENSE = "SPL-1.0" +LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89" + +SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \ + file://gcc4.patch" +SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642" +SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b" + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" > MCONFIG + echo "CC=${CC}" >> MCONFIG + echo "LD=${LD}" >> MCONFIG + echo "CFLAGS=${CFLAGS}" >> MCONFIG + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + + # remove strip flag + sed -i 's/install -s/install/' rpcinfo/Makefile + sed -i 's/install -s/install/' rpcgen/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch new file mode 100644 index 000000000..1d3631d47 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch @@ -0,0 +1,27 @@ +fix host variable when rsh is renamed to other. + +Upstream-Status: Pending + +If rsh is renamed to other, like rsh.netkit, host variable is assigned to +rsh.netkit, which is wrong. + +Signed-off-by: Roy.Li +--- + rsh/rsh.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/rsh/rsh.c b/rsh/rsh.c +index ac594f9..11f533e 100644 +--- a/rsh/rsh.c ++++ b/rsh/rsh.c +@@ -100,7 +100,6 @@ main(int argc, char *argv[]) + #else + if (!strcmp(p, "rsh")) asrsh = 1; + #endif +- else host = p; + + /* handle "rsh host flags" */ + if (!host && argc > 2 && argv[1][0] != '-') { +-- +1.7.5.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch new file mode 100644 index 000000000..efd060f36 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch @@ -0,0 +1,30 @@ +make rexec support ipv6 + +Upstream-status: Pending + +rexec equals rexec_af(... ,AF_INET) which only support ipv4, +use rexec_af(..., AF_UNSPEC) to support both ipv6 and ipv4. + +Signed-off-by: Roy.Li +--- + rexec/rexec.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/rexec/rexec.c b/rexec/rexec.c +index 0913c02..9c8f769 100644 +--- a/rexec/rexec.c ++++ b/rexec/rexec.c +@@ -214,8 +214,8 @@ int main(int argc, char *argv[]) + passwd = getpass("Password: "); + } + +- if ( (sock = rexec(&host, port_exec, user_name, passwd, command, +- p_to_aux_sock)) < 0 ) ++ if ( (sock = rexec_af(&host, port_exec, user_name, passwd, command, ++ p_to_aux_sock, AF_UNSPEC)) < 0 ) + { + fprintf(stderr,"%s: Error in rexec system call: ",argv[0]); + perror(NULL); +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch new file mode 100644 index 000000000..fdd535be1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch @@ -0,0 +1,39 @@ +netkit-rsh: +Allow to build with no PAM enabled. + +Upstream-Status: Inappropriate [ no upstream maintaner ] + +Signed-off-by: Armin Kuster + +Index: netkit-rsh-0.17/rshd/rshd.c +=================================================================== +--- netkit-rsh-0.17.orig/rshd/rshd.c ++++ netkit-rsh-0.17/rshd/rshd.c +@@ -110,9 +110,11 @@ extern char **environ; + static void error(const char *fmt, ...); + static void doit(struct sockaddr *fromp, socklen_t fromlen); + static char *getstr(char *, size_t, const char *); ++#ifdef USE_PAM + static int err_conv( + int, const struct pam_message **, struct pam_response **, void * + ); ++#endif /* USE_PAM */ + + extern int _check_rhosts_file; + +@@ -256,6 +258,7 @@ static void stderr_parent(int sock, int + } + + ++#ifdef USE_PAM + static int err_conv( + int num_msg, const struct pam_message **msg, + struct pam_response **resp, void *appdata_ptr +@@ -266,6 +269,7 @@ static int err_conv( + (void) appdata_ptr; + return PAM_CONV_ERR; + } ++#endif + + static struct passwd *doauth(const char *remuser, + const char *hostname, diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam new file mode 100644 index 000000000..94e5dda50 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam @@ -0,0 +1,10 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rexec" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_env.so +auth include common-auth +account include common-account +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit new file mode 100644 index 000000000..7354360ae --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit @@ -0,0 +1,20 @@ +# default: off +# description: +# Rexecd is the server for the rexec program. The server provides remote +# execution facilities with authentication based on user names and +# passwords. +# +service exec +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/sbin/tcpd + server_args = /usr/sbin/in.rexecd + disable = yes +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam new file mode 100644 index 000000000..b30f139cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam @@ -0,0 +1,12 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rlogin" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +auth include common-auth +account include common-account +password include common-password +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit new file mode 100644 index 000000000..70493e603 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit @@ -0,0 +1,23 @@ +# default: off +# description: +# Rlogind is a server for the rlogin program. The server provides remote +# execution with authentication based on privileged port numbers from trusted +# host +# +service login +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/sbin/tcpd + server_args = /usr/sbin/in.rlogind -a + disable = yes +} + + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch new file mode 100644 index 000000000..c12ee9b46 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch @@ -0,0 +1,77 @@ +This fixes a build issue caused by linking order. + +Upstream-Status: Inappropriate +Most distos have there own verison of this fix. This was derived by +* Fix link order to list libraries after the objects that require them +(LP: #771080). + +-- Colin Watson Tue, 13 Sep 2011 10:07:08 +0100 + + +signed-off-by: Armin Kuster + +Index: netkit-rsh-0.17/rsh/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rsh/Makefile ++++ netkit-rsh-0.17/rsh/Makefile +@@ -6,7 +6,7 @@ include ../MRULES + OBJS = rsh.o + + rsh: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rsh + install -o root -m$(SUIDMODE) rsh $(INSTALLROOT)$(BINDIR) +Index: netkit-rsh-0.17/rshd/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rshd/Makefile ++++ netkit-rsh-0.17/rshd/Makefile +@@ -11,7 +11,7 @@ LIBS += -ldl -lpam + endif + + rshd: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rshd + install -m$(DAEMONMODE) rshd $(INSTALLROOT)$(SBINDIR)/in.rshd +Index: netkit-rsh-0.17/rlogin/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rlogin/Makefile ++++ netkit-rsh-0.17/rlogin/Makefile +@@ -7,7 +7,7 @@ PROG=rlogin + OBJS=rlogin.o + + $(PROG): $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: $(PROG) + install -o root -m$(SUIDMODE) $(PROG) $(INSTALLROOT)$(BINDIR) +Index: netkit-rsh-0.17/rlogind/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rlogind/Makefile ++++ netkit-rsh-0.17/rlogind/Makefile +@@ -13,7 +13,7 @@ LIBS += -ldl -lpam -lpam_misc + endif + + rlogind: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + rlogind.o: pathnames.h logwtmp.h rlogind.h ../version.h + logwtmp.o: logwtmp.h +Index: netkit-rsh-0.17/rexecd/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rexecd/Makefile ++++ netkit-rsh-0.17/rexecd/Makefile +@@ -24,7 +24,7 @@ endif + CFLAGS += -DRESTRICT_FTP=1 + + rexecd: rexecd.o +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rexecd + install -m$(DAEMONMODE) rexecd $(INSTALLROOT)$(SBINDIR)/in.rexecd diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam new file mode 100644 index 000000000..072327a76 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam @@ -0,0 +1,10 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rsh" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +account include common-account +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit new file mode 100644 index 000000000..a842eb974 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit @@ -0,0 +1,21 @@ +# default: off +# description: +# The rshd server is a server for the rcmd(3) routine and, +# consequently, for the rsh(1) program. The server provides +# remote execution facilities with authentication based on +# privileged port numbers from trusted hosts. +# +service shell +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/sbin/tcpd + server_args = /usr/sbin/in.rshd -aL + disable = yes +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb new file mode 100644 index 000000000..e29369c49 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb @@ -0,0 +1,100 @@ +DESCRIPTION = "netkit-rsh includes the rsh daemon and client." +SECTION = "net" +HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +LICENSE = "BSD-4-Clause" +DEPENDS = "xinetd libgcrypt" + +LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \ + file://rsh-redone_link_order_file.patch \ + file://no_pam_build_fix.patch \ + file://rexec.xinetd.netkit \ + file://rlogin.xinetd.netkit \ + file://rsh.xinetd.netkit \ + file://netkit-rsh-0.17-rexec-ipv6.patch \ + file://fix-host-variable.patch \ +" + +SRC_URI[archive.md5sum] = "65f5f28e2fe22d9ad8b17bb9a10df096" +SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae692779914ad669" +SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3" +SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9" + +# Other support files +PAM_SRC_URI = "file://rexec.pam \ + file://rlogin.pam \ + file://rsh.pam" +SRC_URI += "${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + +inherit pkgconfig + +CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations" +LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt" + +PACKAGECONFIG ??= "" +PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam", "", d)}" +PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam" + +do_configure () { + ./configure --prefix=${prefix} --exec-prefix=${exec_prefix} + echo "INSTALLROOT=${D}" > MCONFIG + + if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + echo "USE_PAM=1" >> MCONFIG + fi + + # didn't want to patch these next changes + sed -i 's/netkit-//' ${S}/rsh/pathnames.h + sed -i 's/netkit-//' ${S}/rcp/pathnames.h +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'SUIDMODE=4755' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + install -d ${D}${sysconfdir}/pam.d + install -m 0644 debian/hosts.equiv ${D}/${sysconfdir} + install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec + install -m 0644 ${WORKDIR}/rlogin.pam ${D}/${sysconfdir}/pam.d/rlogin + install -m 0664 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh + fi + cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec + cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin + cp ${WORKDIR}/rsh.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rsh +} + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" + +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${sysconfdir}" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${sbindir}/.debug ${bindir}/.debug" + +ALTERNATIVE_PRIORITY = "80" +ALTERNATIVE_${PN}-client = "rcp rexec rlogin rsh" +ALTERNATIVE_${PN}-server = "rshd rexecd rlogind" +ALTERNATIVE_LINK_NAME[server] = "${bindir}/rshd" +ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd" +ALTERNATIVE_LINK_NAME[rexecd] = "${bindir}/rexecd" +ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" +ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind" +ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" + +RCONFLICTS_${PN}-server += "inetutils-rshd" +RPROVIDES_${PN}-server = "rshd" + +RDEPENDS_${PN}-server = "xinetd" +RDEPENDS_${PN}-server += "tcp-wrappers" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch new file mode 100644 index 000000000..d85178d71 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch @@ -0,0 +1,30 @@ +From c23cc112a480f90950de5cf1de09b1a7e732bf21 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Mon, 15 Dec 2014 18:31:13 -0800 +Subject: [PATCH] rpc.rusersd/Makefile: fix parallel build issue + +Fixed: +rusers.x: No such file or directory +Makefile:44: recipe for target 'rusers_xdr.c' failed + +Upstream-Status: Pending + +Signed-off-by: Robert Yang +--- + rpc.rusersd/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rpc.rusersd/Makefile b/rpc.rusersd/Makefile +index 792f528..65a424a 100644 +--- a/rpc.rusersd/Makefile ++++ b/rpc.rusersd/Makefile +@@ -40,5 +40,5 @@ rusers.x: + rusers.h: $(RUSERSX) rusers.x + $(RPCGEN) -h -o rusers.h rusers.x + +-rusers_xdr.c: $(RUSERSX) ++rusers_xdr.c: $(RUSERSX) rusers.x + $(RPCGEN) -c -C -o rusers_xdr.c rusers.x +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb new file mode 100644 index 000000000..24eb96f36 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb @@ -0,0 +1,70 @@ +DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to machines on local network \ + rusersd - Logged in users server" +HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e" +DEPENDS = " tcp-wrappers libtirpc rpcbind" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \ + file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \ +" + +SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602" +SRC_URI[archive.sha256sum] = "f00138651865ad2dcfec5dedda0cda403cb80c4ab68efcc3bbccafe198c24b6d" +SRC_URI[patch8.md5sum] = "1ff498113e0f920d92088092e5570bdc" +SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a2807643cd0f3067" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG + echo "USE_GLIBC=1" >> MCONFIG +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + sed -i 's/install -s/install/' rusers/Makefile + sed -i 's/install -s/install/' rup/Makefile + sed -i 's/install -s/install/' rpc.rusersd/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + # create the xinetd config file + cat >rusersd.conf <&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default new file mode 100644 index 000000000..62d3a942d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default @@ -0,0 +1,2 @@ +#Options for the rwhod daemon. +RWHOD_OPTIONS="-b" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb new file mode 100644 index 000000000..04baa4286 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb @@ -0,0 +1,83 @@ +DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)" +HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;name=patch13 \ + file://rwhod \ + file://rwhod.default \ +" +SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75" +SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7" +SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9" +SRC_URI[patch13.sha256sum] = "53aefa27d98b565bf756db57120c03bd224a238e45699d92076420272a6eba8e" + +inherit autotools-brokensep useradd update-rc.d update-alternatives + +CFLAGS += " -D_GNU_SOURCE" + +debian_do_patch() { + cd ${S} + while read line; do patch -p1 < ${WORKDIR}/debian/patches/$line; done < ${WORKDIR}/debian/patches/series +} + +python do_patch() { + bb.build.exec_func('debian_do_patch', d) + bb.build.exec_func('patch_do_patch', d) +} + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +do_install () { + # rwho & ruptime + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + #rwhod + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + sed -i 's/install -s/install/' rwho/Makefile + sed -i 's/install -s/install/' ruptime/Makefile + sed -i 's/install -s/install/' rwhod/Makefile + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + install -m 0644 ${WORKDIR}/rwhod.default ${D}${sysconfdir}/default/rwhod + install -m 755 ${WORKDIR}/rwhod ${D}${sysconfdir}/init.d + + mkdir -p -m 755 ${D}${localstatedir}/spool/rwho + chown -R rwhod ${D}${localstatedir}/spool/rwho +} + +pkg_postinst_${PN}-server() { + ${sysconfdir}/init.d/rwhod start +} + +pkg_postrm_${PN}-server() { + ${sysconfdir}/init.d/rwhod stop +} + +INITSCRIPT_NAME = "rwhod" +INITSCRIPT_PARAM = "defaults 85 15" + +USERADD_PACKAGES = "${PN}-server" +GROUPADD_PARAM_${PN}-server = "--system rwhod" +USERADD_PARAM_${PN}-server = "--system -g rwhod --home-dir ${localstatedir}/spool/rwho \ + --no-create-home --shell /bin/false rwhod" + +INSANE_SKIP_${PN} = "already-stripped" + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${localstatedir} ${sysconfdir}/default/* ${sysconfdir}/init.d/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug ${sbindir}/.debug" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch new file mode 100644 index 000000000..7fff8cffc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch @@ -0,0 +1,1217 @@ +From f09a6460a62aacb87bb8683d16aa3ce55848bf7e Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 28 Nov 2014 07:06:24 +0900 +Subject: [PATCH 1/2] To aviod buffer overflow in telnet + +This patch is from Fedora. + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + telnet/Makefile | 4 +- + telnet/commands.cc | 270 +++++++++++++++++++++++++++++++++++----------------- + telnet/defines.h | 2 + + telnet/externs.h | 7 +- + telnet/main.cc | 65 ++++++++++--- + telnet/netlink.cc | 78 +++++++++------ + telnet/netlink.h | 7 +- + telnet/network.cc | 1 + + telnet/proto.h | 2 +- + telnet/ring.cc | 2 +- + telnet/ring.h | 2 +- + telnet/sys_bsd.cc | 11 +++ + telnet/telnet.1 | 37 +++++-- + telnet/telnet.cc | 45 +++++---- + telnet/terminal.cc | 17 +++- + telnet/utilities.cc | 2 + + 16 files changed, 380 insertions(+), 172 deletions(-) + +diff --git a/telnet/Makefile b/telnet/Makefile +index cef866f..39249e1 100644 +--- a/telnet/Makefile ++++ b/telnet/Makefile +@@ -7,7 +7,7 @@ include ../MRULES + + # -DAUTHENTICATE + CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE +-LIBS += $(LIBTERMCAP) ++LIBS = $(LIBTERMCAP) + + SRCS = commands.cc main.cc network.cc ring.cc sys_bsd.cc telnet.cc \ + terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc +@@ -22,7 +22,7 @@ depend: + $(CXX) $(CXXFLAGS) -MM $(SRCS) >depend.mk + + install: telnet +- install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) ++ install -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) + install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1 + + clean: +diff --git a/telnet/commands.cc b/telnet/commands.cc +index d92bccd..02c593e 100644 +--- a/telnet/commands.cc ++++ b/telnet/commands.cc +@@ -86,10 +86,6 @@ char cmd_rcsid[] = + + #define HELPINDENT ((int) sizeof ("connect")) + +-#ifndef MAXHOSTNAMELEN +-#define MAXHOSTNAMELEN 64 +-#endif MAXHOSTNAMELEN +- + #if defined(HAS_IPPROTO_IP) && defined(IP_TOS) + int tos = -1; + #endif /* defined(HAS_IPPROTO_IP) && defined(IP_TOS) */ +@@ -98,7 +94,7 @@ static unsigned long sourceroute(char *arg, char **cpp, int *lenp); + + + char *hostname; +-static char _hostname[MAXHOSTNAMELEN]; ++static char *_hostname; + + //typedef int (*intrtn_t)(int argc, const char *argv[]); + +@@ -161,7 +157,7 @@ class command_entry { + assert(argc>=1); + if (nargs>=0 && argc!=nargs+1) { + fprintf(stderr, "Wrong number of arguments for command.\n"); +- fprintf(stderr, "Try %s ? for help\n", argv[0]); ++ fprintf(stderr, "Try ? %s for help\n", argv[0]); + return 0; /* is this right? */ + } + if (nargs==-2) { +@@ -480,6 +476,7 @@ static int send_wontcmd(const char *name, const char *) { + int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) { + char **cpp; + extern char *telopts[]; ++ long opt; + + if (isprefix(name, "help") || isprefix(name, "?")) { + register int col, len; +@@ -506,16 +503,23 @@ int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) { + name, cmd); + return 0; + } ++ ++ opt = cpp - telopts; + if (cpp == 0) { +- fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n", ++ char *end; ++ ++ opt = strtol(name, &end, 10); ++ if (*end || opt < 0 || opt > 255) { ++ fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n", + name, cmd); +- return 0; ++ return 0; ++ } + } + if (!connected) { + printf("?Need to be connected first.\n"); + return 0; + } +- (*func)(cpp - telopts, 1); ++ (*func)(opt, 1); + return 1; + } + +@@ -689,9 +693,9 @@ static struct togglelist Togglelist[] = { + "print encryption debugging information" }, + #endif + +- { "skiprc", "don't read ~/.telnetrc file", ++ { "skiprc", "don't read the telnetrc files", + NULL, &skiprc, +- "read ~/.telnetrc file" }, ++ "read the telnetrc files" }, + { "binary", + "sending and receiving of binary data", + togbinary, NULL, +@@ -1615,15 +1619,20 @@ void ayt_status(int) { + #endif + + int tn(int argc, const char *argv[]) { +- register struct hostent *host = 0; + struct sockaddr_in sn; +- struct servent *sp = 0; + char *srp = NULL; + int srlen; +- +- const char *cmd, *volatile user = 0; ++ int family = 0; ++ const char *cmd, *volatile user = 0, *srchostp = 0; + const char *portp = NULL; + char *hostp = NULL; ++ char *resolv_hostp; ++ struct addrinfo hints; ++ struct addrinfo *hostaddr = 0; ++ int res; ++ char name[NI_MAXHOST]; ++ char service[NI_MAXSERV]; ++ struct addrinfo *tmpaddr; + + /* clear the socket address prior to use */ + memset(&sn, 0, sizeof(sn)); +@@ -1632,6 +1641,10 @@ int tn(int argc, const char *argv[]) { + printf("?Already connected to %s\n", hostname); + return 0; + } ++ if (_hostname) { ++ delete[] _hostname; ++ _hostname = 0; ++ } + if (argc < 2) { + (void) strcpy(line, "open "); + printf("(to) "); +@@ -1657,11 +1670,33 @@ int tn(int argc, const char *argv[]) { + --argc; + continue; + } ++ if (strcmp(*argv, "-b") == 0) { ++ --argc; ++argv; ++ if (argc == 0) ++ goto usage; ++ srchostp = *argv++; ++ --argc; ++ continue; ++ } + if (strcmp(*argv, "-a") == 0) { + --argc; ++argv; + autologin = 1; + continue; + } ++ if (strcmp(*argv, "-6") == 0) { ++ --argc; ++argv; ++#ifdef AF_INET6 ++ family = AF_INET6; ++#else ++ puts("IPv6 unsupported"); ++#endif ++ continue; ++ } ++ if (strcmp(*argv, "-4") == 0) { ++ --argc; ++argv; ++ family = AF_INET; ++ continue; ++ } + if (hostp == 0) { + /* this leaks memory - FIXME */ + hostp = strdup(*argv++); +@@ -1680,6 +1715,8 @@ int tn(int argc, const char *argv[]) { + if (hostp == 0) + goto usage; + ++ resolv_hostp = hostp; ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + if (hostp[0] == '@' || hostp[0] == '!') { + if ((hostname = strrchr(hostp, ':')) == NULL) +@@ -1696,78 +1733,122 @@ int tn(int argc, const char *argv[]) { + } else { + sn.sin_addr.s_addr = temp; + sn.sin_family = AF_INET; ++ /* ++ * For source route we just make sure to get the IP given ++ * on the command line when looking up the port. ++ */ ++ resolv_hostp = inet_ntoa(sn.sin_addr); + } + } +- else { +-#endif +- if (inet_aton(hostp, &sn.sin_addr)) { +- sn.sin_family = AF_INET; +- strcpy(_hostname, hostp); +- hostname = _hostname; +- } +- else { +- host = gethostbyname(hostp); +- if (host) { +- sn.sin_family = host->h_addrtype; +- if (host->h_length > (int)sizeof(sn.sin_addr)) { +- host->h_length = sizeof(sn.sin_addr); +- } +-#if defined(h_addr) /* In 4.3, this is a #define */ +- memcpy((caddr_t)&sn.sin_addr, +- host->h_addr_list[0], host->h_length); +-#else /* defined(h_addr) */ +- memcpy((caddr_t)&sn.sin_addr, host->h_addr, host->h_length); +-#endif /* defined(h_addr) */ +- strncpy(_hostname, host->h_name, sizeof(_hostname)); +- _hostname[sizeof(_hostname)-1] = '\0'; +- hostname = _hostname; +- } else { +- herror(hostp); +- return 0; +- } +- } +-#if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) +- } + #endif ++ ++ /* User port or the default name of telnet. */ + if (portp) { + if (*portp == '-') { + portp++; + telnetport = 1; +- } else ++ } else { + telnetport = 0; +- sn.sin_port = atoi(portp); +- if (sn.sin_port == 0) { +- sp = getservbyname(portp, "tcp"); +- if (sp) +- sn.sin_port = sp->s_port; +- else { +- printf("%s: bad port number\n", portp); +- return 0; ++ if (*portp >='0' && *portp<='9') { ++ char *end; ++ long int p; ++ ++ p=strtol(portp, &end, 10); ++ if (ERANGE==errno && (LONG_MIN==p || LONG_MAX==p)) { ++ fprintf(stderr, "telnet: port %s overflows\n", portp); ++ return 0; ++ } else if (p<=0 || p>=65536) { ++ fprintf(stderr, "telnet: port %s out of range\n", portp); ++ return 0; ++ } + } +- } +- else { +- sn.sin_port = htons(sn.sin_port); + } +- } ++ } + else { +- if (sp == 0) { +- sp = getservbyname("telnet", "tcp"); +- if (sp == 0) { +- fprintf(stderr, "telnet: tcp/telnet: unknown service\n"); +- return 0; +- } +- sn.sin_port = sp->s_port; +- } ++ portp = "telnet"; + telnetport = 1; + } +- printf("Trying %s...\n", inet_ntoa(sn.sin_addr)); ++ ++ /* We only understand SOCK_STREAM sockets. */ ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_socktype = SOCK_STREAM; ++ hints.ai_flags = AI_NUMERICHOST; ++ hints.ai_family = family; ++ ++ if (srchostp) { ++ res = getaddrinfo(srchostp, "0", &hints, &hostaddr); ++ if (res) { ++ fprintf(stderr, "telnet: could not resolve %s: %s\n", srchostp, ++ gai_strerror(res)); ++ return 0; ++ } ++ hints.ai_family = hostaddr->ai_family; ++ res = nlink.bind(hostaddr); ++ freeaddrinfo(hostaddr); ++ if (res < 0) ++ return 0; ++ } ++ ++ /* Resolve both the host and service simultaneously. */ ++ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr); ++ if (res == EAI_NONAME) { ++ hints.ai_flags = AI_CANONNAME; ++ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr); ++ } else if (hostaddr) { ++ hostaddr->ai_canonname = 0; ++ } ++ if (res || !hostaddr) { ++ fprintf(stderr, "telnet: could not resolve %s/%s: %s\n", resolv_hostp, portp, gai_strerror(res)); ++ return 0; ++ } ++ ++ /* Try to connect to every listed round robin IP. */ ++ tmpaddr = hostaddr; ++ errno = 0; + do { +- int x = nlink.connect(debug, host, &sn, srp, srlen, tos); +- if (!x) return 0; +- else if (x==1) continue; ++ int x; ++ ++ if (!tmpaddr) { ++ if (errno) ++ perror("telnet: Unable to connect to remote host"); ++ else ++ fputs("telnet: Unable to connect to remote host: " ++ "Bad port number\n", stderr); ++err: ++ freeaddrinfo(hostaddr); ++ return 0; ++ } ++ ++ if (tmpaddr->ai_family == AF_UNIX) { ++nextaddr: ++ tmpaddr = tmpaddr->ai_next; ++ continue; ++ } ++ ++ getnameinfo(tmpaddr->ai_addr, tmpaddr->ai_addrlen, ++ name, sizeof(name), service, sizeof(service), ++ NI_NUMERICHOST | NI_NUMERICSERV); ++ ++ printf("Trying %s...\n", name); ++ x = nlink.connect(debug, tmpaddr, srp, srlen, tos); ++ if (!x) ++ goto err; ++ else if (x==1) ++ goto nextaddr; ++ + connected++; + } while (connected == 0); +- cmdrc(hostp, hostname); ++ if (tmpaddr->ai_canonname == 0) { ++ hostname = new char[strlen(hostp)+1]; ++ strcpy(hostname, hostp); ++ } ++ else { ++ hostname = new char[strlen(tmpaddr->ai_canonname)+1]; ++ strcpy(hostname, tmpaddr->ai_canonname); ++ } ++ ++ cmdrc(hostp, hostname, portp); ++ freeaddrinfo(hostaddr); + if (autologin && user == NULL) { + struct passwd *pw; + +@@ -2013,30 +2094,21 @@ static int help(command_table *tab, int argc, const char *argv[]) { + return 0; + } + +-static char *rcname = 0; +-static char rcbuf[128]; +- +-void cmdrc(const char *m1, const char *m2) { ++static void readrc(const char *m1, const char *m2, const char *port, ++ const char *rcname) ++{ + FILE *rcfile; + int gotmachine = 0; + int l1 = strlen(m1); + int l2 = strlen(m2); +- char m1save[64]; +- +- if (skiprc) return; ++ int lport = strlen(port); ++ char m1save[l1 + 1]; ++ char portsave[lport + 1]; + + strcpy(m1save, m1); + m1 = m1save; +- +- if (rcname == 0) { +- rcname = getenv("HOME"); +- if (rcname) +- strcpy(rcbuf, rcname); +- else +- rcbuf[0] = '\0'; +- strcat(rcbuf, "/.telnetrc"); +- rcname = rcbuf; +- } ++ strcpy(portsave, port); ++ port = portsave; + + rcfile = fopen(rcname, "r"); + if (!rcfile) return; +@@ -2061,6 +2133,13 @@ void cmdrc(const char *m1, const char *m2) { + strncpy(line, &line[7], sizeof(line) - 7); + else + continue; ++ ++ if (line[0] == ':') { ++ if (!strncasecmp(&line[1], port, lport)) ++ continue; ++ strncpy(line, &line[lport + 1], sizeof(line) - lport - 1); ++ } ++ + if (line[0] != ' ' && line[0] != '\t' && line[0] != '\n') + continue; + gotmachine = 1; +@@ -2073,6 +2152,21 @@ void cmdrc(const char *m1, const char *m2) { + fclose(rcfile); + } + ++void cmdrc(const char *m1, const char *m2, const char *port) { ++ char *rcname = NULL; ++ ++ if (skiprc) return; ++ ++ readrc(m1, m2, port, "/etc/telnetrc"); ++ if (asprintf (&rcname, "%s/.telnetrc", getenv ("HOME")) == -1) ++ { ++ perror ("asprintf"); ++ return; ++ } ++ readrc(m1, m2, port, rcname); ++ free (rcname); ++} ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + + /* +diff --git a/telnet/defines.h b/telnet/defines.h +index 2784400..d5edc46 100644 +--- a/telnet/defines.h ++++ b/telnet/defines.h +@@ -50,3 +50,5 @@ + #define MODE_COMMAND_LINE(m) ((m)==-1) + + #define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */ ++ ++#define MODE_OUT8 0x8000 /* binary mode sans -opost */ +diff --git a/telnet/externs.h b/telnet/externs.h +index 955df79..0730e8a 100644 +--- a/telnet/externs.h ++++ b/telnet/externs.h +@@ -48,9 +48,7 @@ + typedef unsigned char cc_t; + #endif + +-#ifdef __linux__ + #include /* get _POSIX_VDISABLE */ +-#endif + + #ifndef _POSIX_VDISABLE + #error "Please fix externs.h to define _POSIX_VDISABLE" +@@ -60,7 +58,8 @@ typedef unsigned char cc_t; + + extern int autologin; /* Autologin enabled */ + extern int skiprc; /* Don't process the ~/.telnetrc file */ +-extern int eight; /* use eight bit mode (binary in and/or out */ ++extern int eight; /* use eight bit mode (binary in and/or out) */ ++extern int binary; /* use binary option (in and/or out) */ + extern int flushout; /* flush output */ + extern int connected; /* Are we connected to the other side? */ + extern int globalmode; /* Mode tty should be in */ +@@ -225,6 +224,8 @@ cc_t *tcval(int); + + //#if 0 + extern struct termios new_tc; ++extern struct termios old_tc; ++ + + #define termEofChar new_tc.c_cc[VEOF] + #define termEraseChar new_tc.c_cc[VERASE] +diff --git a/telnet/main.cc b/telnet/main.cc +index b67f2ce..b626e54 100644 +--- a/telnet/main.cc ++++ b/telnet/main.cc +@@ -45,7 +45,10 @@ char main_rcsid[] = + + #include + #include ++#include + #include ++#include ++#include + + #include "ring.h" + #include "externs.h" +@@ -80,12 +83,13 @@ tninit(void) + void usage(void) { + fprintf(stderr, "Usage: %s %s%s%s%s\n", + prompt, +- " [-8] [-E] [-L] [-a] [-d] [-e char] [-l user] [-n tracefile]", +- "\n\t", ++ "[-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]", ++ "\n\t[-n tracefile] [ -b addr ]", + #ifdef TN3270 ++ "\n\t" + "[-noasynch] [-noasynctty] [-noasyncnet] [-r] [-t transcom]\n\t", + #else +- "[-r] ", ++ " [-r] ", + #endif + "[host-name [port]]" + ); +@@ -102,7 +106,8 @@ main(int argc, char *argv[]) + extern char *optarg; + extern int optind; + int ch; +- char *user; ++ char *user, *srcaddr; ++ int family; + + tninit(); /* Clear out things */ + #if defined(CRAY) && !defined(__STDC__) +@@ -110,21 +115,38 @@ main(int argc, char *argv[]) + #endif + + TerminalSaveState(); ++ if ((old_tc.c_cflag & (CSIZE|PARENB)) != CS8) ++ eight = 0; + + if ((prompt = strrchr(argv[0], '/'))!=NULL) + ++prompt; + else + prompt = argv[0]; + +- user = NULL; ++ user = srcaddr = NULL; ++ family = 0; + + rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE; + autologin = -1; + +- while ((ch = getopt(argc, argv, "8EKLS:X:ade:k:l:n:rt:x")) != EOF) { ++ while ((ch = getopt(argc, argv, ++ "4678EKLS:X:ab:de:k:l:n:rt:x")) != EOF) { + switch(ch) { ++ case '4': ++ family = AF_INET; ++ break; ++ case '6': ++#ifdef AF_INET6 ++ family = AF_INET6; ++#else ++ fputs("IPv6 unsupported\n", stderr); ++#endif ++ break; ++ case '7': ++ eight = 0; /* 7-bit ouput and input */ ++ break; + case '8': +- eight = 3; /* binary output and input */ ++ binary = 3; /* binary output and input */ + break; + case 'E': + rlogin = escapechar = _POSIX_VDISABLE; +@@ -133,23 +155,26 @@ main(int argc, char *argv[]) + //autologin = 0; + break; + case 'L': +- eight |= 2; /* binary output only */ ++ binary |= 2; /* binary output only */ + break; + case 'S': + { +-#ifdef HAS_GETTOS + extern int tos; ++ int num; + +- if ((tos = parsetos(optarg, "tcp")) < 0) ++#ifdef HAS_GETTOS ++ if ((num = parsetos(optarg, "tcp")) < 0) { ++#else ++ errno = 0; ++ num = strtol(optarg, 0, 0); ++ if (errno) { ++#endif + fprintf(stderr, "%s%s%s%s\n", + prompt, ": Bad TOS argument '", + optarg, + "; will try to use default TOS"); +-#else +- fprintf(stderr, +- "%s: Warning: -S ignored, no parsetos() support.\n", +- prompt); +-#endif ++ } else ++ tos = num; + } + break; + case 'X': +@@ -210,6 +235,9 @@ main(int argc, char *argv[]) + "%s: -x ignored, no encryption support.\n", + prompt); + break; ++ case 'b': ++ srcaddr = optarg; ++ break; + case '?': + default: + usage(); +@@ -233,6 +261,13 @@ main(int argc, char *argv[]) + *argp++ = "-l"; + *argp++ = user; + } ++ if (srcaddr) { ++ *argp++ = "-b"; ++ *argp++ = srcaddr; ++ } ++ if (family) { ++ *argp++ = family == AF_INET ? "-4" : "-6"; ++ } + *argp++ = argv[0]; /* host */ + if (argc > 1) + *argp++ = argv[1]; /* port */ +diff --git a/telnet/netlink.cc b/telnet/netlink.cc +index f439cff..f839747 100644 +--- a/telnet/netlink.cc ++++ b/telnet/netlink.cc +@@ -79,22 +79,61 @@ void netlink::close(int doshutdown) { + shutdown(net, 2); + } + ::close(net); ++ net = -1; + } + +-int netlink::connect(int debug, struct hostent *host, +- struct sockaddr_in *sn, +- char *srcroute, int srlen, int tos) ++int netlink::bind(struct addrinfo *addr) + { +- int on=1; ++ int res; ++ ++ res = socket(addr->ai_family); ++ if (res < 2) { ++ if (res == 1) ++ perror("telnet: socket"); ++ return -1; ++ } ++ ++ if (::bind(net, addr->ai_addr, addr->ai_addrlen) < 0) { ++ perror("telnet: bind"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int netlink::socket(int family) ++{ ++ if (this->family != family) ++ close(0); + +- net = socket(AF_INET, SOCK_STREAM, 0); + if (net < 0) { +- perror("telnet: socket"); +- return 0; ++ this->family = family; ++ net = ::socket(family, SOCK_STREAM, 0); ++ if (net < 0) { ++ if (errno == EAFNOSUPPORT) ++ return 1; ++ perror("telnet: socket"); ++ return 0; ++ } + } + ++ return 2; ++} ++ ++int netlink::connect(int debug, struct addrinfo *addr, ++ char *srcroute, int srlen, int tos) ++{ ++ int on=1; ++ int res; ++ ++ res = socket(addr->ai_family); ++ if (res < 2) ++ return res; ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + if (srcroute) { ++ if (addr->ai_family != AF_INET) ++ fputs("Source route is only supported for IPv4\n", stderr); + if (setsockopt(net, IPPROTO_IP, IP_OPTIONS, srcroute, srlen) < 0) + perror("setsockopt (IP_OPTIONS)"); + } +@@ -108,7 +147,7 @@ int netlink::connect(int debug, struct hostent *host, + #endif + if (tos < 0) tos = 020; /* Low Delay bit */ + if (tos && (setsockopt(net, IPPROTO_IP, IP_TOS, &tos, sizeof(int)) < 0) +- && (errno != ENOPROTOOPT)) ++ && (errno != ENOPROTOOPT) && (errno != EOPNOTSUPP)) + perror("telnet: setsockopt (IP_TOS) (ignored)"); + #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */ + +@@ -116,27 +155,8 @@ int netlink::connect(int debug, struct hostent *host, + perror("setsockopt (SO_DEBUG)"); + } + +- if (::connect(net, (struct sockaddr *)sn, sizeof(*sn)) < 0) { +-#if defined(h_addr) /* In 4.3, this is a #define */ +- if (host && host->h_addr_list[1]) { +- int oerrno = errno; +- +- fprintf(stderr, "telnet: connect to address %s: ", +- inet_ntoa(sn->sin_addr)); +- errno = oerrno; +- perror(NULL); +- host->h_addr_list++; +- if (host->h_length > (int)sizeof(sn->sin_addr)) { +- host->h_length = sizeof(sn->sin_addr); +- } +- memcpy(&sn->sin_addr, host->h_addr_list[0], host->h_length); +- close(net); +- return 1; +- } +-#endif /* defined(h_addr) */ +- +- perror("telnet: Unable to connect to remote host"); +- return 0; ++ if (::connect(net, addr->ai_addr, addr->ai_addrlen) < 0) { ++ return 1; + } + return 2; + } +diff --git a/telnet/netlink.h b/telnet/netlink.h +index 9852b30..0ac8a08 100644 +--- a/telnet/netlink.h ++++ b/telnet/netlink.h +@@ -1,13 +1,16 @@ + + class netlink { ++ private: ++ int family; + protected: + int net; + public: + netlink(); + ~netlink(); + +- int connect(int debug, struct hostent *host, +- struct sockaddr_in *sin, ++ int bind(struct addrinfo *hostaddr); ++ int socket(int family); ++ int connect(int debug, struct addrinfo *hostaddr, + char *srcroute, int srlen, + int tos); + void close(int doshutdown); +diff --git a/telnet/network.cc b/telnet/network.cc +index 6a2c374..0dcf3e2 100644 +--- a/telnet/network.cc ++++ b/telnet/network.cc +@@ -40,6 +40,7 @@ char net_rcsid[] = + #include + #include + #include ++#include + #include + #include + +diff --git a/telnet/proto.h b/telnet/proto.h +index 8be4a39..92f2419 100644 +--- a/telnet/proto.h ++++ b/telnet/proto.h +@@ -13,7 +13,7 @@ int TerminalWindowSize(long *rows, long *cols); + void auth_encrypt_user(char *); + void auth_name(unsigned char *, int); + void auth_printsub(unsigned char *, int, unsigned char *, int); +-void cmdrc(const char *m1, const char *m2); ++void cmdrc(const char *, const char *, const char *); + void env_init(void); + int getconnmode(void); + void init_network(void); +diff --git a/telnet/ring.cc b/telnet/ring.cc +index be57396..772c6c5 100644 +--- a/telnet/ring.cc ++++ b/telnet/ring.cc +@@ -165,7 +165,7 @@ int ringbuf::flush() { + + /////////////////////////////////////////////////// supply ////////////// + +-void ringbuf::printf(const char *format, ...) { ++void ringbuf::xprintf(const char *format, ...) { + char xbuf[256]; + va_list ap; + va_start(ap, format); +diff --git a/telnet/ring.h b/telnet/ring.h +index 15d3f3f..049377e 100644 +--- a/telnet/ring.h ++++ b/telnet/ring.h +@@ -83,7 +83,7 @@ class ringbuf { + // manual supply + void putch(char c) { write(&c, 1); } + void write(const char *buffer, int ct); +- void printf(const char *format, ...); ++ void xprintf(const char *format, ...); + int empty_count() { return size - count; } + + // automatic supply +diff --git a/telnet/sys_bsd.cc b/telnet/sys_bsd.cc +index 93fba7e..a8c9aab 100644 +--- a/telnet/sys_bsd.cc ++++ b/telnet/sys_bsd.cc +@@ -189,18 +189,25 @@ void NetSetPgrp(int fd) { + * Various signal handling routines. + */ + ++#if 0 + static void deadpeer(int /*sig*/) { + setcommandmode(); + siglongjmp(peerdied, -1); + } ++#endif + + static void intr(int /*sig*/) { + if (localchars) { + intp(); + } + else { ++#if 0 + setcommandmode(); + siglongjmp(toplevel, -1); ++#else ++ signal(SIGINT, SIG_DFL); ++ raise(SIGINT); ++#endif + } + } + +@@ -214,6 +221,8 @@ static void intr2(int /*sig*/) { + sendabort(); + return; + } ++ signal(SIGQUIT, SIG_DFL); ++ raise(SIGQUIT); + } + + #ifdef SIGWINCH +@@ -238,7 +247,9 @@ void ayt(int sig) { + void sys_telnet_init(void) { + signal(SIGINT, intr); + signal(SIGQUIT, intr2); ++#if 0 + signal(SIGPIPE, deadpeer); ++#endif + #ifdef SIGWINCH + signal(SIGWINCH, sendwin); + #endif +diff --git a/telnet/telnet.1 b/telnet/telnet.1 +index 54a47fb..8365e42 100644 +--- a/telnet/telnet.1 ++++ b/telnet/telnet.1 +@@ -42,8 +42,9 @@ + protocol + .Sh SYNOPSIS + .Nm telnet +-.Op Fl 8ELadr ++.Op Fl 468ELadr + .Op Fl S Ar tos ++.Op Fl b Ar address + .Op Fl e Ar escapechar + .Op Fl l Ar user + .Op Fl n Ar tracefile +@@ -68,6 +69,10 @@ command implicitly; see the description below. + .Pp + Options: + .Bl -tag -width indent ++.It Fl 4 ++Force IPv4 address resolution. ++.It Fl 6 ++Force IPv6 address resolution. + .It Fl 8 + Request 8-bit operation. This causes an attempt to negotiate the + .Dv TELNET BINARY +@@ -89,6 +94,8 @@ of the + option if supported by the remote system. The username is retrieved + via + .Xr getlogin 3 . ++.It Fl b Ar address ++Use bind(2) on the local socket to bind it to a specific local address. + .It Fl d + Sets the initial value of the + .Ic debug +@@ -474,17 +481,29 @@ protocol without making a mess. Protocol negotiation can be forced by + placing a dash before the port number. + .Pp + After establishing a connection, any commands associated with the +-remote host in the user's ++remote host in ++.Pa /etc/telnetrc ++and the user's + .Pa .telnetrc +-file are executed. ++file are executed, in that order. + .Pp +-The format of the .telnetrc file is as follows: Lines beginning with a ++The format of the telnetrc files is as follows: Lines beginning with a + #, and blank lines, are ignored. The rest of the file should consist + of hostnames and sequences of + .Nm telnet + commands to use with that host. Commands should be one per line, + indented by whitespace; lines beginning without whitespace are +-interpreted as hostnames. Upon connecting to a particular host, the ++interpreted as hostnames. Lines beginning with the special hostname ++.Ql DEFAULT ++will apply to all hosts. Hostnames including ++.Ql DEFAULT ++may be followed immediately by a colon and a port number or string. ++If a port is specified it must match exactly with what is specified ++on the command line. If no port was specified on the command line, ++then the value ++.Ql telnet ++is used. ++Upon connecting to a particular host, the + commands associated with that host are executed. + .It Ic quit + Close any open session and exit +@@ -1184,9 +1203,7 @@ escape sequences are preceded by a '*' to aid in locating them. + When the skiprc toggle is + .Dv TRUE , + .Tn telnet +-does not read the +-.Pa \&.telnetrc +-file. The initial value for this toggle is ++does not read the telnetrc files. The initial value for this toggle is + .Dv FALSE. + .It Ic termdata + Toggles the display of all terminal data (in hexadecimal format). +@@ -1239,7 +1256,9 @@ to the other side via the + .Dv TELNET ENVIRON + option. + .Sh FILES +-.Bl -tag -width ~/.telnetrc -compact ++.Bl -tag -width /etc/telnetrc -compact ++.It Pa /etc/telnetrc ++global telnet startup values + .It Pa ~/.telnetrc + user customized telnet startup values + .El +diff --git a/telnet/telnet.cc b/telnet/telnet.cc +index 4fc3b1f..7eca811 100644 +--- a/telnet/telnet.cc ++++ b/telnet/telnet.cc +@@ -88,7 +88,8 @@ char do_dont_resp[256]; + char will_wont_resp[256]; + + int +-eight = 0, ++ eight = 3, ++ binary = 0, + autologin = 0, /* Autologin anyone? */ + skiprc = 0, + connected, +@@ -639,14 +640,14 @@ static const char *gettermname(void) { + if (resettermname) { + resettermname = 0; + tname = env_getvalue("TERM", 0); +- if (!tname || my_setupterm(tname, 1, &err)) { ++ if (!tname /* || my_setupterm(tname, 1, &err) */) { + termbuf[0] = 0; + tname = "UNKNOWN"; + } + mklist(termbuf, tname, termtypes); + next = 0; + } +- if (next==termtypes.num()) next = 0; ++ if (next==termtypes.num()-1) next = 0; + return termtypes[next++]; + } + /* +@@ -681,7 +682,7 @@ static void suboption(void) { + } + #endif /* TN3270 */ + name = gettermname(); +- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE, ++ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE, + TELQUAL_IS, name, IAC, SE); + } + break; +@@ -693,7 +694,7 @@ static void suboption(void) { + if (SB_GET() == TELQUAL_SEND) { + long oospeed, iispeed; + TerminalSpeeds(&iispeed, &oospeed); +- netoring.printf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED, ++ netoring.xprintf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED, + TELQUAL_IS, oospeed, iispeed, IAC, SE); + } + break; +@@ -780,7 +781,7 @@ static void suboption(void) { + send_wont(TELOPT_XDISPLOC, 1); + break; + } +- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC, ++ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC, + TELQUAL_IS, dp, IAC, SE); + } + break; +@@ -798,7 +799,7 @@ void lm_will(unsigned char *cmd, int len) { + return; + } + +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + DONT, cmd[0], IAC, SE); + } + +@@ -815,7 +816,7 @@ void lm_do(unsigned char *cmd, int len) { + /*@*/ printf("lm_do: no command!!!\n"); /* Should not happen... */ + return; + } +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + WONT, cmd[0], IAC, SE); + } + +@@ -838,7 +839,7 @@ void lm_mode(unsigned char *cmd, int len, int init) { + k |= MODE_ACK; + } + +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE, + k, IAC, SE); + + setconnmode(0); /* set changed mode */ +@@ -933,11 +934,11 @@ void slc_mode_import(int def) { + + void slc_import(int def) { + if (def) { +- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + LM_SLC, 0, SLC_DEFAULT, 0, IAC, SE); + } + else { +- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + LM_SLC, 0, SLC_VARIABLE, 0, IAC, SE); + } + } +@@ -1050,6 +1051,7 @@ void slc_check(void) { + + + unsigned char slc_reply[128]; ++unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)]; + unsigned char *slc_replyp; + + void slc_start_reply(void) { +@@ -1061,6 +1063,14 @@ void slc_start_reply(void) { + } + + void slc_add_reply(int func, int flags, int value) { ++ /* A sequence of up to 6 bytes my be written for this member of the SLC ++ * suboption list by this function. The end of negotiation command, ++ * which is written by slc_end_reply(), will require 2 additional ++ * bytes. Do not proceed unless there is sufficient space for these ++ * items. ++ */ ++ if (&slc_replyp[6+2] > slc_reply_eom) ++ return; + if ((*slc_replyp++ = func) == IAC) + *slc_replyp++ = IAC; + if ((*slc_replyp++ = flags) == IAC) +@@ -1142,6 +1152,7 @@ void env_opt(unsigned char *buf, int len) { + } + } + ++/* OPT_REPLY_SIZE must be a multiple of 2. */ + #define OPT_REPLY_SIZE 256 + unsigned char *opt_reply; + unsigned char *opt_replyp; +@@ -1173,6 +1184,7 @@ void env_opt_start_info(void) { + + void env_opt_add(const char *ep) { + const char *vp; ++ const unsigned char *tp; + unsigned char c; + + if (opt_reply == NULL) /*XXX*/ +@@ -1185,11 +1197,12 @@ void env_opt_add(const char *ep) { + return; + } + vp = env_getvalue(ep, 1); +- if (opt_replyp + (vp ? strlen(vp) : 0) + strlen(ep) + 6 > opt_replyend) ++ tp = opt_replyp + (vp ? strlen(vp) * 2 : 0) + strlen(ep) * 2 + 6; ++ if (tp > opt_replyend) + { + register int len; +- opt_replyend += OPT_REPLY_SIZE; +- len = opt_replyend - opt_reply; ++ len = ((tp - opt_reply) + OPT_REPLY_SIZE - 1) & ~(OPT_REPLY_SIZE - 1); ++ opt_replyend = opt_reply + len; + opt_reply = (unsigned char *)realloc(opt_reply, len); + if (opt_reply == NULL) { + /*@*/ printf("env_opt_add: realloc() failed!!!\n"); +@@ -1740,8 +1753,8 @@ void telnet(const char * /*user*/) { + send_do(TELOPT_STATUS, 1); + if (env_getvalue("DISPLAY", 0)) + send_will(TELOPT_XDISPLOC, 1); +- if (eight) +- tel_enter_binary(eight); ++ if (binary) ++ tel_enter_binary(binary); + } + #endif /* !defined(TN3270) */ + +diff --git a/telnet/terminal.cc b/telnet/terminal.cc +index 9eb47ae..764f18f 100644 +--- a/telnet/terminal.cc ++++ b/telnet/terminal.cc +@@ -45,6 +45,8 @@ char terminal_rcsid[] = + #include + #include + #include ++#include ++#include + + #include "ring.h" + #include "defines.h" +@@ -155,9 +157,11 @@ int getconnmode(void) { + if (localflow) + mode |= MODE_FLOW; + +- if (my_want_state_is_will(TELOPT_BINARY)) ++ if ((eight & 1) || my_want_state_is_will(TELOPT_BINARY)) + mode |= MODE_INBIN; + ++ if (eight & 2) ++ mode |= MODE_OUT8; + if (his_want_state_is_will(TELOPT_BINARY)) + mode |= MODE_OUTBIN; + +@@ -449,10 +453,13 @@ void TerminalNewMode(int f) + // breaks SunOS. + tmp_tc.c_iflag |= ISTRIP; + } +- if (f & MODE_OUTBIN) { ++ if (f & (MODE_OUTBIN|MODE_OUT8)) { + tmp_tc.c_cflag &= ~(CSIZE|PARENB); + tmp_tc.c_cflag |= CS8; +- tmp_tc.c_oflag &= ~OPOST; ++ if (f & MODE_OUTBIN) ++ tmp_tc.c_oflag &= ~OPOST; ++ else ++ tmp_tc.c_oflag |= OPOST; + } else { + tmp_tc.c_cflag &= ~(CSIZE|PARENB); + tmp_tc.c_cflag |= old_tc.c_cflag & (CSIZE|PARENB); +@@ -468,7 +475,7 @@ void TerminalNewMode(int f) + + #ifdef SIGINFO + signal(SIGINFO, ayt); +-#endif SIGINFO ++#endif /* SIGINFO */ + + #if defined(NOKERNINFO) + tmp_tc.c_lflag |= NOKERNINFO; +@@ -504,7 +511,7 @@ void TerminalNewMode(int f) + + #ifdef SIGINFO + signal(SIGINFO, ayt_status); +-#endif SIGINFO ++#endif /* SIGINFO */ + + #ifdef SIGTSTP + signal(SIGTSTP, SIG_DFL); +diff --git a/telnet/utilities.cc b/telnet/utilities.cc +index 0448f0a..66839ab 100644 +--- a/telnet/utilities.cc ++++ b/telnet/utilities.cc +@@ -47,6 +47,8 @@ char util_rcsid[] = + #include + #include + #include ++#include ++#include + + #include "ring.h" + #include "defines.h" +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch new file mode 100644 index 000000000..b9a98f1d6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch @@ -0,0 +1,41 @@ +From 31362e4c0d02b4a2b952ad0dd32acfb573c442f3 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 28 Nov 2014 07:17:40 +0900 +Subject: [PATCH 2/2] WARNING Fix and modify "CFLAGS" + +WARNING: QA Issue: File '/usr/sbin/in.telnetd' from netkit-telnet was +already stripped, this will prevent future debugging! [already-stripped] + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + telnetd/Makefile | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/telnetd/Makefile b/telnetd/Makefile +index 72650b4..a4cf9fa 100644 +--- a/telnetd/Makefile ++++ b/telnetd/Makefile +@@ -9,7 +9,8 @@ include ../MRULES + # take out -DPARANOID_TTYS. + + CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \ +- -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS ++ -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \ ++ -DLOGIN_WRAPPER=\"/${libdir}/telnetlogin\" + # LIBS += $(LIBTERMCAP) + + OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \ +@@ -27,7 +28,7 @@ $(OBJS): defs.h ext.h pathnames.h telnetd.h logwtmp.h logout.h setproctitle.h + telnetd.o: ../version.h + + install: telnetd +- install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd ++ install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd + install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/ + install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8 + ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8 +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch new file mode 100644 index 000000000..b3fe36b7b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch @@ -0,0 +1,48 @@ +To support the cross-compile + +Upstream-Status: Pending + +make the configure to support the cross-compile, by only to compile the +target, and not to run it + +Roy Li +Index: netkit-telnet-0.17/configure +=================================================================== +--- netkit-telnet-0.17.orig/configure 2008-11-23 22:01:26.000000000 +0100 ++++ netkit-telnet-0.17/configure 2008-11-23 22:05:00.000000000 +0100 +@@ -94,7 +94,7 @@ + echo -n 'Checking if C compiler works... ' + if ( + $CC __conftest.c -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # Idiots belong shot! ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + else +@@ -141,7 +141,7 @@ + echo -n 'Checking if C++ compiler works... ' + if ( + $CXX __conftest.cc -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # Iditios belong shot! ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + else +@@ -284,7 +284,7 @@ + else + if ( + $CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # running still does not work./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo '-D__USE_BSD_SIGNAL' + CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL" +@@ -501,7 +501,7 @@ + EOF + if ( + $CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # argh! morons!./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'ok' + else diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd new file mode 100644 index 000000000..12204c71b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd @@ -0,0 +1,14 @@ +# default: on +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. +service telnet +{ + flags = REUSE + socket_type = stream + wait = no + user = root + server = /usr/sbin/in.telnetd + log_on_failure += USERID + disable = yes +} + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb new file mode 100644 index 000000000..9438adc0f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb @@ -0,0 +1,59 @@ +DESCRIPTION = "netkit-telnet includes the telnet daemon and client." +SECTION = "net" +DEPENDS = "ncurses" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef" + +SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \ + file://To-aviod-buffer-overflow-in-telnet.patch \ + file://Warning-fix-in-the-step-of-install.patch \ + file://telnet-xinetd \ + file://cross-compile.patch \ +" + +EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \ + MANMODE=644 MANDIR=${mandir}" + +do_configure () { + ./configure --prefix=${prefix} + sed -e 's#^CFLAGS=\(.*\)$#CFLAGS= -D_GNU_SOURCE \1#' \ + -e 's#^CXXFLAGS=\(.*\)$#CXXFLAGS= -D_GNU_SOURCE \1#' \ + -e 's#^LDFLAGS=.*$#LDFLAGS= ${LDFLAGS}#' \ + -i MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnetlogin +} + +do_install () { + install -d ${D}${bindir} + install -m 0755 telnet/telnet ${D}${bindir}/telnet.${PN} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man5 + install -d ${D}${mandir}/man8 + oe_runmake SUB=telnetd install + rm -rf ${D}${mandir}/man1 + install -D -m 4750 ${B}/telnetlogin/telnetlogin ${D}/${libdir}/telnetlogin + # fix up hardcoded paths + sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd + install -d ${D}/etc/xinetd.d/ + install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet +} + +pkg_postinst_${PN} () { +#!/bin/sh + update-alternatives --install ${bindir}/telnet telnet telnet.${PN} 100 +} + +pkg_prerm_${PN} () { +#!/bin/sh + update-alternatives --remove telnet telnet.${PN} 100 +} + +SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36" +SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00" +FILES_${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf new file mode 100644 index 000000000..7bc6ca96b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf @@ -0,0 +1,11 @@ +service tftp +{ + disable = no + socket_type = dgram + port = 69 + protocol = udp + wait = yes + user = nobody + server = /usr/sbin/in.tftpd + server_args = /tftpboot +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb new file mode 100644 index 000000000..67a541d25 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb @@ -0,0 +1,54 @@ +SUMMARY = "tftp - Trivial file transfer protocol client" +SECTION = "net" +LICENSE = "BSD-4-Clause" +DEPENDS = "tcp-wrappers" + +LIC_FILES_CHKSUM = "file://tftp/tftp.c;beginline=2;endline=3;md5=84d2cfe1e60863a7d82648734ba4d30c" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \ + file://tftp.conf \ +" + +SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8" +SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d" +SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c" +SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "CFLAGS=${CFLAGS}" > MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' 'CFLAGS=${CFLAGS}' +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + sed -i 's/install -s/install/' tftp/Makefile + sed -i 's/install -s/install/' tftpd/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + install ${WORKDIR}/tftp.conf ${D}/${sysconfdir}/xinetd.d/tftp +} + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${sysconfdir}/xinetd.d/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug ${sbindir}/.debug" + +RDEPENDS_${PN}-server = "tcp-wrappers xinetd" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb new file mode 100644 index 000000000..10e98a416 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb @@ -0,0 +1,42 @@ +SUMMARY = "ACCEL-PPP is a high performance VPN server application for linux" +HOMEPAGE = "http://sourceforge.net/apps/trac/accel-ppp/wiki" +SECTION = "net" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" + +DEPENDS = "openssl libpcre" + +inherit cmake + +PR = "r1" +PV = "1.7.3+git" + +SRCREV = "4acfa46c321a344b9a6ce4128e72d1e02828d8a0" +SRC_URI = "git://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp;branch=1.7" + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DBUILD_DRIVER=FALSE \ + -DCMAKE_INSTALL_PREFIX=${prefix} \ + -DCMAKE_BUILD_TYPE=Release \ + -DLOG_PGSQL=FALSE \ + -DRADIUS=FALSE \ + -DNETSNMP=FALSE \ +" +FILES_${PN}-dbg += "/usr/lib/${BPN}/.debug/*" + +PACKAGES =+ "${PN}-libs" +FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so" +INSANE_SKIP_${PN}-libs = "dev-so" +RDEPENDS_${PN} += "${PN}-libs" + +do_install_prepend() { + cmlist=`find ${S} -name CMakeLists.txt` + for file in $cmlist; do + sed -i -e "s:LIBRARY DESTINATION lib/accel-ppp:LIBRARY DESTINATION ${baselib}/accel-ppp:g" \ + -e "s:\${CMAKE_INSTALL_PREFIX}/lib/accel-ppp:\${CMAKE_INSTALL_PREFIX}/${baselib}/accel-ppp:g" \ + $cmlist + done +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init new file mode 100755 index 000000000..2b8fe18b3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init @@ -0,0 +1,66 @@ +#! /bin/sh +# /etc/init.d/snmpd: start snmp daemon. + +. /etc/init.d/functions + +test -x /usr/sbin/snmpd || exit 0 +test -x /usr/sbin/snmptrapd || exit 0 + +# Defaults +export MIBDIRS=/usr/share/snmp/mibs +SNMPDRUN=yes +SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid' +TRAPDRUN=no +TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid' +PIDFILE=/var/run/snmpd.pid +SPIDFILE=/var/run/snmptrapd.pid + +# Reads config file if exists (will override defaults above) +[ -r /etc/default/snmpd ] && . /etc/default/snmpd + +case "$1" in + start) + echo -n "Starting network management services:" + if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf -a ! -f "$PIDFILE" ]; then + start-stop-daemon -o --start --quiet --name snmpd --pidfile "$PIDFILE" \ + --exec /usr/sbin/snmpd -- $SNMPDOPTS + echo -n " snmpd" + fi + if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf -a ! -f "$SPIDFILE" ]; then + start-stop-daemon -o --start --quiet --name snmptrapd --pidfile "$SPIDFILE" \ + --exec /usr/sbin/snmptrapd -- $TRAPDOPTS + echo -n " snmptrapd" + fi + echo "." + + test ! -x /sbin/restorecon || /sbin/restorecon -FR /var/lib/net-snmp + ;; + stop) + echo -n "Stopping network management services:" + if [ -f "$PIDFILE" ] ; then + start-stop-daemon -o --stop --quiet --pidfile $PIDFILE --name snmpd + fi + echo -n " snmpd" + if [ -f "$SPIDFILE" ] ; then + start-stop-daemon -o --stop --quiet --pidfile $SPIDFILE --name snmptrapd + rm -rf $SPIDFILE + fi + echo -n " snmptrapd" + echo "." + ;; + status) + status /usr/sbin/snmpd; + exit $? + ;; + restart|reload|force-reload) + $0 stop + # Allow the daemons time to exit completely. + sleep 2 + $0 start + ;; + *) + echo "Usage: /etc/init.d/snmpd {start|stop|status|restart|reload|force-reload}" + exit 1 +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmpd.conf b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmpd.conf new file mode 100644 index 000000000..728171c42 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmpd.conf @@ -0,0 +1,422 @@ +############################################################################### +# +# EXAMPLE.conf: +# An example configuration file for configuring the ucd-snmp snmpd agent. +# +############################################################################### +# +# This file is intended to only be an example. If, however, you want +# to use it, it should be placed in /etc/snmp/snmpd.conf. +# When the snmpd agent starts up, this is where it will look for it. +# +# You might be interested in generating your own snmpd.conf file using +# the "snmpconf" program (perl script) instead. It's a nice menu +# based interface to writing well commented configuration files. Try it! +# +# Note: This file is automatically generated from EXAMPLE.conf.def. +# Do NOT read the EXAMPLE.conf.def file! Instead, after you have run +# configure & make, and then make sure you read the EXAMPLE.conf file +# instead, as it will tailor itself to your configuration. + +# All lines beginning with a '#' are comments and are intended for you +# to read. All other lines are configuration commands for the agent. + +# +# PLEASE: read the snmpd.conf(5) manual page as well! +# + + +############################################################################### +# Access Control +############################################################################### + +# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY +# KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO +# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE. + +# By far, the most common question I get about the agent is "why won't +# it work?", when really it should be "how do I configure the agent to +# allow me to access it?" +# +# By default, the agent responds to the "public" community for read +# only access, if run out of the box without any configuration file in +# place. The following examples show you other ways of configuring +# the agent so that you can change the community names, and give +# yourself write access as well. +# +# The following lines change the access permissions of the agent so +# that the COMMUNITY string provides read-only access to your entire +# NETWORK (EG: 10.10.10.0/24), and read/write access to only the +# localhost (127.0.0.1, not its real ipaddress). +# +# For more information, read the FAQ as well as the snmpd.conf(5) +# manual page. + +#### +# First, map the community name (COMMUNITY) into a security name +# (local and mynetwork, depending on where the request is coming +# from): + +# sec.name source community +com2sec paranoid default public +#com2sec readonly default public +#com2sec readwrite default private + +#### +# Second, map the security names into group names: + +# sec.model sec.name +group MyROSystem v1 paranoid +group MyROSystem v2c paranoid +group MyROSystem usm paranoid +group MyROGroup v1 readonly +group MyROGroup v2c readonly +group MyROGroup usm readonly +group MyRWGroup v1 readwrite +group MyRWGroup v2c readwrite +group MyRWGroup usm readwrite + +#### +# Third, create a view for us to let the groups have rights to: + +# incl/excl subtree mask +view all included .1 80 +view system included .iso.org.dod.internet.mgmt.mib-2.system + +#### +# Finally, grant the 2 groups access to the 1 view with different +# write permissions: + +# context sec.model sec.level match read write notif +access MyROSystem "" any noauth exact system none none +access MyROGroup "" any noauth exact all none none +access MyRWGroup "" any noauth exact all all none + +# ----------------------------------------------------------------------------- + + +############################################################################### +# System contact information +# + +# It is also possible to set the sysContact and sysLocation system +# variables through the snmpd.conf file. **PLEASE NOTE** that setting +# the value of these objects here makes these objects READ-ONLY +# (regardless of any access control settings). Any attempt to set the +# value of an object whose value is given here will fail with an error +# status of notWritable. + +syslocation Unknown (configure /etc/snmp/snmpd.local.conf) +syscontact Root (configure /etc/snmp/snmpd.local.conf) + +# Example output of snmpwalk: +# % snmpwalk -v 1 -c public localhost system +# system.sysDescr.0 = "SunOS name sun4c" +# system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4 +# system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55 +# system.sysContact.0 = "Me " +# system.sysName.0 = "name" +# system.sysLocation.0 = "Right here, right now." +# system.sysServices.0 = 72 + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Process checks. +# +# The following are examples of how to use the agent to check for +# processes running on the host. The syntax looks something like: +# +# proc NAME [MAX=0] [MIN=0] +# +# NAME: the name of the process to check for. It must match +# exactly (ie, http will not find httpd processes). +# MAX: the maximum number allowed to be running. Defaults to 0. +# MIN: the minimum number to be running. Defaults to 0. + +# +# Examples: +# + +# Make sure mountd is running +#proc mountd + +# Make sure there are no more than 4 ntalkds running, but 0 is ok too. +#proc ntalkd 4 + +# Make sure at least one sendmail, but less than or equal to 10 are running. +#proc sendmail 10 1 + +# A snmpwalk of the prTable would look something like this: +# +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.2 +# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2 +# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3 +# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd" +# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd" +# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail" +# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4 +# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10 +# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running." +# enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = "" +# enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = "" +# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0 +# +# Note that the errorFlag for mountd is set to 1 because one is not +# running (in this case an rpc.mountd is, but thats not good enough), +# and the ErrMessage tells you what's wrong. The configuration +# imposed in the snmpd.conf file is also shown. +# +# Special Case: When the min and max numbers are both 0, it assumes +# you want a max of infinity and a min of 1. +# + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Executables/scripts +# + +# +# You can also have programs run by the agent that return a single +# line of output and an exit code. Here are two examples. +# +# exec NAME PROGRAM [ARGS ...] +# +# NAME: A generic name. +# PROGRAM: The program to run. Include the path! +# ARGS: optional arguments to be passed to the program + +# a simple hello world +#exec echotest /bin/echo hello world + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +#exec shelltest /bin/sh /tmp/shtest + +# Then, +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8 +# enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1 +# enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2 +# enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest" +# enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest" +# enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world" +# enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.extTable.extEntry.extResult.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extResult.2 = 35 +# enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0 + +# Note that the second line of the /tmp/shtest shell script is cut +# off. Also note that the exit status of 35 was returned. + +# ----------------------------------------------------------------------------- + + +############################################################################### +# disk checks +# + +# The agent can check the amount of available disk space, and make +# sure it is above a set limit. + +# disk PATH [MIN=DEFDISKMINIMUMSPACE] +# +# PATH: mount path to the disk in question. +# MIN: Disks with space below this value will have the Mib's errorFlag set. +# Default value = DEFDISKMINIMUMSPACE. + +# Check the / partition and make sure it contains at least 10 megs. + +#disk / 10000 + +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.9 +# enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F +# enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0" +# enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000 +# enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130 +# enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325 +# enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092 +# enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# load average checks +# + +# load [1MAX=DEFMAXLOADAVE] [5MAX=DEFMAXLOADAVE] [15MAX=DEFMAXLOADAVE] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +#load 12 14 14 + +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.10 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3 +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15" +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36 +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Extensible sections. +# + +# This alleviates the multiple line output problem found in the +# previous executable mib by placing each mib in its own mib table: + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest + +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.50 +# enterprises.ucdavis.50.1.1 = 1 +# enterprises.ucdavis.50.2.1 = "shelltest" +# enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.50.100.1 = 35 +# enterprises.ucdavis.50.101.1 = "hello world." +# enterprises.ucdavis.50.101.2 = "hi there." +# enterprises.ucdavis.50.102.1 = 0 + +# Now the Output has grown to two lines, and we can see the 'hi +# there.' output as the second line from our shell script. +# +# Note that you must alter the mib.txt file to be correct if you want +# the .50.* outputs above to change to reasonable text descriptions. + +# Other ideas: +# +# exec .1.3.6.1.4.1.2021.51 ps /bin/ps +# exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top +# exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Pass through control. +# + +# Usage: +# pass MIBOID EXEC-COMMAND +# +# This will pass total control of the mib underneath the MIBOID +# portion of the mib to the EXEC-COMMAND. +# +# Note: You'll have to change the path of the passtest script to your +# source directory or install it in the given location. +# +# Example: (see the script for details) +# (commented out here since it requires that you place the +# script in the right location. (its not installed by default)) + +# pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/passtest + +# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255 +# enterprises.ucdavis.255.1 = "life the universe and everything" +# enterprises.ucdavis.255.2.1 = 42 +# enterprises.ucdavis.255.2.2 = OID: 42.42.42 +# enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42 +# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1 +# enterprises.ucdavis.255.5 = 42 +# enterprises.ucdavis.255.6 = Gauge: 42 +# +# % snmpget -v 1 -c public localhost .1.3.6.1.4.1.2021.255.5 +# enterprises.ucdavis.255.5 = 42 +# +# % snmpset -v 1 -c public localhost .1.3.6.1.4.1.2021.255.1 s "New string" +# enterprises.ucdavis.255.1 = "New string" +# + +# For specific usage information, see the man/snmpd.conf.5 manual page +# as well as the local/passtest script used in the above example. + +############################################################################### +# Subagent control +# + +# The agent can support subagents using a number of extension mechanisms. +# From the 4.2.1 release, AgentX support is being compiled in by default. +# However, this is still experimental code, so should not be used on +# critical production systems. +# Please see the file README.agentx for more details. +# +# If having read, marked, learnt and inwardly digested this information, +# you decide that you do wish to make use of this mechanism, simply +# uncomment the following directive. +# +# master agentx +# +# I repeat - this is *NOT* regarded as suitable for front-line production +# systems, though it is probably stable enough for day-to-day use. +# Probably. +# +# No refunds will be given. + +############################################################################### +# Further Information +# +# See the snmpd.conf manual page, and the output of "snmpd -H". +# MUCH more can be done with the snmpd.conf than is shown as an +# example here. diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmptrapd.conf b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmptrapd.conf new file mode 100644 index 000000000..8d2e4375e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/snmptrapd.conf @@ -0,0 +1,18 @@ +############################################################################### +# +# EXAMPLE.conf: +# An example configuration file for configuring the ucd-snmp snmptrapd agent. +# +############################################################################### +# +# This file is intended to only be an example. If, however, you want +# to use it, it should be placed in /etc/snmp/snmptrapd.conf. +# When the snmptrapd agent starts up, this is where it will look for it. +# +# All lines beginning with a '#' are comments and are intended for you +# to read. All other lines are configuration commands for the agent. + +# +# PLEASE: read the snmptrapd.conf(5) manual page as well! +# + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch new file mode 100644 index 000000000..c6401fed3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch @@ -0,0 +1,37 @@ +From 261a22096c79f8e6ef7b387514a74d208e4e5945 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 18:23:13 +0900 +Subject: [PATCH] config_os_headers: Error Fix + +ERROR: This autoconf log indicates errors, it looked at host include +and/or library paths while determining system capabilities. +cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories] +conftest.c:168:17: fatal error: pkg.h: No such file or directory + #include + ^ + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + configure.d/config_os_headers | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers +index 708aa09..0df32ca 100644 +--- a/configure.d/config_os_headers ++++ b/configure.d/config_os_headers +@@ -482,8 +482,8 @@ then + unset ac_cv_header_pkg_h + netsnmp_save_CPPFLAGS="$CPPFLAGS" + netsnmp_save_LDFLAGS="$LDFLAGS" +- CPPFLAGS="$CPPFLAGS -I/usr/local/include" +- LDFLAGS="$LDFLAGS -L/usr/local/lib" ++ CPPFLAGS="$CPPFLAGS" ++ LDFLAGS="$LDFLAGS" + AC_CHECK_HEADERS(pkg.h, + NETSNMP_SEARCH_LIBS(pkg_init, pkg, + AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng]))) +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch new file mode 100644 index 000000000..5866a95ed --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch @@ -0,0 +1,31 @@ +From e24fcd140f3f6dd18fd836b197c6d4bb773e50e7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= +Date: Wed, 4 Nov 2015 16:49:30 +0100 +Subject: [PATCH] config_os_libs2: Error Fix + +ERROR: This autoconf log indicates errors, it looked at host include +and/or library paths while determining system capabilities. +--- + configure.d/config_os_libs2 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 +index 47491e2..e3647f9 100644 +--- a/configure.d/config_os_libs2 ++++ b/configure.d/config_os_libs2 +@@ -226,10 +226,10 @@ if test "x$with_nl" != "xno"; then + case $target_os in + linux*) # Check for libnl (linux) + netsnmp_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="-I/usr/include/libnl3 $CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS" + NETSNMP_SEARCH_LIBS(nl_connect, nl-3, + [AC_CHECK_HEADERS(netlink/netlink.h) +- EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES -I/usr/include/libnl3"], ++ EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES"], + [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS]) + if test "x$ac_cv_header_netlink_netlink_h" != xyes; then + NETSNMP_SEARCH_LIBS(nl_connect, nl, [ +-- +2.5.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch new file mode 100644 index 000000000..af242fafb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch @@ -0,0 +1,33 @@ +From d3027a227bc0f603a5b650d01f97ee1dec515be5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 18 Sep 2015 00:28:45 -0400 +Subject: [PATCH] snmplib/keytools.c: Don't check for return from + EVP_MD_CTX_init() + +EVP_MD_CTX_init() API returns void, it fixes errors with new compilers + +snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/patches/1317/] + snmplib/keytools.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/snmplib/keytools.c b/snmplib/keytools.c +index 0ccb3a6..880fc14 100644 +--- a/snmplib/keytools.c ++++ b/snmplib/keytools.c +@@ -153,8 +153,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len, + ctx = EVP_MD_CTX_create(); + #else + ctx = malloc(sizeof(*ctx)); +- if (!EVP_MD_CTX_init(ctx)) +- return SNMPERR_GENERR; ++ EVP_MD_CTX_init(ctx); + #endif + #ifndef NETSNMP_DISABLE_MD5 + if (ISTRANSFORM(hashtype, HMACMD5Auth)) { +-- +2.5.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch new file mode 100644 index 000000000..6bd0f93c4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch @@ -0,0 +1,131 @@ +From 6b93e686bdb6a908d00595608646a05527a5326b Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 12:39:12 +0900 +Subject: [PATCH] the snmp_pdu_parse() function could leave incompletely parsed + varBind variables in the list of variables in case the parsing of the SNMP + PDU failed. If later processing tries to operate on the stale and + incompletely processed varBind (e.g. when printing the variables), this can + lead to e.g. crashes or, possibly, execution of arbitrary code + +Upstream-Status: Backport [net-snmp] + +Written-by: Robert Story +--- + snmplib/snmp_api.c | 53 ++++++++++++++++++++++++++++------------------------- + 1 file changed, 28 insertions(+), 25 deletions(-) + +diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c +index 191debf..15a2d39 100644 +--- a/snmplib/snmp_api.c ++++ b/snmplib/snmp_api.c +@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + u_char type; + u_char msg_type; + u_char *var_val; +- int badtype = 0; + size_t len; + size_t four; +- netsnmp_variable_list *vp = NULL; ++ netsnmp_variable_list *vp = NULL, *vplast = NULL; + oid objid[MAX_OID_LEN]; + u_char *p; + +@@ -4493,31 +4492,17 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + (ASN_SEQUENCE | ASN_CONSTRUCTOR), + "varbinds"); + if (data == NULL) +- return -1; ++ goto fail; + + /* + * get each varBind sequence + */ + while ((int) *length > 0) { +- netsnmp_variable_list *vptemp; +- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp)); +- if (NULL == vptemp) { +- return -1; +- } +- if (NULL == vp) { +- pdu->variables = vptemp; +- } else { +- vp->next_variable = vptemp; +- } +- vp = vptemp; ++ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list); ++ if (NULL == vp) ++ goto fail; + +- vp->next_variable = NULL; +- vp->val.string = NULL; + vp->name_length = MAX_OID_LEN; +- vp->name = NULL; +- vp->index = 0; +- vp->data = NULL; +- vp->dataFreeHook = NULL; + DEBUGDUMPSECTION("recv", "VarBind"); + data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type, + &vp->val_len, &var_val, length); +@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + vp->val.string = (u_char *) malloc(vp->val_len); + } + if (vp->val.string == NULL) { +- return -1; ++ goto fail; + } + p = asn_parse_string(var_val, &len, &vp->type, vp->val.string, + &vp->val_len); +@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + vp->val_len *= sizeof(oid); + vp->val.objid = (oid *) malloc(vp->val_len); + if (vp->val.objid == NULL) { +- return -1; ++ goto fail; + } + memmove(vp->val.objid, objid, vp->val_len); + break; +@@ -4631,7 +4616,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + case ASN_BIT_STR: + vp->val.bitstring = (u_char *) malloc(vp->val_len); + if (vp->val.bitstring == NULL) { +- return -1; ++ goto fail; + } + p = asn_parse_bitstring(var_val, &len, &vp->type, + vp->val.bitstring, &vp->val_len); +@@ -4640,12 +4625,30 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + break; + default: + snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type); +- badtype = -1; ++ goto fail; + break; + } + DEBUGINDENTADD(-4); ++ ++ if (NULL == vplast) { ++ pdu->variables = vp; ++ } else { ++ vplast->next_variable = vp; ++ } ++ vplast = vp; ++ vp = NULL; ++ + } +- return badtype; ++ return 0; ++ ++ fail: ++ DEBUGMSGTL(("recv", "error while parsing VarBindList\n")); ++ /** if we were parsing a var, remove it from the pdu and free it */ ++ if (vp) ++ snmp_free_var(vp); ++ ++ return -1; ++ + } + + /* +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch new file mode 100644 index 000000000..a360c3a12 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch @@ -0,0 +1,25 @@ +LIB_LDCONFIG_CMD failed since it is using a host dir $(libdir) +which is /usr/lib64 does not exist on host when compile 64bit +image. + +In fact, configuring dynamic linker run-time bindings is meaningless +at this step, If it is needed, Poky would write ldconfig scripts to +rpm-postinst for each recipe while do_package, in package.bbclass. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Roy.Li +--- +diff --git a/Makefile.top b/Makefile.top +index 862fb94..ed7dcfc 100644 +--- a/Makefile.top ++++ b/Makefile.top +@@ -86,7 +86,7 @@ LIBREVISION = 2 + LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o + LIB_EXTENSION = la + LIB_VERSION = +-LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir) ++LIB_LDCONFIG_CMD = echo "do not ldconfig\n" + LINK = $(LIBTOOL) --mode=link $(LINKCC) + # RANLIB = @RANLIB@ + RANLIB = : diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch new file mode 100644 index 000000000..74b0c12e0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch @@ -0,0 +1,35 @@ +net-snmp: add knob whether nlist.h are checked + +Previously, it still was checked when there was no nlish.h in sysroots directory. +Add knob to decide whether nlist.h are checked or not. + +Upstream-status: Pending + +Signed-off-by: Chong Lu +--- + configure.d/config_os_headers | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers +index d903f58..a05d30e 100644 +--- a/configure.d/config_os_headers ++++ b/configure.d/config_os_headers +@@ -31,6 +31,7 @@ AC_CHECK_HEADERS([getopt.h pthread.h regex.h ] dnl + [sys/un.h ]) + + # Library and Agent: ++if test "x$with_elf" != "xno"; then + AC_CHECK_HEADERS([nlist.h],,,[ + AC_INCLUDES_DEFAULT + [ +@@ -38,6 +39,7 @@ AC_INCLUDES_DEFAULT + #define LIBBSD_DISABLE_DEPRECATED 1 + #endif + ]]) ++fi + + # Library: + AC_CHECK_HEADERS([fcntl.h io.h kstat.h ] dnl +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch new file mode 100644 index 000000000..9fb19b3e0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch @@ -0,0 +1,37 @@ +From 4bb4024b395f19d36ab3569e2773ea80d8cc5261 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 14 Jan 2015 15:10:06 +0800 +Subject: [PATCH] testing: add the output format for ptest + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Jackie Huang +--- + testing/RUNTESTS | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/testing/RUNTESTS b/testing/RUNTESTS +index e11c969..fb90f76 100755 +--- a/testing/RUNTESTS ++++ b/testing/RUNTESTS +@@ -25,13 +25,17 @@ failed_count=0 + rm -f failed_tests + for i in "${srcdir}"/testing/fulltests/default/T*$1*; do + echo "RUNNING $i" ++ test_name=`basename $i` + ${srcdir}/testing/fulltests/support/simple_run $i + if [ $? = 0 ]; then ++ echo "PASS: $test_name" + success_count=`expr $success_count + 1` + else ++ echo "FAIL: $test_name" + failed_count=`expr $failed_count + 1` + echo "$i" >> failed_tests + fi ++ echo + done + + if [ -f failed_tests ]; then +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest new file mode 100755 index 000000000..2334217bc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest @@ -0,0 +1,4 @@ +#!/bin/sh + +cd testing +./RUNTESTS diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service new file mode 100644 index 000000000..447683f85 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service @@ -0,0 +1,13 @@ +[Unit] +Description=Simple Network Management Protocol (SNMP) Daemon. +After=syslog.target network.target + +[Service] +Type=notify +Environment=OPTIONS="-Ls0-6d" +EnvironmentFile=-/etc/default/snmpd +ExecStart=/usr/sbin/snmpd $OPTIONS -a -f +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmptrapd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmptrapd.service new file mode 100644 index 000000000..951f9f270 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/snmptrapd.service @@ -0,0 +1,13 @@ +[Unit] +Description=Simple Network Management Protocol (SNMP) Trap Daemon. +After=syslog.target network.target + +[Service] +Type=notify +Environment=OPTIONS="-Lsd" +EnvironmentFile=-/etc/default/snmptrapd +ExecStart=/usr/sbin/snmptrapd $OPTIONS -f +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch new file mode 100644 index 000000000..c6af8c0f3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch @@ -0,0 +1,1652 @@ +From 0cad0c6c36af2a2d589563804c9ed2b37b7085fb Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 14:37:02 +0900 +Subject: [PATCH] ystemd support backported from the master branch as of + 23/04/2012 (post 5.7.1, pre 5.8). + +The following commits have been cherry-picked: + +19499c3c90bf9d7b2b9e5d08baa26cc6bba28a11 +fef6cddfdb94da1a6b1fb768af62918b80f11fd3 +0641e43c694c485cbbffef0556efc4641bd3ff50 +76530a89f1c8bbd0b63acce63e10d5d4812a1a16 (conflict resolved) +bf108d7f1354f6276fc43c129963f2c49b9fc242 +3692875172352f72cf3afd0d35f355e83d7e421b +74412748067c685e1d8ab6ed3bcc3ca9c2774844 +86132e3f1e6ef7b4e0b96d8fa24e37c81b71b0e0 +63557cf8986a33dba1d4429b583a901361052c4f + +Upstream-Status: Backport + +Signed-off-by: Thomas Fitzsimmons +--- + README.systemd | 41 +++ + agent/snmpd.c | 33 +- + apps/snmptrapd.c | 32 +- + configure.d/config_modules_lib | 8 + + configure.d/config_project_with_enable | 9 + + dist/snmpd.servic | 18 + + dist/snmpd.socket | 17 + + dist/snmptrapd.service | 16 + + dist/snmptrapd.socket | 14 + + include/net-snmp/library/sd-daemon.h | 290 ++++++++++++++++ + snmplib/sd-daemon.c | 532 +++++++++++++++++++++++++++++ + snmplib/transports/snmpTCPDomain.c | 43 ++- + snmplib/transports/snmpTCPIPv6Domain.c | 46 ++- + snmplib/transports/snmpUDPIPv4BaseDomain.c | 33 +- + snmplib/transports/snmpUDPIPv6Domain.c | 34 +- + snmplib/transports/snmpUnixDomain.c | 66 ++-- + win32/libsnmp/Makefile.in | 6 + + win32/net-snmp/net-snmp-config.h | 2 + + win32/net-snmp/net-snmp-config.h.in | 2 + + 19 files changed, 1176 insertions(+), 66 deletions(-) + create mode 100644 README.systemd + create mode 100644 dist/snmpd.servic + create mode 100644 dist/snmpd.socket + create mode 100644 dist/snmptrapd.service + create mode 100644 dist/snmptrapd.socket + create mode 100644 include/net-snmp/library/sd-daemon.h + create mode 100644 snmplib/sd-daemon.c + +diff --git a/README.systemd b/README.systemd +new file mode 100644 +index 0000000..dba15d1 +--- /dev/null ++++ b/README.systemd +@@ -0,0 +1,41 @@ ++README.systemd ++-------------- ++Net-SNMP provides two daemons, which support systemd system manager. ++See http://www.freedesktop.org/wiki/Software/systemd to learn how ++systemd works. Both socket activation and notification is supported by these ++daemons. ++ ++To enable systemd support, the sources must be compiled with ++--with-systemd configure option. ++ ++snmpd - The SNMP agent ++---------------------- ++Socket activation od snmpd daemon is implemented, but it's discouraged. ++The reason is simple - snmpd not only listens and processes SNMP requests ++from network, but also gathers system statistics counters, sends traps and ++communicates with subagents. It even opens few netlink sockets. ++ ++In other words, snmpd should run from system start to properly work. ++This can be done in two ways: ++1) either as snmpd service unit with 'Type=notification' and without a socket ++ unit ++2) or as snmpd service unit with 'Type=simple', appropriate socket socket unit ++ and the snmpd service enabled. This way systemd creates the snmpd listening ++ socket early during boot and passes the sockets to snmpd slightly later ++ (but still during machine boot). This way systemd can paralelize start of ++ services, which depend on snmpd. Admins must adjust the socket file manually, ++ depending if the snmpd support AgentX, IPv6, SMUX etc. ++ ++snmpd should be started with '-f' command line parameter to disable forking - ++systemd does that for us automatically. ++ ++ ++snmptrapd - The trap processing daemon ++-------------------------------------- ++snmptrapd supports full socket activation and also notification (if needed). ++Both 'Type=simple' (with appropriate socket unit) and 'Type=notify' services ++will work. Again, '-f' parameter should be provided on snmptrapd command line. ++ ++If integration with SNMP agent using AgentX protocol is enabled, snmptrapd should ++start during boot and not after first SNMP trap arrives. Same rules as for snmpd ++applies then. +diff --git a/agent/snmpd.c b/agent/snmpd.c +index cfc7bce..116ee5c 100644 +--- a/agent/snmpd.c ++++ b/agent/snmpd.c +@@ -164,6 +164,10 @@ typedef long fd_mask; + + #endif + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + netsnmp_feature_want(logging_file) + netsnmp_feature_want(logging_stdio) + netsnmp_feature_want(logging_syslog) +@@ -443,19 +447,29 @@ main(int argc, char *argv[]) + int agent_mode = -1; + char *pid_file = NULL; + char option_compatability[] = "-Le"; ++#ifndef WIN32 ++ int prepared_sockets = 0; ++#endif + #if HAVE_GETPID + int fd; + FILE *PID; + #endif + + #ifndef WIN32 ++#ifndef NETSNMP_NO_SYSTEMD ++ /* check if systemd has sockets for us and don't close them */ ++ prepared_sockets = netsnmp_sd_listen_fds(0); ++#endif /* NETSNMP_NO_SYSTEMD */ ++ + /* + * close all non-standard file descriptors we may have + * inherited from the shell. + */ +- for (i = getdtablesize() - 1; i > 2; --i) { +- (void) close(i); +- } ++ if (!prepared_sockets) { ++ for (i = getdtablesize() - 1; i > 2; --i) { ++ (void) close(i); ++ } ++} + #endif /* #WIN32 */ + + /* +@@ -1107,6 +1121,19 @@ main(int argc, char *argv[]) + netsnmp_addrcache_initialise(); + + /* ++ * Let systemd know we're up. ++ */ ++#ifndef NETSNMP_NO_SYSTEMD ++ netsnmp_sd_notify(1, "READY=1\n"); ++ if (prepared_sockets) ++ /* ++ * Clear the environment variable, we already processed all the sockets ++ * by now. ++ */ ++ netsnmp_sd_listen_fds(1); ++#endif ++ ++ /* + * Forever monitor the dest_port for incoming PDUs. + */ + DEBUGMSGTL(("snmpd/main", "We're up. Starting to process data.\n")); +diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c +index bce0d47..c6a74ec 100644 +--- a/apps/snmptrapd.c ++++ b/apps/snmptrapd.c +@@ -125,6 +125,10 @@ SOFTWARE. + + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + #ifndef BSD4_3 + #define BSD4_2 + #endif +@@ -657,16 +661,25 @@ main(int argc, char *argv[]) + int agentx_subagent = 1; + #endif + netsnmp_trapd_handler *traph; ++#ifndef WIN32 ++ int prepared_sockets = 0; ++#endif + + + #ifndef WIN32 ++#ifndef NETSNMP_NO_SYSTEMD ++ /* check if systemd has sockets for us and don't close them */ ++ prepared_sockets = netsnmp_sd_listen_fds(0); ++#endif + /* + * close all non-standard file descriptors we may have + * inherited from the shell. + */ +- for (i = getdtablesize() - 1; i > 2; --i) { +- (void) close(i); +- } ++ if (!prepared_sockets) { ++ for (i = getdtablesize() - 1; i > 2; --i) { ++ (void) close(i); ++ } ++} + #endif /* #WIN32 */ + + #ifdef SIGTERM +@@ -1318,6 +1331,19 @@ main(int argc, char *argv[]) + #endif + #endif + ++ /* ++ * Let systemd know we're up. ++ */ ++#ifndef NETSNMP_NO_SYSTEMD ++ netsnmp_sd_notify(1, "READY=1\n"); ++ if (prepared_sockets) ++ /* ++ * Clear the environment variable, we already processed all the sockets ++ * by now. ++ */ ++ netsnmp_sd_listen_fds(1); ++#endif ++ + #ifdef WIN32SERVICE + trapd_status = SNMPTRAPD_RUNNING; + #endif +diff --git a/configure.d/config_modules_lib b/configure.d/config_modules_lib +index 362ba0a..bb69daa 100644 +--- a/configure.d/config_modules_lib ++++ b/configure.d/config_modules_lib +@@ -53,6 +53,14 @@ if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" + other_ftobjs_list="$other_ftobjs_list winpipe.ft" + fi + ++# Linux systemd ++if test "x$with_systemd" == "xyes"; then ++ other_src_list="$other_src_list sd-daemon.c" ++ other_objs_list="$other_objs_list sd-daemon.o" ++ other_lobjs_list="$other_lobjs_list sd-daemon.lo" ++ other_ftobjs_list="$other_ftobjs_list sd-daemon.ft" ++fi ++ + AC_SUBST(other_src_list) + AC_SUBST(other_objs_list) + AC_SUBST(other_lobjs_list) +diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable +index 61ba026..d782d12 100644 +--- a/configure.d/config_project_with_enable ++++ b/configure.d/config_project_with_enable +@@ -690,6 +690,15 @@ if test "x$with_dummy_values" != "xyes"; then + data for]) + fi + ++NETSNMP_ARG_WITH(systemd, ++[ --with-systemd Provide systemd support. See README.systemd ++ for details.]) ++# Define unless specifically suppressed (i.e., option defaults to false). ++if test "x$with_systemd" != "xyes"; then ++ AC_DEFINE(NETSNMP_NO_SYSTEMD, 1, ++ [If you don't want to integrate with systemd.]) ++fi ++ + NETSNMP_ARG_ENABLE(set-support, + [ --disable-set-support Do not allow SNMP set requests.]) + if test "x$enable_set_support" = "xno"; then +diff --git a/dist/snmpd.servic b/dist/snmpd.servic +new file mode 100644 +index 0000000..31391e5 +--- /dev/null ++++ b/dist/snmpd.servic +@@ -0,0 +1,18 @@ ++# ++# SNMP agent service file for systemd ++# ++# ++# The service should be enabled, i.e. snmpd should start during machine boot. ++# Socket activation shall not be used. See README.systemd for details. ++ ++[Unit] ++Description=Simple Network Management Protocol (SNMP) daemon. ++After=syslog.target network.target ++ ++[Service] ++# Type=notify is also supported. It should be set when snmpd.socket is not used. ++Type=simple ++ExecStart=/usr/sbin/snmpd -f ++ ++[Install] ++WantedBy=multi-user.target +diff --git a/dist/snmpd.socket b/dist/snmpd.socket +new file mode 100644 +index 0000000..7f3a2d9 +--- /dev/null ++++ b/dist/snmpd.socket +@@ -0,0 +1,17 @@ ++[Unit] ++Description=Socket listening for SNMP and AgentX messages ++ ++[Socket] ++ListenDatagram=0.0.0.0:161 ++# Uncomment other listening addresses as needed - TCP, UDP6, TCP6. ++# It must match listening addresses/ports defined in snmpd.service ++# or snmpd.conf. ++# ListenStream=0.0.0.0:161 ++# ListenDatagram=[::]:161 ++# ListenStream=[::]:161 ++# ++# Uncomment AgentX socket if snmpd.conf enables AgentX protocol. ++# ListenStream=/var/agentx/master ++ ++[Install] ++WantedBy=sockets.target +diff --git a/dist/snmptrapd.service b/dist/snmptrapd.service +new file mode 100644 +index 0000000..e88a5b4 +--- /dev/null ++++ b/dist/snmptrapd.service +@@ -0,0 +1,16 @@ ++# ++# SNMP trap-processing service file for systemd ++# ++ ++[Unit] ++Description=Simple Network Management Protocol (SNMP) Trap daemon. ++After=syslog.target network.target ++ ++[Service] ++# Type=notify is also supported. It should be set when snmptrapd.socket is not ++# used. ++Type=simple ++ExecStart=/usr/sbin/snmptrapd -f ++ ++[Install] ++WantedBy=multi-user.target +diff --git a/dist/snmptrapd.socket b/dist/snmptrapd.socket +new file mode 100644 +index 0000000..2d24fb8 +--- /dev/null ++++ b/dist/snmptrapd.socket +@@ -0,0 +1,14 @@ +++[Unit] +++Description=Socket listening for SNMP trap messages +++ +++[Socket] +++ListenDatagram=0.0.0.0:162 +++# Uncomment other listening addresses as needed - TCP, UDP6, TCP6. +++# It must match listening addresses/ports defined in snmptrapd.service +++# or snmptrapd.conf. +++# ListenStream=0.0.0.0:162 +++# ListenDatagram=[::]:162 +++# ListenStream=[::]:162 +++ +++[Install] +++WantedBy=sockets.target +diff --git a/include/net-snmp/library/sd-daemon.h b/include/net-snmp/library/sd-daemon.h +new file mode 100644 +index 0000000..85274c9 +--- /dev/null ++++ b/include/net-snmp/library/sd-daemon.h +@@ -0,0 +1,290 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++#ifndef SNMPD_SD_DAEMON_H ++#define SNMPD_SD_DAEMON_H ++ ++/*** ++ Copyright 2010 Lennart Poettering ++ ++ Permission is hereby granted, free of charge, to any person ++ obtaining a copy of this software and associated documentation files ++ (the "Software"), to deal in the Software without restriction, ++ including without limitation the rights to use, copy, modify, merge, ++ publish, distribute, sublicense, and/or sell copies of the Software, ++ and to permit persons to whom the Software is furnished to do so, ++ subject to the following conditions: ++ ++ The above copyright notice and this permission notice shall be ++ included in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++***/ ++ ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++#ifdef HAVE_INTTYPES_H ++#include ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* ++ Reference implementation of a few systemd related interfaces for ++ writing daemons. These interfaces are trivial to implement. To ++ simplify porting we provide this reference implementation. ++ Applications are welcome to reimplement the algorithms described ++ here if they do not want to include these two source files. ++ ++ The following functionality is provided: ++ ++ - Support for logging with log levels on stderr ++ - File descriptor passing for socket-based activation ++ - Daemon startup and status notification ++ - Detection of systemd boots ++ ++ You may compile this with -DDISABLE_SYSTEMD to disable systemd ++ support. This makes all those calls NOPs that are directly related to ++ systemd (i.e. only sd_is_xxx() will stay useful). ++ ++ Since this is drop-in code we don't want any of our symbols to be ++ exported in any case. Hence we declare hidden visibility for all of ++ them. ++ ++ You may find an up-to-date version of these source files online: ++ ++ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h ++ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c ++ ++ This should compile on non-Linux systems, too, but with the ++ exception of the sd_is_xxx() calls all functions will become NOPs. ++ ++ See sd-daemon(7) for more information. ++*/ ++ ++#ifndef _sd_printf_attr_ ++#if __GNUC__ >= 4 ++#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) ++#else ++#define _sd_printf_attr_(a,b) ++#endif ++#endif ++ ++/* ++ Log levels for usage on stderr: ++ ++ fprintf(stderr, SD_NOTICE "Hello World!\n"); ++ ++ This is similar to printk() usage in the kernel. ++*/ ++#define SD_EMERG "<0>" /* system is unusable */ ++#define SD_ALERT "<1>" /* action must be taken immediately */ ++#define SD_CRIT "<2>" /* critical conditions */ ++#define SD_ERR "<3>" /* error conditions */ ++#define SD_WARNING "<4>" /* warning conditions */ ++#define SD_NOTICE "<5>" /* normal but significant condition */ ++#define SD_INFO "<6>" /* informational */ ++#define SD_DEBUG "<7>" /* debug-level messages */ ++ ++/* The first passed file descriptor is fd 3 */ ++#define SD_LISTEN_FDS_START 3 ++ ++/* ++ Returns how many file descriptors have been passed, or a negative ++ errno code on failure. Optionally, removes the $LISTEN_FDS and ++ $LISTEN_PID file descriptors from the environment (recommended, but ++ problematic in threaded environments). If r is the return value of ++ this function you'll find the file descriptors passed as fds ++ SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative ++ errno style error code on failure. This function call ensures that ++ the FD_CLOEXEC flag is set for the passed file descriptors, to make ++ sure they are not passed on to child processes. If FD_CLOEXEC shall ++ not be set, the caller needs to unset it after this call for all file ++ descriptors that are used. ++ ++ See sd_listen_fds(3) for more information. ++*/ ++int netsnmp_sd_listen_fds(int unset_environment); ++ ++/* ++ Helper call for identifying a passed file descriptor. Returns 1 if ++ the file descriptor is a FIFO in the file system stored under the ++ specified path, 0 otherwise. If path is NULL a path name check will ++ not be done and the call only verifies if the file descriptor ++ refers to a FIFO. Returns a negative errno style error code on ++ failure. ++ ++ See sd_is_fifo(3) for more information. ++*/ ++int netsnmp_sd_is_fifo(int fd, const char *path); ++ ++/* ++ Helper call for identifying a passed file descriptor. Returns 1 if ++ the file descriptor is a special character device on the file ++ system stored under the specified path, 0 otherwise. ++ If path is NULL a path name check will not be done and the call ++ only verifies if the file descriptor refers to a special character. ++ Returns a negative errno style error code on failure. ++ ++ See sd_is_special(3) for more information. ++*/ ++int netsnmp_sd_is_special(int fd, const char *path); ++ ++/* ++ Helper call for identifying a passed file descriptor. Returns 1 if ++ the file descriptor is a socket of the specified family (AF_INET, ++ ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If ++ family is 0 a socket family check will not be done. If type is 0 a ++ socket type check will not be done and the call only verifies if ++ the file descriptor refers to a socket. If listening is > 0 it is ++ verified that the socket is in listening mode. (i.e. listen() has ++ been called) If listening is == 0 it is verified that the socket is ++ not in listening mode. If listening is < 0 no listening mode check ++ is done. Returns a negative errno style error code on failure. ++ ++ See sd_is_socket(3) for more information. ++*/ ++int netsnmp_sd_is_socket(int fd, int family, int type, int listening); ++ ++/* ++ Helper call for identifying a passed file descriptor. Returns 1 if ++ the file descriptor is an Internet socket, of the specified family ++ (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM, ++ SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version ++ check is not done. If type is 0 a socket type check will not be ++ done. If port is 0 a socket port check will not be done. The ++ listening flag is used the same way as in sd_is_socket(). Returns a ++ negative errno style error code on failure. ++ ++ See sd_is_socket_inet(3) for more information. ++*/ ++int netsnmp_sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port); ++ ++/* ++ Helper call for identifying a passed file descriptor. Returns 1 if ++ the file descriptor is an AF_UNIX socket of the specified type ++ (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0 ++ a socket type check will not be done. If path is NULL a socket path ++ check will not be done. For normal AF_UNIX sockets set length to ++ 0. For abstract namespace sockets set length to the length of the ++ socket name (including the initial 0 byte), and pass the full ++ socket path in path (including the initial 0 byte). The listening ++ flag is used the same way as in sd_is_socket(). Returns a negative ++ errno style error code on failure. ++ ++ See sd_is_socket_unix(3) for more information. ++*/ ++int netsnmp_sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length); ++ ++/* ++ Informs systemd about changed daemon state. This takes a number of ++ newline separated environment-style variable assignments in a ++ string. The following variables are known: ++ ++ READY=1 Tells systemd that daemon startup is finished (only ++ relevant for services of Type=notify). The passed ++ argument is a boolean "1" or "0". Since there is ++ little value in signaling non-readiness the only ++ value daemons should send is "READY=1". ++ ++ STATUS=... Passes a single-line status string back to systemd ++ that describes the daemon state. This is free-from ++ and can be used for various purposes: general state ++ feedback, fsck-like programs could pass completion ++ percentages and failing programs could pass a human ++ readable error message. Example: "STATUS=Completed ++ 66% of file system check..." ++ ++ ERRNO=... If a daemon fails, the errno-style error code, ++ formatted as string. Example: "ERRNO=2" for ENOENT. ++ ++ BUSERROR=... If a daemon fails, the D-Bus error-style error ++ code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut" ++ ++ MAINPID=... The main pid of a daemon, in case systemd did not ++ fork off the process itself. Example: "MAINPID=4711" ++ ++ Daemons can choose to send additional variables. However, it is ++ recommended to prefix variable names not listed above with X_. ++ ++ Returns a negative errno-style error code on failure. Returns > 0 ++ if systemd could be notified, 0 if it couldn't possibly because ++ systemd is not running. ++ ++ Example: When a daemon finished starting up, it could issue this ++ call to notify systemd about it: ++ ++ sd_notify(0, "READY=1"); ++ ++ See sd_notifyf() for more complete examples. ++ ++ See sd_notify(3) for more information. ++*/ ++int netsnmp_sd_notify(int unset_environment, const char *state); ++ ++/* ++ Similar to sd_notify() but takes a format string. ++ ++ Example 1: A daemon could send the following after initialization: ++ ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Processing requests...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++ ++ Example 2: A daemon could send the following shortly before ++ exiting, on failure: ++ ++ sd_notifyf(0, "STATUS=Failed to start up: %s\n" ++ "ERRNO=%i", ++ strerror(errno), ++ errno); ++ ++ See sd_notifyf(3) for more information. ++*/ ++int netsnmp_sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3); ++ ++/* ++ Returns > 0 if the system was booted with systemd. Returns < 0 on ++ error. Returns 0 if the system was not booted with systemd. Note ++ that all of the functions above handle non-systemd boots just ++ fine. You should NOT protect them with a call to this function. Also ++ note that this function checks whether the system, not the user ++ session is controlled by systemd. However the functions above work ++ for both user and system services. ++ ++ See sd_booted(3) for more information. ++*/ ++int netsnmp_sd_booted(void); ++ ++/** ++ * Find an socket with given parameters. See man sd_is_socket_inet for ++ * description of the arguments. ++ * ++ * Returns the file descriptor if it is found, 0 otherwise. ++ */ ++int netsnmp_sd_find_inet_socket(int family, int type, int listening, int port); ++ ++/** ++ * Find an unix socket with given parameters. See man sd_is_socket_unix for ++ * description of the arguments. ++ * ++ * Returns the file descriptor if it is found, 0 otherwise. ++ */ ++int ++netsnmp_sd_find_unix_socket(int type, int listening, const char *path); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* SNMPD_SD_DAEMON_H */ +diff --git a/snmplib/sd-daemon.c b/snmplib/sd-daemon.c +new file mode 100644 +index 0000000..42dba29 +--- /dev/null ++++ b/snmplib/sd-daemon.c +@@ -0,0 +1,532 @@ ++/* ++ * Systemd integration parts. ++ * ++ * Most of this file is directly copied from systemd sources. ++ * Changes: ++ * - all functions were renamed to have netsnmp_ prefix ++ * - includes were changed to match Net-SNMP style. ++ * - removed gcc export macros ++ * - removed POSIX message queues ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#ifndef NETSNMP_NO_SYSTEMD ++ ++/*** ++ Copyright 2010 Lennart Poettering ++ ++ Permission is hereby granted, free of charge, to any person ++ obtaining a copy of this software and associated documentation files ++ (the "Software"), to deal in the Software without restriction, ++ including without limitation the rights to use, copy, modify, merge, ++ publish, distribute, sublicense, and/or sell copies of the Software, ++ and to permit persons to whom the Software is furnished to do so, ++ subject to the following conditions: ++ ++ The above copyright notice and this permission notice shall be ++ included in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++***/ ++ ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++int netsnmp_sd_listen_fds(int unset_environment) { ++ ++ int r, fd; ++ const char *e; ++ char *p = NULL; ++ unsigned long l; ++ ++ if (!(e = getenv("LISTEN_PID"))) { ++ r = 0; ++ goto finish; ++ } ++ ++ errno = 0; ++ l = strtoul(e, &p, 10); ++ ++ if (errno != 0) { ++ r = -errno; ++ goto finish; ++ } ++ ++ if (!p || *p || l <= 0) { ++ r = -EINVAL; ++ goto finish; ++ } ++ ++ /* Is this for us? */ ++ if (getpid() != (pid_t) l) { ++ r = 0; ++ goto finish; ++ } ++ ++ if (!(e = getenv("LISTEN_FDS"))) { ++ r = 0; ++ goto finish; ++ } ++ ++ errno = 0; ++ l = strtoul(e, &p, 10); ++ ++ if (errno != 0) { ++ r = -errno; ++ goto finish; ++ } ++ ++ if (!p || *p) { ++ r = -EINVAL; ++ goto finish; ++ } ++ ++ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) { ++ int flags; ++ ++ if ((flags = fcntl(fd, F_GETFD)) < 0) { ++ r = -errno; ++ goto finish; ++ } ++ ++ if (flags & FD_CLOEXEC) ++ continue; ++ ++ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { ++ r = -errno; ++ goto finish; ++ } ++ } ++ ++ r = (int) l; ++ ++finish: ++ if (unset_environment) { ++ unsetenv("LISTEN_PID"); ++ unsetenv("LISTEN_FDS"); ++ } ++ ++ return r; ++} ++ ++int netsnmp_sd_is_fifo(int fd, const char *path) { ++ struct stat st_fd; ++ ++ if (fd < 0) ++ return -EINVAL; ++ ++ memset(&st_fd, 0, sizeof(st_fd)); ++ if (fstat(fd, &st_fd) < 0) ++ return -errno; ++ ++ if (!S_ISFIFO(st_fd.st_mode)) ++ return 0; ++ ++ if (path) { ++ struct stat st_path; ++ ++ memset(&st_path, 0, sizeof(st_path)); ++ if (stat(path, &st_path) < 0) { ++ ++ if (errno == ENOENT || errno == ENOTDIR) ++ return 0; ++ ++ return -errno; ++ } ++ ++ return ++ st_path.st_dev == st_fd.st_dev && ++ st_path.st_ino == st_fd.st_ino; ++ } ++ ++ return 1; ++} ++ ++int netsnmp_sd_is_special(int fd, const char *path) { ++ struct stat st_fd; ++ ++ if (fd < 0) ++ return -EINVAL; ++ ++ if (fstat(fd, &st_fd) < 0) ++ return -errno; ++ ++ if (!S_ISREG(st_fd.st_mode) && !S_ISCHR(st_fd.st_mode)) ++ return 0; ++ ++ if (path) { ++ struct stat st_path; ++ ++ if (stat(path, &st_path) < 0) { ++ ++ if (errno == ENOENT || errno == ENOTDIR) ++ return 0; ++ ++ return -errno; ++ } ++ ++ if (S_ISREG(st_fd.st_mode) && S_ISREG(st_path.st_mode)) ++ return ++ st_path.st_dev == st_fd.st_dev && ++ st_path.st_ino == st_fd.st_ino; ++ else if (S_ISCHR(st_fd.st_mode) && S_ISCHR(st_path.st_mode)) ++ return st_path.st_rdev == st_fd.st_rdev; ++ else ++ return 0; ++ } ++ ++ return 1; ++} ++ ++static int sd_is_socket_internal(int fd, int type, int listening) { ++ struct stat st_fd; ++ ++ if (fd < 0 || type < 0) ++ return -EINVAL; ++ ++ if (fstat(fd, &st_fd) < 0) ++ return -errno; ++ ++ if (!S_ISSOCK(st_fd.st_mode)) ++ return 0; ++ ++ if (type != 0) { ++ int other_type = 0; ++ socklen_t l = sizeof(other_type); ++ ++ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0) ++ return -errno; ++ ++ if (l != sizeof(other_type)) ++ return -EINVAL; ++ ++ if (other_type != type) ++ return 0; ++ } ++ ++ if (listening >= 0) { ++ int accepting = 0; ++ socklen_t l = sizeof(accepting); ++ ++ if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0) ++ return -errno; ++ ++ if (l != sizeof(accepting)) ++ return -EINVAL; ++ ++ if (!accepting != !listening) ++ return 0; ++ } ++ ++ return 1; ++} ++ ++union sockaddr_union { ++ struct sockaddr sa; ++ struct sockaddr_in in4; ++ struct sockaddr_in6 in6; ++ struct sockaddr_un un; ++ struct sockaddr_storage storage; ++}; ++ ++int netsnmp_sd_is_socket(int fd, int family, int type, int listening) { ++ int r; ++ ++ if (family < 0) ++ return -EINVAL; ++ ++ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) ++ return r; ++ ++ if (family > 0) { ++ union sockaddr_union sockaddr; ++ socklen_t l; ++ ++ memset(&sockaddr, 0, sizeof(sockaddr)); ++ l = sizeof(sockaddr); ++ ++ if (getsockname(fd, &sockaddr.sa, &l) < 0) ++ return -errno; ++ ++ if (l < sizeof(sa_family_t)) ++ return -EINVAL; ++ ++ return sockaddr.sa.sa_family == family; ++ } ++ ++ return 1; ++} ++ ++int netsnmp_sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) { ++ union sockaddr_union sockaddr; ++ socklen_t l; ++ int r; ++ ++ if (family != 0 && family != AF_INET && family != AF_INET6) ++ return -EINVAL; ++ ++ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) ++ return r; ++ ++ memset(&sockaddr, 0, sizeof(sockaddr)); ++ l = sizeof(sockaddr); ++ ++ if (getsockname(fd, &sockaddr.sa, &l) < 0) ++ return -errno; ++ ++ if (l < sizeof(sa_family_t)) ++ return -EINVAL; ++ ++ if (sockaddr.sa.sa_family != AF_INET && ++ sockaddr.sa.sa_family != AF_INET6) ++ return 0; ++ ++ if (family > 0) ++ if (sockaddr.sa.sa_family != family) ++ return 0; ++ ++ if (port > 0) { ++ if (sockaddr.sa.sa_family == AF_INET) { ++ if (l < sizeof(struct sockaddr_in)) ++ return -EINVAL; ++ ++ return htons(port) == sockaddr.in4.sin_port; ++ } else { ++ if (l < sizeof(struct sockaddr_in6)) ++ return -EINVAL; ++ ++ return htons(port) == sockaddr.in6.sin6_port; ++ } ++ } ++ ++ return 1; ++} ++ ++int netsnmp_sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) { ++ union sockaddr_union sockaddr; ++ socklen_t l; ++ int r; ++ ++ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) ++ return r; ++ ++ memset(&sockaddr, 0, sizeof(sockaddr)); ++ l = sizeof(sockaddr); ++ ++ if (getsockname(fd, &sockaddr.sa, &l) < 0) ++ return -errno; ++ ++ if (l < sizeof(sa_family_t)) ++ return -EINVAL; ++ ++ if (sockaddr.sa.sa_family != AF_UNIX) ++ return 0; ++ ++ if (path) { ++ if (length <= 0) ++ length = strlen(path); ++ ++ if (length <= 0) ++ /* Unnamed socket */ ++ return l == offsetof(struct sockaddr_un, sun_path); ++ ++ if (path[0]) ++ /* Normal path socket */ ++ return ++ (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) && ++ memcmp(path, sockaddr.un.sun_path, length+1) == 0; ++ else ++ /* Abstract namespace socket */ ++ return ++ (l == offsetof(struct sockaddr_un, sun_path) + length) && ++ memcmp(path, sockaddr.un.sun_path, length) == 0; ++ } ++ ++ return 1; ++} ++ ++int netsnmp_sd_notify(int unset_environment, const char *state) { ++ int fd = -1, r; ++ struct msghdr msghdr; ++ struct iovec iovec; ++ union sockaddr_union sockaddr; ++ const char *e; ++ ++ if (!state) { ++ r = -EINVAL; ++ goto finish; ++ } ++ ++ if (!(e = getenv("NOTIFY_SOCKET"))) ++ return 0; ++ ++ /* Must be an abstract socket, or an absolute path */ ++ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) { ++ r = -EINVAL; ++ goto finish; ++ } ++ ++ if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) { ++ r = -errno; ++ goto finish; ++ } ++ ++ memset(&sockaddr, 0, sizeof(sockaddr)); ++ sockaddr.sa.sa_family = AF_UNIX; ++ strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path)); ++ ++ if (sockaddr.un.sun_path[0] == '@') ++ sockaddr.un.sun_path[0] = 0; ++ ++ memset(&iovec, 0, sizeof(iovec)); ++ iovec.iov_base = (char *)state; ++ iovec.iov_len = strlen(state); ++ ++ memset(&msghdr, 0, sizeof(msghdr)); ++ msghdr.msg_name = &sockaddr; ++ msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e); ++ ++ if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) ++ msghdr.msg_namelen = sizeof(struct sockaddr_un); ++ ++ msghdr.msg_iov = &iovec; ++ msghdr.msg_iovlen = 1; ++ ++ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) { ++ r = -errno; ++ goto finish; ++ } ++ ++ r = 1; ++ ++finish: ++ if (unset_environment) ++ unsetenv("NOTIFY_SOCKET"); ++ ++ if (fd >= 0) ++ close(fd); ++ ++ return r; ++} ++ ++int netsnmp_sd_notifyf(int unset_environment, const char *format, ...) { ++ va_list ap; ++ char *p = NULL; ++ int r; ++ ++ va_start(ap, format); ++ r = vasprintf(&p, format, ap); ++ va_end(ap); ++ ++ if (r < 0 || !p) ++ return -ENOMEM; ++ ++ r = netsnmp_sd_notify(unset_environment, p); ++ free(p); ++ ++ return r; ++} ++ ++int netsnmp_sd_booted(void) { ++ struct stat a, b; ++ ++ /* We simply test whether the systemd cgroup hierarchy is ++ * mounted */ ++ ++ if (lstat("/sys/fs/cgroup", &a) < 0) ++ return 0; ++ ++ if (lstat("/sys/fs/cgroup/systemd", &b) < 0) ++ return 0; ++ ++ return a.st_dev != b.st_dev; ++} ++ ++/* End of original sd-daemon.c from systemd sources */ ++ ++int ++netsnmp_sd_find_inet_socket(int family, int type, int listening, int port) ++{ ++ int count, fd; ++ ++ count = netsnmp_sd_listen_fds(0); ++ if (count <= 0) { ++ DEBUGMSGTL(("systemd:find_inet_socket", "No LISTEN_FDS found.\n")); ++ return 0; ++ } ++ DEBUGMSGTL(("systemd:find_inet_socket", "LISTEN_FDS reports %d sockets.\n", ++ count)); ++ ++ for (fd = 3; fd < 3+count; fd++) { ++ int rc = netsnmp_sd_is_socket_inet(fd, family, type, listening, port); ++ if (rc < 0) ++ DEBUGMSGTL(("systemd:find_inet_socket", ++ "sd_is_socket_inet error: %d\n", rc)); ++ if (rc > 0) { ++ DEBUGMSGTL(("systemd:find_inet_socket", ++ "Found the socket in LISTEN_FDS\n")); ++ return fd; ++ } ++ } ++ DEBUGMSGTL(("systemd:find_inet_socket", "Socket not found in LISTEN_FDS\n")); ++ return 0; ++} ++ ++int ++netsnmp_sd_find_unix_socket(int type, int listening, const char *path) ++{ ++ int count, fd; ++ ++ count = netsnmp_sd_listen_fds(0); ++ if (count <= 0) { ++ DEBUGMSGTL(("systemd:find_unix_socket", "No LISTEN_FDS found.\n")); ++ return 0; ++ } ++ DEBUGMSGTL(("systemd:find_unix_socket", "LISTEN_FDS reports %d sockets.\n", ++ count)); ++ ++ for (fd = 3; fd < 3+count; fd++) { ++ int rc = netsnmp_sd_is_socket_unix(fd, type, listening, path, 0); ++ if (rc < 0) ++ DEBUGMSGTL(("systemd:find_unix_socket", ++ "netsnmp_sd_is_socket_unix error: %d\n", rc)); ++ if (rc > 0) { ++ DEBUGMSGTL(("systemd:find_unix_socket", ++ "Found the socket in LISTEN_FDS\n")); ++ return fd; ++ } ++ } ++ DEBUGMSGTL(("systemd:find_unix_socket", "Socket not found in LISTEN_FDS\n")); ++ return 0; ++} ++ ++#endif /* ! NETSNMP_NO_SYSTEMD */ +diff --git a/snmplib/transports/snmpTCPDomain.c b/snmplib/transports/snmpTCPDomain.c +index 7feb028..a41b926 100644 +--- a/snmplib/transports/snmpTCPDomain.c ++++ b/snmplib/transports/snmpTCPDomain.c +@@ -43,6 +43,10 @@ + #include + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + /* + * needs to be in sync with the definitions in snmplib/snmpUDPDomain.c + * and perl/agent/agent.xs +@@ -149,6 +153,7 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) + netsnmp_transport *t = NULL; + netsnmp_udp_addr_pair *addr_pair = NULL; + int rc = 0; ++ int socket_initialized = 0; + + #ifdef NETSNMP_NO_LISTEN_SUPPORT + if (local) +@@ -178,7 +183,19 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) + t->domain_length = + sizeof(netsnmp_snmpTCPDomain) / sizeof(netsnmp_snmpTCPDomain[0]); + +- t->sock = socket(PF_INET, SOCK_STREAM, 0); ++#ifndef NETSNMP_NO_SYSTEMD ++ /* ++ * Maybe the socket was already provided by systemd... ++ */ ++ if (local) { ++ t->sock = netsnmp_sd_find_inet_socket(PF_INET, SOCK_STREAM, 1, ++ ntohs(addr->sin_port)); ++ if (t->sock) ++ socket_initialized = 1; ++ } ++#endif ++ if (!socket_initialized) ++ t->sock = socket(PF_INET, SOCK_STREAM, 0); + if (t->sock < 0) { + netsnmp_transport_free(t); + return NULL; +@@ -215,11 +232,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) + setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, + sizeof(opt)); + +- rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr)); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr)); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + + /* +@@ -236,11 +255,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) + * Now sit here and wait for connections to arrive. + */ + +- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + + /* +diff --git a/snmplib/transports/snmpTCPIPv6Domain.c b/snmplib/transports/snmpTCPIPv6Domain.c +index d2e0a2d..22de6d4 100644 +--- a/snmplib/transports/snmpTCPIPv6Domain.c ++++ b/snmplib/transports/snmpTCPIPv6Domain.c +@@ -49,6 +49,10 @@ + #include + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + #include "inet_ntop.h" + + oid netsnmp_TCPIPv6Domain[] = { TRANSPORT_DOMAIN_TCP_IPV6 }; +@@ -140,6 +144,8 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local) + { + netsnmp_transport *t = NULL; + int rc = 0; ++ char *str = NULL; ++ int socket_initialized = 0; + + #ifdef NETSNMP_NO_LISTEN_SUPPORT + if (local) +@@ -174,7 +180,19 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local) + t->domain = netsnmp_TCPIPv6Domain; + t->domain_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid); + +- t->sock = socket(PF_INET6, SOCK_STREAM, 0); ++#ifndef NETSNMP_NO_SYSTEMD ++ /* ++ * Maybe the socket was already provided by systemd... ++ */ ++ if (local) { ++ t->sock = netsnmp_sd_find_inet_socket(PF_INET6, SOCK_STREAM, 1, ++ ntohs(addr->sin6_port)); ++ if (t->sock) ++ socket_initialized = 1; ++ } ++#endif ++ if (!socket_initialized) ++ t->sock = socket(PF_INET6, SOCK_STREAM, 0); + if (t->sock < 0) { + netsnmp_transport_free(t); + return NULL; +@@ -220,12 +238,14 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local) + + setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt)); + +- rc = bind(t->sock, (struct sockaddr *) addr, +- sizeof(struct sockaddr_in6)); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = bind(t->sock, (struct sockaddr *) addr, ++ sizeof(struct sockaddr_in6)); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + + /* +@@ -242,11 +262,13 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local) + * Now sit here and wait for connections to arrive. + */ + +- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + + /* +diff --git a/snmplib/transports/snmpUDPIPv4BaseDomain.c b/snmplib/transports/snmpUDPIPv4BaseDomain.c +index 8c0fb05..00e5bbc 100644 +--- a/snmplib/transports/snmpUDPIPv4BaseDomain.c ++++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c +@@ -40,6 +40,10 @@ + + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + #if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR) + int netsnmp_udpipv4_recvfrom(int s, void *buf, int len, struct sockaddr *from, + socklen_t *fromlen, struct sockaddr *dstip, +@@ -64,6 +68,7 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) + char *client_socket = NULL; + netsnmp_indexed_addr_pair addr_pair; + socklen_t local_addr_len; ++ int socket_initialized = 0; + + #ifdef NETSNMP_NO_LISTEN_SUPPORT + if (local) +@@ -88,7 +93,19 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) + free(str); + } + +- t->sock = socket(PF_INET, SOCK_DGRAM, 0); ++#ifndef NETSNMP_NO_SYSTEMD ++ /* ++ * Maybe the socket was already provided by systemd... ++ */ ++ if (local) { ++ t->sock = netsnmp_sd_find_inet_socket(PF_INET, SOCK_DGRAM, -1, ++ ntohs(addr->sin_port)); ++ if (t->sock) ++ socket_initialized = 1; ++ } ++#endif ++ if (!socket_initialized) ++ t->sock = socket(PF_INET, SOCK_DGRAM, 0); + DEBUGMSGTL(("UDPBase", "openned socket %d as local=%d\n", t->sock, local)); + if (t->sock < 0) { + netsnmp_transport_free(t); +@@ -151,12 +168,14 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) + } + } + #endif /* !defined(WIN32) */ +- rc = bind(t->sock, (struct sockaddr *) addr, +- sizeof(struct sockaddr)); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = bind(t->sock, (struct sockaddr *) addr, ++ sizeof(struct sockaddr)); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + t->data = NULL; + t->data_length = 0; +diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c +index 18de876..fd2ced4 100644 +--- a/snmplib/transports/snmpUDPIPv6Domain.c ++++ b/snmplib/transports/snmpUDPIPv6Domain.c +@@ -67,6 +67,10 @@ static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; + #include + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + #include "inet_ntop.h" + #include "inet_pton.h" + +@@ -190,6 +194,8 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + { + netsnmp_transport *t = NULL; + int rc = 0; ++ char *str = NULL; ++ int socket_initialized = 0; + + #ifdef NETSNMP_NO_LISTEN_SUPPORT + if (local) +@@ -217,7 +223,19 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + t->domain_length = + sizeof(netsnmp_UDPIPv6Domain) / sizeof(netsnmp_UDPIPv6Domain[0]); + +- t->sock = socket(PF_INET6, SOCK_DGRAM, 0); ++#ifndef NETSNMP_NO_SYSTEMD ++ /* ++ * Maybe the socket was already provided by systemd... ++ */ ++ if (local) { ++ t->sock = netsnmp_sd_find_inet_socket(PF_INET6, SOCK_DGRAM, -1, ++ ntohs(addr->sin6_port)); ++ if (t->sock) ++ socket_initialized = 1; ++ } ++#endif ++ if (!socket_initialized) ++ t->sock = socket(PF_INET6, SOCK_DGRAM, 0); + if (t->sock < 0) { + netsnmp_transport_free(t); + return NULL; +@@ -243,12 +261,14 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + } + #endif + +- rc = bind(t->sock, (struct sockaddr *) addr, +- sizeof(struct sockaddr_in6)); +- if (rc != 0) { +- netsnmp_socketbase_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = bind(t->sock, (struct sockaddr *) addr, ++ sizeof(struct sockaddr_in6)); ++ if (rc != 0) { ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + t->local = (unsigned char*)malloc(18); + if (t->local == NULL) { +diff --git a/snmplib/transports/snmpUnixDomain.c b/snmplib/transports/snmpUnixDomain.c +index 47dffc1..8f34c37 100644 +--- a/snmplib/transports/snmpUnixDomain.c ++++ b/snmplib/transports/snmpUnixDomain.c +@@ -37,6 +37,10 @@ + #include /* mkdirhier */ + #include + ++#ifndef NETSNMP_NO_SYSTEMD ++#include ++#endif ++ + netsnmp_feature_child_of(transport_unix_socket_all, transport_all) + netsnmp_feature_child_of(unix_socket_paths, transport_unix_socket_all) + +@@ -295,6 +299,8 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) + netsnmp_transport *t = NULL; + sockaddr_un_pair *sup = NULL; + int rc = 0; ++ char *string = NULL; ++ int socket_initialized = 0; + + #ifdef NETSNMP_NO_LISTEN_SUPPORT + /* SPECIAL CIRCUMSTANCE: We still want AgentX to be able to operate, +@@ -333,7 +339,18 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) + t->data_length = sizeof(sockaddr_un_pair); + sup = (sockaddr_un_pair *) t->data; + +- t->sock = socket(PF_UNIX, SOCK_STREAM, 0); ++#ifndef NETSNMP_NO_SYSTEMD ++ /* ++ * Maybe the socket was already provided by systemd... ++ */ ++ if (local) { ++ t->sock = netsnmp_sd_find_unix_socket(SOCK_STREAM, 1, addr->sun_path); ++ if (t->sock) ++ socket_initialized = 1; ++ } ++#endif ++ if (!socket_initialized) ++ t->sock = socket(PF_UNIX, SOCK_STREAM, 0); + if (t->sock < 0) { + netsnmp_transport_free(t); + return NULL; +@@ -357,25 +374,26 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) + + t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN; + +- unlink(addr->sun_path); +- rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr)); +- +- if (rc != 0 && errno == ENOENT && create_path) { +- rc = mkdirhier(addr->sun_path, create_mode, 1); ++ if (!socket_initialized) { ++ unlink(addr->sun_path); ++ rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr)); ++ if (rc != 0 && errno == ENOENT && create_path) { ++ rc = mkdirhier(addr->sun_path, create_mode, 1); ++ if (rc != 0) { ++ netsnmp_unix_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } ++ rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr)); ++ } + if (rc != 0) { ++ DEBUGMSGTL(("netsnmp_unix_transport", ++ "couldn't bind \"%s\", errno %d (%s)\n", ++ addr->sun_path, errno, strerror(errno))); + netsnmp_unix_close(t); + netsnmp_transport_free(t); + return NULL; + } +- rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr)); +- } +- if (rc != 0) { +- DEBUGMSGTL(("netsnmp_unix_transport", +- "couldn't bind \"%s\", errno %d (%s)\n", +- addr->sun_path, errno, strerror(errno))); +- netsnmp_unix_close(t); +- netsnmp_transport_free(t); +- return NULL; + } + + /* +@@ -391,14 +409,16 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) + * Now sit here and listen for connections to arrive. + */ + +- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); +- if (rc != 0) { +- DEBUGMSGTL(("netsnmp_unix_transport", +- "couldn't listen to \"%s\", errno %d (%s)\n", +- addr->sun_path, errno, strerror(errno))); +- netsnmp_unix_close(t); +- netsnmp_transport_free(t); +- return NULL; ++ if (!socket_initialized) { ++ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); ++ if (rc != 0) { ++ DEBUGMSGTL(("netsnmp_unix_transport", ++ "couldn't listen to \"%s\", errno %d (%s)\n", ++ addr->sun_path, errno, strerror(errno))); ++ netsnmp_unix_close(t); ++ netsnmp_transport_free(t); ++ return NULL; ++ } + } + + } else { +diff --git a/win32/libsnmp/Makefile.in b/win32/libsnmp/Makefile.in +index 98d83c8..b228d20 100644 +--- a/win32/libsnmp/Makefile.in ++++ b/win32/libsnmp/Makefile.in +@@ -42,6 +42,7 @@ LIB32_OBJS= \ + "$(INTDIR)\read_config.obj" \ + "$(INTDIR)\readdir.obj" \ + "$(INTDIR)\scapi.obj" \ ++ "$(INTDIR)\sd-daemon.obj" \ + "$(INTDIR)\snmp-tc.obj" \ + "$(INTDIR)\snmp.obj" \ + "$(INTDIR)\snmpCallbackDomain.obj" \ +@@ -138,6 +139,11 @@ SOURCE=..\..\snmplib\asn1.c + "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + ++SOURCE=..\..\snmplib\sd-daemon.c ++ ++"$(INTDIR)\sd-daemon.obj" : $(SOURCE) "$(INTDIR)" ++ $(CPP) $(CPP_PROJ) $(SOURCE) ++ + + SOURCE=..\..\snmplib\callback.c + +diff --git a/win32/net-snmp/net-snmp-config.h b/win32/net-snmp/net-snmp-config.h +index 1608563..7aec547 100644 +--- a/win32/net-snmp/net-snmp-config.h ++++ b/win32/net-snmp/net-snmp-config.h +@@ -1717,6 +1717,8 @@ enum { + #define DMALLOC_FUNC_CHECK + #endif + +++#define NETSNMP_NO_SYSTEMD +++ + /* #undef NETSNMP_ENABLE_LOCAL_SMUX */ + + /* define if agentx transport is to use domain sockets only */ +diff --git a/win32/net-snmp/net-snmp-config.h.in b/win32/net-snmp/net-snmp-config.h.in +index 9693730..96ec3d9 100644 +--- a/win32/net-snmp/net-snmp-config.h.in ++++ b/win32/net-snmp/net-snmp-config.h.in +@@ -1717,6 +1717,8 @@ enum { + #define DMALLOC_FUNC_CHECK + #endif + ++#define NETSNMP_NO_SYSTEMD ++ + /* #undef NETSNMP_ENABLE_LOCAL_SMUX */ + + /* define if agentx transport is to use domain sockets only */ +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb new file mode 100644 index 000000000..ee8878f9d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb @@ -0,0 +1,180 @@ +SUMMARY = "Various tools relating to the Simple Network Management Protocol" +HOMEPAGE = "http://www.net-snmp.org/" +SECTION = "net" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e" + +DEPENDS = "openssl libnl pciutils" + +SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ + file://init \ + file://snmpd.conf \ + file://snmptrapd.conf \ + file://systemd-support.patch \ + file://snmpd.service \ + file://snmptrapd.service \ + file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \ + file://fix-libtool-finish.patch \ + file://net-snmp-testing-add-the-output-format-for-ptest.patch \ + file://run-ptest \ + file://dont-return-incompletely-parsed-varbinds.patch \ + file://0001-config_os_headers-Error-Fix.patch \ + file://0001-config_os_libs2-Error-Fix.patch \ + file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \ +" +SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee" +SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e" + +inherit autotools update-rc.d siteinfo systemd pkgconfig + +EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'" + +PARALLEL_MAKE = "" +CCACHE = "" + +TARGET_CC_ARCH += "${LDFLAGS}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils" +PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,," + +EXTRA_OECONF = "--disable-embedded-perl \ + --with-perl-modules=no \ + --disable-manuals \ + --with-defaults \ + --with-install-prefix=${D} \ + --with-persistent-directory=${localstatedir}/lib/net-snmp \ + ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}" + +# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp +EXTRA_OECONF += "--with-mib-modules=smux" + +CACHED_CONFIGUREVARS = " \ + ac_cv_header_valgrind_valgrind_h=no \ + ac_cv_header_valgrind_memcheck_h=no \ + ac_cv_ETC_MNTTAB=/etc/mtab \ + lt_cv_shlibpath_overrides_runpath=yes \ +" + +do_configure_prepend() { + export PERLPROG="${bindir}/env perl" + sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \ + "${S}"/configure \ + "${S}"/configure.d/config_os_libs2 +} + +do_install_append() { + install -d ${D}${sysconfdir}/snmp + install -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd + install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/ + install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/ + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system + sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ + -i ${D}${bindir}/net-snmp-create-v3-user + sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ + -i ${D}${bindir}/net-snmp-config +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \ + ${B}/net-snmp-config ${S}/testing; do + if [ -e "$i" ]; then + cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH} + fi + done + echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version + + rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build" + for i in $rmdlist; do + if [ -d "$i" ]; then + rm -rf "$i" + fi + done +} + +SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess" + +net_snmp_sysroot_preprocess () { + if [ -e ${D}${bindir}/net-snmp-config ]; then + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \ + -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \ + -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \ + -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \ + -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \ + -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \ + -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config + fi +} + +PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-server = "1" + +FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" +FILES_${PN}-mibs = "${datadir}/snmp/mibs" +FILES_${PN}-server-snmpd = "${sbindir}/snmpd \ + ${sysconfdir}/snmp/snmpd.conf \ + ${sysconfdir}/init.d \ + ${systemd_unitdir}/system/snmpd.service \ +" + +FILES_${PN}-server-snmptrapd = "${sbindir}/snmptrapd \ + ${sysconfdir}/snmp/snmptrapd.conf \ + ${systemd_unitdir}/system/snmptrapd.service \ +" + +FILES_${PN} = "" +FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/" +FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/" +FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update" + +CONFFILES_${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf" +CONFFILES_${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf" + +INITSCRIPT_PACKAGES = "${PN}-server" +INITSCRIPT_NAME_${PN}-server = "snmpd" +INITSCRIPT_PARAMS_${PN}-server = "start 90 2 3 4 5 . stop 60 0 1 6 ." + +EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}" + +SYSTEMD_PACKAGES = "${PN}-server-snmpd \ + ${PN}-server-snmptrapd" + +SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service" +SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service" + +RDEPENDS_${PN} += "net-snmp-client" +RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs" +RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd" +RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd" +RDEPENDS_${PN}-client += "net-snmp-mibs" +RDEPENDS_${PN}-ptest += "perl \ + perl-module-test \ + perl-module-file-basename \ + perl-module-getopt-long \ + perl-module-file-temp \ + perl-module-data-dumper \ +" +RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" +RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" + +RPROVIDES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" +RREPLACES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" +RCONFLICTS_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" + +RPROVIDES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" +RREPLACES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" +RCONFLICTS_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" + +LEAD_SONAME = "libnetsnmp.so" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc new file mode 100644 index 000000000..5f465cea6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc @@ -0,0 +1,38 @@ +SUMMARY = "OpenFlow communications protocol" +DESCRIPTION = "\ +Open standard that enables researchers to run experimental protocols in \ +contained networks. OpenFlow is a communications interface between \ +control and forwarding planes of a software-defined networking architecture.\ +" +HOMEPAGE = "http://www.openflow.org" + +SECTION = "net" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2" + +SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git" + +DEPENDS = "virtual/libc" + +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl, libssl" + +EXTRA_OECONF += " \ + KARCH=${TARGET_ARCH} \ + ${@base_contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep + +do_configure() { + ./boot.sh + oe_runconf +} + +do_install_append() { + # Remove /var/run as it is created on startup + rm -rf ${D}${localstatedir}/run +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb new file mode 100644 index 000000000..a7e254dd8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb @@ -0,0 +1,4 @@ +include ${BPN}.inc + +SRCREV = "5ccca75a69f99791659bcfbcf35353ab1921320a" +PV = "1.0" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb new file mode 100644 index 000000000..6403bfb22 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb @@ -0,0 +1,4 @@ +include ${BPN}.inc + +SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a" +PV = "1.0+git${SRCPV}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch new file mode 100644 index 000000000..96dbc7551 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch @@ -0,0 +1,106 @@ +From 152486fa3c36c3b99d17d5b553cf87ef412fae8e Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Mon, 1 Dec 2014 01:53:41 +0900 +Subject: [PATCH] Makefile:modify CFLAGS to aviod build error. + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + Makefile | 22 +++++++++++----------- + plugins/Makefile | 6 +++--- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/Makefile b/Makefile +index 4aaa448..baa7882 100644 +--- a/Makefile ++++ b/Makefile +@@ -152,10 +152,10 @@ LIBS.dmalloc= -ldmalloc + export USE_DMALLOC + endif + +-CPPFLAGS= $(CPPFLAGS.l2tptest) $(CPPFLAGS-y) +-CFLAGS= -I. -Iusl -Icli -isystem include \ +- -MMD -Wall -Werror -Wno-strict-aliasing \ +- $(CPPFLAGS) $(CPPFLAGS.dmalloc) \ ++ADD_CPPFLAGS= $(CPPFLAGS.l2tptest) $(CPPFLAGS-y) ++ADD_CFLAGS= -I. -Iusl -Icli -isystem include \ ++ -MMD -Wall -Wno-strict-aliasing \ ++ $(ADD_CPPFLAGS) $(CPPFLAGS.dmalloc) \ + -DSYS_LIBDIR=$(SYS_LIBDIR) + LDFLAGS.l2tpd= -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc + LDFLAGS.l2tpconfig= -Lcli -lcli -lreadline $(LIBS.dmalloc) $(READLINE_LDFLAGS) -lc +@@ -170,10 +170,10 @@ CFLAGS.optimize= $(OPT_CFLAGS) + endif + export CFLAGS.optimize + +-CFLAGS+= $(CFLAGS.optimize) ++ADD_CFLAGS+= $(CFLAGS.optimize) + + ifeq ($(L2TP_USE_ASYNC_RPC),y) +-CPPFLAGS+= -DL2TP_ASYNC_RPC ++ADD_CPPFLAGS+= -DL2TP_ASYNC_RPC + endif + + ifeq ($(L2TP_FEATURE_RPC_MANAGEMENT),y) +@@ -220,13 +220,13 @@ endif + + # Compile without -Wall because rpcgen-generated code is full of warnings. + %_xdr.o: %_xdr.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_client.o: %_client.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_server.o: %_server.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_xdr.c: %.x + -$(RM) $@ +@@ -272,7 +272,7 @@ l2tpconfig: $(L2TPCONFIG_SRCS.o) + $(CC) -o $@ $^ $(LDFLAGS.l2tpconfig) + + %.o: %.c +- $(CC) -c $(CFLAGS) $< -o $@ ++ $(CC) -c $(CFLAGS) $(ADD_CFLAGS) $< -o $@ + + l2tp_options.h: FORCE + @rm -f $@.tmp +@@ -325,7 +325,7 @@ install: install-all + install-all: all install-daemon install-app + + install-daemon: +- @for d in $(filter-out usl,$(SUBDIRS)); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" install; if [ $$? -ne 0 ]; then exit 1; fi; done ++ @for d in $(filter-out usl,$(SUBDIRS)); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS) $(ADD_CPPFLAGS)" install; if [ $$? -ne 0 ]; then exit 1; fi; done + $(INSTALL) -d $(DESTDIR)/usr/sbin + $(INSTALL) openl2tpd $(DESTDIR)/usr/sbin + +diff --git a/plugins/Makefile b/plugins/Makefile +index 5be996d..6810236 100644 +--- a/plugins/Makefile ++++ b/plugins/Makefile +@@ -1,7 +1,7 @@ +-CFLAGS := $(CFLAGS.optimize) -MMD -Wall \ ++ADD_CFLAGS := $(CFLAGS.optimize) -MMD -Wall \ + -isystem ../include \ + -I. -I.. -I../usl -fPIC $(EXTRA_CFLAGS) +-LDFLAGS := -shared ++ADD_LDFLAGS := -shared + + PLUGINS.c:= ppp_unix.c ppp_null.c ipsec.c event_sock.c + +@@ -21,7 +21,7 @@ clean: + $(RM) $(PLUGINS.so) $(wildcard *.o) $(wildcard *.d) $(SRC.generated) + + %.so: %.c +- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $< ++ $(CC) -o $@ $(LDFLAGS) $(ADD_LDFLAGS) $(CFLAGS) $(ADD_CFLAGS) $< + + install: all + $(INSTALL) -d $(DESTDIR)$(SYS_LIBDIR)/openl2tp +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch new file mode 100644 index 000000000..c11a127b8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch @@ -0,0 +1,41 @@ +From 460549a3de27f8dd8371b6d6fc1f69d8bffa102b Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 6 Jan 2015 11:23:21 -0500 +Subject: [PATCH] openl2tp: simplify gcc warning hack + +The hack to work around the gcc warning causes problems with some modern +gcc configurations. Since the redef behaviour is essentially correct +everywhere and since the hack is still required on 32-bit builders, leave +it in place but remove the #if guard since it is only there to ensure that +the l2tp_private.h file is updated if the rpc source file is changed and +the two get out of sync. + +Upstream-status: pending + +Signed-off-by: Joe MacDonald +--- + l2tp_private.h | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/l2tp_private.h b/l2tp_private.h +index f3c1af7..cca6806 100644 +--- a/l2tp_private.h ++++ b/l2tp_private.h +@@ -89,14 +89,8 @@ + * So we redefine the constant with UL suffix to avoid the gcc warning. + * Is there some C preprocessor magic that could avoid having to do this? + */ +-#if L2TP_API_TUNNEL_FLAG_MTU != 2147483648 +-#error Constant L2TP_API_TUNNEL_FLAG_MTU changed. Update local definition here. +-#endif + #undef L2TP_API_TUNNEL_FLAG_MTU + #define L2TP_API_TUNNEL_FLAG_MTU 2147483648UL +-#if L2TP_API_SESSION_FLAG_NO_PPP != 2147483648 +-#error Constant L2TP_API_SESSION_FLAG_NO_PPP changed. Update local definition here. +-#endif + #undef L2TP_API_SESSION_FLAG_NO_PPP + #define L2TP_API_SESSION_FLAG_NO_PPP 2147483648UL + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb new file mode 100644 index 000000000..d043b6389 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb @@ -0,0 +1,36 @@ +SUMMARY = "An L2TP client/server, designed for VPN use." +DESCRIPTION = "OpenL2TP is an open source L2TP client / server, written \ +specifically for Linux. It has been designed for use as an enterprise \ +L2TP VPN server or in commercial, Linux-based, embedded networking \ +products and is able to support hundreds of sessions, each with \ +different configuration. It is used by several ISPs to provide \ +L2TP services and by corporations to implement L2TP VPNs." +HOMEPAGE = "http://www.openl2tp.org/" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585" +DEPENDS = "popt flex readline" + +SRC_URI = "http://ftp.jaist.ac.jp/pub/sourceforge/o/op/${PN}/${PN}/${PV}/${BP}.tar.gz \ + file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \ + file://openl2tp-simplify-gcc-warning-hack.patch \ + " +SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0" +SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f" + +inherit autotools-brokensep pkgconfig + +PARALLEL_MAKE = "" +EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-nused-but-set-variable"' + +do_compile_prepend() { + sed -i -e "s:SYS_LIBDIR=.*:SYS_LIBDIR=${libdir}:g" \ + -e 's:$(CROSS_COMPILE)as:${AS}:g' \ + -e 's:$(CROSS_COMPILE)ld:${LD}:g' \ + -e 's:$(CROSS_COMPILE)gcc:${CC}:g' \ + -e 's:$(CROSS_COMPILE)ar:${AR}:g' \ + -e 's:$(CROSS_COMPILE)nm:${NM}:g' \ + -e 's:$(CROSS_COMPILE)strip:${STRIP}:g' \ + -e 's:$(CROSS_COMPILE)install:install:g' \ + ${S}/Makefile +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp new file mode 100644 index 000000000..f446e22a6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.8.0/options.pptp @@ -0,0 +1,30 @@ +# +# Lock the port +# +lock + +# +# We don't need the tunnel server to authenticate itself +# +noauth + +# +# Turn off transmission protocols we know won't be used +# +nobsdcomp +nodeflate + +# +# We want MPPE +# (option naming specific to ppp 2.4.0 with unofficial patch) +# +#mppe-40 +mppe-128 +#mppe-stateless + +# +# We want a sane mtu/mru +# (ppp 2.4.0 with unofficial patch) +# +#mtu 1000 +#mru 1000 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb new file mode 100644 index 000000000..bc8b2cb2b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "Client for Microsoft PPTP VPNs" +DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \ + and OpenBSD client for the proprietary Microsoft Point-to-Point \ + Tunneling Protocol, PPTP. Allows connection to a PPTP based \ + Virtual Private Network (VPN) as used by employers and some \ + cable and ADSL internet service providers." +HOMEPAGE = "http://pptpclient.sourceforge.net" +SECTION = "net" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \ + file://options.pptp \ +" + +SRC_URI[md5sum] = "4efce9f263e2c3f38d79d9df222476de" +SRC_URI[sha256sum] = "e39c42d933242a8a6dd8600a0fa7f0a5ec8f066d10c4149d8e81a5c68fe4bbda" + +S = "${WORKDIR}/pptp-${PV}" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8 + install -m 555 pptp ${D}${sbindir} + install -m 644 pptp.8 ${D}${mandir}/man8 + install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp +} + +RDEPENDS_${PN} = "ppp" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch new file mode 100644 index 000000000..f08bb572d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch @@ -0,0 +1,28 @@ +Upstream-Status: Pending + +Subject: ospf6d: check ospf6 before using it in ospf6_clean + +The ospf6 variable might be 'NULL' causing segment fault error. +Check it before referencing it. + +Signed-off-by: Chen Qi +--- + ospf6d/ospf6d.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c +index 3cdd5c1..e3bf1af 100644 +--- a/ospf6d/ospf6d.c ++++ b/ospf6d/ospf6d.c +@@ -1892,6 +1892,8 @@ ospf6_init (void) + void + ospf6_clean (void) + { ++ if (ospf6 == NULL) ++ return; + if (ospf6->route_table) + ospf6_route_remove_all (ospf6->route_table); + if (ospf6->brouter_table) +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch new file mode 100644 index 000000000..35f4637d8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch @@ -0,0 +1,48 @@ +sync zebra routing table with the kernel one when interface is down + +Add router to kernel main router table with "ip", then you can see +a router item in kernel main router table. Also can see this router +item in zebra router table. If down the interface, this router item +will be deleted from kernel main router table, but it will not be +deleted from zebra router table, just set as inactive. + +This patch is adopted from [1]. +[1] http://www.gossamer-threads.com/lists/quagga/dev/22609 + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail +Signed-of-by: Roy.Li + +--- + zebra/zebra_rib.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c +index 154e8d5..63434d0 100644 +--- a/zebra/zebra_rib.c ++++ b/zebra/zebra_rib.c +@@ -765,6 +765,9 @@ rib_match_ipv6 (struct in6_addr *addr) + #define RIB_SYSTEM_ROUTE(R) \ + ((R)->type == ZEBRA_ROUTE_KERNEL || (R)->type == ZEBRA_ROUTE_CONNECT) + ++#define RIB_KERNEL_ROUTE(R) \ ++ ((R)->type == ZEBRA_ROUTE_KERNEL) ++ + /* This function verifies reachability of one given nexthop, which can be + * numbered or unnumbered, IPv4 or IPv6. The result is unconditionally stored + * in nexthop->flags field. If the 4th parameter, 'set', is non-zero, +@@ -1135,6 +1138,10 @@ rib_process (struct route_node *rn) + redistribute_delete (&rn->p, fib); + if (! RIB_SYSTEM_ROUTE (fib)) + rib_uninstall_kernel (rn, fib); ++#ifdef GNU_LINUX ++ else if(RIB_KERNEL_ROUTE (fib) && !if_is_up(if_lookup_by_index(fib->nexthop->ifindex))) ++ del=fib; ++#endif + UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED); + + /* Set real nexthop. */ +-- +1.7.4.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch new file mode 100644 index 000000000..c2757a2fb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch @@ -0,0 +1,50 @@ +From ba71f768e6dbb1f2ac72ed3bd880bff75a48d345 Mon Sep 17 00:00:00 2001 +From: Roy Li +Date: Wed, 19 Feb 2014 14:13:40 +0800 +Subject: [PATCH] babeld: close stdout once the background daemon is created + +Upstream-Status: pending + +Once babald becomes a background daemon, it should not output information to +stdout, so need to close stdout. + +In fact, other daemons close their stdout when they run into background, like +ospfd, isisd and bgpd, by calling daemon() which is in lib/daemon.c + +Closing the stdout can fix a tee hang issue { #/usr/sbin/babeld -d |tee tmp } + +Signed-off-by: Roy Li +--- + babeld/util.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/babeld/util.c b/babeld/util.c +index 011f382..76203bc 100644 +--- a/babeld/util.c ++++ b/babeld/util.c +@@ -425,7 +425,7 @@ uchar_to_in6addr(struct in6_addr *dest, const unsigned char *src) + int + daemonise() + { +- int rc; ++ int rc, fd; + + fflush(stdout); + fflush(stderr); +@@ -441,5 +441,13 @@ daemonise() + if(rc < 0) + return -1; + ++ fd = open("/dev/null", O_RDWR, 0); ++ if (fd != -1) ++ { ++ dup2(fd, STDOUT_FILENO); ++ if (fd > 2) ++ close(fd); ++ } ++ + return 1; + } +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babeld.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babeld.service new file mode 100644 index 000000000..dd344b0b3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/babeld.service @@ -0,0 +1,14 @@ +[Unit] +Description=Babel routing daemon +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/babeld.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +ExecStart=@SBINDIR@/babeld -d $babeld_options -f /etc/quagga/babeld.conf +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/bgpd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/bgpd.service new file mode 100644 index 000000000..76f9f61e7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/bgpd.service @@ -0,0 +1,16 @@ +[Unit] +Description=BGP routing daemon +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/bgpd.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/bgpd.pid +ExecStart=@SBINDIR@/bgpd -d $bgpd_options -f @SYSCONFDIR@/quagga/bgpd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/bgpd.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/isisd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/isisd.service new file mode 100644 index 000000000..9bfe7b65e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/isisd.service @@ -0,0 +1,14 @@ +[Unit] +Description=IS-IS routing daemon +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/isisd.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +ExecStart=@SBINDIR@/isisd -d $isisd_options -f /etc/quagga/isisd.conf +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospf6d.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospf6d.service new file mode 100644 index 000000000..a2e493b42 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospf6d.service @@ -0,0 +1,16 @@ +[Unit] +Description=OSPF routing daemon for IPv6 +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/ospf6d.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/ospf6d.pid +ExecStart=@SBINDIR@/ospf6d -d $ospf6d_options -f @SYSCONFDIR@/quagga/ospf6d.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ospf6d.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospfd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospfd.service new file mode 100644 index 000000000..0c62cbce5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ospfd.service @@ -0,0 +1,16 @@ +[Unit] +Description=OSPF routing daemon +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/ospfd.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/ospfd.pid +ExecStart=@SBINDIR@/ospfd -d $ospfd_options -f @SYSCONFDIR@/quagga/ospfd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ospfd.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch new file mode 100644 index 000000000..a07e33f9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch @@ -0,0 +1,54 @@ +quagga: Avoid duplicate connected address adding to the list + +commit 27ba970b9("quagga/ripd: Fix two bugs after received SIGHUP signal") +introduces an regression: ifp->connected list is cleaned up when ripd is +restarting, however, for interface addresses which are not specified in +ripd configuration file, they are never to be added into ifp->connected +again, this will lead to some abnormal behavior for route advertising. + +Instead of cleaning up the ifp->connected list to avoid duplicated +connected address being added into this list, we can check this +condition during interface address adding process and return early +when an identical address has already been added. + +Upstream-Status: Pending + +Signed-off-by: Hu Yadi +Signed-off-by: Xufeng Zhang +Signed-off-by: Joe MacDonald +--- +--- a/lib/if.c ++++ b/lib/if.c +@@ -738,6 +738,16 @@ connected_add_by_prefix (struct interfac + struct prefix *destination) + { + struct connected *ifc; ++ struct listnode *cnode; ++ struct connected *c; ++ int ret = 0; ++ ++ for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, c)) ++ { ++ ret = connected_same_prefix (p, (c->address)); ++ if(ret == 1) ++ return NULL; ++ } + + /* Allocate new connected address. */ + ifc = connected_new (); +--- a/ripd/rip_interface.c ++++ b/ripd/rip_interface.c +@@ -516,13 +516,6 @@ rip_interface_clean (void) + thread_cancel (ri->t_wakeup); + ri->t_wakeup = NULL; + } +- +- for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) +- { +- ifc = listgetdata (conn_node); +- next = conn_node->next; +- listnode_delete (ifp->connected, ifc); +- } + } + } + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default new file mode 100644 index 000000000..0c1ce6c04 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default @@ -0,0 +1,13 @@ +# If this option is set the /etc/init.d/quagga script automatically loads +# the config via "vtysh -b" when the servers are started. +vtysh_enable=yes + +# Bind all daemons to loopback only by default +zebra_options=" --daemon -A 127.0.0.1" +babeld_options="--daemon -A 127.0.0.1" +bgpd_options=" --daemon -A 127.0.0.1" +ospfd_options=" --daemon -A 127.0.0.1" +ospf6d_options="--daemon -A ::1" +ripd_options=" --daemon -A 127.0.0.1" +ripngd_options="--daemon -A ::1" +isisd_options=" --daemon -A 127.0.0.1" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init new file mode 100644 index 000000000..60b5ab01a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init @@ -0,0 +1,200 @@ +#!/bin/sh +# +# /etc/init.d/quagga -- start/stop the Quagga routing daemons +# +# Based on debian version by Endre Hirling and +# Christian Hammers . +# + +### BEGIN INIT INFO +# Provides: quagga +# Required-Start: $local_fs $network $remote_fs $syslog +# Required-Stop: $local_fs $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop the Quagga routing suite +# Description: Quagga is a routing suite for IP routing protocols like +# BGP, OSPF, RIP and others. This script contols the main +# daemon "quagga" as well as the individual protocol daemons. +### END INIT INFO + +# NOTE: sbin must be before bin so we get the iproute2 ip and not the +# busybox ip command. The busybox one flushes all routes instead of just +# the dynamic routes +PATH=/sbin:/usr/sbin:/bin:/usr/bin:/sbin +D_PATH=/usr/sbin +C_PATH=/etc/quagga + +# Keep zebra first and do not list watchquagga! +DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld" + +# Print the name of the pidfile. +pidfile() +{ + echo "/var/run/quagga/$1.pid" +} + +# Check if daemon is started by using the pidfile. +started() +{ + [ -e `pidfile $1` ] && kill -0 `cat \`pidfile $1\`` 2> /dev/null && return 0 + return 1 +} + +# Loads the config via vtysh -b if configured to do so. +vtysh_b () +{ + # Rember, that all variables have been incremented by 1 in convert_daemon_prios() + if [ "$vtysh_enable" = 2 -a -f $C_PATH/Quagga.conf ]; then + /usr/bin/vtysh -b + fi +} + +# Check if the daemon is activated and if its executable and config files +# are in place. +# params: daemon name +# returns: 0=ok, 1=error +check_daemon() +{ + # If the integrated config file is used the others are not checked. + if [ -r "$C_PATH/Quagga.conf" ]; then + return 0 + fi + + # check for config file + if [ ! -r "$C_PATH/$1.conf" ]; then + return 1 + fi + return 0 +} + +# Starts the server if it's not alrady running according to the pid file. +# The Quagga daemons creates the pidfile when starting. +start() +{ + if ! check_daemon $1; then echo -n " (!$1)"; return; fi + echo -n " $1" + start-stop-daemon \ + --start \ + --pidfile=`pidfile $1` \ + --exec "$D_PATH/$1" \ + -- \ + `eval echo "$""$1""_options"` + +} + +# Stop the daemon given in the parameter, printing its name to the terminal. +stop() +{ + if ! started "$1" ; then + echo -n " (!$1)" + return 0 + else + PIDFILE=`pidfile $1` + PID=`cat $PIDFILE 2>/dev/null` + start-stop-daemon --stop --quiet --exec "$D_PATH/$1" + # + # Now we have to wait until $DAEMON has _really_ stopped. + # + if test -n "$PID" && kill -0 $PID 2>/dev/null; then + echo -n " (waiting) ." + cnt=0 + while kill -0 $PID 2>/dev/null; do + cnt=`expr $cnt + 1` + if [ $cnt -gt 60 ]; then + # Waited 120 secs now, fail. + echo -n "Failed.. " + break + fi + sleep 2 + echo -n "." + done + fi + echo -n " $1" + rm -f `pidfile $1` + fi +} + +stop_all() +{ + local daemon_list + daemon_list=${1:-$DAEMONS} + + echo -n "Stopping Quagga daemons:" + for daemon_name in $daemon_list; do + stop "$daemon_name" + done + echo "." +} + +start_all() +{ + local daemon_list + daemon_list=${1:-$DAEMONS} + + echo -n "Starting Quagga daemons:" + for daemon_name in $daemon_list; do + start "$daemon_name" + done + echo "." +} + +status_all() +{ + local daemon_list + daemon_list=${1:-$DAEMONS} + res=1 + + echo -n "quagga: " + for daemon_name in $daemon_list; do + if started "$daemon_name" ; then + id=`cat \`pidfile $daemon_name\`` + echo -n "$daemon_name (pid $id) " + res=0 + fi + done + if [ $res -eq 0 ]; then + echo "is running..." + else + echo "is stopped..." + fi + exit $res +} + +######################################################### +# Main program # +######################################################### + +# Load configuration +test -f /etc/default/quagga && . /etc/default/quagga + +case "$1" in + start) + cd $C_PATH/ + start_all $2 + vtysh_b + ;; + + stop) + stop_all $2 + echo "Removing all routes made by zebra." + ip route flush proto zebra + ;; + + status) + status_all $2 + ;; + + restart|force-reload) + $0 stop $2 + sleep 1 + $0 start $2 + ;; + + *) + echo "Usage: /etc/init.d/quagga {start|stop|restart|status|force-reload} [daemon]" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.pam b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.pam new file mode 100644 index 000000000..3541a975a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.pam @@ -0,0 +1,13 @@ +# +# The PAM configuration file for the quagga `vtysh' service +# + +# This allows root to change user infomation without being +# prompted for a password +auth sufficient pam_rootok.so + +# The standard Unix authentication modules, used with +# NIS (man nsswitch) as well as normal /etc/passwd and +# /etc/shadow entries. +auth include common-auth + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch new file mode 100644 index 000000000..4b8c9a929 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch @@ -0,0 +1,50 @@ +ripd: Fix two bugs after received SIGHUP signal + +There are two problems for ripd implementation after received +SIGHUP signal: +1). ripd didn't clean up ifp->connected list before reload + configuration file. +2). ripd reset ri->split_horizon flag to RIP_NO_SPLIT_HORIZON + which lead to the unnecessary route to be advertised. + +Upstream-Status: Submitted [http://patchwork.diac24.net/patch/604/] + +Signed-off-by: Xufeng Zhang +Signed-off-by: Joe MacDonald +--- +--- a/ripd/rip_interface.c ++++ b/ripd/rip_interface.c +@@ -500,6 +500,8 @@ + struct listnode *node; + struct interface *ifp; + struct rip_interface *ri; ++ struct connected *ifc; ++ struct listnode *conn_node, *next; + + for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp)) + { +@@ -514,6 +516,13 @@ + thread_cancel (ri->t_wakeup); + ri->t_wakeup = NULL; + } ++ ++ for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) ++ { ++ ifc = listgetdata (conn_node); ++ next = conn_node->next; ++ listnode_delete (ifp->connected, ifc); ++ } + } + } + +@@ -548,8 +557,8 @@ + ri->key_chain = NULL; + } + +- ri->split_horizon = RIP_NO_SPLIT_HORIZON; +- ri->split_horizon_default = RIP_NO_SPLIT_HORIZON; ++ ri->split_horizon = RIP_SPLIT_HORIZON; ++ ri->split_horizon_default = RIP_SPLIT_HORIZON; + + ri->list[RIP_FILTER_IN] = NULL; + ri->list[RIP_FILTER_OUT] = NULL; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd.service new file mode 100644 index 000000000..1d20389e8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd.service @@ -0,0 +1,16 @@ +[Unit] +Description=RIP routing daemon +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/ripd.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/ripd.pid +ExecStart=@SBINDIR@/ripd -d $ripd_options -f @SYSCONFDIR@/quagga/ripd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ripd.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripngd.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripngd.service new file mode 100644 index 000000000..0355ad12a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripngd.service @@ -0,0 +1,16 @@ +[Unit] +Description=RIP routing daemon for IPv6 +BindTo=zebra.service +After=zebra.service +ConditionPathExists=@SYSCONFDIR@/quagga/ripngd.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/ripngd.pid +ExecStart=@SBINDIR@/ripngd -d $ripngd_options -f @SYSCONFDIR@/quagga/ripngd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ripngd.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga new file mode 100644 index 000000000..1f28c0b24 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga @@ -0,0 +1,3 @@ +# +d quagga quagga 0755 /var/run/quagga none +d quagga quagga 0755 /var/log/quagga none diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.default b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.default new file mode 100644 index 000000000..2d601ec97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.default @@ -0,0 +1,12 @@ +# Watchquagga configuration +#watch_daemons="zebra bgpd ospfd ospf6d ripd ripngd" +watch_daemons="zebra" + +# To enable restarts when multiple daemons are being used, uncomment this line (but first be sure to edit +# the WATCH_DAEMONS line to reflect the daemons you are actually using): +#watch_options="-Az -b_ -r/etc/init.d/quagga_restart_%s -s/etc/init.d/quagga_start_%s -k/etc/init.d/quagga_stop_%s" + +# Since we are using one quagga daemon for now, use the following line. If using +# multiple daemons, comment the line below and uncoment the line mentioned +# above. +watch_options="-z -b_ -r/etc/init.d/quagga_restart_%s" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.init new file mode 100644 index 000000000..5ddd94a3d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/watchquagga.init @@ -0,0 +1,64 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: watchquagga +# Required-Start: $local_fs $network $remote_fs $syslog +# Required-Stop: $local_fs $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop the Quagga watchdog +### END INIT INFO + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +# Load configuration +test -f /etc/default/watchquagga && . /etc/default/watchquagga + +# Check that there are daemons to be monitored. +[ -z "$watch_daemons" ] && exit 0 + +pidfile="/var/run/quagga/watchquagga.pid" + +case "$1" in + start) + echo -n "Starting quagga watchdog daemon: watchquagga" + start-stop-daemon --start \ + --pidfile $pidfile \ + --exec /usr/sbin/watchquagga \ + -- -d $watch_options $watch_daemons + echo "." + ;; + + stop) + echo -n "Stopping quagga watchdog daemon: watchquagga" + start-stop-daemon --stop --quiet \ + --pidfile $pidfile + echo "." + ;; + + status) + echo -n "watchquagga " + res=1 + [ -e $pidfile ] && kill -0 `cat $pidfile` 2> /dev/null + if [ $? -eq 0 ]; then + echo "(pid `cat $pidfile`) is running..." + res=0 + else + echo "is stopped..." + fi + exit $res + ;; + + restart|force-reload) + $0 stop $2 + sleep 1 + $0 start $2 + ;; + + *) + echo "Usage: /etc/init.d/watchquagga {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/zebra.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/zebra.service new file mode 100644 index 000000000..e4fb6c808 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/zebra.service @@ -0,0 +1,17 @@ +[Unit] +Description=GNU Zebra routing manager +Wants=network.target +Before=network.target +ConditionPathExists=@SYSCONFDIR@/quagga/zebra.conf + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/zebra.pid +ExecStartPre=@BASE_SBINDIR@/ip route flush proto zebra +ExecStart=@SBINDIR@/zebra -d $zebra_options -f @SYSCONFDIR@/quagga/zebra.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/zebra.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc new file mode 100644 index 000000000..de78e2679 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc @@ -0,0 +1,251 @@ +SUMMARY = "BGP/OSPF/RIP routing daemon" +DESCRIPTION = "Quagga is a routing software suite, providing \ +implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for \ +Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. \ +Quagga is a fork of GNU Zebra which was developed by Kunihiro \ +Ishiguro. The Quagga tree aims to build a more involved community \ +around Quagga than the current centralised model of GNU Zebra." +HOMEPAGE = "http://www.nongnu.org/quagga/" +SECTION = "net" +LICENSE = "GPL-2.0 & LGPL-2.0" +DEPENDS = "readline ncurses perl-native" +DEPENDS += "${@base_contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}" +SNMP_CONF="${@base_contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=81bcece21748c91ba9992349a91ec11d \ + file://COPYING.LIB;md5=01ef24401ded36cd8e5d18bfe947240c" + +# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes) +RDEPENDS_${PN} += "iproute2" + +QUAGGASUBDIR = "" +# ${QUAGGASUBDIR} is deal with old versions. Set to "/attic" for old +# versions and leave it empty for recent versions. +SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ + file://Zebra-sync-zebra-routing-table-with-the-kernel-one.patch \ + file://quagga.init \ + file://quagga.default \ + file://watchquagga.init \ + file://watchquagga.default \ + file://volatiles.03_quagga \ + file://quagga.pam \ + file://ripd-fix-two-bugs-after-received-SIGHUP.patch \ + file://quagga-Avoid-duplicate-connected-address.patch \ + file://babeld.service \ + file://bgpd.service \ + file://isisd.service \ + file://ospf6d.service \ + file://ospfd.service \ + file://ripd.service \ + file://ripngd.service \ + file://zebra.service \ +" + +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" +PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap" +PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam" + +inherit autotools update-rc.d useradd systemd + +SYSTEMD_PACKAGES = "${PN} ${PN}-babeld ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" +SYSTEMD_SERVICE_${PN}-babeld = "babeld.service" +SYSTEMD_SERVICE_${PN}-bgpd = "bgpd.service" +SYSTEMD_SERVICE_${PN}-isisd = "isisd.service" +SYSTEMD_SERVICE_${PN}-ospf6d = "ospf6d.service" +SYSTEMD_SERVICE_${PN}-ospfd = "ospfd.service" +SYSTEMD_SERVICE_${PN}-ripd = "ripd.service" +SYSTEMD_SERVICE_${PN}-ripngd = "ripngd.service" +SYSTEMD_SERVICE_${PN} = "zebra.service" + +EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ + --localstatedir=${localstatedir}/run/quagga \ + --enable-exampledir=${docdir}/quagga/examples/ \ + --enable-vtysh \ + --enable-isisd \ + ${@base_contains('DISTRO_FEATURES', 'sysvinit', '--enable-watchquagga', '--disable-watchquagga', d)} \ + --enable-ospf-te \ + --enable-opaque-lsa \ + --enable-ospfclient=yes \ + --enable-multipath=64 \ + --enable-user=quagga \ + --enable-group=quagga \ + --enable-vty-group=quaggavty \ + --enable-configfile-mask=0640 \ + --enable-logfile-mask=0640 \ + --enable-rtadv \ + --enable-linux24-tcp-md5 \ + ap_cv_cc_pie=no \ + ${SNMP_CONF}" + +do_install () { + # Install init script and default settings + install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/quagga ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/quagga.default ${D}${sysconfdir}/default/quagga + install -m 0644 ${WORKDIR}/watchquagga.default ${D}${sysconfdir}/default/watchquagga + install -m 0755 ${WORKDIR}/quagga.init ${D}${sysconfdir}/init.d/quagga + install -m 0755 ${WORKDIR}/watchquagga.init ${D}${sysconfdir}/init.d/watchquagga + install -m 0644 ${WORKDIR}/volatiles.03_quagga ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga + + # Install sample configurations for the daemons + for f in bgpd vtysh babeld isisd ospfd ripngd zebra ripd ospf6d; do + install -m 0640 ${S}/$f/$f.conf.sample ${D}${sysconfdir}/quagga/$f.conf.sample + done + + for f in bgpd vtysh babeld isisd ospfd ripngd zebra ripd ospf6d; do + touch ${D}${sysconfdir}/quagga/$f.conf + done + chown quagga:quaggavty ${D}${sysconfdir}/quagga + chown quagga:quagga ${D}${sysconfdir}/quagga/*.conf + chmod 750 ${D}${sysconfdir}/quagga + chmod 640 ${D}${sysconfdir}/quagga/*.conf + + # Install quagga + oe_runmake install DESTDIR=${D} prefix=${prefix} \ + sbindir=${sbindir} \ + sysconfdir=${sysconfdir}/quagga \ + localstatedir=${localstatedir}/run/quagga + + # Fix hardcoded paths + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/* + sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/quagga + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/watchquagga + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/* + + # Remove generated info dir file, it doesn't belong in the generated + # package. + rm -f ${D}${infodir}/dir + + # For PAM + for feature in ${DISTRO_FEATURES}; do + if [ "$feature" = "pam" ]; then + install -D -m 644 ${WORKDIR}/quagga.pam ${D}/${sysconfdir}/pam.d/quagga + break + fi + done + + if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/run/quagga 0755 quagga quagga -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + + # Remove sysinit script if sysvinit is not in DISTRO_FEATURES + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then + rm -rf ${D}${sysconfdir}/init.d/ + rm -f ${D}${sysconfdir}/default/watchquagga + fi + + install -d ${D}${systemd_unitdir}/system + for i in babeld bgpd isisd ospf6d ospfd ripd ripngd zebra; do + install -m 0644 ${WORKDIR}/$i.service ${D}${systemd_unitdir}/system + done + sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@base_bindir@,${base_bindir},g' \ + -e 's,@localstatedir@,${localstatedir},g' \ + -i ${D}${systemd_unitdir}/system/*.service +} + +DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}" +pkg_postinst_${PN} () { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then + if [ -n "$D" ]; then + OPTS="--root=$D" + fi + systemctl $OPTS mask quagga.service + fi +} + +# Split into a main package and separate per-protocol packages +PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-babeld ${PN}-bgpd \ + ${PN}-ripd ${PN}-ripngd ${PN}-isisd \ + ${PN}-ospfclient ${@base_contains('DISTRO_FEATURES', 'sysvinit', '${PN}-watchquagga', '', d)}" + +RDEPENDS_${PN} += "${PN}-babeld ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" + +FILES_${PN}-ospfd = "${sbindir}/ospfd ${libdir}/libospf.so.*" +FILES_${PN}-ospf6d = "${sbindir}/ospf6d" +FILES_${PN}-babeld = "${sbindir}/babeld" +FILES_${PN}-bgpd = "${sbindir}/bgpd" +FILES_${PN}-ripd = "${sbindir}/ripd" +FILES_${PN}-ripngd = "${sbindir}/ripngd" +FILES_${PN}-isisd = "${sbindir}/isisd" +FILES_${PN}-ospfclient = "${sbindir}/ospfclient ${libdir}/libospfapiclient.so.*" +FILES_${PN}-watchquagga = "${sbindir}/watchquagga ${sysconfdir}/default/watchquagga \ + ${sysconfdir}/init.d/watchquagga" + +# Indicate that the default files are configuration files +CONFFILES_${PN} = "${sysconfdir}/default/quagga \ + ${sysconfdir}/quagga/bgpd.conf \ + ${sysconfdir}/quagga/vtysh.conf \ + ${sysconfdir}/quagga/babeld.conf \ + ${sysconfdir}/quagga/isisd.conf \ + ${sysconfdir}/quagga/ospfd.conf \ + ${sysconfdir}/quagga/ripngd.conf \ + ${sysconfdir}/quagga/zebra.conf \ + ${sysconfdir}/quagga/ripd.conf \ + ${sysconfdir}/quagga/ospf6d.conf \ + " +CONFFILES_${PN}-watchquagga = "${sysconfdir}/default/watchquagga" + +# Stop the names being rewritten due to the internal shared libraries +DEBIAN_NOAUTONAME_${PN}-ospfd = "1" +DEBIAN_NOAUTONAME_${PN}-ospfclient = "1" + +# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes) +RDEPENDS_${PN} += "iproute2" + +# Main init script starts all deamons +# Seperate init script for watchquagga +INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga" +INITSCRIPT_NAME_${PN} = "quagga" +INITSCRIPT_PARAMS_${PN} = "defaults 15 85" +INITSCRIPT_NAME_${PN}-watchquagga = "watchquagga" +INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10" + +# Add quagga's user and group +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga --shell /bin/false quagga" + +pkg_postinst_${PN} () { + if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi +} + +# Stop apps before uninstall +pkg_prerm_${PN} () { + ${sysconfdir}/init.d/quagga stop +} + +pkg_prerm_${PN}-ospfd () { + ${sysconfdir}/init.d/quagga stop ospfd +} + +pkg_prerm_${PN}-ospf6d () { + ${sysconfdir}/init.d/quagga stop ospf6d +} + +pkg_prerm_${PN}-babeld () { + ${sysconfdir}/init.d/quagga stop babeld +} + +pkg_prerm_${PN}-bgpd () { + ${sysconfdir}/init.d/quagga stop bgpd +} + +pkg_prerm_${PN}-ripd () { + ${sysconfdir}/init.d/quagga stop ripd +} + +pkg_prerm_${PN}-ripngd () { + ${sysconfdir}/init.d/quagga stop ripngd +} + +pkg_prerm_${PN}-isisd () { + ${sysconfdir}/init.d/quagga stop isisd +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_0.99.24.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_0.99.24.1.bb new file mode 100644 index 000000000..cecf4385c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_0.99.24.1.bb @@ -0,0 +1,10 @@ +require quagga.inc + +SRC_URI += "file://babel-close-the-stdout-stderr-as-in-other-daemons.patch \ + file://0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch \ +" + +SRC_URI[md5sum] = "7986bdc2fe6027d4c9216f7f5791e718" +SRC_URI[sha256sum] = "84ae1a47df085119a8fcab6c43ccea9efb9bc3112388b1dece5a9f0a0262754f" + +QUAGGASUBDIR = "" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch new file mode 100644 index 000000000..ecc2d74e7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch @@ -0,0 +1,84 @@ +From 45b97b474ce2d0ad56828db11edde8562bb47a43 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Tue, 2 Dec 2014 02:33:53 +0900 +Subject: [PATCH] Modify configure.in and etc/Makefile.am + +this patch is from Fedora to fix error: +"conftest.c:26:9: error: unknown type name 'not'" + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + configure.in | 6 +++++- + etc/Makefile.am | 9 ++++++--- + etc/radiusclient.conf.in | 2 +- + 3 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index 812f640..3a8af99 100644 +--- a/configure.in ++++ b/configure.in +@@ -29,6 +29,9 @@ AC_SUBST(LIBVERSION) + pkgsysconfdir=${sysconfdir}/$PACKAGE + AC_SUBST(pkgsysconfdir) + ++pkgdatadir=${datadir}/$PACKAGE ++AC_SUBST(pkgdatadir) ++ + AC_PROG_LIBTOOL + + AC_PROG_CC +@@ -118,7 +121,8 @@ then + ], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STRUCT_UTSNAME_DOMAINNAME), +- AC_MSG_RESULT(no) ++ AC_MSG_RESULT(no), ++ AC_MSG_RESULT(assume no), + ) + fi + +diff --git a/etc/Makefile.am b/etc/Makefile.am +index 39b6975..a3c403f 100644 +--- a/etc/Makefile.am ++++ b/etc/Makefile.am +@@ -14,9 +14,11 @@ CLEANFILES = *~ radiusclient.conf + + sbindir = @sbindir@ + pkgsysconfdir = @pkgsysconfdir@ +-pkgsysconf_DATA = issue port-id-map radiusclient.conf \ +- dictionary dictionary.ascend dictionary.compat dictionary.merit \ +- dictionary.sip ++pkgsysconf_DATA = issue port-id-map radiusclient.conf ++ ++pkgdatadir = @pkgdatadir@ ++pkgdata_DATA = dictionary dictionary.ascend dictionary.compat \ ++ dictionary.merit dictionary.sip + + EXTRA_DIST = issue port-id-map dictionary dictionary.ascend \ + dictionary.compat dictionary.merit servers radiusclient.conf.in \ +@@ -25,6 +27,7 @@ EXTRA_DIST = issue port-id-map dictionary dictionary.ascend \ + radiusclient.conf: radiusclient.conf.in + sed -e 's|@sbin''dir@|$(sbindir)|g' \ + -e 's|@pkgsysconf''dir@|$(pkgsysconfdir)|g' \ ++ -e 's|@pkgdata''dir@|$(pkgdatadir)|g' \ + <$(srcdir)/radiusclient.conf.in >radiusclient.conf + + install-data-local: servers +diff --git a/etc/radiusclient.conf.in b/etc/radiusclient.conf.in +index 948bc2f..aac9973 100644 +--- a/etc/radiusclient.conf.in ++++ b/etc/radiusclient.conf.in +@@ -47,7 +47,7 @@ servers @pkgsysconfdir@/servers + + # dictionary of allowed attributes and values + # just like in the normal RADIUS distributions +-dictionary @pkgsysconfdir@/dictionary ++dictionary @pkgdatadir@/dictionary + + # program to call for a RADIUS authenticated login + login_radius @sbindir@/login.radius +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 new file mode 100644 index 000000000..a30c144b9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 @@ -0,0 +1 @@ +ac_cv_func_uname=no diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb new file mode 100644 index 000000000..95faa65b1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb @@ -0,0 +1,36 @@ +SUMMARY = "RADIUS protocol client library" +DESCRIPTION = "Portable, easy-to-use and standard compliant library suitable \ +for developing free and commercial software that need support for a RADIUS \ +protocol (RFCs 2128 and 2139)." +HOMEPAGE = "http://sourceforge.net/projects/radiusclient-ng.berlios/" +SECTION = "net" + +SRC_URI = "${DEBIAN_MIRROR}/main/r/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://Modify-configure.in-and-etc-Makefile.am.patch \ + file://config-site.radiusclient-ng-${PV}" + +SRC_URI[md5sum] = "6fb7d4d0aefafaee7385831ac46a8e9c" +SRC_URI[sha256sum] = "282a9f1355f190efbb06c0d7c4e062eaa652caf342ed3ad361ac595f72f09f14" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3e47566c9271b786693d8a08792dbf41" + +inherit autotools-brokensep + +EXTRA_OECONF += "--disable-static" + +do_configure_prepend () { + export CONFIG_SITE=./config-site.${P} +} + +do_compile_prepend() { + for m in `find . -name "Makefile"` ; do + sed -i -e 's:^program_transform_name =.*:program_transform_name =:g' ${m} + done +} + +do_install() { + oe_runmake DESTDIR=${D} install + rm -f ${D}${libdir}/*.la + rm -f ${D}${sbindir}/radexample +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch new file mode 100644 index 000000000..2661fd3db --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch @@ -0,0 +1,59 @@ +From 71956de46feef962dc0645af4c81ae074ca3b818 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 13:52:57 +0900 +Subject: [PATCH] configure.in: Error fix. + +the error is: conftest.c:9:28: fatal error: ac_nonexistent.h: +No such file or directory #include + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + src/configure.in | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/src/configure.in b/src/configure.in +index 0b23df5..31c7fbc 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -193,36 +193,6 @@ if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes" + fi + +-dnl Figure out packing order of structures +-AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[ +-if test "${rpppoe_cv_pack_bitfields+set}" != set ; then +-AC_TRY_RUN([ +-union foo { +- struct bar { +- unsigned int ver:4; +- unsigned int type:4; +- } bb; +- unsigned char baz; +-}; +- +-int +-main(void) +-{ +- union foo x; +- x.bb.ver = 1; +- x.bb.type = 2; +- if (x.baz == 0x21) { +- return 1; +- } else if (x.baz == 0x12) { +- return 0; +- } else { +- return 2; +- } +-}], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, +-$ECHO "no defaults for cross-compiling"; exit 1) +-fi +-]) +- + if test "$rpppoe_cv_pack_bitfields" = "rev" ; then + AC_MSG_RESULT(reversed) + AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields]) +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch new file mode 100644 index 000000000..1380ba489 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch @@ -0,0 +1,11 @@ +Index: rp-pppoe-3.8/configure.in +=================================================================== +--- rp-pppoe-3.8.orig/configure.in 2014-07-16 19:31:33.549991388 +0000 ++++ rp-pppoe-3.8/configure.in 2014-07-17 22:01:18.116590827 +0000 +@@ -1,4 +1,4 @@ +-AC_INIT(src/pppoe.c) +-AM_INIT_AUTOMAKE([rp-pppoe], [3.8]) ++AC_INIT([rp-pppoe], [3.8]) ++AM_INIT_AUTOMAKE([foreign]) + AC_CONFIG_SUBDIRS(src) + AC_OUTPUT(Makefile) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch new file mode 100644 index 000000000..88cf7e677 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch @@ -0,0 +1,156 @@ +From cab02076afb808a43c6ff3d7b1c64e71f5a1b397 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 12:17:03 +0900 +Subject: [PATCH] configure in cross + +Update the configure script to cross-compiling with OE. This hard-codes +a few target paths, reworks a few tests to be more friendly for cross +and drops other tests. + +Upstream-Status: Inappropriate [build system specific changes] + +--- + src/configure.in | 66 ++++++++++++++------------------------------------------ + 1 file changed, 16 insertions(+), 50 deletions(-) + +diff --git a/src/configure.in b/src/configure.in +index e194295..82d64d6 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -5,6 +5,13 @@ AC_INIT(pppoe.c) + dnl pppd directory for kernel-mode PPPoE + PPPD_DIR=ppp-2.4.1.pppoe2 + ++dnl hard code some paths ++PPPD=/usr/sbin/pppd ++ID=/usr/bin/id ++ECHO=/bin/echo ++AC_ARG_VAR(PPPD) ++AC_ARG_VAR(ID) ++ + AC_CONFIG_HEADER(config.h) + + AC_PREFIX_DEFAULT(/usr) +@@ -45,7 +52,7 @@ ac_cv_struct_sockaddr_ll=no) + AC_MSG_RESULT($ac_cv_struct_sockaddr_ll) + + if test "$ac_cv_struct_sockaddr_ll" = yes ; then +-AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL) ++AC_DEFINE([HAVE_STRUCT_SOCKADDR_LL], [], [Have struct SOCKADDR_LL]) + fi + + dnl Check for N_HDLC line discipline +@@ -56,7 +63,7 @@ AC_TRY_COMPILE([#include ], + ac_cv_n_hdlc=no) + AC_MSG_RESULT($ac_cv_n_hdlc) + if test "$ac_cv_n_hdlc" = yes ; then +-AC_DEFINE(HAVE_N_HDLC) ++AC_DEFINE([HAVE_N_HDLC], [], [Have N_HDLC]) + fi + + AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no) +@@ -104,7 +111,7 @@ PPPD_INCDIR="" + if test "$ac_cv_header_linux_if_pppox_h" = yes ; then + if test "$ac_cv_pluginpath" != no ; then + LINUX_KERNELMODE_PLUGIN=rp-pppoe.so +- AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE) ++ AC_DEFINE([HAVE_LINUX_KERNEL_PPPOE], [], [Have kernel PPPoE]) + PPPD_INCDIR=$ac_cv_pluginpath + fi + fi +@@ -114,7 +121,7 @@ if test "$PPPD_INCDIR" = "" ; then + fi + + if test "$ac_cv_debugging" = "yes" ; then +- AC_DEFINE(DEBUGGING_ENABLED) ++ AC_DEFINE([DEBUGGING_ENABLED], [], [Debugging enabled]) + fi + + AC_SUBST(LINUX_KERNELMODE_PLUGIN) +@@ -140,15 +147,8 @@ AC_CHECK_SIZEOF(unsigned short) + AC_CHECK_SIZEOF(unsigned int) + AC_CHECK_SIZEOF(unsigned long) + +-dnl Check for location of pppd +-AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin) +-AC_PATH_PROG(ECHO, echo, echo) +- +-dnl Check for setsid (probably Linux-specific) +-AC_PATH_PROG(SETSID, setsid, "", $PATH:/sbin:/usr/sbin:/usr/local/sbin) +- + dnl Check for an "id" which accepts "-u" option -- hack for Solaris. +-AC_PATH_PROG(ID, id, "", /usr/xpg4/bin:$PATH) ++dnl AC_PATH_PROG(ID, id, "", /usr/xpg4/bin:$PATH) + + dnl Check for Linux-specific kernel support for PPPoE + AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support) +@@ -193,44 +193,8 @@ if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes" + fi + +-dnl If we couldn't find pppd, die +-if test "$PPPD" = "NOTFOUND"; then +- AC_MSG_WARN([*** Oops! I couldn't find pppd, the PPP daemon anywhere.]) +- AC_MSG_WARN([*** You must install pppd, version 2.3.10 or later.]) +- AC_MSG_WARN([*** I will keep going, but it may not work.]) +- PPPD=pppd +-fi +- +-dnl Figure out pppd version. 2.3.7 to 2.3.9 -- issue warning. Less than +-dnl 2.3.7 -- stop +- +-PPPD_VERSION=`$PPPD --version 2>&1 | awk ' /version/ {print $NF}'` +- +-case "$PPPD_VERSION" in +-1.*|2.0.*|2.1.*|2.2.*|2.3.0|2.3.1|2.3.2|2.3.3|2.3.4|2.3.5|2.3.6) +- AC_MSG_WARN([*** Oops! Your version of pppd is $PPPD_VERSION, which is too old.]) +- AC_MSG_WARN([*** You need at least 2.3.7 (2.3.10 or newer recommended.]) +- AC_MSG_WARN([*** I will keep going, but it may not work.]) +- ;; +- +-2.3.7|2.3.8|2.3.9) +- AC_MSG_WARN([*** Warning. Your version of pppd is $PPPD_VERSION. You will]) +- AC_MSG_WARN([*** not be able to use connect-on-demand. Upgrade to pppd]) +- AC_MSG_WARN([*** 2.3.10 or newer if you need connect-on-demand.]) +- ;; +- +-2*|3*|4*|5*|6*|7*|8*|9*) +- ;; +- +-*) +- AC_MSG_WARN([*** Oops. I cannot figure out what version of pppd you have.]) +- AC_MSG_WARN([*** All I got back was '$PPPD_VERSION']) +- AC_MSG_WARN([*** I will keep going, but it may not work.]) +- ;; +-esac +- + dnl Figure out packing order of structures +-AC_MSG_CHECKING([packing order of bit fields]) ++AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[ + if test "${rpppoe_cv_pack_bitfields+set}" != set ; then + AC_TRY_RUN([ + union foo { +@@ -257,10 +221,11 @@ main(void) + }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, + $ECHO "no defaults for cross-compiling"; exit 0) + fi ++]) + + if test "$rpppoe_cv_pack_bitfields" = "rev" ; then + AC_MSG_RESULT(reversed) +- AC_DEFINE(PACK_BITFIELDS_REVERSED) ++ AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields]) + else + AC_MSG_RESULT(normal) + fi +@@ -324,6 +289,7 @@ AC_SUBST(PPPOE_SERVER_DEPS) + AC_SUBST(RDYNAMIC) + AC_SUBST(LIBEVENT) + AC_SUBST(ECHO) ++AC_SUBST(HAVE_STRUCT_SOCKADDR_LL) + AC_SUBST(LDFLAGS) + + datadir_evaluated=`eval echo $datadir` +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch new file mode 100644 index 000000000..8b7886485 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch @@ -0,0 +1,27 @@ +From 611c9fe719c5aa264a2ad2eb920cf4522ae2ddec Mon Sep 17 00:00:00 2001 +From: Ting Liu +Date: Tue, 12 Jun 2012 14:26:16 -0400 +Subject: [PATCH] discard use of dnl in Makefile.am + +Since Makefile.am is not processed by m4, but by automake, 'dnl' does +not introduce a comment. + +Signed-off-by: Ting Liu +--- + Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index eff6977..3091c33 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,5 +1,5 @@ + PACKAGE = rp-pppoe + VERSION = 3.8 + +-dnl AM_CFLAGS = -Wall -DDEBUG ++##dnl AM_CFLAGS = -Wall -DDEBUG + SUBDIRS = src +-- +1.7.6.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch new file mode 100644 index 000000000..f61337f15 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch @@ -0,0 +1,28 @@ +From bbdadb803b19f002e76e7bb5ce3faf770dd7c413 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 12:33:41 +0900 +Subject: [PATCH] don't swallow errors + +Further fixup to the configure scripts to not swallow errors + +Upstream-Status: Pending +--- + src/configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/configure.in b/src/configure.in +index 82d64d6..0b23df5 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -219,7 +219,7 @@ main(void) + return 2; + } + }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, +-$ECHO "no defaults for cross-compiling"; exit 0) ++$ECHO "no defaults for cross-compiling"; exit 1) + fi + ]) + +-- +1.8.4.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default new file mode 100644 index 000000000..996d57f3c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default @@ -0,0 +1,22 @@ +# PPPoE Server options + +# Maximum segment size, not used for in kernel PPPoE +#MSS=1412 + +# Device(s) - Space seperated list of devices to listen on +#DEVICES="eth1" + +# Local IP +#LOCAL_IP=10.0.0.1 + +# Starting remote IP +#REMOTE_IP=10.67.15.1 + +# Service name +#SERVICE_NAME="acme" + +# Maximum number of sessions, default is 16 +#MAX_SESSIONS=64 + +# Access concentrator name, default is the hostname +#ACCESS_CONCENTRATOR_NAME="pppoe-rtr-1" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init new file mode 100755 index 000000000..21afe0be3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init @@ -0,0 +1,59 @@ +#! /bin/sh + +test -f /usr/sbin/pppoe-server || exit 0 +test -f /etc/default/pppoe-server && . /etc/default/pppoe-server + +case $1 in + start) + OPTIONS="" + if [ -n "$MSS" ]; then + OPTIONS="$OPTIONS -m $MSS" + fi + if [ -n "$DEVICES" ]; then + for i in $DEVICES; do + OPTIONS="$OPTIONS -I $i" + done + fi + if [ -n "$LOCAL_IP" ]; then + OPTIONS="$OPTIONS -L $LOCAL_IP" + fi + if [ -n "$REMOTE_IP" ]; then + OPTIONS="$OPTIONS -R $REMOTE_IP" + fi + if [ -n "$SERVICE_NAME" ]; then + OPTIONS="$OPTIONS -S $SERVICE_NAME" + fi + if [ -n "$MAX_SESSIONS" ]; then + OPTIONS="$OPTIONS -N $MAX_SESSIONS" + fi + if [ -n "$ACCESS_CONCENTRATOR_NAME" ]; then + OPTIONS="$OPTIONS -C $ACCESS_CONCENTRATOR_NAME" + fi + echo -n "Starting PPPoE server: pppoe-server" + start-stop-daemon --start --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS + echo "." + ;; + stop) + echo -n "Stopping PPPoE server: pppoe-server" + start-stop-daemon --stop --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS + echo "." + ;; + status) + pid=$(pidof pppoe-server) + if [ -n "$pid" ] ; then + echo "Running with pid $pid" + else + echo "Not running" + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/pppoe-server {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service new file mode 100644 index 000000000..41e0b9e85 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service @@ -0,0 +1,11 @@ +[Unit] +Description=PPPOE Service +After=network.target + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/pppoe-server +ExecStart=@SBINDIR@/pppoe-server + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch new file mode 100644 index 000000000..bcf4d1164 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch @@ -0,0 +1,20 @@ +Relax restrictions on the PPPoE src address, as per debian bug +293811: + + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293811 + +Upstream-Status: Inappropriate [Backport from Debian] + +--- rp-pppoe-3.8.orig/src/discovery.c ++++ rp-pppoe-3.8/src/discovery.c +@@ -376,8 +376,8 @@ + if (!packetIsForMe(conn, &packet)) continue; + + if (packet.code == CODE_PADO) { +- if (NOT_UNICAST(packet.ethHdr.h_source)) { +- printErr("Ignoring PADO packet from non-unicast MAC address"); ++ if (BROADCAST(packet.ethHdr.h_source)) { ++ printErr("Ignoring broadcast PADO packet"); + continue; + } + parsePacket(&packet, parsePADOTags, &pc); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch new file mode 100644 index 000000000..4fe73d017 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch @@ -0,0 +1,27 @@ +The autoconf stuff is all in a subdirectory, which is rather annoying +as OE expects patches to be applied and autoconf stuff to be done in +S. This adds enough autoconf at the top level to allow it to be +called there - all it does is run a sub autoconf stuff in the src +directory. + +Upstream-Status: Inappropriate [build system specific change] + +Index: rp-pppoe-3.8/Makefile.am +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rp-pppoe-3.8/Makefile.am 2007-06-08 15:58:16.000000000 +1000 +@@ -0,0 +1,5 @@ ++PACKAGE = rp-pppoe ++VERSION = 3.8 ++ ++dnl AM_CFLAGS = -Wall -DDEBUG ++SUBDIRS = src +Index: rp-pppoe-3.8/configure.in +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rp-pppoe-3.8/configure.in 2007-06-08 15:58:16.000000000 +1000 +@@ -0,0 +1,4 @@ ++AC_INIT(src/pppoe.c) ++AM_INIT_AUTOMAKE([rp-pppoe], [3.8]) ++AC_CONFIG_SUBDIRS(src) ++AC_OUTPUT(Makefile) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch new file mode 100644 index 000000000..42a3bc62c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch @@ -0,0 +1,32 @@ +Set the timeout to 0 since we don't want pppoe to try reconnecting, +we want whatever is calling it to reconnect. Lots of odd things +happen when you have pppoe retrying itself. + +The path for the plugin is wrong, it's now part of ppp and is in a +ppp's plugin lib directory. If no path is specified then that's where +ppp looks, so that's what we do here. + +Upstream-Status: Inappropriate [configuration] + +Index: rp-pppoe-3.8/configs/pppoe.conf +=================================================================== +--- rp-pppoe-3.8.orig/configs/pppoe.conf 2006-04-03 00:29:41.000000000 +1000 ++++ rp-pppoe-3.8/configs/pppoe.conf 2007-06-08 16:02:47.000000000 +1000 +@@ -66,7 +66,7 @@ + # to connect forever after pppoe-start is called. Otherwise, it will + # give out after CONNECT_TIMEOUT seconds and will not attempt to + # connect again, making it impossible to reach. +-CONNECT_TIMEOUT=30 ++CONNECT_TIMEOUT=0 + + # How often in seconds pppoe-start polls to check if link is up + CONNECT_POLL=2 +@@ -115,7 +115,7 @@ + FIREWALL=NONE + + # Linux kernel-mode plugin for pppd. If you want to try the kernel-mode +-# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so ++# plugin, use LINUX_PLUGIN=rp-pppoe.so + LINUX_PLUGIN= + + # Any extra arguments to pass to pppoe. Normally, use a blank string diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb new file mode 100644 index 000000000..e1ca17fb3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb @@ -0,0 +1,74 @@ +SUMMARY = "A user-mode PPPoE client and server suite for Linux" +HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581" + +PR = "r10" + +SRC_URI = "http://www.roaringpenguin.com/files/download/${BP}.tar.gz \ + file://top-autoconf.patch \ + file://configure_in_cross.patch \ + file://pppoe-src-restrictions.patch \ + file://update-config.patch \ + file://dont-swallow-errors.patch \ + file://discard-use-of-dnl-in-Makefile.am.patch \ + file://configure.patch \ + file://pppoe-server.default \ + file://pppoe-server.init \ + file://configure.in-Error-fix.patch \ + file://pppoe-server.service" + +SRC_URI[md5sum] = "216eb52b69062b92a64ee37fd71f4b66" +SRC_URI[sha256sum] = "00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2" + +inherit autotools-brokensep update-rc.d systemd + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/pppoe-server.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service + install -d ${D}${datadir}/doc/${PN} + if [ -f ${D}${datadir}/doc/README ]; then + mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/ + fi +} + +do_install() { + # Install init script and default settings + install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d + install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server + install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server + # Install + oe_runmake -C ${S} DESTDIR=${D} docdir=${docdir} install + chmod 4755 ${D}${sbindir}/pppoe +} + +SYSTEMD_PACKAGES = "${PN}-server" +SYSTEMD_SERVICE_${PN}-server = "pppoe-server.service" +SYSTEMD_AUTO_ENABLE = "disable" +# Insert server package before main package +PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc" + +FILES_${PN}-server = "${sysconfdir}/default/pppoe-server \ + ${sysconfdir}/init.d/pppoe-server \ + ${sbindir}/pppoe-server \ + ${sysconfdir}/ppp/pppoe-server-options" +FILES_${PN}-relay = "${sbindir}/pppoe-relay" +FILES_${PN}-sniff = "${sbindir}/pppoe-sniff" + +CONFFILES_${PN} = "${sysconfdir}/ppp/pppoe.conf \ + ${sysconfdir}/ppp/firewall-standalone \ + ${sysconfdir}/ppp/firewall-masq" +CONFFILES_${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \ + ${sysconfdir}/default/pppoe-server" + +INITSCRIPT_PACKAGES = "${PN}-server" +INITSCRIPT_NAME_${PN}-server = "pppoe-server" +INITSCRIPT_PARAMS_${PN}-server = "defaults 92 8" + +RDEPENDS_${PN} = "ppp" +RDEPENDS_${PN}-server = "${PN}" +RRECOMMENDS_${PN} = "ppp-oe" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb new file mode 100644 index 000000000..b3a9620c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb @@ -0,0 +1,23 @@ +SUMMARY = "Libraries and wrapper for using a SOCKS proxy" +DESCRIPTION = "The role of tsocks is to allow non SOCKS aware \ +applications (e.g telnet, ssh, ftp etc) to use SOCKS without any \ +modification. It does this by intercepting the calls that applications \ +make to establish network connections and negotating them through a \ +SOCKS server as necessary." +HOMEPAGE = "http://sourceforge.net/projects/tsocks/" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760" + +SRC_URI = "http://downloads.sourceforge.net/tsocks/tsocks-${PV}.tar.gz" + +SRC_URI[md5sum] = "51caefd77e5d440d0bbd6443db4fc0f8" +SRC_URI[sha256sum] = "849d7ef5af80d03e76cc05ed9fb8fa2bcc2b724b51ebfd1b6be11c7863f5b347" + +inherit autotools-brokensep + +S = "${WORKDIR}/tsocks-1.8" + +FILES_${PN} = "${libdir}/* ${bindir}/tsocks" +FILES_${PN}-dev = "" +INSANE_SKIP_${PN} = "dev-so" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc new file mode 100644 index 000000000..6f7f69330 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc @@ -0,0 +1,44 @@ +SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon" +HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/" +SECTION = "net" +DEPENDS = "ppp virtual/kernel" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3" + +INC_PR = "r0" + +SRC_URI = "git://github.com/xelerance/xl2tpd.git \ + file://fix-inline-functions-errors-with-gcc-5.x.patch \ +" + +S = "${WORKDIR}/git" + +inherit update-rc.d + +do_compile () { + oe_runmake CFLAGS="${CFLAGS} -DLINUX" LDFLAGS="${LDFLAGS}" PREFIX="${prefix}" KERNELSRC=${STAGING_KERNEL_DIR} all +} + +do_install () { + oe_runmake PREFIX="${D}${prefix}" install + + install -d ${D}${sysconfdir}/init.d + touch ${D}${sysconfdir}/xl2tpd.conf + install -m 0755 debian/xl2tpd.init ${D}${sysconfdir}/init.d/xl2tpd + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/xl2tpd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/xl2tpd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/xl2tpd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/xl2tpd + + install -d ${D}${sysconfdir}/default + install -m 0644 debian/xl2tpd.default ${D}${sysconfdir}/default/xl2tpd +} + +CONFFILES_${PN} += "${sysconfdir}/xl2tpd.conf ${sysconfdir}/default/xl2tpd" + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME_${PN} = "xl2tpd" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch new file mode 100644 index 000000000..b75c9129d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd/fix-inline-functions-errors-with-gcc-5.x.patch @@ -0,0 +1,134 @@ +Upstream-Status: Backport + +Backport from https://github.com/xelerance/xl2tpd/commit/9098f64950eb22cf049058d40f647bafdb822174 + +Signed-off-by: Kai Kang +--- +From 9098f64950eb22cf049058d40f647bafdb822174 Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Wed, 23 Sep 2015 10:41:05 +0800 +Subject: [PATCH] Fix build errors caused by inline function with gcc 5 + +GCC 5 defaults to -std=gnu11 instead of -std=gnu89. And -std=gnu89 +employs the GNU89 inline semantics, -std=gnu11 uses the C99 inline +semantics. + +For 'inline' fuction, it is NOT exported by C99. So error messages such as: + +| control.c:1717: undefined reference to `check_control' + +For these functions which is not referred by other compile units, make +them 'static inline'. + +For 'extern inline' function, it fails such as: + +| misc.h:68:20: warning: inline function 'swaps' declared but never defined +| extern inline void swaps (void *, int); +| ^ + +Because function swaps() is referred by other compile units, it must be +exported. The semantics of 'extern inline' are not same between GNU89 +and C99, so remove 'inline' attribute for compatible with GNU89. + +Ref: +https://gcc.gnu.org/gcc-5/porting_to.html + +Signed-off-by: Kai Kang +--- + control.c | 8 ++++---- + misc.c | 2 +- + misc.h | 2 +- + network.c | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/control.c b/control.c +index b2891a9..c4a39b5 100644 +--- a/control.c ++++ b/control.c +@@ -1140,7 +1140,7 @@ int control_finish (struct tunnel *t, struct call *c) + return 0; + } + +-inline int check_control (const struct buffer *buf, struct tunnel *t, ++static inline int check_control (const struct buffer *buf, struct tunnel *t, + struct call *c) + { + /* +@@ -1276,7 +1276,7 @@ inline int check_control (const struct buffer *buf, struct tunnel *t, + return 0; + } + +-inline int check_payload (struct buffer *buf, struct tunnel *t, ++static inline int check_payload (struct buffer *buf, struct tunnel *t, + struct call *c) + { + /* +@@ -1382,7 +1382,7 @@ inline int check_payload (struct buffer *buf, struct tunnel *t, + #endif + return 0; + } +-inline int expand_payload (struct buffer *buf, struct tunnel *t, ++static inline int expand_payload (struct buffer *buf, struct tunnel *t, + struct call *c) + { + /* +@@ -1562,7 +1562,7 @@ void send_zlb (void *data) + toss (buf); + } + +-inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c, ++static inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c, + int convert) + { + /* +diff --git a/misc.c b/misc.c +index 3092401..af90dbf 100644 +--- a/misc.c ++++ b/misc.c +@@ -170,7 +170,7 @@ void do_packet_dump (struct buffer *buf) + printf ("}\n"); + } + +-inline void swaps (void *buf_v, int len) ++void swaps (void *buf_v, int len) + { + #ifdef __alpha + /* Reverse byte order alpha is little endian so lest save a step. +diff --git a/misc.h b/misc.h +index aafdc62..caab7a1 100644 +--- a/misc.h ++++ b/misc.h +@@ -65,7 +65,7 @@ extern void l2tp_log (int level, const char *fmt, ...); + extern struct buffer *new_buf (int); + extern void udppush_handler (int); + extern int addfcs (struct buffer *buf); +-extern inline void swaps (void *, int); ++extern void swaps (void *, int); + extern void do_packet_dump (struct buffer *); + extern void status (const char *fmt, ...); + extern void status_handler (int signal); +diff --git a/network.c b/network.c +index b1268c6..d324a71 100644 +--- a/network.c ++++ b/network.c +@@ -135,7 +135,7 @@ int init_network (void) + return 0; + } + +-inline void extract (void *buf, int *tunnel, int *call) ++static inline void extract (void *buf, int *tunnel, int *call) + { + /* + * Extract the tunnel and call #'s, and fix the order of the +@@ -155,7 +155,7 @@ inline void extract (void *buf, int *tunnel, int *call) + } + } + +-inline void fix_hdr (void *buf) ++static inline void fix_hdr (void *buf) + { + /* + * Fix the byte order of the header +-- +2.6.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb new file mode 100644 index 000000000..df2ec52c6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb @@ -0,0 +1,7 @@ +require xl2tpd.inc + +# The SRCREV corresponds to v1.3.6. +# Adding tag=v1.3.6 to the SRC_URI will force access to the upstream repo. +# +SRCREV = "5619e1771048e74b729804e8602f409af0f3faea" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb new file mode 100644 index 000000000..42bc398a1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb @@ -0,0 +1,8 @@ +require xl2tpd.inc + +# This is v1.3.6 plus some commits. There is no tag for this commit. +# +PV = "1.3.6+git${SRCPV}" + +SRCREV = "a96b345962622ea58490924130675df6db062d11" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch new file mode 100644 index 000000000..328e574a9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch @@ -0,0 +1,19 @@ +| zeroconf.c: In function 'main': +| zeroconf.c:145: error: 'PATH_MAX' undeclared (first use in this function) + +RP - 4/9/09 + +Upstream-Status: Pending + +Index: zeroconf-0.9/zeroconf.c +=================================================================== +--- zeroconf-0.9.orig/zeroconf.c 2009-09-04 10:05:25.000000000 +0100 ++++ zeroconf-0.9/zeroconf.c 2009-09-04 10:05:42.000000000 +0100 +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include "delay.h" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf new file mode 100644 index 000000000..0c9d15ba1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf @@ -0,0 +1,51 @@ +#!/bin/sh + +if [ ! -x /usr/sbin/zeroconf ]; then + exit 0 +fi + +# IPv4 link-local addresses (zeroconf) are +# only applicable on the 'inet' address family +[ "X$ADDRFAM" != "Xinet" ] && exit 0 + +# However there are some methods where it doesn't +# make any sense to configure an IPv4LL address + +# not on loopback +[ "X$METHOD" = "Xloopback" ] && exit 0 + +# not on ppp or wvdial either +[ "X$METHOD" = "Xppp" ] && exit 0 +[ "X$METHOD" = "Xwvdial" ] && exit 0 + +# The administrator may have blacklisted interfaces +# or only want zeroconf in a fallback situation +[ -f /etc/default/zeroconf ] && + . /etc/default/zeroconf + +[ -n "$DISABLE" ] && exit 0 + +for BLACK in $IFBLACKLIST; do + case $IFACE in + $BLACK) + exit 0 + ;; + esac +done + +# should we only allocate an address if we do not already have one? +if [ -n "$FALLBACK" ]; then + /sbin/ip addr show $IFACE scope global | grep -q "inet" + IP=$? + if [ $IP -eq 0 ]; then + /sbin/ip route add 169.254.0.0/16 dev $IFACE + exit 0 + fi +fi + +# otherwise, run if we aren't already going +if [ ! -r /var/run/zeroconf.$IFACE.pid ]; then + /usr/sbin/zeroconf -i $IFACE +fi + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default new file mode 100644 index 000000000..cc07b275f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default @@ -0,0 +1,17 @@ +# Default for zeroconf + +# disable zeroconf +# If you want to disable zeroconf completely, uncomment the following line +# this may be useful if you are debugging zeroconf or starting it manually +#DISABLE=yes + +# black-listed interfaces +# Interfaces which you never wish to have zeroconf run on should +# be listed here. e.g. "eth2 wlan1" in a space seperated string +IFBLACKLIST="" + +# fallback only +# If you would only like a link-local address if you were unable to +# obtain an address via DHCP then uncomment the following line +#FALLBACK=yes + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb new file mode 100644 index 000000000..9307263c7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb @@ -0,0 +1,34 @@ +SUMMARY = "IPv4 link-local address allocator" +DESCRIPTION = "Zeroconf is a program that is used to claim IPv4 \ +link-local addresses. IPv4 link-local addresses are useful when setting \ +up ad-hoc networking between devices without the involvement of a either \ +a DHCP server or network administrator. \ +These addresses are allocated from the 169.254.0.0/16 address range and \ +are normally attached to each Ethernet device in your computer. \ +Addresses are assigned randomly by each host and, in case of collision, \ +both hosts (are supposed to) renumber." +AUTHOR = "Anand Kumria " +HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \ + file://zeroconf.c;beginline=1;endline=13;md5=a5bada96e1e34b08eb7446b28e2630b2" +SECTION = "net" + +PR = "r1" + +SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.gz \ + file://compilefix.patch \ + file://zeroconf-default \ + file://debian-zeroconf" + +SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2" +SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b" + +do_install () { + install -d ${D}${sbindir} + install -d ${D}${sysconfdir}/network/if-up.d + install -d ${D}${sysconfdir}/default + install -c -m 755 ${S}/zeroconf ${D}${sbindir}/zeroconf + install -c -m 755 ${WORKDIR}/debian-zeroconf ${D}${sysconfdir}/network/if-up.d/zeroconf + install -c ${WORKDIR}/zeroconf-default ${D}${sysconfdir}/default/zeroconf +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools/aoe-stat-no-bashism.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools/aoe-stat-no-bashism.patch new file mode 100644 index 000000000..ec89b7a53 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools/aoe-stat-no-bashism.patch @@ -0,0 +1,27 @@ +From 38c97e590fde19213f6ba31e72d1c227db869427 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sun, 31 Aug 2014 22:28:38 -0700 +Subject: [PATCH] aoe-stat.in: no bashism + +The checkbashisms shows there is no bashism, so use /bin/sh. + +Upstream-Status: Pending + +Signed-off-by: Robert Yang +--- + aoe-stat.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/aoe-stat.in b/aoe-stat.in +index 50e6ac6..0c1d6f5 100755 +--- a/aoe-stat.in ++++ b/aoe-stat.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! /bin/sh + # aoe-stat - collate and present information about AoE storage + # Copyright 2012, CORAID, Inc., and licensed under GPL v.2. + +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools_36.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools_36.bb new file mode 100644 index 000000000..c382a718f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/aoetools/aoetools_36.bb @@ -0,0 +1,25 @@ +SUMMARY = "ATA over Ethernet Tools" +DESCRIPTION = " \ +The aoetools are programs for users of the ATA over Ethernet (AoE)network \ +storage protocol, a simple protocol for using storage over anethernet LAN. \ +The vblade program (storage target) exports a blockdevice using AoE. \ +" +HOMEPAGE = "http://sourceforge.net/projects/${BPN}" +SECTION = "admin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +RRECOMMENDS_${PN} = "kernel-module-aoe" + +SRC_URI = "http://sourceforge.net/projects/${BPN}/files/${BPN}/${BPN}-${PV}.tar.gz \ + file://aoe-stat-no-bashism.patch \ + " +SRC_URI[md5sum] = "bff30daa988a65f69d4448ce4726a6db" +SRC_URI[sha256sum] = "fb5e2cd0de7644cc1ec04ee3aeb43211cf7445a0c19e13d6b3ed5a8fbdf215ff" + +# EXTRA_OEMAKE is typically: -e MAKEFLAGS= +# the -e causes problems as CFLAGS is modified in the Makefile. +EXTRA_OEMAKE = "" + +do_install() { + oe_runmake DESTDIR=${D} install +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch new file mode 100644 index 000000000..0875344fe --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch @@ -0,0 +1,30 @@ +arptables: fix the redefinition of 'arpt_get_target' + +Upstream-Status: Pending + +This function is already defined as a static inline function in +include/linux/netfilter_arp/arp_tables.h, once GCC uses -O0, the +inline will not work, and the redefinition error will happen + +Signed-off-by: Aws Ismail +Signed-off-by: Roy.Li + +diff --git a/libarptc/libarptc_incl.c b/libarptc/libarptc_incl.c +index 35736db..addd3f9 100644 +--- a/libarptc/libarptc_incl.c ++++ b/libarptc/libarptc_incl.c +@@ -11,14 +11,6 @@ + /* (C)1999 Paul ``Rusty'' Russell - Placed under the GNU GPL (See + COPYING for details). */ + +-#ifndef __OPTIMIZE__ +-STRUCT_ENTRY_TARGET * +-GET_TARGET(STRUCT_ENTRY *e) +-{ +- return (void *)e + e->target_offset; +-} +-#endif +- + static int sockfd = -1; + static void *arptc_fn = NULL; + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch new file mode 100644 index 000000000..80e980472 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch @@ -0,0 +1,61 @@ +Index: arptables-v0.0.3-4/Makefile +=================================================================== +--- arptables-v0.0.3-4.orig/Makefile 2010-03-08 18:49:28.000000000 +0300 ++++ arptables-v0.0.3-4/Makefile 2010-03-22 15:52:56.000000000 +0300 +@@ -6,12 +6,11 @@ + LIBDIR:=$(PREFIX)/lib + BINDIR:=$(PREFIX)/sbin + MANDIR:=$(PREFIX)/man +-INITDIR:=/etc/rc.d/init.d ++INITDIR:=/etc/init.d + SYSCONFIGDIR:=/etc/sysconfig + DESTDIR:= + +-COPT_FLAGS:=-O2 +-CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG ++ARPCFLAGS:=-Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" + + ifndef ARPT_LIBDIR + ARPT_LIBDIR:=$(LIBDIR)/arptables +@@ -22,16 +21,16 @@ + all: arptables + + arptables.o: arptables.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< + + arptables-standalone.o: arptables-standalone.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< + + libarptc/libarptc.o: libarptc/libarptc.c libarptc/libarptc_incl.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< + + arptables: arptables-standalone.o arptables.o libarptc/libarptc.o $(EXT_OBJS) +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(LDFLAGS) $(CFLAGS) $(ARPCFLAGS) -o $@ $^ + + $(DESTDIR)$(MANDIR)/man8/arptables.8: arptables.8 + mkdir -p $(@D) +@@ -50,6 +49,7 @@ + cat arptables-restore | sed 's/__EXEC_PATH__/$(tmp1)/g' > arptables-restore_ + install -m 0755 -o root -g root arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore + cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_ ++ install -d $(DESTDIR)$(INITDIR) + if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi + rm -f arptables-save_ arptables-restore_ arptables.sysv_ + +Index: arptables-v0.0.3-4/extensions/Makefile +=================================================================== +--- arptables-v0.0.3-4.orig/extensions/Makefile 2010-03-08 18:49:28.000000000 +0300 ++++ arptables-v0.0.3-4/extensions/Makefile 2010-03-22 15:52:38.000000000 +0300 +@@ -4,4 +4,7 @@ + EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) + + extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h +- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< ++ ++extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch new file mode 100644 index 000000000..24956c4ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch @@ -0,0 +1,77 @@ +Index: arptables-v0.0.3-4/arptables.sysv +=================================================================== +--- arptables-v0.0.3-4.orig/arptables.sysv 2010-03-22 16:28:03.000000000 +0300 ++++ arptables-v0.0.3-4/arptables.sysv 2010-03-22 16:27:51.000000000 +0300 +@@ -12,10 +12,10 @@ + # config: __SYSCONFIG__/arptables + + source /etc/init.d/functions +-source /etc/sysconfig/network ++# source /etc/sysconfig/network + + # Check that networking is up. +-[ ${NETWORKING} = "no" ] && exit 0 ++# [ ${NETWORKING} = "no" ] && exit 0 + + [ -x __EXEC_PATH__/arptables ] || exit 1 + [ -x __EXEC_PATH__/arptables-save ] || exit 1 +@@ -28,32 +28,30 @@ + desc="Arp filtering" + + start() { +- echo -n $"Starting $desc ($prog): " ++ echo -n "Starting $desc ($prog): " + __EXEC_PATH__/arptables-restore < __SYSCONFIG__/arptables || RETVAL=1 + + if [ $RETVAL -eq 0 ]; then +- success "$prog startup" +- rm -f /var/lock/subsys/$prog ++ echo "$prog ok" ++ touch /var/lock/subsys/$prog + else +- failure "$prog startup" ++ echo "$prog failed" + fi + +- echo + return $RETVAL + } + + stop() { +- echo -n $"Stopping $desc ($prog): " ++ echo -n "Stopping $desc ($prog): " + __EXEC_PATH__/arptables-restore < /dev/null || RETVAL=1 + + if [ $RETVAL -eq 0 ]; then +- success "$prog shutdown" +- rm -f %{_localstatedir}/lock/subsys/$prog ++ echo "$prog stopped" ++ rm -f /var/lock/subsys/$prog + else +- failure "$prog shutdown" ++ echo "$prog failed to stop" + fi + +- echo + return $RETVAL + } + +@@ -63,15 +61,14 @@ + } + + save() { +- echo -n $"Saving $desc ($prog): " ++ echo -n "Saving $desc ($prog): " + __EXEC_PATH__/arptables-save > __SYSCONFIG__/arptables || RETVAL=1 + + if [ $RETVAL -eq 0 ]; then +- success "$prog saved" ++ echo "$prog saved" + else +- failure "$prog saved" ++ echo "$prog is not saved" + fi +- echo + } + + case "$1" in diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch new file mode 100644 index 000000000..f332658bc --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch @@ -0,0 +1,37 @@ +From cd312bc0e3686404428878d23b8888cba09a20e1 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Thu, 18 Sep 2014 19:46:58 -0700 +Subject: [PATCH] arptables.sysv: remove bashism + +Use "." to replace of "source", and change /bin/bash to /bin/sh, the +echo $"foo" works well in busybox. + +Upstream-Status: Pending + +Signed-off-by: Robert Yang +--- + arptables.sysv | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arptables.sysv b/arptables.sysv +index 7a90bd2..7710376 100644 +--- a/arptables.sysv ++++ b/arptables.sysv +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # init script for arptables + # +@@ -11,7 +11,7 @@ + # + # config: __SYSCONFIG__/arptables + +-source /etc/init.d/functions ++. /etc/init.d/functions + # source /etc/sysconfig/network + + # Check that networking is up. +-- +1.7.9.5 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb new file mode 100644 index 000000000..be2ac6659 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb @@ -0,0 +1,33 @@ +SUMMARY = "Administration tool for arp packet filtering" +LICENSE = "GPL-2.0" +SECTION = "net" + +PR = "r2" + +RDEPENDS_${PN} += "perl" + +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/ebtables/arptables-v${PV}.tar.gz;name=arptables \ + file://arptables-compile-install.patch \ + file://arptables-init-busybox.patch \ + file://arptables-arpt-get-target-fix.patch \ + file://arptables-remove-bashism.patch \ +" +SRC_URI[arptables.md5sum] = "1d4ab05761f063b0751645d8f2b8f8e5" +SRC_URI[arptables.sha256sum] = "e529fd465c67d69ad335299a043516e6b38cdcd337a5ed21718413e96073f928" + +S = "${WORKDIR}/arptables-v${PV}" + +do_compile () { + oe_runmake +} + +# the install target is not multi-job safe, but it doesn't do much +# so we just install serially +# +PARALLEL_MAKEINST = "-j1" + +fakeroot do_install () { + oe_runmake 'BINDIR=${sbindir}' 'MANDIR=${mandir}/' 'DESTDIR=${D}' install +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils.inc new file mode 100644 index 000000000..0fb18d5d6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils.inc @@ -0,0 +1,28 @@ +SUMMARY = "Tools for ethernet bridging" +HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge" +SECTION = "net" +LICENSE = "GPLv2" + +DEPENDS = "sysfsutils" + +SRC_URI = "${SOURCEFORGE_MIRROR}/bridge/bridge-utils-${PV}.tar.gz \ + file://bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch \ + file://bridge-utils-1.5-fix-error-message-for-incorrect-command.patch \ + file://bridge-utils-1.5-fix-incorrect-command-in-manual.patch \ +" + +inherit autotools-brokensep update-alternatives + +ALTERNATIVE_${PN} = "brctl" +ALTERNATIVE_PRIORITY[brctl] = "100" +ALTERNATIVE_LINK_NAME[brctl] = "${sbindir}/brctl" + +EXTRA_OECONF = "--with-linux-headers=${STAGING_INCDIR}" + +do_install_append () { + install -d ${D}/${datadir}/bridge-utils + install -d ${D}/${sysconfdir}/network/if-pre-up.d + install -d ${D}/${sysconfdir}/network/if-post-down.d +} + +RRECOMMENDS_${PN} = "kernel-module-bridge" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch new file mode 100644 index 000000000..d00af9c15 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch @@ -0,0 +1,87 @@ +Upstream-status: BackPort [http://pkgs.fedoraproject.org/cgit/bridge-utils.git/diff/bridge-utils-1.5-check-error-returns-from-write-to-sysfs.patch?id=b0d10717fd7cebf5d85eed3f941b409fa0384f08] + +Signed-off-by: Roy.Li + +From bb9970a9df95837e39d680021b1f73d231e85406 Mon Sep 17 00:00:00 2001 +From: Stephen Hemminger +Date: Tue, 3 May 2011 09:52:43 -0700 +Subject: [PATCH 3/3] Check error returns from write to sysfs + +Add helper function to check write to sysfs files. + +Signed-off-by: Petr Sabata +--- + libbridge/libbridge_devif.c | 37 +++++++++++++++++++++++-------------- + 1 files changed, 23 insertions(+), 14 deletions(-) + +diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c +index aa8bc36..1e83925 100644 +--- a/libbridge/libbridge_devif.c ++++ b/libbridge/libbridge_devif.c +@@ -280,25 +280,38 @@ fallback: + return old_get_port_info(brname, port, info); + } + ++static int set_sysfs(const char *path, unsigned long value) ++{ ++ int fd, ret = 0, cc; ++ char buf[32]; ++ ++ fd = open(path, O_WRONLY); ++ if (fd < 0) ++ return -1; ++ ++ cc = snprintf(buf, sizeof(buf), "%lu\n", value); ++ if (write(fd, buf, cc) < 0) ++ ret = -1; ++ close(fd); ++ ++ return ret; ++} ++ + + static int br_set(const char *bridge, const char *name, + unsigned long value, unsigned long oldcode) + { + int ret; + char path[SYSFS_PATH_MAX]; +- FILE *f; + +- snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/%s", bridge, name); ++ snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge/%s", ++ bridge, name); + +- f = fopen(path, "w"); +- if (f) { +- ret = fprintf(f, "%ld\n", value); +- fclose(f); +- } else { ++ if ((ret = set_sysfs(path, value)) < 0) { + /* fallback to old ioctl */ + struct ifreq ifr; + unsigned long args[4] = { oldcode, value, 0, 0 }; +- ++ + strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + ifr.ifr_data = (char *) &args; + ret = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr); +@@ -348,14 +361,10 @@ static int port_set(const char *bridge, const char *ifname, + { + int ret; + char path[SYSFS_PATH_MAX]; +- FILE *f; + + snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/brport/%s", ifname, name); +- f = fopen(path, "w"); +- if (f) { +- ret = fprintf(f, "%ld\n", value); +- fclose(f); +- } else { ++ ++ if ((ret = set_sysfs(path, value)) < 0) { + int index = get_portno(bridge, ifname); + + if (index < 0) +-- +1.7.5.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-error-message-for-incorrect-command.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-error-message-for-incorrect-command.patch new file mode 100644 index 000000000..2d0494e53 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-error-message-for-incorrect-command.patch @@ -0,0 +1,33 @@ +Upstream-status: BackPort [http://pkgs.fedoraproject.org/cgit/bridge-utils.git/diff/bridge-utils-1.5-fix-error-message-for-incorrect-command.patch?id=b0d10717fd7cebf5d85eed3f941b409fa0384f08] + +Signed-off-by: Roy.Li + +From c7ed0996ef58b497d3d30be802ab5ae6c37099b5 Mon Sep 17 00:00:00 2001 +From: Stephen Hemminger +Date: Tue, 3 May 2011 09:49:57 -0700 +Subject: [PATCH 2/3] Fix error message for incorrect command + +Debian bug 406907 +Error message was refering to incorrect command argument. + +Signed-off-by: Petr Sabata +--- + brctl/brctl.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/brctl/brctl.c b/brctl/brctl.c +index 454b8dd..46ca352 100644 +--- a/brctl/brctl.c ++++ b/brctl/brctl.c +@@ -69,7 +69,7 @@ int main(int argc, char *const* argv) + argc -= optind; + argv += optind; + if ((cmd = command_lookup(*argv)) == NULL) { +- fprintf(stderr, "never heard of command [%s]\n", argv[1]); ++ fprintf(stderr, "never heard of command [%s]\n", *argv); + goto help; + } + +-- +1.7.5.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-incorrect-command-in-manual.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-incorrect-command-in-manual.patch new file mode 100644 index 000000000..6f6d6d423 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils/bridge-utils-1.5-fix-incorrect-command-in-manual.patch @@ -0,0 +1,33 @@ +Upstream-status: BackPort [http://pkgs.fedoraproject.org/cgit/bridge-utils.git/diff/bridge-utils-1.5-fix-incorrect-command-in-manual.patch?id=b0d10717fd7cebf5d85eed3f941b409fa0384f08] + +Signed-off-by: Roy.Li + +From 8ef7b77562b636efcbd8b759eb324d6c069200f2 Mon Sep 17 00:00:00 2001 +From: Stephen Hemminger +Date: Tue, 3 May 2011 09:48:40 -0700 +Subject: [PATCH 1/3] Fix incorrect command in manual + +Command is "setageing" not "setageingtime"; fix man page. +Debian bug report. + +Signed-off-by: Petr Sabata +--- + doc/brctl.8 | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/doc/brctl.8 b/doc/brctl.8 +index d904047..771f323 100644 +--- a/doc/brctl.8 ++++ b/doc/brctl.8 +@@ -89,7 +89,7 @@ data. Machines can move to other ports, network cards can be replaced + .B brctl showmacs + shows a list of learned MAC addresses for this bridge. + +-.B brctl setageingtime