summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-core
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/base-files/base-files/akita/fstab16
-rw-r--r--meta/recipes-core/base-files/base-files/akita/rotation1
-rw-r--r--meta/recipes-core/base-files/base-files/c7x0/fstab12
-rw-r--r--meta/recipes-core/base-files/base-files/c7x0/usbd1
-rw-r--r--meta/recipes-core/base-files/base-files/collie/fstab8
-rw-r--r--meta/recipes-core/base-files/base-files/collie/usbd1
-rw-r--r--meta/recipes-core/base-files/base-files/filesystems6
-rw-r--r--meta/recipes-core/base-files/base-files/fstab12
-rw-r--r--meta/recipes-core/base-files/base-files/host.conf2
-rw-r--r--meta/recipes-core/base-files/base-files/htcuniversal/rotation1
-rw-r--r--meta/recipes-core/base-files/base-files/hx2000/fstab9
-rw-r--r--meta/recipes-core/base-files/base-files/inputrc61
-rw-r--r--meta/recipes-core/base-files/base-files/issue2
-rw-r--r--meta/recipes-core/base-files/base-files/issue.net3
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/Artistic131
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/BSD26
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/GFDL-1.2397
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/GPL-2340
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/GPL-3676
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/LGPL-2481
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/LGPL-2.1510
-rw-r--r--meta/recipes-core/base-files/base-files/licenses/LGPL-3165
-rw-r--r--meta/recipes-core/base-files/base-files/motd0
-rw-r--r--meta/recipes-core/base-files/base-files/mtx-1/fstab8
-rw-r--r--meta/recipes-core/base-files/base-files/mtx-1/profile25
-rw-r--r--meta/recipes-core/base-files/base-files/nokia770/fstab6
-rw-r--r--meta/recipes-core/base-files/base-files/nsswitch.conf19
-rw-r--r--meta/recipes-core/base-files/base-files/poodle/fstab13
-rw-r--r--meta/recipes-core/base-files/base-files/poodle/usbd1
-rw-r--r--meta/recipes-core/base-files/base-files/profile32
-rw-r--r--meta/recipes-core/base-files/base-files/rotation1
-rw-r--r--meta/recipes-core/base-files/base-files/share/dot.bashrc16
-rw-r--r--meta/recipes-core/base-files/base-files/share/dot.profile10
-rw-r--r--meta/recipes-core/base-files/base-files/shells8
-rw-r--r--meta/recipes-core/base-files/base-files/spitz/fstab28
-rw-r--r--meta/recipes-core/base-files/base-files/spitz/rotation1
-rw-r--r--meta/recipes-core/base-files/base-files/sysctl.conf29
-rw-r--r--meta/recipes-core/base-files/base-files/tosa/fstab12
-rw-r--r--meta/recipes-core/base-files/base-files/tosa/usbd5
-rw-r--r--meta/recipes-core/base-files/base-files/usbd0
-rw-r--r--meta/recipes-core/base-files/base-files_3.0.14.bb177
-rw-r--r--meta/recipes-core/base-passwd/base-passwd-3.5.22/mysql.patch13
-rw-r--r--meta/recipes-core/base-passwd/base-passwd-3.5.22/nobash.patch20
-rw-r--r--meta/recipes-core/base-passwd/base-passwd-3.5.22/root-home.patch11
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.5.22.bb50
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/B921600.patch22
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/busybox-appletlib-dependency.patch35
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/defconfig924
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/get_header_tar.patch20
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/run-parts.in.usr-bin.patch27
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch54
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/udhcpscript.patch22
-rw-r--r--meta/recipes-core/busybox/busybox.inc140
-rw-r--r--meta/recipes-core/busybox/busybox_1.16.2.bb24
-rwxr-xr-xmeta/recipes-core/busybox/files/busybox-cron39
-rwxr-xr-xmeta/recipes-core/busybox/files/busybox-httpd44
-rwxr-xr-xmeta/recipes-core/busybox/files/busybox-udhcpd43
-rw-r--r--meta/recipes-core/busybox/files/default.script4
-rw-r--r--meta/recipes-core/busybox/files/find-touchscreen.sh9
-rw-r--r--meta/recipes-core/busybox/files/hwclock.sh82
-rwxr-xr-xmeta/recipes-core/busybox/files/mount.busybox3
-rw-r--r--meta/recipes-core/busybox/files/simple.script72
-rw-r--r--meta/recipes-core/busybox/files/syslog74
-rw-r--r--meta/recipes-core/busybox/files/syslog.conf9
-rwxr-xr-xmeta/recipes-core/busybox/files/umount.busybox3
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch16
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch10
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/codeset.m417
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/gettext.m4370
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/glibc21.m426
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/iconv.m469
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/lcmessage.m424
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/config/progtest.m451
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch46
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch73
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch47
-rw-r--r--meta/recipes-core/console-tools/console-tools_0.3.2.bb49
-rw-r--r--meta/recipes-core/dbus-wait/dbus-wait_svn.bb14
-rw-r--r--meta/recipes-core/dbus/dbus-1.2.24/dbus-1.init121
-rw-r--r--meta/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch56
-rw-r--r--meta/recipes-core/dbus/dbus-1.2.24/tmpdir.patch34
-rw-r--r--meta/recipes-core/dbus/dbus-glib-0.86/fix_asneeded.patch17
-rw-r--r--meta/recipes-core/dbus/dbus-glib-0.86/no-examples.patch12
-rw-r--r--meta/recipes-core/dbus/dbus-glib.inc23
-rw-r--r--meta/recipes-core/dbus/dbus-glib_0.86.bb3
-rw-r--r--meta/recipes-core/dbus/dbus.inc91
-rw-r--r--meta/recipes-core/dbus/dbus_1.2.24.bb3
-rw-r--r--meta/recipes-core/dropbear/dropbear-0.52/configure.patch27
-rw-r--r--meta/recipes-core/dropbear/dropbear.inc80
-rw-r--r--meta/recipes-core/dropbear/dropbear/allow-nopw.patch38
-rw-r--r--meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch11
-rwxr-xr-xmeta/recipes-core/dropbear/dropbear/init106
-rw-r--r--meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch12
-rw-r--r--meta/recipes-core/dropbear/dropbear_0.52.bb3
-rw-r--r--meta/recipes-core/eggdbus/eggdbus/gtk-doc.patch32
-rw-r--r--meta/recipes-core/eggdbus/eggdbus/marshal.patch26
-rw-r--r--meta/recipes-core/eggdbus/eggdbus_0.6.bb27
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/IO-acquire-lock-fix.patch15
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/armv4t-interworking.patch78
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/eglibc-svn-arm-lowlevellock-include-tls.patch19
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/etc/ld.so.conf2
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/generate-supported.mk11
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.12/shorten-build-commands.patch79
-rw-r--r--meta/recipes-core/eglibc/eglibc-initial.inc44
-rw-r--r--meta/recipes-core/eglibc/eglibc-initial_2.12.bb6
-rw-r--r--meta/recipes-core/eglibc/eglibc-package.bbclass381
-rw-r--r--meta/recipes-core/eglibc/eglibc.inc24
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.12.bb97
-rw-r--r--meta/recipes-core/expat/expat-2.0.1/autotools.patch17
-rw-r--r--meta/recipes-core/expat/expat.inc19
-rw-r--r--meta/recipes-core/expat/expat_2.0.1.bb3
-rw-r--r--meta/recipes-core/gettext/gettext-0.17/autotools.patch62
-rw-r--r--meta/recipes-core/gettext/gettext-0.17/gettext-error_print_progname.patch13
-rw-r--r--meta/recipes-core/gettext/gettext-0.17/m4fix.patch50
-rw-r--r--meta/recipes-core/gettext/gettext-0.17/use_open_properly.patch15
-rw-r--r--meta/recipes-core/gettext/gettext-0.17/wchar-uclibc.patch96
-rw-r--r--meta/recipes-core/gettext/gettext_0.17.bb55
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0-2.24.1/60_wait-longer-for-threads-to-die.patch29
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0-2.24.1/configure-libtool.patch34
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0-2.24.1/gatomic-proper-pointer-get-cast.patch37
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0-2.24.1/glib-gettextize-dir.patch19
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0.inc6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.24.1.bb11
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc34
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/arm-check-pf.patch14
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/arm-longlong.patch58
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/arm-lowlevellock-include-tls.patch12
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/arm-memcpy.patch758
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/dl-cache-libcmp.patch10
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/etc/ld.so.conf2
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/fhs-linux-paths.patch11
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/generate-supported.mk11
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/generic-bits_select.h35
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/generic-bits_time.h75
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/generic-bits_types.h200
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/generic-bits_typesizes.h66
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch35
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-IO-acquire-lock-fix.diff13
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-no-asm-page.patch15
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/glibc-check_pf.patch343
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/ldd-unbash.patch11
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/ldsocache-varrun.patch18
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/local-args6.diff12
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/march-i686.patch38
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/nptl-crosscompile.patch26
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/nscd-init.patch39
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/powerpc-sqrt-hack.diff25
-rw-r--r--meta/recipes-core/glibc/glibc-2.10.1/rulesfix.patch13
-rw-r--r--meta/recipes-core/glibc/glibc-initial.inc53
-rw-r--r--meta/recipes-core/glibc/glibc-initial_2.10.1.bb6
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc84
-rw-r--r--meta/recipes-core/glibc/glibc-stage.inc0
-rw-r--r--meta/recipes-core/glibc/glibc.inc42
-rw-r--r--meta/recipes-core/glibc/glibc_2.10.1.bb161
-rw-r--r--meta/recipes-core/glibc/ldconfig-native-2.5/32and64bit.patch289
-rw-r--r--meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig-native-2.5.tar.bz2bin0 -> 19454 bytes
-rw-r--r--meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig.patch460
-rw-r--r--meta/recipes-core/glibc/ldconfig-native_2.5.bb20
-rw-r--r--meta/recipes-core/images/poky-image-base.bb7
-rw-r--r--meta/recipes-core/images/poky-image-directdisk.inc8
-rw-r--r--meta/recipes-core/images/poky-image-live.inc18
-rw-r--r--meta/recipes-core/images/poky-image-minimal-directdisk.bb9
-rw-r--r--meta/recipes-core/images/poky-image-minimal-initramfs.bb8
-rw-r--r--meta/recipes-core/images/poky-image-minimal-live.bb9
-rw-r--r--meta/recipes-core/images/poky-image-minimal-mtdutils.bb6
-rw-r--r--meta/recipes-core/images/poky-image-minimal.bb11
-rw-r--r--meta/recipes-core/initrdscripts/files/init-boot.sh8
-rw-r--r--meta/recipes-core/initrdscripts/files/init-install.sh170
-rw-r--r--meta/recipes-core/initrdscripts/files/init-live.sh92
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb13
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb13
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb18
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh13
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/banner.sh24
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh78
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/checkfs.sh49
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/checkroot.sh137
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/device_table.txt197
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/devpts5
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/devpts.sh28
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/finish.sh14
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/functions14
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/halt29
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/hostname.sh13
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/jornada6xx/checkroot.sh211
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/jornada7xx/checkroot.sh211
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/mountall.sh38
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/mountnfs.sh83
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/om-gta01/inittab48
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/openmn/extractfs7
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/openmn/packages63
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/openmn/umountfs17
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh197
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/reboot15
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/rmnologin.sh20
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh13
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/sendsigs21
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/single24
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh19
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/umountfs24
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/umountnfs.sh32
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/urandom46
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/volatiles39
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb121
-rwxr-xr-xmeta/recipes-core/jpeg/jpeg-8b/debian-libjpeg7_7-1.diff1066
-rw-r--r--meta/recipes-core/jpeg/jpeg_8b.bb42
-rw-r--r--meta/recipes-core/libxml/libxml2.inc43
-rw-r--r--meta/recipes-core/libxml/libxml2/libxml-64bit.patch20
-rw-r--r--meta/recipes-core/libxml/libxml2_2.7.7.bb3
-rw-r--r--meta/recipes-core/netbase/netbase/colinux/interfaces8
-rw-r--r--meta/recipes-core/netbase/netbase/epia/interfaces10
-rw-r--r--meta/recipes-core/netbase/netbase/hosts2
-rw-r--r--meta/recipes-core/netbase/netbase/init52
-rw-r--r--meta/recipes-core/netbase/netbase/interfaces30
-rw-r--r--meta/recipes-core/netbase/netbase/mtx-1/interfaces29
-rw-r--r--meta/recipes-core/netbase/netbase/nfsroot39
-rw-r--r--meta/recipes-core/netbase/netbase/nokia800/interfaces5
-rw-r--r--meta/recipes-core/netbase/netbase/openmn/hosts2
-rw-r--r--meta/recipes-core/netbase/netbase/openmn/interfaces10
-rw-r--r--meta/recipes-core/netbase/netbase/qemuarm/interfaces13
-rw-r--r--meta/recipes-core/netbase/netbase/qemuarmv6/interfaces13
-rw-r--r--meta/recipes-core/netbase/netbase/qemuarmv7/interfaces13
-rw-r--r--meta/recipes-core/netbase/netbase/qemux86/interfaces15
-rw-r--r--meta/recipes-core/netbase/netbase/tosa/interfaces24
-rw-r--r--meta/recipes-core/netbase/netbase/wrt54/interfaces23
-rw-r--r--meta/recipes-core/netbase/netbase/xxs1500/interfaces15
-rw-r--r--meta/recipes-core/netbase/netbase_4.41.bb55
-rwxr-xr-xmeta/recipes-core/psplash/files/psplash-init29
-rw-r--r--meta/recipes-core/psplash/psplash_svn.bb26
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch23
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch81
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/bootlogd.init85
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/inittab30
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/need6
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/postinst17
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/prerm9
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/provide6
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/rc179
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/rcS34
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/rcS-default25
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb135
-rw-r--r--meta/recipes-core/tasks/task-base.bb385
-rw-r--r--meta/recipes-core/tasks/task-poky-boot.bb33
-rw-r--r--meta/recipes-core/tinylogin/tinylogin-1.4/add-system.patch115
-rw-r--r--meta/recipes-core/tinylogin/tinylogin-1.4/adduser-empty_pwd.patch43
-rw-r--r--meta/recipes-core/tinylogin/tinylogin-1.4/cvs-20040608.patch821
-rw-r--r--meta/recipes-core/tinylogin/tinylogin-1.4/remove-index.patch11
-rw-r--r--meta/recipes-core/tinylogin/tinylogin_1.4.bb29
-rw-r--r--meta/recipes-core/uclibc/files/armeb-kernel-stat.h.patch125
-rw-r--r--meta/recipes-core/uclibc/files/errno_values.h.patch21
-rw-r--r--meta/recipes-core/uclibc/files/kernel-key-t-ipc.h.patch27
-rw-r--r--meta/recipes-core/uclibc/files/nokernelheadercheck.patch24
-rw-r--r--meta/recipes-core/uclibc/files/termios.h.patch22
-rw-r--r--meta/recipes-core/uclibc/files/uClibc.distro3
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch393
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/akita/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch218
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/arm/uClibc.machine69
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine69
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch31
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch21
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch291
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine69
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine69
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/pthread_atfork.patch42
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine68
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine68
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.config0
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.distro148
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t69
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm70
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch474
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch13
-rw-r--r--meta/recipes-core/uclibc/uclibc-0.9.30.1/x86/uClibc.machine72
-rw-r--r--meta/recipes-core/uclibc/uclibc-initial_0.9.30.1.bb27
-rw-r--r--meta/recipes-core/uclibc/uclibc.inc183
-rw-r--r--meta/recipes-core/uclibc/uclibc_0.9.30.1.bb33
-rw-r--r--meta/recipes-core/udev/files/50-hostap_cs.rules4
-rw-r--r--meta/recipes-core/udev/files/akita/mount.blacklist3
-rw-r--r--meta/recipes-core/udev/files/c7x0/mount.blacklist3
-rw-r--r--meta/recipes-core/udev/files/devfs-udev.rules108
-rw-r--r--meta/recipes-core/udev/files/fix-alignment.patch24
-rwxr-xr-xmeta/recipes-core/udev/files/init212
-rw-r--r--meta/recipes-core/udev/files/links.conf21
-rw-r--r--meta/recipes-core/udev/files/local.rules22
-rw-r--r--meta/recipes-core/udev/files/mount.blacklist3
-rw-r--r--meta/recipes-core/udev/files/mount.sh68
-rw-r--r--meta/recipes-core/udev/files/network.sh55
-rw-r--r--meta/recipes-core/udev/files/noasmlinkage.patch38
-rw-r--r--meta/recipes-core/udev/files/permissions.rules81
-rw-r--r--meta/recipes-core/udev/files/slugos/mount.blacklist4
-rw-r--r--meta/recipes-core/udev/files/spitz/mount.blacklist4
-rw-r--r--meta/recipes-core/udev/files/tmpfs.patch16
-rw-r--r--meta/recipes-core/udev/files/tosa/mount.blacklist3
-rw-r--r--meta/recipes-core/udev/files/udev-cache20
-rw-r--r--meta/recipes-core/udev/files/udev.rules98
-rw-r--r--meta/recipes-core/udev/files/udev_network_queue.sh35
-rw-r--r--meta/recipes-core/udev/files/udevsynthesize.patch776
-rw-r--r--meta/recipes-core/udev/files/udevsynthesize.sh51
-rw-r--r--meta/recipes-core/udev/udev-092/arm_inotify_fix.patch17
-rw-r--r--meta/recipes-core/udev/udev-092/flags.patch51
-rw-r--r--meta/recipes-core/udev/udev-092/init227
-rw-r--r--meta/recipes-core/udev/udev-092/local.rules31
-rw-r--r--meta/recipes-core/udev/udev-092/permissions.rules109
-rw-r--r--meta/recipes-core/udev/udev-092/udev.rules102
-rw-r--r--meta/recipes-core/udev/udev-115/flags.patch56
-rw-r--r--meta/recipes-core/udev/udev-115/init48
-rw-r--r--meta/recipes-core/udev/udev-115/local.rules31
-rw-r--r--meta/recipes-core/udev/udev-115/noasmlinkage.patch36
-rw-r--r--meta/recipes-core/udev/udev-115/permissions.rules101
-rw-r--r--meta/recipes-core/udev/udev-115/udev.rules105
-rw-r--r--meta/recipes-core/udev/udev-115/udevtrigger_add_devname_filtering.patch104
-rw-r--r--meta/recipes-core/udev/udev-115/vol_id_ld.patch17
-rw-r--r--meta/recipes-core/udev/udev-124/flags.patch56
-rw-r--r--meta/recipes-core/udev/udev-124/init59
-rw-r--r--meta/recipes-core/udev/udev-124/local.rules31
-rw-r--r--meta/recipes-core/udev/udev-124/noasmlinkage.patch45
-rw-r--r--meta/recipes-core/udev/udev-124/permissions.rules131
-rw-r--r--meta/recipes-core/udev/udev-124/run.rules14
-rw-r--r--meta/recipes-core/udev/udev-124/udev.rules116
-rw-r--r--meta/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch99
-rw-r--r--meta/recipes-core/udev/udev-124/vol_id_ld.patch17
-rw-r--r--meta/recipes-core/udev/udev-141/igep0020/local.rules34
-rw-r--r--meta/recipes-core/udev/udev-141/init59
-rw-r--r--meta/recipes-core/udev/udev-141/local.rules33
-rw-r--r--meta/recipes-core/udev/udev-141/noasmlinkage.patch48
-rw-r--r--meta/recipes-core/udev/udev-141/permissions.rules131
-rw-r--r--meta/recipes-core/udev/udev-141/run.rules14
-rw-r--r--meta/recipes-core/udev/udev-141/udev.rules116
-rw-r--r--meta/recipes-core/udev/udev-141/unbreak.patch24
-rw-r--r--meta/recipes-core/udev/udev-145/enable-gudev.patch48
-rw-r--r--meta/recipes-core/udev/udev-145/init59
-rw-r--r--meta/recipes-core/udev/udev-145/local.rules33
-rw-r--r--meta/recipes-core/udev/udev-145/noasmlinkage.patch48
-rw-r--r--meta/recipes-core/udev/udev-145/permissions.rules131
-rw-r--r--meta/recipes-core/udev/udev-145/run.rules14
-rw-r--r--meta/recipes-core/udev/udev-145/udev.rules116
-rw-r--r--meta/recipes-core/udev/udev-145/unbreak.patch24
-rw-r--r--meta/recipes-core/udev/udev-158/init59
-rw-r--r--meta/recipes-core/udev/udev-158/local.rules33
-rw-r--r--meta/recipes-core/udev/udev-158/permissions.rules131
-rw-r--r--meta/recipes-core/udev/udev-158/run.rules14
-rw-r--r--meta/recipes-core/udev/udev-158/udev.rules116
-rw-r--r--meta/recipes-core/udev/udev-extraconf_0.0.bb12
-rw-r--r--meta/recipes-core/udev/udev-new.inc92
-rw-r--r--meta/recipes-core/udev/udev.inc71
-rw-r--r--meta/recipes-core/udev/udev_092.bb58
-rw-r--r--meta/recipes-core/udev/udev_115.bb55
-rw-r--r--meta/recipes-core/udev/udev_124.bb62
-rw-r--r--meta/recipes-core/udev/udev_141.bb65
-rw-r--r--meta/recipes-core/udev/udev_145.bb65
-rw-r--r--meta/recipes-core/udev/udev_158.bb3
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch47
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d_0.7.bb25
-rw-r--r--meta/recipes-core/zlib/files/Makefile.am9
-rw-r--r--meta/recipes-core/zlib/files/configure.ac48
-rw-r--r--meta/recipes-core/zlib/zlib_1.2.5.bb22
368 files changed, 25365 insertions, 0 deletions
diff --git a/meta/recipes-core/base-files/base-files/akita/fstab b/meta/recipes-core/base-files/base-files/akita/fstab
new file mode 100644
index 0000000000..5f2c941345
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/akita/fstab
@@ -0,0 +1,16 @@
1/dev/mtdblock2 / jffs2 rw,noatime 1 1
2/dev/mtdblock3 /home jffs2 defaults,noatime 1 2
3proc /proc proc defaults 0 0
4/dev/hda1 /media/cf auto defaults,sync,noauto 0 0
5
6tmpfs /var/volatile tmpfs defaults 0 0
7tmpfs /media/ram tmpfs defaults 0 0
8
9# SD/MMC in kernel 2.4
10/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
11# SD/MMC in kernel 2.6
12/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
13
14# USB Storage
15/dev/sda1 /media/usbhdd vfat noauto,umask=000,noatime,iocharset=utf8,codepage=932 0 0
16
diff --git a/meta/recipes-core/base-files/base-files/akita/rotation b/meta/recipes-core/base-files/base-files/akita/rotation
new file mode 100644
index 0000000000..2a14d60899
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/akita/rotation
@@ -0,0 +1 @@
270 \ No newline at end of file
diff --git a/meta/recipes-core/base-files/base-files/c7x0/fstab b/meta/recipes-core/base-files/base-files/c7x0/fstab
new file mode 100644
index 0000000000..e065e8112e
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/c7x0/fstab
@@ -0,0 +1,12 @@
1/dev/mtdblock2 / jffs2 rw,noatime 1 1
2/dev/mtdblock3 /home jffs2 defaults,noatime 1 2
3proc /proc proc defaults 0 0
4/dev/hda1 /media/cf auto defaults,sync,noauto 0 0
5
6tmpfs /var/volatile tmpfs defaults 0 0
7tmpfs /media/ram tmpfs defaults 0 0
8
9# SD/MMC in kernel 2.4
10/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
11# SD/MMC in kernel 2.6
12/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
diff --git a/meta/recipes-core/base-files/base-files/c7x0/usbd b/meta/recipes-core/base-files/base-files/c7x0/usbd
new file mode 100644
index 0000000000..40931ee8e9
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/c7x0/usbd
@@ -0,0 +1 @@
usbdmodule=pxa_bi
diff --git a/meta/recipes-core/base-files/base-files/collie/fstab b/meta/recipes-core/base-files/base-files/collie/fstab
new file mode 100644
index 0000000000..dc3499b909
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/collie/fstab
@@ -0,0 +1,8 @@
1/dev/mtdblock4 / jffs2 defaults 1 1
2proc /proc proc defaults 0 0
3/dev/hda1 /media/cf auto defaults,sync,noauto,noatime,user,exec,suid,gid=100,umask=0002 0 0
4/dev/mmcda1 /media/card auto defaults,sync,noauto,noatime,user,exec,suid 0 0
5tmpfs /var/volatile tmpfs defaults 0 0
6
7# we use a non-volatile ramdisk, see /etc/init.d/ramdisk
8#tmpfs /media/ram tmpfs defaults 0 0
diff --git a/meta/recipes-core/base-files/base-files/collie/usbd b/meta/recipes-core/base-files/base-files/collie/usbd
new file mode 100644
index 0000000000..4257614583
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/collie/usbd
@@ -0,0 +1 @@
usbdmodule=sa1100_bi
diff --git a/meta/recipes-core/base-files/base-files/filesystems b/meta/recipes-core/base-files/base-files/filesystems
new file mode 100644
index 0000000000..653593a432
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/filesystems
@@ -0,0 +1,6 @@
1minix
2fat
3vfat
4ext2
5ext3
6*
diff --git a/meta/recipes-core/base-files/base-files/fstab b/meta/recipes-core/base-files/base-files/fstab
new file mode 100644
index 0000000000..f0eed36ed7
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/fstab
@@ -0,0 +1,12 @@
1# stock fstab - you probably want to override this with a machine specific one
2
3rootfs / auto defaults 1 1
4proc /proc proc defaults 0 0
5devpts /dev/pts devpts mode=0620,gid=5 0 0
6usbdevfs /proc/bus/usb usbdevfs noauto 0 0
7tmpfs /var/volatile tmpfs defaults 0 0
8tmpfs /media/ram tmpfs defaults 0 0
9
10# uncomment this if your device has a SD/MMC/Transflash slot
11#/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
12
diff --git a/meta/recipes-core/base-files/base-files/host.conf b/meta/recipes-core/base-files/base-files/host.conf
new file mode 100644
index 0000000000..1a8c1e1517
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/host.conf
@@ -0,0 +1,2 @@
1order hosts,bind
2multi on
diff --git a/meta/recipes-core/base-files/base-files/htcuniversal/rotation b/meta/recipes-core/base-files/base-files/htcuniversal/rotation
new file mode 100644
index 0000000000..2a14d60899
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/htcuniversal/rotation
@@ -0,0 +1 @@
270 \ No newline at end of file
diff --git a/meta/recipes-core/base-files/base-files/hx2000/fstab b/meta/recipes-core/base-files/base-files/hx2000/fstab
new file mode 100644
index 0000000000..2d4b7aae72
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/hx2000/fstab
@@ -0,0 +1,9 @@
1/dev/mtdblock2 / jffs2 defaults 1 1
2/dev/mtdblock3 /home jffs2 defaults 1 1
3
4proc /proc proc defaults 0 0
5sys /sys sysfs defaults 0 0
6
7/dev/hda1 /media/cf auto defaults,noauto,noatime,exec,suid 0 0
8tmpfs /var/volatile tmpfs defaults 0 0
9tmpfs /media/ram tmpfs defaults 0 0
diff --git a/meta/recipes-core/base-files/base-files/inputrc b/meta/recipes-core/base-files/base-files/inputrc
new file mode 100644
index 0000000000..b5c4c8af24
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/inputrc
@@ -0,0 +1,61 @@
1# /etc/inputrc - global inputrc for libreadline
2# See readline(3readline) and `info rluserman' for more information.
3
4# Be 8 bit clean.
5set input-meta on
6set output-meta on
7
8# To allow the use of 8bit-characters like the german umlauts, comment out
9# the line below. However this makes the meta key not work as a meta key,
10# which is annoying to those which don't need to type in 8-bit characters.
11
12# set convert-meta off
13
14# try to enable the application keypad when it is called. Some systems
15# need this to enable the arrow keys.
16# set enable-keypad on
17
18# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
19
20# do not bell on tab-completion
21# set bell-style none
22
23# some defaults / modifications for the emacs mode
24$if mode=emacs
25
26# allow the use of the Home/End keys
27# "\e[1~": beginning-of-line
28# "\e[4~": end-of-line
29
30# allow the use of the Delete/Insert keys
31# "\e[3~": delete-char
32# "\e[2~": quoted-insert
33
34# mappings for "page up" and "page down" to step to the beginning/end
35# of the history
36# "\e[5~": beginning-of-history
37# "\e[6~": end-of-history
38
39# alternate mappings for "page up" and "page down" to search the history
40# "\e[5~": history-search-backward
41# "\e[6~": history-search-forward
42
43# # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
44# "\e[5C": forward-word
45# "\e[5D": backward-word
46# "\e\e[C": forward-word
47# "\e\e[D": backward-word
48
49# $if term=rxvt
50# "\e[8~": end-of-line
51# $endif
52
53# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
54# "\eOH": beginning-of-line
55# "\eOF": end-of-line
56
57# for freebsd console
58# "\e[H": beginning-of-line
59# "\e[F": end-of-line
60
61$endif
diff --git a/meta/recipes-core/base-files/base-files/issue b/meta/recipes-core/base-files/base-files/issue
new file mode 100644
index 0000000000..329af4665e
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/issue
@@ -0,0 +1,2 @@
1OpenEmbedded Linux \n \l
2
diff --git a/meta/recipes-core/base-files/base-files/issue.net b/meta/recipes-core/base-files/base-files/issue.net
new file mode 100644
index 0000000000..6dc3588b4f
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/issue.net
@@ -0,0 +1,3 @@
1OpenEmbedded Linux %h
2
3
diff --git a/meta/recipes-core/base-files/base-files/licenses/Artistic b/meta/recipes-core/base-files/base-files/licenses/Artistic
new file mode 100644
index 0000000000..5f221241e8
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/Artistic
@@ -0,0 +1,131 @@
1
2
3
4
5 The "Artistic License"
6
7 Preamble
8
9The intent of this document is to state the conditions under which a
10Package may be copied, such that the Copyright Holder maintains some
11semblance of artistic control over the development of the package,
12while giving the users of the package the right to use and distribute
13the Package in a more-or-less customary fashion, plus the right to make
14reasonable modifications.
15
16Definitions:
17
18 "Package" refers to the collection of files distributed by the
19 Copyright Holder, and derivatives of that collection of files
20 created through textual modification.
21
22 "Standard Version" refers to such a Package if it has not been
23 modified, or has been modified in accordance with the wishes
24 of the Copyright Holder as specified below.
25
26 "Copyright Holder" is whoever is named in the copyright or
27 copyrights for the package.
28
29 "You" is you, if you're thinking about copying or distributing
30 this Package.
31
32 "Reasonable copying fee" is whatever you can justify on the
33 basis of media cost, duplication charges, time of people involved,
34 and so on. (You will not be required to justify it to the
35 Copyright Holder, but only to the computing community at large
36 as a market that must bear the fee.)
37
38 "Freely Available" means that no fee is charged for the item
39 itself, though there may be fees involved in handling the item.
40 It also means that recipients of the item may redistribute it
41 under the same conditions they received it.
42
431. You may make and give away verbatim copies of the source form of the
44Standard Version of this Package without restriction, provided that you
45duplicate all of the original copyright notices and associated disclaimers.
46
472. You may apply bug fixes, portability fixes and other modifications
48derived from the Public Domain or from the Copyright Holder. A Package
49modified in such a way shall still be considered the Standard Version.
50
513. You may otherwise modify your copy of this Package in any way, provided
52that you insert a prominent notice in each changed file stating how and
53when you changed that file, and provided that you do at least ONE of the
54following:
55
56 a) place your modifications in the Public Domain or otherwise make them
57 Freely Available, such as by posting said modifications to Usenet or
58 an equivalent medium, or placing the modifications on a major archive
59 site such as uunet.uu.net, or by allowing the Copyright Holder to include
60 your modifications in the Standard Version of the Package.
61
62 b) use the modified Package only within your corporation or organization.
63
64 c) rename any non-standard executables so the names do not conflict
65 with standard executables, which must also be provided, and provide
66 a separate manual page for each non-standard executable that clearly
67 documents how it differs from the Standard Version.
68
69 d) make other distribution arrangements with the Copyright Holder.
70
714. You may distribute the programs of this Package in object code or
72executable form, provided that you do at least ONE of the following:
73
74 a) distribute a Standard Version of the executables and library files,
75 together with instructions (in the manual page or equivalent) on where
76 to get the Standard Version.
77
78 b) accompany the distribution with the machine-readable source of
79 the Package with your modifications.
80
81 c) give non-standard executables non-standard names, and clearly
82 document the differences in manual pages (or equivalent), together
83 with instructions on where to get the Standard Version.
84
85 d) make other distribution arrangements with the Copyright Holder.
86
875. You may charge a reasonable copying fee for any distribution of this
88Package. You may charge any fee you choose for support of this
89Package. You may not charge a fee for this Package itself. However,
90you may distribute this Package in aggregate with other (possibly
91commercial) programs as part of a larger (possibly commercial) software
92distribution provided that you do not advertise this Package as a
93product of your own. You may embed this Package's interpreter within
94an executable of yours (by linking); this shall be construed as a mere
95form of aggregation, provided that the complete Standard Version of the
96interpreter is so embedded.
97
986. The scripts and library files supplied as input to or produced as
99output from the programs of this Package do not automatically fall
100under the copyright of this Package, but belong to whoever generated
101them, and may be sold commercially, and may be aggregated with this
102Package. If such scripts or library files are aggregated with this
103Package via the so-called "undump" or "unexec" methods of producing a
104binary executable image, then distribution of such an image shall
105neither be construed as a distribution of this Package nor shall it
106fall under the restrictions of Paragraphs 3 and 4, provided that you do
107not represent such an executable image as a Standard Version of this
108Package.
109
1107. C subroutines (or comparably compiled subroutines in other
111languages) supplied by you and linked into this Package in order to
112emulate subroutines and variables of the language defined by this
113Package shall not be considered part of this Package, but are the
114equivalent of input as in Paragraph 6, provided these subroutines do
115not change the language in any way that would cause it to fail the
116regression tests for the language.
117
1188. Aggregation of this Package with a commercial distribution is always
119permitted provided that the use of this Package is embedded; that is,
120when no overt attempt is made to make this Package's interfaces visible
121to the end user of the commercial distribution. Such use shall not be
122construed as a distribution of this Package.
123
1249. The name of the Copyright Holder may not be used to endorse or promote
125products derived from this software without specific prior written permission.
126
12710. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
128IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
129WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
130
131 The End
diff --git a/meta/recipes-core/base-files/base-files/licenses/BSD b/meta/recipes-core/base-files/base-files/licenses/BSD
new file mode 100644
index 0000000000..c7a0aa4f94
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/BSD
@@ -0,0 +1,26 @@
1Copyright (c) The Regents of the University of California.
2All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions
6are met:
71. Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
92. Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in the
11 documentation and/or other materials provided with the distribution.
123. Neither the name of the University nor the names of its contributors
13 may be used to endorse or promote products derived from this software
14 without specific prior written permission.
15
16THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26SUCH DAMAGE.
diff --git a/meta/recipes-core/base-files/base-files/licenses/GFDL-1.2 b/meta/recipes-core/base-files/base-files/licenses/GFDL-1.2
new file mode 100644
index 0000000000..4a0fe1c8de
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/GFDL-1.2
@@ -0,0 +1,397 @@
1 GNU Free Documentation License
2 Version 1.2, November 2002
3
4
5 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
6 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
7 Everyone is permitted to copy and distribute verbatim copies
8 of this license document, but changing it is not allowed.
9
10
110. PREAMBLE
12
13The purpose of this License is to make a manual, textbook, or other
14functional and useful document "free" in the sense of freedom: to
15assure everyone the effective freedom to copy and redistribute it,
16with or without modifying it, either commercially or noncommercially.
17Secondarily, this License preserves for the author and publisher a way
18to get credit for their work, while not being considered responsible
19for modifications made by others.
20
21This License is a kind of "copyleft", which means that derivative
22works of the document must themselves be free in the same sense. It
23complements the GNU General Public License, which is a copyleft
24license designed for free software.
25
26We have designed this License in order to use it for manuals for free
27software, because free software needs free documentation: a free
28program should come with manuals providing the same freedoms that the
29software does. But this License is not limited to software manuals;
30it can be used for any textual work, regardless of subject matter or
31whether it is published as a printed book. We recommend this License
32principally for works whose purpose is instruction or reference.
33
34
351. APPLICABILITY AND DEFINITIONS
36
37This License applies to any manual or other work, in any medium, that
38contains a notice placed by the copyright holder saying it can be
39distributed under the terms of this License. Such a notice grants a
40world-wide, royalty-free license, unlimited in duration, to use that
41work under the conditions stated herein. The "Document", below,
42refers to any such manual or work. Any member of the public is a
43licensee, and is addressed as "you". You accept the license if you
44copy, modify or distribute the work in a way requiring permission
45under copyright law.
46
47A "Modified Version" of the Document means any work containing the
48Document or a portion of it, either copied verbatim, or with
49modifications and/or translated into another language.
50
51A "Secondary Section" is a named appendix or a front-matter section of
52the Document that deals exclusively with the relationship of the
53publishers or authors of the Document to the Document's overall subject
54(or to related matters) and contains nothing that could fall directly
55within that overall subject. (Thus, if the Document is in part a
56textbook of mathematics, a Secondary Section may not explain any
57mathematics.) The relationship could be a matter of historical
58connection with the subject or with related matters, or of legal,
59commercial, philosophical, ethical or political position regarding
60them.
61
62The "Invariant Sections" are certain Secondary Sections whose titles
63are designated, as being those of Invariant Sections, in the notice
64that says that the Document is released under this License. If a
65section does not fit the above definition of Secondary then it is not
66allowed to be designated as Invariant. The Document may contain zero
67Invariant Sections. If the Document does not identify any Invariant
68Sections then there are none.
69
70The "Cover Texts" are certain short passages of text that are listed,
71as Front-Cover Texts or Back-Cover Texts, in the notice that says that
72the Document is released under this License. A Front-Cover Text may
73be at most 5 words, and a Back-Cover Text may be at most 25 words.
74
75A "Transparent" copy of the Document means a machine-readable copy,
76represented in a format whose specification is available to the
77general public, that is suitable for revising the document
78straightforwardly with generic text editors or (for images composed of
79pixels) generic paint programs or (for drawings) some widely available
80drawing editor, and that is suitable for input to text formatters or
81for automatic translation to a variety of formats suitable for input
82to text formatters. A copy made in an otherwise Transparent file
83format whose markup, or absence of markup, has been arranged to thwart
84or discourage subsequent modification by readers is not Transparent.
85An image format is not Transparent if used for any substantial amount
86of text. A copy that is not "Transparent" is called "Opaque".
87
88Examples of suitable formats for Transparent copies include plain
89ASCII without markup, Texinfo input format, LaTeX input format, SGML
90or XML using a publicly available DTD, and standard-conforming simple
91HTML, PostScript or PDF designed for human modification. Examples of
92transparent image formats include PNG, XCF and JPG. Opaque formats
93include proprietary formats that can be read and edited only by
94proprietary word processors, SGML or XML for which the DTD and/or
95processing tools are not generally available, and the
96machine-generated HTML, PostScript or PDF produced by some word
97processors for output purposes only.
98
99The "Title Page" means, for a printed book, the title page itself,
100plus such following pages as are needed to hold, legibly, the material
101this License requires to appear in the title page. For works in
102formats which do not have any title page as such, "Title Page" means
103the text near the most prominent appearance of the work's title,
104preceding the beginning of the body of the text.
105
106A section "Entitled XYZ" means a named subunit of the Document whose
107title either is precisely XYZ or contains XYZ in parentheses following
108text that translates XYZ in another language. (Here XYZ stands for a
109specific section name mentioned below, such as "Acknowledgements",
110"Dedications", "Endorsements", or "History".) To "Preserve the Title"
111of such a section when you modify the Document means that it remains a
112section "Entitled XYZ" according to this definition.
113
114The Document may include Warranty Disclaimers next to the notice which
115states that this License applies to the Document. These Warranty
116Disclaimers are considered to be included by reference in this
117License, but only as regards disclaiming warranties: any other
118implication that these Warranty Disclaimers may have is void and has
119no effect on the meaning of this License.
120
121
1222. VERBATIM COPYING
123
124You may copy and distribute the Document in any medium, either
125commercially or noncommercially, provided that this License, the
126copyright notices, and the license notice saying this License applies
127to the Document are reproduced in all copies, and that you add no other
128conditions whatsoever to those of this License. You may not use
129technical measures to obstruct or control the reading or further
130copying of the copies you make or distribute. However, you may accept
131compensation in exchange for copies. If you distribute a large enough
132number of copies you must also follow the conditions in section 3.
133
134You may also lend copies, under the same conditions stated above, and
135you may publicly display copies.
136
137
1383. COPYING IN QUANTITY
139
140If you publish printed copies (or copies in media that commonly have
141printed covers) of the Document, numbering more than 100, and the
142Document's license notice requires Cover Texts, you must enclose the
143copies in covers that carry, clearly and legibly, all these Cover
144Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
145the back cover. Both covers must also clearly and legibly identify
146you as the publisher of these copies. The front cover must present
147the full title with all words of the title equally prominent and
148visible. You may add other material on the covers in addition.
149Copying with changes limited to the covers, as long as they preserve
150the title of the Document and satisfy these conditions, can be treated
151as verbatim copying in other respects.
152
153If the required texts for either cover are too voluminous to fit
154legibly, you should put the first ones listed (as many as fit
155reasonably) on the actual cover, and continue the rest onto adjacent
156pages.
157
158If you publish or distribute Opaque copies of the Document numbering
159more than 100, you must either include a machine-readable Transparent
160copy along with each Opaque copy, or state in or with each Opaque copy
161a computer-network location from which the general network-using
162public has access to download using public-standard network protocols
163a complete Transparent copy of the Document, free of added material.
164If you use the latter option, you must take reasonably prudent steps,
165when you begin distribution of Opaque copies in quantity, to ensure
166that this Transparent copy will remain thus accessible at the stated
167location until at least one year after the last time you distribute an
168Opaque copy (directly or through your agents or retailers) of that
169edition to the public.
170
171It is requested, but not required, that you contact the authors of the
172Document well before redistributing any large number of copies, to give
173them a chance to provide you with an updated version of the Document.
174
175
1764. MODIFICATIONS
177
178You may copy and distribute a Modified Version of the Document under
179the conditions of sections 2 and 3 above, provided that you release
180the Modified Version under precisely this License, with the Modified
181Version filling the role of the Document, thus licensing distribution
182and modification of the Modified Version to whoever possesses a copy
183of it. In addition, you must do these things in the Modified Version:
184
185A. Use in the Title Page (and on the covers, if any) a title distinct
186 from that of the Document, and from those of previous versions
187 (which should, if there were any, be listed in the History section
188 of the Document). You may use the same title as a previous version
189 if the original publisher of that version gives permission.
190B. List on the Title Page, as authors, one or more persons or entities
191 responsible for authorship of the modifications in the Modified
192 Version, together with at least five of the principal authors of the
193 Document (all of its principal authors, if it has fewer than five),
194 unless they release you from this requirement.
195C. State on the Title page the name of the publisher of the
196 Modified Version, as the publisher.
197D. Preserve all the copyright notices of the Document.
198E. Add an appropriate copyright notice for your modifications
199 adjacent to the other copyright notices.
200F. Include, immediately after the copyright notices, a license notice
201 giving the public permission to use the Modified Version under the
202 terms of this License, in the form shown in the Addendum below.
203G. Preserve in that license notice the full lists of Invariant Sections
204 and required Cover Texts given in the Document's license notice.
205H. Include an unaltered copy of this License.
206I. Preserve the section Entitled "History", Preserve its Title, and add
207 to it an item stating at least the title, year, new authors, and
208 publisher of the Modified Version as given on the Title Page. If
209 there is no section Entitled "History" in the Document, create one
210 stating the title, year, authors, and publisher of the Document as
211 given on its Title Page, then add an item describing the Modified
212 Version as stated in the previous sentence.
213J. Preserve the network location, if any, given in the Document for
214 public access to a Transparent copy of the Document, and likewise
215 the network locations given in the Document for previous versions
216 it was based on. These may be placed in the "History" section.
217 You may omit a network location for a work that was published at
218 least four years before the Document itself, or if the original
219 publisher of the version it refers to gives permission.
220K. For any section Entitled "Acknowledgements" or "Dedications",
221 Preserve the Title of the section, and preserve in the section all
222 the substance and tone of each of the contributor acknowledgements
223 and/or dedications given therein.
224L. Preserve all the Invariant Sections of the Document,
225 unaltered in their text and in their titles. Section numbers
226 or the equivalent are not considered part of the section titles.
227M. Delete any section Entitled "Endorsements". Such a section
228 may not be included in the Modified Version.
229N. Do not retitle any existing section to be Entitled "Endorsements"
230 or to conflict in title with any Invariant Section.
231O. Preserve any Warranty Disclaimers.
232
233If the Modified Version includes new front-matter sections or
234appendices that qualify as Secondary Sections and contain no material
235copied from the Document, you may at your option designate some or all
236of these sections as invariant. To do this, add their titles to the
237list of Invariant Sections in the Modified Version's license notice.
238These titles must be distinct from any other section titles.
239
240You may add a section Entitled "Endorsements", provided it contains
241nothing but endorsements of your Modified Version by various
242parties--for example, statements of peer review or that the text has
243been approved by an organization as the authoritative definition of a
244standard.
245
246You may add a passage of up to five words as a Front-Cover Text, and a
247passage of up to 25 words as a Back-Cover Text, to the end of the list
248of Cover Texts in the Modified Version. Only one passage of
249Front-Cover Text and one of Back-Cover Text may be added by (or
250through arrangements made by) any one entity. If the Document already
251includes a cover text for the same cover, previously added by you or
252by arrangement made by the same entity you are acting on behalf of,
253you may not add another; but you may replace the old one, on explicit
254permission from the previous publisher that added the old one.
255
256The author(s) and publisher(s) of the Document do not by this License
257give permission to use their names for publicity for or to assert or
258imply endorsement of any Modified Version.
259
260
2615. COMBINING DOCUMENTS
262
263You may combine the Document with other documents released under this
264License, under the terms defined in section 4 above for modified
265versions, provided that you include in the combination all of the
266Invariant Sections of all of the original documents, unmodified, and
267list them all as Invariant Sections of your combined work in its
268license notice, and that you preserve all their Warranty Disclaimers.
269
270The combined work need only contain one copy of this License, and
271multiple identical Invariant Sections may be replaced with a single
272copy. If there are multiple Invariant Sections with the same name but
273different contents, make the title of each such section unique by
274adding at the end of it, in parentheses, the name of the original
275author or publisher of that section if known, or else a unique number.
276Make the same adjustment to the section titles in the list of
277Invariant Sections in the license notice of the combined work.
278
279In the combination, you must combine any sections Entitled "History"
280in the various original documents, forming one section Entitled
281"History"; likewise combine any sections Entitled "Acknowledgements",
282and any sections Entitled "Dedications". You must delete all sections
283Entitled "Endorsements".
284
285
2866. COLLECTIONS OF DOCUMENTS
287
288You may make a collection consisting of the Document and other documents
289released under this License, and replace the individual copies of this
290License in the various documents with a single copy that is included in
291the collection, provided that you follow the rules of this License for
292verbatim copying of each of the documents in all other respects.
293
294You may extract a single document from such a collection, and distribute
295it individually under this License, provided you insert a copy of this
296License into the extracted document, and follow this License in all
297other respects regarding verbatim copying of that document.
298
299
3007. AGGREGATION WITH INDEPENDENT WORKS
301
302A compilation of the Document or its derivatives with other separate
303and independent documents or works, in or on a volume of a storage or
304distribution medium, is called an "aggregate" if the copyright
305resulting from the compilation is not used to limit the legal rights
306of the compilation's users beyond what the individual works permit.
307When the Document is included in an aggregate, this License does not
308apply to the other works in the aggregate which are not themselves
309derivative works of the Document.
310
311If the Cover Text requirement of section 3 is applicable to these
312copies of the Document, then if the Document is less than one half of
313the entire aggregate, the Document's Cover Texts may be placed on
314covers that bracket the Document within the aggregate, or the
315electronic equivalent of covers if the Document is in electronic form.
316Otherwise they must appear on printed covers that bracket the whole
317aggregate.
318
319
3208. TRANSLATION
321
322Translation is considered a kind of modification, so you may
323distribute translations of the Document under the terms of section 4.
324Replacing Invariant Sections with translations requires special
325permission from their copyright holders, but you may include
326translations of some or all Invariant Sections in addition to the
327original versions of these Invariant Sections. You may include a
328translation of this License, and all the license notices in the
329Document, and any Warranty Disclaimers, provided that you also include
330the original English version of this License and the original versions
331of those notices and disclaimers. In case of a disagreement between
332the translation and the original version of this License or a notice
333or disclaimer, the original version will prevail.
334
335If a section in the Document is Entitled "Acknowledgements",
336"Dedications", or "History", the requirement (section 4) to Preserve
337its Title (section 1) will typically require changing the actual
338title.
339
340
3419. TERMINATION
342
343You may not copy, modify, sublicense, or distribute the Document except
344as expressly provided for under this License. Any other attempt to
345copy, modify, sublicense or distribute the Document is void, and will
346automatically terminate your rights under this License. However,
347parties who have received copies, or rights, from you under this
348License will not have their licenses terminated so long as such
349parties remain in full compliance.
350
351
35210. FUTURE REVISIONS OF THIS LICENSE
353
354The Free Software Foundation may publish new, revised versions
355of the GNU Free Documentation License from time to time. Such new
356versions will be similar in spirit to the present version, but may
357differ in detail to address new problems or concerns. See
358http://www.gnu.org/copyleft/.
359
360Each version of the License is given a distinguishing version number.
361If the Document specifies that a particular numbered version of this
362License "or any later version" applies to it, you have the option of
363following the terms and conditions either of that specified version or
364of any later version that has been published (not as a draft) by the
365Free Software Foundation. If the Document does not specify a version
366number of this License, you may choose any version ever published (not
367as a draft) by the Free Software Foundation.
368
369
370ADDENDUM: How to use this License for your documents
371
372To use this License in a document you have written, include a copy of
373the License in the document and put the following copyright and
374license notices just after the title page:
375
376 Copyright (c) YEAR YOUR NAME.
377 Permission is granted to copy, distribute and/or modify this document
378 under the terms of the GNU Free Documentation License, Version 1.2
379 or any later version published by the Free Software Foundation;
380 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
381 A copy of the license is included in the section entitled "GNU
382 Free Documentation License".
383
384If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
385replace the "with...Texts." line with this:
386
387 with the Invariant Sections being LIST THEIR TITLES, with the
388 Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
389
390If you have Invariant Sections without Cover Texts, or some other
391combination of the three, merge those two alternatives to suit the
392situation.
393
394If your document contains nontrivial examples of program code, we
395recommend releasing these examples in parallel under your choice of
396free software license, such as the GNU General Public License,
397to permit their use in free software.
diff --git a/meta/recipes-core/base-files/base-files/licenses/GPL-2 b/meta/recipes-core/base-files/base-files/licenses/GPL-2
new file mode 100644
index 0000000000..d60c31a97a
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/GPL-2
@@ -0,0 +1,340 @@
1 GNU GENERAL PUBLIC LICENSE
2 Version 2, June 1991
3
4 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9 Preamble
10
11 The licenses for most software are designed to take away your
12freedom to share and change it. By contrast, the GNU General Public
13License is intended to guarantee your freedom to share and change free
14software--to make sure the software is free for all its users. This
15General Public License applies to most of the Free Software
16Foundation's software and to any other program whose authors commit to
17using it. (Some other Free Software Foundation software is covered by
18the GNU Library General Public License instead.) You can apply it to
19your programs, too.
20
21 When we speak of free software, we are referring to freedom, not
22price. Our General Public Licenses are designed to make sure that you
23have the freedom to distribute copies of free software (and charge for
24this service if you wish), that you receive source code or can get it
25if you want it, that you can change the software or use pieces of it
26in new free programs; and that you know you can do these things.
27
28 To protect your rights, we need to make restrictions that forbid
29anyone to deny you these rights or to ask you to surrender the rights.
30These restrictions translate to certain responsibilities for you if you
31distribute copies of the software, or if you modify it.
32
33 For example, if you distribute copies of such a program, whether
34gratis or for a fee, you must give the recipients all the rights that
35you have. You must make sure that they, too, receive or can get the
36source code. And you must show them these terms so they know their
37rights.
38
39 We protect your rights with two steps: (1) copyright the software, and
40(2) offer you this license which gives you legal permission to copy,
41distribute and/or modify the software.
42
43 Also, for each author's protection and ours, we want to make certain
44that everyone understands that there is no warranty for this free
45software. If the software is modified by someone else and passed on, we
46want its recipients to know that what they have is not the original, so
47that any problems introduced by others will not reflect on the original
48authors' reputations.
49
50 Finally, any free program is threatened constantly by software
51patents. We wish to avoid the danger that redistributors of a free
52program will individually obtain patent licenses, in effect making the
53program proprietary. To prevent this, we have made it clear that any
54patent must be licensed for everyone's free use or not licensed at all.
55
56 The precise terms and conditions for copying, distribution and
57modification follow.
58
59 GNU GENERAL PUBLIC LICENSE
60 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62 0. This License applies to any program or other work which contains
63a notice placed by the copyright holder saying it may be distributed
64under the terms of this General Public License. The "Program", below,
65refers to any such program or work, and a "work based on the Program"
66means either the Program or any derivative work under copyright law:
67that is to say, a work containing the Program or a portion of it,
68either verbatim or with modifications and/or translated into another
69language. (Hereinafter, translation is included without limitation in
70the term "modification".) Each licensee is addressed as "you".
71
72Activities other than copying, distribution and modification are not
73covered by this License; they are outside its scope. The act of
74running the Program is not restricted, and the output from the Program
75is covered only if its contents constitute a work based on the
76Program (independent of having been made by running the Program).
77Whether that is true depends on what the Program does.
78
79 1. You may copy and distribute verbatim copies of the Program's
80source code as you receive it, in any medium, provided that you
81conspicuously and appropriately publish on each copy an appropriate
82copyright notice and disclaimer of warranty; keep intact all the
83notices that refer to this License and to the absence of any warranty;
84and give any other recipients of the Program a copy of this License
85along with the Program.
86
87You may charge a fee for the physical act of transferring a copy, and
88you may at your option offer warranty protection in exchange for a fee.
89
90 2. You may modify your copy or copies of the Program or any portion
91of it, thus forming a work based on the Program, and copy and
92distribute such modifications or work under the terms of Section 1
93above, provided that you also meet all of these conditions:
94
95 a) You must cause the modified files to carry prominent notices
96 stating that you changed the files and the date of any change.
97
98 b) You must cause any work that you distribute or publish, that in
99 whole or in part contains or is derived from the Program or any
100 part thereof, to be licensed as a whole at no charge to all third
101 parties under the terms of this License.
102
103 c) If the modified program normally reads commands interactively
104 when run, you must cause it, when started running for such
105 interactive use in the most ordinary way, to print or display an
106 announcement including an appropriate copyright notice and a
107 notice that there is no warranty (or else, saying that you provide
108 a warranty) and that users may redistribute the program under
109 these conditions, and telling the user how to view a copy of this
110 License. (Exception: if the Program itself is interactive but
111 does not normally print such an announcement, your work based on
112 the Program is not required to print an announcement.)
113
114These requirements apply to the modified work as a whole. If
115identifiable sections of that work are not derived from the Program,
116and can be reasonably considered independent and separate works in
117themselves, then this License, and its terms, do not apply to those
118sections when you distribute them as separate works. But when you
119distribute the same sections as part of a whole which is a work based
120on the Program, the distribution of the whole must be on the terms of
121this License, whose permissions for other licensees extend to the
122entire whole, and thus to each and every part regardless of who wrote it.
123
124Thus, it is not the intent of this section to claim rights or contest
125your rights to work written entirely by you; rather, the intent is to
126exercise the right to control the distribution of derivative or
127collective works based on the Program.
128
129In addition, mere aggregation of another work not based on the Program
130with the Program (or with a work based on the Program) on a volume of
131a storage or distribution medium does not bring the other work under
132the scope of this License.
133
134 3. You may copy and distribute the Program (or a work based on it,
135under Section 2) in object code or executable form under the terms of
136Sections 1 and 2 above provided that you also do one of the following:
137
138 a) Accompany it with the complete corresponding machine-readable
139 source code, which must be distributed under the terms of Sections
140 1 and 2 above on a medium customarily used for software interchange; or,
141
142 b) Accompany it with a written offer, valid for at least three
143 years, to give any third party, for a charge no more than your
144 cost of physically performing source distribution, a complete
145 machine-readable copy of the corresponding source code, to be
146 distributed under the terms of Sections 1 and 2 above on a medium
147 customarily used for software interchange; or,
148
149 c) Accompany it with the information you received as to the offer
150 to distribute corresponding source code. (This alternative is
151 allowed only for noncommercial distribution and only if you
152 received the program in object code or executable form with such
153 an offer, in accord with Subsection b above.)
154
155The source code for a work means the preferred form of the work for
156making modifications to it. For an executable work, complete source
157code means all the source code for all modules it contains, plus any
158associated interface definition files, plus the scripts used to
159control compilation and installation of the executable. However, as a
160special exception, the source code distributed need not include
161anything that is normally distributed (in either source or binary
162form) with the major components (compiler, kernel, and so on) of the
163operating system on which the executable runs, unless that component
164itself accompanies the executable.
165
166If distribution of executable or object code is made by offering
167access to copy from a designated place, then offering equivalent
168access to copy the source code from the same place counts as
169distribution of the source code, even though third parties are not
170compelled to copy the source along with the object code.
171
172 4. You may not copy, modify, sublicense, or distribute the Program
173except as expressly provided under this License. Any attempt
174otherwise to copy, modify, sublicense or distribute the Program is
175void, and will automatically terminate your rights under this License.
176However, parties who have received copies, or rights, from you under
177this License will not have their licenses terminated so long as such
178parties remain in full compliance.
179
180 5. You are not required to accept this License, since you have not
181signed it. However, nothing else grants you permission to modify or
182distribute the Program or its derivative works. These actions are
183prohibited by law if you do not accept this License. Therefore, by
184modifying or distributing the Program (or any work based on the
185Program), you indicate your acceptance of this License to do so, and
186all its terms and conditions for copying, distributing or modifying
187the Program or works based on it.
188
189 6. Each time you redistribute the Program (or any work based on the
190Program), the recipient automatically receives a license from the
191original licensor to copy, distribute or modify the Program subject to
192these terms and conditions. You may not impose any further
193restrictions on the recipients' exercise of the rights granted herein.
194You are not responsible for enforcing compliance by third parties to
195this License.
196
197 7. If, as a consequence of a court judgment or allegation of patent
198infringement or for any other reason (not limited to patent issues),
199conditions are imposed on you (whether by court order, agreement or
200otherwise) that contradict the conditions of this License, they do not
201excuse you from the conditions of this License. If you cannot
202distribute so as to satisfy simultaneously your obligations under this
203License and any other pertinent obligations, then as a consequence you
204may not distribute the Program at all. For example, if a patent
205license would not permit royalty-free redistribution of the Program by
206all those who receive copies directly or indirectly through you, then
207the only way you could satisfy both it and this License would be to
208refrain entirely from distribution of the Program.
209
210If any portion of this section is held invalid or unenforceable under
211any particular circumstance, the balance of the section is intended to
212apply and the section as a whole is intended to apply in other
213circumstances.
214
215It is not the purpose of this section to induce you to infringe any
216patents or other property right claims or to contest validity of any
217such claims; this section has the sole purpose of protecting the
218integrity of the free software distribution system, which is
219implemented by public license practices. Many people have made
220generous contributions to the wide range of software distributed
221through that system in reliance on consistent application of that
222system; it is up to the author/donor to decide if he or she is willing
223to distribute software through any other system and a licensee cannot
224impose that choice.
225
226This section is intended to make thoroughly clear what is believed to
227be a consequence of the rest of this License.
228
229 8. If the distribution and/or use of the Program is restricted in
230certain countries either by patents or by copyrighted interfaces, the
231original copyright holder who places the Program under this License
232may add an explicit geographical distribution limitation excluding
233those countries, so that distribution is permitted only in or among
234countries not thus excluded. In such case, this License incorporates
235the limitation as if written in the body of this License.
236
237 9. The Free Software Foundation may publish revised and/or new versions
238of the General Public License from time to time. Such new versions will
239be similar in spirit to the present version, but may differ in detail to
240address new problems or concerns.
241
242Each version is given a distinguishing version number. If the Program
243specifies a version number of this License which applies to it and "any
244later version", you have the option of following the terms and conditions
245either of that version or of any later version published by the Free
246Software Foundation. If the Program does not specify a version number of
247this License, you may choose any version ever published by the Free Software
248Foundation.
249
250 10. If you wish to incorporate parts of the Program into other free
251programs whose distribution conditions are different, write to the author
252to ask for permission. For software which is copyrighted by the Free
253Software Foundation, write to the Free Software Foundation; we sometimes
254make exceptions for this. Our decision will be guided by the two goals
255of preserving the free status of all derivatives of our free software and
256of promoting the sharing and reuse of software generally.
257
258 NO WARRANTY
259
260 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268REPAIR OR CORRECTION.
269
270 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278POSSIBILITY OF SUCH DAMAGES.
279
280 END OF TERMS AND CONDITIONS
281
282 How to Apply These Terms to Your New Programs
283
284 If you develop a new program, and you want it to be of the greatest
285possible use to the public, the best way to achieve this is to make it
286free software which everyone can redistribute and change under these terms.
287
288 To do so, attach the following notices to the program. It is safest
289to attach them to the start of each source file to most effectively
290convey the exclusion of warranty; and each file should have at least
291the "copyright" line and a pointer to where the full notice is found.
292
293 <one line to give the program's name and a brief idea of what it does.>
294 Copyright (C) <year> <name of author>
295
296 This program is free software; you can redistribute it and/or modify
297 it under the terms of the GNU General Public License as published by
298 the Free Software Foundation; either version 2 of the License, or
299 (at your option) any later version.
300
301 This program is distributed in the hope that it will be useful,
302 but WITHOUT ANY WARRANTY; without even the implied warranty of
303 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 GNU General Public License for more details.
305
306 You should have received a copy of the GNU General Public License
307 along with this program; if not, write to the Free Software
308 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309
310
311Also add information on how to contact you by electronic and paper mail.
312
313If the program is interactive, make it output a short notice like this
314when it starts in an interactive mode:
315
316 Gnomovision version 69, Copyright (C) year name of author
317 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 This is free software, and you are welcome to redistribute it
319 under certain conditions; type `show c' for details.
320
321The hypothetical commands `show w' and `show c' should show the appropriate
322parts of the General Public License. Of course, the commands you use may
323be called something other than `show w' and `show c'; they could even be
324mouse-clicks or menu items--whatever suits your program.
325
326You should also get your employer (if you work as a programmer) or your
327school, if any, to sign a "copyright disclaimer" for the program, if
328necessary. Here is a sample; alter the names:
329
330 Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333 <signature of Ty Coon>, 1 April 1989
334 Ty Coon, President of Vice
335
336This General Public License does not permit incorporating your program into
337proprietary programs. If your program is a subroutine library, you may
338consider it more useful to permit linking proprietary applications with the
339library. If this is what you want to do, use the GNU Library General
340Public License instead of this License.
diff --git a/meta/recipes-core/base-files/base-files/licenses/GPL-3 b/meta/recipes-core/base-files/base-files/licenses/GPL-3
new file mode 100644
index 0000000000..4432540474
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/GPL-3
@@ -0,0 +1,676 @@
1
2 GNU GENERAL PUBLIC LICENSE
3 Version 3, 29 June 2007
4
5 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9 Preamble
10
11 The GNU General Public License is a free, copyleft license for
12software and other kinds of works.
13
14 The licenses for most software and other practical works are designed
15to take away your freedom to share and change the works. By contrast,
16the GNU General Public License is intended to guarantee your freedom to
17share and change all versions of a program--to make sure it remains free
18software for all its users. We, the Free Software Foundation, use the
19GNU General Public License for most of our software; it applies also to
20any other work released this way by its authors. You can apply it to
21your programs, too.
22
23 When we speak of free software, we are referring to freedom, not
24price. Our General Public Licenses are designed to make sure that you
25have the freedom to distribute copies of free software (and charge for
26them if you wish), that you receive source code or can get it if you
27want it, that you can change the software or use pieces of it in new
28free programs, and that you know you can do these things.
29
30 To protect your rights, we need to prevent others from denying you
31these rights or asking you to surrender the rights. Therefore, you have
32certain responsibilities if you distribute copies of the software, or if
33you modify it: responsibilities to respect the freedom of others.
34
35 For example, if you distribute copies of such a program, whether
36gratis or for a fee, you must pass on to the recipients the same
37freedoms that you received. You must make sure that they, too, receive
38or can get the source code. And you must show them these terms so they
39know their rights.
40
41 Developers that use the GNU GPL protect your rights with two steps:
42(1) assert copyright on the software, and (2) offer you this License
43giving you legal permission to copy, distribute and/or modify it.
44
45 For the developers' and authors' protection, the GPL clearly explains
46that there is no warranty for this free software. For both users' and
47authors' sake, the GPL requires that modified versions be marked as
48changed, so that their problems will not be attributed erroneously to
49authors of previous versions.
50
51 Some devices are designed to deny users access to install or run
52modified versions of the software inside them, although the manufacturer
53can do so. This is fundamentally incompatible with the aim of
54protecting users' freedom to change the software. The systematic
55pattern of such abuse occurs in the area of products for individuals to
56use, which is precisely where it is most unacceptable. Therefore, we
57have designed this version of the GPL to prohibit the practice for those
58products. If such problems arise substantially in other domains, we
59stand ready to extend this provision to those domains in future versions
60of the GPL, as needed to protect the freedom of users.
61
62 Finally, every program is threatened constantly by software patents.
63States should not allow patents to restrict development and use of
64software on general-purpose computers, but in those that do, we wish to
65avoid the special danger that patents applied to a free program could
66make it effectively proprietary. To prevent this, the GPL assures that
67patents cannot be used to render the program non-free.
68
69 The precise terms and conditions for copying, distribution and
70modification follow.
71
72 TERMS AND CONDITIONS
73
74 0. Definitions.
75
76 "This License" refers to version 3 of the GNU General Public License.
77
78 "Copyright" also means copyright-like laws that apply to other kinds of
79works, such as semiconductor masks.
80
81 "The Program" refers to any copyrightable work licensed under this
82License. Each licensee is addressed as "you". "Licensees" and
83"recipients" may be individuals or organizations.
84
85 To "modify" a work means to copy from or adapt all or part of the work
86in a fashion requiring copyright permission, other than the making of an
87exact copy. The resulting work is called a "modified version" of the
88earlier work or a work "based on" the earlier work.
89
90 A "covered work" means either the unmodified Program or a work based
91on the Program.
92
93 To "propagate" a work means to do anything with it that, without
94permission, would make you directly or secondarily liable for
95infringement under applicable copyright law, except executing it on a
96computer or modifying a private copy. Propagation includes copying,
97distribution (with or without modification), making available to the
98public, and in some countries other activities as well.
99
100 To "convey" a work means any kind of propagation that enables other
101parties to make or receive copies. Mere interaction with a user through
102a computer network, with no transfer of a copy, is not conveying.
103
104 An interactive user interface displays "Appropriate Legal Notices"
105to the extent that it includes a convenient and prominently visible
106feature that (1) displays an appropriate copyright notice, and (2)
107tells the user that there is no warranty for the work (except to the
108extent that warranties are provided), that licensees may convey the
109work under this License, and how to view a copy of this License. If
110the interface presents a list of user commands or options, such as a
111menu, a prominent item in the list meets this criterion.
112
113 1. Source Code.
114
115 The "source code" for a work means the preferred form of the work
116for making modifications to it. "Object code" means any non-source
117form of a work.
118
119 A "Standard Interface" means an interface that either is an official
120standard defined by a recognized standards body, or, in the case of
121interfaces specified for a particular programming language, one that
122is widely used among developers working in that language.
123
124 The "System Libraries" of an executable work include anything, other
125than the work as a whole, that (a) is included in the normal form of
126packaging a Major Component, but which is not part of that Major
127Component, and (b) serves only to enable use of the work with that
128Major Component, or to implement a Standard Interface for which an
129implementation is available to the public in source code form. A
130"Major Component", in this context, means a major essential component
131(kernel, window system, and so on) of the specific operating system
132(if any) on which the executable work runs, or a compiler used to
133produce the work, or an object code interpreter used to run it.
134
135 The "Corresponding Source" for a work in object code form means all
136the source code needed to generate, install, and (for an executable
137work) run the object code and to modify the work, including scripts to
138control those activities. However, it does not include the work's
139System Libraries, or general-purpose tools or generally available free
140programs which are used unmodified in performing those activities but
141which are not part of the work. For example, Corresponding Source
142includes interface definition files associated with source files for
143the work, and the source code for shared libraries and dynamically
144linked subprograms that the work is specifically designed to require,
145such as by intimate data communication or control flow between those
146subprograms and other parts of the work.
147
148 The Corresponding Source need not include anything that users
149can regenerate automatically from other parts of the Corresponding
150Source.
151
152 The Corresponding Source for a work in source code form is that
153same work.
154
155 2. Basic Permissions.
156
157 All rights granted under this License are granted for the term of
158copyright on the Program, and are irrevocable provided the stated
159conditions are met. This License explicitly affirms your unlimited
160permission to run the unmodified Program. The output from running a
161covered work is covered by this License only if the output, given its
162content, constitutes a covered work. This License acknowledges your
163rights of fair use or other equivalent, as provided by copyright law.
164
165 You may make, run and propagate covered works that you do not
166convey, without conditions so long as your license otherwise remains
167in force. You may convey covered works to others for the sole purpose
168of having them make modifications exclusively for you, or provide you
169with facilities for running those works, provided that you comply with
170the terms of this License in conveying all material for which you do
171not control copyright. Those thus making or running the covered works
172for you must do so exclusively on your behalf, under your direction
173and control, on terms that prohibit them from making any copies of
174your copyrighted material outside their relationship with you.
175
176 Conveying under any other circumstances is permitted solely under
177the conditions stated below. Sublicensing is not allowed; section 10
178makes it unnecessary.
179
180 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
181
182 No covered work shall be deemed part of an effective technological
183measure under any applicable law fulfilling obligations under article
18411 of the WIPO copyright treaty adopted on 20 December 1996, or
185similar laws prohibiting or restricting circumvention of such
186measures.
187
188 When you convey a covered work, you waive any legal power to forbid
189circumvention of technological measures to the extent such circumvention
190is effected by exercising rights under this License with respect to
191the covered work, and you disclaim any intention to limit operation or
192modification of the work as a means of enforcing, against the work's
193users, your or third parties' legal rights to forbid circumvention of
194technological measures.
195
196 4. Conveying Verbatim Copies.
197
198 You may convey verbatim copies of the Program's source code as you
199receive it, in any medium, provided that you conspicuously and
200appropriately publish on each copy an appropriate copyright notice;
201keep intact all notices stating that this License and any
202non-permissive terms added in accord with section 7 apply to the code;
203keep intact all notices of the absence of any warranty; and give all
204recipients a copy of this License along with the Program.
205
206 You may charge any price or no price for each copy that you convey,
207and you may offer support or warranty protection for a fee.
208
209 5. Conveying Modified Source Versions.
210
211 You may convey a work based on the Program, or the modifications to
212produce it from the Program, in the form of source code under the
213terms of section 4, provided that you also meet all of these conditions:
214
215 a) The work must carry prominent notices stating that you modified
216 it, and giving a relevant date.
217
218 b) The work must carry prominent notices stating that it is
219 released under this License and any conditions added under section
220 7. This requirement modifies the requirement in section 4 to
221 "keep intact all notices".
222
223 c) You must license the entire work, as a whole, under this
224 License to anyone who comes into possession of a copy. This
225 License will therefore apply, along with any applicable section 7
226 additional terms, to the whole of the work, and all its parts,
227 regardless of how they are packaged. This License gives no
228 permission to license the work in any other way, but it does not
229 invalidate such permission if you have separately received it.
230
231 d) If the work has interactive user interfaces, each must display
232 Appropriate Legal Notices; however, if the Program has interactive
233 interfaces that do not display Appropriate Legal Notices, your
234 work need not make them do so.
235
236 A compilation of a covered work with other separate and independent
237works, which are not by their nature extensions of the covered work,
238and which are not combined with it such as to form a larger program,
239in or on a volume of a storage or distribution medium, is called an
240"aggregate" if the compilation and its resulting copyright are not
241used to limit the access or legal rights of the compilation's users
242beyond what the individual works permit. Inclusion of a covered work
243in an aggregate does not cause this License to apply to the other
244parts of the aggregate.
245
246 6. Conveying Non-Source Forms.
247
248 You may convey a covered work in object code form under the terms
249of sections 4 and 5, provided that you also convey the
250machine-readable Corresponding Source under the terms of this License,
251in one of these ways:
252
253 a) Convey the object code in, or embodied in, a physical product
254 (including a physical distribution medium), accompanied by the
255 Corresponding Source fixed on a durable physical medium
256 customarily used for software interchange.
257
258 b) Convey the object code in, or embodied in, a physical product
259 (including a physical distribution medium), accompanied by a
260 written offer, valid for at least three years and valid for as
261 long as you offer spare parts or customer support for that product
262 model, to give anyone who possesses the object code either (1) a
263 copy of the Corresponding Source for all the software in the
264 product that is covered by this License, on a durable physical
265 medium customarily used for software interchange, for a price no
266 more than your reasonable cost of physically performing this
267 conveying of source, or (2) access to copy the
268 Corresponding Source from a network server at no charge.
269
270 c) Convey individual copies of the object code with a copy of the
271 written offer to provide the Corresponding Source. This
272 alternative is allowed only occasionally and noncommercially, and
273 only if you received the object code with such an offer, in accord
274 with subsection 6b.
275
276 d) Convey the object code by offering access from a designated
277 place (gratis or for a charge), and offer equivalent access to the
278 Corresponding Source in the same way through the same place at no
279 further charge. You need not require recipients to copy the
280 Corresponding Source along with the object code. If the place to
281 copy the object code is a network server, the Corresponding Source
282 may be on a different server (operated by you or a third party)
283 that supports equivalent copying facilities, provided you maintain
284 clear directions next to the object code saying where to find the
285 Corresponding Source. Regardless of what server hosts the
286 Corresponding Source, you remain obligated to ensure that it is
287 available for as long as needed to satisfy these requirements.
288
289 e) Convey the object code using peer-to-peer transmission, provided
290 you inform other peers where the object code and Corresponding
291 Source of the work are being offered to the general public at no
292 charge under subsection 6d.
293
294 A separable portion of the object code, whose source code is excluded
295from the Corresponding Source as a System Library, need not be
296included in conveying the object code work.
297
298 A "User Product" is either (1) a "consumer product", which means any
299tangible personal property which is normally used for personal, family,
300or household purposes, or (2) anything designed or sold for incorporation
301into a dwelling. In determining whether a product is a consumer product,
302doubtful cases shall be resolved in favor of coverage. For a particular
303product received by a particular user, "normally used" refers to a
304typical or common use of that class of product, regardless of the status
305of the particular user or of the way in which the particular user
306actually uses, or expects or is expected to use, the product. A product
307is a consumer product regardless of whether the product has substantial
308commercial, industrial or non-consumer uses, unless such uses represent
309the only significant mode of use of the product.
310
311 "Installation Information" for a User Product means any methods,
312procedures, authorization keys, or other information required to install
313and execute modified versions of a covered work in that User Product from
314a modified version of its Corresponding Source. The information must
315suffice to ensure that the continued functioning of the modified object
316code is in no case prevented or interfered with solely because
317modification has been made.
318
319 If you convey an object code work under this section in, or with, or
320specifically for use in, a User Product, and the conveying occurs as
321part of a transaction in which the right of possession and use of the
322User Product is transferred to the recipient in perpetuity or for a
323fixed term (regardless of how the transaction is characterized), the
324Corresponding Source conveyed under this section must be accompanied
325by the Installation Information. But this requirement does not apply
326if neither you nor any third party retains the ability to install
327modified object code on the User Product (for example, the work has
328been installed in ROM).
329
330 The requirement to provide Installation Information does not include a
331requirement to continue to provide support service, warranty, or updates
332for a work that has been modified or installed by the recipient, or for
333the User Product in which it has been modified or installed. Access to a
334network may be denied when the modification itself materially and
335adversely affects the operation of the network or violates the rules and
336protocols for communication across the network.
337
338 Corresponding Source conveyed, and Installation Information provided,
339in accord with this section must be in a format that is publicly
340documented (and with an implementation available to the public in
341source code form), and must require no special password or key for
342unpacking, reading or copying.
343
344 7. Additional Terms.
345
346 "Additional permissions" are terms that supplement the terms of this
347License by making exceptions from one or more of its conditions.
348Additional permissions that are applicable to the entire Program shall
349be treated as though they were included in this License, to the extent
350that they are valid under applicable law. If additional permissions
351apply only to part of the Program, that part may be used separately
352under those permissions, but the entire Program remains governed by
353this License without regard to the additional permissions.
354
355 When you convey a copy of a covered work, you may at your option
356remove any additional permissions from that copy, or from any part of
357it. (Additional permissions may be written to require their own
358removal in certain cases when you modify the work.) You may place
359additional permissions on material, added by you to a covered work,
360for which you have or can give appropriate copyright permission.
361
362 Notwithstanding any other provision of this License, for material you
363add to a covered work, you may (if authorized by the copyright holders of
364that material) supplement the terms of this License with terms:
365
366 a) Disclaiming warranty or limiting liability differently from the
367 terms of sections 15 and 16 of this License; or
368
369 b) Requiring preservation of specified reasonable legal notices or
370 author attributions in that material or in the Appropriate Legal
371 Notices displayed by works containing it; or
372
373 c) Prohibiting misrepresentation of the origin of that material, or
374 requiring that modified versions of such material be marked in
375 reasonable ways as different from the original version; or
376
377 d) Limiting the use for publicity purposes of names of licensors or
378 authors of the material; or
379
380 e) Declining to grant rights under trademark law for use of some
381 trade names, trademarks, or service marks; or
382
383 f) Requiring indemnification of licensors and authors of that
384 material by anyone who conveys the material (or modified versions of
385 it) with contractual assumptions of liability to the recipient, for
386 any liability that these contractual assumptions directly impose on
387 those licensors and authors.
388
389 All other non-permissive additional terms are considered "further
390restrictions" within the meaning of section 10. If the Program as you
391received it, or any part of it, contains a notice stating that it is
392governed by this License along with a term that is a further
393restriction, you may remove that term. If a license document contains
394a further restriction but permits relicensing or conveying under this
395License, you may add to a covered work material governed by the terms
396of that license document, provided that the further restriction does
397not survive such relicensing or conveying.
398
399 If you add terms to a covered work in accord with this section, you
400must place, in the relevant source files, a statement of the
401additional terms that apply to those files, or a notice indicating
402where to find the applicable terms.
403
404 Additional terms, permissive or non-permissive, may be stated in the
405form of a separately written license, or stated as exceptions;
406the above requirements apply either way.
407
408 8. Termination.
409
410 You may not propagate or modify a covered work except as expressly
411provided under this License. Any attempt otherwise to propagate or
412modify it is void, and will automatically terminate your rights under
413this License (including any patent licenses granted under the third
414paragraph of section 11).
415
416 However, if you cease all violation of this License, then your
417license from a particular copyright holder is reinstated (a)
418provisionally, unless and until the copyright holder explicitly and
419finally terminates your license, and (b) permanently, if the copyright
420holder fails to notify you of the violation by some reasonable means
421prior to 60 days after the cessation.
422
423 Moreover, your license from a particular copyright holder is
424reinstated permanently if the copyright holder notifies you of the
425violation by some reasonable means, this is the first time you have
426received notice of violation of this License (for any work) from that
427copyright holder, and you cure the violation prior to 30 days after
428your receipt of the notice.
429
430 Termination of your rights under this section does not terminate the
431licenses of parties who have received copies or rights from you under
432this License. If your rights have been terminated and not permanently
433reinstated, you do not qualify to receive new licenses for the same
434material under section 10.
435
436 9. Acceptance Not Required for Having Copies.
437
438 You are not required to accept this License in order to receive or
439run a copy of the Program. Ancillary propagation of a covered work
440occurring solely as a consequence of using peer-to-peer transmission
441to receive a copy likewise does not require acceptance. However,
442nothing other than this License grants you permission to propagate or
443modify any covered work. These actions infringe copyright if you do
444not accept this License. Therefore, by modifying or propagating a
445covered work, you indicate your acceptance of this License to do so.
446
447 10. Automatic Licensing of Downstream Recipients.
448
449 Each time you convey a covered work, the recipient automatically
450receives a license from the original licensors, to run, modify and
451propagate that work, subject to this License. You are not responsible
452for enforcing compliance by third parties with this License.
453
454 An "entity transaction" is a transaction transferring control of an
455organization, or substantially all assets of one, or subdividing an
456organization, or merging organizations. If propagation of a covered
457work results from an entity transaction, each party to that
458transaction who receives a copy of the work also receives whatever
459licenses to the work the party's predecessor in interest had or could
460give under the previous paragraph, plus a right to possession of the
461Corresponding Source of the work from the predecessor in interest, if
462the predecessor has it or can get it with reasonable efforts.
463
464 You may not impose any further restrictions on the exercise of the
465rights granted or affirmed under this License. For example, you may
466not impose a license fee, royalty, or other charge for exercise of
467rights granted under this License, and you may not initiate litigation
468(including a cross-claim or counterclaim in a lawsuit) alleging that
469any patent claim is infringed by making, using, selling, offering for
470sale, or importing the Program or any portion of it.
471
472 11. Patents.
473
474 A "contributor" is a copyright holder who authorizes use under this
475License of the Program or a work on which the Program is based. The
476work thus licensed is called the contributor's "contributor version".
477
478 A contributor's "essential patent claims" are all patent claims
479owned or controlled by the contributor, whether already acquired or
480hereafter acquired, that would be infringed by some manner, permitted
481by this License, of making, using, or selling its contributor version,
482but do not include claims that would be infringed only as a
483consequence of further modification of the contributor version. For
484purposes of this definition, "control" includes the right to grant
485patent sublicenses in a manner consistent with the requirements of
486this License.
487
488 Each contributor grants you a non-exclusive, worldwide, royalty-free
489patent license under the contributor's essential patent claims, to
490make, use, sell, offer for sale, import and otherwise run, modify and
491propagate the contents of its contributor version.
492
493 In the following three paragraphs, a "patent license" is any express
494agreement or commitment, however denominated, not to enforce a patent
495(such as an express permission to practice a patent or covenant not to
496sue for patent infringement). To "grant" such a patent license to a
497party means to make such an agreement or commitment not to enforce a
498patent against the party.
499
500 If you convey a covered work, knowingly relying on a patent license,
501and the Corresponding Source of the work is not available for anyone
502to copy, free of charge and under the terms of this License, through a
503publicly available network server or other readily accessible means,
504then you must either (1) cause the Corresponding Source to be so
505available, or (2) arrange to deprive yourself of the benefit of the
506patent license for this particular work, or (3) arrange, in a manner
507consistent with the requirements of this License, to extend the patent
508license to downstream recipients. "Knowingly relying" means you have
509actual knowledge that, but for the patent license, your conveying the
510covered work in a country, or your recipient's use of the covered work
511in a country, would infringe one or more identifiable patents in that
512country that you have reason to believe are valid.
513
514 If, pursuant to or in connection with a single transaction or
515arrangement, you convey, or propagate by procuring conveyance of, a
516covered work, and grant a patent license to some of the parties
517receiving the covered work authorizing them to use, propagate, modify
518or convey a specific copy of the covered work, then the patent license
519you grant is automatically extended to all recipients of the covered
520work and works based on it.
521
522 A patent license is "discriminatory" if it does not include within
523the scope of its coverage, prohibits the exercise of, or is
524conditioned on the non-exercise of one or more of the rights that are
525specifically granted under this License. You may not convey a covered
526work if you are a party to an arrangement with a third party that is
527in the business of distributing software, under which you make payment
528to the third party based on the extent of your activity of conveying
529the work, and under which the third party grants, to any of the
530parties who would receive the covered work from you, a discriminatory
531patent license (a) in connection with copies of the covered work
532conveyed by you (or copies made from those copies), or (b) primarily
533for and in connection with specific products or compilations that
534contain the covered work, unless you entered into that arrangement,
535or that patent license was granted, prior to 28 March 2007.
536
537 Nothing in this License shall be construed as excluding or limiting
538any implied license or other defenses to infringement that may
539otherwise be available to you under applicable patent law.
540
541 12. No Surrender of Others' Freedom.
542
543 If conditions are imposed on you (whether by court order, agreement or
544otherwise) that contradict the conditions of this License, they do not
545excuse you from the conditions of this License. If you cannot convey a
546covered work so as to satisfy simultaneously your obligations under this
547License and any other pertinent obligations, then as a consequence you may
548not convey it at all. For example, if you agree to terms that obligate you
549to collect a royalty for further conveying from those to whom you convey
550the Program, the only way you could satisfy both those terms and this
551License would be to refrain entirely from conveying the Program.
552
553 13. Use with the GNU Affero General Public License.
554
555 Notwithstanding any other provision of this License, you have
556permission to link or combine any covered work with a work licensed
557under version 3 of the GNU Affero General Public License into a single
558combined work, and to convey the resulting work. The terms of this
559License will continue to apply to the part which is the covered work,
560but the special requirements of the GNU Affero General Public License,
561section 13, concerning interaction through a network will apply to the
562combination as such.
563
564 14. Revised Versions of this License.
565
566 The Free Software Foundation may publish revised and/or new versions of
567the GNU General Public License from time to time. Such new versions will
568be similar in spirit to the present version, but may differ in detail to
569address new problems or concerns.
570
571 Each version is given a distinguishing version number. If the
572Program specifies that a certain numbered version of the GNU General
573Public License "or any later version" applies to it, you have the
574option of following the terms and conditions either of that numbered
575version or of any later version published by the Free Software
576Foundation. If the Program does not specify a version number of the
577GNU General Public License, you may choose any version ever published
578by the Free Software Foundation.
579
580 If the Program specifies that a proxy can decide which future
581versions of the GNU General Public License can be used, that proxy's
582public statement of acceptance of a version permanently authorizes you
583to choose that version for the Program.
584
585 Later license versions may give you additional or different
586permissions. However, no additional obligations are imposed on any
587author or copyright holder as a result of your choosing to follow a
588later version.
589
590 15. Disclaimer of Warranty.
591
592 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
593APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
594HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
595OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
596THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
597PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
598IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
599ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
600
601 16. Limitation of Liability.
602
603 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
604WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
605THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
606GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
607USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
608DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
609PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
610EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
611SUCH DAMAGES.
612
613 17. Interpretation of Sections 15 and 16.
614
615 If the disclaimer of warranty and limitation of liability provided
616above cannot be given local legal effect according to their terms,
617reviewing courts shall apply local law that most closely approximates
618an absolute waiver of all civil liability in connection with the
619Program, unless a warranty or assumption of liability accompanies a
620copy of the Program in return for a fee.
621
622 END OF TERMS AND CONDITIONS
623
624 How to Apply These Terms to Your New Programs
625
626 If you develop a new program, and you want it to be of the greatest
627possible use to the public, the best way to achieve this is to make it
628free software which everyone can redistribute and change under these terms.
629
630 To do so, attach the following notices to the program. It is safest
631to attach them to the start of each source file to most effectively
632state the exclusion of warranty; and each file should have at least
633the "copyright" line and a pointer to where the full notice is found.
634
635 <one line to give the program's name and a brief idea of what it does.>
636 Copyright (C) <year> <name of author>
637
638 This program is free software: you can redistribute it and/or modify
639 it under the terms of the GNU General Public License as published by
640 the Free Software Foundation, either version 3 of the License, or
641 (at your option) any later version.
642
643 This program is distributed in the hope that it will be useful,
644 but WITHOUT ANY WARRANTY; without even the implied warranty of
645 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
646 GNU General Public License for more details.
647
648 You should have received a copy of the GNU General Public License
649 along with this program. If not, see <http://www.gnu.org/licenses/>.
650
651Also add information on how to contact you by electronic and paper mail.
652
653 If the program does terminal interaction, make it output a short
654notice like this when it starts in an interactive mode:
655
656 <program> Copyright (C) <year> <name of author>
657 This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
658 This is free software, and you are welcome to redistribute it
659 under certain conditions; type `show c' for details.
660
661The hypothetical commands `show w' and `show c' should show the appropriate
662parts of the General Public License. Of course, your program's commands
663might be different; for a GUI interface, you would use an "about box".
664
665 You should also get your employer (if you work as a programmer) or school,
666if any, to sign a "copyright disclaimer" for the program, if necessary.
667For more information on this, and how to apply and follow the GNU GPL, see
668<http://www.gnu.org/licenses/>.
669
670 The GNU General Public License does not permit incorporating your program
671into proprietary programs. If your program is a subroutine library, you
672may consider it more useful to permit linking proprietary applications with
673the library. If this is what you want to do, use the GNU Lesser General
674Public License instead of this License. But first, please read
675<http://www.gnu.org/philosophy/why-not-lgpl.html>.
676
diff --git a/meta/recipes-core/base-files/base-files/licenses/LGPL-2 b/meta/recipes-core/base-files/base-files/licenses/LGPL-2
new file mode 100644
index 0000000000..f5030495bf
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/LGPL-2
@@ -0,0 +1,481 @@
1 GNU LIBRARY GENERAL PUBLIC LICENSE
2 Version 2, June 1991
3
4 Copyright (C) 1991 Free Software Foundation, Inc.
5 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9[This is the first released version of the library GPL. It is
10 numbered 2 because it goes with version 2 of the ordinary GPL.]
11
12 Preamble
13
14 The licenses for most software are designed to take away your
15freedom to share and change it. By contrast, the GNU General Public
16Licenses are intended to guarantee your freedom to share and change
17free software--to make sure the software is free for all its users.
18
19 This license, the Library General Public License, applies to some
20specially designated Free Software Foundation software, and to any
21other libraries whose authors decide to use it. You can use it for
22your libraries, too.
23
24 When we speak of free software, we are referring to freedom, not
25price. Our General Public Licenses are designed to make sure that you
26have the freedom to distribute copies of free software (and charge for
27this service if you wish), that you receive source code or can get it
28if you want it, that you can change the software or use pieces of it
29in new free programs; and that you know you can do these things.
30
31 To protect your rights, we need to make restrictions that forbid
32anyone to deny you these rights or to ask you to surrender the rights.
33These restrictions translate to certain responsibilities for you if
34you distribute copies of the library, or if you modify it.
35
36 For example, if you distribute copies of the library, whether gratis
37or for a fee, you must give the recipients all the rights that we gave
38you. You must make sure that they, too, receive or can get the source
39code. If you link a program with the library, you must provide
40complete object files to the recipients so that they can relink them
41with the library, after making changes to the library and recompiling
42it. And you must show them these terms so they know their rights.
43
44 Our method of protecting your rights has two steps: (1) copyright
45the library, and (2) offer you this license which gives you legal
46permission to copy, distribute and/or modify the library.
47
48 Also, for each distributor's protection, we want to make certain
49that everyone understands that there is no warranty for this free
50library. If the library is modified by someone else and passed on, we
51want its recipients to know that what they have is not the original
52version, so that any problems introduced by others will not reflect on
53the original authors' reputations.
54
55 Finally, any free program is threatened constantly by software
56patents. We wish to avoid the danger that companies distributing free
57software will individually obtain patent licenses, thus in effect
58transforming the program into proprietary software. To prevent this,
59we have made it clear that any patent must be licensed for everyone's
60free use or not licensed at all.
61
62 Most GNU software, including some libraries, is covered by the ordinary
63GNU General Public License, which was designed for utility programs. This
64license, the GNU Library General Public License, applies to certain
65designated libraries. This license is quite different from the ordinary
66one; be sure to read it in full, and don't assume that anything in it is
67the same as in the ordinary license.
68
69 The reason we have a separate public license for some libraries is that
70they blur the distinction we usually make between modifying or adding to a
71program and simply using it. Linking a program with a library, without
72changing the library, is in some sense simply using the library, and is
73analogous to running a utility program or application program. However, in
74a textual and legal sense, the linked executable is a combined work, a
75derivative of the original library, and the ordinary General Public License
76treats it as such.
77
78 Because of this blurred distinction, using the ordinary General
79Public License for libraries did not effectively promote software
80sharing, because most developers did not use the libraries. We
81concluded that weaker conditions might promote sharing better.
82
83 However, unrestricted linking of non-free programs would deprive the
84users of those programs of all benefit from the free status of the
85libraries themselves. This Library General Public License is intended to
86permit developers of non-free programs to use free libraries, while
87preserving your freedom as a user of such programs to change the free
88libraries that are incorporated in them. (We have not seen how to achieve
89this as regards changes in header files, but we have achieved it as regards
90changes in the actual functions of the Library.) The hope is that this
91will lead to faster development of free libraries.
92
93 The precise terms and conditions for copying, distribution and
94modification follow. Pay close attention to the difference between a
95"work based on the library" and a "work that uses the library". The
96former contains code derived from the library, while the latter only
97works together with the library.
98
99 Note that it is possible for a library to be covered by the ordinary
100General Public License rather than by this special one.
101
102 GNU LIBRARY GENERAL PUBLIC LICENSE
103 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
104
105 0. This License Agreement applies to any software library which
106contains a notice placed by the copyright holder or other authorized
107party saying it may be distributed under the terms of this Library
108General Public License (also called "this License"). Each licensee is
109addressed as "you".
110
111 A "library" means a collection of software functions and/or data
112prepared so as to be conveniently linked with application programs
113(which use some of those functions and data) to form executables.
114
115 The "Library", below, refers to any such software library or work
116which has been distributed under these terms. A "work based on the
117Library" means either the Library or any derivative work under
118copyright law: that is to say, a work containing the Library or a
119portion of it, either verbatim or with modifications and/or translated
120straightforwardly into another language. (Hereinafter, translation is
121included without limitation in the term "modification".)
122
123 "Source code" for a work means the preferred form of the work for
124making modifications to it. For a library, complete source code means
125all the source code for all modules it contains, plus any associated
126interface definition files, plus the scripts used to control compilation
127and installation of the library.
128
129 Activities other than copying, distribution and modification are not
130covered by this License; they are outside its scope. The act of
131running a program using the Library is not restricted, and output from
132such a program is covered only if its contents constitute a work based
133on the Library (independent of the use of the Library in a tool for
134writing it). Whether that is true depends on what the Library does
135and what the program that uses the Library does.
136
137 1. You may copy and distribute verbatim copies of the Library's
138complete source code as you receive it, in any medium, provided that
139you conspicuously and appropriately publish on each copy an
140appropriate copyright notice and disclaimer of warranty; keep intact
141all the notices that refer to this License and to the absence of any
142warranty; and distribute a copy of this License along with the
143Library.
144
145 You may charge a fee for the physical act of transferring a copy,
146and you may at your option offer warranty protection in exchange for a
147fee.
148
149 2. You may modify your copy or copies of the Library or any portion
150of it, thus forming a work based on the Library, and copy and
151distribute such modifications or work under the terms of Section 1
152above, provided that you also meet all of these conditions:
153
154 a) The modified work must itself be a software library.
155
156 b) You must cause the files modified to carry prominent notices
157 stating that you changed the files and the date of any change.
158
159 c) You must cause the whole of the work to be licensed at no
160 charge to all third parties under the terms of this License.
161
162 d) If a facility in the modified Library refers to a function or a
163 table of data to be supplied by an application program that uses
164 the facility, other than as an argument passed when the facility
165 is invoked, then you must make a good faith effort to ensure that,
166 in the event an application does not supply such function or
167 table, the facility still operates, and performs whatever part of
168 its purpose remains meaningful.
169
170 (For example, a function in a library to compute square roots has
171 a purpose that is entirely well-defined independent of the
172 application. Therefore, Subsection 2d requires that any
173 application-supplied function or table used by this function must
174 be optional: if the application does not supply it, the square
175 root function must still compute square roots.)
176
177These requirements apply to the modified work as a whole. If
178identifiable sections of that work are not derived from the Library,
179and can be reasonably considered independent and separate works in
180themselves, then this License, and its terms, do not apply to those
181sections when you distribute them as separate works. But when you
182distribute the same sections as part of a whole which is a work based
183on the Library, the distribution of the whole must be on the terms of
184this License, whose permissions for other licensees extend to the
185entire whole, and thus to each and every part regardless of who wrote
186it.
187
188Thus, it is not the intent of this section to claim rights or contest
189your rights to work written entirely by you; rather, the intent is to
190exercise the right to control the distribution of derivative or
191collective works based on the Library.
192
193In addition, mere aggregation of another work not based on the Library
194with the Library (or with a work based on the Library) on a volume of
195a storage or distribution medium does not bring the other work under
196the scope of this License.
197
198 3. You may opt to apply the terms of the ordinary GNU General Public
199License instead of this License to a given copy of the Library. To do
200this, you must alter all the notices that refer to this License, so
201that they refer to the ordinary GNU General Public License, version 2,
202instead of to this License. (If a newer version than version 2 of the
203ordinary GNU General Public License has appeared, then you can specify
204that version instead if you wish.) Do not make any other change in
205these notices.
206
207 Once this change is made in a given copy, it is irreversible for
208that copy, so the ordinary GNU General Public License applies to all
209subsequent copies and derivative works made from that copy.
210
211 This option is useful when you wish to copy part of the code of
212the Library into a program that is not a library.
213
214 4. You may copy and distribute the Library (or a portion or
215derivative of it, under Section 2) in object code or executable form
216under the terms of Sections 1 and 2 above provided that you accompany
217it with the complete corresponding machine-readable source code, which
218must be distributed under the terms of Sections 1 and 2 above on a
219medium customarily used for software interchange.
220
221 If distribution of object code is made by offering access to copy
222from a designated place, then offering equivalent access to copy the
223source code from the same place satisfies the requirement to
224distribute the source code, even though third parties are not
225compelled to copy the source along with the object code.
226
227 5. A program that contains no derivative of any portion of the
228Library, but is designed to work with the Library by being compiled or
229linked with it, is called a "work that uses the Library". Such a
230work, in isolation, is not a derivative work of the Library, and
231therefore falls outside the scope of this License.
232
233 However, linking a "work that uses the Library" with the Library
234creates an executable that is a derivative of the Library (because it
235contains portions of the Library), rather than a "work that uses the
236library". The executable is therefore covered by this License.
237Section 6 states terms for distribution of such executables.
238
239 When a "work that uses the Library" uses material from a header file
240that is part of the Library, the object code for the work may be a
241derivative work of the Library even though the source code is not.
242Whether this is true is especially significant if the work can be
243linked without the Library, or if the work is itself a library. The
244threshold for this to be true is not precisely defined by law.
245
246 If such an object file uses only numerical parameters, data
247structure layouts and accessors, and small macros and small inline
248functions (ten lines or less in length), then the use of the object
249file is unrestricted, regardless of whether it is legally a derivative
250work. (Executables containing this object code plus portions of the
251Library will still fall under Section 6.)
252
253 Otherwise, if the work is a derivative of the Library, you may
254distribute the object code for the work under the terms of Section 6.
255Any executables containing that work also fall under Section 6,
256whether or not they are linked directly with the Library itself.
257
258 6. As an exception to the Sections above, you may also compile or
259link a "work that uses the Library" with the Library to produce a
260work containing portions of the Library, and distribute that work
261under terms of your choice, provided that the terms permit
262modification of the work for the customer's own use and reverse
263engineering for debugging such modifications.
264
265 You must give prominent notice with each copy of the work that the
266Library is used in it and that the Library and its use are covered by
267this License. You must supply a copy of this License. If the work
268during execution displays copyright notices, you must include the
269copyright notice for the Library among them, as well as a reference
270directing the user to the copy of this License. Also, you must do one
271of these things:
272
273 a) Accompany the work with the complete corresponding
274 machine-readable source code for the Library including whatever
275 changes were used in the work (which must be distributed under
276 Sections 1 and 2 above); and, if the work is an executable linked
277 with the Library, with the complete machine-readable "work that
278 uses the Library", as object code and/or source code, so that the
279 user can modify the Library and then relink to produce a modified
280 executable containing the modified Library. (It is understood
281 that the user who changes the contents of definitions files in the
282 Library will not necessarily be able to recompile the application
283 to use the modified definitions.)
284
285 b) Accompany the work with a written offer, valid for at
286 least three years, to give the same user the materials
287 specified in Subsection 6a, above, for a charge no more
288 than the cost of performing this distribution.
289
290 c) If distribution of the work is made by offering access to copy
291 from a designated place, offer equivalent access to copy the above
292 specified materials from the same place.
293
294 d) Verify that the user has already received a copy of these
295 materials or that you have already sent this user a copy.
296
297 For an executable, the required form of the "work that uses the
298Library" must include any data and utility programs needed for
299reproducing the executable from it. However, as a special exception,
300the source code distributed need not include anything that is normally
301distributed (in either source or binary form) with the major
302components (compiler, kernel, and so on) of the operating system on
303which the executable runs, unless that component itself accompanies
304the executable.
305
306 It may happen that this requirement contradicts the license
307restrictions of other proprietary libraries that do not normally
308accompany the operating system. Such a contradiction means you cannot
309use both them and the Library together in an executable that you
310distribute.
311
312 7. You may place library facilities that are a work based on the
313Library side-by-side in a single library together with other library
314facilities not covered by this License, and distribute such a combined
315library, provided that the separate distribution of the work based on
316the Library and of the other library facilities is otherwise
317permitted, and provided that you do these two things:
318
319 a) Accompany the combined library with a copy of the same work
320 based on the Library, uncombined with any other library
321 facilities. This must be distributed under the terms of the
322 Sections above.
323
324 b) Give prominent notice with the combined library of the fact
325 that part of it is a work based on the Library, and explaining
326 where to find the accompanying uncombined form of the same work.
327
328 8. You may not copy, modify, sublicense, link with, or distribute
329the Library except as expressly provided under this License. Any
330attempt otherwise to copy, modify, sublicense, link with, or
331distribute the Library is void, and will automatically terminate your
332rights under this License. However, parties who have received copies,
333or rights, from you under this License will not have their licenses
334terminated so long as such parties remain in full compliance.
335
336 9. You are not required to accept this License, since you have not
337signed it. However, nothing else grants you permission to modify or
338distribute the Library or its derivative works. These actions are
339prohibited by law if you do not accept this License. Therefore, by
340modifying or distributing the Library (or any work based on the
341Library), you indicate your acceptance of this License to do so, and
342all its terms and conditions for copying, distributing or modifying
343the Library or works based on it.
344
345 10. Each time you redistribute the Library (or any work based on the
346Library), the recipient automatically receives a license from the
347original licensor to copy, distribute, link with or modify the Library
348subject to these terms and conditions. You may not impose any further
349restrictions on the recipients' exercise of the rights granted herein.
350You are not responsible for enforcing compliance by third parties to
351this License.
352
353 11. If, as a consequence of a court judgment or allegation of patent
354infringement or for any other reason (not limited to patent issues),
355conditions are imposed on you (whether by court order, agreement or
356otherwise) that contradict the conditions of this License, they do not
357excuse you from the conditions of this License. If you cannot
358distribute so as to satisfy simultaneously your obligations under this
359License and any other pertinent obligations, then as a consequence you
360may not distribute the Library at all. For example, if a patent
361license would not permit royalty-free redistribution of the Library by
362all those who receive copies directly or indirectly through you, then
363the only way you could satisfy both it and this License would be to
364refrain entirely from distribution of the Library.
365
366If any portion of this section is held invalid or unenforceable under any
367particular circumstance, the balance of the section is intended to apply,
368and the section as a whole is intended to apply in other circumstances.
369
370It is not the purpose of this section to induce you to infringe any
371patents or other property right claims or to contest validity of any
372such claims; this section has the sole purpose of protecting the
373integrity of the free software distribution system which is
374implemented by public license practices. Many people have made
375generous contributions to the wide range of software distributed
376through that system in reliance on consistent application of that
377system; it is up to the author/donor to decide if he or she is willing
378to distribute software through any other system and a licensee cannot
379impose that choice.
380
381This section is intended to make thoroughly clear what is believed to
382be a consequence of the rest of this License.
383
384 12. If the distribution and/or use of the Library is restricted in
385certain countries either by patents or by copyrighted interfaces, the
386original copyright holder who places the Library under this License may add
387an explicit geographical distribution limitation excluding those countries,
388so that distribution is permitted only in or among countries not thus
389excluded. In such case, this License incorporates the limitation as if
390written in the body of this License.
391
392 13. The Free Software Foundation may publish revised and/or new
393versions of the Library General Public License from time to time.
394Such new versions will be similar in spirit to the present version,
395but may differ in detail to address new problems or concerns.
396
397Each version is given a distinguishing version number. If the Library
398specifies a version number of this License which applies to it and
399"any later version", you have the option of following the terms and
400conditions either of that version or of any later version published by
401the Free Software Foundation. If the Library does not specify a
402license version number, you may choose any version ever published by
403the Free Software Foundation.
404
405 14. If you wish to incorporate parts of the Library into other free
406programs whose distribution conditions are incompatible with these,
407write to the author to ask for permission. For software which is
408copyrighted by the Free Software Foundation, write to the Free
409Software Foundation; we sometimes make exceptions for this. Our
410decision will be guided by the two goals of preserving the free status
411of all derivatives of our free software and of promoting the sharing
412and reuse of software generally.
413
414 NO WARRANTY
415
416 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
417WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
418EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
419OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
420KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
421IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
422PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
423LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
424THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
425
426 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
427WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
428AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
429FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
430CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
431LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
432RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
433FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
434SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
435DAMAGES.
436
437 END OF TERMS AND CONDITIONS
438
439 How to Apply These Terms to Your New Libraries
440
441 If you develop a new library, and you want it to be of the greatest
442possible use to the public, we recommend making it free software that
443everyone can redistribute and change. You can do so by permitting
444redistribution under these terms (or, alternatively, under the terms of the
445ordinary General Public License).
446
447 To apply these terms, attach the following notices to the library. It is
448safest to attach them to the start of each source file to most effectively
449convey the exclusion of warranty; and each file should have at least the
450"copyright" line and a pointer to where the full notice is found.
451
452 <one line to give the library's name and a brief idea of what it does.>
453 Copyright (C) <year> <name of author>
454
455 This library is free software; you can redistribute it and/or
456 modify it under the terms of the GNU Library General Public
457 License as published by the Free Software Foundation; either
458 version 2 of the License, or (at your option) any later version.
459
460 This library is distributed in the hope that it will be useful,
461 but WITHOUT ANY WARRANTY; without even the implied warranty of
462 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
463 Library General Public License for more details.
464
465 You should have received a copy of the GNU Library General Public
466 License along with this library; if not, write to the Free Software
467 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
468
469Also add information on how to contact you by electronic and paper mail.
470
471You should also get your employer (if you work as a programmer) or your
472school, if any, to sign a "copyright disclaimer" for the library, if
473necessary. Here is a sample; alter the names:
474
475 Yoyodyne, Inc., hereby disclaims all copyright interest in the
476 library `Frob' (a library for tweaking knobs) written by James Random Hacker.
477
478 <signature of Ty Coon>, 1 April 1990
479 Ty Coon, President of Vice
480
481That's all there is to it!
diff --git a/meta/recipes-core/base-files/base-files/licenses/LGPL-2.1 b/meta/recipes-core/base-files/base-files/licenses/LGPL-2.1
new file mode 100644
index 0000000000..b124cf5812
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/LGPL-2.1
@@ -0,0 +1,510 @@
1
2 GNU LESSER GENERAL PUBLIC LICENSE
3 Version 2.1, February 1999
4
5 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
6 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7 Everyone is permitted to copy and distribute verbatim copies
8 of this license document, but changing it is not allowed.
9
10[This is the first released version of the Lesser GPL. It also counts
11 as the successor of the GNU Library Public License, version 2, hence
12 the version number 2.1.]
13
14 Preamble
15
16 The licenses for most software are designed to take away your
17freedom to share and change it. By contrast, the GNU General Public
18Licenses are intended to guarantee your freedom to share and change
19free software--to make sure the software is free for all its users.
20
21 This license, the Lesser General Public License, applies to some
22specially designated software packages--typically libraries--of the
23Free Software Foundation and other authors who decide to use it. You
24can use it too, but we suggest you first think carefully about whether
25this license or the ordinary General Public License is the better
26strategy to use in any particular case, based on the explanations
27below.
28
29 When we speak of free software, we are referring to freedom of use,
30not price. Our General Public Licenses are designed to make sure that
31you have the freedom to distribute copies of free software (and charge
32for this service if you wish); that you receive source code or can get
33it if you want it; that you can change the software and use pieces of
34it in new free programs; and that you are informed that you can do
35these things.
36
37 To protect your rights, we need to make restrictions that forbid
38distributors to deny you these rights or to ask you to surrender these
39rights. These restrictions translate to certain responsibilities for
40you if you distribute copies of the library or if you modify it.
41
42 For example, if you distribute copies of the library, whether gratis
43or for a fee, you must give the recipients all the rights that we gave
44you. You must make sure that they, too, receive or can get the source
45code. If you link other code with the library, you must provide
46complete object files to the recipients, so that they can relink them
47with the library after making changes to the library and recompiling
48it. And you must show them these terms so they know their rights.
49
50 We protect your rights with a two-step method: (1) we copyright the
51library, and (2) we offer you this license, which gives you legal
52permission to copy, distribute and/or modify the library.
53
54 To protect each distributor, we want to make it very clear that
55there is no warranty for the free library. Also, if the library is
56modified by someone else and passed on, the recipients should know
57that what they have is not the original version, so that the original
58author's reputation will not be affected by problems that might be
59introduced by others.
60
61 Finally, software patents pose a constant threat to the existence of
62any free program. We wish to make sure that a company cannot
63effectively restrict the users of a free program by obtaining a
64restrictive license from a patent holder. Therefore, we insist that
65any patent license obtained for a version of the library must be
66consistent with the full freedom of use specified in this license.
67
68 Most GNU software, including some libraries, is covered by the
69ordinary GNU General Public License. This license, the GNU Lesser
70General Public License, applies to certain designated libraries, and
71is quite different from the ordinary General Public License. We use
72this license for certain libraries in order to permit linking those
73libraries into non-free programs.
74
75 When a program is linked with a library, whether statically or using
76a shared library, the combination of the two is legally speaking a
77combined work, a derivative of the original library. The ordinary
78General Public License therefore permits such linking only if the
79entire combination fits its criteria of freedom. The Lesser General
80Public License permits more lax criteria for linking other code with
81the library.
82
83 We call this license the "Lesser" General Public License because it
84does Less to protect the user's freedom than the ordinary General
85Public License. It also provides other free software developers Less
86of an advantage over competing non-free programs. These disadvantages
87are the reason we use the ordinary General Public License for many
88libraries. However, the Lesser license provides advantages in certain
89special circumstances.
90
91 For example, on rare occasions, there may be a special need to
92encourage the widest possible use of a certain library, so that it
93becomes a de-facto standard. To achieve this, non-free programs must
94be allowed to use the library. A more frequent case is that a free
95library does the same job as widely used non-free libraries. In this
96case, there is little to gain by limiting the free library to free
97software only, so we use the Lesser General Public License.
98
99 In other cases, permission to use a particular library in non-free
100programs enables a greater number of people to use a large body of
101free software. For example, permission to use the GNU C Library in
102non-free programs enables many more people to use the whole GNU
103operating system, as well as its variant, the GNU/Linux operating
104system.
105
106 Although the Lesser General Public License is Less protective of the
107users' freedom, it does ensure that the user of a program that is
108linked with the Library has the freedom and the wherewithal to run
109that program using a modified version of the Library.
110
111 The precise terms and conditions for copying, distribution and
112modification follow. Pay close attention to the difference between a
113"work based on the library" and a "work that uses the library". The
114former contains code derived from the library, whereas the latter must
115be combined with the library in order to run.
116
117 GNU LESSER GENERAL PUBLIC LICENSE
118 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
119
120 0. This License Agreement applies to any software library or other
121program which contains a notice placed by the copyright holder or
122other authorized party saying it may be distributed under the terms of
123this Lesser General Public License (also called "this License").
124Each licensee is addressed as "you".
125
126 A "library" means a collection of software functions and/or data
127prepared so as to be conveniently linked with application programs
128(which use some of those functions and data) to form executables.
129
130 The "Library", below, refers to any such software library or work
131which has been distributed under these terms. A "work based on the
132Library" means either the Library or any derivative work under
133copyright law: that is to say, a work containing the Library or a
134portion of it, either verbatim or with modifications and/or translated
135straightforwardly into another language. (Hereinafter, translation is
136included without limitation in the term "modification".)
137
138 "Source code" for a work means the preferred form of the work for
139making modifications to it. For a library, complete source code means
140all the source code for all modules it contains, plus any associated
141interface definition files, plus the scripts used to control
142compilation and installation of the library.
143
144 Activities other than copying, distribution and modification are not
145covered by this License; they are outside its scope. The act of
146running a program using the Library is not restricted, and output from
147such a program is covered only if its contents constitute a work based
148on the Library (independent of the use of the Library in a tool for
149writing it). Whether that is true depends on what the Library does
150and what the program that uses the Library does.
151
152 1. You may copy and distribute verbatim copies of the Library's
153complete source code as you receive it, in any medium, provided that
154you conspicuously and appropriately publish on each copy an
155appropriate copyright notice and disclaimer of warranty; keep intact
156all the notices that refer to this License and to the absence of any
157warranty; and distribute a copy of this License along with the
158Library.
159
160 You may charge a fee for the physical act of transferring a copy,
161and you may at your option offer warranty protection in exchange for a
162fee.
163
164 2. You may modify your copy or copies of the Library or any portion
165of it, thus forming a work based on the Library, and copy and
166distribute such modifications or work under the terms of Section 1
167above, provided that you also meet all of these conditions:
168
169 a) The modified work must itself be a software library.
170
171 b) You must cause the files modified to carry prominent notices
172 stating that you changed the files and the date of any change.
173
174 c) You must cause the whole of the work to be licensed at no
175 charge to all third parties under the terms of this License.
176
177 d) If a facility in the modified Library refers to a function or a
178 table of data to be supplied by an application program that uses
179 the facility, other than as an argument passed when the facility
180 is invoked, then you must make a good faith effort to ensure that,
181 in the event an application does not supply such function or
182 table, the facility still operates, and performs whatever part of
183 its purpose remains meaningful.
184
185 (For example, a function in a library to compute square roots has
186 a purpose that is entirely well-defined independent of the
187 application. Therefore, Subsection 2d requires that any
188 application-supplied function or table used by this function must
189 be optional: if the application does not supply it, the square
190 root function must still compute square roots.)
191
192These requirements apply to the modified work as a whole. If
193identifiable sections of that work are not derived from the Library,
194and can be reasonably considered independent and separate works in
195themselves, then this License, and its terms, do not apply to those
196sections when you distribute them as separate works. But when you
197distribute the same sections as part of a whole which is a work based
198on the Library, the distribution of the whole must be on the terms of
199this License, whose permissions for other licensees extend to the
200entire whole, and thus to each and every part regardless of who wrote
201it.
202
203Thus, it is not the intent of this section to claim rights or contest
204your rights to work written entirely by you; rather, the intent is to
205exercise the right to control the distribution of derivative or
206collective works based on the Library.
207
208In addition, mere aggregation of another work not based on the Library
209with the Library (or with a work based on the Library) on a volume of
210a storage or distribution medium does not bring the other work under
211the scope of this License.
212
213 3. You may opt to apply the terms of the ordinary GNU General Public
214License instead of this License to a given copy of the Library. To do
215this, you must alter all the notices that refer to this License, so
216that they refer to the ordinary GNU General Public License, version 2,
217instead of to this License. (If a newer version than version 2 of the
218ordinary GNU General Public License has appeared, then you can specify
219that version instead if you wish.) Do not make any other change in
220these notices.
221
222 Once this change is made in a given copy, it is irreversible for
223that copy, so the ordinary GNU General Public License applies to all
224subsequent copies and derivative works made from that copy.
225
226 This option is useful when you wish to copy part of the code of
227the Library into a program that is not a library.
228
229 4. You may copy and distribute the Library (or a portion or
230derivative of it, under Section 2) in object code or executable form
231under the terms of Sections 1 and 2 above provided that you accompany
232it with the complete corresponding machine-readable source code, which
233must be distributed under the terms of Sections 1 and 2 above on a
234medium customarily used for software interchange.
235
236 If distribution of object code is made by offering access to copy
237from a designated place, then offering equivalent access to copy the
238source code from the same place satisfies the requirement to
239distribute the source code, even though third parties are not
240compelled to copy the source along with the object code.
241
242 5. A program that contains no derivative of any portion of the
243Library, but is designed to work with the Library by being compiled or
244linked with it, is called a "work that uses the Library". Such a
245work, in isolation, is not a derivative work of the Library, and
246therefore falls outside the scope of this License.
247
248 However, linking a "work that uses the Library" with the Library
249creates an executable that is a derivative of the Library (because it
250contains portions of the Library), rather than a "work that uses the
251library". The executable is therefore covered by this License.
252Section 6 states terms for distribution of such executables.
253
254 When a "work that uses the Library" uses material from a header file
255that is part of the Library, the object code for the work may be a
256derivative work of the Library even though the source code is not.
257Whether this is true is especially significant if the work can be
258linked without the Library, or if the work is itself a library. The
259threshold for this to be true is not precisely defined by law.
260
261 If such an object file uses only numerical parameters, data
262structure layouts and accessors, and small macros and small inline
263functions (ten lines or less in length), then the use of the object
264file is unrestricted, regardless of whether it is legally a derivative
265work. (Executables containing this object code plus portions of the
266Library will still fall under Section 6.)
267
268 Otherwise, if the work is a derivative of the Library, you may
269distribute the object code for the work under the terms of Section 6.
270Any executables containing that work also fall under Section 6,
271whether or not they are linked directly with the Library itself.
272
273 6. As an exception to the Sections above, you may also combine or
274link a "work that uses the Library" with the Library to produce a
275work containing portions of the Library, and distribute that work
276under terms of your choice, provided that the terms permit
277modification of the work for the customer's own use and reverse
278engineering for debugging such modifications.
279
280 You must give prominent notice with each copy of the work that the
281Library is used in it and that the Library and its use are covered by
282this License. You must supply a copy of this License. If the work
283during execution displays copyright notices, you must include the
284copyright notice for the Library among them, as well as a reference
285directing the user to the copy of this License. Also, you must do one
286of these things:
287
288 a) Accompany the work with the complete corresponding
289 machine-readable source code for the Library including whatever
290 changes were used in the work (which must be distributed under
291 Sections 1 and 2 above); and, if the work is an executable linked
292 with the Library, with the complete machine-readable "work that
293 uses the Library", as object code and/or source code, so that the
294 user can modify the Library and then relink to produce a modified
295 executable containing the modified Library. (It is understood
296 that the user who changes the contents of definitions files in the
297 Library will not necessarily be able to recompile the application
298 to use the modified definitions.)
299
300 b) Use a suitable shared library mechanism for linking with the
301 Library. A suitable mechanism is one that (1) uses at run time a
302 copy of the library already present on the user's computer system,
303 rather than copying library functions into the executable, and (2)
304 will operate properly with a modified version of the library, if
305 the user installs one, as long as the modified version is
306 interface-compatible with the version that the work was made with.
307
308 c) Accompany the work with a written offer, valid for at least
309 three years, to give the same user the materials specified in
310 Subsection 6a, above, for a charge no more than the cost of
311 performing this distribution.
312
313 d) If distribution of the work is made by offering access to copy
314 from a designated place, offer equivalent access to copy the above
315 specified materials from the same place.
316
317 e) Verify that the user has already received a copy of these
318 materials or that you have already sent this user a copy.
319
320 For an executable, the required form of the "work that uses the
321Library" must include any data and utility programs needed for
322reproducing the executable from it. However, as a special exception,
323the materials to be distributed need not include anything that is
324normally distributed (in either source or binary form) with the major
325components (compiler, kernel, and so on) of the operating system on
326which the executable runs, unless that component itself accompanies
327the executable.
328
329 It may happen that this requirement contradicts the license
330restrictions of other proprietary libraries that do not normally
331accompany the operating system. Such a contradiction means you cannot
332use both them and the Library together in an executable that you
333distribute.
334
335 7. You may place library facilities that are a work based on the
336Library side-by-side in a single library together with other library
337facilities not covered by this License, and distribute such a combined
338library, provided that the separate distribution of the work based on
339the Library and of the other library facilities is otherwise
340permitted, and provided that you do these two things:
341
342 a) Accompany the combined library with a copy of the same work
343 based on the Library, uncombined with any other library
344 facilities. This must be distributed under the terms of the
345 Sections above.
346
347 b) Give prominent notice with the combined library of the fact
348 that part of it is a work based on the Library, and explaining
349 where to find the accompanying uncombined form of the same work.
350
351 8. You may not copy, modify, sublicense, link with, or distribute
352the Library except as expressly provided under this License. Any
353attempt otherwise to copy, modify, sublicense, link with, or
354distribute the Library is void, and will automatically terminate your
355rights under this License. However, parties who have received copies,
356or rights, from you under this License will not have their licenses
357terminated so long as such parties remain in full compliance.
358
359 9. You are not required to accept this License, since you have not
360signed it. However, nothing else grants you permission to modify or
361distribute the Library or its derivative works. These actions are
362prohibited by law if you do not accept this License. Therefore, by
363modifying or distributing the Library (or any work based on the
364Library), you indicate your acceptance of this License to do so, and
365all its terms and conditions for copying, distributing or modifying
366the Library or works based on it.
367
368 10. Each time you redistribute the Library (or any work based on the
369Library), the recipient automatically receives a license from the
370original licensor to copy, distribute, link with or modify the Library
371subject to these terms and conditions. You may not impose any further
372restrictions on the recipients' exercise of the rights granted herein.
373You are not responsible for enforcing compliance by third parties with
374this License.
375
376 11. If, as a consequence of a court judgment or allegation of patent
377infringement or for any other reason (not limited to patent issues),
378conditions are imposed on you (whether by court order, agreement or
379otherwise) that contradict the conditions of this License, they do not
380excuse you from the conditions of this License. If you cannot
381distribute so as to satisfy simultaneously your obligations under this
382License and any other pertinent obligations, then as a consequence you
383may not distribute the Library at all. For example, if a patent
384license would not permit royalty-free redistribution of the Library by
385all those who receive copies directly or indirectly through you, then
386the only way you could satisfy both it and this License would be to
387refrain entirely from distribution of the Library.
388
389If any portion of this section is held invalid or unenforceable under
390any particular circumstance, the balance of the section is intended to
391apply, and the section as a whole is intended to apply in other
392circumstances.
393
394It is not the purpose of this section to induce you to infringe any
395patents or other property right claims or to contest validity of any
396such claims; this section has the sole purpose of protecting the
397integrity of the free software distribution system which is
398implemented by public license practices. Many people have made
399generous contributions to the wide range of software distributed
400through that system in reliance on consistent application of that
401system; it is up to the author/donor to decide if he or she is willing
402to distribute software through any other system and a licensee cannot
403impose that choice.
404
405This section is intended to make thoroughly clear what is believed to
406be a consequence of the rest of this License.
407
408 12. If the distribution and/or use of the Library is restricted in
409certain countries either by patents or by copyrighted interfaces, the
410original copyright holder who places the Library under this License
411may add an explicit geographical distribution limitation excluding those
412countries, so that distribution is permitted only in or among
413countries not thus excluded. In such case, this License incorporates
414the limitation as if written in the body of this License.
415
416 13. The Free Software Foundation may publish revised and/or new
417versions of the Lesser General Public License from time to time.
418Such new versions will be similar in spirit to the present version,
419but may differ in detail to address new problems or concerns.
420
421Each version is given a distinguishing version number. If the Library
422specifies a version number of this License which applies to it and
423"any later version", you have the option of following the terms and
424conditions either of that version or of any later version published by
425the Free Software Foundation. If the Library does not specify a
426license version number, you may choose any version ever published by
427the Free Software Foundation.
428
429 14. If you wish to incorporate parts of the Library into other free
430programs whose distribution conditions are incompatible with these,
431write to the author to ask for permission. For software which is
432copyrighted by the Free Software Foundation, write to the Free
433Software Foundation; we sometimes make exceptions for this. Our
434decision will be guided by the two goals of preserving the free status
435of all derivatives of our free software and of promoting the sharing
436and reuse of software generally.
437
438 NO WARRANTY
439
440 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
441WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
442EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
443OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
444KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
445IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
446PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
447LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
448THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
449
450 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
451WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
452AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
453FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
454CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
455LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
456RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
457FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
458SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
459DAMAGES.
460
461 END OF TERMS AND CONDITIONS
462
463 How to Apply These Terms to Your New Libraries
464
465 If you develop a new library, and you want it to be of the greatest
466possible use to the public, we recommend making it free software that
467everyone can redistribute and change. You can do so by permitting
468redistribution under these terms (or, alternatively, under the terms
469of the ordinary General Public License).
470
471 To apply these terms, attach the following notices to the library.
472It is safest to attach them to the start of each source file to most
473effectively convey the exclusion of warranty; and each file should
474have at least the "copyright" line and a pointer to where the full
475notice is found.
476
477
478 <one line to give the library's name and a brief idea of what it does.>
479 Copyright (C) <year> <name of author>
480
481 This library is free software; you can redistribute it and/or
482 modify it under the terms of the GNU Lesser General Public
483 License as published by the Free Software Foundation; either
484 version 2.1 of the License, or (at your option) any later version.
485
486 This library is distributed in the hope that it will be useful,
487 but WITHOUT ANY WARRANTY; without even the implied warranty of
488 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
489 Lesser General Public License for more details.
490
491 You should have received a copy of the GNU Lesser General Public
492 License along with this library; if not, write to the Free Software
493 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
494
495Also add information on how to contact you by electronic and paper mail.
496
497You should also get your employer (if you work as a programmer) or
498your school, if any, to sign a "copyright disclaimer" for the library,
499if necessary. Here is a sample; alter the names:
500
501 Yoyodyne, Inc., hereby disclaims all copyright interest in the
502 library `Frob' (a library for tweaking knobs) written by James
503 Random Hacker.
504
505 <signature of Ty Coon>, 1 April 1990
506 Ty Coon, President of Vice
507
508That's all there is to it!
509
510
diff --git a/meta/recipes-core/base-files/base-files/licenses/LGPL-3 b/meta/recipes-core/base-files/base-files/licenses/LGPL-3
new file mode 100644
index 0000000000..fc8a5de7ed
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/licenses/LGPL-3
@@ -0,0 +1,165 @@
1 GNU LESSER GENERAL PUBLIC LICENSE
2 Version 3, 29 June 2007
3
4 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5 Everyone is permitted to copy and distribute verbatim copies
6 of this license document, but changing it is not allowed.
7
8
9 This version of the GNU Lesser General Public License incorporates
10the terms and conditions of version 3 of the GNU General Public
11License, supplemented by the additional permissions listed below.
12
13 0. Additional Definitions.
14
15 As used herein, "this License" refers to version 3 of the GNU Lesser
16General Public License, and the "GNU GPL" refers to version 3 of the GNU
17General Public License.
18
19 "The Library" refers to a covered work governed by this License,
20other than an Application or a Combined Work as defined below.
21
22 An "Application" is any work that makes use of an interface provided
23by the Library, but which is not otherwise based on the Library.
24Defining a subclass of a class defined by the Library is deemed a mode
25of using an interface provided by the Library.
26
27 A "Combined Work" is a work produced by combining or linking an
28Application with the Library. The particular version of the Library
29with which the Combined Work was made is also called the "Linked
30Version".
31
32 The "Minimal Corresponding Source" for a Combined Work means the
33Corresponding Source for the Combined Work, excluding any source code
34for portions of the Combined Work that, considered in isolation, are
35based on the Application, and not on the Linked Version.
36
37 The "Corresponding Application Code" for a Combined Work means the
38object code and/or source code for the Application, including any data
39and utility programs needed for reproducing the Combined Work from the
40Application, but excluding the System Libraries of the Combined Work.
41
42 1. Exception to Section 3 of the GNU GPL.
43
44 You may convey a covered work under sections 3 and 4 of this License
45without being bound by section 3 of the GNU GPL.
46
47 2. Conveying Modified Versions.
48
49 If you modify a copy of the Library, and, in your modifications, a
50facility refers to a function or data to be supplied by an Application
51that uses the facility (other than as an argument passed when the
52facility is invoked), then you may convey a copy of the modified
53version:
54
55 a) under this License, provided that you make a good faith effort to
56 ensure that, in the event an Application does not supply the
57 function or data, the facility still operates, and performs
58 whatever part of its purpose remains meaningful, or
59
60 b) under the GNU GPL, with none of the additional permissions of
61 this License applicable to that copy.
62
63 3. Object Code Incorporating Material from Library Header Files.
64
65 The object code form of an Application may incorporate material from
66a header file that is part of the Library. You may convey such object
67code under terms of your choice, provided that, if the incorporated
68material is not limited to numerical parameters, data structure
69layouts and accessors, or small macros, inline functions and templates
70(ten or fewer lines in length), you do both of the following:
71
72 a) Give prominent notice with each copy of the object code that the
73 Library is used in it and that the Library and its use are
74 covered by this License.
75
76 b) Accompany the object code with a copy of the GNU GPL and this license
77 document.
78
79 4. Combined Works.
80
81 You may convey a Combined Work under terms of your choice that,
82taken together, effectively do not restrict modification of the
83portions of the Library contained in the Combined Work and reverse
84engineering for debugging such modifications, if you also do each of
85the following:
86
87 a) Give prominent notice with each copy of the Combined Work that
88 the Library is used in it and that the Library and its use are
89 covered by this License.
90
91 b) Accompany the Combined Work with a copy of the GNU GPL and this license
92 document.
93
94 c) For a Combined Work that displays copyright notices during
95 execution, include the copyright notice for the Library among
96 these notices, as well as a reference directing the user to the
97 copies of the GNU GPL and this license document.
98
99 d) Do one of the following:
100
101 0) Convey the Minimal Corresponding Source under the terms of this
102 License, and the Corresponding Application Code in a form
103 suitable for, and under terms that permit, the user to
104 recombine or relink the Application with a modified version of
105 the Linked Version to produce a modified Combined Work, in the
106 manner specified by section 6 of the GNU GPL for conveying
107 Corresponding Source.
108
109 1) Use a suitable shared library mechanism for linking with the
110 Library. A suitable mechanism is one that (a) uses at run time
111 a copy of the Library already present on the user's computer
112 system, and (b) will operate properly with a modified version
113 of the Library that is interface-compatible with the Linked
114 Version.
115
116 e) Provide Installation Information, but only if you would otherwise
117 be required to provide such information under section 6 of the
118 GNU GPL, and only to the extent that such information is
119 necessary to install and execute a modified version of the
120 Combined Work produced by recombining or relinking the
121 Application with a modified version of the Linked Version. (If
122 you use option 4d0, the Installation Information must accompany
123 the Minimal Corresponding Source and Corresponding Application
124 Code. If you use option 4d1, you must provide the Installation
125 Information in the manner specified by section 6 of the GNU GPL
126 for conveying Corresponding Source.)
127
128 5. Combined Libraries.
129
130 You may place library facilities that are a work based on the
131Library side by side in a single library together with other library
132facilities that are not Applications and are not covered by this
133License, and convey such a combined library under terms of your
134choice, if you do both of the following:
135
136 a) Accompany the combined library with a copy of the same work based
137 on the Library, uncombined with any other library facilities,
138 conveyed under the terms of this License.
139
140 b) Give prominent notice with the combined library that part of it
141 is a work based on the Library, and explaining where to find the
142 accompanying uncombined form of the same work.
143
144 6. Revised Versions of the GNU Lesser General Public License.
145
146 The Free Software Foundation may publish revised and/or new versions
147of the GNU Lesser General Public License from time to time. Such new
148versions will be similar in spirit to the present version, but may
149differ in detail to address new problems or concerns.
150
151 Each version is given a distinguishing version number. If the
152Library as you received it specifies that a certain numbered version
153of the GNU Lesser General Public License "or any later version"
154applies to it, you have the option of following the terms and
155conditions either of that published version or of any later version
156published by the Free Software Foundation. If the Library as you
157received it does not specify a version number of the GNU Lesser
158General Public License, you may choose any version of the GNU Lesser
159General Public License ever published by the Free Software Foundation.
160
161 If the Library as you received it specifies that a proxy can decide
162whether future versions of the GNU Lesser General Public License shall
163apply, that proxy's public statement of acceptance of any version is
164permanent authorization for you to choose that version for the
165Library.
diff --git a/meta/recipes-core/base-files/base-files/motd b/meta/recipes-core/base-files/base-files/motd
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/motd
diff --git a/meta/recipes-core/base-files/base-files/mtx-1/fstab b/meta/recipes-core/base-files/base-files/mtx-1/fstab
new file mode 100644
index 0000000000..ee3fab0c13
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/mtx-1/fstab
@@ -0,0 +1,8 @@
1# /etc/fstab: static file system information. mtx-1
2#
3# <file system> <mount pt> <type> <options> <dump> <pass>
4rootfs / auto defaults 1 1
5tmpfs /var/volatile tmpfs size=10m 0 0
6proc /proc proc defaults 0 0
7devpts /dev/pts devpts mode=0620,gid=5 0 0
8usbdevfs /proc/bus/usb usbdevfs noauto 0 0
diff --git a/meta/recipes-core/base-files/base-files/mtx-1/profile b/meta/recipes-core/base-files/base-files/mtx-1/profile
new file mode 100644
index 0000000000..bedf2fc7d8
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/mtx-1/profile
@@ -0,0 +1,25 @@
1# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
2# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
3
4PATH="/usr/local/bin:/usr/bin:/bin"
5
6if [ "`id -u`" -eq 0 ]; then
7 PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:
8fi
9if [ "$PS1" ]; then
10# works for bash and ash (no other shells known to be in use here)
11 PS1='\u@\h:\w\$ '
12fi
13
14if [ -d /etc/profile.d ]; then
15 for i in `ls /etc/profile.d/`; do
16 . /etc/profile.d/$i
17 done
18 unset i
19fi
20
21export PATH PS1
22
23umask 022
24
25alias ll="ls -lah" \ No newline at end of file
diff --git a/meta/recipes-core/base-files/base-files/nokia770/fstab b/meta/recipes-core/base-files/base-files/nokia770/fstab
new file mode 100644
index 0000000000..7dbae252fb
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/nokia770/fstab
@@ -0,0 +1,6 @@
1rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
2/dev/mmcblk0p1 /media/card auto defaults,noauto,noatime,exec,suid 0 0
3tmpfs /var/volatile tmpfs defaults 0 0
4tmpfs /media/ram tmpfs defaults 0 0
5proc /proc proc defaults 0 0
6usbdevfs /proc/bus/usb usbdevfs noauto 0 0
diff --git a/meta/recipes-core/base-files/base-files/nsswitch.conf b/meta/recipes-core/base-files/base-files/nsswitch.conf
new file mode 100644
index 0000000000..06f03d22a6
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/nsswitch.conf
@@ -0,0 +1,19 @@
1# /etc/nsswitch.conf
2#
3# Example configuration of GNU Name Service Switch functionality.
4# If you have the `glibc-doc' and `info' packages installed, try:
5# `info libc "Name Service Switch"' for information about this file.
6
7passwd: compat
8group: compat
9shadow: compat
10
11hosts: files dns
12networks: files
13
14protocols: db files
15services: db files
16ethers: db files
17rpc: db files
18
19netgroup: nis
diff --git a/meta/recipes-core/base-files/base-files/poodle/fstab b/meta/recipes-core/base-files/base-files/poodle/fstab
new file mode 100644
index 0000000000..b96b750eb6
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/poodle/fstab
@@ -0,0 +1,13 @@
1/dev/mtdblock2 / jffs2 rw,noatime 1 1
2/dev/mtdblock3 /home jffs2 defaults,noatime 1 2
3proc /proc proc defaults 0 0
4/dev/hda1 /media/cf auto defaults,sync,noauto 0 0
5
6# SD/MMC in kernel 2.6
7/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
8
9# SD/MMC in kernel 2.4
10/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
11
12tmpfs /var/volatile tmpfs defaults 0 0
13tmpfs /media/ram tmpfs defaults 0 0
diff --git a/meta/recipes-core/base-files/base-files/poodle/usbd b/meta/recipes-core/base-files/base-files/poodle/usbd
new file mode 100644
index 0000000000..40931ee8e9
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/poodle/usbd
@@ -0,0 +1 @@
usbdmodule=pxa_bi
diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile
new file mode 100644
index 0000000000..aa1c20fdb8
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/profile
@@ -0,0 +1,32 @@
1# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
2# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
3
4PATH="/usr/local/bin:/usr/bin:/bin"
5EDITOR="/bin/vi" # needed for packages like cron
6test -z "$TERM" && TERM="vt100" # Basic terminal capab. For screen etc.
7
8if [ ! -e /etc/localtime ]; then
9 TZ="UTC" # Time Zone. Look at http://theory.uwinnipeg.ca/gnu/glibc/libc_303.html
10 # for an explanation of how to set this to your local timezone.
11 export TZ
12fi
13
14if [ "$HOME" = "/home/root" ]; then
15 PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:
16fi
17if [ "$PS1" ]; then
18# works for bash and ash (no other shells known to be in use here)
19 PS1='\u@\h:\w\$ '
20fi
21
22if [ -d /etc/profile.d ]; then
23 for i in /etc/profile.d/* ; do
24 . $i
25 done
26 unset i
27fi
28
29export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
30
31umask 022
32
diff --git a/meta/recipes-core/base-files/base-files/rotation b/meta/recipes-core/base-files/base-files/rotation
new file mode 100644
index 0000000000..c227083464
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/rotation
@@ -0,0 +1 @@
0 \ No newline at end of file
diff --git a/meta/recipes-core/base-files/base-files/share/dot.bashrc b/meta/recipes-core/base-files/base-files/share/dot.bashrc
new file mode 100644
index 0000000000..4be63686c2
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/share/dot.bashrc
@@ -0,0 +1,16 @@
1# ~/.bashrc: executed by bash(1) for non-login shells.
2
3export PS1='\h:\w\$ '
4umask 022
5
6# You may uncomment the following lines if you want `ls' to be colorized:
7# export LS_OPTIONS='--color=auto'
8# eval `dircolors`
9# alias ls='ls $LS_OPTIONS'
10# alias ll='ls $LS_OPTIONS -l'
11# alias l='ls $LS_OPTIONS -lA'
12#
13# Some more alias to avoid making mistakes:
14# alias rm='rm -i'
15# alias cp='cp -i'
16# alias mv='mv -i'
diff --git a/meta/recipes-core/base-files/base-files/share/dot.profile b/meta/recipes-core/base-files/base-files/share/dot.profile
new file mode 100644
index 0000000000..979793e8b5
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/share/dot.profile
@@ -0,0 +1,10 @@
1# ~/.profile: executed by Bourne-compatible login shells.
2
3if [ -f ~/.bashrc ]; then
4 . ~/.bashrc
5fi
6
7# path set by /etc/profile
8# export PATH
9
10mesg n
diff --git a/meta/recipes-core/base-files/base-files/shells b/meta/recipes-core/base-files/base-files/shells
new file mode 100644
index 0000000000..ce39b3dde7
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/shells
@@ -0,0 +1,8 @@
1# /etc/shells: valid login shells
2/bin/sh
3/bin/ash
4/bin/bash
5/bin/dash
6/bin/ksh
7/usr/bin/ksh
8/usr/bin/screen
diff --git a/meta/recipes-core/base-files/base-files/spitz/fstab b/meta/recipes-core/base-files/base-files/spitz/fstab
new file mode 100644
index 0000000000..3d0e508dfd
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/spitz/fstab
@@ -0,0 +1,28 @@
1# don't mount /dev/mtdblock2 since Spitz uses pivot_root
2# or 2.6 directly boots from the hdd
3# /dev/mtdblock2 / jffs2 rw,noatime 1 1
4rootfs / auto defaults 1 1
5proc /proc proc defaults 0 0
6# we can use a normal var filesystem with a microdrive
7# tmpfs /var tmpfs defaults 0 0
8tmpfs /media/ram tmpfs defaults 0 0
9
10# Compact Flash memory cards
11/dev/hdc1 /media/cf auto defaults,sync,noauto 0 0
12# SD/MMC in kernel 2.4
13/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
14# SD/MMC in kernel 2.6
15/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
16
17#
18# USB
19#
20/dev/sda1 /media/usbhdd vfat noauto,umask=000,noatime,iocharset=utf8,codepage=932 0 0
21devpts /dev/pts devpts mode=0620,gid=5 0 0
22usbfs /proc/bus/usb usbfs noauto 0 0
23
24#
25# Harddisk
26#
27/dev/hda2 /home ext3 defaults 0 0
28/dev/hda3 /media/hdd vfat defaults 0 0
diff --git a/meta/recipes-core/base-files/base-files/spitz/rotation b/meta/recipes-core/base-files/base-files/spitz/rotation
new file mode 100644
index 0000000000..2a14d60899
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/spitz/rotation
@@ -0,0 +1 @@
270 \ No newline at end of file
diff --git a/meta/recipes-core/base-files/base-files/sysctl.conf b/meta/recipes-core/base-files/base-files/sysctl.conf
new file mode 100644
index 0000000000..d466a94eed
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/sysctl.conf
@@ -0,0 +1,29 @@
1#
2# Configuration file for setting system variables in /proc
3#
4
5#kernel.domainname = example.com
6#net/ipv4/icmp_echo_ignore_broadcasts=1
7
8# the following stops low-level messages on console
9#kernel.printk = 4 4 1 7
10
11# enable /proc/$pid/maps privacy so that memory relocations are not
12# visible to other users.
13#kernel.maps_protect = 1
14
15##############################################################3
16# Functions previously found in netbase
17#
18
19# Uncomment the next line to enable Spoof protection (reverse-path filter)
20#net.ipv4.conf.default.rp_filter=1
21
22# Uncomment the next line to enable TCP/IP SYN cookies
23#net.ipv4.tcp_syncookies=1
24
25# Uncomment the next line to enable packet forwarding for IPv4
26#net.ipv4.conf.default.forwarding=1
27
28# Uncomment the next line to enable packet forwarding for IPv6
29#net.ipv6.conf.default.forwarding=1
diff --git a/meta/recipes-core/base-files/base-files/tosa/fstab b/meta/recipes-core/base-files/base-files/tosa/fstab
new file mode 100644
index 0000000000..e065e8112e
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/tosa/fstab
@@ -0,0 +1,12 @@
1/dev/mtdblock2 / jffs2 rw,noatime 1 1
2/dev/mtdblock3 /home jffs2 defaults,noatime 1 2
3proc /proc proc defaults 0 0
4/dev/hda1 /media/cf auto defaults,sync,noauto 0 0
5
6tmpfs /var/volatile tmpfs defaults 0 0
7tmpfs /media/ram tmpfs defaults 0 0
8
9# SD/MMC in kernel 2.4
10/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0
11# SD/MMC in kernel 2.6
12/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
diff --git a/meta/recipes-core/base-files/base-files/tosa/usbd b/meta/recipes-core/base-files/base-files/tosa/usbd
new file mode 100644
index 0000000000..8c80044167
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/tosa/usbd
@@ -0,0 +1,5 @@
1# I know that this was created for usb-client stuff
2# but tosa/2.6 need (un)loading USB Host module
3# on suspend/resume and this way is simplest one ;)
4
5usbdmodule=ohci-hcd
diff --git a/meta/recipes-core/base-files/base-files/usbd b/meta/recipes-core/base-files/base-files/usbd
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/usbd
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
new file mode 100644
index 0000000000..a8f092db09
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -0,0 +1,177 @@
1DESCRIPTION = "Miscellaneous files for the base system."
2SECTION = "base"
3PRIORITY = "required"
4PR = "r64"
5LICENSE = "GPLv2"
6
7SRC_URI = "file://rotation \
8 file://nsswitch.conf \
9 file://motd \
10 file://inputrc \
11 file://host.conf \
12 file://profile \
13 file://shells \
14 file://fstab \
15 file://filesystems \
16 file://issue.net \
17 file://issue \
18 file://usbd \
19 file://sysctl.conf \
20 file://share/dot.bashrc \
21 file://share/dot.profile \
22 file://licenses/BSD \
23 file://licenses/GPL-2 \
24 file://licenses/GPL-3 \
25 file://licenses/LGPL-2 \
26 file://licenses/LGPL-2.1 \
27 file://licenses/LGPL-3 \
28 file://licenses/GFDL-1.2 \
29 file://licenses/Artistic"
30S = "${WORKDIR}"
31
32docdir_append = "/${P}"
33dirs1777 = "/tmp ${localstatedir}/volatile/lock ${localstatedir}/volatile/tmp"
34dirs2775 = "/home ${prefix}/src ${localstatedir}/local"
35dirs755 = "/bin /boot /dev ${sysconfdir} ${sysconfdir}/default \
36 ${sysconfdir}/skel /lib /mnt /proc /home/root /sbin \
37 ${prefix} ${bindir} ${docdir} /usr/games ${includedir} \
38 ${libdir} ${sbindir} ${datadir} \
39 ${datadir}/common-licenses ${datadir}/dict ${infodir} \
40 ${mandir} ${datadir}/misc ${localstatedir} \
41 ${localstatedir}/backups ${localstatedir}/lib \
42 /sys ${localstatedir}/lib/misc ${localstatedir}/spool \
43 ${localstatedir}/volatile ${localstatedir}/volatile/cache \
44 ${localstatedir}/volatile/lock/subsys \
45 ${localstatedir}/volatile/log \
46 ${localstatedir}/volatile/run \
47 /mnt /media /media/card /media/cf /media/net /media/ram \
48 /media/union /media/realroot /media/hdd \
49 /media/mmc1"
50volatiles = "cache run log lock tmp"
51conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
52 ${sysconfdir}/inputrc ${sysconfdir}/issue /${sysconfdir}/issue.net \
53 ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
54 ${sysconfdir}/default"
55
56#
57# set standard hostname, might be a candidate for a DISTRO variable? :M:
58#
59hostname = "openembedded"
60hostname_slugos = "nslu2"
61hostname_mnci = "MNCI"
62hostname_rt3000 = "MNRT"
63hostname_jlime = "JLime"
64
65do_install () {
66 for d in ${dirs755}; do
67 install -m 0755 -d ${D}$d
68 done
69 for d in ${dirs1777}; do
70 install -m 1777 -d ${D}$d
71 done
72 for d in ${dirs2775}; do
73 install -m 2755 -d ${D}$d
74 done
75 for d in ${volatiles}; do
76 ln -sf volatile/$d ${D}/${localstatedir}/$d
77 done
78 for d in card cf net ram; do
79 ln -sf /media/$d ${D}/mnt/$d
80 done
81
82 if [ -n "${MACHINE}" -a "${hostname}" = "openembedded" ]; then
83 echo ${MACHINE} > ${D}${sysconfdir}/hostname
84 else
85 echo ${hostname} > ${D}${sysconfdir}/hostname
86 fi
87
88 if [ -n "${DISTRO_NAME}" ]; then
89 echo -n "${DISTRO_NAME} " > ${D}${sysconfdir}/issue
90 echo -n "${DISTRO_NAME} " > ${D}${sysconfdir}/issue.net
91 if [ -n "${DISTRO_VERSION}" ]; then
92 echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue
93 echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net
94 fi
95 echo "\n \l" >> ${D}${sysconfdir}/issue
96 echo >> ${D}${sysconfdir}/issue
97 echo "%h" >> ${D}${sysconfdir}/issue.net
98 echo >> ${D}${sysconfdir}/issue.net
99 else
100 install -m 0644 ${WORKDIR}/issue ${D}${sysconfdir}/issue
101 install -m 0644 ${WORKDIR}/issue.net ${D}${sysconfdir}/issue.net
102 fi
103
104 rotation=`cat ${WORKDIR}/rotation`
105 if [ "$rotation" != "0" ]; then
106 install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation
107 fi
108
109 install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/
110 install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab
111 install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems
112 install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
113 install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
114 install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
115 install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
116 install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
117 install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
118 install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
119 install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
120 install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
121
122 for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3 LGPL-3 GFDL-1.2; do
123 install -m 0644 ${WORKDIR}/licenses/$license ${D}${datadir}/common-licenses/
124 done
125
126 ln -sf /proc/mounts ${D}${sysconfdir}/mtab
127}
128
129
130do_install_append_mnci () {
131 rmdir ${D}/tmp
132 ln -s var/tmp ${D}/tmp
133}
134
135do_install_append_nylon() {
136 printf "" "" >${D}${sysconfdir}/resolv.conf
137 rm -r ${D}/mnt/*
138 rm -r ${D}/media
139 rm -rf ${D}/tmp
140 ln -sf /var/tmp ${D}/tmp
141}
142
143do_install_append_slugos() {
144 printf "" "" >${D}${sysconfdir}/resolv.conf
145 rm -r ${D}/mnt/*
146 rmdir ${D}/home/root
147 install -m 0755 -d ${D}/root
148 ln -s ../root ${D}/home/root
149}
150
151do_install_append_netbook-pro () {
152 mkdir -p ${D}/initrd
153}
154
155PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
156FILES_${PN} = "/"
157FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
158
159# M&N specific packaging
160PACKAGE_ARCH_mnci = "mnci"
161PACKAGE_ARCH_rt3000 = "rt3000"
162
163PACKAGE_ARCH = "${MACHINE_ARCH}"
164
165# Unslung distribution specific packaging
166
167PACKAGES_unslung = "${PN}-unslung"
168PACKAGE_ARCH_${PN}-unslung = "nslu2"
169RDEPENDS_${PN}-unslung = "nslu2-linksys-ramdisk"
170RPROVIDES_${PN}-unslung = "${PN}"
171
172FILES_${PN}-unslung = ""
173
174CONFFILES_${PN} = "${sysconfdir}/fstab ${sysconfdir}/hostname"
175CONFFILES_${PN}_nylon = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname"
176CONFFILES_${PN}_slugos = "${sysconfdir}/resolv.conf ${sysconfdir}/fstab ${sysconfdir}/hostname"
177
diff --git a/meta/recipes-core/base-passwd/base-passwd-3.5.22/mysql.patch b/meta/recipes-core/base-passwd/base-passwd-3.5.22/mysql.patch
new file mode 100644
index 0000000000..8bfd757929
--- /dev/null
+++ b/meta/recipes-core/base-passwd/base-passwd-3.5.22/mysql.patch
@@ -0,0 +1,13 @@
1# set correct uid/gid for mysql, from OE (8836cd807198c224ed23b05fa4f708f096881b27).
2# however poky doesn't include mysql so far. Remove it from patch list, but keep
3# this patch for a while
4#
5# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
6--- base-passwd/group.master.orig 2005-07-08 06:36:07.717990112 +0200
7+++ base-passwd/group.master 2005-07-08 06:36:32.000000000 +0200
8@@ -36,4 +36,5 @@
9 staff:*:50:
10 games:*:60:
11 users:*:100:
12+mysql:*:64001:
13 nogroup:*:65534:
diff --git a/meta/recipes-core/base-passwd/base-passwd-3.5.22/nobash.patch b/meta/recipes-core/base-passwd/base-passwd-3.5.22/nobash.patch
new file mode 100644
index 0000000000..52650166f8
--- /dev/null
+++ b/meta/recipes-core/base-passwd/base-passwd-3.5.22/nobash.patch
@@ -0,0 +1,20 @@
1# use /bin/sh instead of /bin/bash, since the latter may not be included in
2# some images such as minimal
3#
4# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
5#
6# remove "*" for root since we don't have a /etc/shadow so far.
7#
8# by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
9#
10# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
11#
12
13--- base-passwd/passwd.master~nobash
14+++ base-passwd/passwd.master
15@@ -1,4 +1,4 @@
16-root:*:0:0:root:/root:/bin/bash
17+root::0:0:root:/root:/bin/sh
18 daemon:*:1:1:daemon:/usr/sbin:/bin/sh
19 bin:*:2:2:bin:/bin:/bin/sh
20 sys:*:3:3:sys:/dev:/bin/sh
diff --git a/meta/recipes-core/base-passwd/base-passwd-3.5.22/root-home.patch b/meta/recipes-core/base-passwd/base-passwd-3.5.22/root-home.patch
new file mode 100644
index 0000000000..87c4655a04
--- /dev/null
+++ b/meta/recipes-core/base-passwd/base-passwd-3.5.22/root-home.patch
@@ -0,0 +1,11 @@
1# poky uses /home/root instead of /root.
2#
3# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
4--- base-passwd/passwd.master.orig 2005-07-08 06:26:22.000000000 +0200
5+++ base-passwd/passwd.master 2005-07-08 06:31:58.000000000 +0200
6@@ -1,4 +1,4 @@
7-root::0:0:root:/root:/bin/sh
8+root::0:0:root:/home/root:/bin/sh
9 daemon:*:1:1:daemon:/usr/sbin:/bin/sh
10 bin:*:2:2:bin:/bin:/bin/sh
11 sys:*:3:3:sys:/dev:/bin/sh
diff --git a/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb b/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb
new file mode 100644
index 0000000000..f0ca8e6280
--- /dev/null
+++ b/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb
@@ -0,0 +1,50 @@
1DESCRIPTION = "Base system password/group files."
2SECTION = "base"
3PR = "r0"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
6
7SRC_URI = "${DEBIAN_MIRROR}/main/b/base-passwd/base-passwd_${PV}.tar.gz \
8 file://nobash.patch \
9 file://root-home.patch"
10
11S = "${WORKDIR}/base-passwd"
12
13inherit autotools
14
15do_install () {
16 install -d -m 755 ${D}${sbindir}
17 install -p -m 755 update-passwd ${D}${sbindir}/
18 install -d -m 755 ${D}${mandir}/man8 ${D}${mandir}/pl/man8
19 install -p -m 644 man/update-passwd.8 ${D}${mandir}/man8/
20 install -p -m 644 man/update-passwd.pl.8 \
21 ${D}${mandir}/pl/man8/update-passwd.8
22 gzip -9 ${D}${mandir}/man8/* ${D}${mandir}/pl/man8/*
23 install -d -m 755 ${D}${datadir}/base-passwd
24 install -p -m 644 passwd.master ${D}${datadir}/base-passwd/
25 install -p -m 644 group.master ${D}${datadir}/base-passwd/
26
27 install -d -m 755 ${D}${docdir}/${PN}
28 install -p -m 644 debian/changelog ${D}${docdir}/${PN}/
29 gzip -9 ${D}${docdir}/${PN}/*
30 install -p -m 644 README ${D}${docdir}/${PN}/
31 install -p -m 644 debian/copyright ${D}${docdir}/${PN}/
32}
33
34do_install_append_openmn() {
35 echo "0:Jn6tcg/qjqvUE:0:0:root:/root:/bin/sh" >>${D}${datadir}/base-passwd/passwd.master
36}
37
38
39pkg_postinst () {
40 set -e
41
42 if [ ! -e $D${sysconfdir}/passwd ] ; then
43 cp $D${datadir}/base-passwd/passwd.master $D${sysconfdir}/passwd
44 fi
45
46 if [ ! -e $D${sysconfdir}/group ] ; then
47 cp $D${datadir}/base-passwd/group.master $D${sysconfdir}/group
48 fi
49 exit 0
50}
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/B921600.patch b/meta/recipes-core/busybox/busybox-1.16.2/B921600.patch
new file mode 100644
index 0000000000..803dc411d8
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/B921600.patch
@@ -0,0 +1,22 @@
1# copy commit message from OE as the patch comment:
2# commit 5b1ed09b1ab1a60a28a76e4658bc9957cd361b5d
3# Author: Valentin Longchamp <valentin.longchamp@epfl.ch>
4# Date: Mon Dec 8 14:43:23 2008 +0100
5
6# busybox: added support for 921600 speed of serial line
7#
8# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
9
10diff -upNr busybox-1.7.2/libbb/speed_table.c busybox-1.7.2-921600/libbb/speed_table.c
11--- busybox-1.7.2/libbb/speed_table.c 2007-09-03 13:48:41.000000000 +0200
12+++ busybox-1.7.2-921600/libbb/speed_table.c 2008-10-09 16:23:26.269592899 +0200
13@@ -52,6 +52,9 @@ static const struct speed_map speeds[] =
14 #ifdef B460800
15 {B460800, 460800/256 + 0x8000U},
16 #endif
17+#ifdef B921600
18+ {B921600, 921600/256 + 0x8000U},
19+#endif
20 };
21
22 enum { NUM_SPEEDS = ARRAY_SIZE(speeds) };
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/busybox-appletlib-dependency.patch b/meta/recipes-core/busybox/busybox-1.16.2/busybox-appletlib-dependency.patch
new file mode 100644
index 0000000000..041aa6c54c
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/busybox-appletlib-dependency.patch
@@ -0,0 +1,35 @@
1# copy commit message from OE as the patch comment:
2# commit 98c24291aa165f53423c27ae033831ce0b3bb676
3# Author: Roman I Khimov <khimov@altell.ru>
4# Date: Thu Mar 26 23:03:58 2009 +0000
5#
6# busybox: update appletlib dependency patch
7#
8# Previous version still failed from time to time on clean-start builds
9# with 4 bitbake threads and '-j16'. Building busybox as sole target worked
10# well.
11#
12# The reason is that previous version introduced a race between applets make
13# processes spawned from top-level Makefile and from libbb Makefile.
14#
15# Fix it with high-level dependency that doesn't create races.
16#
17# Signed-off-by: Koen Kooi <koen@openembedded.org>
18#
19# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
20
21Index: busybox-1.13.2/Makefile
22===================================================================
23--- busybox-1.13.2.orig/Makefile 2009-03-19 15:44:37.419270265 +0300
24+++ busybox-1.13.2/Makefile 2009-03-19 15:45:57.737521296 +0300
25@@ -471,6 +471,10 @@
26 util-linux/ \
27 util-linux/volume_id/ \
28
29+# Lib interdeps
30+# libbb uses headers generated in applets
31+libbb: applets
32+
33 endif # KBUILD_EXTMOD
34
35 ifeq ($(dot-config),1)
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/defconfig b/meta/recipes-core/busybox/busybox-1.16.2/defconfig
new file mode 100644
index 0000000000..431da94dd2
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/defconfig
@@ -0,0 +1,924 @@
1#
2# Automatically generated make config: don't edit
3# Busybox version: 1.16.2
4# Tue Jul 6 14:52:48 2010
5#
6CONFIG_HAVE_DOT_CONFIG=y
7
8#
9# Busybox Settings
10#
11
12#
13# General Configuration
14#
15# CONFIG_DESKTOP is not set
16# CONFIG_EXTRA_COMPAT is not set
17# CONFIG_INCLUDE_SUSv2 is not set
18# CONFIG_USE_PORTABLE_CODE is not set
19CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
20# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
21# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
22CONFIG_SHOW_USAGE=y
23# CONFIG_FEATURE_VERBOSE_USAGE is not set
24CONFIG_FEATURE_COMPRESS_USAGE=y
25# CONFIG_FEATURE_INSTALLER is not set
26CONFIG_LOCALE_SUPPORT=y
27# CONFIG_FEATURE_ASSUME_UNICODE is not set
28# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
29CONFIG_LONG_OPTS=y
30CONFIG_FEATURE_DEVPTS=y
31# CONFIG_FEATURE_CLEAN_UP is not set
32CONFIG_FEATURE_PIDFILE=y
33CONFIG_FEATURE_SUID=y
34CONFIG_FEATURE_SUID_CONFIG=y
35CONFIG_FEATURE_SUID_CONFIG_QUIET=y
36# CONFIG_SELINUX is not set
37# CONFIG_FEATURE_PREFER_APPLETS is not set
38CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
39CONFIG_FEATURE_SYSLOG=y
40CONFIG_FEATURE_HAVE_RPC=y
41
42#
43# Build Options
44#
45# CONFIG_STATIC is not set
46# CONFIG_PIE is not set
47# CONFIG_NOMMU is not set
48# CONFIG_BUILD_LIBBUSYBOX is not set
49# CONFIG_FEATURE_INDIVIDUAL is not set
50# CONFIG_FEATURE_SHARED_BUSYBOX is not set
51CONFIG_LFS=y
52CONFIG_CROSS_COMPILER_PREFIX=""
53CONFIG_EXTRA_CFLAGS=""
54
55#
56# Debugging Options
57#
58# CONFIG_DEBUG is not set
59# CONFIG_DEBUG_PESSIMIZE is not set
60# CONFIG_WERROR is not set
61CONFIG_NO_DEBUG_LIB=y
62# CONFIG_DMALLOC is not set
63# CONFIG_EFENCE is not set
64
65#
66# Installation Options
67#
68# CONFIG_INSTALL_NO_USR is not set
69CONFIG_INSTALL_APPLET_SYMLINKS=y
70# CONFIG_INSTALL_APPLET_HARDLINKS is not set
71# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
72# CONFIG_INSTALL_APPLET_DONT is not set
73# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
74# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
75# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
76CONFIG_PREFIX="./_install"
77
78#
79# Busybox Library Tuning
80#
81CONFIG_PASSWORD_MINLEN=6
82CONFIG_MD5_SIZE_VS_SPEED=2
83CONFIG_FEATURE_FAST_TOP=y
84# CONFIG_FEATURE_ETC_NETWORKS is not set
85CONFIG_FEATURE_EDITING=y
86CONFIG_FEATURE_EDITING_MAX_LEN=1024
87# CONFIG_FEATURE_EDITING_VI is not set
88CONFIG_FEATURE_EDITING_HISTORY=15
89CONFIG_FEATURE_EDITING_SAVEHISTORY=y
90CONFIG_FEATURE_TAB_COMPLETION=y
91CONFIG_FEATURE_USERNAME_COMPLETION=y
92CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
93# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
94CONFIG_FEATURE_NON_POSIX_CP=y
95# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
96CONFIG_FEATURE_COPYBUF_KB=4
97CONFIG_MONOTONIC_SYSCALL=y
98CONFIG_IOCTL_HEX2STR_ERROR=y
99CONFIG_FEATURE_HWIB=y
100
101#
102# Applets
103#
104
105#
106# Archival Utilities
107#
108# CONFIG_FEATURE_SEAMLESS_LZMA is not set
109# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
110# CONFIG_FEATURE_SEAMLESS_GZ is not set
111# CONFIG_FEATURE_SEAMLESS_Z is not set
112CONFIG_AR=y
113# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
114CONFIG_BUNZIP2=y
115# CONFIG_BZIP2 is not set
116CONFIG_CPIO=y
117# CONFIG_FEATURE_CPIO_O is not set
118# CONFIG_FEATURE_CPIO_P is not set
119# CONFIG_DPKG is not set
120# CONFIG_DPKG_DEB is not set
121# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
122CONFIG_GUNZIP=y
123CONFIG_GZIP=y
124# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
125# CONFIG_LZOP is not set
126# CONFIG_LZOP_COMPR_HIGH is not set
127# CONFIG_RPM2CPIO is not set
128# CONFIG_RPM is not set
129CONFIG_TAR=y
130CONFIG_FEATURE_TAR_CREATE=y
131# CONFIG_FEATURE_TAR_AUTODETECT is not set
132CONFIG_FEATURE_TAR_FROM=y
133# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
134# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
135CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
136# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
137# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
138# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
139# CONFIG_UNCOMPRESS is not set
140# CONFIG_UNLZMA is not set
141# CONFIG_FEATURE_LZMA_FAST is not set
142CONFIG_UNZIP=y
143
144#
145# Coreutils
146#
147CONFIG_BASENAME=y
148# CONFIG_CAL is not set
149CONFIG_CAT=y
150# CONFIG_CATV is not set
151CONFIG_CHGRP=y
152CONFIG_CHMOD=y
153CONFIG_CHOWN=y
154# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
155CONFIG_CHROOT=y
156# CONFIG_CKSUM is not set
157# CONFIG_COMM is not set
158CONFIG_CP=y
159# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
160CONFIG_CUT=y
161CONFIG_DATE=y
162# CONFIG_FEATURE_DATE_ISOFMT is not set
163CONFIG_FEATURE_DATE_COMPAT=y
164CONFIG_DD=y
165CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
166# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
167# CONFIG_FEATURE_DD_IBS_OBS is not set
168CONFIG_DF=y
169# CONFIG_FEATURE_DF_FANCY is not set
170CONFIG_DIRNAME=y
171# CONFIG_DOS2UNIX is not set
172# CONFIG_UNIX2DOS is not set
173CONFIG_DU=y
174CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
175CONFIG_ECHO=y
176CONFIG_FEATURE_FANCY_ECHO=y
177CONFIG_ENV=y
178CONFIG_FEATURE_ENV_LONG_OPTIONS=y
179# CONFIG_EXPAND is not set
180# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
181CONFIG_EXPR=y
182# CONFIG_EXPR_MATH_SUPPORT_64 is not set
183CONFIG_FALSE=y
184# CONFIG_FOLD is not set
185# CONFIG_FSYNC is not set
186CONFIG_HEAD=y
187# CONFIG_FEATURE_FANCY_HEAD is not set
188# CONFIG_HOSTID is not set
189CONFIG_ID=y
190# CONFIG_INSTALL is not set
191# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
192# CONFIG_LENGTH is not set
193CONFIG_LN=y
194CONFIG_LOGNAME=y
195CONFIG_LS=y
196CONFIG_FEATURE_LS_FILETYPES=y
197CONFIG_FEATURE_LS_FOLLOWLINKS=y
198CONFIG_FEATURE_LS_RECURSIVE=y
199CONFIG_FEATURE_LS_SORTFILES=y
200CONFIG_FEATURE_LS_TIMESTAMPS=y
201CONFIG_FEATURE_LS_USERNAME=y
202CONFIG_FEATURE_LS_COLOR=y
203# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
204CONFIG_MD5SUM=y
205CONFIG_MKDIR=y
206CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
207CONFIG_MKFIFO=y
208CONFIG_MKNOD=y
209CONFIG_MV=y
210# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
211# CONFIG_NICE is not set
212CONFIG_NOHUP=y
213CONFIG_OD=y
214# CONFIG_PRINTENV is not set
215CONFIG_PRINTF=y
216CONFIG_PWD=y
217CONFIG_READLINK=y
218CONFIG_FEATURE_READLINK_FOLLOW=y
219CONFIG_REALPATH=y
220CONFIG_RM=y
221CONFIG_RMDIR=y
222# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
223CONFIG_SEQ=y
224# CONFIG_SHA1SUM is not set
225# CONFIG_SHA256SUM is not set
226# CONFIG_SHA512SUM is not set
227CONFIG_SLEEP=y
228CONFIG_FEATURE_FANCY_SLEEP=y
229# CONFIG_FEATURE_FLOAT_SLEEP is not set
230CONFIG_SORT=y
231CONFIG_FEATURE_SORT_BIG=y
232# CONFIG_SPLIT is not set
233# CONFIG_FEATURE_SPLIT_FANCY is not set
234# CONFIG_STAT is not set
235# CONFIG_FEATURE_STAT_FORMAT is not set
236CONFIG_STTY=y
237# CONFIG_SUM is not set
238CONFIG_SYNC=y
239# CONFIG_TAC is not set
240CONFIG_TAIL=y
241CONFIG_FEATURE_FANCY_TAIL=y
242CONFIG_TEE=y
243# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
244CONFIG_TEST=y
245# CONFIG_FEATURE_TEST_64 is not set
246CONFIG_TOUCH=y
247CONFIG_TR=y
248CONFIG_FEATURE_TR_CLASSES=y
249# CONFIG_FEATURE_TR_EQUIV is not set
250CONFIG_TRUE=y
251CONFIG_TTY=y
252CONFIG_UNAME=y
253# CONFIG_UNEXPAND is not set
254# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
255CONFIG_UNIQ=y
256CONFIG_USLEEP=y
257# CONFIG_UUDECODE is not set
258# CONFIG_UUENCODE is not set
259CONFIG_WC=y
260# CONFIG_FEATURE_WC_LARGE is not set
261CONFIG_WHO=y
262CONFIG_WHOAMI=y
263CONFIG_YES=y
264
265#
266# Common options for cp and mv
267#
268# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
269
270#
271# Common options for ls, more and telnet
272#
273CONFIG_FEATURE_AUTOWIDTH=y
274
275#
276# Common options for df, du, ls
277#
278CONFIG_FEATURE_HUMAN_READABLE=y
279
280#
281# Common options for md5sum, sha1sum, sha256sum, sha512sum
282#
283CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
284
285#
286# Console Utilities
287#
288CONFIG_CHVT=y
289CONFIG_CLEAR=y
290CONFIG_DEALLOCVT=y
291CONFIG_DUMPKMAP=y
292# CONFIG_KBD_MODE is not set
293CONFIG_LOADFONT=y
294CONFIG_LOADKMAP=y
295CONFIG_OPENVT=y
296CONFIG_RESET=y
297# CONFIG_RESIZE is not set
298# CONFIG_FEATURE_RESIZE_PRINT is not set
299CONFIG_SETCONSOLE=y
300# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
301# CONFIG_SETFONT is not set
302# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
303CONFIG_DEFAULT_SETFONT_DIR=""
304# CONFIG_SETKEYCODES is not set
305# CONFIG_SETLOGCONS is not set
306# CONFIG_SHOWKEY is not set
307
308#
309# Debian Utilities
310#
311CONFIG_MKTEMP=y
312# CONFIG_PIPE_PROGRESS is not set
313CONFIG_RUN_PARTS=y
314CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
315# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
316CONFIG_START_STOP_DAEMON=y
317CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
318CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
319CONFIG_WHICH=y
320
321#
322# Editors
323#
324CONFIG_AWK=y
325# CONFIG_FEATURE_AWK_LIBM is not set
326CONFIG_CMP=y
327CONFIG_DIFF=y
328# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
329CONFIG_FEATURE_DIFF_DIR=y
330# CONFIG_ED is not set
331CONFIG_PATCH=y
332CONFIG_SED=y
333CONFIG_VI=y
334CONFIG_FEATURE_VI_MAX_LEN=1024
335CONFIG_FEATURE_VI_8BIT=y
336CONFIG_FEATURE_VI_COLON=y
337CONFIG_FEATURE_VI_YANKMARK=y
338CONFIG_FEATURE_VI_SEARCH=y
339CONFIG_FEATURE_VI_USE_SIGNALS=y
340# CONFIG_FEATURE_VI_DOT_CMD is not set
341# CONFIG_FEATURE_VI_READONLY is not set
342# CONFIG_FEATURE_VI_SETOPTS is not set
343# CONFIG_FEATURE_VI_SET is not set
344CONFIG_FEATURE_VI_WIN_RESIZE=y
345CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
346CONFIG_FEATURE_ALLOW_EXEC=y
347
348#
349# Finding Utilities
350#
351CONFIG_FIND=y
352CONFIG_FEATURE_FIND_PRINT0=y
353CONFIG_FEATURE_FIND_MTIME=y
354CONFIG_FEATURE_FIND_MMIN=y
355CONFIG_FEATURE_FIND_PERM=y
356CONFIG_FEATURE_FIND_TYPE=y
357CONFIG_FEATURE_FIND_XDEV=y
358CONFIG_FEATURE_FIND_MAXDEPTH=y
359CONFIG_FEATURE_FIND_NEWER=y
360# CONFIG_FEATURE_FIND_INUM is not set
361CONFIG_FEATURE_FIND_EXEC=y
362CONFIG_FEATURE_FIND_USER=y
363CONFIG_FEATURE_FIND_GROUP=y
364CONFIG_FEATURE_FIND_NOT=y
365CONFIG_FEATURE_FIND_DEPTH=y
366CONFIG_FEATURE_FIND_PAREN=y
367CONFIG_FEATURE_FIND_SIZE=y
368CONFIG_FEATURE_FIND_PRUNE=y
369# CONFIG_FEATURE_FIND_DELETE is not set
370CONFIG_FEATURE_FIND_PATH=y
371CONFIG_FEATURE_FIND_REGEX=y
372# CONFIG_FEATURE_FIND_CONTEXT is not set
373# CONFIG_FEATURE_FIND_LINKS is not set
374CONFIG_GREP=y
375CONFIG_FEATURE_GREP_EGREP_ALIAS=y
376CONFIG_FEATURE_GREP_FGREP_ALIAS=y
377CONFIG_FEATURE_GREP_CONTEXT=y
378CONFIG_XARGS=y
379# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
380# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
381# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
382# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
383
384#
385# Init Utilities
386#
387# CONFIG_INIT is not set
388# CONFIG_FEATURE_USE_INITTAB is not set
389# CONFIG_FEATURE_KILL_REMOVED is not set
390CONFIG_FEATURE_KILL_DELAY=0
391# CONFIG_FEATURE_INIT_SCTTY is not set
392# CONFIG_FEATURE_INIT_SYSLOG is not set
393# CONFIG_FEATURE_EXTRA_QUIET is not set
394# CONFIG_FEATURE_INIT_COREDUMPS is not set
395# CONFIG_FEATURE_INITRD is not set
396CONFIG_HALT=y
397# CONFIG_FEATURE_CALL_TELINIT is not set
398CONFIG_TELINIT_PATH=""
399# CONFIG_MESG is not set
400
401#
402# Login/Password Management Utilities
403#
404# CONFIG_FEATURE_SHADOWPASSWDS is not set
405# CONFIG_USE_BB_PWD_GRP is not set
406# CONFIG_USE_BB_SHADOW is not set
407CONFIG_USE_BB_CRYPT=y
408# CONFIG_USE_BB_CRYPT_SHA is not set
409# CONFIG_ADDGROUP is not set
410# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
411# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
412# CONFIG_DELGROUP is not set
413# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
414# CONFIG_FEATURE_CHECK_NAMES is not set
415# CONFIG_ADDUSER is not set
416# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
417CONFIG_FIRST_SYSTEM_ID=0
418CONFIG_LAST_SYSTEM_ID=0
419# CONFIG_DELUSER is not set
420# CONFIG_GETTY is not set
421CONFIG_FEATURE_UTMP=y
422# CONFIG_FEATURE_WTMP is not set
423# CONFIG_LOGIN is not set
424# CONFIG_PAM is not set
425# CONFIG_LOGIN_SCRIPTS is not set
426# CONFIG_FEATURE_NOLOGIN is not set
427# CONFIG_FEATURE_SECURETTY is not set
428# CONFIG_PASSWD is not set
429# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
430# CONFIG_CRYPTPW is not set
431# CONFIG_CHPASSWD is not set
432# CONFIG_SU is not set
433# CONFIG_FEATURE_SU_SYSLOG is not set
434# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
435# CONFIG_SULOGIN is not set
436# CONFIG_VLOCK is not set
437
438#
439# Linux Ext2 FS Progs
440#
441CONFIG_CHATTR=y
442CONFIG_FSCK=y
443# CONFIG_LSATTR is not set
444
445#
446# Linux Module Utilities
447#
448# CONFIG_MODPROBE_SMALL is not set
449# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
450# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
451CONFIG_INSMOD=y
452CONFIG_RMMOD=y
453CONFIG_LSMOD=y
454# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
455CONFIG_MODPROBE=y
456# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
457# CONFIG_DEPMOD is not set
458
459#
460# Options common to multiple modutils
461#
462# CONFIG_FEATURE_2_4_MODULES is not set
463# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
464# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
465# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
466# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
467# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
468# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
469CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
470CONFIG_FEATURE_MODUTILS_ALIAS=y
471CONFIG_FEATURE_MODUTILS_SYMBOLS=y
472CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
473CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
474
475#
476# Linux System Utilities
477#
478# CONFIG_ACPID is not set
479# CONFIG_FEATURE_ACPID_COMPAT is not set
480# CONFIG_BLKID is not set
481CONFIG_DMESG=y
482CONFIG_FEATURE_DMESG_PRETTY=y
483CONFIG_FBSET=y
484CONFIG_FEATURE_FBSET_FANCY=y
485CONFIG_FEATURE_FBSET_READMODE=y
486# CONFIG_FDFLUSH is not set
487# CONFIG_FDFORMAT is not set
488CONFIG_FDISK=y
489CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
490CONFIG_FEATURE_FDISK_WRITABLE=y
491# CONFIG_FEATURE_AIX_LABEL is not set
492# CONFIG_FEATURE_SGI_LABEL is not set
493# CONFIG_FEATURE_SUN_LABEL is not set
494# CONFIG_FEATURE_OSF_LABEL is not set
495# CONFIG_FEATURE_FDISK_ADVANCED is not set
496# CONFIG_FINDFS is not set
497# CONFIG_FREERAMDISK is not set
498CONFIG_FSCK_MINIX=y
499# CONFIG_MKFS_EXT2 is not set
500CONFIG_MKFS_MINIX=y
501
502#
503# Minix filesystem support
504#
505CONFIG_FEATURE_MINIX2=y
506# CONFIG_MKFS_REISER is not set
507# CONFIG_MKFS_VFAT is not set
508# CONFIG_GETOPT is not set
509# CONFIG_FEATURE_GETOPT_LONG is not set
510CONFIG_HEXDUMP=y
511# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
512# CONFIG_HD is not set
513CONFIG_HWCLOCK=y
514CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
515CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
516# CONFIG_IPCRM is not set
517# CONFIG_IPCS is not set
518CONFIG_LOSETUP=y
519# CONFIG_LSPCI is not set
520# CONFIG_LSUSB is not set
521# CONFIG_MDEV is not set
522# CONFIG_FEATURE_MDEV_CONF is not set
523# CONFIG_FEATURE_MDEV_RENAME is not set
524# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
525# CONFIG_FEATURE_MDEV_EXEC is not set
526# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
527CONFIG_MKSWAP=y
528# CONFIG_FEATURE_MKSWAP_UUID is not set
529CONFIG_MORE=y
530CONFIG_FEATURE_USE_TERMIOS=y
531# CONFIG_VOLUMEID is not set
532# CONFIG_FEATURE_VOLUMEID_EXT is not set
533# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
534# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
535# CONFIG_FEATURE_VOLUMEID_FAT is not set
536# CONFIG_FEATURE_VOLUMEID_HFS is not set
537# CONFIG_FEATURE_VOLUMEID_JFS is not set
538# CONFIG_FEATURE_VOLUMEID_XFS is not set
539# CONFIG_FEATURE_VOLUMEID_NTFS is not set
540# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
541# CONFIG_FEATURE_VOLUMEID_UDF is not set
542# CONFIG_FEATURE_VOLUMEID_LUKS is not set
543# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
544# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
545# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
546# CONFIG_FEATURE_VOLUMEID_SYSV is not set
547# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
548# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
549CONFIG_MOUNT=y
550# CONFIG_FEATURE_MOUNT_FAKE is not set
551# CONFIG_FEATURE_MOUNT_VERBOSE is not set
552# CONFIG_FEATURE_MOUNT_HELPERS is not set
553# CONFIG_FEATURE_MOUNT_LABEL is not set
554CONFIG_FEATURE_MOUNT_NFS=y
555# CONFIG_FEATURE_MOUNT_CIFS is not set
556CONFIG_FEATURE_MOUNT_FLAGS=y
557CONFIG_FEATURE_MOUNT_FSTAB=y
558CONFIG_PIVOT_ROOT=y
559CONFIG_RDATE=y
560# CONFIG_RDEV is not set
561# CONFIG_READPROFILE is not set
562# CONFIG_RTCWAKE is not set
563# CONFIG_SCRIPT is not set
564# CONFIG_SCRIPTREPLAY is not set
565# CONFIG_SETARCH is not set
566CONFIG_SWAPONOFF=y
567# CONFIG_FEATURE_SWAPON_PRI is not set
568CONFIG_SWITCH_ROOT=y
569CONFIG_UMOUNT=y
570# CONFIG_FEATURE_UMOUNT_ALL is not set
571
572#
573# Common options for mount/umount
574#
575CONFIG_FEATURE_MOUNT_LOOP=y
576# CONFIG_FEATURE_MTAB_SUPPORT is not set
577
578#
579# Miscellaneous Utilities
580#
581# CONFIG_ADJTIMEX is not set
582# CONFIG_BBCONFIG is not set
583# CONFIG_BEEP is not set
584CONFIG_FEATURE_BEEP_FREQ=0
585CONFIG_FEATURE_BEEP_LENGTH_MS=0
586# CONFIG_CHAT is not set
587# CONFIG_FEATURE_CHAT_NOFAIL is not set
588# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
589# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
590# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
591# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
592# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
593# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
594# CONFIG_CHRT is not set
595# CONFIG_CROND is not set
596# CONFIG_FEATURE_CROND_D is not set
597# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
598CONFIG_FEATURE_CROND_DIR=""
599# CONFIG_CRONTAB is not set
600CONFIG_DC=y
601# CONFIG_FEATURE_DC_LIBM is not set
602# CONFIG_DEVFSD is not set
603# CONFIG_DEVFSD_MODLOAD is not set
604# CONFIG_DEVFSD_FG_NP is not set
605# CONFIG_DEVFSD_VERBOSE is not set
606# CONFIG_FEATURE_DEVFS is not set
607# CONFIG_DEVMEM is not set
608# CONFIG_EJECT is not set
609# CONFIG_FEATURE_EJECT_SCSI is not set
610# CONFIG_FBSPLASH is not set
611# CONFIG_FLASHCP is not set
612# CONFIG_FLASH_LOCK is not set
613# CONFIG_FLASH_UNLOCK is not set
614# CONFIG_FLASH_ERASEALL is not set
615# CONFIG_IONICE is not set
616# CONFIG_INOTIFYD is not set
617# CONFIG_LAST is not set
618# CONFIG_FEATURE_LAST_SMALL is not set
619# CONFIG_FEATURE_LAST_FANCY is not set
620CONFIG_LESS=y
621CONFIG_FEATURE_LESS_MAXLINES=9999999
622CONFIG_FEATURE_LESS_BRACKETS=y
623CONFIG_FEATURE_LESS_FLAGS=y
624# CONFIG_FEATURE_LESS_MARKS is not set
625# CONFIG_FEATURE_LESS_REGEXP is not set
626# CONFIG_FEATURE_LESS_WINCH is not set
627# CONFIG_FEATURE_LESS_DASHCMD is not set
628# CONFIG_FEATURE_LESS_LINENUMS is not set
629# CONFIG_HDPARM is not set
630# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
631# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
632# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
633# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
634# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
635# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
636# CONFIG_MAKEDEVS is not set
637# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
638# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
639# CONFIG_MAN is not set
640CONFIG_MICROCOM=y
641# CONFIG_MOUNTPOINT is not set
642# CONFIG_MT is not set
643# CONFIG_RAIDAUTORUN is not set
644# CONFIG_READAHEAD is not set
645# CONFIG_RUNLEVEL is not set
646# CONFIG_RX is not set
647# CONFIG_SETSID is not set
648CONFIG_STRINGS=y
649# CONFIG_TASKSET is not set
650# CONFIG_FEATURE_TASKSET_FANCY is not set
651CONFIG_TIME=y
652# CONFIG_TIMEOUT is not set
653# CONFIG_TTYSIZE is not set
654# CONFIG_VOLNAME is not set
655# CONFIG_WALL is not set
656# CONFIG_WATCHDOG is not set
657
658#
659# Networking Utilities
660#
661CONFIG_FEATURE_IPV6=y
662# CONFIG_FEATURE_UNIX_LOCAL is not set
663CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
664# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
665# CONFIG_ARP is not set
666# CONFIG_ARPING is not set
667# CONFIG_BRCTL is not set
668# CONFIG_FEATURE_BRCTL_FANCY is not set
669# CONFIG_FEATURE_BRCTL_SHOW is not set
670# CONFIG_DNSD is not set
671# CONFIG_ETHER_WAKE is not set
672# CONFIG_FAKEIDENTD is not set
673# CONFIG_FTPD is not set
674# CONFIG_FEATURE_FTP_WRITE is not set
675# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
676# CONFIG_FTPGET is not set
677# CONFIG_FTPPUT is not set
678# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
679CONFIG_HOSTNAME=y
680# CONFIG_HTTPD is not set
681# CONFIG_FEATURE_HTTPD_RANGES is not set
682# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
683# CONFIG_FEATURE_HTTPD_SETUID is not set
684# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
685# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
686# CONFIG_FEATURE_HTTPD_CGI is not set
687# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
688# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
689# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
690# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
691# CONFIG_FEATURE_HTTPD_PROXY is not set
692CONFIG_IFCONFIG=y
693CONFIG_FEATURE_IFCONFIG_STATUS=y
694# CONFIG_FEATURE_IFCONFIG_SLIP is not set
695# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
696CONFIG_FEATURE_IFCONFIG_HW=y
697# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
698# CONFIG_IFENSLAVE is not set
699# CONFIG_IFPLUGD is not set
700CONFIG_IFUPDOWN=y
701CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
702# CONFIG_FEATURE_IFUPDOWN_IP is not set
703# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
704CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
705CONFIG_FEATURE_IFUPDOWN_IPV4=y
706CONFIG_FEATURE_IFUPDOWN_IPV6=y
707CONFIG_FEATURE_IFUPDOWN_MAPPING=y
708# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
709# CONFIG_INETD is not set
710# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
711# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
712# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
713# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
714# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
715# CONFIG_FEATURE_INETD_RPC is not set
716CONFIG_IP=y
717CONFIG_FEATURE_IP_ADDRESS=y
718CONFIG_FEATURE_IP_LINK=y
719CONFIG_FEATURE_IP_ROUTE=y
720CONFIG_FEATURE_IP_TUNNEL=y
721# CONFIG_FEATURE_IP_RULE is not set
722# CONFIG_FEATURE_IP_SHORT_FORMS is not set
723# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
724# CONFIG_IPADDR is not set
725# CONFIG_IPLINK is not set
726# CONFIG_IPROUTE is not set
727# CONFIG_IPTUNNEL is not set
728# CONFIG_IPRULE is not set
729# CONFIG_IPCALC is not set
730# CONFIG_FEATURE_IPCALC_FANCY is not set
731# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
732# CONFIG_NAMEIF is not set
733# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
734CONFIG_NC=y
735# CONFIG_NC_SERVER is not set
736# CONFIG_NC_EXTRA is not set
737CONFIG_NETSTAT=y
738# CONFIG_FEATURE_NETSTAT_WIDE is not set
739# CONFIG_FEATURE_NETSTAT_PRG is not set
740CONFIG_NSLOOKUP=y
741# CONFIG_NTPD is not set
742# CONFIG_FEATURE_NTPD_SERVER is not set
743CONFIG_PING=y
744CONFIG_PING6=y
745CONFIG_FEATURE_FANCY_PING=y
746# CONFIG_PSCAN is not set
747CONFIG_ROUTE=y
748# CONFIG_SLATTACH is not set
749CONFIG_TELNET=y
750# CONFIG_FEATURE_TELNET_TTYPE is not set
751CONFIG_FEATURE_TELNET_AUTOLOGIN=y
752# CONFIG_TELNETD is not set
753# CONFIG_FEATURE_TELNETD_STANDALONE is not set
754# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
755CONFIG_TFTP=y
756# CONFIG_TFTPD is not set
757CONFIG_FEATURE_TFTP_GET=y
758CONFIG_FEATURE_TFTP_PUT=y
759# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
760# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
761# CONFIG_TFTP_DEBUG is not set
762CONFIG_TRACEROUTE=y
763# CONFIG_TRACEROUTE6 is not set
764# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
765# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
766# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
767CONFIG_UDHCPD=y
768# CONFIG_DHCPRELAY is not set
769CONFIG_DUMPLEASES=y
770# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
771CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
772CONFIG_UDHCPC=y
773CONFIG_FEATURE_UDHCPC_ARPING=y
774# CONFIG_FEATURE_UDHCP_PORT is not set
775CONFIG_UDHCP_DEBUG=0
776# CONFIG_FEATURE_UDHCP_RFC3397 is not set
777CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
778CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
779CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
780# CONFIG_VCONFIG is not set
781CONFIG_WGET=y
782CONFIG_FEATURE_WGET_STATUSBAR=y
783CONFIG_FEATURE_WGET_AUTHENTICATION=y
784CONFIG_FEATURE_WGET_LONG_OPTIONS=y
785# CONFIG_ZCIP is not set
786# CONFIG_TCPSVD is not set
787# CONFIG_TUNCTL is not set
788# CONFIG_FEATURE_TUNCTL_UG is not set
789# CONFIG_UDPSVD is not set
790
791#
792# Print Utilities
793#
794# CONFIG_LPD is not set
795# CONFIG_LPR is not set
796# CONFIG_LPQ is not set
797
798#
799# Mail Utilities
800#
801# CONFIG_MAKEMIME is not set
802CONFIG_FEATURE_MIME_CHARSET=""
803# CONFIG_POPMAILDIR is not set
804# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
805# CONFIG_REFORMIME is not set
806# CONFIG_FEATURE_REFORMIME_COMPAT is not set
807# CONFIG_SENDMAIL is not set
808
809#
810# Process Utilities
811#
812CONFIG_FREE=y
813CONFIG_FUSER=y
814CONFIG_KILL=y
815CONFIG_KILLALL=y
816# CONFIG_KILLALL5 is not set
817# CONFIG_NMETER is not set
818# CONFIG_PGREP is not set
819CONFIG_PIDOF=y
820# CONFIG_FEATURE_PIDOF_SINGLE is not set
821# CONFIG_FEATURE_PIDOF_OMIT is not set
822# CONFIG_PKILL is not set
823CONFIG_PS=y
824CONFIG_FEATURE_PS_WIDE=y
825# CONFIG_FEATURE_PS_TIME is not set
826# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
827# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
828CONFIG_RENICE=y
829CONFIG_BB_SYSCTL=y
830CONFIG_TOP=y
831CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
832CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
833# CONFIG_FEATURE_TOP_SMP_CPU is not set
834# CONFIG_FEATURE_TOP_DECIMALS is not set
835# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
836# CONFIG_FEATURE_TOPMEM is not set
837# CONFIG_FEATURE_SHOW_THREADS is not set
838CONFIG_UPTIME=y
839CONFIG_WATCH=y
840
841#
842# Runit Utilities
843#
844# CONFIG_RUNSV is not set
845# CONFIG_RUNSVDIR is not set
846# CONFIG_FEATURE_RUNSVDIR_LOG is not set
847# CONFIG_SV is not set
848CONFIG_SV_DEFAULT_SERVICE_DIR=""
849# CONFIG_SVLOGD is not set
850# CONFIG_CHPST is not set
851# CONFIG_SETUIDGID is not set
852# CONFIG_ENVUIDGID is not set
853# CONFIG_ENVDIR is not set
854# CONFIG_SOFTLIMIT is not set
855# CONFIG_CHCON is not set
856# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
857# CONFIG_GETENFORCE is not set
858# CONFIG_GETSEBOOL is not set
859# CONFIG_LOAD_POLICY is not set
860# CONFIG_MATCHPATHCON is not set
861# CONFIG_RESTORECON is not set
862# CONFIG_RUNCON is not set
863# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
864# CONFIG_SELINUXENABLED is not set
865# CONFIG_SETENFORCE is not set
866# CONFIG_SETFILES is not set
867# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
868# CONFIG_SETSEBOOL is not set
869# CONFIG_SESTATUS is not set
870
871#
872# Shells
873#
874CONFIG_FEATURE_SH_IS_ASH=y
875# CONFIG_FEATURE_SH_IS_HUSH is not set
876# CONFIG_FEATURE_SH_IS_NONE is not set
877CONFIG_ASH=y
878CONFIG_ASH_BASH_COMPAT=y
879CONFIG_ASH_JOB_CONTROL=y
880CONFIG_ASH_ALIAS=y
881CONFIG_ASH_GETOPTS=y
882CONFIG_ASH_BUILTIN_ECHO=y
883CONFIG_ASH_BUILTIN_PRINTF=y
884CONFIG_ASH_BUILTIN_TEST=y
885# CONFIG_ASH_CMDCMD is not set
886# CONFIG_ASH_MAIL is not set
887CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
888# CONFIG_ASH_RANDOM_SUPPORT is not set
889CONFIG_ASH_EXPAND_PRMT=y
890# CONFIG_HUSH is not set
891# CONFIG_HUSH_BASH_COMPAT is not set
892# CONFIG_HUSH_HELP is not set
893# CONFIG_HUSH_INTERACTIVE is not set
894# CONFIG_HUSH_JOB is not set
895# CONFIG_HUSH_TICK is not set
896# CONFIG_HUSH_IF is not set
897# CONFIG_HUSH_LOOPS is not set
898# CONFIG_HUSH_CASE is not set
899# CONFIG_HUSH_FUNCTIONS is not set
900# CONFIG_HUSH_LOCAL is not set
901# CONFIG_HUSH_EXPORT_N is not set
902# CONFIG_HUSH_RANDOM_SUPPORT is not set
903# CONFIG_LASH is not set
904# CONFIG_MSH is not set
905CONFIG_SH_MATH_SUPPORT=y
906# CONFIG_SH_MATH_SUPPORT_64 is not set
907CONFIG_FEATURE_SH_EXTRA_QUIET=y
908# CONFIG_FEATURE_SH_STANDALONE is not set
909# CONFIG_FEATURE_SH_NOFORK is not set
910# CONFIG_CTTYHACK is not set
911
912#
913# System Logging Utilities
914#
915CONFIG_SYSLOGD=y
916CONFIG_FEATURE_ROTATE_LOGFILE=y
917CONFIG_FEATURE_REMOTE_LOG=y
918# CONFIG_FEATURE_SYSLOGD_DUP is not set
919CONFIG_FEATURE_IPC_SYSLOG=y
920CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
921CONFIG_LOGREAD=y
922CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
923CONFIG_KLOGD=y
924CONFIG_LOGGER=y
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/get_header_tar.patch b/meta/recipes-core/busybox/busybox-1.16.2/get_header_tar.patch
new file mode 100644
index 0000000000..bc9b427ea9
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/get_header_tar.patch
@@ -0,0 +1,20 @@
1# copy commit message from OE as the patch comment:
2# commit 5a0e1d473ca7aca5ffefffe9a2ec44ae7a1f35bc
3# Author: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
4# Date: Wed Feb 11 22:40:21 2009 +0100
5#
6# busybox: fix tar problem with filenames that are exactly 100 bytes
7#
8# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
9
10--- busybox-1.13.2/archival/libunarchive/get_header_tar.c.orig 2008-11-09 18:28:02.000000000 +0100
11+++ busybox-1.13.2/archival/libunarchive/get_header_tar.c 2009-02-11 22:34:52.000000000 +0100
12@@ -252,6 +252,8 @@
13 file_header->name = concat_path_file(tar.prefix, tar.name);
14 } else
15 file_header->name = xstrdup(tar.name);
16+ if (strlen(file_header->name) > 100)
17+ file_header->name[100] = 0;
18 }
19
20 /* Set bits 12-15 of the files mode */
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/run-parts.in.usr-bin.patch b/meta/recipes-core/busybox/busybox-1.16.2/run-parts.in.usr-bin.patch
new file mode 100644
index 0000000000..bedb974432
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/run-parts.in.usr-bin.patch
@@ -0,0 +1,27 @@
1# copy commit message from OE as the patch comment:
2# commit f1b326c83be0d95571b991d8d2ee239982380b6b
3# Author: Martin Jansa <Martin.Jansa@gmail.com>
4# Date: Fri Apr 30 15:37:38 2010 +0200
5#
6# busybox: add patch for installing run-parts to /usr/bin/ instead of /bin
7#
8# * otherwise debianutils install will fail with
9# update-alternatives: Error: cannot register alternative run-parts to /usr/bin/run-parts since it is
10#
11# Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12#
13# Poky doesn't have debianutils, but let's keep it for safety
14# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
15
16diff -uNr busybox-1.15.3.orig//include/applets.h busybox-1.15.3/include/applets.h
17--- busybox-1.15.3.orig//include/applets.h 2009-12-12 22:13:28.000000000 +0100
18+++ busybox-1.15.3/include/applets.h 2010-04-30 15:35:40.000000000 +0200
19@@ -323,7 +323,7 @@
20 IF_RPM(APPLET(rpm, _BB_DIR_BIN, _BB_SUID_DROP))
21 IF_RPM2CPIO(APPLET(rpm2cpio, _BB_DIR_USR_BIN, _BB_SUID_DROP))
22 IF_RTCWAKE(APPLET(rtcwake, _BB_DIR_USR_BIN, _BB_SUID_DROP))
23-IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, _BB_DIR_BIN, _BB_SUID_DROP, run_parts))
24+IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, _BB_DIR_USR_BIN, _BB_SUID_DROP, run_parts))
25 IF_RUNCON(APPLET(runcon, _BB_DIR_USR_BIN, _BB_SUID_DROP))
26 IF_RUNLEVEL(APPLET(runlevel, _BB_DIR_SBIN, _BB_SUID_DROP))
27 IF_RUNSV(APPLET(runsv, _BB_DIR_USR_BIN, _BB_SUID_DROP))
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch b/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch
new file mode 100644
index 0000000000..89eeb425ad
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch
@@ -0,0 +1,54 @@
1# copy commit message from OE as the patch comment:
2# commit ec4da6df3ad5b8b03446d0dda9c50a2439ae325a
3# Author: Denys Dmytriyenko <denis@denix.org>
4# Date: Wed Feb 4 11:43:18 2009 -0500
5#
6# busybox: fix nfsroot issues with resetting IP and deleting routes
7#
8# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
9Index: busybox-1.15.3/examples/udhcp/simple.script
10===================================================================
11--- busybox-1.15.3.orig/examples/udhcp/simple.script 2010-06-27 12:17:14.116876946 +0200
12+++ busybox-1.15.3/examples/udhcp/simple.script 2010-06-27 12:18:38.607868533 +0200
13@@ -10,10 +10,17 @@
14 BROADCAST="broadcast +"
15 [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
16
17+# return 0 if root is mounted on a network filesystem
18+root_is_nfs() {
19+ grep -qe '^/dev/root.*\(nfs\|smbfs\|ncp\|coda\) .*' /proc/mounts
20+}
21+
22 case "$1" in
23 deconfig)
24+ if ! root_is_nfs ; then
25 echo "Setting IP address 0.0.0.0 on $interface"
26- ifconfig $interface 0.0.0.0
27+ ifconfig $interface 0.0.0.0
28+ fi
29 ;;
30
31 renew|bound)
32@@ -21,15 +28,17 @@
33 ifconfig $interface $ip $NETMASK $BROADCAST
34
35 if [ -n "$router" ] ; then
36- echo "Deleting routers"
37- while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
38- :
39- done
40+ if ! root_is_nfs ; then
41+ echo "Deleting routers"
42+ while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
43+ :
44+ done
45+ fi
46
47 metric=0
48 for i in $router ; do
49 echo "Adding router $i"
50- route add default gw $i dev $interface metric $((metric++))
51+ route add default gw $i dev $interface metric $((metric++)) 2>/dev/null
52 done
53 fi
54
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/udhcpscript.patch b/meta/recipes-core/busybox/busybox-1.16.2/udhcpscript.patch
new file mode 100644
index 0000000000..81bca634af
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/udhcpscript.patch
@@ -0,0 +1,22 @@
1# copy commit message from OE as the patch comment
2# commit c9bb6478a873d6de4c8a0e712435ac9a658a345d
3# Author: Holger Schurig <schurig@mn-solutions.de>
4# Date: Wed Sep 29 08:29:58 2004 +0000
5#
6# udhcpscript: fixes the "deleting routers" error message in case of no existing default routes
7#
8# Above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
9
10Index: busybox-1.15.1/examples/udhcp/simple.script
11===================================================================
12--- busybox-1.15.1.orig/examples/udhcp/simple.script 2009-09-12 17:55:36.000000000 +0200
13+++ busybox-1.15.1/examples/udhcp/simple.script 2009-09-16 22:51:06.599693412 +0200
14@@ -22,7 +22,7 @@ case "$1" in
15
16 if [ -n "$router" ] ; then
17 echo "Deleting routers"
18- while route del default gw 0.0.0.0 dev $interface ; do
19+ while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
20 :
21 done
22
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
new file mode 100644
index 0000000000..8c258135c8
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -0,0 +1,140 @@
1DESCRIPTION = "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system."
2HOMEPAGE = "http://www.busybox.net"
3BUGTRACKER = "https://bugs.busybox.net/"
4# bzip2 applet in busybox is based on lightly-modified bzip2 source
5LICENSE = "GPLv2+ & bzip2"
6SECTION = "base"
7PRIORITY = "required"
8
9export EXTRA_CFLAGS = "${CFLAGS}"
10PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
11
12FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
13FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
14
15FILES_${PN} += "${datadir}/udhcpc"
16
17INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"
18INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
19INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd"
20INITSCRIPT_NAME_${PN} = "syslog"
21CONFFILES_${PN} = "${sysconfdir}/syslog.conf"
22
23# This disables the syslog startup links in slugos (see slugos-init)
24INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
25
26inherit cml1 update-rc.d
27
28do_configure () {
29 install -m 0644 ${WORKDIR}/defconfig ${S}/.config
30 cml1_do_configure
31}
32
33do_compile() {
34 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
35 base_do_compile
36}
37
38do_install () {
39 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
40 install -d ${D}${sysconfdir}/init.d
41 oe_runmake "PREFIX=${D}" install
42 cp -pPR ${S}/_install/* ${D}/
43
44 # Move everything to /busybox (not supposed to end up in any package)
45 install -d ${D}/busybox
46 ls ${D} -R
47
48 cp -dPr ${D}${base_bindir} ${D}${base_sbindir} ${D}${prefix} ${D}/busybox/
49 # Move the busybox binary back to /bin
50 install -d ${D}${base_bindir}
51 mv ${D}/busybox${base_bindir}/busybox ${D}${base_bindir}/
52 # Move back the sh symlink
53 test -h ${D}/busybox${base_bindir}/sh && mv ${D}/busybox${base_bindir}/sh ${D}${base_bindir}/
54
55 install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/
56 install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/
57 if grep "CONFIG_CROND=y" ${WORKDIR}/defconfig; then
58 # Move crond back to /usr/sbin/crond
59 install -d ${D}${sbindir}
60 mv ${D}/busybox${sbindir}/crond ${D}${sbindir}/
61
62 install -m 0755 ${WORKDIR}/busybox-cron ${D}${sysconfdir}/init.d/
63 fi
64 if grep "CONFIG_HTTPD=y" ${WORKDIR}/defconfig; then
65 # Move httpd back to /usr/sbin/httpd
66 install -d ${D}${sbindir}
67 mv ${D}/busybox${sbindir}/httpd ${D}${sbindir}/
68
69 install -m 0755 ${WORKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/
70 install -d ${D}/srv/www
71 fi
72 if grep "CONFIG_UDHCPD=y" ${WORKDIR}/defconfig; then
73 # Move udhcpd back to /usr/sbin/udhcpd
74 install -d ${D}${sbindir}
75 mv ${D}/busybox${sbindir}/udhcpd ${D}${sbindir}/
76
77 install -m 0755 ${WORKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/
78 fi
79 if grep "CONFIG_HWCLOCK=y" ${WORKDIR}/defconfig; then
80 # Move hwclock back to /sbin/hwclock
81 install -d ${D}${base_sbindir}
82 mv ${D}/busybox${base_sbindir}/hwclock ${D}${base_sbindir}/
83
84 install -m 0755 ${WORKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/
85 fi
86 if grep "CONFIG_UDHCPC=y" ${WORKDIR}/defconfig; then
87 # Move dhcpc back to /usr/sbin/udhcpc
88 install -d ${D}${base_sbindir}
89 mv ${D}/busybox${base_sbindir}/udhcpc ${D}${base_sbindir}/
90
91 install -d ${D}${sysconfdir}/udhcpc.d
92 install -d ${D}${datadir}/udhcpc
93 install -m 0755 ${S}/examples/udhcp/simple.script ${D}${sysconfdir}/udhcpc.d/50default
94 install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script
95 fi
96
97 install -m 0644 ${S}/busybox.links ${D}${sysconfdir}
98}
99
100pkg_postinst_${PN} () {
101 # If we are not making an image we create links for the utilities that doesn't exist
102 # so the update-alternatives script will get the utilities it needs
103 # (update-alternatives have no problem replacing links later anyway)
104 test -n 2> /dev/null || alias test='busybox test'
105 if test "x$D" = "x"; then while read link; do if test ! -h "$link"; then case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; busybox ln -s $to $link; fi; done </etc/busybox.links; fi
106
107 # This adds the links, remember that this has to work when building an image too, hence the $D
108 while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=`basename $link`; update-alternatives --install $link $bn $to 50; done <$D/etc/busybox.links
109}
110
111pkg_prerm_${PN} () {
112 # This is so you can make busybox commit suicide - removing busybox with no other packages
113 # providing its files, this will make update-alternatives work, but the update-rc.d part
114 # for syslog, httpd and/or udhcpd will fail if there is no other package providing sh
115 tmpdir=`mktemp -d /tmp/busyboxrm-XXXXXX`
116 ln -s /bin/busybox $tmpdir/[
117 ln -s /bin/busybox $tmpdir/test
118 ln -s /bin/busybox $tmpdir/head
119 ln -s /bin/busybox $tmpdir/sh
120 ln -s /bin/busybox $tmpdir/basename
121 ln -s /bin/busybox $tmpdir/echo
122 ln -s /bin/busybox $tmpdir/mv
123 ln -s /bin/busybox $tmpdir/ln
124 ln -s /bin/busybox $tmpdir/dirname
125 ln -s /bin/busybox $tmpdir/rm
126 ln -s /bin/busybox $tmpdir/sed
127 ln -s /bin/busybox $tmpdir/sort
128 export PATH=$PATH:$tmpdir
129
130 while read link
131 do
132 case "$link" in
133 /*/*/*) to="../../bin/busybox";;
134 /bin/*) to="busybox";;
135 /*/*) to="../bin/busybox";;
136 esac
137 bn=`basename $link`
138 sh /usr/bin/update-alternatives --remove $bn $to
139 done </etc/busybox.links
140}
diff --git a/meta/recipes-core/busybox/busybox_1.16.2.bb b/meta/recipes-core/busybox/busybox_1.16.2.bb
new file mode 100644
index 0000000000..0952f4ddb0
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox_1.16.2.bb
@@ -0,0 +1,24 @@
1require busybox.inc
2PR = "r0"
3
4SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
5 file://udhcpscript.patch \
6 file://udhcpc-fix-nfsroot.patch \
7 file://B921600.patch \
8 file://get_header_tar.patch \
9 file://busybox-appletlib-dependency.patch \
10 file://run-parts.in.usr-bin.patch \
11 file://find-touchscreen.sh \
12 file://busybox-cron \
13 file://busybox-httpd \
14 file://busybox-udhcpd \
15 file://default.script \
16 file://simple.script \
17 file://hwclock.sh \
18 file://mount.busybox \
19 file://syslog \
20 file://syslog.conf \
21 file://umount.busybox \
22 file://defconfig"
23
24EXTRA_OEMAKE += "V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX}"
diff --git a/meta/recipes-core/busybox/files/busybox-cron b/meta/recipes-core/busybox/files/busybox-cron
new file mode 100755
index 0000000000..f0e6b15629
--- /dev/null
+++ b/meta/recipes-core/busybox/files/busybox-cron
@@ -0,0 +1,39 @@
1#!/bin/sh
2DAEMON=/usr/sbin/crond
3NAME=crond
4DESC="Busybox Periodic Command Scheduler"
5ARGS="-c /etc/cron/crontabs"
6
7test -f $DAEMON || exit 0
8
9set -e
10
11case "$1" in
12 start)
13 echo -n "starting $DESC: $NAME... "
14 start-stop-daemon -S -b -n $NAME -a $DAEMON -- $ARGS
15 echo "done."
16 ;;
17 stop)
18 echo -n "stopping $DESC: $NAME... "
19 start-stop-daemon -K -n $NAME
20 echo "done."
21 ;;
22 restart)
23 echo -n "restarting $DESC: $NAME... "
24 $0 stop
25 $0 start
26 echo "done."
27 ;;
28 reload)
29 echo -n "reloading $DESC: $NAME... "
30 killall -HUP $(basename ${DAEMON})
31 echo "done."
32 ;;
33 *)
34 echo "Usage: $0 {start|stop|restart|reload}"
35 exit 1
36 ;;
37esac
38
39exit 0
diff --git a/meta/recipes-core/busybox/files/busybox-httpd b/meta/recipes-core/busybox/files/busybox-httpd
new file mode 100755
index 0000000000..c8348e54a7
--- /dev/null
+++ b/meta/recipes-core/busybox/files/busybox-httpd
@@ -0,0 +1,44 @@
1#!/bin/sh
2DAEMON=/usr/sbin/httpd
3NAME=httpd
4DESC="Busybox HTTP Daemon"
5HTTPROOT="/srv/www"
6ARGS="-h $HTTPROOT"
7
8test -f $DAEMON || exit 0
9
10set -e
11
12case "$1" in
13 start)
14 echo -n "starting $DESC: $NAME... "
15 if [ ! -d $HTTPROOT ]; then
16 echo "$HTTPROOT is missing."
17 exit 1
18 fi
19 start-stop-daemon -S -b -n $NAME -a $DAEMON -- $ARGS
20 echo "done."
21 ;;
22 stop)
23 echo -n "stopping $DESC: $NAME... "
24 start-stop-daemon -K -n $NAME
25 echo "done."
26 ;;
27 restart)
28 echo "restarting $DESC: $NAME... "
29 $0 stop
30 $0 start
31 echo "done."
32 ;;
33 reload)
34 echo -n "reloading $DESC: $NAME... "
35 killall -HUP $(basename ${DAEMON})
36 echo "done."
37 ;;
38 *)
39 echo "Usage: $0 {start|stop|restart|reload}"
40 exit 1
41 ;;
42esac
43
44exit 0
diff --git a/meta/recipes-core/busybox/files/busybox-udhcpd b/meta/recipes-core/busybox/files/busybox-udhcpd
new file mode 100755
index 0000000000..c43903e8dc
--- /dev/null
+++ b/meta/recipes-core/busybox/files/busybox-udhcpd
@@ -0,0 +1,43 @@
1#!/bin/sh
2DAEMON=/usr/sbin/udhcpd
3NAME=udhcpd
4DESC="Busybox UDHCP Server"
5ARGS="/etc/udhcpd.conf"
6
7test -f $DAEMON || exit 1
8
9set -e
10
11case "$1" in
12 start)
13 echo -n "starting $DESC: $NAME... "
14 if [ ! -f /etc/udhcpd.conf ]; then
15 echo "error: /etc/udhcpd.conf is missing."
16 exit 1
17 fi
18 /sbin/start-stop-daemon -S -b -n $NAME -a $DAEMON -- $ARGS
19 echo "done."
20 ;;
21 stop)
22 echo -n "stopping $DESC: $NAME... "
23 /sbin/start-stop-daemon -K -n $NAME
24 echo "done."
25 ;;
26 restart)
27 echo "restarting $DESC: $NAME... "
28 $0 stop
29 $0 start
30 echo "done."
31 ;;
32 reload)
33 echo -n "reloading $DESC: $NAME... "
34 killall -HUP $(basename ${DAEMON})
35 echo "done."
36 ;;
37 *)
38 echo "Usage: $0 {start|stop|restart|reload}"
39 exit 1
40 ;;
41esac
42
43exit 0
diff --git a/meta/recipes-core/busybox/files/default.script b/meta/recipes-core/busybox/files/default.script
new file mode 100644
index 0000000000..f2ac987a27
--- /dev/null
+++ b/meta/recipes-core/busybox/files/default.script
@@ -0,0 +1,4 @@
1#!/bin/sh
2
3exec run-parts -a "$1" /etc/udhcpc.d
4
diff --git a/meta/recipes-core/busybox/files/find-touchscreen.sh b/meta/recipes-core/busybox/files/find-touchscreen.sh
new file mode 100644
index 0000000000..1582ea891c
--- /dev/null
+++ b/meta/recipes-core/busybox/files/find-touchscreen.sh
@@ -0,0 +1,9 @@
1#!/bin/sh
2
3if [ `egrep "input:.*-e0.*,3,.*a0,1,.*18,.*" /sys/class/input/$MDEV/device/modalias|wc -l` -gt 0 ]; then
4 ln -sf /dev/input/$MDEV /dev/input/touchscreen0
5fi
6
7if [ `egrep "ads7846" /sys/class/input/$MDEV/device/modalias|wc -l` -gt 0 ]; then
8 ln -sf /dev/input/$MDEV /dev/input/touchscreen0
9fi
diff --git a/meta/recipes-core/busybox/files/hwclock.sh b/meta/recipes-core/busybox/files/hwclock.sh
new file mode 100644
index 0000000000..2e50425ba8
--- /dev/null
+++ b/meta/recipes-core/busybox/files/hwclock.sh
@@ -0,0 +1,82 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: hwclock
4# Required-Start:
5# Required-Stop: $local_fs
6# Default-Start: S
7# Default-Stop: 0 6
8# Short-Description: Set system clock
9# Description: Set system clock to hardware clock, according to the UTC
10# setting in /etc/default/rcS (see also rcS(5)).
11### END INIT INFO
12#
13# WARNING: If your hardware clock is not in UTC/GMT, this script
14# must know the local time zone. This information is
15# stored in /etc/localtime. This might be a problem if
16# your /etc/localtime is a symlink to something in
17# /usr/share/zoneinfo AND /usr isn't in the root
18# partition! The workaround is to define TZ either
19# in /etc/default/rcS, or in the proper place below.
20
21[ ! -x /sbin/hwclock ] && exit 0
22
23. /etc/default/rcS
24
25case "$1" in
26 start)
27 if [ "$VERBOSE" != no ]
28 then
29 echo "System time was `date`."
30 echo "Setting the System Clock using the Hardware Clock as reference..."
31 fi
32
33 if [ "$HWCLOCKACCESS" != no ]
34 then
35 if [ -z "$TZ" ]
36 then
37 hwclock --hctosys
38 else
39 TZ="$TZ" hwclock --hctosys
40 fi
41 fi
42
43 if [ "$VERBOSE" != no ]
44 then
45 echo "System Clock set. System local time is now `date`."
46 fi
47 ;;
48 stop|restart|reload|force-reload)
49 #
50 # Updates the Hardware Clock with the System Clock time.
51 # This will *override* any changes made to the Hardware Clock.
52 #
53 # WARNING: If you disable this, any changes to the system
54 # clock will not be carried across reboots.
55 #
56 if [ "$VERBOSE" != no ]
57 then
58 echo "Saving the System Clock time to the Hardware Clock..."
59 fi
60 if [ "$HWCLOCKACCESS" != no ]
61 then
62 hwclock --systohc
63 fi
64 if [ "$VERBOSE" != no ]
65 then
66 echo "Hardware Clock updated to `date`."
67 fi
68 exit 0
69 ;;
70 show)
71 if [ "$HWCLOCKACCESS" != no ]
72 then
73 hwclock --show
74 fi
75 ;;
76 *)
77 echo "Usage: hwclock.sh {start|stop|show|reload|restart}" >&2
78 echo " start sets kernel (system) clock from hardware (RTC) clock" >&2
79 echo " stop and reload set hardware (RTC) clock from kernel (system) clock" >&2
80 exit 1
81 ;;
82esac
diff --git a/meta/recipes-core/busybox/files/mount.busybox b/meta/recipes-core/busybox/files/mount.busybox
new file mode 100755
index 0000000000..fef945b7b2
--- /dev/null
+++ b/meta/recipes-core/busybox/files/mount.busybox
@@ -0,0 +1,3 @@
1#!/bin/sh
2
3exec /bin/busybox mount $@
diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script
new file mode 100644
index 0000000000..5cc21b9de2
--- /dev/null
+++ b/meta/recipes-core/busybox/files/simple.script
@@ -0,0 +1,72 @@
1#!/bin/sh
2
3# udhcpc script edited by Tim Riker <Tim@Rikers.org>
4
5[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
6
7RESOLV_CONF="/etc/resolv.conf"
8[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
9[ -n "$subnet" ] && NETMASK="netmask $subnet"
10
11# return 0 if root is mounted on a network filesystem
12root_is_nfs() {
13 grep -qe '^/dev/root.*\(nfs\|smbfs\|ncp\|coda\) .*' /proc/mounts
14}
15
16have_bin_ip=0
17if [ -x /bin/ip ]; then
18 have_bin_ip=1
19fi
20
21case "$1" in
22 deconfig)
23 if ! root_is_nfs ; then
24 if [ $have_bin_ip -eq 1 ]; then
25 ip addr flush dev $interface
26 ip link set dev $interface up
27 else
28 /sbin/ifconfig $interface 0.0.0.0
29 fi
30 fi
31 ;;
32
33 renew|bound)
34 if [ $have_bin_ip -eq 1 ]; then
35 ip addr add dev $interface local $ip/$mask $BROADCAST
36 else
37 /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
38 fi
39
40 if [ -n "$router" ] ; then
41 if ! root_is_nfs ; then
42 if [ $have_bin_ip -eq 1 ]; then
43 while ip route del default 2>/dev/null ; do
44 :
45 done
46 else
47 while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
48 :
49 done
50 fi
51 fi
52
53 metric=0
54 for i in $router ; do
55 if [ $have_bin_ip -eq 1 ]; then
56 ip route add default via $i metric $((metric++))
57 else
58 route add default gw $i dev $interface metric $((metric++)) 2>/dev/null
59 fi
60 done
61 fi
62
63 echo -n > $RESOLV_CONF
64 [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
65 for i in $dns ; do
66 echo adding dns $i
67 echo nameserver $i >> $RESOLV_CONF
68 done
69 ;;
70esac
71
72exit 0
diff --git a/meta/recipes-core/busybox/files/syslog b/meta/recipes-core/busybox/files/syslog
new file mode 100644
index 0000000000..9edaa15053
--- /dev/null
+++ b/meta/recipes-core/busybox/files/syslog
@@ -0,0 +1,74 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: sysklogd
4# Required-Start: $remote_fs $time
5# Required-Stop: $remote_fs $time
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: System logger
9### END INIT INFO
10
11set -e
12
13if [ -f /etc/syslog.conf ]; then
14 . /etc/syslog.conf
15 LOG_LOCAL=0
16 LOG_REMOTE=0
17 for D in $DESTINATION; do
18 if [ "$D" = "buffer" ]; then
19 SYSLOG_ARGS="$SYSLOG_ARGS -C$BUFFERSIZE"
20 LOG_LOCAL=1
21 elif [ "$D" = "file" ]; then
22 if [ -n "$LOGFILE" ]; then
23 SYSLOG_ARGS="$SYSLOG_ARGS -O $LOGFILE"
24 fi
25 if [ -n "$ROTATESIZE" ]; then
26 SYSLOG_ARGS="$SYSLOG_ARGS -s $ROTATESIZE"
27 fi
28 if [ -n "$ROTATEGENS" ]; then
29 SYSLOG_ARGS="$SYSLOG_ARGS -b $ROTATEGENS"
30 fi
31 LOCAL=0
32 elif [ "$D" = "remote" ]; then
33 SYSLOG_ARGS="$SYSLOG_ARGS -R $REMOTE"
34 LOG_REMOTE=1
35 fi
36 done
37 if [ "$LOG_LOCAL" = "1" -a "$LOG_REMOTE" = "1" ]; then
38 SYSLOG_ARGS="$SYSLOG_ARGS -L"
39 fi
40 if [ -n "$MARKINT" ]; then
41 SYSLOG_ARGS="$SYSLOG_ARGS -m $MARKINT"
42 fi
43 if [ "$REDUCE" = "yes" ]; then
44 SYSLOG_ARGS="$SYSLOG_ARGS -S"
45 fi
46else
47 # default: log to 16K shm circular buffer
48 SYSLOG_ARGS="-C"
49fi
50
51case "$1" in
52 start)
53 echo -n "Starting syslogd/klogd: "
54 start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS
55 start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n
56 echo "done"
57 ;;
58 stop)
59 echo -n "Stopping syslogd/klogd: "
60 start-stop-daemon -K -n syslogd
61 start-stop-daemon -K -n klogd
62 echo "done"
63 ;;
64 restart)
65 $0 stop
66 $0 start
67 ;;
68 *)
69 echo "Usage: syslog { start | stop | restart }" >&2
70 exit 1
71 ;;
72esac
73
74exit 0
diff --git a/meta/recipes-core/busybox/files/syslog.conf b/meta/recipes-core/busybox/files/syslog.conf
new file mode 100644
index 0000000000..d4a0e02f5b
--- /dev/null
+++ b/meta/recipes-core/busybox/files/syslog.conf
@@ -0,0 +1,9 @@
1DESTINATION="buffer" # log destinations (buffer file remote)
2MARKINT=20 # intervall between --mark-- entries
3LOGFILE=/var/log/messages # where to log (file)
4REMOTE=loghost:514 # where to log (syslog remote)
5REDUCE=no # reduce-size logging
6#ROTATESIZE=0 # rotate log if grown beyond X [kByte] (incompatible with busybox)
7#ROTATEGENS=3 # keep X generations of rotated logs (incompatible with busybox)
8BUFFERSIZE=64 # size of circular buffer [kByte]
9FOREGROUND=no # run in foreground (don't use!)
diff --git a/meta/recipes-core/busybox/files/umount.busybox b/meta/recipes-core/busybox/files/umount.busybox
new file mode 100755
index 0000000000..f3731626e6
--- /dev/null
+++ b/meta/recipes-core/busybox/files/umount.busybox
@@ -0,0 +1,3 @@
1#!/bin/sh
2
3exec /bin/busybox umount $@
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch
new file mode 100644
index 0000000000..f6bd91e3e0
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch
@@ -0,0 +1,16 @@
1
2#
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
4#
5
6--- console-tools-0.3.2/contrib/codepage.c~codepage
7+++ console-tools-0.3.2/contrib/codepage.c
8@@ -229,7 +229,7 @@
9 return 0;
10
11 fprintf(stderr, "\
12-Warning: CP format is a hack!\n
13+Warning: CP format is a hack!\n\
14 The files produced may or may not be usable!\n");
15
16 sprintf(outfile, "%d.cp", CPEntryHeader.codepage);
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch
new file mode 100644
index 0000000000..29012fe884
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch
@@ -0,0 +1,10 @@
1--- console-tools-0.3.2/kbdtools/showkey.c~compile 1999-08-25 17:20:08.000000000 -0400
2+++ console-tools-0.3.2/kbdtools/showkey.c 2004-05-09 03:03:23.000000000 -0400
3@@ -264,7 +264,6 @@
4 break;
5 case cmd_keymap:
6 printf(")\n");
7- default:
8 }
9 }
10
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/codeset.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/codeset.m4
new file mode 100644
index 0000000000..863c9cfa7e
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/codeset.m4
@@ -0,0 +1,17 @@
1#serial AM1
2
3dnl From Bruno Haible.
4
5AC_DEFUN([AM_LANGINFO_CODESET],
6[
7 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
8 [AC_TRY_LINK([#include <langinfo.h>],
9 [char* cs = nl_langinfo(CODESET);],
10 am_cv_langinfo_codeset=yes,
11 am_cv_langinfo_codeset=no)
12 ])
13 if test $am_cv_langinfo_codeset = yes; then
14 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
15 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
16 fi
17])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/gettext.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/gettext.m4
new file mode 100644
index 0000000000..e4d524cf0f
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/gettext.m4
@@ -0,0 +1,370 @@
1# Macro to add for using GNU gettext.
2# Ulrich Drepper <drepper@cygnus.com>, 1995.
3#
4# This file can be copied and used freely without restrictions. It can
5# be used in projects which are not available under the GNU General Public
6# License or the GNU Library General Public License but which still want
7# to provide support for the GNU gettext functionality.
8# Please note that the actual code of the GNU gettext library is covered
9# by the GNU Library General Public License, and the rest of the GNU
10# gettext package package is covered by the GNU General Public License.
11# They are *not* in the public domain.
12
13# serial 10
14
15dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
16dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
17dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
18dnl depending on --{enable,disable}-{shared,static} and on the presence of
19dnl AM-DISABLE-SHARED). Otherwise, a static library
20dnl $(top_builddir)/intl/libintl.a will be created.
21dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
22dnl implementations (in libc or libintl) without the ngettext() function
23dnl will be ignored.
24dnl LIBDIR is used to find the intl libraries. If empty,
25dnl the value `$(top_builddir)/intl/' is used.
26dnl
27dnl The result of the configuration is one of three cases:
28dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
29dnl and used.
30dnl Catalog format: GNU --> install in $(datadir)
31dnl Catalog extension: .mo after installation, .gmo in source tree
32dnl 2) GNU gettext has been found in the system's C library.
33dnl Catalog format: GNU --> install in $(datadir)
34dnl Catalog extension: .mo after installation, .gmo in source tree
35dnl 3) No internationalization, always use English msgid.
36dnl Catalog format: none
37dnl Catalog extension: none
38dnl The use of .gmo is historical (it was needed to avoid overwriting the
39dnl GNU format catalogs when building on a platform with an X/Open gettext),
40dnl but we keep it in order not to force irrelevant filename changes on the
41dnl maintainers.
42dnl
43AC_DEFUN([AM_WITH_NLS],
44 [AC_MSG_CHECKING([whether NLS is requested])
45 dnl Default is enabled NLS
46 AC_ARG_ENABLE(nls,
47 [ --disable-nls do not use Native Language Support],
48 USE_NLS=$enableval, USE_NLS=yes)
49 AC_MSG_RESULT($USE_NLS)
50 AC_SUBST(USE_NLS)
51
52 BUILD_INCLUDED_LIBINTL=no
53 USE_INCLUDED_LIBINTL=no
54 INTLLIBS=
55
56 dnl If we use NLS figure out what method
57 if test "$USE_NLS" = "yes"; then
58 AC_DEFINE(ENABLE_NLS, 1,
59 [Define to 1 if translation of program messages to the user's native language
60 is requested.])
61 AC_MSG_CHECKING([whether included gettext is requested])
62 AC_ARG_WITH(included-gettext,
63 [ --with-included-gettext use the GNU gettext library included here],
64 nls_cv_force_use_gnu_gettext=$withval,
65 nls_cv_force_use_gnu_gettext=no)
66 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
67
68 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
69 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
70 dnl User does not insist on using GNU NLS library. Figure out what
71 dnl to use. If GNU gettext is available we use this. Else we have
72 dnl to fall back to GNU NLS library.
73 CATOBJEXT=NONE
74
75 dnl Add a version number to the cache macros.
76 define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
77 define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
78
79 AC_CHECK_HEADER(libintl.h,
80 [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
81 [AC_TRY_LINK([#include <libintl.h>
82extern int _nl_msg_cat_cntr;],
83 [bindtextdomain ("", "");
84return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
85 gt_cv_func_gnugettext_libc=yes,
86 gt_cv_func_gnugettext_libc=no)])
87
88 if test "$gt_cv_func_gnugettext_libc" != "yes"; then
89 AC_CACHE_CHECK([for GNU gettext in libintl],
90 gt_cv_func_gnugettext_libintl,
91 [gt_save_LIBS="$LIBS"
92 LIBS="$LIBS -lintl $LIBICONV"
93 AC_TRY_LINK([#include <libintl.h>
94extern int _nl_msg_cat_cntr;],
95 [bindtextdomain ("", "");
96return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
97 gt_cv_func_gnugettext_libintl=yes,
98 gt_cv_func_gnugettext_libintl=no)
99 LIBS="$gt_save_LIBS"])
100 fi
101
102 dnl If an already present or preinstalled GNU gettext() is found,
103 dnl use it. But if this macro is used in GNU gettext, and GNU
104 dnl gettext is already preinstalled in libintl, we update this
105 dnl libintl. (Cf. the install rule in intl/Makefile.in.)
106 if test "$gt_cv_func_gnugettext_libc" = "yes" \
107 || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
108 && test "$PACKAGE" != gettext; }; then
109 AC_DEFINE(HAVE_GETTEXT, 1,
110 [Define if the GNU gettext() function is already present or preinstalled.])
111
112 if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
113 dnl If iconv() is in a separate libiconv library, then anyone
114 dnl linking with libintl{.a,.so} also needs to link with
115 dnl libiconv.
116 INTLLIBS="-lintl $LIBICONV"
117 fi
118
119 gt_save_LIBS="$LIBS"
120 LIBS="$LIBS $INTLLIBS"
121 AC_CHECK_FUNCS(dcgettext)
122 LIBS="$gt_save_LIBS"
123
124 dnl Search for GNU msgfmt in the PATH.
125 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
126 [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
127 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
128
129 dnl Search for GNU xgettext in the PATH.
130 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
131 [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
132
133 CATOBJEXT=.gmo
134 fi
135 ])
136
137 if test "$CATOBJEXT" = "NONE"; then
138 dnl GNU gettext is not found in the C library.
139 dnl Fall back on GNU gettext library.
140 nls_cv_use_gnu_gettext=yes
141 fi
142 fi
143
144 if test "$nls_cv_use_gnu_gettext" = "yes"; then
145 dnl Mark actions used to generate GNU NLS library.
146 INTLOBJS="\$(GETTOBJS)"
147 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
148 [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
149 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
150 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
151 [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
152 AC_SUBST(MSGFMT)
153 BUILD_INCLUDED_LIBINTL=yes
154 USE_INCLUDED_LIBINTL=yes
155 CATOBJEXT=.gmo
156 INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
157 LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
158 fi
159
160 dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
161 dnl Test whether we really found GNU msgfmt.
162 if test "$GMSGFMT" != ":"; then
163 dnl If it is no GNU msgfmt we define it as : so that the
164 dnl Makefiles still can work.
165 if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
166 : ;
167 else
168 AC_MSG_RESULT(
169 [found msgfmt program is not GNU msgfmt; ignore it])
170 GMSGFMT=":"
171 fi
172 fi
173
174 dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
175 dnl Test whether we really found GNU xgettext.
176 if test "$XGETTEXT" != ":"; then
177 dnl If it is no GNU xgettext we define it as : so that the
178 dnl Makefiles still can work.
179 if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
180 : ;
181 else
182 AC_MSG_RESULT(
183 [found xgettext program is not GNU xgettext; ignore it])
184 XGETTEXT=":"
185 fi
186 fi
187
188 dnl We need to process the po/ directory.
189 POSUB=po
190 fi
191 AC_OUTPUT_COMMANDS(
192 [for ac_file in $CONFIG_FILES; do
193 # Support "outfile[:infile[:infile...]]"
194 case "$ac_file" in
195 *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
196 esac
197 # PO directories have a Makefile.in generated from Makefile.in.in.
198 case "$ac_file" in */Makefile.in)
199 # Adjust a relative srcdir.
200 ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
201 ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
202 ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
203 # In autoconf-2.13 it is called $ac_given_srcdir.
204 # In autoconf-2.50 it is called $srcdir.
205 test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
206 case "$ac_given_srcdir" in
207 .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
208 /*) top_srcdir="$ac_given_srcdir" ;;
209 *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
210 esac
211 if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
212 rm -f "$ac_dir/POTFILES"
213 test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
214 sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
215 test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
216 sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
217 fi
218 ;;
219 esac
220 done])
221
222
223 dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
224 dnl to 'yes' because some of the testsuite requires it.
225 if test "$PACKAGE" = gettext; then
226 BUILD_INCLUDED_LIBINTL=yes
227 fi
228
229 dnl intl/plural.c is generated from intl/plural.y. It requires bison,
230 dnl because plural.y uses bison specific features. It requires at least
231 dnl bison-1.26 because earlier versions generate a plural.c that doesn't
232 dnl compile.
233 dnl bison is only needed for the maintainer (who touches plural.y). But in
234 dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
235 dnl the rule in general Makefile. Now, some people carelessly touch the
236 dnl files or have a broken "make" program, hence the plural.c rule will
237 dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
238 dnl present or too old.
239 AC_CHECK_PROGS([INTLBISON], [bison])
240 if test -z "$INTLBISON"; then
241 ac_verc_fail=yes
242 else
243 dnl Found it, now check the version.
244 AC_MSG_CHECKING([version of bison])
245changequote(<<,>>)dnl
246 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
247 case $ac_prog_version in
248 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
249 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
250changequote([,])dnl
251 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
252 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
253 esac
254 AC_MSG_RESULT([$ac_prog_version])
255 fi
256 if test $ac_verc_fail = yes; then
257 INTLBISON=:
258 fi
259
260 dnl These rules are solely for the distribution goal. While doing this
261 dnl we only have to keep exactly one list of the available catalogs
262 dnl in configure.in.
263 for lang in $ALL_LINGUAS; do
264 GMOFILES="$GMOFILES $lang.gmo"
265 POFILES="$POFILES $lang.po"
266 done
267
268 dnl Make all variables we use known to autoconf.
269 AC_SUBST(BUILD_INCLUDED_LIBINTL)
270 AC_SUBST(USE_INCLUDED_LIBINTL)
271 AC_SUBST(CATALOGS)
272 AC_SUBST(CATOBJEXT)
273 AC_SUBST(GMOFILES)
274 AC_SUBST(INTLLIBS)
275 AC_SUBST(INTLOBJS)
276 AC_SUBST(POFILES)
277 AC_SUBST(POSUB)
278
279 dnl For backward compatibility. Some configure.ins may be using this.
280 nls_cv_header_intl=
281 nls_cv_header_libgt=
282
283 dnl For backward compatibility. Some Makefiles may be using this.
284 DATADIRNAME=share
285 AC_SUBST(DATADIRNAME)
286
287 dnl For backward compatibility. Some Makefiles may be using this.
288 INSTOBJEXT=.mo
289 AC_SUBST(INSTOBJEXT)
290
291 dnl For backward compatibility. Some Makefiles may be using this.
292 GENCAT=gencat
293 AC_SUBST(GENCAT)
294 ])
295
296dnl Usage: Just like AM_WITH_NLS, which see.
297AC_DEFUN([AM_GNU_GETTEXT],
298 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
299 AC_REQUIRE([AC_PROG_CC])dnl
300 AC_REQUIRE([AC_CANONICAL_HOST])dnl
301 AC_REQUIRE([AC_PROG_RANLIB])dnl
302 AC_REQUIRE([AC_ISC_POSIX])dnl
303 AC_REQUIRE([AC_HEADER_STDC])dnl
304 AC_REQUIRE([AC_C_CONST])dnl
305 AC_REQUIRE([AC_C_INLINE])dnl
306 AC_REQUIRE([AC_TYPE_OFF_T])dnl
307 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
308 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
309 AC_REQUIRE([AC_FUNC_MMAP])dnl
310 AC_REQUIRE([jm_GLIBC21])dnl
311
312 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
313stdlib.h string.h unistd.h sys/param.h])
314 AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
315getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
316strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
317
318 AM_ICONV
319 AM_LANGINFO_CODESET
320 AM_LC_MESSAGES
321 AM_WITH_NLS([$1],[$2],[$3])
322
323 if test "x$CATOBJEXT" != "x"; then
324 if test "x$ALL_LINGUAS" = "x"; then
325 LINGUAS=
326 else
327 AC_MSG_CHECKING(for catalogs to be installed)
328 NEW_LINGUAS=
329 for presentlang in $ALL_LINGUAS; do
330 useit=no
331 for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
332 # Use the presentlang catalog if desiredlang is
333 # a. equal to presentlang, or
334 # b. a variant of presentlang (because in this case,
335 # presentlang can be used as a fallback for messages
336 # which are not translated in the desiredlang catalog).
337 case "$desiredlang" in
338 "$presentlang"*) useit=yes;;
339 esac
340 done
341 if test $useit = yes; then
342 NEW_LINGUAS="$NEW_LINGUAS $presentlang"
343 fi
344 done
345 LINGUAS=$NEW_LINGUAS
346 AC_MSG_RESULT($LINGUAS)
347 fi
348
349 dnl Construct list of names of catalog files to be constructed.
350 if test -n "$LINGUAS"; then
351 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
352 fi
353 fi
354
355 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
356 dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
357 dnl Try to locate is.
358 MKINSTALLDIRS=
359 if test -n "$ac_aux_dir"; then
360 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
361 fi
362 if test -z "$MKINSTALLDIRS"; then
363 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
364 fi
365 AC_SUBST(MKINSTALLDIRS)
366
367 dnl Enable libtool support if the surrounding package wishes it.
368 INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
369 AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
370 ])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/glibc21.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/glibc21.m4
new file mode 100644
index 0000000000..5b88ef231c
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/glibc21.m4
@@ -0,0 +1,26 @@
1#serial 2
2
3# Test for the GNU C Library, version 2.1 or newer.
4# From Bruno Haible.
5
6AC_DEFUN([jm_GLIBC21],
7 [
8 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
9 ac_cv_gnu_library_2_1,
10 [AC_EGREP_CPP([Lucky GNU user],
11 [
12#include <features.h>
13#ifdef __GNU_LIBRARY__
14 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
15 Lucky GNU user
16 #endif
17#endif
18 ],
19 ac_cv_gnu_library_2_1=yes,
20 ac_cv_gnu_library_2_1=no)
21 ]
22 )
23 AC_SUBST(GLIBC21)
24 GLIBC21="$ac_cv_gnu_library_2_1"
25 ]
26)
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/iconv.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/iconv.m4
new file mode 100644
index 0000000000..17237344af
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/iconv.m4
@@ -0,0 +1,69 @@
1#serial AM2
2
3dnl From Bruno Haible.
4
5AC_DEFUN([AM_ICONV],
6[
7 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
8 dnl those with the standalone portable GNU libiconv installed).
9
10 AC_ARG_WITH([libiconv-prefix],
11[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
12 for dir in `echo "$withval" | tr : ' '`; do
13 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
14 if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
15 done
16 ])
17
18 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
19 am_cv_func_iconv="no, consider installing GNU libiconv"
20 am_cv_lib_iconv=no
21 AC_TRY_LINK([#include <stdlib.h>
22#include <iconv.h>],
23 [iconv_t cd = iconv_open("","");
24 iconv(cd,NULL,NULL,NULL,NULL);
25 iconv_close(cd);],
26 am_cv_func_iconv=yes)
27 if test "$am_cv_func_iconv" != yes; then
28 am_save_LIBS="$LIBS"
29 LIBS="$LIBS -liconv"
30 AC_TRY_LINK([#include <stdlib.h>
31#include <iconv.h>],
32 [iconv_t cd = iconv_open("","");
33 iconv(cd,NULL,NULL,NULL,NULL);
34 iconv_close(cd);],
35 am_cv_lib_iconv=yes
36 am_cv_func_iconv=yes)
37 LIBS="$am_save_LIBS"
38 fi
39 ])
40 if test "$am_cv_func_iconv" = yes; then
41 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
42 AC_MSG_CHECKING([for iconv declaration])
43 AC_CACHE_VAL(am_cv_proto_iconv, [
44 AC_TRY_COMPILE([
45#include <stdlib.h>
46#include <iconv.h>
47extern
48#ifdef __cplusplus
49"C"
50#endif
51#if defined(__STDC__) || defined(__cplusplus)
52size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
53#else
54size_t iconv();
55#endif
56], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
57 am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
58 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
59 AC_MSG_RESULT([$]{ac_t:-
60 }[$]am_cv_proto_iconv)
61 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
62 [Define as const if the declaration of iconv() needs const.])
63 fi
64 LIBICONV=
65 if test "$am_cv_lib_iconv" = yes; then
66 LIBICONV="-liconv"
67 fi
68 AC_SUBST(LIBICONV)
69])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/lcmessage.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/lcmessage.m4
new file mode 100644
index 0000000000..18d47a94f7
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/lcmessage.m4
@@ -0,0 +1,24 @@
1# Check whether LC_MESSAGES is available in <locale.h>.
2# Ulrich Drepper <drepper@cygnus.com>, 1995.
3#
4# This file can be copied and used freely without restrictions. It can
5# be used in projects which are not available under the GNU General Public
6# License or the GNU Library General Public License but which still want
7# to provide support for the GNU gettext functionality.
8# Please note that the actual code of the GNU gettext library is covered
9# by the GNU Library General Public License, and the rest of the GNU
10# gettext package package is covered by the GNU General Public License.
11# They are *not* in the public domain.
12
13# serial 2
14
15AC_DEFUN([AM_LC_MESSAGES],
16 [if test $ac_cv_header_locale_h = yes; then
17 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
18 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
19 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
20 if test $am_cv_val_LC_MESSAGES = yes; then
21 AC_DEFINE(HAVE_LC_MESSAGES, 1,
22 [Define if your <locale.h> file defines LC_MESSAGES.])
23 fi
24 fi])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/config/progtest.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/config/progtest.m4
new file mode 100644
index 0000000000..35dc3da1f7
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/config/progtest.m4
@@ -0,0 +1,51 @@
1# Search path for a program which passes the given test.
2# Ulrich Drepper <drepper@cygnus.com>, 1996.
3#
4# This file can be copied and used freely without restrictions. It can
5# be used in projects which are not available under the GNU General Public
6# License or the GNU Library General Public License but which still want
7# to provide support for the GNU gettext functionality.
8# Please note that the actual code of the GNU gettext library is covered
9# by the GNU Library General Public License, and the rest of the GNU
10# gettext package package is covered by the GNU General Public License.
11# They are *not* in the public domain.
12
13# serial 2
14
15dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
16dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
17AC_DEFUN([AM_PATH_PROG_WITH_TEST],
18[# Extract the first word of "$2", so it can be a program name with args.
19set dummy $2; ac_word=[$]2
20AC_MSG_CHECKING([for $ac_word])
21AC_CACHE_VAL(ac_cv_path_$1,
22[case "[$]$1" in
23 /*)
24 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
25 ;;
26 *)
27 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
28 for ac_dir in ifelse([$5], , $PATH, [$5]); do
29 test -z "$ac_dir" && ac_dir=.
30 if test -f $ac_dir/$ac_word; then
31 if [$3]; then
32 ac_cv_path_$1="$ac_dir/$ac_word"
33 break
34 fi
35 fi
36 done
37 IFS="$ac_save_ifs"
38dnl If no 4th arg is given, leave the cache variable unset,
39dnl so AC_PATH_PROGS will keep looking.
40ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
41])dnl
42 ;;
43esac])dnl
44$1="$ac_cv_path_$1"
45if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
46 AC_MSG_RESULT([$]$1)
47else
48 AC_MSG_RESULT(no)
49fi
50AC_SUBST($1)dnl
51])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch
new file mode 100644
index 0000000000..f5b75327e9
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch
@@ -0,0 +1,46 @@
1
2#
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
4#
5
6--- console-tools-0.3.2/configure.in~configure
7+++ console-tools-0.3.2/configure.in
8@@ -2,13 +2,14 @@
9 dnl Process this file with autoconf to produce a configure script.
10
11 # Initialize
12-AC_INIT(kbdtools/loadkeys.y)
13+AC_INIT
14+AC_CONFIG_SRCDIR([kbdtools/loadkeys.y])
15
16 define(ct_unicodedata_default,/usr/share/unidata/UnicodeData-2.txt)
17 ct_localdatadir_default=/usr/local/share # iff --enable-localdatadir without specific dir
18
19 #AC_CONFIG_AUX_DIR(autoconf)
20-AC_CANONICAL_SYSTEM
21+AC_CANONICAL_TARGET([])
22 AM_INIT_AUTOMAKE(console-tools, 0.3.2)
23
24 # Defaults
25@@ -25,7 +26,7 @@
26 # i18n stuff
27 ALL_LINGUAS="cs de ru ga fr"
28 AM_GNU_GETTEXT
29-AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
30+AC_CONFIG_COMMANDS([default-1],[[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]],[[]])
31
32 AC_DEFINE_UNQUOTED(LOCALEDIR, "/usr/share/locale")
33
34@@ -172,10 +173,11 @@
35 AC_SUBST(CHARMAPDIR)
36
37 # Output
38-AC_OUTPUT([Makefile lib/Makefile lib/console/Makefile lib/cfont/Makefile
39+AC_CONFIG_FILES([Makefile lib/Makefile lib/console/Makefile lib/cfont/Makefile
40 lib/ctutils/Makefile lib/ctlocal/Makefile lib/generic/Makefile
41 fontfiletools/Makefile vttools/Makefile
42 kbdtools/Makefile screenfonttools/Makefile contrib/Makefile
43 include/Makefile include/lct/Makefile compat/Makefile
44 doc/Makefile doc/man/Makefile examples/Makefile
45 po/Makefile.in intl/Makefile])
46+AC_OUTPUT
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch
new file mode 100644
index 0000000000..47d7ea54b9
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch
@@ -0,0 +1,73 @@
1Patch from Matthias Goebl <oe@m.goebl.net>
2Added via OE bugtracker: bug #478
3
4--- console-tools-0.3.2/kbdtools/kbd_mode.c.orig
5+++ console-tools-0.3.2/kbdtools/kbd_mode.c
6@@ -29,11 +29,16 @@
7 OPT("-u --unicode ", _("UTF-8 mode (UNICODE)"));
8 OPT("-s --scancode ", _("scancode mode (RAW)"));
9 OPT(" --mode={8bit,keycode,unicode,scancode} ", _("set mode"));
10+ OPT("-r --rate=RATE ", _("set repeat rate (default: 33)"));
11+ OPT("-d --delay=DELAY ", _("set repeat delay (default: 250)"));
12
13 OPT("-h --help ", HELPDESC);
14 OPT("-V --version ", VERSIONDESC);
15 }
16
17+int rate=-1;
18+int delay=-1;
19+
20 static int parse_cmdline (int argc, char *argv[])
21 {
22 int mode = -1;
23@@ -46,11 +51,13 @@
24 { "mode" , required_argument, NULL, 'm' },
25 { "scancode" , no_argument, NULL, 's' },
26 { "unicode" , no_argument, NULL, 'u' },
27+ { "rate" , required_argument, NULL, 'r' },
28+ { "delay" , required_argument, NULL, 'd' },
29 { NULL, 0, NULL, 0 }
30 };
31 int c;
32
33- while ( (c = getopt_long (argc, argv, "Vhaksu", long_opts, NULL)) != EOF)
34+ while ( (c = getopt_long (argc, argv, "Vhaksur:d:", long_opts, NULL)) != EOF)
35 switch (c) {
36 case 'h':
37 usage ();
38@@ -58,6 +65,14 @@
39 case 'V':
40 version ();
41 exit(0);
42+ case 'r':
43+ rate = atoi(optarg);
44+ mode = -2;
45+ break;
46+ case 'd':
47+ delay = atoi(optarg);
48+ mode = -2;
49+ break;
50 case 'a':
51 mode = K_XLATE;
52 break;
53@@ -129,6 +144,20 @@
54 exit(0);
55 }
56
57+ if ( rate != -1 || delay != -1 )
58+ {
59+ struct kbd_repeat kbd_rep;
60+ kbd_rep.delay = delay;
61+ kbd_rep.period = rate;
62+ if (ioctl(fd, KDKBDREP, &kbd_rep))
63+ {
64+ fprintf(stderr, progname);
65+ perror(_(": error setting keyboard repeat mode\n"));
66+ exit(1);
67+ }
68+ if(mode==-2) exit(0);
69+ }
70+
71 if (ioctl(fd, KDSKBMODE, mode))
72 {
73 fprintf(stderr, progname);
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch
new file mode 100644
index 0000000000..c73d8a3d9e
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch
@@ -0,0 +1,47 @@
1Fixing the locale issues isn't enough, console-tools also does a couple of
2other pretty stupid things (like FILE *f; f->_fileno instead of fileno(f)),
3
4--- console-tools-0.3.2/lib/cfont/fontstruct.c.ark 2005-05-22 19:12:38.000000000 +0000
5+++ console-tools-0.3.2/lib/cfont/fontstruct.c 2005-05-22 19:13:23.000000000 +0000
6@@ -50,8 +50,7 @@
7 * get filesize
8 */
9
10- /* FIXME: should not use _fileno ! */
11- if (fstat(fontfile->_fileno, &stbuf) == -1)
12+ if (fstat(fileno(fontfile), &stbuf) == -1)
13 goto rsf_return_error;
14
15 if (S_ISREG(stbuf.st_mode))
16@@ -211,8 +210,7 @@
17 * get filesize
18 */
19
20- /* FIXME: should not use _fileno ! */
21- if (fstat(fontfile->_fileno, &stbuf) == -1)
22+ if (fstat(fileno(fontfile), &stbuf) == -1)
23 goto rfg_return_error;
24
25 if (S_ISREG(stbuf.st_mode))
26--- console-tools-0.3.2/lib/console/acm.c.ark 2005-05-22 19:17:15.000000000 +0000
27+++ console-tools-0.3.2/lib/console/acm.c 2005-05-22 19:17:23.000000000 +0000
28@@ -30,7 +30,7 @@
29 lct_boolean parse_failed = False;
30 lct_boolean is_unicode;
31
32- if (fstat(fp->_fileno, &stbuf))
33+ if (fstat(fileno(fp), &stbuf))
34 perror(_("Cannot stat ACM file")), exit(1);
35
36 /* first try a wg15-charmap (glibc) file format */
37--- console-tools-0.3.2/include/lct/local.h.ark 2005-05-22 19:08:54.000000000 +0000
38+++ console-tools-0.3.2/include/lct/local.h 2005-05-22 19:09:12.000000000 +0000
39@@ -8,7 +8,7 @@
40 #include <locale.h>
41
42
43-#ifdef HAVE_LOCALE_H
44+#if defined(HAVE_LOCALE_H) && defined(HAVE_LIBINTL_H)
45 # include <libintl.h>
46 # define _(String) gettext (String)
47 # ifdef gettext_noop
diff --git a/meta/recipes-core/console-tools/console-tools_0.3.2.bb b/meta/recipes-core/console-tools/console-tools_0.3.2.bb
new file mode 100644
index 0000000000..3c5067f102
--- /dev/null
+++ b/meta/recipes-core/console-tools/console-tools_0.3.2.bb
@@ -0,0 +1,49 @@
1SECTION = "base"
2LICENSE = "GPL"
3DESCRIPTION = "Allows you to set-up and manipulate the Linux console."
4DEPENDS = "gettext"
5PR = "r2"
6
7SRC_URI = "${SOURCEFORGE_MIRROR}/lct/console-tools-${PV}.tar.gz \
8 file://codepage.patch;patch=1 \
9 file://configure.patch;patch=1 \
10 file://compile.patch;patch=1 \
11 file://kbdrate.patch;patch=1 \
12 file://uclibc-fileno.patch;patch=1 \
13 file://config/*.m4"
14
15export SUBDIRS = "fontfiletools vttools kbdtools screenfonttools contrib \
16 examples po intl compat"
17
18acpaths = "-I config"
19do_configure_prepend () {
20 mkdir -p config
21 cp ${WORKDIR}/config/*.m4 config/
22}
23
24do_compile () {
25 oe_runmake -C lib
26 oe_runmake 'SUBDIRS=${SUBDIRS}'
27}
28
29inherit autotools
30
31do_install () {
32 autotools_do_install
33 mv ${D}${bindir}/chvt ${D}${bindir}/chvt.${PN}
34 mv ${D}${bindir}/deallocvt ${D}${bindir}/deallocvt.${PN}
35 mv ${D}${bindir}/openvt ${D}${bindir}/openvt.${PN}
36}
37
38pkg_postinst_${PN} () {
39 update-alternatives --install ${bindir}/chvt chvt chvt.${PN} 100
40 update-alternatives --install ${bindir}/deallocvt deallocvt deallocvt.${PN} 100
41 update-alternatives --install ${bindir}/openvt openvt openvt.${PN} 100
42}
43
44pkg_prerm_${PN} () {
45 update-alternatives --remove chvt chvt.${PN}
46 update-alternatives --remove deallocvt deallocvt.${PN}
47 update-alternatives --remove openvt openvt.${PN}
48}
49
diff --git a/meta/recipes-core/dbus-wait/dbus-wait_svn.bb b/meta/recipes-core/dbus-wait/dbus-wait_svn.bb
new file mode 100644
index 0000000000..10e1db8123
--- /dev/null
+++ b/meta/recipes-core/dbus-wait/dbus-wait_svn.bb
@@ -0,0 +1,14 @@
1DESCRIPTION = "A simple tool to wait for a specific signal over DBus"
2HOMEPAGE = "http://svn.o-hand.com/repos/misc/trunk"
3SECTION = "base"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6DEPENDS = "dbus"
7PV = "0.0+svnr${SRCREV}"
8PR = "r2"
9
10SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=dbus-wait;proto=http"
11
12S = "${WORKDIR}/${PN}"
13
14inherit autotools
diff --git a/meta/recipes-core/dbus/dbus-1.2.24/dbus-1.init b/meta/recipes-core/dbus/dbus-1.2.24/dbus-1.init
new file mode 100644
index 0000000000..4abc4cbf73
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-1.2.24/dbus-1.init
@@ -0,0 +1,121 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: dbus
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 1
8# Short-Description: D-Bus systemwide message bus
9# Description: D-Bus is a simple interprocess messaging system, used
10# for sending messages between applications.
11### END INIT INFO
12#
13# -*- coding: utf-8 -*-
14# Debian init.d script for D-BUS
15# Copyright © 2003 Colin Walters <walters@debian.org>
16
17set -e
18
19DAEMON=/usr/bin/dbus-daemon
20NAME=dbus
21DAEMONUSER=messagebus
22PIDDIR=/var/run/dbus
23PIDFILE=$PIDDIR/pid
24UUIDDIR=/var/lib/dbus
25DESC="system message bus"
26EVENTDIR=/etc/dbus-1/event.d
27
28test -x $DAEMON || exit 0
29
30# Source defaults file; edit that file to configure this script.
31ENABLED=1
32PARAMS=""
33if [ -e /etc/default/dbus ]; then
34 . /etc/default/dbus
35fi
36
37test "$ENABLED" != "0" || exit 0
38
39start_it_up()
40{
41 if [ ! -d $PIDDIR ]; then
42 mkdir -p $PIDDIR
43 chown $DAEMONUSER $PIDDIR
44 chgrp $DAEMONUSER $PIDDIR
45 fi
46 if [ -e $PIDFILE ]; then
47 PIDDIR=/proc/$(cat $PIDFILE)
48 if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
49 echo "$DESC already started; not starting."
50 else
51 echo "Removing stale PID file $PIDFILE."
52 rm -f $PIDFILE
53 fi
54 fi
55
56 if [ ! -d $UUIDDIR ]; then
57 mkdir -p $UUIDDIR
58 chown $DAEMONUSER $UUIDDIR
59 chgrp $DAEMONUSER $UUIDDIR
60 fi
61
62 dbus-uuidgen --ensure
63
64 echo -n "Starting $DESC: "
65 start-stop-daemon --start --quiet --pidfile $PIDFILE \
66 --user $DAEMONUSER --exec $DAEMON -- --system $PARAMS
67 echo "$NAME."
68 if [ -d $EVENTDIR ]; then
69 run-parts --arg=start $EVENTDIR
70 fi
71}
72
73shut_it_down()
74{
75 if [ -d $EVENTDIR ]; then
76 # TODO: --reverse when busybox supports it
77 run-parts --arg=stop $EVENTDIR
78 fi
79 echo -n "Stopping $DESC: "
80 start-stop-daemon --stop --quiet --pidfile $PIDFILE \
81 --user $DAEMONUSER
82 # We no longer include these arguments so that start-stop-daemon
83 # can do its job even given that we may have been upgraded.
84 # We rely on the pidfile being sanely managed
85 # --exec $DAEMON -- --system $PARAMS
86 echo "$NAME."
87 rm -f $PIDFILE
88}
89
90reload_it()
91{
92 echo -n "Reloading $DESC config: "
93 dbus-send --print-reply --system --type=method_call \
94 --dest=org.freedesktop.DBus \
95 / org.freedesktop.DBus.ReloadConfig > /dev/null
96 # hopefully this is enough time for dbus to reload it's config file.
97 echo "done."
98}
99
100case "$1" in
101 start)
102 start_it_up
103 ;;
104 stop)
105 shut_it_down
106 ;;
107 reload|force-reload)
108 reload_it
109 ;;
110 restart)
111 shut_it_down
112 sleep 1
113 start_it_up
114 ;;
115 *)
116 echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
117 exit 1
118 ;;
119esac
120
121exit 0
diff --git a/meta/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch b/meta/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch
new file mode 100644
index 0000000000..edb63a5faf
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch
@@ -0,0 +1,56 @@
1# Update fix-daemon-install patch to use automake magic to avoid the wrapper scripts
2#
3# original by RP, updated to handle dbus-daemon-launch-helper by Kevin Tian <kevin.tian@intel.com>, 2010-07-10
4Index: dbus-1.2.14/bus/Makefile.am
5===================================================================
6--- dbus-1.2.14.orig/bus/Makefile.am 2009-04-17 20:45:29.000000000 +0100
7+++ dbus-1.2.14/bus/Makefile.am 2009-11-13 09:47:24.000000000 +0000
8@@ -149,7 +149,7 @@ endif
9
10 ## we use noinst_PROGRAMS not check_PROGRAMS so that we build
11 ## even when not doing "make check"
12-noinst_PROGRAMS=$(TESTS) dbus-daemon dbus-daemon-launch-helper-test dbus-daemon-launch-helper
13+noinst_PROGRAMS=$(TESTS) dbus-daemon-launch-helper-test
14
15 bus_test_system_SOURCES= \
16 $(XML_SOURCES) \
17@@ -171,34 +171,22 @@ bus_test_SOURCES= \
18 bus_test_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
19 bus_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
20
21+dbusdaemondir = $(DBUS_DAEMONDIR)
22+dbusdaemon_PROGRAMS = dbus-daemon
23+
24+libexec_PROGRAMS = dbus-daemon-launch-helper
25+
26 ## mop up the gcov files
27 clean-local:
28 /bin/rm *.bb *.bbg *.da *.gcov || true
29
30-uninstall-hook:
31- rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon
32- rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper
33-
34 install-data-hook:
35- if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
36- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
37- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
38- fi
39- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
40 $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
41 $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
42 $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
43 $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
44 $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services
45 $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1
46- $(INSTALL_PROGRAM) dbus-daemon-launch-helper $(DESTDIR)$(libexecdir)
47- if test `id -u` -eq 0; then \
48- chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
49- chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
50- else \
51- echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \
52- echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \
53- fi
54
55 #### Init scripts fun
56 SCRIPT_IN_FILES=messagebus.in \
diff --git a/meta/recipes-core/dbus/dbus-1.2.24/tmpdir.patch b/meta/recipes-core/dbus/dbus-1.2.24/tmpdir.patch
new file mode 100644
index 0000000000..f5c22af129
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-1.2.24/tmpdir.patch
@@ -0,0 +1,34 @@
1# avoid to check tmp dir at build time. instead uses hard coded /tmp here
2#
3# comment added by Kevin Tian <kevin.tian@intel.com>
4
5--- dbus-0.22/configure.in.orig 2004-08-13 00:57:16.000000000 +0200
6+++ dbus-0.22/configure.in 2004-12-30 21:15:57.000000000 +0100
7@@ -1047,15 +1048,18 @@
8 AC_SUBST(ABSOLUTE_TOP_BUILDDIR)
9
10 #### Find socket directories
11-if ! test -z "$TMPDIR" ; then
12- DEFAULT_SOCKET_DIR=$TMPDIR
13-elif ! test -z "$TEMP" ; then
14- DEFAULT_SOCKET_DIR=$TEMP
15-elif ! test -z "$TMP" ; then
16- DEFAULT_SOCKET_DIR=$TMP
17-else
18- DEFAULT_SOCKET_DIR=/tmp
19-fi
20+#if ! test -z "$TMPDIR" ; then
21+# DEFAULT_SOCKET_DIR=$TMPDIR
22+#elif ! test -z "$TEMP" ; then
23+# DEFAULT_SOCKET_DIR=$TEMP
24+#elif ! test -z "$TMP" ; then
25+# DEFAULT_SOCKET_DIR=$TMP
26+#else
27+# DEFAULT_SOCKET_DIR=/tmp
28+#fi
29+
30+# checks disabled to avoid expanding this at build time
31+DEFAULT_SOCKET_DIR=/tmp
32
33 if ! test -z "$with_test_socket_dir" ; then
34 TEST_SOCKET_DIR="$with_test_socket_dir"
diff --git a/meta/recipes-core/dbus/dbus-glib-0.86/fix_asneeded.patch b/meta/recipes-core/dbus/dbus-glib-0.86/fix_asneeded.patch
new file mode 100644
index 0000000000..3065557683
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-glib-0.86/fix_asneeded.patch
@@ -0,0 +1,17 @@
1# not sure the reason for changing link order. Disable it for now, but keep for a while
2#
3# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-10
4
5Index: dbus-glib-0.82/dbus/Makefile.am
6===================================================================
7--- dbus-glib-0.82.orig/dbus/Makefile.am 2009-07-16 15:54:44.000000000 +0100
8+++ dbus-glib-0.82/dbus/Makefile.am 2009-12-11 09:27:20.000000000 +0000
9@@ -105,7 +105,7 @@
10
11 dbus_bash_completion_helper_SOURCES = \
12 dbus-bash-completion-helper.c
13-dbus_bash_completion_helper_LDADD=$(DBUS_LIBS) $(DBUS_GLIB_LIBS) $(builddir)/libdbus-gtool.la -lexpat $(builddir)/libdbus-glib-1.la
14+dbus_bash_completion_helper_LDADD=$(DBUS_LIBS) $(DBUS_GLIB_LIBS) $(builddir)/libdbus-gtool.la $(builddir)/libdbus-glib-1.la -lexpat
15
16
17 EXTRA_DIST=dbus-gmarshal.list make-dbus-glib-error-switch.sh make-dbus-glib-error-enum.sh dbus-bash-completion.sh.in
diff --git a/meta/recipes-core/dbus/dbus-glib-0.86/no-examples.patch b/meta/recipes-core/dbus/dbus-glib-0.86/no-examples.patch
new file mode 100644
index 0000000000..32609b9b9c
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-glib-0.86/no-examples.patch
@@ -0,0 +1,12 @@
1# disable compiling examples
2#
3# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-10
4
5--- dbus-glib-0.70/dbus/Makefile.am.orig 2006-07-23 16:04:43.000000000 +0200
6+++ dbus-glib-0.70/dbus/Makefile.am 2006-07-23 16:04:52.000000000 +0200
7@@ -1,4 +1,4 @@
8-SUBDIRS = . examples
9+SUBDIRS = .
10
11 INCLUDES=-I$(top_srcdir) $(DBUS_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_GLIB_TOOL_CFLAGS) -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
12
diff --git a/meta/recipes-core/dbus/dbus-glib.inc b/meta/recipes-core/dbus/dbus-glib.inc
new file mode 100644
index 0000000000..985c565e8b
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-glib.inc
@@ -0,0 +1,23 @@
1DESCRIPTION = "high level language (glib) binding for dbus"
2HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
3LICENSE = "AFL2.1 | GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=cf5b3a2f7083750d504333114e738656 \
5 file://dbus/dbus-glib.h;firstline=7;endline=21;md5=833ef01806b4c524fb3678a16300536f"
6SECTION = "base"
7DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
8DEPENDS_virtclass-native = "glib-2.0-native dbus-native"
9
10SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
11 file://no-examples.patch"
12
13inherit autotools pkgconfig gettext
14
15FILES_${PN} = "${libdir}/lib*.so.*"
16FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
17FILES_${PN}-dev += "${bindir}/dbus-binding-tool"
18
19EXTRA_OECONF = "--with-introspect-xml=${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml \
20 --with-dbus-binding-tool=${STAGING_BINDIR_NATIVE}/dbus-binding-tool"
21EXTRA_OECONF_virtclass-native = "--with-introspect-xml=${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml"
22
23BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/dbus/dbus-glib_0.86.bb b/meta/recipes-core/dbus/dbus-glib_0.86.bb
new file mode 100644
index 0000000000..000146ab7e
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus-glib_0.86.bb
@@ -0,0 +1,3 @@
1require dbus-glib.inc
2
3PR = "r0"
diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc
new file mode 100644
index 0000000000..90a38e66a9
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus.inc
@@ -0,0 +1,91 @@
1DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \"single instance\" application or daemon, and to launch applications and daemons on demand when their services are needed"
2HOMEPAGE = "http://dbus.freedesktop.org"
3SECTION = "base"
4LICENSE = "AFL2.1 | GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
6 file://dbus/dbus.h;firstline=6;endline=20;md5=6eea2e0c7750dd8e620dcb1437312fa5"
7DEPENDS = "expat glib-2.0 virtual/libintl virtual/libx11 libsm"
8
9SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
10 file://tmpdir.patch; \
11 file://fix-install-daemon.patch; \
12 file://dbus-1.init"
13
14inherit autotools pkgconfig gettext update-rc.d
15
16INITSCRIPT_NAME = "dbus-1"
17INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
18
19CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
20
21DEBIANNAME_${PN} = "dbus-1"
22
23PACKAGES =+ "${PN}-lib"
24
25FILES_${PN} = "${bindir}/dbus-daemon* \
26 ${bindir}/dbus-uuidgen \
27 ${bindir}/dbus-launch \
28 ${bindir}/dbus-cleanup-sockets \
29 ${bindir}/dbus-send \
30 ${bindir}/dbus-monitor \
31 ${libexecdir}/dbus* \
32 ${sysconfdir} \
33 ${datadir}/dbus-1/services \
34 ${datadir}/dbus-1/system-services"
35FILES_${PN}-lib = "${libdir}/lib*.so.*"
36RRECOMMENDS_${PN}-lib = "${PN}"
37FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
38
39pkg_postinst_dbus() {
40 # can't do adduser stuff offline
41 if [ "x$D" != "x" ]; then
42 exit 1
43 fi
44
45 MESSAGEUSER=messagebus
46 MESSAGEHOME=/var/run/dbus
47
48 mkdir -p $MESSAGEHOME || true
49 chgrp "$MESSAGEUSER" "$MESSAGEHOME" 2>/dev/null || addgroup "$MESSAGEUSER"
50 chown "$MESSAGEUSER"."$MESSAGEUSER" "$MESSAGEHOME" 2>/dev/null || \
51 adduser --system --home "$MESSAGEHOME" --no-create-home --disabled-password \
52 --ingroup "$MESSAGEUSER" "$MESSAGEUSER"
53
54 grep -q netdev: /etc/group || addgroup netdev
55 chmod u+s /usr/libexec/dbus-daemon-launch-helper
56
57 # add volatile after new user/grp are created
58 echo "d messagebus messagebus 0755 /var/run/dbus none" > /etc/default/volatiles/99_dbus
59 /etc/init.d/populate-volatile.sh update
60}
61
62EXTRA_OECONF_X = "--with-x"
63EXTRA_OECONF_X_virtclass-native = "--without-x"
64
65EXTRA_OECONF = "--disable-tests \
66 --disable-checks \
67 --disable-xml-docs \
68 --disable-doxygen-docs \
69 --disable-libaudit \
70 --with-xml=expat \
71 ${EXTRA_OECONF_X}"
72
73do_install() {
74 autotools_do_install
75
76 install -d ${D}${sysconfdir}/init.d
77 install -m 0755 ${WORKDIR}/dbus-1.init ${D}${sysconfdir}/init.d/dbus-1
78}
79
80do_install_virtclass-native() {
81 autotools_do_install
82
83 # for dbus-glib-native introspection generation
84 install -d ${STAGING_DATADIR_NATIVE}/dbus/
85 # N.B. is below install actually required?
86 install -m 0644 bus/session.conf ${STAGING_DATADIR_NATIVE}/dbus/session.conf
87
88 # dbus-glib-native and dbus-glib need this xml file
89 ./bus/dbus-daemon --introspect > ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml
90}
91BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/dbus/dbus_1.2.24.bb b/meta/recipes-core/dbus/dbus_1.2.24.bb
new file mode 100644
index 0000000000..8e3e329fde
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus_1.2.24.bb
@@ -0,0 +1,3 @@
1include dbus.inc
2
3PR = "r1"
diff --git a/meta/recipes-core/dropbear/dropbear-0.52/configure.patch b/meta/recipes-core/dropbear/dropbear-0.52/configure.patch
new file mode 100644
index 0000000000..8d11b23f14
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear-0.52/configure.patch
@@ -0,0 +1,27 @@
1Index: dropbear-0.49/configure.in
2===================================================================
3--- dropbear-0.49.orig/configure.in
4+++ dropbear-0.49/configure.in
5@@ -164,14 +164,20 @@ AC_ARG_ENABLE(openpty,
6 AC_MSG_NOTICE(Not using openpty)
7 else
8 AC_MSG_NOTICE(Using openpty if available)
9- AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY,,Have openpty() function)])
10+ AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes])
11 fi
12 ],
13 [
14 AC_MSG_NOTICE(Using openpty if available)
15- AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY)])
16+ AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes])
17 ]
18 )
19+
20+if test "x$dropbear_cv_func_have_openpty" = "xyes"; then
21+ AC_DEFINE(HAVE_OPENPTY,,Have openpty() function)
22+ no_ptc_check=yes
23+ no_ptmx_check=yes
24+fi
25
26
27 AC_ARG_ENABLE(syslog,
diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
new file mode 100644
index 0000000000..1d78d5c59b
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear.inc
@@ -0,0 +1,80 @@
1DESCRIPTION = "Dropbear is a lightweight SSH and SCP Implementation"
2HOMEPAGE = "http://matt.ucc.asn.au/dropbear/dropbear.html"
3SECTION = "console/network"
4
5# some files are from other projects and have others license terms:
6# public domain, OpenSSH 3.5p1, OpenSSH3.6.1p2, PuTTY
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=3a5b0c2f0d0c49dfde9558ae2036683c"
9
10DEPENDS = "zlib"
11PROVIDES = "ssh sshd"
12RPROVIDES = "ssh sshd"
13
14SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.gz \
15 file://urandom-xauth-changes-to-options.h.patch \
16 file://configure.patch \
17 file://fix-2kb-keys.patch \
18 file://allow-nopw.patch;apply=no \
19 file://init"
20
21inherit autotools update-rc.d
22
23INITSCRIPT_NAME = "dropbear"
24INITSCRIPT_PARAMS = "defaults 10"
25
26CFLAGS_prepend = " -I. "
27LD = "${CC}"
28
29SBINCOMMANDS = "dropbear dropbearkey dropbearconvert"
30BINCOMMANDS = "dbclient ssh scp"
31EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
32
33DISTRO_TYPE = "${@base_contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}"
34
35do_configure_prepend() {
36 if [ "x${DISTRO}" != "xfamiliar" -a "${DISTRO_TYPE}" = "debug" ]; then
37 oenote "WARNING: applying allow-nopw.patch which allows password-less logins!"
38 patch -p1 < ${WORKDIR}/allow-nopw.patch
39 fi
40}
41
42do_install() {
43 install -d ${D}${sysconfdir} \
44 ${D}${sysconfdir}/init.d \
45 ${D}${sysconfdir}/default \
46 ${D}${sysconfdir}/dropbear \
47 ${D}${bindir} \
48 ${D}${sbindir} \
49 ${D}${localstatedir}
50
51 install -m 0755 dropbearmulti ${D}${sbindir}/
52 ln -s ${sbindir}/dropbearmulti ${D}${bindir}/dbclient
53
54 for i in ${SBINCOMMANDS}
55 do
56 ln -s ./dropbearmulti ${D}${sbindir}/$i
57 done
58 cat ${WORKDIR}/init | sed -e 's,/etc,${sysconfdir},g' \
59 -e 's,/usr/sbin,${sbindir},g' \
60 -e 's,/var,${localstatedir},g' \
61 -e 's,/usr/bin,${bindir},g' \
62 -e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/dropbear
63 chmod 755 ${D}${sysconfdir}/init.d/dropbear
64}
65
66pkg_postinst () {
67 update-alternatives --install ${bindir}/scp scp ${sbindir}/dropbearmulti 20
68 update-alternatives --install ${bindir}/ssh ssh ${sbindir}/dropbearmulti 20
69}
70
71pkg_postrm_append () {
72 if [ -f "${sysconfdir}/dropbear/dropbear_rsa_host_key" ]; then
73 rm ${sysconfdir}/dropbear/dropbear_rsa_host_key
74 fi
75 if [ -f "${sysconfdir}/dropbear/dropbear_dss_host_key" ]; then
76 rm ${sysconfdir}/dropbear/dropbear_dss_host_key
77 fi
78 update-alternatives --remove ssh ${bindir}/dropbearmulti
79 update-alternatives --remove scp ${bindir}/dropbearmulti
80}
diff --git a/meta/recipes-core/dropbear/dropbear/allow-nopw.patch b/meta/recipes-core/dropbear/dropbear/allow-nopw.patch
new file mode 100644
index 0000000000..2ae361c63e
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/allow-nopw.patch
@@ -0,0 +1,38 @@
1diff --git a/svr-auth.c b/svr-auth.c
2index 5da0aa7..4de4964 100644
3--- a/svr-auth.c
4+++ b/svr-auth.c
5@@ -249,6 +249,7 @@ static int checkusername(unsigned char *username, unsigned int userlen) {
6 }
7
8 /* check for an empty password */
9+#ifdef DISALLOW_EMPTY_PW
10 if (ses.authstate.pw_passwd[0] == '\0') {
11 TRACE(("leave checkusername: empty pword"))
12 dropbear_log(LOG_WARNING, "user '%s' has blank password, rejected",
13@@ -256,6 +257,7 @@ static int checkusername(unsigned char *username, unsigned int userlen) {
14 send_msg_userauth_failure(0, 1);
15 return DROPBEAR_FAILURE;
16 }
17+#endif
18
19 TRACE(("shell is %s", ses.authstate.pw_shell))
20
21diff --git a/svr-authpasswd.c b/svr-authpasswd.c
22index 53550a2..7b896bd 100644
23--- a/svr-authpasswd.c
24+++ b/svr-authpasswd.c
25@@ -64,9 +64,13 @@ void svr_auth_password() {
26 * since the shadow password may differ to that tested
27 * in auth.c */
28 if (passwdcrypt[0] == '\0') {
29+#ifdef DISALLOW_EMPTY_PASSWD
30 dropbear_log(LOG_WARNING, "user '%s' has blank password, rejected",
31 ses.authstate.pw_name);
32 send_msg_userauth_failure(0, 1);
33+#else
34+ send_msg_userauth_success();
35+#endif
36 return;
37 }
38
diff --git a/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch b/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch
new file mode 100644
index 0000000000..ba2b19d44a
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch
@@ -0,0 +1,11 @@
1diff -Nurd dropbear-0.45/kex.h dropbear-0.45.patched/kex.h
2--- dropbear-0.45/kex.h 2005-03-06 20:27:02.000000000 -0800
3+++ dropbear-0.45.patched/kex.h 2005-03-08 15:22:44.064583279 -0800
4@@ -64,6 +64,6 @@
5
6 };
7
8-#define MAX_KEXHASHBUF 2000
9+#define MAX_KEXHASHBUF 3000
10
11 #endif /* _KEX_H_ */
diff --git a/meta/recipes-core/dropbear/dropbear/init b/meta/recipes-core/dropbear/dropbear/init
new file mode 100755
index 0000000000..e882bae689
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/init
@@ -0,0 +1,106 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: sshd
4# Required-Start: $remote_fs $syslog $networking
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 1
8# Short-Description: Dropbear Secure Shell server
9### END INIT INFO
10#
11# Do not configure this file. Edit /etc/default/dropbear instead!
12#
13
14PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15DAEMON=/usr/sbin/dropbear
16NAME=dropbear
17DESC="Dropbear SSH server"
18
19DROPBEAR_PORT=22
20DROPBEAR_EXTRA_ARGS=
21NO_START=0
22
23set -e
24
25test ! -r /etc/default/dropbear || . /etc/default/dropbear
26test "$NO_START" = "0" || exit 0
27test -x "$DAEMON" || exit 0
28test ! -h /var/service/dropbear || exit 0
29
30readonly_rootfs=0
31for flag in `awk '{ if ($2 == "/") { split($4,FLAGS,",") } }; END { for (f in FLAGS) print FLAGS[f] }' </proc/mounts`; do
32 case $flag in
33 ro)
34 readonly_rootfs=1
35 ;;
36 esac
37done
38
39if [ $readonly_rootfs = "1" ]; then
40 mkdir -p /var/lib/dropbear
41 DROPBEAR_RSAKEY_DEFAULT="/var/lib/dropbear/dropbear_rsa_host_key"
42 DROPBEAR_DSSKEY_DEFAULT="/var/lib/dropbear/dropbear_dss_host_key"
43else
44 DROPBEAR_RSAKEY_DEFAULT="/etc/dropbear/dropbear_rsa_host_key"
45 DROPBEAR_DSSKEY_DEFAULT="/etc/dropbear/dropbear_dss_host_key"
46fi
47
48test -z "$DROPBEAR_BANNER" || \
49 DROPBEAR_EXTRA_ARGS="$DROPBEAR_EXTRA_ARGS -b $DROPBEAR_BANNER"
50test -n "$DROPBEAR_RSAKEY" || \
51 DROPBEAR_RSAKEY=$DROPBEAR_RSAKEY_DEFAULT
52test -n "$DROPBEAR_DSSKEY" || \
53 DROPBEAR_DSSKEY=$DROPBEAR_DSSKEY_DEFAULT
54test -n "$DROPBEAR_KEYTYPES" || \
55 DROPBEAR_KEYTYPES="rsa"
56
57gen_keys() {
58for t in $DROPBEAR_KEYTYPES; do
59 case $t in
60 rsa)
61 test -f $DROPBEAR_RSAKEY || dropbearkey -t rsa -f $DROPBEAR_RSAKEY
62 ;;
63 dsa)
64 test -f $DROPBEAR_DSSKEY || dropbearkey -t dss -f $DROPBEAR_DSSKEY
65 ;;
66 esac
67done
68}
69
70case "$1" in
71 start)
72 echo -n "Starting $DESC: "
73 gen_keys
74 KEY_ARGS=""
75 test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
76 test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
77 start-stop-daemon -S \
78 -x "$DAEMON" -- $KEY_ARGS \
79 -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
80 echo "$NAME."
81 ;;
82 stop)
83 echo -n "Stopping $DESC: "
84 start-stop-daemon -K -x "$DAEMON"
85 echo "$NAME."
86 ;;
87 restart|force-reload)
88 echo -n "Restarting $DESC: "
89 start-stop-daemon -K -x "$DAEMON"
90 sleep 1
91 KEY_ARGS=""
92 test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
93 test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
94 start-stop-daemon -S \
95 -x "$DAEMON" -- $KEY_ARGS \
96 -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
97 echo "$NAME."
98 ;;
99 *)
100 N=/etc/init.d/$NAME
101 echo "Usage: $N {start|stop|restart|force-reload}" >&2
102 exit 1
103 ;;
104esac
105
106exit 0
diff --git a/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch b/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch
new file mode 100644
index 0000000000..75ba306565
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch
@@ -0,0 +1,12 @@
1diff -Nurd dropbear-0.45/options.h dropbear-0.45.patched/options.h
2--- dropbear-0.45/options.h 2005-03-06 20:27:02.000000000 -0800
3+++ dropbear-0.45.patched/options.h 2005-03-08 15:25:09.368742090 -0800
4@@ -167,7 +167,7 @@
5 /* The command to invoke for xauth when using X11 forwarding.
6 * "-q" for quiet */
7 #ifndef XAUTH_COMMAND
8-#define XAUTH_COMMAND "/usr/X11R6/bin/xauth -q"
9+#define XAUTH_COMMAND "xauth -q"
10 #endif
11
12 /* if you want to enable running an sftp server (such as the one included with
diff --git a/meta/recipes-core/dropbear/dropbear_0.52.bb b/meta/recipes-core/dropbear/dropbear_0.52.bb
new file mode 100644
index 0000000000..51217ea39d
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear_0.52.bb
@@ -0,0 +1,3 @@
1require dropbear.inc
2
3PR="r0"
diff --git a/meta/recipes-core/eggdbus/eggdbus/gtk-doc.patch b/meta/recipes-core/eggdbus/eggdbus/gtk-doc.patch
new file mode 100644
index 0000000000..0999a85153
--- /dev/null
+++ b/meta/recipes-core/eggdbus/eggdbus/gtk-doc.patch
@@ -0,0 +1,32 @@
1Index: eggdbus-0.6/docs/eggdbus/Makefile.am
2===================================================================
3--- eggdbus-0.6.orig/docs/eggdbus/Makefile.am
4+++ eggdbus-0.6/docs/eggdbus/Makefile.am
5@@ -87,11 +87,7 @@ HTML_IMAGES = \
6 # Extra options to supply to gtkdoc-fixref
7 FIXXREF_OPTIONS=
8
9-if ENABLE_GTK_DOC
10-include $(top_srcdir)/gtk-doc.make
11-else
12 CLEANFILES =
13-endif
14
15 CLEANFILES += *~ \
16 eggdbus-scan.* \
17Index: eggdbus-0.6/docs/tests/Makefile.am
18===================================================================
19--- eggdbus-0.6.orig/docs/tests/Makefile.am
20+++ eggdbus-0.6/docs/tests/Makefile.am
21@@ -65,11 +65,7 @@ HTML_IMAGES = \
22 # Extra options to supply to gtkdoc-fixref
23 FIXXREF_OPTIONS=
24
25-if ENABLE_GTK_DOC
26-include $(top_srcdir)/gtk-doc.make
27-else
28 CLEANFILES =
29-endif
30
31 CLEANFILES += *~ \
32 tests-scan.* \
diff --git a/meta/recipes-core/eggdbus/eggdbus/marshal.patch b/meta/recipes-core/eggdbus/eggdbus/marshal.patch
new file mode 100644
index 0000000000..2b2cb4985b
--- /dev/null
+++ b/meta/recipes-core/eggdbus/eggdbus/marshal.patch
@@ -0,0 +1,26 @@
1Index: eggdbus-0.6/src/eggdbus/Makefile.am
2===================================================================
3--- eggdbus-0.6.orig/src/eggdbus/Makefile.am
4+++ eggdbus-0.6/src/eggdbus/Makefile.am
5@@ -130,7 +130,7 @@ BUILT_SOURCES = \
6 $(NULL)
7
8 eggdbus-built-sources.stamp : eggdbus-binding-tool Makefile.am org.freedesktop.DBus.xml org.freedesktop.DBus.Peer.xml org.freedesktop.DBus.Properties.xml org.freedesktop.DBus.Introspectable.xml eggdbus-glib-genmarshal
9- EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
10+ EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool \
11 --namespace EggDBus \
12 --dbus-namespace org.freedesktop.DBus \
13 --interfaces-only \
14Index: eggdbus-0.6/src/tests/Makefile.am
15===================================================================
16--- eggdbus-0.6.orig/src/tests/Makefile.am
17+++ eggdbus-0.6/src/tests/Makefile.am
18@@ -25,7 +25,7 @@ BUILT_SOURCES = \
19 $(NULL)
20
21 test-built-sources.stamp : Makefile.am $(top_builddir)/src/eggdbus/eggdbus-binding-tool com.example.Frob.xml com.example.Tweak.xml com.example.Twiddle.xml
22- EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
23+ EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool \
24 --namespace "Test" \
25 --dbus-namespace "com.example" \
26 --include-header testtypes.h \
diff --git a/meta/recipes-core/eggdbus/eggdbus_0.6.bb b/meta/recipes-core/eggdbus/eggdbus_0.6.bb
new file mode 100644
index 0000000000..3a0d0fed13
--- /dev/null
+++ b/meta/recipes-core/eggdbus/eggdbus_0.6.bb
@@ -0,0 +1,27 @@
1DESCRIPTION = "An alternative to dbus-glib. It is designed specifically to make it comfortable to work with very large and potentially complex D-Bus services like e.g. DeviceKit-disks"
2HOMEPAGE = "http://cgit.freedesktop.org/~david/eggdbus"
3LICENSE = "LGPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
5 file://src/eggdbus/eggdbus.h;md5=6b312aef57ed8d738b3f131ad037d6c2"
6PR = "r1"
7
8DEPENDS = "dbus glib-2.0 dbus-glib eggdbus-native"
9DEPENDS_virtclass-native = "dbus-native glib-2.0-native dbus-glib-native"
10
11BASE_SRC_URI = "http://cgit.freedesktop.org/~david/${BPN}/snapshot/${BPN}-${PV}.tar.bz2 \
12 file://gtk-doc.patch;apply=yes \
13 "
14
15SRC_URI = "${BASE_SRC_URI} \
16 file://marshal.patch;apply=yes \
17 "
18
19SRC_URI_virtclass-native = "${BASE_SRC_URI}"
20
21inherit autotools
22
23EXTRA_OECONF = " --disable-man-pages --disable-gtk-doc-html "
24
25BBCLASSEXTEND = "native"
26
27PARALLEL_MAKE = ""
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.12/IO-acquire-lock-fix.patch
new file mode 100644
index 0000000000..4d3e0613b1
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/IO-acquire-lock-fix.patch
@@ -0,0 +1,15 @@
1import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
2
3Index: libc/bits/stdio-lock.h
4===================================================================
5--- libc.orig/bits/stdio-lock.h 2009-10-28 14:34:19.000000000 -0700
6+++ libc/bits/stdio-lock.h 2009-10-28 14:34:54.000000000 -0700
7@@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _
8 _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
9 _IO_flockfile (_fp)
10
11+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
12+
13 # define _IO_release_lock(_fp) \
14 _IO_funlockfile (_fp); \
15 _IO_cleanup_region_end (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/armv4t-interworking.patch b/meta/recipes-core/eglibc/eglibc-2.12/armv4t-interworking.patch
new file mode 100644
index 0000000000..6ab306180c
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/armv4t-interworking.patch
@@ -0,0 +1,78 @@
1Index: libc/ports/sysdeps/arm/memcpy.S
2===================================================================
3--- libc.orig/ports/sysdeps/arm/memcpy.S 2009-09-03 16:12:00.000000000 -0700
4+++ libc/ports/sysdeps/arm/memcpy.S 2009-10-28 12:51:22.000000000 -0700
5@@ -130,7 +130,12 @@ ENTRY(memcpy)
6 strcsb r4, [r0], #1
7 strcsb ip, [r0]
8
9+#if defined (__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
10+ ldmfd sp!, {r0, r4, lr}
11+ bx lr
12+#else
13 ldmfd sp!, {r0, r4, pc}
14+#endif
15
16 9: rsb ip, ip, #4
17 cmp ip, #2
18Index: libc/ports/sysdeps/arm/memmove.S
19===================================================================
20--- libc.orig/ports/sysdeps/arm/memmove.S 2009-09-03 16:12:00.000000000 -0700
21+++ libc/ports/sysdeps/arm/memmove.S 2009-10-28 12:51:22.000000000 -0700
22@@ -144,7 +144,12 @@ ENTRY(memmove)
23 strneb r3, [r0, #-1]!
24 strcsb r4, [r0, #-1]!
25 strcsb ip, [r0, #-1]
26+#if defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__)
27+ ldmfd sp!, {r0, r4, lr}
28+ bx lr
29+#else
30 ldmfd sp!, {r0, r4, pc}
31+#endif
32
33 9: cmp ip, #2
34 ldrgtb r3, [r1, #-1]!
35Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
36===================================================================
37--- libc.orig/ports/sysdeps/unix/sysv/linux/arm/clone.S 2009-09-03 16:12:04.000000000 -0700
38+++ libc/ports/sysdeps/unix/sysv/linux/arm/clone.S 2009-10-28 12:51:22.000000000 -0700
39@@ -96,8 +96,14 @@ ENTRY(__clone)
40 #endif
41 @ pick the function arg and call address off the stack and execute
42 ldr r0, [sp, #4]
43+#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
44+ ldr ip, [sp], #8
45+ mov lr, pc
46+ bx ip
47+#else
48 mov lr, pc
49 ldr pc, [sp], #8
50+#endif
51
52 @ and we are done, passing the return value through r0
53 b PLTJMP(HIDDEN_JUMPTARGET(_exit))
54Index: libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
55===================================================================
56--- libc.orig/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-09-16 13:58:18.000000000 +0100
57+++ libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-11-03 19:17:16.000000000 +0000
58@@ -129,6 +129,11 @@
59 DO_RET(lr); \
60 1: .word C_SYMBOL_NAME(rtld_errno) - 0b - 8;
61 # else
62+#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
63+#define POP_PC ldr lr, [sp], #4; bx lr
64+#else
65+#define POP_PC ldr pc, [sp], #4
66+#endif
67 # define SYSCALL_ERROR_HANDLER \
68 __local_syscall_error: \
69 str lr, [sp, #-4]!; \
70@@ -138,7 +143,7 @@
71 rsb r1, r1, #0; \
72 str r1, [r0]; \
73 mvn r0, #0; \
74- ldr pc, [sp], #4;
75+ POP_PC;
76 # endif
77 #else
78 # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.12/eglibc-svn-arm-lowlevellock-include-tls.patch
new file mode 100644
index 0000000000..99c3fef802
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/eglibc-svn-arm-lowlevellock-include-tls.patch
@@ -0,0 +1,19 @@
1In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
2../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
3../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM'
4../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function)
5../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once
6../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.)
7../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function)
8make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1
9
10--- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig
11+++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
12@@ -25,6 +25,7 @@
13 #include <atomic.h>
14 #include <sysdep.h>
15 #include <kernel-features.h>
16+#include <tls.h>
17
18 #define FUTEX_WAIT 0
19 #define FUTEX_WAKE 1
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.12/etc/ld.so.conf
new file mode 100644
index 0000000000..dfa65edb85
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/etc/ld.so.conf
@@ -0,0 +1,2 @@
1/usr/local/lib
2/usr/X11R6/lib
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.12/generate-supported.mk
new file mode 100644
index 0000000000..d2a28c2dc6
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/generate-supported.mk
@@ -0,0 +1,11 @@
1#!/usr/bin/make
2
3include $(IN)
4
5all:
6 rm -f $(OUT)
7 touch $(OUT)
8 for locale in $(SUPPORTED-LOCALES); do \
9 [ $$locale = true ] && continue; \
10 echo $$locale | sed 's,/, ,' >> $(OUT); \
11 done
diff --git a/meta/recipes-core/eglibc/eglibc-2.12/shorten-build-commands.patch b/meta/recipes-core/eglibc/eglibc-2.12/shorten-build-commands.patch
new file mode 100644
index 0000000000..57835adcdb
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.12/shorten-build-commands.patch
@@ -0,0 +1,79 @@
1Source: http://sourceware.org/ml/libc-alpha/2010-03/msg00064.html
2
3This patch scratches an itch. Each individual gcc command in the
4glibc build is over 1K, which means it takes up a good chunk of my
5terminal. Most of that is include paths. Any version of GCC new
6enough to build glibc supports response files, which were added in
72005. So use a response file for the static list of include paths.
8Now the build commands are a lot shorter, and easier to use when
9developing glibc.
10
11Tested on x86_64-linux-gnu. Please apply if acceptable.
12
13--
14Daniel Jacobowitz
15CodeSourcery
16
172010-03-30 Daniel Jacobowitz <dan@codesourcery.com>
18
19 * Makeconfig (+common-includes): Define.
20 (+includes): Use @$(common-objpfx)includes.
21 * Makefile (postclean): Remove includes and includes.mk.
22 * Makerules ($(common-objpfx)includes.mk): Include and create
23 includes.mk. Create includes.
24
25Index: libc/Makeconfig
26===================================================================
27--- libc.orig/Makeconfig 2009-10-13 22:55:12.000000000 -0700
28+++ libc/Makeconfig 2010-03-31 16:02:37.120489733 -0700
29@@ -678,9 +678,10 @@ endif # $(+cflags) == ""
30 # library source directory, in the include directory, and in the
31 # current directory.
32 +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
33++common-includes = $(+sysdep-includes) $(includes) $(sysincludes)
34 +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
35- $(+sysdep-includes) $(includes) \
36- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
37+ @$(common-objpfx)includes \
38+ $(patsubst %/,-I%,$(..)) $(libio-include) -I.
39
40 # Since libio has several internal header files, we use a -I instead
41 # of many little headers in the include directory.
42Index: libc/Makefile
43===================================================================
44--- libc.orig/Makefile 2009-12-09 12:06:28.000000000 -0800
45+++ libc/Makefile 2010-03-31 16:02:37.132481508 -0700
46@@ -247,7 +247,7 @@ parent-mostlyclean: common-mostlyclean #
47 parent-clean: parent-mostlyclean common-clean
48
49 postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \
50- $(addprefix $(objpfx),sysd-dirs sysd-rules) \
51+ $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \
52 $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i)
53
54 clean: parent-clean
55Index: libc/Makerules
56===================================================================
57--- libc.orig/Makerules 2009-12-09 12:06:28.000000000 -0800
58+++ libc/Makerules 2010-03-31 16:02:37.140481645 -0700
59@@ -254,6 +254,20 @@ ifndef sysd-rules-done
60 no_deps=t
61 endif
62
63+-include $(common-objpfx)includes.mk
64+ifneq ($(+common-includes),$(saved-includes))
65+# Recreate includes.mk (and includes).
66+includes-force = FORCE
67+FORCE:
68+endif
69+$(common-objpfx)includes.mk: $(includes-force)
70+ -@rm -f $@T $(common-objpfx)includesT
71+ for inc in $(+common-includes); do echo "$$inc"; done \
72+ > $(common-objpfx)includesT
73+ mv -f $(common-objpfx)includesT $(common-objpfx)includes
74+ echo 'saved-includes := $(+common-includes)' > $@T
75+ mv -f $@T $@
76+
77 define o-iterator-doit
78 $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
79 endef
diff --git a/meta/recipes-core/eglibc/eglibc-initial.inc b/meta/recipes-core/eglibc/eglibc-initial.inc
new file mode 100644
index 0000000000..eb765df178
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-initial.inc
@@ -0,0 +1,44 @@
1SECTION = "libs"
2DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
3PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
4
5PACKAGES = ""
6PACKAGES_DYNAMIC = ""
7
8do_configure () {
9 sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
10 chmod +x ${S}/configure
11 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
12 find ${S} -name "configure" | xargs touch
13 ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
14 --prefix=/usr \
15 --without-cvs --disable-sanity-checks \
16 --with-headers=${STAGING_DIR_TARGET}${includedir} \
17 --enable-hacker-mode --enable-addons
18}
19
20do_compile () {
21 :
22}
23
24do_install () {
25 oe_runmake cross-compiling=yes install_root=${D} \
26 includedir='${includedir}' prefix='${prefix}' \
27 install-bootstrap-headers=yes install-headers
28
29 oe_runmake csu/subdir_lib
30 # Two headers -- stubs.h and features.h -- aren't installed by install-headers,
31 # so do them by hand. We can tolerate an empty stubs.h for the moment.
32 # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
33 mkdir -p ${D}${includedir}/gnu/
34 touch ${D}${includedir}/gnu/stubs.h
35 cp ${S}/include/features.h ${D}${includedir}/features.h
36
37 if [ -e ${B}/bits/stdio_lim.h ]; then
38 cp ${B}/bits/stdio_lim.h ${D}${includedir}/bits/
39 fi
40 mkdir -p ${D}${libdir}/
41 install -m 644 csu/crt[1in].o ${D}${libdir}
42 ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
43 -o ${D}${libdir}/libc.so
44}
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.12.bb b/meta/recipes-core/eglibc/eglibc-initial_2.12.bb
new file mode 100644
index 0000000000..787c762609
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-initial_2.12.bb
@@ -0,0 +1,6 @@
1require eglibc_${PV}.bb
2require eglibc-initial.inc
3
4do_configure_prepend () {
5 unset CFLAGS
6}
diff --git a/meta/recipes-core/eglibc/eglibc-package.bbclass b/meta/recipes-core/eglibc/eglibc-package.bbclass
new file mode 100644
index 0000000000..4e286afa80
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-package.bbclass
@@ -0,0 +1,381 @@
1#
2# For now, we will skip building of a gcc package if it is a uclibc one
3# and our build is not a uclibc one, and we skip a eglibc one if our build
4# is a uclibc build.
5#
6# See the note in gcc/gcc_3.4.0.oe
7#
8
9inherit qemu
10
11python __anonymous () {
12 import bb, re
13 uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
14 if uc_os:
15 raise bb.parse.SkipPackage("incompatible with target %s" %
16 bb.data.getVar('TARGET_OS', d, 1))
17}
18
19
20# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
21# is set. The idea is to avoid running localedef on the target (at first boot)
22# to decrease initial boot time and avoid localedef being killed by the OOM
23# killer which used to effectively break i18n on machines with < 128MB RAM.
24
25# default to disabled until qemu works for everyone
26ENABLE_BINARY_LOCALE_GENERATION ?= "0"
27
28# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
29BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc"
30
31# Set this to zero if you don't want ldconfig in the output package
32USE_LDCONFIG ?= "1"
33
34PACKAGES = "eglibc-dbg eglibc catchsegv sln nscd ldd localedef eglibc-utils eglibc-pic eglibc-dev eglibc-doc eglibc-locale libcidn libmemusage libsegfault eglibc-extra-nss eglibc-thread-db eglibc-pcprofile"
35PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* glibc-binary-localedata-* eglibc-gconv-* eglibc-charmap-* eglibc-localedata-* eglibc-binary-localedata-* locale-base-*"
36
37RPROVIDES_eglibc = "glibc"
38RPROVIDES_eglibc-utils = "glibc-utils"
39RPROVIDES_eglibc-pic = "glibc-pic"
40RPROVIDES_eglibc-dev = "glibc-dev"
41RPROVIDES_eglibc-doc = "glibc-doc"
42RPROVIDES_eglibc-locale = "glibc-locale"
43RPROVIDES_eglibc-extra-nss = "glibc-extra-nss"
44RPROVIDES_eglibc-thread-db = "glibc-thread-db"
45RPROVIDES_eglibc-pcprofile = "glibc-pcprofile"
46RPROVIDES_eglibc-dbg = "glibc-dbg"
47libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc*.so.* ${base_libdir}/libc*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so"
48
49FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig', '', d)}"
50FILES_ldd = "${bindir}/ldd"
51FILES_libsegfault = "${base_libdir}/libSegFault*"
52FILES_libcidn = "${base_libdir}/libcidn*.so"
53FILES_libmemusage = "${base_libdir}/libmemusage.so"
54FILES_eglibc-extra-nss = "${base_libdir}/libnss*"
55FILES_sln = "/sbin/sln"
56FILES_eglibc-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/"
57FILES_eglibc-dev_append += "${bindir}/rpcgen ${libdir}/*.a \
58 ${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
59FILES_nscd = "${sbindir}/nscd*"
60FILES_eglibc-utils = "${bindir}/* ${sbindir}/*"
61FILES_eglibc-gconv = "${libdir}/gconv/*"
62FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/gconv/.debug"
63FILES_catchsegv = "${bindir}/catchsegv"
64RDEPENDS_catchsegv = "libsegfault"
65FILES_eglibc-pcprofile = "${base_libdir}/libpcprofile.so"
66FILES_eglibc-thread-db = "${base_libdir}/libthread_db*"
67FILES_localedef = "${bindir}/localedef"
68RPROVIDES_eglibc-dev += "libc-dev"
69
70DESCRIPTION_sln = "eglibc: create symbolic links between files"
71DESCRIPTION_nscd = "eglibc: name service cache daemon for passwd, group, and hosts"
72DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search services"
73DESCRIPTION_ldd = "eglibc: print shared library dependencies"
74DESCRIPTION_localedef = "eglibc: compile locale definition files"
75DESCRIPTION_eglibc-utils = "eglibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..."
76
77def get_eglibc_fpu_setting(bb, d):
78 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
79 return "--without-fp"
80 return ""
81
82EXTRA_OECONF += "${@get_eglibc_fpu_setting(bb, d)}"
83
84OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
85
86do_configure_prepend() {
87 sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
88}
89
90do_install() {
91 oe_runmake install_root=${D} install
92 for r in ${rpcsvc}; do
93 h=`echo $r|sed -e's,\.x$,.h,'`
94 install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
95 done
96 install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
97 install -d ${D}${libdir}/locale
98 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
99 # get rid of some broken files...
100 for i in ${GLIBC_BROKEN_LOCALES}; do
101 grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
102 mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
103 done
104 rm -f ${D}/etc/rpc
105 rm -rf ${D}${datadir}/zoneinfo
106 rm -rf ${D}${libexecdir}/getconf
107}
108
109TMP_LOCALE="/tmp/locale${libdir}/locale"
110
111locale_base_postinst() {
112#!/bin/sh
113
114if [ "x$D" != "x" ]; then
115 exit 1
116fi
117
118rm -rf ${TMP_LOCALE}
119mkdir -p ${TMP_LOCALE}
120if [ -f ${libdir}/locale/locale-archive ]; then
121 cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
122fi
123localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
124mkdir -p ${libdir}/locale/
125mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
126rm -rf ${TMP_LOCALE}
127}
128
129locale_base_postrm() {
130#!/bin/sh
131
132rm -rf ${TMP_LOCALE}
133mkdir -p ${TMP_LOCALE}
134if [ -f ${libdir}/locale/locale-archive ]; then
135 cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
136fi
137localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s --prefix=/tmp/locale %s
138mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
139rm -rf ${TMP_LOCALE}
140}
141
142python __anonymous () {
143 enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
144
145 if enabled and int(enabled):
146 import re
147
148 target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
149 binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
150
151 for regexp in binary_arches.split(" "):
152 r = re.compile(regexp)
153
154 if r.match(target_arch):
155 depends = bb.data.getVar("DEPENDS", d, 1)
156 depends = "%s qemu-native" % depends
157 bb.data.setVar("DEPENDS", depends, d)
158 bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "1", d)
159 break
160}
161
162do_prep_locale_tree() {
163 treedir=${WORKDIR}/locale-tree
164 rm -rf $treedir
165 mkdir -p $treedir/bin $treedir/lib $treedir/${datadir} $treedir/${libdir}/locale
166 cp -pPR ${PKGD}${datadir}/i18n $treedir/${datadir}/i18n
167 # unzip to avoid parsing errors
168 for i in $treedir/${datadir}/i18n/charmaps/*gz; do
169 gunzip $i
170 done
171 ls -d ${PKGD}${base_libdir}/* | xargs -iBLAH cp -pPR BLAH $treedir/lib
172 if [ -f ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/lib/libgcc_s.* ]; then
173 cp -pPR ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/lib/libgcc_s.* $treedir/lib
174 fi
175 install -m 0755 ${PKGD}${bindir}/localedef $treedir/bin
176}
177
178do_collect_bins_from_locale_tree() {
179 treedir=${WORKDIR}/locale-tree
180
181 mkdir -p ${PKGD}${libdir}
182 cp -pPR $treedir/${libdir}/locale ${PKGD}${libdir}
183}
184
185python package_do_split_gconvs () {
186 import os, re
187 if (bb.data.getVar('PACKAGE_NO_GCONV', d, 1) == '1'):
188 bb.note("package requested not splitting gconvs")
189 return
190
191 if not bb.data.getVar('PACKAGES', d, 1):
192 return
193
194 libdir = bb.data.getVar('libdir', d, 1)
195 if not libdir:
196 bb.error("libdir not defined")
197 return
198 datadir = bb.data.getVar('datadir', d, 1)
199 if not datadir:
200 bb.error("datadir not defined")
201 return
202
203 gconv_libdir = base_path_join(libdir, "gconv")
204 charmap_dir = base_path_join(datadir, "i18n", "charmaps")
205 locales_dir = base_path_join(datadir, "i18n", "locales")
206 binary_locales_dir = base_path_join(libdir, "locale")
207
208 def calc_gconv_deps(fn, pkg, file_regex, output_pattern, group):
209 deps = []
210 f = open(fn, "r")
211 c_re = re.compile('^copy "(.*)"')
212 i_re = re.compile('^include "(\w+)".*')
213 for l in f.readlines():
214 m = c_re.match(l) or i_re.match(l)
215 if m:
216 dp = legitimize_package_name('eglibc-gconv-%s' % m.group(1))
217 if not dp in deps:
218 deps.append(dp)
219 f.close()
220 if deps != []:
221 bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d)
222 bb.data.setVar('RPROVIDES_%s' % pkg, pkg.replace('eglibc', 'glibc'), d)
223
224 do_split_packages(d, gconv_libdir, file_regex='^(.*)\.so$', output_pattern='eglibc-gconv-%s', description='gconv module for character set %s', hook=calc_gconv_deps, extra_depends='eglibc-gconv')
225
226 def calc_charmap_deps(fn, pkg, file_regex, output_pattern, group):
227 deps = []
228 f = open(fn, "r")
229 c_re = re.compile('^copy "(.*)"')
230 i_re = re.compile('^include "(\w+)".*')
231 for l in f.readlines():
232 m = c_re.match(l) or i_re.match(l)
233 if m:
234 dp = legitimize_package_name('eglibc-charmap-%s' % m.group(1))
235 if not dp in deps:
236 deps.append(dp)
237 f.close()
238 if deps != []:
239 bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d)
240 bb.data.setVar('RPROVIDES_%s' % pkg, pkg.replace('eglibc', 'glibc'), d)
241
242 do_split_packages(d, charmap_dir, file_regex='^(.*)\.gz$', output_pattern='eglibc-charmap-%s', description='character map for %s encoding', hook=calc_charmap_deps, extra_depends='')
243
244 def calc_locale_deps(fn, pkg, file_regex, output_pattern, group):
245 deps = []
246 f = open(fn, "r")
247 c_re = re.compile('^copy "(.*)"')
248 i_re = re.compile('^include "(\w+)".*')
249 for l in f.readlines():
250 m = c_re.match(l) or i_re.match(l)
251 if m:
252 dp = legitimize_package_name('eglibc-localedata-%s' % m.group(1))
253 if not dp in deps:
254 deps.append(dp)
255 f.close()
256 if deps != []:
257 bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d)
258 bb.data.setVar('RPROVIDES_%s' % pkg, pkg.replace('eglibc', 'glibc'), d)
259
260 do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='eglibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='')
261 bb.data.setVar('PACKAGES', bb.data.getVar('PACKAGES', d) + ' eglibc-gconv', d)
262
263 supported = bb.data.getVar('GLIBC_GENERATE_LOCALES', d, 1)
264 if not supported or supported == "all":
265 f = open(base_path_join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
266 supported = f.readlines()
267 f.close()
268 else:
269 supported = supported.split()
270 supported = map(lambda s:s.replace(".", " ") + "\n", supported)
271
272 dot_re = re.compile("(.*)\.(.*)")
273
274 # Collate the locales by base and encoding
275 encodings = {}
276 for l in supported:
277 l = l[:-1]
278 (locale, charset) = l.split(" ")
279 m = dot_re.match(locale)
280 if m:
281 locale = m.group(1)
282 if not encodings.has_key(locale):
283 encodings[locale] = []
284 encodings[locale].append(charset)
285
286 def output_locale_source(name, locale, encoding):
287 pkgname = 'locale-base-' + legitimize_package_name(name)
288
289 bb.data.setVar('RDEPENDS_%s' % pkgname, 'localedef eglibc-localedata-%s eglibc-charmap-%s' % (legitimize_package_name(locale), legitimize_package_name(encoding)), d)
290 rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
291 m = re.match("(.*)_(.*)", name)
292 if m:
293 rprovides += ' virtual-locale-%s' % m.group(1)
294 bb.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d)
295 bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
296 bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
297 bb.data.setVar('pkg_postinst_%s' % pkgname, bb.data.getVar('locale_base_postinst', d, 1) % (locale, encoding, locale), d)
298 bb.data.setVar('pkg_postrm_%s' % pkgname, bb.data.getVar('locale_base_postrm', d, 1) % (locale, encoding, locale), d)
299
300 def output_locale_binary(name, locale, encoding):
301 qemu = qemu_target_binary(d) + " -s 1048576"
302 kernel_ver = bb.data.getVar("OLDEST_KERNEL", d, 1)
303 if kernel_ver:
304 qemu += " -r %s" % (kernel_ver)
305 pkgname = 'locale-base-' + legitimize_package_name(name)
306 m = re.match("(.*)\.(.*)", name)
307 if m:
308 eglibc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
309 else:
310 eglibc_name = name
311 bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('eglibc-binary-localedata-%s' % eglibc_name), d)
312 bb.data.setVar('RPROVIDES_%s' % pkgname, 'glibc-binary-localedata-%s' % eglibc_name, d)
313 rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
314 m = re.match("(.*)_(.*)", name)
315 if m:
316 rprovides += ' virtual-locale-%s' % m.group(1)
317 bb.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d)
318 bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
319 bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
320
321 treedir = base_path_join(bb.data.getVar("WORKDIR", d, 1), "locale-tree")
322 ldlibdir = "%s/lib" % treedir
323 path = bb.data.getVar("PATH", d, 1)
324 i18npath = base_path_join(treedir, datadir, "i18n")
325
326 localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, name)
327 cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s -E LD_LIBRARY_PATH=%s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, ldlibdir, treedir, localedef_opts)
328 bb.note("generating locale %s (%s)" % (locale, encoding))
329 if os.system(cmd):
330 raise bb.build.FuncFailed("localedef returned an error (command was %s)." % cmd)
331
332 def output_locale(name, locale, encoding):
333 use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
334 if use_bin:
335 output_locale_binary(name, locale, encoding)
336 else:
337 output_locale_source(name, locale, encoding)
338
339 use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
340 if use_bin:
341 bb.note("preparing tree for binary locale generation")
342 bb.build.exec_func("do_prep_locale_tree", d)
343
344 # Reshuffle names so that UTF-8 is preferred over other encodings
345 non_utf8 = []
346 for l in encodings.keys():
347 if len(encodings[l]) == 1:
348 output_locale(l, l, encodings[l][0])
349 if encodings[l][0] != "UTF-8":
350 non_utf8.append(l)
351 else:
352 if "UTF-8" in encodings[l]:
353 output_locale(l, l, "UTF-8")
354 encodings[l].remove("UTF-8")
355 else:
356 non_utf8.append(l)
357 for e in encodings[l]:
358 output_locale('%s.%s' % (l, e), l, e)
359
360 if non_utf8 != []:
361 bb.note("the following locales are supported only in legacy encodings:")
362 bb.note(" " + " ".join(non_utf8))
363
364 use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
365 if use_bin:
366 bb.note("collecting binary locales from locale tree")
367 bb.build.exec_func("do_collect_bins_from_locale_tree", d)
368 do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='eglibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True)
369 else:
370 bb.note("generation of binary locales disabled. this may break i18n!")
371
372}
373
374# We want to do this indirection so that we can safely 'return'
375# from the called function even though we're prepending
376python populate_packages_prepend () {
377 if bb.data.getVar('DEBIAN_NAMES', d, 1):
378 bb.data.setVar('PKG_eglibc', 'libc6', d)
379 bb.data.setVar('PKG_eglibc-dev', 'libc6-dev', d)
380 bb.build.exec_func('package_do_split_gconvs', d)
381}
diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
new file mode 100644
index 0000000000..66bb90e83f
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -0,0 +1,24 @@
1DESCRIPTION = "Embedded GNU C Library"
2HOMEPAGE = "http://www.eglibc.org/home"
3SECTION = "libs"
4PRIORITY = "required"
5LICENSE = "LGPL"
6INC_PR = "r11"
7# nptl needs unwind support in gcc, which can't be built without glibc.
8DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
9#this leads to circular deps, so lets not add it yet
10#RDEPENDS_ldd += " bash"
11# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
12#RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
13PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
14PROVIDES += "virtual/libintl virtual/libiconv"
15inherit autotools
16
17LEAD_SONAME = "libc.so"
18
19GLIBC_EXTRA_OECONF ?= ""
20INHIBIT_DEFAULT_DEPS = "1"
21
22ARM_INSTRUCTION_SET = "arm"
23
24PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
diff --git a/meta/recipes-core/eglibc/eglibc_2.12.bb b/meta/recipes-core/eglibc/eglibc_2.12.bb
new file mode 100644
index 0000000000..a214980707
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc_2.12.bb
@@ -0,0 +1,97 @@
1require eglibc.inc
2
3DEPENDS += "gperf-native"
4FILESPATHPKG =. "eglibc-svn:"
5PR = "r0"
6SRCREV="10809"
7EGLIBC_BRANCH="eglibc-2_12"
8SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
9 file://eglibc-svn-arm-lowlevellock-include-tls.patch \
10 file://IO-acquire-lock-fix.patch \
11 file://shorten-build-commands.patch \
12 file://etc/ld.so.conf \
13 file://generate-supported.mk"
14S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
15B = "${WORKDIR}/build-${TARGET_SYS}"
16
17PACKAGES_DYNAMIC = "libc6*"
18RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
19PROVIDES_${PN}-dbg = "glibc-dbg"
20
21# the -isystem in bitbake.conf screws up glibc do_stage
22BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
23TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
24
25GLIBC_ADDONS ?= "ports,nptl,libidn"
26
27GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
28
29#
30# For now, we will skip building of a gcc package if it is a uclibc one
31# and our build is not a uclibc one, and we skip a glibc one if our build
32# is a uclibc build.
33#
34# See the note in gcc/gcc_3.4.0.oe
35#
36
37python __anonymous () {
38 import bb, re
39 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
40 if uc_os:
41 raise bb.parse.SkipPackage("incompatible with target %s" %
42 bb.data.getVar('TARGET_OS', d, 1))
43}
44
45EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
46 --without-cvs --disable-profile --disable-debug --without-gd \
47 --enable-clocale=gnu \
48 --enable-add-ons=${GLIBC_ADDONS},ports \
49 --with-headers=${STAGING_INCDIR} \
50 --without-selinux \
51 ${GLIBC_EXTRA_OECONF}"
52
53EXTRA_OECONF += "${@get_eglibc_fpu_setting(bb, d)}"
54
55do_unpack_append() {
56 bb.build.exec_func('do_move_ports', d)
57}
58
59do_move_ports() {
60 if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
61 rm -rf ${S}/ports
62 mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
63 fi
64}
65
66do_configure () {
67# override this function to avoid the autoconf/automake/aclocal/autoheader
68# calls for now
69# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
70# version check and doesn't really help with anything
71 if [ -z "`which rpcgen`" ]; then
72 echo "rpcgen not found. Install glibc-devel."
73 exit 1
74 fi
75 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
76 find ${S} -name "configure" | xargs touch
77 CPPFLAGS="" oe_runconf
78}
79
80rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
81 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
82 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
83
84do_compile () {
85 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
86 unset LDFLAGS
87 base_do_compile
88 (
89 cd ${S}/sunrpc/rpcsvc
90 for r in ${rpcsvc}; do
91 h=`echo $r|sed -e's,\.x$,.h,'`
92 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
93 done
94 )
95}
96
97require eglibc-package.bbclass
diff --git a/meta/recipes-core/expat/expat-2.0.1/autotools.patch b/meta/recipes-core/expat/expat-2.0.1/autotools.patch
new file mode 100644
index 0000000000..ff1578f47e
--- /dev/null
+++ b/meta/recipes-core/expat/expat-2.0.1/autotools.patch
@@ -0,0 +1,17 @@
1# avoid to use expat's own *.m4
2#
3# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-07
4
5diff -bur expat-2.0.0~orig/configure.in expat-2.0.0/configure.in
6--- expat-2.0.0~orig/configure.in 2006-01-10 19:10:46.000000000 -0600
7+++ expat-2.0.0/configure.in 2006-02-10 19:12:24.000000000 -0600
8@@ -50,9 +50,6 @@
9
10 AC_CONFIG_HEADER(expat_config.h)
11
12-sinclude(conftools/libtool.m4)
13-sinclude(conftools/ac_c_bigendian_cross.m4)
14-
15 AC_LIBTOOL_WIN32_DLL
16 AC_PROG_LIBTOOL
17
diff --git a/meta/recipes-core/expat/expat.inc b/meta/recipes-core/expat/expat.inc
new file mode 100644
index 0000000000..8c5010e481
--- /dev/null
+++ b/meta/recipes-core/expat/expat.inc
@@ -0,0 +1,19 @@
1DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)"
2HOMEPAGE = "http://expat.sourceforge.net/"
3SECTION = "libs"
4LICENSE = "MIT"
5
6SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.gz \
7 file://autotools.patch"
8
9inherit autotools lib_package
10
11# This package uses an archive format known to have issue with some
12# versions of gzip
13do_unpack[depends] += "gzip-native:do_populate_sysroot"
14
15do_configure_prepend () {
16 rm -f ${S}/conftools/libtool.m4
17}
18
19BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/expat/expat_2.0.1.bb b/meta/recipes-core/expat/expat_2.0.1.bb
new file mode 100644
index 0000000000..9983fe5838
--- /dev/null
+++ b/meta/recipes-core/expat/expat_2.0.1.bb
@@ -0,0 +1,3 @@
1require expat.inc
2
3PR = "r0"
diff --git a/meta/recipes-core/gettext/gettext-0.17/autotools.patch b/meta/recipes-core/gettext/gettext-0.17/autotools.patch
new file mode 100644
index 0000000000..9f16b1881f
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.17/autotools.patch
@@ -0,0 +1,62 @@
1Index: gettext-0.17/gettext-runtime/man/Makefile.am
2===================================================================
3--- gettext-0.17.orig/gettext-runtime/man/Makefile.am 2007-10-07 21:37:36.000000000 +0200
4+++ gettext-0.17/gettext-runtime/man/Makefile.am 2008-05-09 22:46:37.000000000 +0200
5@@ -158,8 +158,7 @@
6 $(MAN2HTML) $(srcdir)/bind_textdomain_codeset.3.in | sed -e '/CreationDate:/d' > t-$@
7 mv t-$@ $@
8
9-install-html-local:
10- $(mkdir_p) $(DESTDIR)$(htmldir)
11+install-html: installdirs-html
12 for file in $(man_HTML); do \
13 if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
14 $(INSTALL_DATA) $$dir/$$file $(DESTDIR)$(htmldir)/$$file; \
15Index: gettext-0.17/gettext-tools/man/Makefile.am
16===================================================================
17--- gettext-0.17.orig/gettext-tools/man/Makefile.am 2007-10-28 00:18:37.000000000 +0200
18+++ gettext-0.17/gettext-tools/man/Makefile.am 2008-05-09 22:46:37.000000000 +0200
19@@ -186,8 +186,7 @@
20 $(MAN2HTML) `if test -f autopoint.1; then echo .; else echo $(srcdir); fi`/autopoint.1 | sed -e '/CreationDate:/d' > t-$@
21 mv t-$@ $@
22
23-install-html-local:
24- $(mkdir_p) $(DESTDIR)$(htmldir)
25+install-html: installdirs-html
26 for file in $(man_HTML); do \
27 if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
28 $(INSTALL_DATA) $$dir/$$file $(DESTDIR)$(htmldir)/$$file; \
29Index: gettext-0.17/gettext-runtime/libasprintf/configure.ac
30===================================================================
31--- gettext-0.17.orig/gettext-runtime/libasprintf/configure.ac 2008-05-09 22:53:42.000000000 +0200
32+++ gettext-0.17/gettext-runtime/libasprintf/configure.ac 2008-05-09 22:53:54.000000000 +0200
33@@ -1,5 +1,5 @@
34 dnl Configuration for the GNU libasprintf library
35-dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
36+dnl Copyright (C) 2002-2007 Free Software Foundation, Inc.
37 dnl
38 dnl This program is free software: you can redistribute it and/or modify
39 dnl it under the terms of the GNU General Public License as published by
40@@ -54,8 +54,7 @@
41 dnl Checks for typedefs, structures, and compiler characteristics.
42 AC_C_INLINE
43 AC_TYPE_SIZE_T
44-gl_AC_TYPE_LONG_LONG
45-gt_TYPE_LONGDOUBLE
46+AC_TYPE_LONG_LONG_INT
47 gt_TYPE_WCHAR_T
48 gt_TYPE_WINT_T
49 AC_CHECK_TYPE([ptrdiff_t], ,
50@@ -79,8 +78,11 @@
51 AC_SUBST([ALLOCA_H])
52
53 AC_CHECK_FUNCS([snprintf vasprintf wcslen])
54-AC_CHECK_DECLS([_snprintf])
55+dnl Use the _snprintf function only if it is declared (because on NetBSD it
56+dnl is defined as a weak alias of snprintf; we prefer to use the latter).
57+AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
58 gt_PRINTF_POSIX
59+gl_EOVERFLOW
60
61 dnl Check for tools needed for formatting the documentation.
62 ac_aux_dir_abs=`cd $ac_aux_dir && pwd`
diff --git a/meta/recipes-core/gettext/gettext-0.17/gettext-error_print_progname.patch b/meta/recipes-core/gettext/gettext-0.17/gettext-error_print_progname.patch
new file mode 100644
index 0000000000..0f67cd0b2e
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.17/gettext-error_print_progname.patch
@@ -0,0 +1,13 @@
1Index: gettext-0.17/gettext-tools/libgettextpo/error.h
2===================================================================
3--- gettext-0.17.orig/gettext-tools/libgettextpo/error.h 2008-07-27 21:16:25.561115527 +0200
4+++ gettext-0.17/gettext-tools/libgettextpo/error.h 2008-07-27 21:16:52.454440505 +0200
5@@ -49,7 +49,7 @@
6 /* If NULL, error will flush stdout, then print on stderr the program
7 name, a colon and a space. Otherwise, error will call this
8 function without parameters instead. */
9-extern DLL_VARIABLE void (*error_print_progname) (void);
10+void (*error_print_progname) (void);
11
12 /* This variable is incremented each time `error' is called. */
13 extern DLL_VARIABLE unsigned int error_message_count;
diff --git a/meta/recipes-core/gettext/gettext-0.17/m4fix.patch b/meta/recipes-core/gettext/gettext-0.17/m4fix.patch
new file mode 100644
index 0000000000..a02457fab8
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.17/m4fix.patch
@@ -0,0 +1,50 @@
1When I try to `./autogen.sh --quick' CVS gettext, using git Autoconf,
2things fall over like this (several instances):
3
4| gnulib-m4/openmp.m4:29: error: m4_copy: won't overwrite defined macro:
5_AC_LANG_OPENMP(C++)
6| gnulib-m4/openmp.m4:29: the top level
7| autom4te: /usr/bin/m4 failed with exit status: 1
8| aclocal: autom4te failed with exit status: 1
9
10I'm not quite sure whether an Autoconf bug/incompatibility is involved
11here (therefore the Cc: to bug-autoconf). m4_copy wasn't documented in
12earlier Autoconf releases, but there may still have been problematic
13semantic changes, I don't know.
14
15Anyway, the following patch seems to fix it. OK to apply?
16
17Cheers,
18Ralf
19
202008-12-03 Ralf Wildenhues <[EMAIL PROTECTED]>
21
22 * m4/openmp.m4 (AC_OPENMP): Do not define with Autoconf 2.62 or
23 newer.
24
25Index: gettext-0.17/gettext-tools/gnulib-m4/openmp.m4
26===================================================================
27--- gettext-0.17.orig/gettext-tools/gnulib-m4/openmp.m4 2010-02-01 10:51:00.437788710 +0000
28+++ gettext-0.17/gettext-tools/gnulib-m4/openmp.m4 2010-02-01 10:51:50.697789220 +0000
29@@ -1,11 +1,13 @@
30-# openmp.m4 serial 4
31-dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
32+# openmp.m4 serial 5
33+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
34 dnl This file is free software; the Free Software Foundation
35 dnl gives unlimited permission to copy and/or distribute it,
36 dnl with or without modifications, as long as this notice is preserved.
37
38 dnl This file can be removed once we assume autoconf >= 2.62.
39
40+m4_version_prereq([2.62],, [
41+
42 # _AC_LANG_OPENMP
43 # ---------------
44 # Expands to some language dependent source code for testing the presence of
45@@ -90,3 +92,5 @@
46 fi
47 AC_SUBST([OPENMP_]_AC_LANG_PREFIX[FLAGS])
48 ])
49+
50+])
diff --git a/meta/recipes-core/gettext/gettext-0.17/use_open_properly.patch b/meta/recipes-core/gettext/gettext-0.17/use_open_properly.patch
new file mode 100644
index 0000000000..111714b543
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.17/use_open_properly.patch
@@ -0,0 +1,15 @@
1Index: gettext-0.17/gettext-tools/src/write-catalog.c
2===================================================================
3--- gettext-0.17.orig/gettext-tools/src/write-catalog.c 2008-10-16 15:18:16.000000000 +0200
4+++ gettext-0.17/gettext-tools/src/write-catalog.c 2008-10-16 18:17:13.000000000 +0200
5@@ -220,7 +220,9 @@
6 /* Open the output file. */
7 if (!to_stdout)
8 {
9- fd = open (filename, O_WRONLY | O_CREAT);
10+ fd = open (filename, O_WRONLY | O_CREAT,
11+ /* 0666 in portable POSIX notation: */
12+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
13 if (fd < 0)
14 {
15 const char *errno_description = strerror (errno);
diff --git a/meta/recipes-core/gettext/gettext-0.17/wchar-uclibc.patch b/meta/recipes-core/gettext/gettext-0.17/wchar-uclibc.patch
new file mode 100644
index 0000000000..7b3880bf77
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.17/wchar-uclibc.patch
@@ -0,0 +1,96 @@
1Index: gettext-0.17/gettext-runtime/gnulib-lib/wchar.in.h
2===================================================================
3--- gettext-0.17.orig/gettext-runtime/gnulib-lib/wchar.in.h 2008-07-29 14:51:52.336394636 +0200
4+++ gettext-0.17/gettext-runtime/gnulib-lib/wchar.in.h 2008-07-29 14:52:25.546430195 +0200
5@@ -1,6 +1,6 @@
6 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
7
8- Copyright (C) 2007 Free Software Foundation, Inc.
9+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
10
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13@@ -26,6 +26,14 @@
14 * the declaration of wcwidth().
15 */
16
17+#ifdef __need_mbstate_t
18+/* Special invocation convention inside uClibc header files. */
19+
20+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
21+
22+#else
23+/* Normal invocation convention. */
24+
25 #ifndef _GL_WCHAR_H
26
27 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
28@@ -80,3 +88,4 @@
29
30 #endif /* _GL_WCHAR_H */
31 #endif /* _GL_WCHAR_H */
32+#endif
33Index: gettext-0.17/gettext-tools/gnulib-lib/wchar.in.h
34===================================================================
35--- gettext-0.17.orig/gettext-tools/gnulib-lib/wchar.in.h 2008-07-29 14:52:03.886393956 +0200
36+++ gettext-0.17/gettext-tools/gnulib-lib/wchar.in.h 2008-07-29 14:52:50.876388000 +0200
37@@ -1,6 +1,6 @@
38 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
39
40- Copyright (C) 2007 Free Software Foundation, Inc.
41+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
42
43 This program is free software; you can redistribute it and/or modify
44 it under the terms of the GNU General Public License as published by
45@@ -26,6 +26,14 @@
46 * the declaration of wcwidth().
47 */
48
49+#ifdef __need_mbstate_t
50+/* Special invocation convention inside uClibc header files. */
51+
52+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
53+
54+#else
55+/* Normal invocation convention. */
56+
57 #ifndef _GL_WCHAR_H
58
59 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
60@@ -80,3 +88,4 @@
61
62 #endif /* _GL_WCHAR_H */
63 #endif /* _GL_WCHAR_H */
64+#endif
65Index: gettext-0.17/gettext-tools/libgettextpo/wchar.in.h
66===================================================================
67--- gettext-0.17.orig/gettext-tools/libgettextpo/wchar.in.h 2008-07-29 14:51:58.826395009 +0200
68+++ gettext-0.17/gettext-tools/libgettextpo/wchar.in.h 2008-07-29 14:52:38.609723575 +0200
69@@ -1,6 +1,6 @@
70 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
71
72- Copyright (C) 2007 Free Software Foundation, Inc.
73+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
74
75 This program is free software; you can redistribute it and/or modify
76 it under the terms of the GNU General Public License as published by
77@@ -26,6 +26,14 @@
78 * the declaration of wcwidth().
79 */
80
81+#ifdef __need_mbstate_t
82+/* Special invocation convention inside uClibc header files. */
83+
84+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
85+
86+#else
87+/* Normal invocation convention. */
88+
89 #ifndef _GL_WCHAR_H
90
91 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
92@@ -80,3 +88,4 @@
93
94 #endif /* _GL_WCHAR_H */
95 #endif /* _GL_WCHAR_H */
96+#endif
diff --git a/meta/recipes-core/gettext/gettext_0.17.bb b/meta/recipes-core/gettext/gettext_0.17.bb
new file mode 100644
index 0000000000..c945891e26
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext_0.17.bb
@@ -0,0 +1,55 @@
1DESCRIPTION = "The GNU internationalization library."
2HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
3SECTION = "libs"
4LICENSE = "GPLv3"
5PR = "r5"
6DEPENDS = "gettext-native virtual/libiconv ncurses expat"
7DEPENDS_virtclass-native = ""
8PROVIDES = "virtual/libintl"
9PROVIDES_virtclass-native = ""
10
11SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
12 file://autotools.patch;patch=1 \
13 file://wchar-uclibc.patch;patch=1 \
14 file://use_open_properly.patch;patch=1 \
15 file://m4fix.patch;patch=1 \
16 "
17
18SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
19SRC_URI_append_linux-uclibcgnueabi = " file://gettext-error_print_progname.patch;patch=1"
20
21PARALLEL_MAKE = ""
22
23inherit autotools
24
25EXTRA_OECONF += "--without-lispdir \
26 --disable-csharp \
27 --disable-libasprintf \
28 --disable-java \
29 --disable-native-java \
30 --disable-openmp \
31 --with-included-glib \
32 --with-libncurses-prefix=${STAGING_LIBDIR}/.. \
33 --without-emacs \
34 "
35
36acpaths = '-I ${S}/autoconf-lib-link/m4/ \
37 -I ${S}/gettext-runtime/m4 \
38 -I ${S}/gettext-tools/m4'
39
40
41# these lack the .x behind the .so, but shouldn't be in the -dev package
42# Otherwise you get the following results:
43# 7.4M glibc/images/ep93xx/Angstrom-console-image-glibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
44# 25M uclibc/images/ep93xx/Angstrom-console-image-uclibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
45# because gettext depends on gettext-dev, which pulls in more -dev packages:
46# 15228 KiB /ep93xx/libstdc++-dev_4.2.2-r2_ep93xx.ipk
47# 1300 KiB /ep93xx/uclibc-dev_0.9.29-r8_ep93xx.ipk
48# 140 KiB /armv4t/gettext-dev_0.14.1-r6_armv4t.ipk
49# 4 KiB /ep93xx/libgcc-s-dev_4.2.2-r2_ep93xx.ipk
50
51PACKAGES =+ "libgettextlib libgettextsrc"
52FILES_libgettextlib = "${libdir}/libgettextlib-*.so*"
53FILES_libgettextsrc = "${libdir}/libgettextsrc-*.so*"
54
55BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/60_wait-longer-for-threads-to-die.patch b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/60_wait-longer-for-threads-to-die.patch
new file mode 100644
index 0000000000..1676b3e257
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/60_wait-longer-for-threads-to-die.patch
@@ -0,0 +1,29 @@
1# copy from OE, said to borrow from Ubuntu. Not in glib-2.0 upstream yet. Add for sanity.
2#
3# by Kevin Tian <kevin.tian@intel.com>, 06/25/2010
4--- glib/tests/threadpool-test.c.old 2008-02-12 06:11:21.000000000 +0100
5+++ glib/tests/threadpool-test.c 2008-02-12 06:11:52.000000000 +0100
6@@ -5,8 +5,8 @@
7
8 #include <glib.h>
9
10-#define DEBUG_MSG(x)
11-/* #define DEBUG_MSG(args) g_printerr args ; g_printerr ("\n"); */
12+/* #define DEBUG_MSG(x) */
13+#define DEBUG_MSG(args) g_printerr args ; g_printerr ("\n");
14
15 #define WAIT 5 /* seconds */
16 #define MAX_THREADS 10
17@@ -124,10 +124,10 @@
18 DEBUG_MSG (("[unused] stopping unused threads"));
19 g_thread_pool_stop_unused_threads ();
20
21- DEBUG_MSG (("[unused] waiting ONE second for threads to die"));
22+ DEBUG_MSG (("[unused] waiting FIVE second for threads to die"));
23
24 /* Some time for threads to die. */
25- g_usleep (G_USEC_PER_SEC);
26+ g_usleep (5 * G_USEC_PER_SEC);
27
28 DEBUG_MSG (("[unused] stopped idle threads, %d remain, %d threads still exist",
29 g_thread_pool_get_num_unused_threads (),
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/configure-libtool.patch b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/configure-libtool.patch
new file mode 100644
index 0000000000..3ba79b8986
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/configure-libtool.patch
@@ -0,0 +1,34 @@
1# Poky renames libtool to $host_alias-libtool.
2# ./$host_alias-libtool isn't created until after configure runs with libtool >= 2.2.2
3# so we can't call # it at this point. We can safely assume a version is available
4# from PATH though
5
6--- glib-2.12.10/configure.in.orig 2006-06-05 13:34:08.000000000 +0100
7+++ glib-2.12.10/configure.in 2006-06-05 13:34:36.000000000 +0100
8@@ -1174,7 +1174,7 @@
9 G_MODULE_LDFLAGS=
10 else
11 export SED
12- G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
13+ G_MODULE_LDFLAGS=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
14 fi
15 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
16 G_MODULE_NEED_USCORE=0
17@@ -1265,7 +1265,7 @@
18 LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
19 dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness
20 echo "void glib_plugin_test(void) { }" > plugin.c
21- ${SHELL} ./libtool --mode=compile ${CC} -shared \
22+ ${SHELL} $host_alias-libtool --mode=compile ${CC} -shared \
23 -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null
24 AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
25 glib_cv_rtldglobal_broken,[
26@@ -1339,7 +1339,7 @@
27
28 AC_MSG_CHECKING(for the suffix of shared libraries)
29 export SED
30-shrext_cmds=`./libtool --config | grep '^shrext_cmds='`
31+shrext_cmds=`$host_alias-libtool --config | grep '^shrext_cmds='`
32 eval $shrext_cmds
33 module=yes eval std_shrext=$shrext_cmds
34 # chop the initial dot
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/gatomic-proper-pointer-get-cast.patch b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/gatomic-proper-pointer-get-cast.patch
new file mode 100644
index 0000000000..1f3920f03a
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/gatomic-proper-pointer-get-cast.patch
@@ -0,0 +1,37 @@
1# handle cast warning. borrow from OE, but updated with a better fix from glib
2# developing tree.
3#
4# by Kevin Tian <kevin.tian@intel.com>, 06/25/2010
5commit bf2719c815d719d1899b4bdb1b81ff6798471094
6Author: Lars Ellenberg <lars.ellenberg@linbit.com>
7Date: Thu Apr 15 19:03:05 2010 +0200
8
9 Cast to volatile to avoid warnings from -Wcast-qual
10
11 https://bugzilla.gnome.org/show_bug.cgi?id=457641
12
13diff --git a/glib/gatomic.h b/glib/gatomic.h
14index 7d9c318..22b28d9 100644
15--- a/glib/gatomic.h
16+++ b/glib/gatomic.h
17@@ -64,16 +64,16 @@ void g_atomic_pointer_set (volatile gpointer G_GNUC_MAY_ALI
18 #else
19 # define g_atomic_int_get(atomic) \
20 ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \
21- (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic)))
22+ (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic)))
23 # define g_atomic_int_set(atomic, newval) \
24 ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \
25- (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval)))
26+ (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval)))
27 # define g_atomic_pointer_get(atomic) \
28 ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \
29- (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic)))
30+ (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic)))
31 # define g_atomic_pointer_set(atomic, newval) \
32 ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \
33- (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval)))
34+ (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval)))
35 #endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
36
37 #define g_atomic_int_inc(atomic) (g_atomic_int_add ((atomic), 1))
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/glib-gettextize-dir.patch b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/glib-gettextize-dir.patch
new file mode 100644
index 0000000000..c44e491556
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-2.24.1/glib-gettextize-dir.patch
@@ -0,0 +1,19 @@
1# an very old patch cherry-picked in every glib-2.0 patch directory. The earliest container
2# for it is 2.6.5 in OE. The earliest commit for it is c8e5702127e507e82e6f68a4b8c546803accea9d
3# in OE side which ports from previous bitkeeper SCM. In OE side it's only used til 2.12.4.
4#
5# keep it since it's always cleaner to not hardcode destination path. Use @datadir@ is more
6# portable here. mark for upstream
7#
8# by Kevin Tian <kevin.tian@intel.com>, 06/25/2010
9--- glib-2.10.3/glib-gettextize.in.old 2006-06-21 12:46:45.000000000 +0100
10+++ glib-2.10.3/glib-gettextize.in 2006-06-21 12:48:14.000000000 +0100
11@@ -49,7 +49,7 @@
12 ;;
13 esac
14
15-gettext_dir=$prefix/share/glib-2.0/gettext
16+gettext_dir=@datadir@/glib-2.0/gettext
17
18 while test $# -gt 0; do
19 case "$1" in
diff --git a/meta/recipes-core/glib-2.0/glib-2.0.inc b/meta/recipes-core/glib-2.0/glib-2.0.inc
new file mode 100644
index 0000000000..ccbbd2b35a
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0.inc
@@ -0,0 +1,6 @@
1
2python () {
3 import bb
4 if bb.data.getVar("USE_NLS", d, 1) == "no":
5 raise bb.parse.SkipPackage("${PN} requires native language support.")
6}
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.24.1.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.24.1.bb
new file mode 100644
index 0000000000..d8d1cc52d2
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.24.1.bb
@@ -0,0 +1,11 @@
1require glib.inc
2
3PR = "r0"
4
5SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.24/glib-${PV}.tar.bz2 \
6 file://configure-libtool.patch \
7 file://gatomic-proper-pointer-get-cast.patch \
8 file://60_wait-longer-for-threads-to-die.patch"
9
10SRC_URI_append_virtclass-native = " file://glib-gettextize-dir.patch"
11BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
new file mode 100644
index 0000000000..6e7f6a3347
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -0,0 +1,34 @@
1DESCRIPTION = "GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. It works on many UNIX-like platforms, Windows, OS/2 and BeOS"
2# pcre is under BSD;
3# docs/reference/COPYING is with a 'public domai'-like license!
4LICENSE = "LGPLv2+ & BSD & public domain"
5LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
6 file://glib/glib.h;startline=4;endline=17;md5=a4332fe58b076f29d07c9c066d2967b6 \
7 file://gmodule/COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
8 file://gmodule/gmodule.h;startline=4;endline=17;md5=76ab161b37202cd004073c42fac276ed \
9 file://glib/pcre/COPYING;md5=266ebc3ff74ee9ce6fad65577667c0f4 \
10 file://glib/pcre/pcre.h;startline=11;endline=35;md5=000109ccf7c4c470b74046e2cc59f7e3 \
11 file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc"
12BUGTRACKER = "http://bugzilla.gnome.org"
13SECTION = "libs"
14
15require glib-2.0.inc
16
17DEPENDS = "glib-2.0-native gtk-doc-native virtual/libiconv virtual/libintl zip"
18DEPENDS_virtclass-native = "gtk-doc-native pkgconfig-native gettext-native"
19PACKAGES =+ "glib-2.0-utils "
20
21LEAD_SONAME = "libglib-2.0.*"
22FILES_glib-2.0-utils = "${bindir}/*"
23
24inherit autotools pkgconfig gettext
25
26S = "${WORKDIR}/glib-${PV}"
27
28EXTRA_OECONF = "--disable-debug --enable-included-printf=no"
29EXTRA_OECONF_virtclass-native = ""
30
31FILES_${PN} = "${libdir}/lib*${SOLIBS}"
32FILES_${PN}-dev += "${libdir}/glib-2.0/include"
33
34ARM_INSTRUCTION_SET = "arm"
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/arm-check-pf.patch b/meta/recipes-core/glibc/glibc-2.10.1/arm-check-pf.patch
new file mode 100644
index 0000000000..b9c72262f2
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/arm-check-pf.patch
@@ -0,0 +1,14 @@
1Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c
2===================================================================
3--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:32.451372131 +0400
4+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:51.351313426 +0400
5@@ -207,9 +207,6 @@
6 newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
7 ? in6ai_deprecated : 0)
8 | ((ifam->ifa_flags
9- & IFA_F_TEMPORARY)
10- ? in6ai_temporary : 0)
11- | ((ifam->ifa_flags
12 & IFA_F_HOMEADDRESS)
13 ? in6ai_homeaddress : 0));
14 memcpy (newp->info.addr, address ?: local,
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/arm-longlong.patch b/meta/recipes-core/glibc/glibc-2.10.1/arm-longlong.patch
new file mode 100644
index 0000000000..28aca83dff
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/arm-longlong.patch
@@ -0,0 +1,58 @@
1--- glibc-2.4/stdlib/longlong.h.ark 2006-03-11 22:49:27.000000000 +0100
2+++ glibc-2.4/stdlib/longlong.h 2006-03-11 22:55:12.000000000 +0100
3@@ -206,6 +206,14 @@
4 "rI" ((USItype) (bh)), \
5 "r" ((USItype) (al)), \
6 "rI" ((USItype) (bl)) __CLOBBER_CC)
7+/* v3m and all higher arches have long multiply support. */
8+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
9+#define umul_ppmm(xh, xl, a, b) \
10+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
11+#define UMUL_TIME 5
12+#define smul_ppmm(xh, xl, a, b) \
13+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
14+#else
15 #define umul_ppmm(xh, xl, a, b) \
16 {register USItype __t0, __t1, __t2; \
17 __asm__ ("%@ Inlined umul_ppmm\n" \
18@@ -227,7 +235,13 @@
19 : "r" ((USItype) (a)), \
20 "r" ((USItype) (b)) __CLOBBER_CC );}
21 #define UMUL_TIME 20
22+#endif
23 #define UDIV_TIME 100
24+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
25+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
26+#define COUNT_LEADING_ZEROS_0 32
27+#endif
28+
29 #endif /* __arm__ */
30
31 #if defined (__hppa) && W_TYPE_SIZE == 32
32--- glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c.ark 2006-03-11 22:56:43.000000000 +0100
33+++ glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c 2006-03-11 22:58:19.000000000 +0100
34@@ -0,0 +1,24 @@
35+/* __clz_tab -- support for longlong.h
36+ Copyright (C) 2004 Free Software Foundation, Inc.
37+ This file is part of the GNU C Library.
38+
39+ The GNU C Library is free software; you can redistribute it and/or
40+ modify it under the terms of the GNU Lesser General Public
41+ License as published by the Free Software Foundation; either
42+ version 2.1 of the License, or (at your option) any later version.
43+
44+ The GNU C Library is distributed in the hope that it will be useful,
45+ but WITHOUT ANY WARRANTY; without even the implied warranty of
46+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
47+ Lesser General Public License for more details.
48+
49+ You should have received a copy of the GNU Lesser General Public
50+ License along with the GNU C Library; if not, write to the Free
51+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
52+ 02111-1307 USA. */
53+
54+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
55+/* Nothing required. */
56+#else
57+#include <stdlib/mp_clz_tab.c>
58+#endif
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/arm-lowlevellock-include-tls.patch b/meta/recipes-core/glibc/glibc-2.10.1/arm-lowlevellock-include-tls.patch
new file mode 100644
index 0000000000..5c8062ecee
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/arm-lowlevellock-include-tls.patch
@@ -0,0 +1,12 @@
1Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
2===================================================================
3--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:35.446686910 +0400
4+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:43.774683370 +0400
5@@ -25,6 +25,7 @@
6 #include <atomic.h>
7 #include <sysdep.h>
8 #include <kernel-features.h>
9+#include <tls.h>
10
11 #define FUTEX_WAIT 0
12 #define FUTEX_WAKE 1
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/arm-memcpy.patch b/meta/recipes-core/glibc/glibc-2.10.1/arm-memcpy.patch
new file mode 100644
index 0000000000..bc2b3dab84
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/arm-memcpy.patch
@@ -0,0 +1,758 @@
1--- /dev/null 2004-02-02 20:32:13.000000000 +0000
2+++ sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
3@@ -0,0 +1,251 @@
4+/*
5+ * Optimized memmove implementation for ARM processors
6+ *
7+ * Author: Nicolas Pitre
8+ * Created: Dec 23, 2003
9+ * Copyright: (C) MontaVista Software, Inc.
10+ *
11+ * This file is free software; you can redistribute it and/or
12+ * modify it under the terms of the GNU Lesser General Public
13+ * License as published by the Free Software Foundation; either
14+ * version 2.1 of the License, or (at your option) any later version.
15+ *
16+ * This file is distributed in the hope that it will be useful,
17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19+ * Lesser General Public License for more details.
20+ */
21+
22+#include <sysdep.h>
23+
24+
25+/*
26+ * Endian independent macros for shifting bytes within registers.
27+ */
28+#ifndef __ARMEB__
29+#define pull lsr
30+#define push lsl
31+#else
32+#define pull lsl
33+#define push lsr
34+#endif
35+
36+/*
37+ * Enable data preload for architectures that support it (ARMv5 and above)
38+ */
39+#if defined(__ARM_ARCH_5__) || \
40+ defined(__ARM_ARCH_5T__) || \
41+ defined(__ARM_ARCH_5TE__)
42+#define PLD(code...) code
43+#else
44+#define PLD(code...)
45+#endif
46+
47+
48+/* char * memmove (char *dst, const char *src) */
49+ENTRY(memmove)
50+ subs ip, r0, r1
51+ cmphi r2, ip
52+ bls memcpy(PLT)
53+
54+ stmfd sp!, {r0, r4, lr}
55+ add r1, r1, r2
56+ add r0, r0, r2
57+ subs r2, r2, #4
58+ blt 25f
59+ ands ip, r0, #3
60+ PLD( pld [r1, #-4] )
61+ bne 26f
62+ ands ip, r1, #3
63+ bne 27f
64+
65+19: subs r2, r2, #4
66+ blt 24f
67+ subs r2, r2, #8
68+ blt 23f
69+ subs r2, r2, #16
70+ blt 22f
71+
72+ PLD( pld [r1, #-32] )
73+ PLD( subs r2, r2, #96 )
74+ stmfd sp!, {r5 - r8}
75+ PLD( blt 21f )
76+
77+ PLD( @ cache alignment )
78+ PLD( ands ip, r1, #31 )
79+ PLD( pld [r1, #-64] )
80+ PLD( beq 20f )
81+ PLD( cmp r2, ip )
82+ PLD( pld [r1, #-96] )
83+ PLD( blt 20f )
84+ PLD( cmp ip, #16 )
85+ PLD( sub r2, r2, ip )
86+ PLD( ldmgedb r1!, {r3 - r6} )
87+ PLD( stmgedb r0!, {r3 - r6} )
88+ PLD( beq 20f )
89+ PLD( and ip, ip, #15 )
90+ PLD( cmp ip, #8 )
91+ PLD( ldr r3, [r1, #-4]! )
92+ PLD( ldrge r4, [r1, #-4]! )
93+ PLD( ldrgt r5, [r1, #-4]! )
94+ PLD( str r3, [r0, #-4]! )
95+ PLD( strge r4, [r0, #-4]! )
96+ PLD( strgt r5, [r0, #-4]! )
97+
98+20: PLD( pld [r1, #-96] )
99+ PLD( pld [r1, #-128] )
100+21: ldmdb r1!, {r3, r4, ip, lr}
101+ subs r2, r2, #32
102+ stmdb r0!, {r3, r4, ip, lr}
103+ ldmdb r1!, {r3, r4, ip, lr}
104+ stmgedb r0!, {r3, r4, ip, lr}
105+ ldmgedb r1!, {r3, r4, ip, lr}
106+ stmgedb r0!, {r3, r4, ip, lr}
107+ ldmgedb r1!, {r3, r4, ip, lr}
108+ subges r2, r2, #32
109+ stmdb r0!, {r3, r4, ip, lr}
110+ bge 20b
111+ PLD( cmn r2, #96 )
112+ PLD( bge 21b )
113+ PLD( add r2, r2, #96 )
114+ tst r2, #31
115+ ldmfd sp!, {r5 - r8}
116+ ldmeqfd sp!, {r0, r4, pc}
117+
118+ tst r2, #16
119+22: ldmnedb r1!, {r3, r4, ip, lr}
120+ stmnedb r0!, {r3, r4, ip, lr}
121+
122+ tst r2, #8
123+23: ldmnedb r1!, {r3, r4}
124+ stmnedb r0!, {r3, r4}
125+
126+ tst r2, #4
127+24: ldrne r3, [r1, #-4]!
128+ strne r3, [r0, #-4]!
129+
130+25: ands r2, r2, #3
131+ ldmeqfd sp!, {r0, r4, pc}
132+
133+ cmp r2, #2
134+ ldrb r3, [r1, #-1]
135+ ldrgeb r4, [r1, #-2]
136+ ldrgtb ip, [r1, #-3]
137+ strb r3, [r0, #-1]
138+ strgeb r4, [r0, #-2]
139+ strgtb ip, [r0, #-3]
140+ ldmfd sp!, {r0, r4, pc}
141+
142+26: cmp ip, #2
143+ ldrb r3, [r1, #-1]!
144+ ldrgeb r4, [r1, #-1]!
145+ ldrgtb lr, [r1, #-1]!
146+ strb r3, [r0, #-1]!
147+ strgeb r4, [r0, #-1]!
148+ strgtb lr, [r0, #-1]!
149+ subs r2, r2, ip
150+ blt 25b
151+ ands ip, r1, #3
152+ beq 19b
153+
154+27: bic r1, r1, #3
155+ cmp ip, #2
156+ ldr r3, [r1]
157+ beq 35f
158+ blt 36f
159+
160+
161+ .macro backward_copy_shift push pull
162+
163+ cmp r2, #12
164+ PLD( pld [r1, #-4] )
165+ blt 33f
166+ subs r2, r2, #28
167+ stmfd sp!, {r5 - r9}
168+ blt 31f
169+
170+ PLD( subs r2, r2, #96 )
171+ PLD( pld [r1, #-32] )
172+ PLD( blt 30f )
173+ PLD( pld [r1, #-64] )
174+
175+ PLD( @ cache alignment )
176+ PLD( ands ip, r1, #31 )
177+ PLD( pld [r1, #-96] )
178+ PLD( beq 29f )
179+ PLD( cmp r2, ip )
180+ PLD( pld [r1, #-128] )
181+ PLD( blt 29f )
182+ PLD( sub r2, r2, ip )
183+28: PLD( mov r4, r3, push #\push )
184+ PLD( ldr r3, [r1, #-4]! )
185+ PLD( subs ip, ip, #4 )
186+ PLD( orr r4, r4, r3, pull #\pull )
187+ PLD( str r4, [r0, #-4]! )
188+ PLD( bgt 28b )
189+
190+29: PLD( pld [r1, #-128] )
191+30: mov lr, r3, push #\push
192+ ldmdb r1!, {r3 - r9, ip}
193+ subs r2, r2, #32
194+ orr lr, lr, ip, pull #\pull
195+ mov ip, ip, push #\push
196+ orr ip, ip, r9, pull #\pull
197+ mov r9, r9, push #\push
198+ orr r9, r9, r8, pull #\pull
199+ mov r8, r8, push #\push
200+ orr r8, r8, r7, pull #\pull
201+ mov r7, r7, push #\push
202+ orr r7, r7, r6, pull #\pull
203+ mov r6, r6, push #\push
204+ orr r6, r6, r5, pull #\pull
205+ mov r5, r5, push #\push
206+ orr r5, r5, r4, pull #\pull
207+ mov r4, r4, push #\push
208+ orr r4, r4, r3, pull #\pull
209+ stmdb r0!, {r4 - r9, ip, lr}
210+ bge 29b
211+ PLD( cmn r2, #96 )
212+ PLD( bge 30b )
213+ PLD( add r2, r2, #96 )
214+ cmn r2, #16
215+ blt 32f
216+31: mov r7, r3, push #\push
217+ ldmdb r1!, {r3 - r6}
218+ sub r2, r2, #16
219+ orr r7, r7, r6, pull #\pull
220+ mov r6, r6, push #\push
221+ orr r6, r6, r5, pull #\pull
222+ mov r5, r5, push #\push
223+ orr r5, r5, r4, pull #\pull
224+ mov r4, r4, push #\push
225+ orr r4, r4, r3, pull #\pull
226+ stmdb r0!, {r4 - r7}
227+32: adds r2, r2, #28
228+ ldmfd sp!, {r5 - r9}
229+ blt 34f
230+33: mov r4, r3, push #\push
231+ ldr r3, [r1, #-4]!
232+ subs r2, r2, #4
233+ orr r4, r4, r3, pull #\pull
234+ str r4, [r0, #-4]!
235+ bge 33b
236+34:
237+ .endm
238+
239+
240+ backward_copy_shift push=8 pull=24
241+ add r1, r1, #3
242+ b 25b
243+
244+35: backward_copy_shift push=16 pull=16
245+ add r1, r1, #2
246+ b 25b
247+
248+36: backward_copy_shift push=24 pull=8
249+ add r1, r1, #1
250+ b 25b
251+
252+ .size memmove, . - memmove
253+END(memmove)
254+libc_hidden_builtin_def (memmove)
255--- /dev/null 2004-02-02 20:32:13.000000000 +0000
256+++ sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
257@@ -0,0 +1,255 @@
258+/*
259+ * Optimized memmove implementation for ARM processors
260+ *
261+ * Author: Nicolas Pitre
262+ * Created: Dec 23, 2003
263+ * Copyright: (C) MontaVista Software, Inc.
264+ *
265+ * This file is free software; you can redistribute it and/or
266+ * modify it under the terms of the GNU Lesser General Public
267+ * License as published by the Free Software Foundation; either
268+ * version 2.1 of the License, or (at your option) any later version.
269+ *
270+ * This file is distributed in the hope that it will be useful,
271+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
272+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
273+ * Lesser General Public License for more details.
274+ */
275+
276+#include <sysdep.h>
277+
278+
279+/*
280+ * Endian independent macros for shifting bytes within registers.
281+ */
282+#ifndef __ARMEB__
283+#define pull lsr
284+#define push lsl
285+#else
286+#define pull lsl
287+#define push lsr
288+#endif
289+
290+/*
291+ * Enable data preload for architectures that support it (ARMv5 and above)
292+ */
293+#if defined(__ARM_ARCH_5__) || \
294+ defined(__ARM_ARCH_5T__) || \
295+ defined(__ARM_ARCH_5TE__)
296+#define PLD(code...) code
297+#else
298+#define PLD(code...)
299+#endif
300+
301+dst .req r1
302+src .req r0
303+
304+/* void *bcopy (const char *src, char *dst, size_t size) */
305+ENTRY(bcopy)
306+ subs ip, dst, src
307+ cmphi r2, ip
308+ movls r3, r0
309+ movls r0, r1
310+ movls r1, r3
311+ bls memcpy(PLT)
312+
313+ stmfd sp!, {r4, lr}
314+ add src, src, r2
315+ add dst, dst, r2
316+ subs r2, r2, #4
317+ blt 25f
318+ ands ip, dst, #3
319+ PLD( pld [src, #-4] )
320+ bne 26f
321+ ands ip, src, #3
322+ bne 27f
323+
324+19: subs r2, r2, #4
325+ blt 24f
326+ subs r2, r2, #8
327+ blt 23f
328+ subs r2, r2, #16
329+ blt 22f
330+
331+ PLD( pld [src, #-32] )
332+ PLD( subs r2, r2, #96 )
333+ stmfd sp!, {r5 - r8}
334+ PLD( blt 21f )
335+
336+ PLD( @ cache alignment )
337+ PLD( ands ip, src, #31 )
338+ PLD( pld [src, #-64] )
339+ PLD( beq 20f )
340+ PLD( cmp r2, ip )
341+ PLD( pld [src, #-96] )
342+ PLD( blt 20f )
343+ PLD( cmp ip, #16 )
344+ PLD( sub r2, r2, ip )
345+ PLD( ldmgedb src!, {r3 - r6} )
346+ PLD( stmgedb dst!, {r3 - r6} )
347+ PLD( beq 20f )
348+ PLD( and ip, ip, #15 )
349+ PLD( cmp ip, #8 )
350+ PLD( ldr r3, [src, #-4]! )
351+ PLD( ldrge r4, [src, #-4]! )
352+ PLD( ldrgt r5, [src, #-4]! )
353+ PLD( str r3, [dst, #-4]! )
354+ PLD( strge r4, [dst, #-4]! )
355+ PLD( strgt r5, [dst, #-4]! )
356+
357+20: PLD( pld [src, #-96] )
358+ PLD( pld [src, #-128] )
359+21: ldmdb src!, {r3, r4, ip, lr}
360+ subs r2, r2, #32
361+ stmdb dst!, {r3, r4, ip, lr}
362+ ldmdb src!, {r3, r4, ip, lr}
363+ stmgedb dst!, {r3, r4, ip, lr}
364+ ldmgedb src!, {r3, r4, ip, lr}
365+ stmgedb dst!, {r3, r4, ip, lr}
366+ ldmgedb src!, {r3, r4, ip, lr}
367+ subges r2, r2, #32
368+ stmdb dst!, {r3, r4, ip, lr}
369+ bge 20b
370+ PLD( cmn r2, #96 )
371+ PLD( bge 21b )
372+ PLD( add r2, r2, #96 )
373+ tst r2, #31
374+ ldmfd sp!, {r5 - r8}
375+ ldmeqfd sp!, {r4, pc}
376+
377+ tst r2, #16
378+22: ldmnedb src!, {r3, r4, ip, lr}
379+ stmnedb dst!, {r3, r4, ip, lr}
380+
381+ tst r2, #8
382+23: ldmnedb src!, {r3, r4}
383+ stmnedb dst!, {r3, r4}
384+
385+ tst r2, #4
386+24: ldrne r3, [src, #-4]!
387+ strne r3, [dst, #-4]!
388+
389+25: ands r2, r2, #3
390+ ldmeqfd sp!, {dst, r4, pc}
391+
392+ cmp r2, #2
393+ ldrb r3, [src, #-1]
394+ ldrgeb r4, [src, #-2]
395+ ldrgtb ip, [src, #-3]
396+ strb r3, [dst, #-1]
397+ strgeb r4, [dst, #-2]
398+ strgtb ip, [dst, #-3]
399+ ldmfd sp!, {dst, r4, pc}
400+
401+26: cmp ip, #2
402+ ldrb r3, [src, #-1]!
403+ ldrgeb r4, [src, #-1]!
404+ ldrgtb lr, [src, #-1]!
405+ strb r3, [dst, #-1]!
406+ strgeb r4, [dst, #-1]!
407+ strgtb lr, [dst, #-1]!
408+ subs r2, r2, ip
409+ blt 25b
410+ ands ip, src, #3
411+ beq 19b
412+
413+27: bic src, src, #3
414+ cmp ip, #2
415+ ldr r3, [src]
416+ beq 35f
417+ blt 36f
418+
419+
420+ .macro backward_copy_shift push pull
421+
422+ cmp r2, #12
423+ PLD( pld [src, #-4] )
424+ blt 33f
425+ subs r2, r2, #28
426+ stmfd sp!, {r5 - r9}
427+ blt 31f
428+
429+ PLD( subs r2, r2, #96 )
430+ PLD( pld [src, #-32] )
431+ PLD( blt 30f )
432+ PLD( pld [src, #-64] )
433+
434+ PLD( @ cache alignment )
435+ PLD( ands ip, src, #31 )
436+ PLD( pld [src, #-96] )
437+ PLD( beq 29f )
438+ PLD( cmp r2, ip )
439+ PLD( pld [src, #-128] )
440+ PLD( blt 29f )
441+ PLD( sub r2, r2, ip )
442+28: PLD( mov r4, r3, push #\push )
443+ PLD( ldr r3, [src, #-4]! )
444+ PLD( subs ip, ip, #4 )
445+ PLD( orr r4, r4, r3, pull #\pull )
446+ PLD( str r4, [dst, #-4]! )
447+ PLD( bgt 28b )
448+
449+29: PLD( pld [src, #-128] )
450+30: mov lr, r3, push #\push
451+ ldmdb src!, {r3 - r9, ip}
452+ subs r2, r2, #32
453+ orr lr, lr, ip, pull #\pull
454+ mov ip, ip, push #\push
455+ orr ip, ip, r9, pull #\pull
456+ mov r9, r9, push #\push
457+ orr r9, r9, r8, pull #\pull
458+ mov r8, r8, push #\push
459+ orr r8, r8, r7, pull #\pull
460+ mov r7, r7, push #\push
461+ orr r7, r7, r6, pull #\pull
462+ mov r6, r6, push #\push
463+ orr r6, r6, r5, pull #\pull
464+ mov r5, r5, push #\push
465+ orr r5, r5, r4, pull #\pull
466+ mov r4, r4, push #\push
467+ orr r4, r4, r3, pull #\pull
468+ stmdb dst!, {r4 - r9, ip, lr}
469+ bge 29b
470+ PLD( cmn r2, #96 )
471+ PLD( bge 30b )
472+ PLD( add r2, r2, #96 )
473+ cmn r2, #16
474+ blt 32f
475+31: mov r7, r3, push #\push
476+ ldmdb src!, {r3 - r6}
477+ sub r2, r2, #16
478+ orr r7, r7, r6, pull #\pull
479+ mov r6, r6, push #\push
480+ orr r6, r6, r5, pull #\pull
481+ mov r5, r5, push #\push
482+ orr r5, r5, r4, pull #\pull
483+ mov r4, r4, push #\push
484+ orr r4, r4, r3, pull #\pull
485+ stmdb dst!, {r4 - r7}
486+32: adds r2, r2, #28
487+ ldmfd sp!, {r5 - r9}
488+ blt 34f
489+33: mov r4, r3, push #\push
490+ ldr r3, [src, #-4]!
491+ subs r2, r2, #4
492+ orr r4, r4, r3, pull #\pull
493+ str r4, [dst, #-4]!
494+ bge 33b
495+34:
496+ .endm
497+
498+
499+ backward_copy_shift push=8 pull=24
500+ add src, src, #3
501+ b 25b
502+
503+35: backward_copy_shift push=16 pull=16
504+ add src, src, #2
505+ b 25b
506+
507+36: backward_copy_shift push=24 pull=8
508+ add src, src, #1
509+ b 25b
510+
511+ .size bcopy, . - bcopy
512+END(bcopy)
513
514--- /dev/null 2004-02-02 20:32:13.000000000 +0000
515+++ sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
516@@ -0,0 +1,242 @@
517+/*
518+ * Optimized memcpy implementation for ARM processors
519+ *
520+ * Author: Nicolas Pitre
521+ * Created: Dec 23, 2003
522+ * Copyright: (C) MontaVista Software, Inc.
523+ *
524+ * This file is free software; you can redistribute it and/or
525+ * modify it under the terms of the GNU Lesser General Public
526+ * License as published by the Free Software Foundation; either
527+ * version 2.1 of the License, or (at your option) any later version.
528+ *
529+ * This file is distributed in the hope that it will be useful,
530+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
531+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
532+ * Lesser General Public License for more details.
533+ */
534+
535+#include <sysdep.h>
536+
537+
538+/*
539+ * Endian independent macros for shifting bytes within registers.
540+ */
541+#ifndef __ARMEB__
542+#define pull lsr
543+#define push lsl
544+#else
545+#define pull lsl
546+#define push lsr
547+#endif
548+
549+/*
550+ * Enable data preload for architectures that support it (ARMv5 and above)
551+ */
552+#if defined(__ARM_ARCH_5__) || \
553+ defined(__ARM_ARCH_5T__) || \
554+ defined(__ARM_ARCH_5TE__)
555+#define PLD(code...) code
556+#else
557+#define PLD(code...)
558+#endif
559+
560+
561+/* char * memcpy (char *dst, const char *src) */
562+
563+ENTRY(memcpy)
564+ subs r2, r2, #4
565+ stmfd sp!, {r0, r4, lr}
566+ blt 7f
567+ ands ip, r0, #3
568+ PLD( pld [r1, #0] )
569+ bne 8f
570+ ands ip, r1, #3
571+ bne 9f
572+
573+1: subs r2, r2, #4
574+ blt 6f
575+ subs r2, r2, #8
576+ blt 5f
577+ subs r2, r2, #16
578+ blt 4f
579+
580+ PLD( subs r2, r2, #65 )
581+ stmfd sp!, {r5 - r8}
582+ PLD( blt 3f )
583+ PLD( pld [r1, #32] )
584+
585+ PLD( @ cache alignment )
586+ PLD( ands ip, r1, #31 )
587+ PLD( pld [r1, #64] )
588+ PLD( beq 2f )
589+ PLD( rsb ip, ip, #32 )
590+ PLD( cmp r2, ip )
591+ PLD( pld [r1, #96] )
592+ PLD( blt 2f )
593+ PLD( cmp ip, #16 )
594+ PLD( sub r2, r2, ip )
595+ PLD( ldmgeia r1!, {r3 - r6} )
596+ PLD( stmgeia r0!, {r3 - r6} )
597+ PLD( beq 2f )
598+ PLD( and ip, ip, #15 )
599+ PLD( cmp ip, #8 )
600+ PLD( ldr r3, [r1], #4 )
601+ PLD( ldrge r4, [r1], #4 )
602+ PLD( ldrgt r5, [r1], #4 )
603+ PLD( str r3, [r0], #4 )
604+ PLD( strge r4, [r0], #4 )
605+ PLD( strgt r5, [r0], #4 )
606+
607+2: PLD( pld [r1, #96] )
608+3: ldmia r1!, {r3 - r8, ip, lr}
609+ subs r2, r2, #32
610+ stmia r0!, {r3 - r8, ip, lr}
611+ bge 2b
612+ PLD( cmn r2, #65 )
613+ PLD( bge 3b )
614+ PLD( add r2, r2, #65 )
615+ tst r2, #31
616+ ldmfd sp!, {r5 - r8}
617+ ldmeqfd sp!, {r0, r4, pc}
618+
619+ tst r2, #16
620+4: ldmneia r1!, {r3, r4, ip, lr}
621+ stmneia r0!, {r3, r4, ip, lr}
622+
623+ tst r2, #8
624+5: ldmneia r1!, {r3, r4}
625+ stmneia r0!, {r3, r4}
626+
627+ tst r2, #4
628+6: ldrne r3, [r1], #4
629+ strne r3, [r0], #4
630+
631+7: ands r2, r2, #3
632+ ldmeqfd sp!, {r0, r4, pc}
633+
634+ cmp r2, #2
635+ ldrb r3, [r1], #1
636+ ldrgeb r4, [r1], #1
637+ ldrgtb ip, [r1]
638+ strb r3, [r0], #1
639+ strgeb r4, [r0], #1
640+ strgtb ip, [r0]
641+ ldmfd sp!, {r0, r4, pc}
642+
643+8: rsb ip, ip, #4
644+ cmp ip, #2
645+ ldrb r3, [r1], #1
646+ ldrgeb r4, [r1], #1
647+ ldrgtb lr, [r1], #1
648+ strb r3, [r0], #1
649+ strgeb r4, [r0], #1
650+ strgtb lr, [r0], #1
651+ subs r2, r2, ip
652+ blt 7b
653+ ands ip, r1, #3
654+ beq 1b
655+
656+9: bic r1, r1, #3
657+ cmp ip, #2
658+ ldr lr, [r1], #4
659+ beq 17f
660+ bgt 18f
661+
662+
663+ .macro forward_copy_shift pull push
664+
665+ cmp r2, #12
666+ PLD( pld [r1, #0] )
667+ blt 15f
668+ subs r2, r2, #28
669+ stmfd sp!, {r5 - r9}
670+ blt 13f
671+
672+ PLD( subs r2, r2, #97 )
673+ PLD( blt 12f )
674+ PLD( pld [r1, #32] )
675+
676+ PLD( @ cache alignment )
677+ PLD( rsb ip, r1, #36 )
678+ PLD( pld [r1, #64] )
679+ PLD( ands ip, ip, #31 )
680+ PLD( pld [r1, #96] )
681+ PLD( beq 11f )
682+ PLD( cmp r2, ip )
683+ PLD( pld [r1, #128] )
684+ PLD( blt 11f )
685+ PLD( sub r2, r2, ip )
686+10: PLD( mov r3, lr, pull #\pull )
687+ PLD( ldr lr, [r1], #4 )
688+ PLD( subs ip, ip, #4 )
689+ PLD( orr r3, r3, lr, push #\push )
690+ PLD( str r3, [r0], #4 )
691+ PLD( bgt 10b )
692+
693+11: PLD( pld [r1, #128] )
694+12: mov r3, lr, pull #\pull
695+ ldmia r1!, {r4 - r9, ip, lr}
696+ subs r2, r2, #32
697+ orr r3, r3, r4, push #\push
698+ mov r4, r4, pull #\pull
699+ orr r4, r4, r5, push #\push
700+ mov r5, r5, pull #\pull
701+ orr r5, r5, r6, push #\push
702+ mov r6, r6, pull #\pull
703+ orr r6, r6, r7, push #\push
704+ mov r7, r7, pull #\pull
705+ orr r7, r7, r8, push #\push
706+ mov r8, r8, pull #\pull
707+ orr r8, r8, r9, push #\push
708+ mov r9, r9, pull #\pull
709+ orr r9, r9, ip, push #\push
710+ mov ip, ip, pull #\pull
711+ orr ip, ip, lr, push #\push
712+ stmia r0!, {r3 - r9, ip}
713+ bge 11b
714+ PLD( cmn r2, #97 )
715+ PLD( bge 12b )
716+ PLD( add r2, r2, #97 )
717+ cmn r2, #16
718+ blt 14f
719+13: mov r3, lr, pull #\pull
720+ ldmia r1!, {r4 - r6, lr}
721+ sub r2, r2, #16
722+ orr r3, r3, r4, push #\push
723+ mov r4, r4, pull #\pull
724+ orr r4, r4, r5, push #\push
725+ mov r5, r5, pull #\pull
726+ orr r5, r5, r6, push #\push
727+ mov r6, r6, pull #\pull
728+ orr r6, r6, lr, push #\push
729+ stmia r0!, {r3 - r6}
730+14: adds r2, r2, #28
731+ ldmfd sp!, {r5 - r9}
732+ blt 16f
733+15: mov r3, lr, pull #\pull
734+ ldr lr, [r1], #4
735+ subs r2, r2, #4
736+ orr r3, r3, lr, push #\push
737+ str r3, [r0], #4
738+ bge 15b
739+16:
740+ .endm
741+
742+
743+ forward_copy_shift pull=8 push=24
744+ sub r1, r1, #3
745+ b 7b
746+
747+17: forward_copy_shift pull=16 push=16
748+ sub r1, r1, #2
749+ b 7b
750+
751+18: forward_copy_shift pull=24 push=8
752+ sub r1, r1, #1
753+ b 7b
754+
755+ .size memcpy, . - memcpy
756+END(memcpy)
757+libc_hidden_builtin_def (memcpy)
758+
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/dl-cache-libcmp.patch b/meta/recipes-core/glibc/glibc-2.10.1/dl-cache-libcmp.patch
new file mode 100644
index 0000000000..2fedfa6db0
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/dl-cache-libcmp.patch
@@ -0,0 +1,10 @@
1--- glibc-2.4/elf/Versions.ark 2006-03-11 23:30:09.000000000 +0100
2+++ glibc-2.4/elf/Versions 2006-03-11 23:31:44.000000000 +0100
3@@ -63,5 +63,7 @@
4 _dl_debug_state;
5 # Pointer protection.
6 __pointer_chk_guard;
7+ # for ldconfig
8+ _dl_cache_libcmp;
9 }
10 }
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/etc/ld.so.conf b/meta/recipes-core/glibc/glibc-2.10.1/etc/ld.so.conf
new file mode 100644
index 0000000000..ddd777db2a
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/etc/ld.so.conf
@@ -0,0 +1,2 @@
1/usr/local/lib
2include /etc/ld.so.conf.d/*
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/fhs-linux-paths.patch b/meta/recipes-core/glibc/glibc-2.10.1/fhs-linux-paths.patch
new file mode 100644
index 0000000000..1f32f6d7f2
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/fhs-linux-paths.patch
@@ -0,0 +1,11 @@
1--- glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h~ Thu May 27 13:16:33 1999
2+++ glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h Thu May 27 13:17:55 1999
3@@ -71,7 +71,7 @@
4 /* Provide trailing slash, since mostly used for building pathnames. */
5 #define _PATH_DEV "/dev/"
6 #define _PATH_TMP "/tmp/"
7-#define _PATH_VARDB "/var/db/"
8+#define _PATH_VARDB "/var/lib/misc/"
9 #define _PATH_VARRUN "/var/run/"
10 #define _PATH_VARTMP "/var/tmp/"
11
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/generate-supported.mk b/meta/recipes-core/glibc/glibc-2.10.1/generate-supported.mk
new file mode 100644
index 0000000000..d2a28c2dc6
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/generate-supported.mk
@@ -0,0 +1,11 @@
1#!/usr/bin/make
2
3include $(IN)
4
5all:
6 rm -f $(OUT)
7 touch $(OUT)
8 for locale in $(SUPPORTED-LOCALES); do \
9 [ $$locale = true ] && continue; \
10 echo $$locale | sed 's,/, ,' >> $(OUT); \
11 done
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_select.h b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_select.h
new file mode 100644
index 0000000000..47e7dedc30
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_select.h
@@ -0,0 +1,35 @@
1/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, write to the Free
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17 02111-1307 USA. */
18
19#ifndef _SYS_SELECT_H
20# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
21#endif
22
23
24/* We don't use `memset' because this would require a prototype and
25 the array isn't too big. */
26#define __FD_ZERO(s) \
27 do { \
28 unsigned int __i; \
29 fd_set *__arr = (s); \
30 for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
31 __FDS_BITS (__arr)[__i] = 0; \
32 } while (0)
33#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
34#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
35#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_time.h b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_time.h
new file mode 100644
index 0000000000..b3184d1de9
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_time.h
@@ -0,0 +1,75 @@
1/* System-dependent timing definitions. Generic version.
2 Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20/*
21 * Never include this file directly; use <time.h> instead.
22 */
23
24#ifndef __need_timeval
25# ifndef _BITS_TIME_H
26# define _BITS_TIME_H 1
27
28/* ISO/IEC 9899:1990 7.12.1: <time.h>
29 The macro `CLOCKS_PER_SEC' is the number per second of the value
30 returned by the `clock' function. */
31/* CAE XSH, Issue 4, Version 2: <time.h>
32 The value of CLOCKS_PER_SEC is required to be 1 million on all
33 XSI-conformant systems. */
34# define CLOCKS_PER_SEC 1000000l
35
36# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
37/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
38 presents the real value for clock ticks per second for the system. */
39# include <bits/types.h>
40extern long int __sysconf (int);
41# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
42# endif
43
44# ifdef __USE_POSIX199309
45/* Identifier for system-wide realtime clock. */
46# define CLOCK_REALTIME 0
47/* Monotonic system-wide clock. */
48# define CLOCK_MONOTONIC 1
49/* High-resolution timer from the CPU. */
50# define CLOCK_PROCESS_CPUTIME_ID 2
51/* Thread-specific CPU-time clock. */
52# define CLOCK_THREAD_CPUTIME_ID 3
53
54/* Flag to indicate time is absolute. */
55# define TIMER_ABSTIME 1
56# endif
57
58# endif /* bits/time.h */
59#endif
60
61#ifdef __need_timeval
62# undef __need_timeval
63# ifndef _STRUCT_TIMEVAL
64# define _STRUCT_TIMEVAL 1
65# include <bits/types.h>
66
67/* A time value that is accurate to the nearest
68 microsecond but also has a range of years. */
69struct timeval
70 {
71 __time_t tv_sec; /* Seconds. */
72 __suseconds_t tv_usec; /* Microseconds. */
73 };
74# endif /* struct timeval */
75#endif /* need timeval */
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_types.h b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_types.h
new file mode 100644
index 0000000000..65c8a9fe90
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_types.h
@@ -0,0 +1,200 @@
1/* bits/types.h -- definitions of __*_t types underlying *_t types.
2 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20/*
21 * Never include this file directly; use <sys/types.h> instead.
22 */
23
24#ifndef _BITS_TYPES_H
25#define _BITS_TYPES_H 1
26
27#include <features.h>
28#include <bits/wordsize.h>
29
30#define __need_size_t
31#include <stddef.h>
32
33/* Convenience types. */
34typedef unsigned char __u_char;
35typedef unsigned short int __u_short;
36typedef unsigned int __u_int;
37typedef unsigned long int __u_long;
38
39/* Fixed-size types, underlying types depend on word size and compiler. */
40typedef signed char __int8_t;
41typedef unsigned char __uint8_t;
42typedef signed short int __int16_t;
43typedef unsigned short int __uint16_t;
44typedef signed int __int32_t;
45typedef unsigned int __uint32_t;
46#if __WORDSIZE == 64
47typedef signed long int __int64_t;
48typedef unsigned long int __uint64_t;
49#elif defined __GLIBC_HAVE_LONG_LONG
50__extension__ typedef signed long long int __int64_t;
51__extension__ typedef unsigned long long int __uint64_t;
52#endif
53
54/* quad_t is also 64 bits. */
55#if __WORDSIZE == 64
56typedef long int __quad_t;
57typedef unsigned long int __u_quad_t;
58#elif defined __GLIBC_HAVE_LONG_LONG
59__extension__ typedef long long int __quad_t;
60__extension__ typedef unsigned long long int __u_quad_t;
61#else
62typedef struct
63{
64 long __val[2];
65} __quad_t;
66typedef struct
67{
68 __u_long __val[2];
69} __u_quad_t;
70#endif
71
72
73/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
74 macros for each of the OS types we define below. The definitions
75 of those macros must use the following macros for underlying types.
76 We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
77 variants of each of the following integer types on this machine.
78
79 16 -- "natural" 16-bit type (always short)
80 32 -- "natural" 32-bit type (always int)
81 64 -- "natural" 64-bit type (long or long long)
82 LONG32 -- 32-bit type, traditionally long
83 QUAD -- 64-bit type, always long long
84 WORD -- natural type of __WORDSIZE bits (int or long)
85 LONGWORD -- type of __WORDSIZE bits, traditionally long
86
87 We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
88 conventional uses of `long' or `long long' type modifiers match the
89 types we define, even when a less-adorned type would be the same size.
90 This matters for (somewhat) portably writing printf/scanf formats for
91 these types, where using the appropriate l or ll format modifiers can
92 make the typedefs and the formats match up across all GNU platforms. If
93 we used `long' when it's 64 bits where `long long' is expected, then the
94 compiler would warn about the formats not matching the argument types,
95 and the programmer changing them to shut up the compiler would break the
96 program's portability.
97
98 Here we assume what is presently the case in all the GCC configurations
99 we support: long long is always 64 bits, long is always word/address size,
100 and int is always 32 bits. */
101
102#define __S16_TYPE short int
103#define __U16_TYPE unsigned short int
104#define __S32_TYPE int
105#define __U32_TYPE unsigned int
106#define __SLONGWORD_TYPE long int
107#define __ULONGWORD_TYPE unsigned long int
108#if __WORDSIZE == 32
109# define __SQUAD_TYPE __quad_t
110# define __UQUAD_TYPE __u_quad_t
111# define __SWORD_TYPE int
112# define __UWORD_TYPE unsigned int
113# define __SLONG32_TYPE long int
114# define __ULONG32_TYPE unsigned long int
115# define __S64_TYPE __quad_t
116# define __U64_TYPE __u_quad_t
117/* We want __extension__ before typedef's that use nonstandard base types
118 such as `long long' in C89 mode. */
119# define __STD_TYPE __extension__ typedef
120#elif __WORDSIZE == 64
121# define __SQUAD_TYPE long int
122# define __UQUAD_TYPE unsigned long int
123# define __SWORD_TYPE long int
124# define __UWORD_TYPE unsigned long int
125# define __SLONG32_TYPE int
126# define __ULONG32_TYPE unsigned int
127# define __S64_TYPE long int
128# define __U64_TYPE unsigned long int
129/* No need to mark the typedef with __extension__. */
130# define __STD_TYPE typedef
131#else
132# error
133#endif
134#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
135
136
137__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
138__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
139__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
140__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
141__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
142__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
143__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
144__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
145__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
146__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
147__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
148__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
149__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
150__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
151__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
152__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
153__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
154__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
155
156__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
157__STD_TYPE __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
158__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
159
160/* Clock ID used in clock and timer functions. */
161__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
162
163/* Timer ID returned by `timer_create'. */
164__STD_TYPE __TIMER_T_TYPE __timer_t;
165
166/* Type to represent block size. */
167__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
168
169/* Types from the Large File Support interface. */
170
171/* Type to count number of disk blocks. */
172__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
173__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
174
175/* Type to count file system blocks. */
176__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
177__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
178
179/* Type to count file system nodes. */
180__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
181__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
182
183__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
184
185/* These few don't really vary by system, they always correspond
186 to one of the other defined types. */
187typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
188typedef __quad_t *__qaddr_t;
189typedef char *__caddr_t;
190
191/* Duplicates info from stdint.h but this is used in unistd.h. */
192__STD_TYPE __SWORD_TYPE __intptr_t;
193
194/* Duplicate info from sys/socket.h. */
195__STD_TYPE __U32_TYPE __socklen_t;
196
197
198#undef __STD_TYPE
199
200#endif /* bits/types.h */
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_typesizes.h b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_typesizes.h
new file mode 100644
index 0000000000..e9226c4174
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/generic-bits_typesizes.h
@@ -0,0 +1,66 @@
1/* bits/typesizes.h -- underlying types for *_t. Generic version.
2 Copyright (C) 2002, 2003 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20#ifndef _BITS_TYPES_H
21# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
22#endif
23
24#ifndef _BITS_TYPESIZES_H
25#define _BITS_TYPESIZES_H 1
26
27/* See <bits/types.h> for the meaning of these macros. This file exists so
28 that <bits/types.h> need not vary across different GNU platforms. */
29
30#define __DEV_T_TYPE __UQUAD_TYPE
31#define __UID_T_TYPE __U32_TYPE
32#define __GID_T_TYPE __U32_TYPE
33#define __INO_T_TYPE __ULONGWORD_TYPE
34#define __INO64_T_TYPE __UQUAD_TYPE
35#define __MODE_T_TYPE __U32_TYPE
36#define __NLINK_T_TYPE __UWORD_TYPE
37#define __OFF_T_TYPE __SLONGWORD_TYPE
38#define __OFF64_T_TYPE __SQUAD_TYPE
39#define __PID_T_TYPE __S32_TYPE
40#define __RLIM_T_TYPE __ULONGWORD_TYPE
41#define __RLIM64_T_TYPE __UQUAD_TYPE
42#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
43#define __BLKCNT64_T_TYPE __SQUAD_TYPE
44#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
45#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
46#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
47#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
48#define __ID_T_TYPE __U32_TYPE
49#define __CLOCK_T_TYPE __SLONGWORD_TYPE
50#define __TIME_T_TYPE __SLONGWORD_TYPE
51#define __USECONDS_T_TYPE __U32_TYPE
52#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
53#define __DADDR_T_TYPE __S32_TYPE
54#define __SWBLK_T_TYPE __SLONGWORD_TYPE
55#define __KEY_T_TYPE __S32_TYPE
56#define __CLOCKID_T_TYPE __S32_TYPE
57#define __TIMER_T_TYPE void *
58#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
59#define __FSID_T_TYPE struct { int __val[2]; }
60#define __SSIZE_T_TYPE __SWORD_TYPE
61
62/* Number of descriptors that can fit in an `fd_set'. */
63#define __FD_SETSIZE 1024
64
65
66#endif /* bits/typesizes.h */
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch b/meta/recipes-core/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
new file mode 100644
index 0000000000..09200dd43b
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
@@ -0,0 +1,35 @@
1--- glibc-2.9.orig/configure.in 2009-10-22 15:38:13.000000000 +0200
2+++ glibc-2.9/configure.in 2009-10-22 15:37:33.000000000 +0200
3@@ -844,10 +844,10 @@
4 # Accept binutils 2.13 or newer.
5 AC_CHECK_PROG_VER(AS, $AS, --version,
6 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
7- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
8+ [2.1[3-9]* | 2.2* ], AS=: critic_missing="$critic_missing as")
9 AC_CHECK_PROG_VER(LD, $LD, --version,
10 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
11- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
12+ [2.1[3-9]* | 2.2* ], LD=: critic_missing="$critic_missing ld")
13
14 # We need the physical current working directory. We cannot use the
15 # "pwd -P" shell builtin since that's not portable. Instead we try to
16--- glibc-2.9.orig/configure 2009-02-26 22:28:17.000000000 +0100
17+++ glibc-2.9/configure 2009-10-22 15:43:11.000000000 +0200
18@@ -4531,7 +4531,7 @@
19 ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
20 case $ac_prog_version in
21 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
22- 2.1[3-9]*)
23+ 2.1[3-9]* | 2.2*)
24 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
25 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
26
27@@ -4594,7 +4594,7 @@
28 ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
29 case $ac_prog_version in
30 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
31- 2.1[3-9]*)
32+ 2.1[3-9]* | 2.2*)
33 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
34 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
35
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-IO-acquire-lock-fix.diff b/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-IO-acquire-lock-fix.diff
new file mode 100644
index 0000000000..a552cf0d1f
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-IO-acquire-lock-fix.diff
@@ -0,0 +1,13 @@
1Arm needs a similar fix as http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
2
3--- /tmp/stdio-lock.h 2008-03-04 18:51:15.555038993 +0100
4+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/bits/stdio-lock.h 2008-03-04 18:51:28.445035052 +0100
5@@ -50,6 +50,8 @@
6 _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
7 _IO_flockfile (_fp)
8
9+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
10+
11 # define _IO_release_lock(_fp) \
12 _IO_funlockfile (_fp); \
13 _IO_cleanup_region_end (0)
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-no-asm-page.patch b/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-no-asm-page.patch
new file mode 100644
index 0000000000..7eb17179ba
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/glibc-arm-no-asm-page.patch
@@ -0,0 +1,15 @@
1http://sourceware.org/ml/libc-ports/2008-04/msg00005.html
2
3
4Index: glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
5===================================================================
6--- glibc-2.6.1.orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:18.000000000 -0700
7+++ glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:28.000000000 -0700
8@@ -45,7 +45,6 @@
9 #include <sys/mman.h>
10
11 #include <linux/version.h>
12-#include <asm/page.h>
13 #include <sys/sysctl.h>
14
15 #define PATH_ARM_SYSTYPE "/etc/arm_systype"
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/glibc-check_pf.patch b/meta/recipes-core/glibc/glibc-2.10.1/glibc-check_pf.patch
new file mode 100644
index 0000000000..3cff6bbcfa
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/glibc-check_pf.patch
@@ -0,0 +1,343 @@
1From libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Tue Oct 31 17:37:21 2006
2Return-Path: <libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
3Delivered-To: listarch-libc-ports at sources dot redhat dot com
4Received: (qmail 17273 invoked by alias); 31 Oct 2006 17:37:20 -0000
5Received: (qmail 17262 invoked by uid 22791); 31 Oct 2006 17:37:19 -0000
6X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_CP
7X-Spam-Check-By: sourceware.org
8Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Tue, 31 Oct 2006 17:37:11 +0000
9Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GexXw-0007Dj-30; Tue, 31 Oct 2006 12:37:08 -0500
10Date: Tue, 31 Oct 2006 12:37:08 -0500
11From: Daniel Jacobowitz <drow at false dot org>
12To: Mike Frysinger <vapier at gentoo dot org>
13Cc: libc-ports at sourceware dot org, Philip Balister <philip dot balister at gmail dot com>
14Subject: Re: Problem with glibc-2.5 on ARM
15Message-ID: <20061031173708.GJ20468@nevyn.them.org>
16References: <499146270610241149ibe030e0nd9d6b177a95b346e@mail.gmail.com> <499146270610241254u7cadf63ej2edf05cedbc5266f@mail.gmail.com> <20061024195837.GA20181@nevyn.them.org> <200610291954.27022.vapier@gentoo.org>
17MIME-Version: 1.0
18Content-Type: text/plain; charset=us-ascii
19Content-Disposition: inline
20In-Reply-To: <200610291954 dot 27022 dot vapier at gentoo dot org>
21User-Agent: Mutt/1.5.13 (2006-08-11)
22X-IsSubscribed: yes
23Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
24Precedence: bulk
25List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
26List-Post: <mailto:libc-ports at sourceware dot org>
27List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
28Sender: libc-ports-owner at sourceware dot org
29Delivered-To: mailing list libc-ports at sourceware dot org
30
31On Sun, Oct 29, 2006 at 07:54:25PM -0500, Mike Frysinger wrote:
32> On Tuesday 24 October 2006 15:58, Daniel Jacobowitz wrote:
33> > ARM is going to need a slightly different version of that file, I
34> > guess.
35>
36> would declaring req with attribute packed not help ?
37> -mike
38
39Nope. "struct rtgenmsg" would still have size 4.
40
41Philip, are you still at all interested in this for the old ABI?
42I don't have time to test this patch right now, but I think it
43will work.
44
45--
46Daniel Jacobowitz
47CodeSourcery
48
492006-10-31 Daniel Jacobowitz <dan@codesourcery.com>
50
51 * sysdeps/unix/sysv/linux/arm/check_pf.c: New file.
52 * sysdeps/unix/sysv/linux/arm/eabi/check_pf.c: New file.
53
54Index: sysdeps/unix/sysv/linux/arm/check_pf.c
55===================================================================
56RCS file: sysdeps/unix/sysv/linux/arm/check_pf.c
57diff -N sysdeps/unix/sysv/linux/arm/check_pf.c
58--- /dev/null 1 Jan 1970 00:00:00 -0000
59+++ sysdeps/unix/sysv/linux/arm/check_pf.c 31 Oct 2006 17:29:58 -0000
60@@ -0,0 +1,274 @@
61+/* Determine protocol families for which interfaces exist. ARM Linux version.
62+ Copyright (C) 2003, 2006 Free Software Foundation, Inc.
63+ This file is part of the GNU C Library.
64+
65+ The GNU C Library is free software; you can redistribute it and/or
66+ modify it under the terms of the GNU Lesser General Public
67+ License as published by the Free Software Foundation; either
68+ version 2.1 of the License, or (at your option) any later version.
69+
70+ The GNU C Library is distributed in the hope that it will be useful,
71+ but WITHOUT ANY WARRANTY; without even the implied warranty of
72+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
73+ Lesser General Public License for more details.
74+
75+ You should have received a copy of the GNU Lesser General Public
76+ License along with the GNU C Library; if not, write to the Free
77+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
78+ 02111-1307 USA. */
79+
80+#include <assert.h>
81+#include <errno.h>
82+#include <ifaddrs.h>
83+#include <netdb.h>
84+#include <stddef.h>
85+#include <string.h>
86+#include <time.h>
87+#include <unistd.h>
88+#include <sys/socket.h>
89+
90+#include <asm/types.h>
91+#include <linux/netlink.h>
92+#include <linux/rtnetlink.h>
93+
94+#include <not-cancel.h>
95+#include <kernel-features.h>
96+
97+
98+#ifndef IFA_F_TEMPORARY
99+# define IFA_F_TEMPORARY IFA_F_SECONDARY
100+#endif
101+#ifndef IFA_F_HOMEADDRESS
102+# define IFA_F_HOMEADDRESS 0
103+#endif
104+
105+
106+static int
107+make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
108+ struct in6addrinfo **in6ai, size_t *in6ailen)
109+{
110+ struct req
111+ {
112+ struct nlmsghdr nlh;
113+ struct rtgenmsg g;
114+ } req;
115+ struct sockaddr_nl nladdr;
116+
117+ /* struct rtgenmsg consists of a single byte but the ARM ABI rounds
118+ it up to a word. Clear the padding explicitly here. */
119+ assert (sizeof (req.g) == 4);
120+ memset (&req.g, '\0', sizeof (req.g));
121+
122+ req.nlh.nlmsg_len = sizeof (req);
123+ req.nlh.nlmsg_type = RTM_GETADDR;
124+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
125+ req.nlh.nlmsg_pid = 0;
126+ req.nlh.nlmsg_seq = time (NULL);
127+ req.g.rtgen_family = AF_UNSPEC;
128+
129+ memset (&nladdr, '\0', sizeof (nladdr));
130+ nladdr.nl_family = AF_NETLINK;
131+
132+ if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
133+ (struct sockaddr *) &nladdr,
134+ sizeof (nladdr))) < 0)
135+ return -1;
136+
137+ *seen_ipv4 = false;
138+ *seen_ipv6 = false;
139+
140+ bool done = false;
141+ char buf[4096];
142+ struct iovec iov = { buf, sizeof (buf) };
143+ struct in6ailist
144+ {
145+ struct in6addrinfo info;
146+ struct in6ailist *next;
147+ } *in6ailist = NULL;
148+ size_t in6ailistlen = 0;
149+
150+ do
151+ {
152+ struct msghdr msg =
153+ {
154+ (void *) &nladdr, sizeof (nladdr),
155+ &iov, 1,
156+ NULL, 0,
157+ 0
158+ };
159+
160+ ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
161+ if (read_len < 0)
162+ return -1;
163+
164+ if (msg.msg_flags & MSG_TRUNC)
165+ return -1;
166+
167+ struct nlmsghdr *nlmh;
168+ for (nlmh = (struct nlmsghdr *) buf;
169+ NLMSG_OK (nlmh, (size_t) read_len);
170+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
171+ {
172+ if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
173+ || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
174+ continue;
175+
176+ if (nlmh->nlmsg_type == RTM_NEWADDR)
177+ {
178+ struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlmh);
179+
180+ switch (ifam->ifa_family)
181+ {
182+ case AF_INET:
183+ *seen_ipv4 = true;
184+ break;
185+ case AF_INET6:
186+ *seen_ipv6 = true;
187+
188+ if (ifam->ifa_flags & (IFA_F_DEPRECATED
189+ | IFA_F_TEMPORARY
190+ | IFA_F_HOMEADDRESS))
191+ {
192+ struct rtattr *rta = IFA_RTA (ifam);
193+ size_t len = (nlmh->nlmsg_len
194+ - NLMSG_LENGTH (sizeof (*ifam)));
195+ void *local = NULL;
196+ void *address = NULL;
197+ while (RTA_OK (rta, len))
198+ {
199+ switch (rta->rta_type)
200+ {
201+ case IFA_LOCAL:
202+ local = RTA_DATA (rta);
203+ break;
204+
205+ case IFA_ADDRESS:
206+ address = RTA_DATA (rta);
207+ break;
208+ }
209+
210+ rta = RTA_NEXT (rta, len);
211+ }
212+
213+ struct in6ailist *newp = alloca (sizeof (*newp));
214+ newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
215+ ? in6ai_deprecated : 0)
216+ | ((ifam->ifa_flags
217+ & IFA_F_TEMPORARY)
218+ ? in6ai_temporary : 0)
219+ | ((ifam->ifa_flags
220+ & IFA_F_HOMEADDRESS)
221+ ? in6ai_homeaddress : 0));
222+ memcpy (newp->info.addr, address ?: local,
223+ sizeof (newp->info.addr));
224+ newp->next = in6ailist;
225+ in6ailist = newp;
226+ ++in6ailistlen;
227+ }
228+ break;
229+ default:
230+ /* Ignore. */
231+ break;
232+ }
233+ }
234+ else if (nlmh->nlmsg_type == NLMSG_DONE)
235+ /* We found the end, leave the loop. */
236+ done = true;
237+ }
238+ }
239+ while (! done);
240+
241+ close_not_cancel_no_status (fd);
242+
243+ if (in6ailist != NULL)
244+ {
245+ *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
246+ if (*in6ai == NULL)
247+ return -1;
248+
249+ *in6ailen = in6ailistlen;
250+
251+ do
252+ {
253+ (*in6ai)[--in6ailistlen] = in6ailist->info;
254+ in6ailist = in6ailist->next;
255+ }
256+ while (in6ailist != NULL);
257+ }
258+
259+ return 0;
260+}
261+
262+
263+/* We don't know if we have NETLINK support compiled in in our
264+ Kernel. */
265+#if __ASSUME_NETLINK_SUPPORT == 0
266+/* Define in ifaddrs.h. */
267+extern int __no_netlink_support attribute_hidden;
268+#else
269+# define __no_netlink_support 0
270+#endif
271+
272+
273+void
274+attribute_hidden
275+__check_pf (bool *seen_ipv4, bool *seen_ipv6,
276+ struct in6addrinfo **in6ai, size_t *in6ailen)
277+{
278+ *in6ai = NULL;
279+ *in6ailen = 0;
280+
281+ if (! __no_netlink_support)
282+ {
283+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
284+
285+ struct sockaddr_nl nladdr;
286+ memset (&nladdr, '\0', sizeof (nladdr));
287+ nladdr.nl_family = AF_NETLINK;
288+
289+ socklen_t addr_len = sizeof (nladdr);
290+
291+ if (fd >= 0
292+ && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
293+ && __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) == 0
294+ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
295+ in6ai, in6ailen) == 0)
296+ /* It worked. */
297+ return;
298+
299+ if (fd >= 0)
300+ __close (fd);
301+
302+#if __ASSUME_NETLINK_SUPPORT == 0
303+ /* Remember that there is no netlink support. */
304+ __no_netlink_support = 1;
305+#else
306+ /* We cannot determine what interfaces are available. Be
307+ pessimistic. */
308+ *seen_ipv4 = true;
309+ *seen_ipv6 = true;
310+#endif
311+ }
312+
313+#if __ASSUME_NETLINK_SUPPORT == 0
314+ /* No netlink. Get the interface list via getifaddrs. */
315+ struct ifaddrs *ifa = NULL;
316+ if (getifaddrs (&ifa) != 0)
317+ {
318+ /* We cannot determine what interfaces are available. Be
319+ pessimistic. */
320+ *seen_ipv4 = true;
321+ *seen_ipv6 = true;
322+ return;
323+ }
324+
325+ struct ifaddrs *runp;
326+ for (runp = ifa; runp != NULL; runp = runp->ifa_next)
327+ if (runp->ifa_addr->sa_family == PF_INET)
328+ *seen_ipv4 = true;
329+ else if (runp->ifa_addr->sa_family == PF_INET6)
330+ *seen_ipv6 = true;
331+
332+ (void) freeifaddrs (ifa);
333+#endif
334+}
335Index: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
336===================================================================
337RCS file: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
338diff -N sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
339--- /dev/null 1 Jan 1970 00:00:00 -0000
340+++ sysdeps/unix/sysv/linux/arm/eabi/check_pf.c 31 Oct 2006 17:29:58 -0000
341@@ -0,0 +1 @@
342+#include <sysdeps/unix/sysv/linux/check_pf.c>
343
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/ldd-unbash.patch b/meta/recipes-core/glibc/glibc-2.10.1/ldd-unbash.patch
new file mode 100644
index 0000000000..2fb8854b49
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/ldd-unbash.patch
@@ -0,0 +1,11 @@
1--- glibc-2.5/elf/ldd.bash.in.org 2006-04-30 16:06:20.000000000 +0000
2+++ glibc-2.5/elf/ldd.bash.in 2007-03-30 19:18:57.000000000 +0000
3@@ -110,7 +110,7 @@
4 # environments where the executed program might not have permissions
5 # to write to the console/tty. But only bash 3.x supports the pipefail
6 # option, and we don't bother to handle the case for older bash versions.
7-if set -o pipefail 2> /dev/null; then
8+if false; then
9 try_trace() {
10 eval $add_env '"$@"' | cat
11 }
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/ldsocache-varrun.patch b/meta/recipes-core/glibc/glibc-2.10.1/ldsocache-varrun.patch
new file mode 100644
index 0000000000..9994d4f879
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/ldsocache-varrun.patch
@@ -0,0 +1,18 @@
1This patch moves ld.so.cache from /etc to /var/run. This is for devices
2where /etc is JFFS2 or CRAMFS but /var is a ramdisk.
3
4#
5# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
6#
7
8--- libc/sysdeps/generic/dl-cache.h~ldsocache-varrun
9+++ libc/sysdeps/generic/dl-cache.h
10@@ -29,7 +29,7 @@
11 #endif
12
13 #ifndef LD_SO_CACHE
14-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
15+# define LD_SO_CACHE "/var/run/ld.so.cache"
16 #endif
17
18 #ifndef add_system_dir
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/local-args6.diff b/meta/recipes-core/glibc/glibc-2.10.1/local-args6.diff
new file mode 100644
index 0000000000..28c957f243
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/local-args6.diff
@@ -0,0 +1,12 @@
1--- glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig
2+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
3@@ -73,6 +73,9 @@
4 # define DOCARGS_5 DOCARGS_4
5 # define UNDOCARGS_5 UNDOCARGS_4
6
7+# define DOCARGS_6 DOCARGS_5
8+# define UNDOCARGS_6 UNDOCARGS_5
9+
10 # ifdef IS_IN_libpthread
11 # define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
12 # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/march-i686.patch b/meta/recipes-core/glibc/glibc-2.10.1/march-i686.patch
new file mode 100644
index 0000000000..04616032ad
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/march-i686.patch
@@ -0,0 +1,38 @@
12007-02-15 Khem Raj <kraj@xxxxxxxxxx>
2
3 * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686.
4 * nptl/sysdeps/pthread/pt-initfini.c: Ditto.
5
6
7
8Index: sysdeps/unix/sysv/linux/i386/sysdep.h
9===================================================================
10--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
11+++ sysdeps/unix/sysv/linux/i386/sysdep.h (working copy)
12@@ -29,6 +29,10 @@
13 #include <dl-sysdep.h>
14 #include <tls.h>
15
16+#if defined __i686 && defined __ASSEMBLER__
17+#undef __i686
18+#define __i686 __i686
19+#endif
20
21 /* For Linux we can use the system call table in the header file
22 /usr/include/asm/unistd.h
23Index: nptl/sysdeps/pthread/pt-initfini.c
24===================================================================
25--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
26+++ nptl/sysdeps/pthread/pt-initfini.c (working copy)
27@@ -45,6 +45,11 @@
28 /* Embed an #include to pull in the alignment and .end directives. */
29 asm ("\n#include \"defs.h\"");
30
31+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
32+asm ("\n#undef __i686");
33+asm ("\n#define __i686 __i686");
34+asm ("\n#endif");
35+
36 /* The initial common code ends here. */
37 asm ("\n/*@HEADER_ENDS*/");
38
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/nptl-crosscompile.patch b/meta/recipes-core/glibc/glibc-2.10.1/nptl-crosscompile.patch
new file mode 100644
index 0000000000..18a46ad4f1
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/nptl-crosscompile.patch
@@ -0,0 +1,26 @@
1--- glibc-2.4/nptl/sysdeps/pthread/configure.in.ark 2006-03-12 00:41:40.000000000 +0100
2+++ glibc-2.4/nptl/sysdeps/pthread/configure.in 2006-03-12 00:44:08.000000000 +0100
3@@ -45,5 +45,6 @@
4 AC_MSG_ERROR([the compiler must support C cleanup handling])
5 fi
6 else
7- AC_MSG_ERROR(forced unwind support is required)
8+ AC_MSG_WARN([forced unwind support is required, can't be verified while crosscompiling])
9+ AC_DEFINE(HAVE_FORCED_UNWIND)
10 fi
11--- glibc-2.4/nptl/sysdeps/pthread/configure.ark 2006-03-12 00:42:47.000000000 +0100
12+++ glibc-2.4/nptl/sysdeps/pthread/configure 2006-03-12 00:44:08.000000000 +0100
13@@ -153,7 +153,10 @@
14 { (exit 1); exit 1; }; }
15 fi
16 else
17- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
18-echo "$as_me: error: forced unwind support is required" >&2;}
19- { (exit 1); exit 1; }; }
20+ { echo "$as_me:$LINENO: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&5
21+echo "$as_me: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&2;}
22+ cat >>confdefs.h <<\_ACEOF
23+#define HAVE_FORCED_UNWIND 1
24+_ACEOF
25+
26 fi
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/nscd-init.patch b/meta/recipes-core/glibc/glibc-2.10.1/nscd-init.patch
new file mode 100644
index 0000000000..884609a5a3
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/nscd-init.patch
@@ -0,0 +1,39 @@
1--- nscd/nscd.init
2+++ nscd/nscd.init
3@@ -48,9 +48,8 @@
4
5 start () {
6 [ -d /var/run/nscd ] || mkdir /var/run/nscd
7- [ -d /var/db/nscd ] || mkdir /var/db/nscd
8 echo -n $"Starting $prog: "
9- daemon /usr/sbin/nscd
10+ /usr/sbin/nscd
11 RETVAL=$?
12 echo
13 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
14@@ -67,12 +66,10 @@
15 # a non-privileged user
16 rm -f /var/run/nscd/nscd.pid
17 rm -f /var/run/nscd/socket
18- success $"$prog shutdown"
19- else
20- failure $"$prog shutdown"
21 fi
22- echo
23- return $RETVAL
24+ echo "Done."
25+ # If nscd did not run, return 0 according to LSB.
26+ return 0
27 }
28
29 restart() {
30@@ -104,7 +101,8 @@
31 ;;
32 force-reload | reload)
33 echo -n $"Reloading $prog: "
34- killproc /usr/sbin/nscd -HUP
35+ # Use killall, initscripts-1.0-r115 don't support -HUP yet.
36+ killall -HUP /usr/sbin/nscd
37 RETVAL=$?
38 echo
39 ;;
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/powerpc-sqrt-hack.diff b/meta/recipes-core/glibc/glibc-2.10.1/powerpc-sqrt-hack.diff
new file mode 100644
index 0000000000..1046efb2a1
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/powerpc-sqrt-hack.diff
@@ -0,0 +1,25 @@
1diff -Nurd ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c
2--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-04-14 07:44:30.000000000 +0200
3+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-12-08 12:53:32.202227000 +0100
4@@ -25,6 +25,9 @@
5 #include <sysdep.h>
6 #include <ldsodefs.h>
7
8+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
9+
10+
11 static const double almost_half = 0.5000000000000001; /* 0.5 + 2^-53 */
12 static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
13 static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
14diff -Nurd ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c
15--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-04-14 07:44:30.000000000 +0200
16+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-12-08 12:53:36.992227000 +0100
17@@ -25,6 +25,8 @@
18 #include <sysdep.h>
19 #include <ldsodefs.h>
20
21+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
22+
23 static const float almost_half = 0.50000006; /* 0.5 + 2^-24 */
24 static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
25 static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
diff --git a/meta/recipes-core/glibc/glibc-2.10.1/rulesfix.patch b/meta/recipes-core/glibc/glibc-2.10.1/rulesfix.patch
new file mode 100644
index 0000000000..67bfc9467d
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-2.10.1/rulesfix.patch
@@ -0,0 +1,13 @@
1Index: glibc-2.9/Makerules
2===================================================================
3--- glibc-2.9.orig/Makerules 2009-09-14 16:39:21.000000000 +0100
4+++ glibc-2.9/Makerules 2009-09-14 16:39:50.000000000 +0100
5@@ -173,6 +173,8 @@
6 # it's used in sysd-rules, below.
7 $(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
8 %.sym $(common-before-compile)
9+ rm -f $(@:.h=.h.d)
10+ rm -f $(@:.h.d=.h)
11 $(AWK) -f $< $(filter %.sym,$^) \
12 | $(CC) -S -o $(@:.h.d=.h)T3 $(CFLAGS) $(CPPFLAGS) -x c - \
13 -MD -MP -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)'
diff --git a/meta/recipes-core/glibc/glibc-initial.inc b/meta/recipes-core/glibc/glibc-initial.inc
new file mode 100644
index 0000000000..8d864db91a
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-initial.inc
@@ -0,0 +1,53 @@
1SECTION = "libs"
2DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
3PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
4FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
5
6PACKAGES = ""
7PACKAGES_DYNAMIC = ""
8
9do_configure () {
10 sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
11 chmod +x ${S}/configure
12 find ${S} -name "configure" | xargs touch
13 ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
14 --without-cvs --disable-sanity-checks \
15 --with-headers=${STAGING_DIR_TARGET}${includedir} \
16 --enable-hacker-mode
17 if grep -q GLIBC_2.3 ${S}/ChangeLog; then
18 # glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, which fails without a real cross-compiler.
19 # Fortunately, we don't need errlist-compat.c, since we just need .h files,
20 # so work around this by creating a fake errlist-compat.c and satisfying its dependencies.
21 # Another workaround might be to tell configure to not use any cross options to $(CC).
22 # The real fix would be to get install-headers to not generate errlist-compat.c.
23 make sysdeps/gnu/errlist.c
24 mkdir -p stdio-common
25 touch stdio-common/errlist-compat.c
26 fi
27}
28
29do_compile () {
30 :
31}
32
33do_install () {
34 oe_runmake cross-compiling=yes install_root=${D} \
35 includedir='${includedir}' prefix='${prefix}' \
36 install-bootstrap-headers=yes install-headers
37
38 oe_runmake csu/subdir_lib
39 # Two headers -- stubs.h and features.h -- aren't installed by install-headers,
40 # so do them by hand. We can tolerate an empty stubs.h for the moment.
41 # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
42 mkdir -p ${D}${includedir}/gnu/
43 touch ${D}${includedir}/gnu/stubs.h
44 cp ${S}/include/features.h ${D}${includedir}/features.h
45
46 if [ -e ${B}/bits/stdio_lim.h ]; then
47 cp ${B}/bits/stdio_lim.h ${D}${includedir}/bits/
48 fi
49 mkdir -p ${D}${libdir}/
50 install -m 644 csu/crt[1in].o ${D}${libdir}
51 ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
52 -o ${D}${libdir}/libc.so
53}
diff --git a/meta/recipes-core/glibc/glibc-initial_2.10.1.bb b/meta/recipes-core/glibc/glibc-initial_2.10.1.bb
new file mode 100644
index 0000000000..d66297090f
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-initial_2.10.1.bb
@@ -0,0 +1,6 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
3
4do_configure_prepend () {
5 unset CFLAGS
6}
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
new file mode 100644
index 0000000000..858bc522b5
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -0,0 +1,84 @@
1#
2# For now, we will skip building of a gcc package if it is a uclibc one
3# and our build is not a uclibc one, and we skip a glibc one if our build
4# is a uclibc build.
5#
6# See the note in gcc/gcc_3.4.0.oe
7#
8
9python __anonymous () {
10 import bb, re
11 uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
12 if uc_os:
13 raise bb.parse.SkipPackage("incompatible with target %s" %
14 bb.data.getVar('TARGET_OS', d, 1))
15}
16
17
18# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
19# is set. The idea is to avoid running localedef on the target (at first boot)
20# to decrease initial boot time and avoid localedef being killed by the OOM
21# killer which used to effectively break i18n on machines with < 128MB RAM.
22
23# default to disabled until qemu works for everyone
24ENABLE_BINARY_LOCALE_GENERATION ?= "0"
25
26# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
27BINARY_LOCALE_ARCHES ?= "arm.*"
28
29
30inherit glibc-package
31
32def get_glibc_fpu_setting(bb, d):
33 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
34 return "--without-fp"
35 return ""
36
37EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
38EXTRA_OEMAKE += "rootsbindir=${base_sbindir}"
39
40OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
41
42do_install() {
43 oe_runmake install_root=${D} install
44 for r in ${rpcsvc}; do
45 h=`echo $r|sed -e's,\.x$,.h,'`
46 install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
47 done
48 install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
49 install -d ${D}${libdir}/locale
50 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
51 # get rid of some broken files...
52 for i in ${GLIBC_BROKEN_LOCALES}; do
53 grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
54 mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
55 done
56 rm -f ${D}{sysconfdir}/rpc
57 rm -f ${D}${includedir}/scsi/sg.h
58 rm -f ${D}${includedir}/scsi/scsi_ioctl.h
59 rm -f ${D}${includedir}/scsi/scsi.h
60}
61
62
63python __anonymous () {
64 enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
65
66 if enabled and int(enabled):
67 import re
68
69 target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
70 binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
71
72 for regexp in binary_arches.split(" "):
73 r = re.compile(regexp)
74
75 if r.match(target_arch):
76 depends = bb.data.getVar("DEPENDS", d, 1)
77 depends = "%s qemu-native" % depends
78 bb.data.setVar("DEPENDS", depends, d)
79 bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile", d)
80 break
81}
82
83
84
diff --git a/meta/recipes-core/glibc/glibc-stage.inc b/meta/recipes-core/glibc/glibc-stage.inc
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-stage.inc
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
new file mode 100644
index 0000000000..ecaf593b22
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -0,0 +1,42 @@
1DESCRIPTION = "GNU C Library"
2HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
3BUGTRACKER = "http://sources.redhat.com/bugzilla/"
4SECTION = "libs"
5PRIORITY = "required"
6LICENSE = "LGPLv2.1+ & GPLv2+"
7LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
8 file://elf/cache.c;beginline=1;endline=17;md5=926aac25497b1de7d630b4749005d208 \
9 file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \
10 file://bits/types.h;beginline=1;endline=18;md5=267938e7c0538e76f734551ec6ea908d"
11# nptl needs unwind support in gcc, which can't be built without glibc.
12DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
13RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
14#this leads to circular deps, so lets not add it yet
15#RDEPENDS_ldd += " bash"
16#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
17PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
18PROVIDES += "virtual/libintl virtual/libiconv"
19
20inherit autotools
21
22GLIBC_EXTRA_OECONF ?= ""
23INHIBIT_DEFAULT_DEPS = "1"
24
25do_rig_locales() {
26 # If indicated, only build a limited selection of locales
27 if [ "x${LIMIT_BUILT_LOCALES}" != "x" ]; then
28 INFILE="${S}/localedata/SUPPORTED"
29 OUTFILE="${S}/localedata/SUPPORTED.tmp"
30 head -n 3 $INFILE > $OUTFILE
31 for i in ${LIMIT_BUILT_LOCALES}; do
32 echo
33 grep $i $INFILE >> $OUTFILE
34 done
35 head --lines=-1 $OUTFILE > $INFILE
36 tail --lines=1 $OUTFILE | sed 's#\\##' >> $INFILE
37 fi
38}
39
40addtask rig_locales before do_compile after do_configure
41
42ARM_INSTRUCTION_SET = "arm"
diff --git a/meta/recipes-core/glibc/glibc_2.10.1.bb b/meta/recipes-core/glibc/glibc_2.10.1.bb
new file mode 100644
index 0000000000..2a118a4af6
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc_2.10.1.bb
@@ -0,0 +1,161 @@
1require glibc.inc
2
3ARM_INSTRUCTION_SET = "arm"
4
5PACKAGES_DYNAMIC = "libc6*"
6RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
7
8PR = "r0"
9
10# the -isystem in bitbake.conf screws up glibc do_stage
11BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
12TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
13
14GLIBC_ADDONS ?= "ports,nptl,libidn"
15
16GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
17
18FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
19
20#
21# For now, we will skip building of a gcc package if it is a uclibc one
22# and our build is not a uclibc one, and we skip a glibc one if our build
23# is a uclibc build.
24#
25# See the note in gcc/gcc_3.4.0.oe
26#
27
28python __anonymous () {
29 import bb, re
30 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
31 if uc_os:
32 raise bb.parse.SkipPackage("incompatible with target %s" %
33 bb.data.getVar('TARGET_OS', d, 1))
34}
35
36RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
37
38# file://noinfo.patch;patch=1
39# file://ldconfig.patch;patch=1;pnum=0
40# file://arm-machine-gmon.patch;patch=1;pnum=0 \
41# \
42# file://arm-ioperm.patch;patch=1;pnum=0 \
43# file://ldd.patch;patch=1;pnum=0 \
44SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
45 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
46 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
47 file://nscd-init.patch;striplevel=0 \
48 file://arm-memcpy.patch \
49 file://arm-longlong.patch \
50 file://fhs-linux-paths.patch \
51 file://dl-cache-libcmp.patch \
52 file://ldsocache-varrun.patch \
53 file://nptl-crosscompile.patch \
54 file://glibc-check_pf.patch;striplevel=0 \
55 file://ldd-unbash.patch \
56 file://glibc-arm-IO-acquire-lock-fix.diff \
57 file://generic-bits_select.h \
58 file://generic-bits_types.h \
59 file://generic-bits_typesizes.h \
60 file://generic-bits_time.h \
61 file://etc/ld.so.conf \
62 file://generate-supported.mk \
63 file://march-i686.patch;striplevel=0 \
64 file://rulesfix.patch \
65 file://glibc-2.9-enable-binutils-2.2.patch"
66
67# Build fails on sh3 and sh4 without additional patches
68SRC_URI_append_sh3 = " file://no-z-defs.patch"
69SRC_URI_append_sh4 = " file://no-z-defs.patch"
70
71#powerpc patches to add support for soft-float
72SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff"
73
74S = "${WORKDIR}/glibc-${PV}"
75B = "${WORKDIR}/build-${TARGET_SYS}"
76
77# We need this for nativesdk
78export libc_cv_slibdir = "${base_libdir}"
79
80EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
81 --without-cvs --disable-profile --disable-debug --without-gd \
82 --enable-clocale=gnu \
83 --enable-add-ons=${GLIBC_ADDONS} \
84 --with-headers=${STAGING_INCDIR} \
85 --without-selinux \
86 ${GLIBC_EXTRA_OECONF}"
87
88EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
89
90do_munge() {
91 # Integrate ports and libidn into tree
92 mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
93 mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
94
95 # Ports isn't really working... Fix it
96 # Some of this is rather dirty, but it seems to be the only
97 # quick way to get this cruft to compile
98 rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
99 ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
100 cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
101 cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
102 cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
103 cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
104 cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
105 cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
106 cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
107 # Copy in generic stuff for not yet implemented headers
108 for i in ${S}/bits/*.h; do
109 F=`basename $i`
110 [ "$F" = "local_lim.h" ] && continue
111 [ "$F" = "errno.h" ] && continue
112 test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
113 done
114 # This is harmful; we need to get the one from nptl/sysdeps/pthreads
115 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
116 # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
117 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
118 # Obsoleted by sysdeps/gnu/bits/utmp.h
119 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
120}
121
122addtask munge before do_patch after do_unpack
123
124
125do_configure () {
126# /var/db was not included to FHS
127 sed -i s:/var/db/nscd:/var/run/nscd: ${S}/nscd/nscd.h
128# override this function to avoid the autoconf/automake/aclocal/autoheader
129# calls for now
130# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
131# version check and doesn't really help with anything
132 if [ -z "`which rpcgen`" ]; then
133 echo "rpcgen not found. Install glibc-devel."
134 exit 1
135 fi
136 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
137 CPPFLAGS="" oe_runconf
138}
139
140rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
141 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
142 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
143
144do_compile () {
145 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
146 unset LDFLAGS
147 base_do_compile
148 (
149 cd ${S}/sunrpc/rpcsvc
150 for r in ${rpcsvc}; do
151 h=`echo $r|sed -e's,\.x$,.h,'`
152 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
153 done
154 )
155}
156
157require glibc-stage.inc
158
159require glibc-package.inc
160
161BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/glibc/ldconfig-native-2.5/32and64bit.patch b/meta/recipes-core/glibc/ldconfig-native-2.5/32and64bit.patch
new file mode 100644
index 0000000000..4f8d3a39ca
--- /dev/null
+++ b/meta/recipes-core/glibc/ldconfig-native-2.5/32and64bit.patch
@@ -0,0 +1,289 @@
1Index: ldconfig-native-2.5/readelflib.c
2===================================================================
3--- ldconfig-native-2.5.orig/readelflib.c 2009-05-19 09:40:17.000000000 +0100
4+++ ldconfig-native-2.5/readelflib.c 2009-05-19 09:56:18.000000000 +0100
5@@ -40,38 +40,190 @@
6
7 /* Returns 0 if everything is ok, != 0 in case of error. */
8 int
9-process_elf_file (const char *file_name, const char *lib, int *flag,
10+process_elf_file32 (const char *file_name, const char *lib, int *flag,
11 unsigned int *osversion, char **soname, void *file_contents,
12 size_t file_length)
13 {
14 int i;
15 unsigned int j;
16- ElfW(Addr) loadaddr;
17+ Elf32_Addr loadaddr;
18 unsigned int dynamic_addr;
19 size_t dynamic_size;
20 char *program_interpreter;
21
22- ElfW(Ehdr) *elf_header;
23- ElfW(Phdr) *elf_pheader, *segment;
24- ElfW(Dyn) *dynamic_segment, *dyn_entry;
25+ Elf32_Ehdr *elf_header;
26+ Elf32_Phdr *elf_pheader, *segment;
27+ Elf32_Dyn *dynamic_segment, *dyn_entry;
28 char *dynamic_strings;
29
30- elf_header = (ElfW(Ehdr) *) file_contents;
31+ elf_header = (Elf32_Ehdr *) file_contents;
32 *osversion = 0;
33
34- if (elf_header->e_ident [EI_CLASS] != ElfW (CLASS))
35+ if (elf_header->e_type != ET_DYN)
36+ {
37+ error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name,
38+ elf_header->e_type);
39+ return 1;
40+ }
41+
42+ /* Get information from elf program header. */
43+ elf_pheader = (Elf32_Phdr *) (elf_header->e_phoff + file_contents);
44+ check_ptr (elf_pheader);
45+
46+ /* The library is an elf library, now search for soname and
47+ libc5/libc6. */
48+ *flag = FLAG_ELF;
49+
50+ loadaddr = -1;
51+ dynamic_addr = 0;
52+ dynamic_size = 0;
53+ program_interpreter = NULL;
54+ for (i = 0, segment = elf_pheader;
55+ i < elf_header->e_phnum; i++, segment++)
56 {
57- if (opt_verbose)
58+ check_ptr (segment);
59+
60+ switch (segment->p_type)
61 {
62- if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
63- error (0, 0, _("%s is a 32 bit ELF file.\n"), file_name);
64- else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64)
65- error (0, 0, _("%s is a 64 bit ELF file.\n"), file_name);
66- else
67- error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name);
68+ case PT_LOAD:
69+ if (loadaddr == (Elf32_Addr) -1)
70+ loadaddr = segment->p_vaddr - segment->p_offset;
71+ break;
72+
73+ case PT_DYNAMIC:
74+ if (dynamic_addr)
75+ error (0, 0, _("more than one dynamic segment\n"));
76+
77+ dynamic_addr = segment->p_offset;
78+ dynamic_size = segment->p_filesz;
79+ break;
80+
81+ case PT_INTERP:
82+ program_interpreter = (char *) (file_contents + segment->p_offset);
83+ check_ptr (program_interpreter);
84+
85+ /* Check if this is enough to classify the binary. */
86+ for (j = 0; j < sizeof (interpreters) / sizeof (interpreters [0]);
87+ ++j)
88+ if (strcmp (program_interpreter, interpreters[j].soname) == 0)
89+ {
90+ *flag = interpreters[j].flag;
91+ break;
92+ }
93+ break;
94+
95+ case PT_NOTE:
96+ if (!*osversion && segment->p_filesz == 32 && segment->p_align >= 4)
97+ {
98+ Elf32_Word *abi_note = (Elf32_Word *) (file_contents
99+ + segment->p_offset);
100+ if (abi_note [0] == 4 && abi_note [1] == 16 && abi_note [2] == 1
101+ && memcmp (abi_note + 3, "GNU", 4) == 0)
102+ *osversion = (abi_note [4] << 24) |
103+ ((abi_note [5] & 0xff) << 16) |
104+ ((abi_note [6] & 0xff) << 8) |
105+ (abi_note [7] & 0xff);
106+ }
107+ break;
108+
109+ default:
110+ break;
111 }
112- return 1;
113+
114 }
115+ if (loadaddr == (Elf32_Addr) -1)
116+ {
117+ /* Very strange. */
118+ loadaddr = 0;
119+ }
120+
121+ /* Now we can read the dynamic sections. */
122+ if (dynamic_size == 0)
123+ return 1;
124+
125+ dynamic_segment = (Elf32_Dyn *) (file_contents + dynamic_addr);
126+ check_ptr (dynamic_segment);
127+
128+ /* Find the string table. */
129+ dynamic_strings = NULL;
130+ for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
131+ ++dyn_entry)
132+ {
133+ check_ptr (dyn_entry);
134+ if (dyn_entry->d_tag == DT_STRTAB)
135+ {
136+ dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr);
137+ check_ptr (dynamic_strings);
138+ break;
139+ }
140+ }
141+
142+ if (dynamic_strings == NULL)
143+ return 1;
144+
145+ /* Now read the DT_NEEDED and DT_SONAME entries. */
146+ for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
147+ ++dyn_entry)
148+ {
149+ if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME)
150+ {
151+ char *name = dynamic_strings + dyn_entry->d_un.d_val;
152+ check_ptr (name);
153+
154+ if (dyn_entry->d_tag == DT_NEEDED)
155+ {
156+
157+ if (*flag == FLAG_ELF)
158+ {
159+ /* Check if this is enough to classify the binary. */
160+ for (j = 0;
161+ j < sizeof (known_libs) / sizeof (known_libs [0]);
162+ ++j)
163+ if (strcmp (name, known_libs [j].soname) == 0)
164+ {
165+ *flag = known_libs [j].flag;
166+ break;
167+ }
168+ }
169+ }
170+
171+ else if (dyn_entry->d_tag == DT_SONAME)
172+ *soname = xstrdup (name);
173+
174+ /* Do we have everything we need? */
175+ if (*soname && *flag != FLAG_ELF)
176+ return 0;
177+ }
178+ }
179+
180+ /* We reach this point only if the file doesn't contain a DT_SONAME
181+ or if we can't classify the library. If it doesn't have a
182+ soname, return the name of the library. */
183+ if (*soname == NULL)
184+ *soname = xstrdup (lib);
185+
186+ return 0;
187+}
188+
189+int
190+process_elf_file64 (const char *file_name, const char *lib, int *flag,
191+ unsigned int *osversion, char **soname, void *file_contents,
192+ size_t file_length)
193+{
194+ int i;
195+ unsigned int j;
196+ Elf64_Addr loadaddr;
197+ unsigned int dynamic_addr;
198+ size_t dynamic_size;
199+ char *program_interpreter;
200+
201+ Elf64_Ehdr *elf_header;
202+ Elf64_Phdr *elf_pheader, *segment;
203+ Elf64_Dyn *dynamic_segment, *dyn_entry;
204+ char *dynamic_strings;
205+
206+ elf_header = (Elf64_Ehdr *) file_contents;
207+ *osversion = 0;
208
209 if (elf_header->e_type != ET_DYN)
210 {
211@@ -81,7 +233,7 @@
212 }
213
214 /* Get information from elf program header. */
215- elf_pheader = (ElfW(Phdr) *) (elf_header->e_phoff + file_contents);
216+ elf_pheader = (Elf64_Phdr *) (elf_header->e_phoff + file_contents);
217 check_ptr (elf_pheader);
218
219 /* The library is an elf library, now search for soname and
220@@ -100,7 +252,7 @@
221 switch (segment->p_type)
222 {
223 case PT_LOAD:
224- if (loadaddr == (ElfW(Addr)) -1)
225+ if (loadaddr == (Elf64_Addr) -1)
226 loadaddr = segment->p_vaddr - segment->p_offset;
227 break;
228
229@@ -129,7 +281,7 @@
230 case PT_NOTE:
231 if (!*osversion && segment->p_filesz == 32 && segment->p_align >= 4)
232 {
233- ElfW(Word) *abi_note = (ElfW(Word) *) (file_contents
234+ Elf64_Word *abi_note = (Elf64_Word *) (file_contents
235 + segment->p_offset);
236 if (abi_note [0] == 4 && abi_note [1] == 16 && abi_note [2] == 1
237 && memcmp (abi_note + 3, "GNU", 4) == 0)
238@@ -145,7 +297,7 @@
239 }
240
241 }
242- if (loadaddr == (ElfW(Addr)) -1)
243+ if (loadaddr == (Elf64_Addr) -1)
244 {
245 /* Very strange. */
246 loadaddr = 0;
247@@ -155,7 +307,7 @@
248 if (dynamic_size == 0)
249 return 1;
250
251- dynamic_segment = (ElfW(Dyn) *) (file_contents + dynamic_addr);
252+ dynamic_segment = (Elf64_Dyn *) (file_contents + dynamic_addr);
253 check_ptr (dynamic_segment);
254
255 /* Find the string table. */
256@@ -218,3 +370,33 @@
257
258 return 0;
259 }
260+/* Returns 0 if everything is ok, != 0 in case of error. */
261+int
262+process_elf_file (const char *file_name, const char *lib, int *flag,
263+ unsigned int *osversion, char **soname, void *file_contents,
264+ size_t file_length)
265+{
266+ int i;
267+ unsigned int j;
268+ ElfW(Addr) loadaddr;
269+ unsigned int dynamic_addr;
270+ size_t dynamic_size;
271+ char *program_interpreter;
272+
273+ ElfW(Ehdr) *elf_header;
274+ ElfW(Phdr) *elf_pheader, *segment;
275+ ElfW(Dyn) *dynamic_segment, *dyn_entry;
276+ char *dynamic_strings;
277+
278+ elf_header = (ElfW(Ehdr) *) file_contents;
279+ *osversion = 0;
280+
281+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
282+ return process_elf_file32(file_name, lib,flag, osversion, soname, file_contents, file_length);
283+ else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64)
284+ return process_elf_file64(file_name, lib,flag, osversion, soname, file_contents, file_length);
285+ error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name);
286+ return 1;
287+}
288+
289+
diff --git a/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig-native-2.5.tar.bz2 b/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig-native-2.5.tar.bz2
new file mode 100644
index 0000000000..693b35ced2
--- /dev/null
+++ b/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig-native-2.5.tar.bz2
Binary files differ
diff --git a/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig.patch b/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig.patch
new file mode 100644
index 0000000000..d143a075f5
--- /dev/null
+++ b/meta/recipes-core/glibc/ldconfig-native-2.5/ldconfig.patch
@@ -0,0 +1,460 @@
1---
2 cache.c | 11 +-
3 chroot_canon.c | 7 +
4 dl-cache.c | 235 ---------------------------------------------------------
5 dl-cache.h | 3
6 ldconfig.c | 27 ++++--
7 readlib.c | 7 +
8 xstrdup.c | 11 --
9 7 files changed, 45 insertions(+), 256 deletions(-)
10
11Index: 1/cache.c
12===================================================================
13--- 1.orig/cache.c 2007-11-23 17:05:44.000000000 +0000
14+++ 1/cache.c 2007-11-23 17:05:56.000000000 +0000
15@@ -15,6 +15,9 @@
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
18
19+#define _LARGEFILE64_SOURCE
20+#define _GNU_SOURCE
21+
22 #include <errno.h>
23 #include <error.h>
24 #include <dirent.h>
25@@ -29,8 +32,10 @@
26 #include <sys/stat.h>
27 #include <sys/types.h>
28
29-#include <ldconfig.h>
30-#include <dl-cache.h>
31+#include "ldconfig.h"
32+#include "dl-cache.h"
33+# define N_(msgid) msgid
34+#define _(msg) msg
35
36 struct cache_entry
37 {
38@@ -230,8 +235,6 @@ init_cache (void)
39 entries = NULL;
40 }
41
42-
43-
44 static
45 int compare (const struct cache_entry *e1, const struct cache_entry *e2)
46 {
47Index: 1/chroot_canon.c
48===================================================================
49--- 1.orig/chroot_canon.c 2007-11-23 17:05:44.000000000 +0000
50+++ 1/chroot_canon.c 2007-11-23 17:05:56.000000000 +0000
51@@ -16,6 +16,9 @@
52 along with this program; if not, write to the Free Software Foundation,
53 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
54
55+#define _LARGEFILE64_SOURCE
56+#define _GNU_SOURCE
57+
58 #include <stdlib.h>
59 #include <string.h>
60 #include <unistd.h>
61@@ -26,7 +29,9 @@
62 #include <stddef.h>
63 #include <stdint.h>
64
65-#include <ldconfig.h>
66+#include "ldconfig.h"
67+
68+#define __set_errno(Val) errno = (Val)
69
70 #ifndef PATH_MAX
71 #define PATH_MAX 1024
72Index: 1/dl-cache.c
73===================================================================
74--- 1.orig/dl-cache.c 2007-11-23 17:05:44.000000000 +0000
75+++ 1/dl-cache.c 2007-11-23 17:05:56.000000000 +0000
76@@ -19,12 +19,12 @@
77
78 #include <assert.h>
79 #include <unistd.h>
80-#include <ldsodefs.h>
81+//#include "ldsodefs.h"
82 #include <sys/mman.h>
83 #include <dl-cache.h>
84 #include <dl-procinfo.h>
85
86-#include <stdio-common/_itoa.h>
87+//#include "_itoa.h"
88
89 #ifndef _DL_PLATFORMS_COUNT
90 # define _DL_PLATFORMS_COUNT 0
91@@ -38,103 +38,7 @@ static size_t cachesize;
92 /* 1 if cache_data + PTR points into the cache. */
93 #define _dl_cache_verify_ptr(ptr) (ptr < cache_data_size)
94
95-#define SEARCH_CACHE(cache) \
96-/* We use binary search since the table is sorted in the cache file. \
97- The first matching entry in the table is returned. \
98- It is important to use the same algorithm as used while generating \
99- the cache file. */ \
100-do \
101- { \
102- left = 0; \
103- right = cache->nlibs - 1; \
104- \
105- while (left <= right) \
106- { \
107- __typeof__ (cache->libs[0].key) key; \
108- \
109- middle = (left + right) / 2; \
110- \
111- key = cache->libs[middle].key; \
112- \
113- /* Make sure string table indices are not bogus before using \
114- them. */ \
115- if (! _dl_cache_verify_ptr (key)) \
116- { \
117- cmpres = 1; \
118- break; \
119- } \
120- \
121- /* Actually compare the entry with the key. */ \
122- cmpres = _dl_cache_libcmp (name, cache_data + key); \
123- if (__builtin_expect (cmpres == 0, 0)) \
124- { \
125- /* Found it. LEFT now marks the last entry for which we \
126- know the name is correct. */ \
127- left = middle; \
128- \
129- /* There might be entries with this name before the one we \
130- found. So we have to find the beginning. */ \
131- while (middle > 0) \
132- { \
133- __typeof__ (cache->libs[0].key) key; \
134- \
135- key = cache->libs[middle - 1].key; \
136- /* Make sure string table indices are not bogus before \
137- using them. */ \
138- if (! _dl_cache_verify_ptr (key) \
139- /* Actually compare the entry. */ \
140- || _dl_cache_libcmp (name, cache_data + key) != 0) \
141- break; \
142- --middle; \
143- } \
144- \
145- do \
146- { \
147- int flags; \
148- __typeof__ (cache->libs[0]) *lib = &cache->libs[middle]; \
149- \
150- /* Only perform the name test if necessary. */ \
151- if (middle > left \
152- /* We haven't seen this string so far. Test whether the \
153- index is ok and whether the name matches. Otherwise \
154- we are done. */ \
155- && (! _dl_cache_verify_ptr (lib->key) \
156- || (_dl_cache_libcmp (name, cache_data + lib->key) \
157- != 0))) \
158- break; \
159- \
160- flags = lib->flags; \
161- if (_dl_cache_check_flags (flags) \
162- && _dl_cache_verify_ptr (lib->value)) \
163- { \
164- if (best == NULL || flags == GLRO(dl_correct_cache_id)) \
165- { \
166- HWCAP_CHECK; \
167- best = cache_data + lib->value; \
168- \
169- if (flags == GLRO(dl_correct_cache_id)) \
170- /* We've found an exact match for the shared \
171- object and no general `ELF' release. Stop \
172- searching. */ \
173- break; \
174- } \
175- } \
176- } \
177- while (++middle <= right); \
178- break; \
179- } \
180- \
181- if (cmpres < 0) \
182- left = middle + 1; \
183- else \
184- right = middle - 1; \
185- } \
186- } \
187-while (0)
188-
189-
190 int
191-internal_function
192 _dl_cache_libcmp (const char *p1, const char *p2)
193 {
194 while (*p1 != '\0')
195@@ -173,139 +77,4 @@ _dl_cache_libcmp (const char *p1, const
196 }
197
198
199-/* Look up NAME in ld.so.cache and return the file name stored there,
200- or null if none is found. */
201
202-const char *
203-internal_function
204-_dl_load_cache_lookup (const char *name)
205-{
206- int left, right, middle;
207- int cmpres;
208- const char *cache_data;
209- uint32_t cache_data_size;
210- const char *best;
211-
212- /* Print a message if the loading of libs is traced. */
213- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0))
214- _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE);
215-
216- if (cache == NULL)
217- {
218- /* Read the contents of the file. */
219- void *file = _dl_sysdep_read_whole_file (LD_SO_CACHE, &cachesize,
220- PROT_READ);
221-
222- /* We can handle three different cache file formats here:
223- - the old libc5/glibc2.0/2.1 format
224- - the old format with the new format in it
225- - only the new format
226- The following checks if the cache contains any of these formats. */
227- if (file != MAP_FAILED && cachesize > sizeof *cache
228- && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0)
229- {
230- size_t offset;
231- /* Looks ok. */
232- cache = file;
233-
234- /* Check for new version. */
235- offset = ALIGN_CACHE (sizeof (struct cache_file)
236- + cache->nlibs * sizeof (struct file_entry));
237-
238- cache_new = (struct cache_file_new *) ((void *) cache + offset);
239- if (cachesize < (offset + sizeof (struct cache_file_new))
240- || memcmp (cache_new->magic, CACHEMAGIC_VERSION_NEW,
241- sizeof CACHEMAGIC_VERSION_NEW - 1) != 0)
242- cache_new = (void *) -1;
243- }
244- else if (file != MAP_FAILED && cachesize > sizeof *cache_new
245- && memcmp (file, CACHEMAGIC_VERSION_NEW,
246- sizeof CACHEMAGIC_VERSION_NEW - 1) == 0)
247- {
248- cache_new = file;
249- cache = file;
250- }
251- else
252- {
253- if (file != MAP_FAILED)
254- __munmap (file, cachesize);
255- cache = (void *) -1;
256- }
257-
258- assert (cache != NULL);
259- }
260-
261- if (cache == (void *) -1)
262- /* Previously looked for the cache file and didn't find it. */
263- return NULL;
264-
265- best = NULL;
266-
267- if (cache_new != (void *) -1)
268- {
269- uint64_t platform;
270-
271- /* This is where the strings start. */
272- cache_data = (const char *) cache_new;
273-
274- /* Now we can compute how large the string table is. */
275- cache_data_size = (const char *) cache + cachesize - cache_data;
276-
277- platform = _dl_string_platform (GLRO(dl_platform));
278- if (platform != (uint64_t) -1)
279- platform = 1ULL << platform;
280-
281- /* Only accept hwcap if it's for the right platform. */
282-#ifdef USE_TLS
283-# define _DL_HWCAP_TLS_MASK (1LL << 63)
284-#else
285-# define _DL_HWCAP_TLS_MASK 0
286-#endif
287-#define HWCAP_CHECK \
288- if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \
289- continue; \
290- if (_DL_PLATFORMS_COUNT \
291- && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \
292- && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \
293- continue; \
294- if (lib->hwcap \
295- & ~(GLRO(dl_hwcap) | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK)) \
296- continue
297- SEARCH_CACHE (cache_new);
298- }
299- else
300- {
301- /* This is where the strings start. */
302- cache_data = (const char *) &cache->libs[cache->nlibs];
303-
304- /* Now we can compute how large the string table is. */
305- cache_data_size = (const char *) cache + cachesize - cache_data;
306-
307-#undef HWCAP_CHECK
308-#define HWCAP_CHECK do {} while (0)
309- SEARCH_CACHE (cache);
310- }
311-
312- /* Print our result if wanted. */
313- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0)
314- && best != NULL)
315- _dl_debug_printf (" trying file=%s\n", best);
316-
317- return best;
318-}
319-
320-#ifndef MAP_COPY
321-/* If the system does not support MAP_COPY we cannot leave the file open
322- all the time since this would create problems when the file is replaced.
323- Therefore we provide this function to close the file and open it again
324- once needed. */
325-void
326-_dl_unload_cache (void)
327-{
328- if (cache != NULL && cache != (struct cache_file *) -1)
329- {
330- __munmap (cache, cachesize);
331- cache = NULL;
332- }
333-}
334-#endif
335Index: 1/dl-cache.h
336===================================================================
337--- 1.orig/dl-cache.h 2007-11-23 17:05:44.000000000 +0000
338+++ 1/dl-cache.h 2007-11-23 17:05:56.000000000 +0000
339@@ -101,5 +101,4 @@ struct cache_file_new
340 (((addr) + __alignof__ (struct cache_file_new) -1) \
341 & (~(__alignof__ (struct cache_file_new) - 1)))
342
343-extern int _dl_cache_libcmp (const char *p1, const char *p2)
344- internal_function;
345+extern int _dl_cache_libcmp (const char *p1, const char *p2);
346Index: 1/ldconfig.c
347===================================================================
348--- 1.orig/ldconfig.c 2007-11-23 17:05:44.000000000 +0000
349+++ 1/ldconfig.c 2007-11-23 17:05:56.000000000 +0000
350@@ -15,6 +15,9 @@
351 along with this program; if not, write to the Free Software Foundation,
352 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
353
354+#define _LARGEFILE64_SOURCE
355+#define _GNU_SOURCE
356+
357 #define PROCINFO_CLASS static
358 #include <alloca.h>
359 #include <argp.h>
360@@ -37,10 +40,20 @@
361 #include <glob.h>
362 #include <libgen.h>
363
364-#include <ldconfig.h>
365-#include <dl-cache.h>
366+#include "ldconfig.h"
367+#include "dl-cache.h"
368+
369+#include "dl-procinfo.h"
370+
371+#include "argp.h"
372+
373+
374+#define SYSCONFDIR "/etc"
375+#define LIBDIR "/usr/lib"
376+#define SLIBDIR "/lib"
377+# define N_(msgid) msgid
378+#define _(msg) msg
379
380-#include <dl-procinfo.h>
381
382 #ifdef _DL_FIRST_PLATFORM
383 # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT)
384@@ -53,7 +66,7 @@
385 #endif
386
387 /* Get libc version number. */
388-#include <version.h>
389+#include "version.h"
390
391 #define PACKAGE _libc_intl_domainname
392
393@@ -143,8 +156,8 @@ static const struct argp_option options[
394 { NULL, 0, NULL, 0, NULL, 0 }
395 };
396
397-#define PROCINFO_CLASS static
398-#include <dl-procinfo.c>
399+//#define PROCINFO_CLASS static
400+//#include <dl-procinfo.c>
401
402 /* Short description of program. */
403 static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings.");
404@@ -281,7 +294,7 @@ parse_opt (int key, char *arg, struct ar
405 static void
406 print_version (FILE *stream, struct argp_state *state)
407 {
408- fprintf (stream, "ldconfig (GNU %s) %s\n", PACKAGE, VERSION);
409+ fprintf (stream, "ldconfig (Hacked Poky Version)\n");
410 fprintf (stream, gettext ("\
411 Copyright (C) %s Free Software Foundation, Inc.\n\
412 This is free software; see the source for copying conditions. There is NO\n\
413Index: 1/readlib.c
414===================================================================
415--- 1.orig/readlib.c 2007-11-23 17:05:44.000000000 +0000
416+++ 1/readlib.c 2007-11-23 17:05:56.000000000 +0000
417@@ -21,6 +21,9 @@
418 development version. Besides the simplification, it has also been
419 modified to read some other file formats. */
420
421+#define _LARGEFILE64_SOURCE
422+#define _GNU_SOURCE
423+
424 #include <a.out.h>
425 #include <elf.h>
426 #include <error.h>
427@@ -34,7 +37,9 @@
428 #include <sys/stat.h>
429 #include <gnu/lib-names.h>
430
431-#include <ldconfig.h>
432+#include "ldconfig.h"
433+
434+#define _(msg) msg
435
436 #define Elf32_CLASS ELFCLASS32
437 #define Elf64_CLASS ELFCLASS64
438Index: 1/xstrdup.c
439===================================================================
440--- 1.orig/xstrdup.c 2007-11-23 17:05:44.000000000 +0000
441+++ 1/xstrdup.c 2007-11-23 17:05:56.000000000 +0000
442@@ -15,15 +15,10 @@
443 along with this program; if not, write to the Free Software Foundation,
444 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
445
446-#ifdef HAVE_CONFIG_H
447-# include <config.h>
448-#endif
449+#define _GNU_SOURCE
450+
451+#include <string.h>
452
453-#if defined STDC_HEADERS || defined HAVE_STRING_H || _LIBC
454-# include <string.h>
455-#else
456-# include <strings.h>
457-#endif
458 void *xmalloc (size_t n) __THROW;
459 char *xstrdup (char *string) __THROW;
460
diff --git a/meta/recipes-core/glibc/ldconfig-native_2.5.bb b/meta/recipes-core/glibc/ldconfig-native_2.5.bb
new file mode 100644
index 0000000000..d08787af6d
--- /dev/null
+++ b/meta/recipes-core/glibc/ldconfig-native_2.5.bb
@@ -0,0 +1,20 @@
1DESCRIPTION = "A standalone native ldconfig build"
2
3SRC_URI = "file://ldconfig-native-2.5.tar.bz2 \
4 file://ldconfig.patch;patch=1 \
5 file://32and64bit.patch;patch=1"
6
7PR = "r1"
8
9inherit native
10
11S = "${WORKDIR}/${PN}-${PV}"
12
13do_compile () {
14 $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig
15}
16
17do_install () {
18 install -d ${D}/${bindir}/
19 install ldconfig ${D}/${bindir}/
20}
diff --git a/meta/recipes-core/images/poky-image-base.bb b/meta/recipes-core/images/poky-image-base.bb
new file mode 100644
index 0000000000..d214642c40
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-base.bb
@@ -0,0 +1,7 @@
1#
2# Copyright (C) 2007 OpenedHand Ltd.
3#
4
5IMAGE_FEATURES += "apps-console-core"
6
7inherit poky-image
diff --git a/meta/recipes-core/images/poky-image-directdisk.inc b/meta/recipes-core/images/poky-image-directdisk.inc
new file mode 100644
index 0000000000..64144b9abf
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-directdisk.inc
@@ -0,0 +1,8 @@
1inherit boot-directdisk
2
3do_bootdirectdisk_prepend () {
4 import bb
5 fstypes = bb.data.getVar('IMAGE_FSTYPES', d, True)
6 if 'ext3' not in fstypes:
7 bb.msg.fatal(bb.msg.domain.Build, "ext3 not in IMAGE_FSTYPES")
8} \ No newline at end of file
diff --git a/meta/recipes-core/images/poky-image-live.inc b/meta/recipes-core/images/poky-image-live.inc
new file mode 100644
index 0000000000..7f8dd8fba5
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-live.inc
@@ -0,0 +1,18 @@
1AUTO_SYSLINUXCFG = "1"
2INITRD = "${DEPLOY_DIR_IMAGE}/poky-image-minimal-initramfs-${MACHINE}.cpio.gz"
3APPEND += "root=/dev/ram0 "
4TIMEOUT = "10"
5
6EXCLUDE_FROM_WORLD = "1"
7
8do_bootimg[depends] += "poky-image-minimal-initramfs:do_rootfs"
9
10inherit bootimg
11
12do_bootimg_prepend () {
13 import bb
14 fstypes = bb.data.getVar('IMAGE_FSTYPES', d, True)
15 if 'ext3' not in fstypes:
16 bb.msg.fatal(bb.msg.domain.Build, "ext3 not in IMAGE_FSTYPES")
17}
18
diff --git a/meta/recipes-core/images/poky-image-minimal-directdisk.bb b/meta/recipes-core/images/poky-image-minimal-directdisk.bb
new file mode 100644
index 0000000000..e068464607
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-minimal-directdisk.bb
@@ -0,0 +1,9 @@
1require poky-image-directdisk.inc
2
3DESCRIPTION = "Minimal Bootable Direct Disk Image"
4
5ROOTFS = "${DEPLOY_DIR_IMAGE}/poky-image-minimal-${MACHINE}.ext3"
6
7do_bootdirectdisk[depends] += "poky-image-minimal:do_rootfs"
8
9
diff --git a/meta/recipes-core/images/poky-image-minimal-initramfs.bb b/meta/recipes-core/images/poky-image-minimal-initramfs.bb
new file mode 100644
index 0000000000..ef7784b626
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-minimal-initramfs.bb
@@ -0,0 +1,8 @@
1# Simple initramfs image. Mostly used for live images.
2
3IMAGE_INSTALL = "initramfs-live-boot initramfs-live-install busybox udev base-passwd"
4
5export IMAGE_BASENAME = "poky-image-minimal-initramfs"
6IMAGE_LINGUAS = ""
7
8inherit poky-image
diff --git a/meta/recipes-core/images/poky-image-minimal-live.bb b/meta/recipes-core/images/poky-image-minimal-live.bb
new file mode 100644
index 0000000000..7d9aa5f154
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-minimal-live.bb
@@ -0,0 +1,9 @@
1DESCRIPTION = "Minimal Bootable Live Image"
2
3require poky-image-live.inc
4
5LABELS += "boot install"
6
7ROOTFS = "${DEPLOY_DIR_IMAGE}/poky-image-minimal-${MACHINE}.ext3"
8
9do_bootimg[depends] += "poky-image-minimal:do_rootfs"
diff --git a/meta/recipes-core/images/poky-image-minimal-mtdutils.bb b/meta/recipes-core/images/poky-image-minimal-mtdutils.bb
new file mode 100644
index 0000000000..d786131d98
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-minimal-mtdutils.bb
@@ -0,0 +1,6 @@
1#
2# Copyright (C) 2008 OpenedHand Ltd.
3#
4require poky-image-minimal.bb
5
6IMAGE_INSTALL += "mtd-utils"
diff --git a/meta/recipes-core/images/poky-image-minimal.bb b/meta/recipes-core/images/poky-image-minimal.bb
new file mode 100644
index 0000000000..44710a4ca8
--- /dev/null
+++ b/meta/recipes-core/images/poky-image-minimal.bb
@@ -0,0 +1,11 @@
1#
2# Copyright (C) 2007 OpenedHand Ltd.
3#
4IMAGE_INSTALL = "task-poky-boot ${ROOTFS_PKGMANAGE}"
5
6IMAGE_LINGUAS = " "
7
8inherit poky-image
9
10# remove not needed ipkg informations
11ROOTFS_POSTPROCESS_COMMAND += "remove_packaging_data_files ; "
diff --git a/meta/recipes-core/initrdscripts/files/init-boot.sh b/meta/recipes-core/initrdscripts/files/init-boot.sh
new file mode 100644
index 0000000000..9d804fc3a7
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/files/init-boot.sh
@@ -0,0 +1,8 @@
1#!/bin/sh
2
3mkdir /proc
4mkdir /sys
5mount -t proc proc /proc
6mount -t sysfs sysfs /sys
7
8exec sh
diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh
new file mode 100644
index 0000000000..ecd0a1b44a
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/files/init-install.sh
@@ -0,0 +1,170 @@
1#!/bin/sh -e
2#
3# Copyright (C) 2008 Intel
4#
5# install.sh [device_name] [rootfs_name] [video_mode] [vga_mode]
6#
7
8# We need 20 Mb for the boot partition
9boot_size=20
10
11# 5% for the swap
12swap_ratio=5
13
14found="no"
15
16echo "Searching for a hard drive..."
17for device in 'hda' 'hdb' 'sda' 'sdb'
18 do
19 if [ -e /sys/block/${device}/removable ]; then
20 if [ "$(cat /sys/block/${device}/removable)" = "0" ]; then
21 found="yes"
22
23 while true; do
24 echo "Found drive at /dev/${device}. Do you want to install moblin there ? [y/n]"
25 read answer
26 if [ "$answer" = "y" ] ; then
27 break
28 fi
29
30 if [ "$answer" = "n" ] ; then
31 found=no
32 break
33 fi
34
35 echo "Please answer by y or n"
36 done
37 fi
38 fi
39
40 if [ "$found" = "yes" ]; then
41 break;
42 fi
43
44done
45
46if [ "$found" = "no" ]; then
47 exit 1
48fi
49
50echo "Installing image on /dev/${device}"
51
52#
53# The udev automounter can cause pain here, kill it
54#
55rm -f /etc/udev/scripts/mount*
56
57#
58# Unmount anything the automounter had mounted
59#
60umount /dev/${device} 2> /dev/null || /bin/true
61umount /dev/${device}1 2> /dev/null || /bin/true
62umount /dev/${device}2 2> /dev/null || /bin/true
63umount /dev/${device}3 2> /dev/null || /bin/true
64umount /dev/${device}4 2> /dev/null || /bin/true
65umount /dev/${device}5 2> /dev/null || /bin/true
66umount /dev/${device}6 2> /dev/null || /bin/true
67
68if [ ! -b /dev/sda ] ; then
69 mknod /dev/sda b 8 0
70fi
71
72if [ ! -b /dev/sdb ] ; then
73 mknod /dev/sdb b 8 16
74fi
75
76if [ ! -b /dev/loop0 ] ; then
77 mknod /dev/loop0 b 7 0
78fi
79
80mkdir -p /tmp
81cat /proc/mounts > /etc/mtab
82
83disk_size=$(parted /dev/${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
84
85swap_size=$((disk_size*5/100))
86rootfs_size=$((disk_size-boot_size-swap_size))
87
88rootfs_start=$((boot_size + 1))
89rootfs_end=$((rootfs_start+rootfs_size))
90swap_start=$((rootfs_end+1))
91
92bootfs=/dev/${device}1
93rootfs=/dev/${device}2
94swap=/dev/${device}3
95
96echo "*****************"
97echo "Boot partition size: $boot_size MB (/dev/${device}1)"
98echo "Rootfs partition size: $rootfs_size MB (/dev/${device}2)"
99echo "Swap partition size: $swap_size MB (/dev/${device}3)"
100echo "*****************"
101echo "Deleting partition table on /dev/${device} ..."
102dd if=/dev/zero of=/dev/${device} bs=512 count=2
103
104echo "Creating new partition table on /dev/${device} ..."
105parted /dev/${device} mklabel msdos
106
107echo "Creating boot partition on /dev/${device}1"
108parted /dev/${device} mkpartfs primary ext2 0 $boot_size
109
110echo "Creating rootfs partition on /dev/${device}2"
111parted /dev/${device} mkpartfs primary ext2 $rootfs_start $rootfs_end
112
113echo "Creating swap partition on /dev/${device}3"
114parted /dev/${device} mkpartfs primary linux-swap $swap_start $disk_size
115
116parted /dev/${device} print
117
118echo "Formatting /dev/${device}1 to ext2..."
119mkfs.ext3 $bootfs
120
121echo "Formatting /dev/${device}2 to ext3..."
122mkfs.ext3 $rootfs
123
124echo "Formatting swap partition...(/dev/${device}3)"
125mkswap $swap
126
127mkdir /ssd
128mkdir /rootmnt
129
130mount $rootfs /ssd
131mount -o rw,loop,noatime,nodiratime /media/$1/$2 /rootmnt
132
133echo "Copying rootfs files..."
134cp -a /rootmnt/* /ssd
135
136if [ -d /ssd/etc/ ] ; then
137 echo "$swap swap swap defaults 0 0" >> /ssd/etc/fstab
138
139 # We dont want udev to mount our root device while we're booting...
140 if [ -d /ssd/etc/udev/ ] ; then
141 echo "/dev/${device}" >> /ssd/etc/udev/mount.blacklist
142 fi
143fi
144
145umount /ssd
146umount /rootmnt
147
148echo "Preparing boot partition..."
149mount $bootfs /ssd
150grub-install --root-directory=/ssd /dev/${device}
151
152echo "(hd0) /dev/${device}" > /ssd/boot/grub/device.map
153
154echo "default 0" > /ssd/boot/grub/menu.lst
155echo "timeout 30" >> /ssd/boot/grub/menu.lst
156echo "title Poky-Netbook" >> /ssd/boot/grub/menu.lst
157echo "root (hd0,0)" >> /ssd/boot/grub/menu.lst
158echo "kernel /boot/vmlinuz root=$rootfs rw $3 $4 quiet" >> /ssd/boot/grub/menu.lst
159
160cp /media/$1/vmlinuz /ssd/boot/
161
162umount /ssd
163sync
164
165echo "Remove your installation media, and press ENTER"
166
167read enter
168
169echo "Rebooting..."
170reboot -f
diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
new file mode 100644
index 0000000000..c96b1f47c3
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -0,0 +1,92 @@
1#!/bin/sh
2
3ROOT_MOUNT="/rootfs/"
4ROOT_IMAGE=rootfs.img
5MOUNT="/bin/mount"
6UMOUNT="/bin/umount"
7
8early_setup() {
9 mkdir /proc
10 mkdir /sys
11 mount -t proc proc /proc
12 mount -t sysfs sysfs /sys
13 udevd --daemon
14}
15
16read_args() {
17 [ -z "$CMDLINE" ] && CMDLINE=`cat /proc/cmdline`
18 for arg in $CMDLINE; do
19 optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
20 case $arg in
21 root=*)
22 ROOT_DEVICE=$optarg ;;
23 rootfstype=*)
24 ROOT_FSTYPE=$optarg ;;
25 rootdelay=*)
26 rootdelay=$optarg ;;
27 LABEL=*)
28 label=$optarg ;;
29 video=*)
30 video_mode=$arg ;;
31 vga=*)
32 vga_mode=$arg ;;
33 esac
34 done
35}
36
37boot_live_root() {
38 killall udevd
39 cd $ROOT_MOUNT
40 exec switch_root -c /dev/console $ROOT_MOUNT /sbin/init
41}
42
43fatal() {
44 echo $1 >$CONSOLE
45 echo >$CONSOLE
46 exec sh
47}
48
49early_setup
50
51[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
52
53read_args
54
55echo "Waiting for removable media..."
56while true
57do
58 for i in `ls /media 2>/dev/null`; do
59 if [ -f /media/$i/$ROOT_IMAGE ] ; then
60 found="yes"
61 break
62 fi
63 done
64 if [ "$found" = "yes" ]; then
65 break;
66 fi
67 sleep 1
68done
69
70case $label in
71 boot)
72 mkdir $ROOT_MOUNT
73 mknod /dev/loop0 b 7 0
74
75 if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ROOT_IMAGE $ROOT_MOUNT ; then
76 fatal "Couldnt mount rootfs image"
77 else
78 boot_live_root
79 fi
80 ;;
81 install)
82 if [ -f /media/$i/$ROOT_IMAGE ] ; then
83 ./install.sh $i $ROOT_IMAGE $video_mode $vga_mode
84 else
85 fatal "Couldnt find install script"
86 fi
87
88 # If we're getting here, we failed...
89 fatal "Installation image failed"
90 ;;
91esac
92
diff --git a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
new file mode 100644
index 0000000000..04ce51fafa
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -0,0 +1,13 @@
1DESCRIPTON = "A live image init script"
2LICENSE = "MIT"
3
4SRC_URI = "file://init-boot.sh"
5
6PR = "r0"
7
8do_install() {
9 install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init
10}
11
12PACKAGE_ARCH = "all"
13FILES_${PN} += " /init "
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
new file mode 100644
index 0000000000..ba36a58049
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -0,0 +1,13 @@
1DESCRIPTON = "A live image init script"
2LICENSE = "MIT"
3
4SRC_URI = "file://init-live.sh"
5
6PR = "r2"
7
8do_install() {
9 install -m 0755 ${WORKDIR}/init-live.sh ${D}/init
10}
11
12PACKAGE_ARCH = "all"
13FILES_${PN} += " /init "
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
new file mode 100644
index 0000000000..b15621b668
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -0,0 +1,18 @@
1DESCRIPTON = "A live image init script"
2LICENSE = "MIT"
3
4SRC_URI = "file://init-install.sh"
5
6PR = "r3"
7
8RDEPENDS="grub parted e2fsprogs-mke2fs"
9
10do_install() {
11 install -m 0755 ${WORKDIR}/init-install.sh ${D}/install.sh
12}
13
14PACKAGE_ARCH = "all"
15FILES_${PN} = " /install.sh "
16
17# Alternatives to grub need adding for other arch support
18COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh b/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh
new file mode 100644
index 0000000000..b577b9a03a
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh
@@ -0,0 +1,13 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: alignment
4# Required-Start: mountkernfs
5# Required-Stop: mountkernfs
6# Default-Start: S
7# Default-Stop:
8### END INIT INFO
9
10if [ -e /proc/cpu/alignment ]; then
11 echo "3" > /proc/cpu/alignment
12fi
13
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/banner.sh b/meta/recipes-core/initscripts/initscripts-1.0/banner.sh
new file mode 100644
index 0000000000..9e2b091252
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/banner.sh
@@ -0,0 +1,24 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: banner
4# Required-Start:
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8### END INIT INFO
9
10if [ ! -e /dev/tty ]; then
11 /bin/mknod -m 0666 /dev/tty c 5 0
12fi
13
14if ( > /dev/tty0 ) 2>/dev/null; then
15 vtmaster=/dev/tty0
16elif ( > /dev/vc/0 ) 2>/dev/null; then
17 vtmaster=/dev/vc/0
18elif ( > /dev/console ) 2>/dev/null; then
19 vtmaster=/dev/console
20else
21 vtmaster=/dev/null
22fi
23echo > $vtmaster
24echo "Please wait: booting..." > $vtmaster
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
new file mode 100755
index 0000000000..bd11f9a2fc
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
@@ -0,0 +1,78 @@
1### BEGIN INIT INFO
2# Provides: bootmisc
3# Required-Start: $local_fs mountvirtfs
4# Required-Stop: $local_fs
5# Default-Start: S
6# Default-Stop: 0 6
7# Short-Description: Misc and other.
8### END INIT INFO
9
10. /etc/default/rcS
11#
12# Put a nologin file in /etc to prevent people from logging in before
13# system startup is complete.
14#
15if test "$DELAYLOGIN" = yes
16then
17 echo "System bootup in progress - please wait" > /etc/nologin
18 cp /etc/nologin /etc/nologin.boot
19fi
20
21#
22# Set pseudo-terminal access permissions.
23#
24if test -c /dev/ttyp0
25then
26 chmod 666 /dev/tty[p-za-e][0-9a-f]
27 chown root:tty /dev/tty[p-za-e][0-9a-f]
28fi
29
30#
31# Apply /proc settings if defined
32#
33SYSCTL_CONF="/etc/sysctl.conf"
34if [ -f "${SYSCTL_CONF}" ]
35then
36 if [ -x "/sbin/sysctl" ]
37 then
38 /sbin/sysctl -p "${SYSCTL_CONF}"
39 else
40 echo "To have ${SYSCTL_CONF} applied during boot, install package <procps>."
41 fi
42fi
43
44#
45# Update /etc/motd.
46#
47if test "$EDITMOTD" != no
48then
49 uname -a > /etc/motd.tmp
50 sed 1d /etc/motd >> /etc/motd.tmp
51 mv /etc/motd.tmp /etc/motd
52fi
53
54#
55# This is as good a place as any for a sanity check
56# /tmp should be a symlink to /var/tmp to cut down on the number
57# of mounted ramdisks.
58if test ! -L /tmp && test -d /var/tmp
59then
60 rm -rf /tmp
61 ln -sf /var/tmp /tmp
62fi
63
64# Set the system clock from hardware clock
65# If the timestamp is 1 day or more recent than the current time,
66# use the timestamp instead.
67/etc/init.d/hwclock.sh start
68if test -e /etc/timestamp2
69then
70 SYSTEMDATE=`date "+%Y%m%d%2H%2M"`
71 read TIMESTAMP < /etc/timestamp2
72 NEEDUPDATE=`expr \( $TIMESTAMP \> $SYSTEMDATE + 10000 \)`
73 if [ $NEEDUPDATE -eq 1 ]; then
74 date $TIMESTAMP
75 /etc/init.d/hwclock.sh stop
76 fi
77fi
78: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/checkfs.sh b/meta/recipes-core/initscripts/initscripts-1.0/checkfs.sh
new file mode 100755
index 0000000000..91897d4cbb
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/checkfs.sh
@@ -0,0 +1,49 @@
1### BEGIN INIT INFO
2# Provides: checkfs
3# Required-Start: checkroot
4# Required-Stop:
5# Default-Start: S
6# Default-Stop:
7# Short-Description: Check all other file systems
8### END INIT INFO
9
10. /etc/default/rcS
11
12#
13# Check the rest of the filesystems.
14#
15if test ! -f /fastboot
16then
17 if test -f /forcefsck
18 then
19 force="-f"
20 else
21 force=""
22 fi
23 if test "$FSCKFIX" = yes
24 then
25 fix="-y"
26 else
27 fix="-a"
28 fi
29 spinner="-C"
30 case "$TERM" in
31 dumb|network|unknown|"") spinner="" ;;
32 esac
33 test "`uname -m`" = "s390" && spinner="" # This should go away
34 test "$VERBOSE" != no && echo "Checking all filesystems..."
35 fsck $spinner -R -A $fix $force
36 if test "$?" -gt 1
37 then
38 echo
39 echo "fsck failed. Please repair manually."
40 echo
41 echo "CONTROL-D will exit from this shell and continue system startup."
42 echo
43 # Start a single user shell on the console
44 /sbin/sulogin $CONSOLE
45 fi
46fi
47rm -f /fastboot /forcefsck
48
49: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
new file mode 100755
index 0000000000..02697ce9bf
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
@@ -0,0 +1,137 @@
1### BEGIN INIT INFO
2# Provides: checkroot
3# Required-Start: udev
4# Required-Stop:
5# Default-Start: S
6# Default-Stop:
7# Short-Description: Check to root file system.
8### END INIT INFO
9
10. /etc/default/rcS
11
12#
13# Set SULOGIN in /etc/default/rcS to yes if you want a sulogin to be spawned
14# from this script *before anything else* with a timeout, like SCO does.
15#
16test "$SULOGIN" = yes && sulogin -t 30 $CONSOLE
17
18#
19# Read /etc/fstab.
20#
21exec 9< /etc/fstab
22rootmode=rw
23rootopts=rw
24rootcheck=no
25swap_on_md=no
26devfs=
27while read fs mnt type opts dump pass junk <&9
28do
29 case "$fs" in
30 ""|\#*)
31 continue;
32 ;;
33 /dev/md*)
34 # Swap on md device.
35 test "$type" = swap && swap_on_md=yes
36 ;;
37 /dev/*)
38 ;;
39 *)
40 # Might be a swapfile.
41 test "$type" = swap && swap_on_md=yes
42 ;;
43 esac
44 test "$type" = devfs && devfs="$fs"
45 test "$mnt" != / && continue
46 rootopts="$opts"
47 test "$pass" = 0 -o "$pass" = "" && rootcheck=no
48 case "$opts" in
49 ro|ro,*|*,ro|*,ro,*)
50 rootmode=ro
51 ;;
52 esac
53done
54exec 0>&9 9>&-
55
56#
57# Activate the swap device(s) in /etc/fstab. This needs to be done
58# before fsck, since fsck can be quite memory-hungry.
59#
60test "$VERBOSE" != no && echo "Activating swap"
61swapon -a 2> /dev/null
62
63#
64# Check the root filesystem.
65#
66if test -f /fastboot || test $rootcheck = no
67then
68 test $rootcheck = yes && echo "Fast boot, no filesystem check"
69else
70 #
71 # Ensure that root is quiescent and read-only before fsck'ing.
72 #
73 mount -n -o remount,ro /
74 if test $? = 0
75 then
76 if test -f /forcefsck
77 then
78 force="-f"
79 else
80 force=""
81 fi
82 if test "$FSCKFIX" = yes
83 then
84 fix="-y"
85 else
86 fix="-a"
87 fi
88 spinner="-C"
89 case "$TERM" in
90 dumb|network|unknown|"") spinner="" ;;
91 esac
92 test `uname -m` = s390 && spinner="" # This should go away
93 test "$VERBOSE" != no && echo "Checking root filesystem..."
94 fsck $spinner $force $fix /
95 #
96 # If there was a failure, drop into single-user mode.
97 #
98 # NOTE: "failure" is defined as exiting with a return code of
99 # 2 or larger. A return code of 1 indicates that filesystem
100 # errors were corrected but that the boot may proceed.
101 #
102 if test "$?" -gt 1
103 then
104 # Surprise! Re-directing from a HERE document (as in
105 # "cat << EOF") won't work, because the root is read-only.
106 echo
107 echo "fsck failed. Please repair manually and reboot. Please note"
108 echo "that the root filesystem is currently mounted read-only. To"
109 echo "remount it read-write:"
110 echo
111 echo " # mount -n -o remount,rw /"
112 echo
113 echo "CONTROL-D will exit from this shell and REBOOT the system."
114 echo
115 # Start a single user shell on the console
116 /sbin/sulogin $CONSOLE
117 reboot -f
118 fi
119 else
120 echo "*** ERROR! Cannot fsck root fs because it is not mounted read-only!"
121 echo
122 fi
123fi
124
125#
126# If the root filesystem was not marked as read-only in /etc/fstab,
127# remount the rootfs rw but do not try to change mtab because it
128# is on a ro fs until the remount succeeded. Then clean up old mtabs
129# and finally write the new mtab.
130#
131mount -n -o remount,$rootmode /
132if test "$rootmode" = rw
133then
134 ln -sf /proc/mounts /dev/mtab
135fi
136
137: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/device_table.txt b/meta/recipes-core/initscripts/initscripts-1.0/device_table.txt
new file mode 100644
index 0000000000..a302c5aca3
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/device_table.txt
@@ -0,0 +1,197 @@
1#/dev/ d 775 0 0 - - - - -
2#/dev/msys d 775 0 0 - - - - -
3#/dev/pts d 775 0 0 - - - - -
4#/var d 775 0 0 - - - - -
5/boot/var/empty d 755 0 3 - - - -
6/dev/apm_bios c 660 0 46 10 134 - - -
7/dev/audio c 660 0 29 14 4 - - -
8/dev/audio1 c 660 0 29 14 20 - - -
9/dev/audio2 c 660 0 29 14 36 - - -
10/dev/audio3 c 660 0 29 14 52 - - -
11/dev/bty c 644 0 0 60 0 0 1 5
12/dev/sharp_fl c 640 0 44 254 0 - - -
13/dev/console c 660 0 5 5 1 - -
14/dev/cusa0 c 640 0 0 205 5 - - -
15/dev/cusa1 c 640 0 0 205 6 - - -
16/dev/cusa2 c 640 0 0 205 7 - - -
17/dev/dsp c 660 0 29 14 3 - - -
18/dev/dsp1 c 660 0 29 14 19 - - -
19/dev/dsp2 c 660 0 29 14 35 - - -
20/dev/dsp3 c 660 0 29 14 51 - - -
21/dev/fb c 660 0 44 29 0 0 32 2
22/dev/fb0autodetect c 660 0 44 29 1 - - -
23/dev/fb0current c 660 0 44 29 0 - - -
24#/dev/fb1 c 660 0 44 29 32 - - -
25/dev/fb1autodetect c 660 0 44 29 33 - - -
26/dev/fb1current c 660 0 44 29 32 - - -
27/dev/full c 666 0 7 - - -
28/dev/hda b 660 0 6 3 0 - - -
29/dev/hda b 660 0 6 3 1 1 1 20
30/dev/hdb b 660 0 6 3 64 - - -
31/dev/hdb b 660 0 6 3 65 1 1 20
32/dev/hdc b 660 0 6 22 0 - - -
33/dev/hdc b 660 0 6 22 1 1 1 20
34/dev/initctl p 600 0 0 - - - -
35/dev/i2c0 c 660 0 0 89 0 - - -
36/dev/inportbm c 660 0 0 10 2 - - -
37/dev/input/event c 660 0 0 13 64 0 1 20
38/dev/ircomm0 c 640 0 0 161 0 - - -
39/dev/jbm c 660 0 0 10 4 - - -
40/dev/kmem c 640 0 15 1 2 - - -
41/dev/lirc c 660 0 5 61 0 - - -
42/dev/logibm c 660 0 0 10 0 - - -
43/dev/loop0 b 660 0 11 7 0 - - -
44/dev/loop1 b 660 0 11 7 1 - - -
45/dev/mem c 640 0 15 1 1 - - -
46/dev/mixer c 666 0 0 14 0 - - -
47/dev/mixer1 c 666 0 0 14 16 - - -
48/dev/mixer2 c 666 0 0 14 32 - - -
49/dev/mixer3 c 666 0 0 14 48 - - -
50/dev/mmcda b 640 0 0 60 0 - - -
51/dev/mmcda1 b 640 0 0 60 1 - - -
52/dev/mmcda2 b 640 0 0 60 2 - - -
53/dev/msys/fla b 660 0 11 100 0 - - -
54/dev/msys/fla1 b 660 0 11 100 1 - - -
55/dev/msys/fla2 b 660 0 11 100 2 - - -
56/dev/msys/fla3 b 660 0 11 100 3 - - -
57/dev/msys/fla4 b 660 0 11 100 4 - - -
58/dev/msys/flb b 660 0 11 100 64 - - -
59/dev/msys/flb1 b 660 0 11 100 65 - - -
60/dev/msys/flb2 b 660 0 11 100 66 - - -
61/dev/msys/flb3 b 660 0 11 100 67 - - -
62/dev/msys/flb4 b 660 0 11 100 68 - - -
63/dev/mtd c 660 0 6 90 0 0 2 8
64/dev/mtdblock b 640 0 0 31 0 0 1 8
65/dev/nst0 c 664 0 11 9 128 - - -
66/dev/nst0a c 664 0 11 9 224 - - -
67/dev/nst0l c 664 0 11 9 160 - - -
68/dev/nst0m c 664 0 11 9 192 - - -
69/dev/nst1 c 664 0 11 9 129 - - -
70/dev/nst1a c 664 0 11 9 225 - - -
71/dev/nst1l c 664 0 11 9 161 - - -
72/dev/nst1m c 664 0 11 9 193 - - -
73/dev/null c 666 0 0 1 3 - - -
74/dev/par0 c 660 0 7 6 0 - - -
75/dev/par1 c 660 0 7 6 1 - - -
76/dev/par2 c 660 0 7 6 2 - - -
77/dev/port c 640 0 15 1 4 - - -
78/dev/ppp c 640 0 0 108 0 - - -
79/dev/psaux c 660 0 0 10 1 - - -
80/dev/ptmx c 666 0 5 5 2 - - -
81/dev/ptya0 c 660 0 5 2 176 - - -
82/dev/ptya1 c 660 0 5 2 177 - - -
83/dev/ptya2 c 660 0 5 2 178 - - -
84/dev/ptya3 c 660 0 5 2 179 - - -
85/dev/ptya4 c 660 0 5 2 180 - - -
86/dev/ptya5 c 660 0 5 2 181 - - -
87/dev/ptya6 c 660 0 5 2 182 - - -
88/dev/ptya7 c 660 0 5 2 183 - - -
89/dev/ptya8 c 660 0 5 2 184 - - -
90/dev/ptya9 c 660 0 5 2 185 - - -
91/dev/ptyaa c 660 0 5 2 186 - - -
92/dev/ptyab c 660 0 5 2 187 - - -
93/dev/ptyac c 660 0 5 2 188 - - -
94/dev/ptyad c 660 0 5 2 189 - - -
95/dev/ptyae c 660 0 5 2 190 - - -
96/dev/ptyaf c 660 0 5 2 191 - - -
97/dev/ram b 640 0 0 1 0 0 1 4
98/dev/random c 444 0 0 1 8 - - -
99/dev/rfcomm0 c 660 0 0 216 0 - - -
100/dev/rfcomm1 c 660 0 0 216 1 - - -
101/dev/rfcomm2 c 660 0 0 216 2 - - -
102/dev/rfcomm3 c 660 0 0 216 3 - - -
103/dev/rfcomm4 c 660 0 0 216 4 - - -
104/dev/rfcomm5 c 660 0 0 216 5 - - -
105/dev/rfcomm6 c 660 0 0 216 6 - - -
106/dev/rfcomm7 c 660 0 0 216 7 - - -
107/dev/rfcomm8 c 660 0 0 216 8 - - -
108/dev/rfcomm9 c 660 0 0 216 9 - - -
109/dev/rfcomm10 c 660 0 0 216 10 - - -
110/dev/rfcomm11 c 660 0 0 216 11 - - -
111/dev/rfcomm12 c 660 0 0 216 12 - - -
112/dev/rfcomm13 c 660 0 0 216 13 - - -
113/dev/rfcomm14 c 660 0 0 216 14 - - -
114/dev/rfcomm15 c 660 0 0 216 15 - - -
115/dev/rmidi0 c 660 0 0 35 64 - - -
116/dev/rmidi1 c 660 0 0 35 65 - - -
117/dev/rmidi2 c 660 0 0 35 66 - - -
118/dev/rmidi3 c 660 0 0 35 67 - - -
119/dev/rtc c 660 0 47 10 135 - - -
120/dev/scd0 b 660 0 6 11 0 - - -
121/dev/scd1 b 660 0 6 11 1 - - -
122/dev/sda b 660 0 6 8 0 - - -
123/dev/sda1 b 660 0 6 8 1 - - -
124/dev/sda2 b 660 0 6 8 2 - - -
125/dev/sda3 b 660 0 6 8 3 - - -
126/dev/sda4 b 660 0 6 8 4 - - -
127/dev/sda5 b 660 0 6 8 5 - - -
128/dev/sda6 b 660 0 6 8 6 - - -
129/dev/sda7 b 660 0 6 8 7 - - -
130/dev/sda8 b 660 0 6 8 8 - - -
131/dev/sda9 b 660 0 6 8 9 - - -
132/dev/sdb b 660 0 6 8 16 - - -
133/dev/sdb1 b 660 0 6 8 17 - - -
134/dev/sdb2 b 660 0 6 8 18 - - -
135/dev/sdb3 b 660 0 6 8 19 - - -
136/dev/sdb4 b 660 0 6 8 20 - - -
137/dev/sdb5 b 660 0 6 8 21 - - -
138/dev/sdb6 b 660 0 6 8 22 - - -
139/dev/sdb7 b 660 0 6 8 23 - - -
140/dev/sdb8 b 660 0 6 8 24 - - -
141/dev/sdb9 b 660 0 6 8 25 - - -
142/dev/sdc b 660 0 6 8 32 - - -
143/dev/sdc1 b 660 0 6 8 33 - - -
144/dev/sdc2 b 660 0 6 8 34 - - -
145/dev/sdc3 b 660 0 6 8 35 - - -
146/dev/sdc4 b 660 0 6 8 36 - - -
147/dev/sdc5 b 660 0 6 8 37 - - -
148/dev/sdc6 b 660 0 6 8 38 - - -
149/dev/sdc7 b 660 0 6 8 39 - - -
150/dev/sdc8 b 660 0 6 8 40 - - -
151/dev/sdc9 b 660 0 6 8 41 - - -
152/dev/sd_slotstat c 660 0 6 10 240 - - -
153/dev/sharp_audioctl c 660 0 29 10 213 - - -
154/dev/sharp_buz c 660 0 29 10 211 - - -
155/dev/sharp_kbdctl c 660 0 45 10 214 - - -
156/dev/sharp_led c 660 0 48 10 210 - - -
157/dev/sharp_ts c 640 0 45 11 0 - - -
158/dev/smtpe0 c 640 0 0 35 128 - - -
159/dev/smtpe1 c 640 0 0 35 129 - - -
160/dev/smtpe2 c 640 0 0 35 130 - - -
161/dev/smtpe3 c 640 0 0 35 131 - - -
162/dev/sndstat c 660 0 29 14 6 - - -
163/dev/snd/seq c 660 0 0 116 1 - - -
164/dev/snd/timer c 660 0 0 116 33 - - -
165/dev/snd/controlC0 c 660 0 0 116 0 - - -
166/dev/snd/controlC1 c 660 0 0 116 32 - - -
167/dev/snd/controlC2 c 660 0 0 116 64 - - -
168/dev/snd/controlC3 c 660 0 0 116 96 - - -
169/dev/snd/hwC0D0 c 660 0 0 116 4 - - -
170/dev/snd/hwC0D1 c 660 0 0 116 5 - - -
171/dev/snd/hwC0D2 c 660 0 0 116 6 - - -
172/dev/snd/hwC0D3 c 660 0 0 116 7 - - -
173/dev/snd/pcmC0D0c c 660 0 0 116 24 - - -
174/dev/snd/pcmC0D0p c 660 0 0 116 16 - - -
175/dev/snd/pcmC0D1c c 660 0 0 116 25 - - -
176/dev/snd/pcmC0D1p c 660 0 0 116 17 - - -
177/dev/snd/pcmC0D2c c 660 0 0 116 26 - - -
178/dev/snd/pcmC0D2p c 660 0 0 116 18 - - -
179/dev/snd/pcmC0D3c c 660 0 0 116 27 - - -
180/dev/snd/pcmC0D3p c 660 0 0 116 19 - - -
181/dev/st0 c 660 0 11 9 0 - - -
182/dev/st0a c 660 0 11 9 96 - - -
183/dev/st0l c 660 0 11 9 32 - - -
184/dev/st0m c 660 0 11 9 64 - - -
185/dev/st1 c 660 0 11 9 1 - - -
186/dev/st1a c 660 0 11 9 97 - - -
187/dev/st1l c 660 0 11 9 33 - - -
188/dev/st1m c 660 0 11 9 65 - - -
189/dev/tty c 664 0 5 5 0 - - -
190/dev/tty c 666 0 5 4 0 0 1 9
191/dev/ttyS c 640 0 5 4 64 0 1 4
192/dev/ttySA c 640 0 5 204 5 0 1 4
193/dev/ttyUSB c 660 0 5 188 0 0 1 2
194/dev/urandom c 644 0 0 1 9 - - -
195/dev/usbmouse c 640 0 45 10 32 - - -
196/dev/zero c 644 0 0 1 5 - - -
197/dev/input/mice c 660 0 0 13 63 - - -
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/devpts b/meta/recipes-core/initscripts/initscripts-1.0/devpts
new file mode 100644
index 0000000000..4a0978b404
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/devpts
@@ -0,0 +1,5 @@
1# GID of the `tty' group
2TTYGRP=5
3
4# Set to 600 to have `mesg n' be the default
5TTYMODE=620
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/devpts.sh b/meta/recipes-core/initscripts/initscripts-1.0/devpts.sh
new file mode 100755
index 0000000000..18202adcc7
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/devpts.sh
@@ -0,0 +1,28 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: devpts
4# Required-Start: udev
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8# Short-Description: Mount /dev/pts file systems.
9### END INIT INFO
10
11. /etc/default/devpts
12
13if grep -q devpts /proc/filesystems
14then
15 #
16 # Create multiplexor device.
17 #
18 test -c /dev/ptmx || mknod -m 666 /dev/ptmx c 5 2
19
20 #
21 # Mount /dev/pts if needed.
22 #
23 if ! grep -q devpts /proc/mounts
24 then
25 mkdir -p /dev/pts
26 mount -t devpts devpts /dev/pts -ogid=${TTYGRP},mode=${TTYMODE}
27 fi
28fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/finish.sh b/meta/recipes-core/initscripts/initscripts-1.0/finish.sh
new file mode 100755
index 0000000000..183a384faa
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/finish.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: finish.sh
4# Required-Start: $remote_fs rmnologin
5# Required-Stop:
6# Default-Start: 2 3 4 5
7# Default-Stop:
8# Short-Description: Finish system start
9# Description:
10### END INIT INFO
11
12if ! test -e /etc/.configured; then
13 > /etc/.configured
14fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/functions b/meta/recipes-core/initscripts/initscripts-1.0/functions
new file mode 100644
index 0000000000..689fd32b39
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/functions
@@ -0,0 +1,14 @@
1# -*-Shell-script-*-
2#
3# functions This file contains functions to be used by most or all
4# shell scripts in the /etc/init.d directory.
5#
6
7machine_id() { # return the machine ID
8 awk 'BEGIN { FS=": " } /Hardware/ { gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
9}
10
11killproc() { # kill the named process(es)
12 pid=`/bin/pidof $1`
13 [ "$pid" != "" ] && kill $pid
14}
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/halt b/meta/recipes-core/initscripts/initscripts-1.0/halt
new file mode 100755
index 0000000000..609b793b7c
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/halt
@@ -0,0 +1,29 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: halt
4# Required-Start:
5# Required-Stop:
6# Default-Start:
7# Default-Stop: 0
8# Short-Description: Execute the halt command.
9# Description:
10### END INIT INFO
11
12PATH=/sbin:/bin:/usr/sbin:/usr/bin
13
14# See if we need to cut the power.
15if test -x /etc/init.d/ups-monitor
16then
17 /etc/init.d/ups-monitor poweroff
18fi
19
20# Don't shut down drives if we're using RAID.
21hddown="-h"
22if grep -qs '^md.*active' /proc/mdstat
23then
24 hddown=""
25fi
26
27halt -d -f -i -p $hddown
28
29: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/hostname.sh b/meta/recipes-core/initscripts/initscripts-1.0/hostname.sh
new file mode 100755
index 0000000000..4399ee7b18
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/hostname.sh
@@ -0,0 +1,13 @@
1### BEGIN INIT INFO
2# Provides: hostname
3# Required-Start:
4# Required-Stop:
5# Default-Start: S
6# Default-Stop:
7# Short-Description: Set hostname based on /etc/hostname
8### END INIT INFO
9
10if test -f /etc/hostname
11then
12 hostname -F /etc/hostname
13fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/jornada6xx/checkroot.sh b/meta/recipes-core/initscripts/initscripts-1.0/jornada6xx/checkroot.sh
new file mode 100755
index 0000000000..9e2d3cfc85
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/jornada6xx/checkroot.sh
@@ -0,0 +1,211 @@
1#
2# checkroot.sh Check to root filesystem.
3#
4# Version: @(#)checkroot.sh 2.84 25-Jan-2002 miquels@cistron.nl
5#
6
7. /etc/default/rcS
8
9#
10# Set SULOGIN in /etc/default/rcS to yes if you want a sulogin to be spawned
11# from this script *before anything else* with a timeout, like SCO does.
12#
13test "$SULOGIN" = yes && sulogin -t 30 $CONSOLE
14
15#
16# Ensure that bdflush (update) is running before any major I/O is
17# performed (the following fsck is a good example of such activity :).
18#
19test -x /sbin/update && update
20
21#
22# Read /etc/fstab.
23#
24exec 9>&0 </etc/fstab
25rootmode=rw
26rootopts=rw
27test "$ENABLE_ROOTFS_FSCK" = yes && rootcheck="yes" || rootcheck="no"
28swap_on_md=no
29devfs=
30while read fs mnt type opts dump pass junk
31do
32 case "$fs" in
33 ""|\#*)
34 continue;
35 ;;
36 /dev/md*)
37 # Swap on md device.
38 test "$type" = swap && swap_on_md=yes
39 ;;
40 /dev/*)
41 ;;
42 *)
43 # Might be a swapfile.
44 test "$type" = swap && swap_on_md=yes
45 ;;
46 esac
47
48 test "$type" = devfs && devfs="$fs"
49
50 # Currently we do not care about the other entries
51 if test "$mnt" = "/"
52 then
53 #echo "[$fs] [$mnt] [$type] [$opts] [$dump] [$pass] [$junk]"
54
55 rootopts="$opts"
56 roottype="$type"
57
58 #The "spinner" is broken on busybox sh
59 TERM=dumb
60
61 test "$pass" = 0 -o "$pass" = "" && rootcheck=no
62
63 # Enable fsck for ext2 and ext3 rootfs, disable for everything else
64 case "$type" in
65 ext3) rootcheck=yes;;
66 *) rootcheck=no;;
67 esac
68
69 if test "$rootcheck" = yes
70 then
71 if ! test -x "/sbin/fsck.${roottype}"
72 then
73 echo -e "\n * * * WARNING: /sbin/fsck.${roottype} is missing! * * *\n"
74 rootcheck=no
75 fi
76 fi
77
78 case "$opts" in
79 ro|ro,*|*,ro|*,ro,*)
80 rootmode=ro
81 ;;
82 esac
83 fi
84done
85exec 0>&9 9>&-
86
87#
88# Activate the swap device(s) in /etc/fstab. This needs to be done
89# before fsck, since fsck can be quite memory-hungry.
90#
91doswap=no
92test -d /proc/1 || mount -n /proc
93case "`uname -r`" in
94 2.[0123].*)
95 if test $swap_on_md = yes && grep -qs resync /proc/mdstat
96 then
97 test "$VERBOSE" != no && echo "Not activating swap - RAID array resyncing"
98 else
99 doswap=yes
100 fi
101 ;;
102 *)
103 doswap=yes
104 ;;
105esac
106if test $doswap = yes
107then
108 test "$VERBOSE" != no && echo "Activating swap"
109 swapon -a 2> /dev/null
110fi
111
112#
113# Check the root filesystem.
114#
115if test -f /fastboot || test $rootcheck = no
116then
117 test $rootcheck = yes && echo "Fast boot, no filesystem check"
118else
119 #
120 # Ensure that root is quiescent and read-only before fsck'ing.
121 #
122 mount -n -o remount,ro /
123 if test $? = 0
124 then
125 if test -f /forcefsck
126 then
127 force="-f"
128 else
129 force=""
130 fi
131 if test "$FSCKFIX" = yes
132 then
133 fix="-y"
134 else
135 fix="-a"
136 fi
137 spinner="-C"
138 case "$TERM" in
139 dumb|network|unknown|"") spinner="" ;;
140 esac
141 test `uname -m` = s390 && spinner="" # This should go away
142 test "$VERBOSE" != no && echo "Checking root filesystem..."
143 fsck $spinner $force $fix /
144 #
145 # If there was a failure, drop into single-user mode.
146 #
147 # NOTE: "failure" is defined as exiting with a return code of
148 # 2 or larger. A return code of 1 indicates that filesystem
149 # errors were corrected but that the boot may proceed.
150 #
151 if test "$?" -gt 1
152 then
153
154 # Since this script is run very early in the boot-process, it should be safe to assume that the
155 # output is printed to VT1. However, some distributions use a bootsplash to hide the "ugly" boot
156 # messages and having the bootsplash "hang" due to a waiting fsck prompt is less than ideal
157 chvt 1
158
159 # Surprise! Re-directing from a HERE document (as in
160 # "cat << EOF") won't work, because the root is read-only.
161 echo
162 echo "fsck failed. Please repair manually and reboot. Please note"
163 echo "that the root filesystem is currently mounted read-only. To"
164 echo "remount it read-write:"
165 echo
166 echo " # mount -n -o remount,rw /"
167 echo
168 echo "CONTROL-D will exit from this shell and REBOOT the system."
169 echo
170 # Start a single user shell on the console
171 /sbin/sulogin $CONSOLE
172 reboot -f
173 fi
174 else
175 echo "*** ERROR! Cannot fsck root fs because it is not mounted read-only!"
176 echo
177 fi
178fi
179
180#
181# If the root filesystem was not marked as read-only in /etc/fstab,
182# remount the rootfs rw but do not try to change mtab because it
183# is on a ro fs until the remount succeeded. Then clean up old mtabs
184# and finally write the new mtab.
185# This part is only needed if the rootfs was mounted ro.
186#
187if [ $(grep rootfs /proc/mounts | awk '{print $4}') = rw ]; then
188 exit 0
189fi
190
191# Add a second check, which seems to be needed for some kernel versions
192if [ $(grep "/dev/root" /proc/mounts | awk '{print $4}') = rw ]; then
193 exit 0
194fi
195
196
197echo "Remounting root file system..."
198mount -n -o remount,$rootmode /
199if test "$rootmode" = rw
200then
201 if test ! -L /etc/mtab
202 then
203 rm -f /etc/mtab~ /etc/nologin
204 : > /etc/mtab
205 fi
206 mount -f -o remount /
207 mount -f /proc
208 test "$devfs" && grep -q '^devfs /dev' /proc/mounts && mount -f "$devfs"
209fi
210
211: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/jornada7xx/checkroot.sh b/meta/recipes-core/initscripts/initscripts-1.0/jornada7xx/checkroot.sh
new file mode 100755
index 0000000000..9e2d3cfc85
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/jornada7xx/checkroot.sh
@@ -0,0 +1,211 @@
1#
2# checkroot.sh Check to root filesystem.
3#
4# Version: @(#)checkroot.sh 2.84 25-Jan-2002 miquels@cistron.nl
5#
6
7. /etc/default/rcS
8
9#
10# Set SULOGIN in /etc/default/rcS to yes if you want a sulogin to be spawned
11# from this script *before anything else* with a timeout, like SCO does.
12#
13test "$SULOGIN" = yes && sulogin -t 30 $CONSOLE
14
15#
16# Ensure that bdflush (update) is running before any major I/O is
17# performed (the following fsck is a good example of such activity :).
18#
19test -x /sbin/update && update
20
21#
22# Read /etc/fstab.
23#
24exec 9>&0 </etc/fstab
25rootmode=rw
26rootopts=rw
27test "$ENABLE_ROOTFS_FSCK" = yes && rootcheck="yes" || rootcheck="no"
28swap_on_md=no
29devfs=
30while read fs mnt type opts dump pass junk
31do
32 case "$fs" in
33 ""|\#*)
34 continue;
35 ;;
36 /dev/md*)
37 # Swap on md device.
38 test "$type" = swap && swap_on_md=yes
39 ;;
40 /dev/*)
41 ;;
42 *)
43 # Might be a swapfile.
44 test "$type" = swap && swap_on_md=yes
45 ;;
46 esac
47
48 test "$type" = devfs && devfs="$fs"
49
50 # Currently we do not care about the other entries
51 if test "$mnt" = "/"
52 then
53 #echo "[$fs] [$mnt] [$type] [$opts] [$dump] [$pass] [$junk]"
54
55 rootopts="$opts"
56 roottype="$type"
57
58 #The "spinner" is broken on busybox sh
59 TERM=dumb
60
61 test "$pass" = 0 -o "$pass" = "" && rootcheck=no
62
63 # Enable fsck for ext2 and ext3 rootfs, disable for everything else
64 case "$type" in
65 ext3) rootcheck=yes;;
66 *) rootcheck=no;;
67 esac
68
69 if test "$rootcheck" = yes
70 then
71 if ! test -x "/sbin/fsck.${roottype}"
72 then
73 echo -e "\n * * * WARNING: /sbin/fsck.${roottype} is missing! * * *\n"
74 rootcheck=no
75 fi
76 fi
77
78 case "$opts" in
79 ro|ro,*|*,ro|*,ro,*)
80 rootmode=ro
81 ;;
82 esac
83 fi
84done
85exec 0>&9 9>&-
86
87#
88# Activate the swap device(s) in /etc/fstab. This needs to be done
89# before fsck, since fsck can be quite memory-hungry.
90#
91doswap=no
92test -d /proc/1 || mount -n /proc
93case "`uname -r`" in
94 2.[0123].*)
95 if test $swap_on_md = yes && grep -qs resync /proc/mdstat
96 then
97 test "$VERBOSE" != no && echo "Not activating swap - RAID array resyncing"
98 else
99 doswap=yes
100 fi
101 ;;
102 *)
103 doswap=yes
104 ;;
105esac
106if test $doswap = yes
107then
108 test "$VERBOSE" != no && echo "Activating swap"
109 swapon -a 2> /dev/null
110fi
111
112#
113# Check the root filesystem.
114#
115if test -f /fastboot || test $rootcheck = no
116then
117 test $rootcheck = yes && echo "Fast boot, no filesystem check"
118else
119 #
120 # Ensure that root is quiescent and read-only before fsck'ing.
121 #
122 mount -n -o remount,ro /
123 if test $? = 0
124 then
125 if test -f /forcefsck
126 then
127 force="-f"
128 else
129 force=""
130 fi
131 if test "$FSCKFIX" = yes
132 then
133 fix="-y"
134 else
135 fix="-a"
136 fi
137 spinner="-C"
138 case "$TERM" in
139 dumb|network|unknown|"") spinner="" ;;
140 esac
141 test `uname -m` = s390 && spinner="" # This should go away
142 test "$VERBOSE" != no && echo "Checking root filesystem..."
143 fsck $spinner $force $fix /
144 #
145 # If there was a failure, drop into single-user mode.
146 #
147 # NOTE: "failure" is defined as exiting with a return code of
148 # 2 or larger. A return code of 1 indicates that filesystem
149 # errors were corrected but that the boot may proceed.
150 #
151 if test "$?" -gt 1
152 then
153
154 # Since this script is run very early in the boot-process, it should be safe to assume that the
155 # output is printed to VT1. However, some distributions use a bootsplash to hide the "ugly" boot
156 # messages and having the bootsplash "hang" due to a waiting fsck prompt is less than ideal
157 chvt 1
158
159 # Surprise! Re-directing from a HERE document (as in
160 # "cat << EOF") won't work, because the root is read-only.
161 echo
162 echo "fsck failed. Please repair manually and reboot. Please note"
163 echo "that the root filesystem is currently mounted read-only. To"
164 echo "remount it read-write:"
165 echo
166 echo " # mount -n -o remount,rw /"
167 echo
168 echo "CONTROL-D will exit from this shell and REBOOT the system."
169 echo
170 # Start a single user shell on the console
171 /sbin/sulogin $CONSOLE
172 reboot -f
173 fi
174 else
175 echo "*** ERROR! Cannot fsck root fs because it is not mounted read-only!"
176 echo
177 fi
178fi
179
180#
181# If the root filesystem was not marked as read-only in /etc/fstab,
182# remount the rootfs rw but do not try to change mtab because it
183# is on a ro fs until the remount succeeded. Then clean up old mtabs
184# and finally write the new mtab.
185# This part is only needed if the rootfs was mounted ro.
186#
187if [ $(grep rootfs /proc/mounts | awk '{print $4}') = rw ]; then
188 exit 0
189fi
190
191# Add a second check, which seems to be needed for some kernel versions
192if [ $(grep "/dev/root" /proc/mounts | awk '{print $4}') = rw ]; then
193 exit 0
194fi
195
196
197echo "Remounting root file system..."
198mount -n -o remount,$rootmode /
199if test "$rootmode" = rw
200then
201 if test ! -L /etc/mtab
202 then
203 rm -f /etc/mtab~ /etc/nologin
204 : > /etc/mtab
205 fi
206 mount -f -o remount /
207 mount -f /proc
208 test "$devfs" && grep -q '^devfs /dev' /proc/mounts && mount -f "$devfs"
209fi
210
211: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh b/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
new file mode 100755
index 0000000000..9d4f97b683
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
@@ -0,0 +1,38 @@
1### BEGIN INIT INFO
2# Provides: mountall
3# Required-Start: mountvirtfs
4# Required-Stop:
5# Default-Start: S
6# Default-Stop:
7# Short-Description: Mount all filesystems.
8# Description:
9### END INIT INFO
10
11. /etc/default/rcS
12
13#
14# Mount local filesystems in /etc/fstab. For some reason, people
15# might want to mount "proc" several times, and mount -v complains
16# about this. So we mount "proc" filesystems without -v.
17#
18test "$VERBOSE" != no && echo "Mounting local filesystems..."
19mount -at nonfs,nosmbfs,noncpfs 2>/dev/null
20
21#
22# We might have mounted something over /dev, see if /dev/initctl is there.
23#
24if test ! -p /dev/initctl
25then
26 rm -f /dev/initctl
27 mknod -m 600 /dev/initctl p
28fi
29kill -USR1 1
30
31#
32# Execute swapon command again, in case we want to swap to
33# a file on a now mounted filesystem.
34#
35swapon -a 2> /dev/null
36
37: exit 0
38
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/mountnfs.sh b/meta/recipes-core/initscripts/initscripts-1.0/mountnfs.sh
new file mode 100755
index 0000000000..46c58b16a8
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/mountnfs.sh
@@ -0,0 +1,83 @@
1### BEGIN INIT INFO
2# Provides: mountnfs
3# Required-Start: $local_fs $network $portmap
4# Required-Stop:
5# Default-Start: S
6# Default-Stop:
7### END INIT INFO
8
9. /etc/default/rcS
10
11#
12# Run in a subshell because of I/O redirection.
13#
14test -f /etc/fstab && (
15
16#
17# Read through fstab line by line. If it is NFS, set the flag
18# for mounting NFS filesystems. If any NFS partition is found and it
19# not mounted with the nolock option, we start the portmapper.
20#
21portmap=no
22mount_nfs=no
23mount_smb=no
24mount_ncp=no
25while read device mountpt fstype options
26do
27 case "$device" in
28 ""|\#*)
29 continue
30 ;;
31 esac
32
33 case "$options" in
34 *noauto*)
35 continue
36 ;;
37 esac
38
39 if test "$fstype" = nfs
40 then
41 mount_nfs=yes
42 case "$options" in
43 *nolock*)
44 ;;
45 *)
46 portmap=yes
47 ;;
48 esac
49 fi
50 if test "$fstype" = smbfs
51 then
52 mount_smb=yes
53 fi
54 if test "$fstype" = ncpfs
55 then
56 mount_ncp=yes
57 fi
58done
59
60exec 0>&1
61
62if test "$portmap" = yes
63then
64 if test -x /sbin/portmap
65 then
66 echo -n "Starting portmapper... "
67 start-stop-daemon --start --quiet --exec /sbin/portmap
68 sleep 2
69 fi
70fi
71
72if test "$mount_nfs" = yes || test "$mount_smb" = yes || test "$mount_ncp" = yes
73then
74 echo "Mounting remote filesystems..."
75 test "$mount_nfs" = yes && mount -a -t nfs
76 test "$mount_smb" = yes && mount -a -t smbfs
77 test "$mount_ncp" = yes && mount -a -t ncpfs
78fi
79
80) < /etc/fstab
81
82: exit 0
83
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/om-gta01/inittab b/meta/recipes-core/initscripts/initscripts-1.0/om-gta01/inittab
new file mode 100644
index 0000000000..8d313b2a58
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/om-gta01/inittab
@@ -0,0 +1,48 @@
1# /etc/inittab: init(8) configuration.
2# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
3
4# The default runlevel.
5id:5:initdefault:
6
7# Boot-time system configuration/initialization script.
8# This is run first except when booting in emergency (-b) mode.
9si::sysinit:/etc/init.d/rcS
10
11# What to do in single-user mode.
12~~:S:wait:/sbin/sulogin
13
14# Shut down if kernel sends us SIGINT or SIGPWR
15ca::ctrlaltdel:/sbin/halt -p
16pf::powerfailnow:/sbin/halt -p
17
18# /etc/init.d executes the S and K scripts upon change
19# of runlevel.
20#
21# Runlevel 0 is halt.
22# Runlevel 1 is single-user.
23# Runlevels 2-5 are multi-user.
24# Runlevel 6 is reboot.
25
26l0:0:wait:/etc/init.d/rc 0
27l1:1:wait:/etc/init.d/rc 1
28l2:2:wait:/etc/init.d/rc 2
29l3:3:wait:/etc/init.d/rc 3
30l4:4:wait:/etc/init.d/rc 4
31l5:5:wait:/etc/init.d/rc 5
32l6:6:wait:/etc/init.d/rc 6
33# Normally not reached, but fallthrough in case of emergency.
34z6:6:respawn:/sbin/sulogin
35
36# /sbin/getty invocations for the runlevels.
37#
38# The "id" field MUST be the same as the last
39# characters of the device (after "tty").
40#
41# Format:
42# <id>:<runlevels>:<action>:<process>
43
44# NOTE: FIC GTA01 has this odd multiplexer on ttySAC0 since
45# GSM shares it with the serial output. We only allow
46# the getty in runlevel 2 to cope with that. gsmd gets
47# started in runlevel 3. -- mickey@openmoko.org
48S:2:respawn:/sbin/getty 115200 ttySAC0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/openmn/extractfs b/meta/recipes-core/initscripts/initscripts-1.0/openmn/extractfs
new file mode 100755
index 0000000000..7e57dedd2d
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/openmn/extractfs
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3if (grep -q 'tmpfs.*/var.*tmpfs' /proc/mounts)
4then
5 test "$VERBOSE" != no && echo "Copying /var filesystem..."
6 cp -a /boot/var /
7fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/openmn/packages b/meta/recipes-core/initscripts/initscripts-1.0/openmn/packages
new file mode 100755
index 0000000000..2566487d2d
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/openmn/packages
@@ -0,0 +1,63 @@
1#!/bin/sh
2# Original author: ???
3#
4# Additions by Steph Meslin-Weber:
5# x Percentage display
6# x Dot display of dependency installations
7# - removed both of above
8# - display is now X of Y packages and current package name being installed
9
10#. /etc/default/rcS
11
12reconfigure () {
13 pkg=$1
14 path=$2
15 isdependent=$3
16 test -e "$path/info/$pkg.control" || return 1
17 depends="`cat $path/info/$pkg.control|grep Depends|cut -d: -f2`"
18
19 # make sure we haven't already installed this package
20 isthere=`cat /tmp/.configured.list|grep $pkg`
21 if test "$isthere" != ""; then
22 return 1
23 fi
24
25 if test "$depends" != ""; then
26 for dep in $depends; do
27 (echo $log|grep $dep >/dev/null 2>&1) || ( reconfigure $dep $path "$max" "$pkg" && log="$log $dep"; )
28 done
29 fi
30
31 echo -ne " ${pkg}"
32
33 test -e "$path/info/$pkg.prerm" && $path/info/$pkg.prerm unconfigure >/dev/null 2>&1
34 test -e "$path/info/$pkg.postinst" && $path/info/$pkg.postinst configure >/dev/null 2>&1
35
36 log="$log $pkg"
37
38 # append the installed package name to the list
39 echo -ne "$pkg\n" >> /tmp/.configured.list
40
41 echo
42 return 0
43}
44
45if test ! -e /etc/.configured; then
46 echo "Reconfiguring all packages installed to root:"
47
48 # create unique packages list file
49 rm -f /tmp/.configured.list
50 touch /tmp/.configured.list
51
52 log=""
53
54 for control in /usr/lib/ipkg/info/*.control; do
55 package=`echo $control|sed -e 's,.*/,,g; s,\.control,,g;'`
56 (echo $log|grep $package >/dev/null 2>&1) || reconfigure $package /usr/lib/ipkg
57 done
58
59 # cleanup unique packages list file
60 rm -f /tmp/.configured.list
61fi
62
63test -f /usr/lib/ipkg/info/task-ramses || ipkg install task-ramses
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/openmn/umountfs b/meta/recipes-core/initscripts/initscripts-1.0/openmn/umountfs
new file mode 100755
index 0000000000..399194109b
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/openmn/umountfs
@@ -0,0 +1,17 @@
1#! /bin/sh
2#
3# umountfs Turn off swap and unmount all local filesystems.
4#
5
6PATH=/sbin:/bin:/usr/sbin:/usr/bin
7
8echo "Deactivating swap..."
9swapoff -a
10
11# We leave /proc mounted.
12echo "Unmounting local filesystems..."
13umount -f -a -r
14
15mount -o remount,ro /
16
17: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
new file mode 100755
index 0000000000..1813fd1240
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -0,0 +1,197 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: volatile
4# Required-Start: $local_fs
5# Required-Stop: $local_fs
6# Default-Start: S
7# Default-Stop:
8# Short-Description: Populate the volatile filesystem
9### END INIT INFO
10
11. /etc/default/rcS
12
13CFGDIR="/etc/default/volatiles"
14TMPROOT="/var/tmp"
15COREDEF="00_core"
16
17[ "${VERBOSE}" != "no" ] && echo "Populating volatile Filesystems."
18
19create_file() {
20 EXEC="
21 touch \"$1\";
22 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
23 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
24
25 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache
26
27 [ -e "$1" ] && {
28 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
29 } || {
30 eval $EXEC &
31 }
32}
33
34mk_dir() {
35 EXEC="
36 mkdir -p \"$1\";
37 chown ${TUSER}.${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
38 chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
39
40 test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache
41
42 [ -e "$1" ] && {
43 [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
44 } || {
45 eval $EXEC &
46 }
47}
48
49link_file() {
50 EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1"
51
52 test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache
53
54 [ -e "$2" ] && {
55 echo "Cannot create link over existing -${TNAME}-." >&2
56 } || {
57 eval $EXEC &
58 }
59}
60
61check_requirements() {
62
63 cleanup() {
64 rm "${TMP_INTERMED}"
65 rm "${TMP_DEFINED}"
66 rm "${TMP_COMBINED}"
67 }
68
69 CFGFILE="$1"
70
71 [ `basename "${CFGFILE}"` = "${COREDEF}" ] && return 0
72
73 TMP_INTERMED="${TMPROOT}/tmp.$$"
74 TMP_DEFINED="${TMPROOT}/tmpdefined.$$"
75 TMP_COMBINED="${TMPROOT}/tmpcombined.$$"
76
77
78 cat /etc/passwd | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
79 cat ${CFGFILE} | grep -v "^#" | cut -d " " -f 2 > "${TMP_INTERMED}"
80 cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
81
82 NR_DEFINED_USERS="`cat "${TMP_DEFINED}" | wc -l`"
83 NR_COMBINED_USERS="`cat "${TMP_COMBINED}" | wc -l`"
84
85 [ "${NR_DEFINED_USERS}" -ne "${NR_COMBINED_USERS}" ] && {
86 echo "Undefined users:"
87 diff "${TMP_DEFINED}" "${TMP_COMBINED}" | grep "^>"
88 cleanup
89 return 1
90 }
91
92
93 cat /etc/group | sed 's@\(^:\)*:.*@\1@' | sort | uniq > "${TMP_DEFINED}"
94 cat ${CFGFILE} | grep -v "^#" | cut -d " " -f 3 > "${TMP_INTERMED}"
95 cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
96
97 NR_DEFINED_GROUPS="`cat "${TMP_DEFINED}" | wc -l`"
98 NR_COMBINED_GROUPS="`cat "${TMP_COMBINED}" | wc -l`"
99
100 [ "${NR_DEFINED_GROUPS}" -ne "${NR_COMBINED_GROUPS}" ] && {
101 echo "Undefined groups:"
102 diff "${TMP_DEFINED}" "${TMP_COMBINED}" | grep "^>"
103 cleanup
104 return 1
105 }
106
107 # Add checks for required directories here
108
109 cleanup
110 return 0
111 }
112
113apply_cfgfile() {
114
115 CFGFILE="$1"
116
117 check_requirements "${CFGFILE}" || {
118 echo "Skipping ${CFGFILE}"
119 return 1
120 }
121
122 cat ${CFGFILE} | grep -v "^#" | \
123 while read LINE; do
124
125 eval `echo "$LINE" | sed -n "s/\(.*\)\ \(.*\) \(.*\)\ \(.*\)\ \(.*\)\ \(.*\)/TTYPE=\1 ; TUSER=\2; TGROUP=\3; TMODE=\4; TNAME=\5 TLTARGET=\6/p"`
126
127 [ "${VERBOSE}" != "no" ] && echo "Checking for -${TNAME}-."
128
129
130 [ "${TTYPE}" = "l" ] && {
131 TSOURCE="$TLTARGET"
132 [ -L "${TNAME}" ] || {
133 [ "${VERBOSE}" != "no" ] && echo "Creating link -${TNAME}- pointing to -${TSOURCE}-."
134 link_file "${TSOURCE}" "${TNAME}" &
135 }
136 continue
137 }
138
139 [ -L "${TNAME}" ] && {
140 [ "${VERBOSE}" != "no" ] && echo "Found link."
141 NEWNAME=`ls -l "${TNAME}" | sed -e 's/^.*-> \(.*\)$/\1/'`
142 echo ${NEWNAME} | grep -v "^/" >/dev/null && {
143 TNAME="`echo ${TNAME} | sed -e 's@\(.*\)/.*@\1@'`/${NEWNAME}"
144 [ "${VERBOSE}" != "no" ] && echo "Converted relative linktarget to absolute path -${TNAME}-."
145 } || {
146 TNAME="${NEWNAME}"
147 [ "${VERBOSE}" != "no" ] && echo "Using absolute link target -${TNAME}-."
148 }
149 }
150
151 case "${TTYPE}" in
152 "f") [ "${VERBOSE}" != "no" ] && echo "Creating file -${TNAME}-."
153 create_file "${TNAME}" &
154 ;;
155 "d") [ "${VERBOSE}" != "no" ] && echo "Creating directory -${TNAME}-."
156 mk_dir "${TNAME}" &
157 # Add check to see if there's an entry in fstab to mount.
158 ;;
159 *) [ "${VERBOSE}" != "no" ] && echo "Invalid type -${TTYPE}-."
160 continue
161 ;;
162 esac
163
164
165 done
166
167 return 0
168
169 }
170
171clearcache=0
172exec 9</proc/cmdline
173while read line <&9
174do
175 case "$line" in
176 *clearcache*) clearcache=1
177 ;;
178 *) continue
179 ;;
180 esac
181done
182exec 9>&-
183
184if test -e /etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "xupdate" -a "x$clearcache" = "x0"
185then
186 sh /etc/volatile.cache
187else
188 rm -f /etc/volatile.cache
189 for file in `ls -1 "${CFGDIR}" | sort`; do
190 apply_cfgfile "${CFGDIR}/${file}"
191 done
192fi
193
194if test -f /etc/ld.so.cache -a ! -f /var/run/ld.so.cache
195then
196 ln -s /etc/ld.so.cache /var/run/ld.so.cache
197fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/reboot b/meta/recipes-core/initscripts/initscripts-1.0/reboot
new file mode 100755
index 0000000000..4c55885aba
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/reboot
@@ -0,0 +1,15 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: reboot
4# Required-Start:
5# Required-Stop:
6# Default-Start:
7# Default-Stop: 6
8# Short-Description: Execute the reboot command.
9# Description:
10### END INIT INFO
11
12PATH=/sbin:/bin:/usr/sbin:/usr/bin
13
14echo -n "Rebooting... "
15reboot -d -f -i
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/rmnologin.sh b/meta/recipes-core/initscripts/initscripts-1.0/rmnologin.sh
new file mode 100755
index 0000000000..417efc2456
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/rmnologin.sh
@@ -0,0 +1,20 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: rmnologin
4# Required-Start: $remote_fs $all
5# Required-Stop:
6# Default-Start: 2 3 4 5
7# Default-Stop:
8# Short-Description: Remove /etc/nologin at boot
9# Description: This script removes the /etc/nologin file as the
10# last step in the boot process, if DELAYLOGIN=yes.
11# If DELAYLOGIN=no, /etc/nologin was not created by
12# bootmisc earlier in the boot process.
13### END INIT INFO
14
15if test -f /etc/nologin.boot
16then
17 rm -f /etc/nologin /etc/nologin.boot
18fi
19
20: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh b/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh
new file mode 100644
index 0000000000..75e43001b8
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh
@@ -0,0 +1,13 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: save-rtc
4# Required-Start:
5# Required-Stop: $local_fs hwclock
6# Default-Start: S
7# Default-Stop: 0 6
8# Short-Description: Store system clock into file
9# Description:
10### END INIT INFO
11
12# Update the timestamp
13date +%Y%m%d%2H%2M > /etc/timestamp2
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/sendsigs b/meta/recipes-core/initscripts/initscripts-1.0/sendsigs
new file mode 100755
index 0000000000..2b0f8f3631
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/sendsigs
@@ -0,0 +1,21 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: sendsigs
4# Required-Start:
5# Required-Stop: umountnfs
6# Default-Start:
7# Default-Stop: 0 6
8# Short-Description: Kill all remaining processes.
9# Description:
10### END INIT INFO
11
12PATH=/sbin:/bin:/usr/sbin:/usr/bin
13
14# Kill all processes.
15echo "Sending all processes the TERM signal..."
16killall5 -15
17sleep 5
18echo "Sending all processes the KILL signal..."
19killall5 -9
20
21: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/single b/meta/recipes-core/initscripts/initscripts-1.0/single
new file mode 100755
index 0000000000..0cad693f20
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/single
@@ -0,0 +1,24 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: single
4# Required-Start: $local_fs $all killprocs
5# Required-Stop:
6# Default-Start: 1
7# Default-Stop:
8# Short-Description: executed by init(8) upon entering runlevel 1 (single).
9### END INIT INFO
10
11PATH="/sbin:/bin:/usr/sbin:/usr/bin"
12
13# Kill all processes.
14echo "Sending all processes the TERM signal..."
15killall5 -15
16sleep 5
17echo "Sending all processes the KILL signal..."
18killall5 -9
19
20# We start update here, since we just killed it.
21test -x /sbin/update && update
22
23echo "Entering single-user mode..."
24exec init -t1 S
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh b/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
new file mode 100644
index 0000000000..be28bb35bf
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
@@ -0,0 +1,19 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: mountvirtfs
4# Required-Start:
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8# Short-Description: Mount kernel virtual file systems.
9# Description: Mount initial set of virtual filesystems the kernel
10# provides and that are required by everything.
11### END INIT INFO
12
13if [ -e /proc ] && ! [ -e /proc/mounts ]; then
14 mount -t proc proc /proc
15fi
16
17if [ -e /sys ] && grep -q sysfs /proc/filesystems; then
18 mount sysfs /sys -t sysfs
19fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/umountfs b/meta/recipes-core/initscripts/initscripts-1.0/umountfs
new file mode 100755
index 0000000000..5c6793dc9c
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/umountfs
@@ -0,0 +1,24 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: umountfs
4# Required-Start:
5# Required-Stop:
6# Default-Start:
7# Default-Stop: 0 6
8# Short-Description: Turn off swap and unmount all local file systems.
9# Description:
10### END INIT INFO
11
12PATH=/sbin:/bin:/usr/sbin:/usr/bin
13
14echo "Deactivating swap..."
15swapoff -a
16
17# We leave /proc mounted.
18echo "Unmounting local filesystems..."
19mount -o remount,ro /mnt/ram
20umount -f -a -r
21
22mount -o remount,ro /
23
24: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/umountnfs.sh b/meta/recipes-core/initscripts/initscripts-1.0/umountnfs.sh
new file mode 100755
index 0000000000..a4fb821d91
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/umountnfs.sh
@@ -0,0 +1,32 @@
1### BEGIN INIT INFO
2# Provides: umountnfs
3# Required-Start:
4# Required-Stop: umountfs
5# Should-Stop: $network $portmap
6# Default-Start:
7# Default-Stop: 0 6
8# Short-Description: Unmount all network filesystems
9### END INIT INFO
10
11PATH=/sbin:/bin:/usr/sbin:/usr/bin
12
13# Write a reboot record to /var/log/wtmp before unmounting
14halt -w
15
16echo "Unmounting remote filesystems..."
17
18test -f /etc/fstab && (
19
20#
21# Read through fstab line by line and unount network file systems
22#
23while read device mountpt fstype options
24do
25 if test "$fstype" = nfs || test "$fstype" = smbfs || test "$fstype" = ncpfs
26 then
27 umount -f $mountpt
28 fi
29done
30) < /etc/fstab
31
32: exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/urandom b/meta/recipes-core/initscripts/initscripts-1.0/urandom
new file mode 100755
index 0000000000..b6d807cf3b
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/urandom
@@ -0,0 +1,46 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: urandom
4# Required-Start: $local_fs mountvirtfs
5# Required-Stop: $local_fs
6# Default-Start: S
7# Default-Stop: 0 6
8# Short-Description: Save and restore the random seed
9# Description: Save the random seed on shutdown and restore it on boot,
10# to ensure that the seed isn't predicable on startup
11# (because the boot process is predictable)
12### END INIT INFO
13
14test -c /dev/urandom || exit 0
15. /etc/default/rcS
16
17case "$1" in
18 start|"")
19 test "$VERBOSE" != no && echo "Initializing random number generator..."
20 # Load and then save 512 bytes,
21 # which is the size of the entropy pool
22 if test -f /var/lib/urandom/random-seed
23 then
24 cat /var/lib/urandom/random-seed >/dev/urandom
25 fi
26 rm -f /var/lib/urandom/random-seed
27 umask 077
28 dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
29 >/dev/null 2>&1 || echo "urandom start: failed."
30 umask 022
31 ;;
32 stop)
33 # Carry a random seed from shut-down to start-up;
34 # see documentation in linux/drivers/char/random.c
35 test "$VERBOSE" != no && echo "Saving random seed..."
36 umask 077
37 dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
38 >/dev/null 2>&1 || echo "urandom stop: failed."
39 ;;
40 *)
41 echo "Usage: urandom {start|stop}" >&2
42 exit 1
43 ;;
44esac
45
46exit 0
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/volatiles b/meta/recipes-core/initscripts/initscripts-1.0/volatiles
new file mode 100644
index 0000000000..b2ae2794dc
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/volatiles
@@ -0,0 +1,39 @@
1# This configuration file lists filesystem objects that should get verified
2# during startup and be created if missing.
3#
4# Every line must either be a comment starting with #
5# or a definition of format:
6# <type> <owner> <group> <mode> <path> <linksource>
7# where the items are separated by whitespace !
8#
9# <type> : d|f|l : (d)irectory|(f)ile|(l)ink
10#
11# A linking example:
12# l root root 0777 /var/test /tmp/testfile
13# f root root 0644 /var/test none
14#
15# Understanding links:
16# When populate-volatile is to verify/create a directory or file, it will first
17# check it's existence. If a link is found to exist in the place of the target,
18# the path of the target is replaced with the target the link points to.
19# Thus, if a link is in the place to be verified, the object will be created
20# in the place the link points to instead.
21# This explains the order of "link before object" as in the example above, where
22# a link will be created at /var/test pointing to /tmp/testfile and due to this
23# link the file defined as /var/test will actually be created as /tmp/testfile.
24d root root 0755 /var/volatile/cache none
25d root root 1777 /var/volatile/lock none
26d root root 0755 /var/volatile/log none
27d root root 0755 /var/volatile/run none
28d root root 1777 /var/volatile/tmp none
29l root root 0755 /var/cache /var/volatile/cache
30l root root 1777 /var/lock /var/volatile/lock
31l root root 0755 /var/log /var/volatile/log
32l root root 0755 /var/run /var/volatile/run
33l root root 1777 /var/tmp /var/volatile/tmp
34d root root 0755 /var/lock/subsys none
35f root root 0664 /var/log/wtmp none
36f root root 0664 /var/run/utmp none
37l root root 0644 /etc/resolv.conf /var/run/resolv.conf
38f root root 0644 /var/run/resolv.conf none
39
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
new file mode 100644
index 0000000000..0d79b53a8c
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -0,0 +1,121 @@
1DESCRIPTION = "SysV init scripts"
2SECTION = "base"
3PRIORITY = "required"
4DEPENDS = "makedevs"
5RDEPENDS = "makedevs"
6LICENSE = "GPLv2"
7PR = "r122"
8
9SRC_URI = "file://functions \
10 file://halt \
11 file://umountfs \
12 file://devpts.sh \
13 file://devpts \
14 file://hostname.sh \
15 file://mountall.sh \
16 file://banner.sh \
17 file://finish.sh \
18 file://bootmisc.sh \
19 file://mountnfs.sh \
20 file://reboot \
21 file://checkfs.sh \
22 file://single \
23 file://sendsigs \
24 file://urandom \
25 file://rmnologin.sh \
26 file://checkroot.sh \
27 file://umountnfs.sh \
28 file://sysfs.sh \
29 file://device_table.txt \
30 file://populate-volatile.sh \
31 file://volatiles \
32 file://save-rtc.sh"
33
34SRC_URI_append_arm = " file://alignment.sh"
35
36KERNEL_VERSION = ""
37
38do_install () {
39#
40# Create directories and install device independent scripts
41#
42 install -d ${D}${sysconfdir}/init.d
43 install -d ${D}${sysconfdir}/rcS.d
44 install -d ${D}${sysconfdir}/rc0.d
45 install -d ${D}${sysconfdir}/rc1.d
46 install -d ${D}${sysconfdir}/rc2.d
47 install -d ${D}${sysconfdir}/rc3.d
48 install -d ${D}${sysconfdir}/rc4.d
49 install -d ${D}${sysconfdir}/rc5.d
50 install -d ${D}${sysconfdir}/rc6.d
51 install -d ${D}${sysconfdir}/default
52 install -d ${D}${sysconfdir}/default/volatiles
53
54 install -m 0644 ${WORKDIR}/functions ${D}${sysconfdir}/init.d
55 install -m 0755 ${WORKDIR}/bootmisc.sh ${D}${sysconfdir}/init.d
56 install -m 0755 ${WORKDIR}/checkroot.sh ${D}${sysconfdir}/init.d
57# install -m 0755 ${WORKDIR}/finish.sh ${D}${sysconfdir}/init.d
58 install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d
59 install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d
60 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d
61 install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d
62 install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d
63 install -m 0755 ${WORKDIR}/rmnologin.sh ${D}${sysconfdir}/init.d
64 install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d
65 install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d
66 install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/init.d
67 install -m 0755 ${WORKDIR}/urandom ${D}${sysconfdir}/init.d
68 install -m 0755 ${WORKDIR}/devpts.sh ${D}${sysconfdir}/init.d
69 install -m 0755 ${WORKDIR}/devpts ${D}${sysconfdir}/default
70 install -m 0755 ${WORKDIR}/sysfs.sh ${D}${sysconfdir}/init.d
71 install -m 0755 ${WORKDIR}/populate-volatile.sh ${D}${sysconfdir}/init.d
72 install -m 0755 ${WORKDIR}/save-rtc.sh ${D}${sysconfdir}/init.d
73 install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
74 if [ "${TARGET_ARCH}" = "arm" ]; then
75 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
76 fi
77#
78# Install device dependent scripts
79#
80 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
81 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
82#
83# Create runlevel links
84#
85 ln -sf ../init.d/rmnologin.sh ${D}${sysconfdir}/rc2.d/S99rmnologin.sh
86 ln -sf ../init.d/rmnologin.sh ${D}${sysconfdir}/rc3.d/S99rmnologin.sh
87 ln -sf ../init.d/rmnologin.sh ${D}${sysconfdir}/rc4.d/S99rmnologin.sh
88 ln -sf ../init.d/rmnologin.sh ${D}${sysconfdir}/rc5.d/S99rmnologin.sh
89 ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc6.d/S20sendsigs
90# ln -sf ../init.d/urandom ${D}${sysconfdir}/rc6.d/S30urandom
91 ln -sf ../init.d/umountnfs.sh ${D}${sysconfdir}/rc6.d/S31umountnfs.sh
92 ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc6.d/S40umountfs
93 # udev will run at S55 if installed
94 ln -sf ../init.d/reboot ${D}${sysconfdir}/rc6.d/S90reboot
95 ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc0.d/S20sendsigs
96# ln -sf ../init.d/urandom ${D}${sysconfdir}/rc0.d/S30urandom
97 ln -sf ../init.d/umountnfs.sh ${D}${sysconfdir}/rc0.d/S31umountnfs.sh
98 ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc0.d/S40umountfs
99 # udev will run at S55 if installed
100 ln -sf ../init.d/halt ${D}${sysconfdir}/rc0.d/S90halt
101 ln -sf ../init.d/save-rtc.sh ${D}${sysconfdir}/rc0.d/S25save-rtc.sh
102 ln -sf ../init.d/save-rtc.sh ${D}${sysconfdir}/rc6.d/S25save-rtc.sh
103 ln -sf ../init.d/banner.sh ${D}${sysconfdir}/rcS.d/S02banner.sh
104 ln -sf ../init.d/checkroot.sh ${D}${sysconfdir}/rcS.d/S10checkroot.sh
105# ln -sf ../init.d/checkfs.sh ${D}${sysconfdir}/rcS.d/S30checkfs.sh
106 ln -sf ../init.d/mountall.sh ${D}${sysconfdir}/rcS.d/S35mountall.sh
107 ln -sf ../init.d/hostname.sh ${D}${sysconfdir}/rcS.d/S39hostname.sh
108 ln -sf ../init.d/mountnfs.sh ${D}${sysconfdir}/rcS.d/S45mountnfs.sh
109 ln -sf ../init.d/bootmisc.sh ${D}${sysconfdir}/rcS.d/S55bootmisc.sh
110# ln -sf ../init.d/urandom ${D}${sysconfdir}/rcS.d/S55urandom
111# ln -sf ../init.d/finish.sh ${D}${sysconfdir}/rcS.d/S99finish.sh
112 # udev will run at S04 if installed
113 ln -sf ../init.d/sysfs.sh ${D}${sysconfdir}/rcS.d/S03sysfs.sh
114 ln -sf ../init.d/populate-volatile.sh ${D}${sysconfdir}/rcS.d/S37populate-volatile.sh
115 ln -sf ../init.d/devpts.sh ${D}${sysconfdir}/rcS.d/S38devpts.sh
116 if [ "${TARGET_ARCH}" = "arm" ]; then
117 ln -sf ../init.d/alignment.sh ${D}${sysconfdir}/rcS.d/S06alignment.sh
118 fi
119
120 install -m 0755 ${WORKDIR}/device_table.txt ${D}${sysconfdir}/device_table
121}
diff --git a/meta/recipes-core/jpeg/jpeg-8b/debian-libjpeg7_7-1.diff b/meta/recipes-core/jpeg/jpeg-8b/debian-libjpeg7_7-1.diff
new file mode 100755
index 0000000000..2e4867aa75
--- /dev/null
+++ b/meta/recipes-core/jpeg/jpeg-8b/debian-libjpeg7_7-1.diff
@@ -0,0 +1,1066 @@
1--- libjpeg7-7.orig/config.sub
2+++ libjpeg7-7/config.sub
3@@ -1,4 +1,10 @@
4 #! /bin/sh
5+# autotools-dev hack (<ballombe@debian.org>, Wed, 14 Nov 2001 10:13:10 +0100)
6+if [ -x /usr/share/misc/config.sub ]; then
7+ /usr/share/misc/config.sub $*
8+ exit $?
9+fi
10+
11 # Configuration validation subroutine script.
12 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
13 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
14--- libjpeg7-7.orig/config.guess
15+++ libjpeg7-7/config.guess
16@@ -1,4 +1,10 @@
17 #! /bin/sh
18+# autotools-dev hack (<ballombe@debian.org>, Wed, 14 Nov 2001 10:13:10 +0100)
19+if [ -x /usr/share/misc/config.guess ]; then
20+ /usr/share/misc/config.guess $*
21+ exit $?
22+fi
23+
24 # Attempt to guess a canonical system name.
25 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
26 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
27--- libjpeg7-7.orig/debian/libjpeg7-dev.files
28+++ libjpeg7-7/debian/libjpeg7-dev.files
29@@ -0,0 +1,4 @@
30+usr/include
31+usr/lib/libjpeg.a
32+usr/lib/libjpeg.la
33+usr/lib/libjpeg.so
34--- libjpeg7-7.orig/debian/libjpeg-progs.README.Debian
35+++ libjpeg7-7/debian/libjpeg-progs.README.Debian
36@@ -0,0 +1,13 @@
37+libjpeg-progs for Debian
38+========================
39+
40+This package contains programs for manipulating JPEG files:
41+ cjpeg/djpeg: convert to/from the JPEG file format
42+ rdjpgcom/wrjpgcom: read/write comments in JPEG files
43+ jpegtran: lossless transformations of JPEG files
44+ jpegexiforient/exifautotran: manipulate EXIF orientation tag
45+
46+Thanks for using Debian!
47+
48+--
49+Bill Allombert <ballombe@debian.org> Sun, 05 Jul 2009 15:18:59 +0200
50--- libjpeg7-7.orig/debian/shlibs.local
51+++ libjpeg7-7/debian/shlibs.local
52@@ -0,0 +1 @@
53+libjpeg 7 libjpeg7
54--- libjpeg7-7.orig/debian/rules
55+++ libjpeg7-7/debian/rules
56@@ -0,0 +1,71 @@
57+#!/usr/bin/make -f
58+# Made with the aid of debmake, by Christoph Lameter,
59+# based on the sample debian/rules file for GNU hello by Ian Jackson.
60+
61+package=libjpeg
62+
63+export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
64+export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
65+
66+export CFLAGS=-D_REENTRANT -g -Wall
67+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
68+CFLAGS += -O0
69+else
70+CFLAGS += -O2
71+endif
72+
73+#export DH_VERBOSE=1
74+
75+build: build-stamp
76+build-stamp:
77+ dh_testdir
78+ ./configure --prefix=/usr --mandir=/usr/share/man \
79+ --enable-static --enable-shared \
80+ --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
81+ $(MAKE)
82+ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
83+ $(MAKE) check
84+endif
85+ $(MAKE) -C debian/extra
86+
87+ touch build-stamp
88+
89+clean:
90+ dh_testdir
91+ dh_testroot
92+ -rm -f build-stamp
93+ if [ -f Makefile ]; then $(MAKE) distclean; fi
94+ $(MAKE) clean -C debian/extra
95+ dh_clean
96+
97+binary-indep:
98+
99+binary-arch: build
100+ dh_testdir
101+ dh_testroot
102+ dh_clean -k
103+ dh_installdirs
104+ $(MAKE) install DESTDIR=`pwd`/debian/tmp
105+ $(MAKE) install -C debian/extra prefix=/usr DESTDIR=`pwd`/debian/tmp
106+ # fix jconfig.h
107+ rm debian/tmp/usr/include/jconfig.h
108+ sed -e "s/#\(undef\|define\) HAVE_\(LOCALE\|\(STD\(DEF\|LIB\)\)\)_H 1//g" \
109+ jconfig.h > debian/tmp/usr/include/jconfig.h
110+ # separate out lib package
111+ dh_movefiles
112+ # Finish it off with debhelper
113+ dh_installdocs README
114+ dh_installexamples
115+ dh_installchangelogs change.log
116+ dh_strip --dbg-package=libjpeg7-dbg
117+ dh_compress
118+ dh_fixperms
119+ dh_installdeb
120+ dh_shlibdeps -l`pwd`/debian/libjpeg7/usr/lib
121+ dh_gencontrol
122+ dh_md5sums
123+ dh_builddeb
124+
125+binary: binary-indep binary-arch
126+
127+.PHONY: clean binary-indep binary-arch binary build
128--- libjpeg7-7.orig/debian/libjpeg7-dev.README.Debian
129+++ libjpeg7-7/debian/libjpeg7-dev.README.Debian
130@@ -0,0 +1,18 @@
131+IJG JPEG for Debian
132+===================
133+
134+The following patch has been applied to the headers files:
135+
136+--- jconfig.h: Remove unused symbol HAVE_STDDEF_H, HAVE_STDLIB_H and
137+HAVE_LOCALE_H since they are not used by the installed headers files and cause
138+problem with autoconf.
139+
140+This can theoretically cause problems if your software relies on theses symbols
141+being defined by this header. If it ever happens, please define them manually.
142+
143+Note: this is not Debian-specific, others distributions apply similar patches.
144+
145+Thanks for using Debian!
146+
147+---
148+Bill Allombert <ballombe@debian.org> Sun, 05 Jul 2009 15:17:56 +0200
149--- libjpeg7-7.orig/debian/shlibs
150+++ libjpeg7-7/debian/shlibs
151@@ -0,0 +1 @@
152+libjpeg 7 libjpeg7
153--- libjpeg7-7.orig/debian/control
154+++ libjpeg7-7/debian/control
155@@ -0,0 +1,52 @@
156+Source: libjpeg7
157+Maintainer: Bill Allombert <ballombe@debian.org>
158+Section: graphics
159+Priority: optional
160+Build-Depends: debhelper (>= 5), autotools-dev
161+Standards-Version: 3.8.2
162+
163+Package: libjpeg7
164+Architecture: any
165+Section: libs
166+Description: The Independent JPEG Group's JPEG runtime library
167+ The Independent JPEG Group's JPEG library is a library for handling
168+ JPEG files.
169+ .
170+ This package contains the shared library.
171+Depends: ${shlibs:Depends}
172+
173+Package: libjpeg7-dev
174+Architecture: any
175+Section: libdevel
176+Description: Development files for the IJG JPEG library
177+ The Independent JPEG Group's JPEG library is a library for handling
178+ JPEG files.
179+ .
180+ This package contains the static library, headers and documentation.
181+Depends: libjpeg7 (=${binary:Version}), libc-dev
182+Conflicts: libjpeg62-dev
183+Replaces: libjpeg62-dev
184+
185+Package: libjpeg7-dbg
186+Architecture: any
187+Section: debug
188+Priority: extra
189+Description: Development files for the IJG JPEG library
190+ The Independent JPEG Group's JPEG library is a library for handling
191+ JPEG files.
192+ .
193+ This package contains the debugging symbols for libjpeg.
194+Provides: libjpeg-dbg
195+Depends: libjpeg7 (=${binary:Version})
196+Conflicts: libjpeg62-dbg
197+Replaces: libjpeg62-dbg
198+
199+Package: libjpeg-progs
200+Architecture: any
201+Description: Programs for manipulating JPEG files
202+ This package contains programs for manipulating JPEG files:
203+ cjpeg/djpeg: convert to/from the JPEG file format
204+ rdjpgcom/wrjpgcom: read/write comments in JPEG files
205+ jpegtran: lossless transformations of JPEG files
206+ jpegexiforient/exifautotran: manipulate EXIF orientation tag
207+Depends: ${shlibs:Depends}
208--- libjpeg7-7.orig/debian/libjpeg7.files
209+++ libjpeg7-7/debian/libjpeg7.files
210@@ -0,0 +1,2 @@
211+/usr/lib/libjpeg.so.7.0.0
212+/usr/lib/libjpeg.so.7
213--- libjpeg7-7.orig/debian/postinst
214+++ libjpeg7-7/debian/postinst
215@@ -0,0 +1,8 @@
216+#!/bin/sh -e
217+
218+#DEBHELPER#
219+
220+if [ "$1" = "configure" ]; then
221+ ldconfig
222+fi
223+
224--- libjpeg7-7.orig/debian/compat
225+++ libjpeg7-7/debian/compat
226@@ -0,0 +1 @@
227+5
228--- libjpeg7-7.orig/debian/libjpeg7-dev.examples
229+++ libjpeg7-7/debian/libjpeg7-dev.examples
230@@ -0,0 +1 @@
231+example.c
232--- libjpeg7-7.orig/debian/changelog
233+++ libjpeg7-7/debian/changelog
234@@ -0,0 +1,245 @@
235+libjpeg7 (7-1) unstable; urgency=low
236+
237+ * The "Yoan" release.
238+ * New upstream release. closes: #535350
239+ - This release includes configure.ac and Makefile.am. closes: #346126
240+ - All patches merged upstream.
241+ - Remove dpatch support.
242+ * debian/control:
243+ - Remove Build-Dependency on libtool and sharutils.
244+ - Move libjpeg7-dbg to debug section.
245+ - Bump standard version to 3.8.2.
246+ * Skip test-suite if nocheck is set. closes: #451222
247+
248+ -- Bill Allombert <ballombe@debian.org> Sun, 05 Jul 2009 15:29:27 +0200
249+
250+libjpeg6b (6b-14) unstable; urgency=low
251+
252+ * The "Lino" release.
253+ * exifautotran:
254+ - fix typo in manpage. closes: #376371, thanks Reuben Thomas.
255+ - preserve file mode. closes: #383379, thanks Vincent Arkesteijn.
256+ * debian/control, debian/rules, debian/compat:
257+ + switch to debhelper v5
258+ + add libjpeg-dbg debugging package.
259+ * debian/rules: remove - before "make clean" rules.
260+ * Add patch 204_jpegtran_man to improve readability of manpage.
261+ closes: #437453. Thanks Jorgen Grahn.
262+ * jpegexiforient.1: Apply patch from Jorgen Grahn to improve formatting.
263+ closes: #437446.
264+
265+ -- Bill Allombert <ballombe@debian.org> Thu, 16 Aug 2007 22:59:21 +0200
266+
267+libjpeg6b (6b-13) unstable; urgency=low
268+
269+ * The "If at first you don't succeed..." release.
270+ * Change --enable-maxmem to 1024, following Guido advice.
271+ This should fix the slowdowns with large files (for large < 1Gb):
272+ closes: #356556, #365025, Thanks Nicolas.
273+ If you hit performance problems, please set the JPEGMEM variable to
274+ about half your available RAM, see jpegtran(1).
275+ * Update libjpeg-progs README.Debian to reflect the new patch set and
276+ the JPEGMEM feature.
277+ * Bump standard version to 3.7.2.
278+
279+ -- Bill Allombert <ballombe@debian.org> Fri, 5 May 2006 19:14:25 +0200
280+
281+libjpeg6b (6b-12) unstable; urgency=low
282+
283+ * The "vote for me" release
284+ * Bump standard version to 3.6.2.
285+ * Run 'make test' instead of home-made test-suite.
286+ * Switch to debhelper v4.
287+ * libjpeg is now configured with --enable-maxmem=32. This limits the memory
288+ usage to 32Mb and it can be overrided by JPEGMEM. Without this flag
289+ JPEGMEM is ignored and there were no limits.
290+ closes: #346023. Thanks C. Scott Ananian.
291+
292+ -- Bill Allombert <ballombe@debian.org> Thu, 2 Mar 2006 18:52:44 +0100
293+
294+libjpeg6b (6b-11) unstable; urgency=high
295+
296+ * The "Silencio" release
297+ * exifautotran: Apply patch by Uwe Zeisberger to fix bad temporary file
298+ handling. closes: #340079
299+
300+ -- Bill Allombert <ballombe@debian.org> Sun, 20 Nov 2005 20:57:07 +0100
301+
302+libjpeg6b (6b-10) unstable; urgency=low
303+
304+ * The "timeout" release.
305+ * Rebuild with current toolchain.
306+ * Depends on libc-dev instead of libc6-dev. closes: #294696
307+ Thanks Joel Aelwyn for discussing thoroughly the matter.
308+ * Instead of copying /usr/bin/libtool, we replace it by a script that
309+ call libtool (using standard path search). Remarked by Jesus Climent.
310+ * debian/control: remove pre-hamm cruft.
311+ * Add jpegexiforient and jpegautotran by Guido Vollbeding
312+ <http://sylvana.net/jpegcrop/exif_orientation.html> as proposed by Philip
313+ Armstrong. closes: #257061.
314+ * Run the test-suite at build time instead of shipping it in the package:
315+ - /usr/share/doc/libjpeg-progs/tests: removed.
316+ - debian/control: Add Build-Depends on sharutils for uuencode.
317+ - debian/libjpeg-progs.dirs: removed.
318+ - debian/libjpeg-progs.test: removed.
319+
320+ -- Bill Allombert <ballombe@debian.org> Tue, 1 Mar 2005 19:43:26 +0100
321+
322+libjpeg6b (6b-9) unstable; urgency=low
323+
324+ * The "I'm all for aggressive goals" release.
325+ * Rebuild with new libtool. closes: #201943.
326+ * patch 100_crop: Updated from Guido Vollbeding <guido@jpegclub.org>
327+ to include patches 203_jpegtran_errmsg,204_perfect.
328+ * patch 200_crop_man: Include 205_perfect_man.
329+ * patches 203_jpegtran_errmsg, 204_perfect, 205_perfect_man: removed
330+ * Add patch 203_rdppm: fix cjpeg issue with 16-bit PPM files. closes: #208937
331+ * Bump standard version to 3.6.1.
332+ * Update debian/edit-patch.
333+
334+ -- Bill Allombert <ballombe@debian.org> Mon, 8 Sep 2003 16:22:08 +0200
335+
336+libjpeg6b (6b-8) unstable; urgency=low
337+
338+ * The "I *hate* when that happens" release.
339+ * Move libjpeg62-dev to libdevel section.
340+ * See debian/README.sources for detail about the (d)patch system.
341+ * debian/rules: avoid to run configure twice.
342+ * Add patches 204_perfect and 205_perfect_man. They implement the
343+ -perfect jpegtran option as proposed by Mark W. Eichin. closes: #189027
344+ * Bump standard version to 3.5.10.
345+ * Use /usr/bin/libtool instead of ldconfig-generated libtool, and remove
346+ various libtool related kludges, including patch 301_configure.
347+ closes: #195281. Thanks Robert Millan for the suggestion.
348+ * Remove patch 302_makefile. Fix debian/rules instead.
349+
350+ -- Bill Allombert <ballombe@debian.org> Sat, 31 May 2003 16:16:59 +0200
351+
352+libjpeg6b (6b-7) unstable; urgency=low
353+
354+ * Rebuild with new gcc/new glibc/new debhelper.
355+ * Add -g to build options according to new policy.
356+ * Add support for DEB_BUILD_OPTIONS noopt. nostrip is handled by dh_strip.
357+ * Bump standard version to 3.5.9.
358+ * Extend description a bit (If you have a better one please email me!).
359+ * Use dpatch to handle the patches.
360+
361+ -- Bill Allombert <ballombe@debian.org> Sun, 16 Mar 2003 12:19:36 +0100
362+
363+libjpeg6b (6b-6) unstable; urgency=low
364+
365+ * The "Try to break sarge before it even got a name" release
366+ * jpegtran: better error messages when opening files.
367+ closes: #147516 Thanks Mark W. Eichin.
368+ * Add debian/patch dir with my patches.
369+ * Add extern "C" if we are under C++.
370+ closes: #113167 Thanks, Fredrik Jagenheim.
371+ * Remove HAVE_STD{LIB,DEF}_H from jconfig.h since they are not used and
372+ conflict with autoconf. closes: #109516 Thanks <Benedikt.Roth@gmx.net>
373+ * Add README.Debian in /usr/share/libjpeg62-dev
374+
375+ -- Bill Allombert <ballombe@debian.org> Mon, 3 Jun 2002 19:34:08 +0200
376+
377+libjpeg6b (6b-5) unstable; urgency=low
378+
379+ * jpeg-->JPEG in libjpeg-progs description.
380+ * Add lib path to dh_shlibdeps to avoid warning.
381+ * Apply patch from <http://sylvana.net/jpegcrop/croppatch.tar.gz> by
382+ <guido@jpegclub.org> closes: #129412 Thanks, Colin Marquardt.
383+
384+ -- Bill Allombert <ballombe@debian.org> Mon, 20 May 2002 11:55:22 +0200
385+
386+libjpeg6b (6b-4) unstable; urgency=low
387+
388+ * Avoid bashism in debian/rules.
389+ * Update libtool to 1.3.5. (1.4 will break).
390+ closes: #52095 Thanks, <Marcus.Brinkmann@ruhr-uni-bochum.de>
391+ * Patch config.guess to use version in the autotools-dev package.
392+ * Correct Section: field of libjpeg62 and libjpeg62-dev.
393+
394+ -- Bill Allombert <ballombe@debian.org> Tue, 20 Nov 2001 10:23:47 +0100
395+
396+libjpeg6b (6b-3) unstable; urgency=low
397+
398+ * The "Where is ltconfig ?" release.
399+ * Remove jconfig.h in debian/rules clean and do some clean up.
400+ * Install libjpeg.la per Policy 11.2.
401+ * Remove duplicate wizard.doc file in libjpeg62-dev.
402+ * Use dpkg-architecture instead of config.guess.
403+ * Patch config.sub to use version in the autotools-dev package.
404+ closes: #85558, #120039
405+ * Patch rdjpgcom.c to use locales for isprint check on comment chars.
406+ closes: #116589 Thanks, Neal H Walfield <neal@cs.uml.edu>
407+ * Apply patch from <http://sylvana.net/jpegcrop/transupp.c> by
408+ <guido@jpegclub.org> closes: #114415 Thanks, <Jean-Marc.Notin@loria.fr>
409+
410+ -- Bill Allombert <ballombe@debian.org> Tue, 13 Nov 2001 21:41:49 +0000
411+
412+libjpeg6b (6b-2) unstable; urgency=low
413+
414+ * New Maintainer. Mark, If you want back the package, just ask!
415+ * Acknowledge previous NMU:
416+ Jordi: closes: #74087, #24330, #24291
417+ Colin: closes: #80752
418+ Joel: closes: #25324, #27033, #28341
419+ * Write source location as a valid URL in debian/copyright.
420+ closes: #118628 Thanks, Doug Porter <dsp@debian.org>.
421+ * Fix formating of description of libjpeg-progs.
422+ closes: #114378 Thanks, Colin Watson <cjwatson@flatline.org.uk>.
423+ * Install jpegint.h header needed by some apps. closes: #100171
424+ * Remove unused/empty debian/postrm.
425+ closes: #24849 Thanks, Adrian Bridgett <adrian.bridgett@zetnet.co.uk>.
426+ * Install wizard.doc file. closes: #64807 Thanks <amc@arwen.cs.berkeley.edu>.
427+ * Fix libjpeg-progs test.sh.
428+ * Fix lintian bugs: typo in copyright, emacs user info in changelog.
429+ * Fix false lintian bug: unsafe ldconfig in postinst, by reformatting.
430+ * Remove "-g" from CFLAGS per Policy 11.1, hoping m68k is fixed now.
431+ * Remove libtool and Makefile in debian/rules clean.
432+ * Fix the test system. As a side effect,
433+ closes: #109195 Thanks Daniel Schepler <schepler@math.berkeley.edu>
434+ * Standards-Version is now 3.5.6.
435+
436+ -- Bill Allombert <ballombe@debian.org> Fri, 9 Nov 2001 22:40:16 +0100
437+
438+libjpeg6b (6b-1.3) frozen unstable; urgency=low
439+
440+ * Non-Maintainer Upload.
441+ * Added Build-Depends.
442+ * Gil Bahat <coutal@netvision.net.il> did the rest of the changes.
443+ * Close bug regarding non-standard jpegs not being processed
444+ (closes: #74087).
445+ * The output gifs are uncompressed, so have no UNISYS patent issues.
446+ (closes: #24330, #24291).
447+ * Standards-Version is now 3.0.0.
448+
449+ -- Jordi Mallach <jordi@debian.org> Sat, 24 Feb 2001 22:17:38 +0100
450+
451+libjpeg6b (6b-1.2) frozen unstable; urgency=low (HIGH for m68k)
452+
453+ * Non-maintainer release.
454+ * Recompile for m68k since existing djpeg binary claims all jpegs I have
455+ are invalid (yet hamm djpeg has no problem with them).
456+ Specifically, added "-O2 -g -Wall" to CFLAGS -- possible gcc bug?
457+
458+ -- Chris Lawrence <lawrencc@debian.org> Tue, 10 Nov 1998 20:57:38 -0600
459+
460+libjpeg6b (6b-1.1) frozen unstable; urgency=high
461+
462+ * Non-maintainer release.
463+ * Use upstream library soname (62).
464+ * Removed libjpeg-gif package, as the source notes
465+ that the GIF reading has been removed, and the GIFs written
466+ do not infringe on the LZW patent.
467+
468+ -- Joel Klecker <espy@debian.org> Thu, 22 Oct 1998 05:49:48 -0700
469+
470+libjpeg6b (6b-1) unstable; urgency=low
471+
472+ * New binary packages for 6b
473+ * New upstream release
474+
475+ -- Mark Mickan <mmickan@debian.org> Tue, 7 Jul 1998 22:27:10 +0930
476+
477+Local variables:
478+mode: debian-changelog
479+End:
480--- libjpeg7-7.orig/debian/libjpeg-progs.files
481+++ libjpeg7-7/debian/libjpeg-progs.files
482@@ -0,0 +1,2 @@
483+usr/bin
484+usr/share/man/man1
485--- libjpeg7-7.orig/debian/libjpeg7-dev.docs
486+++ libjpeg7-7/debian/libjpeg7-dev.docs
487@@ -0,0 +1,3 @@
488+libjpeg.txt
489+structure.txt
490+coderules.txt
491--- libjpeg7-7.orig/debian/libjpeg-progs.docs
492+++ libjpeg7-7/debian/libjpeg-progs.docs
493@@ -0,0 +1,2 @@
494+usage.txt
495+wizard.txt
496--- libjpeg7-7.orig/debian/copyright
497+++ libjpeg7-7/debian/copyright
498@@ -0,0 +1,96 @@
499+This is Debian's prepackaged version of the `jpeg library' by the Independent
500+JPEG Group.
501+
502+This package was created by Mark Mickan <mmickan@debian.org> from sources
503+which can be found at ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
504+
505+It is partly based on the libjpeg6a package originally put together by
506+Andy Guy <awpguy@acs.ucalgary.ca> and later maintained by Mark Mickan.
507+
508+Current Debian maintainer is Bill Allombert <ballombe@debian.org>.
509+
510+LEGAL ISSUES [ from README supplied with source - MM ]
511+============
512+
513+In plain English:
514+
515+1. We don't promise that this software works. (But if you find any bugs,
516+ please let us know!)
517+2. You can use this software for whatever you want. You don't have to pay us.
518+3. You may not pretend that you wrote this software. If you use it in a
519+ program, you must acknowledge somewhere in your documentation that
520+ you've used the IJG code.
521+
522+In legalese:
523+
524+The authors make NO WARRANTY or representation, either express or implied,
525+with respect to this software, its quality, accuracy, merchantability, or
526+fitness for a particular purpose. This software is provided "AS IS", and you,
527+its user, assume the entire risk as to its quality and accuracy.
528+
529+This software is copyright (C) 1991-2009, Thomas G. Lane, Guido Vollbeding.
530+All Rights Reserved except as specified below.
531+
532+Permission is hereby granted to use, copy, modify, and distribute this
533+software (or portions thereof) for any purpose, without fee, subject to these
534+conditions:
535+(1) If any part of the source code for this software is distributed, then this
536+README file must be included, with this copyright and no-warranty notice
537+unaltered; and any additions, deletions, or changes to the original files
538+must be clearly indicated in accompanying documentation.
539+(2) If only executable code is distributed, then the accompanying
540+documentation must state that "this software is based in part on the work of
541+the Independent JPEG Group".
542+(3) Permission for use of this software is granted only if the user accepts
543+full responsibility for any undesirable consequences; the authors accept
544+NO LIABILITY for damages of any kind.
545+
546+These conditions apply to any software derived from or based on the IJG code,
547+not just to the unmodified library. If you use our work, you ought to
548+acknowledge us.
549+
550+Permission is NOT granted for the use of any IJG author's name or company name
551+in advertising or publicity relating to this software or products derived from
552+it. This software may be referred to only as "the Independent JPEG Group's
553+software".
554+
555+We specifically permit and encourage the use of this software as the basis of
556+commercial products, provided that all warranty or liability claims are
557+assumed by the product vendor.
558+
559+
560+ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
561+sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
562+ansi2knr.c is NOT covered by the above copyright and conditions, but instead
563+by the usual distribution terms of the Free Software Foundation; principally,
564+that you must include source code if you redistribute it. (See the file
565+ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
566+of any program generated from the IJG code, this does not limit you more than
567+the foregoing paragraphs do.
568+
569+The Unix configuration script "configure" was produced with GNU Autoconf.
570+It is copyright by the Free Software Foundation but is freely distributable.
571+The same holds for its supporting scripts (config.guess, config.sub,
572+ltconfig, ltmain.sh). Another support script, install-sh, is copyright
573+by M.I.T. but is also freely distributable.
574+
575+It appears that the arithmetic coding option of the JPEG spec is covered by
576+patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
577+legally be used without obtaining one or more licenses. For this reason,
578+support for arithmetic coding has been removed from the free JPEG software.
579+(Since arithmetic coding provides only a marginal gain over the unpatented
580+Huffman mode, it is unlikely that very many implementations will support it.)
581+So far as we are aware, there are no patent restrictions on the remaining
582+code.
583+
584+The IJG distribution formerly included code to read and write GIF files.
585+To avoid entanglement with the Unisys LZW patent, GIF reading support has
586+been removed altogether, and the GIF writer has been simplified to produce
587+"uncompressed GIFs". This technique does not use the LZW algorithm; the
588+resulting GIF files are larger than usual, but are readable by all standard
589+GIF decoders.
590+
591+We are required to state that
592+ "The Graphics Interchange Format(c) is the Copyright property of
593+ CompuServe Incorporated. GIF(sm) is a Service Mark property of
594+ CompuServe Incorporated."
595--- libjpeg7-7.orig/debian/extra/jpegexiforient.c
596+++ libjpeg7-7/debian/extra/jpegexiforient.c
597@@ -0,0 +1,299 @@
598+/*
599+ * jpegexiforient.c
600+ *
601+ * This is a utility program to get and set the Exif Orientation Tag.
602+ * It can be used together with jpegtran in scripts for automatic
603+ * orientation correction of digital camera pictures.
604+ *
605+ * The Exif orientation value gives the orientation of the camera
606+ * relative to the scene when the image was captured. The relation
607+ * of the '0th row' and '0th column' to visual position is shown as
608+ * below.
609+ *
610+ * Value | 0th Row | 0th Column
611+ * ------+-------------+-----------
612+ * 1 | top | left side
613+ * 2 | top | rigth side
614+ * 3 | bottom | rigth side
615+ * 4 | bottom | left side
616+ * 5 | left side | top
617+ * 6 | right side | top
618+ * 7 | right side | bottom
619+ * 8 | left side | bottom
620+ *
621+ * For convenience, here is what the letter F would look like if it were
622+ * tagged correctly and displayed by a program that ignores the orientation
623+ * tag:
624+ *
625+ * 1 2 3 4 5 6 7 8
626+ *
627+ * 888888 888888 88 88 8888888888 88 88 8888888888
628+ * 88 88 88 88 88 88 88 88 88 88 88 88
629+ * 8888 8888 8888 8888 88 8888888888 8888888888 88
630+ * 88 88 88 88
631+ * 88 88 888888 888888
632+ *
633+ */
634+
635+#include <stdio.h>
636+#include <stdlib.h>
637+
638+static FILE * myfile; /* My JPEG file */
639+
640+static unsigned char exif_data[65536L];
641+
642+/* Return next input byte, or EOF if no more */
643+#define NEXTBYTE() getc(myfile)
644+
645+/* Error exit handler */
646+#define ERREXIT(msg) (exit(0))
647+
648+/* Read one byte, testing for EOF */
649+static int
650+read_1_byte (void)
651+{
652+ int c;
653+
654+ c = NEXTBYTE();
655+ if (c == EOF)
656+ ERREXIT("Premature EOF in JPEG file");
657+ return c;
658+}
659+
660+/* Read 2 bytes, convert to unsigned int */
661+/* All 2-byte quantities in JPEG markers are MSB first */
662+static unsigned int
663+read_2_bytes (void)
664+{
665+ int c1, c2;
666+
667+ c1 = NEXTBYTE();
668+ if (c1 == EOF)
669+ ERREXIT("Premature EOF in JPEG file");
670+ c2 = NEXTBYTE();
671+ if (c2 == EOF)
672+ ERREXIT("Premature EOF in JPEG file");
673+ return (((unsigned int) c1) << 8) + ((unsigned int) c2);
674+}
675+
676+static const char * progname; /* program name for error messages */
677+
678+static void
679+usage (FILE *out)
680+/* complain about bad command line */
681+{
682+ fprintf(out, "jpegexiforient reads or writes the Exif Orientation Tag ");
683+ fprintf(out, "in a JPEG Exif file.\n");
684+
685+ fprintf(out, "Usage: %s [switches] jpegfile\n", progname);
686+
687+ fprintf(out, "Switches:\n");
688+ fprintf(out, " --help display this help and exit\n");
689+ fprintf(out, " --version output version information and exit\n");
690+ fprintf(out, " -n Do not output the trailing newline\n");
691+ fprintf(out, " -1 .. -8 Set orientation value 1 .. 8\n");
692+}
693+
694+/*
695+ * The main program.
696+ */
697+
698+int
699+main (int argc, char **argv)
700+{
701+ int n_flag, set_flag;
702+ unsigned int length, i;
703+ int is_motorola; /* Flag for byte order */
704+ unsigned int offset, number_of_tags, tagnum;
705+
706+ progname = argv[0];
707+ if (progname == NULL || progname[0] == 0)
708+ progname = "jpegexiforient"; /* in case C library doesn't provide it */
709+
710+ if (argc < 2) { usage(stderr); return 1; }
711+
712+ n_flag = 0; set_flag = 0;
713+
714+ i = 1;
715+ while (argv[i][0] == '-') {
716+ switch (argv[i][1]) {
717+ case '-':
718+ switch (argv[i][2]) {
719+ case 'h': usage(stdout); return 0;
720+ case 'v': fprintf(stdout,"jpegexiforient\n"); return 0;
721+ }
722+ case 'n':
723+ n_flag = 1;
724+ break;
725+ case '1':
726+ case '2':
727+ case '3':
728+ case '4':
729+ case '5':
730+ case '6':
731+ case '7':
732+ case '8':
733+ set_flag = argv[i][1] - '0';
734+ break;
735+ default:
736+ usage(stderr); return 1;
737+ }
738+ if (++i >= argc) { usage(stderr); return 1; }
739+ }
740+
741+ if (set_flag) {
742+ if ((myfile = fopen(argv[i], "rb+")) == NULL) {
743+ fprintf(stderr, "%s: can't open %s\n", progname, argv[i]);
744+ return 0;
745+ }
746+ } else {
747+ if ((myfile = fopen(argv[i], "rb")) == NULL) {
748+ fprintf(stderr, "%s: can't open %s\n", progname, argv[i]);
749+ return 0;
750+ }
751+ }
752+
753+ /* Read File head, check for JPEG SOI + Exif APP1 */
754+ for (i = 0; i < 4; i++)
755+ exif_data[i] = (unsigned char) read_1_byte();
756+ if (exif_data[0] != 0xFF ||
757+ exif_data[1] != 0xD8 ||
758+ exif_data[2] != 0xFF ||
759+ exif_data[3] != 0xE1)
760+ return 0;
761+
762+ /* Get the marker parameter length count */
763+ length = read_2_bytes();
764+ /* Length includes itself, so must be at least 2 */
765+ /* Following Exif data length must be at least 6 */
766+ if (length < 8)
767+ return 0;
768+ length -= 8;
769+ /* Read Exif head, check for "Exif" */
770+ for (i = 0; i < 6; i++)
771+ exif_data[i] = (unsigned char) read_1_byte();
772+ if (exif_data[0] != 0x45 ||
773+ exif_data[1] != 0x78 ||
774+ exif_data[2] != 0x69 ||
775+ exif_data[3] != 0x66 ||
776+ exif_data[4] != 0 ||
777+ exif_data[5] != 0)
778+ return 0;
779+ /* Read Exif body */
780+ for (i = 0; i < length; i++)
781+ exif_data[i] = (unsigned char) read_1_byte();
782+
783+ if (length < 12) return 0; /* Length of an IFD entry */
784+
785+ /* Discover byte order */
786+ if (exif_data[0] == 0x49 && exif_data[1] == 0x49)
787+ is_motorola = 0;
788+ else if (exif_data[0] == 0x4D && exif_data[1] == 0x4D)
789+ is_motorola = 1;
790+ else
791+ return 0;
792+
793+ /* Check Tag Mark */
794+ if (is_motorola) {
795+ if (exif_data[2] != 0) return 0;
796+ if (exif_data[3] != 0x2A) return 0;
797+ } else {
798+ if (exif_data[3] != 0) return 0;
799+ if (exif_data[2] != 0x2A) return 0;
800+ }
801+
802+ /* Get first IFD offset (offset to IFD0) */
803+ if (is_motorola) {
804+ if (exif_data[4] != 0) return 0;
805+ if (exif_data[5] != 0) return 0;
806+ offset = exif_data[6];
807+ offset <<= 8;
808+ offset += exif_data[7];
809+ } else {
810+ if (exif_data[7] != 0) return 0;
811+ if (exif_data[6] != 0) return 0;
812+ offset = exif_data[5];
813+ offset <<= 8;
814+ offset += exif_data[4];
815+ }
816+ if (offset > length - 2) return 0; /* check end of data segment */
817+
818+ /* Get the number of directory entries contained in this IFD */
819+ if (is_motorola) {
820+ number_of_tags = exif_data[offset];
821+ number_of_tags <<= 8;
822+ number_of_tags += exif_data[offset+1];
823+ } else {
824+ number_of_tags = exif_data[offset+1];
825+ number_of_tags <<= 8;
826+ number_of_tags += exif_data[offset];
827+ }
828+ if (number_of_tags == 0) return 0;
829+ offset += 2;
830+
831+ /* Search for Orientation Tag in IFD0 */
832+ for (;;) {
833+ if (offset > length - 12) return 0; /* check end of data segment */
834+ /* Get Tag number */
835+ if (is_motorola) {
836+ tagnum = exif_data[offset];
837+ tagnum <<= 8;
838+ tagnum += exif_data[offset+1];
839+ } else {
840+ tagnum = exif_data[offset+1];
841+ tagnum <<= 8;
842+ tagnum += exif_data[offset];
843+ }
844+ if (tagnum == 0x0112) break; /* found Orientation Tag */
845+ if (--number_of_tags == 0) return 0;
846+ offset += 12;
847+ }
848+
849+ if (set_flag) {
850+ /* Set the Orientation value */
851+ if (is_motorola) {
852+ exif_data[offset+2] = 0; /* Format = unsigned short (2 octets) */
853+ exif_data[offset+3] = 3;
854+ exif_data[offset+4] = 0; /* Number Of Components = 1 */
855+ exif_data[offset+5] = 0;
856+ exif_data[offset+6] = 0;
857+ exif_data[offset+7] = 1;
858+ exif_data[offset+8] = 0;
859+ exif_data[offset+9] = (unsigned char)set_flag;
860+ exif_data[offset+10] = 0;
861+ exif_data[offset+11] = 0;
862+ } else {
863+ exif_data[offset+2] = 3; /* Format = unsigned short (2 octets) */
864+ exif_data[offset+3] = 0;
865+ exif_data[offset+4] = 1; /* Number Of Components = 1 */
866+ exif_data[offset+5] = 0;
867+ exif_data[offset+6] = 0;
868+ exif_data[offset+7] = 0;
869+ exif_data[offset+8] = (unsigned char)set_flag;
870+ exif_data[offset+9] = 0;
871+ exif_data[offset+10] = 0;
872+ exif_data[offset+11] = 0;
873+ }
874+ fseek(myfile, (4 + 2 + 6 + 2) + offset, SEEK_SET);
875+ fwrite(exif_data + 2 + offset, 1, 10, myfile);
876+ } else {
877+ /* Get the Orientation value */
878+ if (is_motorola) {
879+ if (exif_data[offset+8] != 0) return 0;
880+ set_flag = exif_data[offset+9];
881+ } else {
882+ if (exif_data[offset+9] != 0) return 0;
883+ set_flag = exif_data[offset+8];
884+ }
885+ if (set_flag > 8) return 0;
886+ }
887+
888+ /* Write out Orientation value */
889+ if (n_flag)
890+ printf("%c", '0' + set_flag);
891+ else
892+ printf("%c\n", '0' + set_flag);
893+
894+ /* All done. */
895+ return 0;
896+}
897--- libjpeg7-7.orig/debian/extra/exifautotran.1
898+++ libjpeg7-7/debian/extra/exifautotran.1
899@@ -0,0 +1,13 @@
900+.TH EXIFAUTOTRAN "1" "February 2005" "exifautotran" "User Commands"
901+.SH NAME
902+exifautotran \- Transforms Exif files so that Orientation becomes 1
903+.SH DESCRIPTION
904+exifautotran [list of files]
905+.PP
906+Take a list of files as input and transform them in place so that the
907+Orientation becomes 1.
908+.SH "AUTHOR"
909+ Guido Vollbeding <guido@jpegclub.org>
910+.SH "SEE ALSO"
911+.BR jpegtran(1)
912+.BR jpegexiforient(1)
913--- libjpeg7-7.orig/debian/extra/jpegexiforient.1
914+++ libjpeg7-7/debian/extra/jpegexiforient.1
915@@ -0,0 +1,73 @@
916+.TH JPEGEXIFORIENT "1" "February 2005" "jpegexiforient" "User Commands"
917+.SH NAME
918+jpegexiforient \- reads or writes the Exif Orientation Tag
919+.SH SYNOPSIS
920+.B jpegexiforient
921+[\fIswitches\fR] \fIjpegfile\fR
922+.SH DESCRIPTION
923+.
924+This is a utility program to get and set the Exif Orientation Tag.
925+It can be used together with jpegtran in scripts for automatic
926+orientation correction of digital camera pictures.
927+.PP
928+The Exif orientation value gives the orientation of the camera
929+relative to the scene when the image was captured. The relation
930+of the '0th row' and '0th column' to visual position is shown as
931+below.
932+.IP
933+.nf
934+.ft CR
935+Value | 0th Row | 0th Column
936+------+-------------+-----------
937+ 1 | top | left side
938+ 2 | top | rigth side
939+ 3 | bottom | rigth side
940+ 4 | bottom | left side
941+ 5 | left side | top
942+ 6 | right side | top
943+ 7 | right side | bottom
944+ 8 | left side | bottom
945+.fi
946+.PP
947+For convenience, here is what the letter F would look like if it were
948+tagged correctly and displayed by a program that ignores the orientation
949+tag:
950+.IP
951+.nf
952+.ft CB
953+ 1 2 3 4
954+
955+888888 888888 88 88
956+88 88 88 88
957+8888 8888 8888 8888
958+88 88 88 88
959+88 88 888888 888888
960+
961+ 5 6 7 8
962+
963+8888888888 88 88 8888888888
964+88 88 88 88 88 88 88 88
965+88 8888888888 8888888888 88
966+.fi
967+.PP
968+jpegexiforient output the Exif Orientation Tag in a JPEG Exif file.
969+With the options -1 .. -8, it can also be used to set the tag.
970+.
971+.SS "OPTIONS"
972+.TP
973+\fB\-\-help\fR
974+display this help and exit
975+.TP
976+\fB\-\-version\fR
977+output version information and exit
978+.TP
979+\fB\-n\fR
980+Do not output the trailing newline
981+.TP
982+\fB\-1\fR .. \fB\-8\fR
983+Set orientation value 1 .. 8
984+.SH "AUTHOR"
985+ Guido Vollbeding <guido@jpegclub.org>
986+.SH "SEE ALSO"
987+.BR jpegtran(1)
988+.BR exifautotran(1)
989--- libjpeg7-7.orig/debian/extra/exifautotran
990+++ libjpeg7-7/debian/extra/exifautotran
991@@ -0,0 +1,50 @@
992+#!/bin/sh
993+# exifautotran [list of files]
994+#
995+# Transforms Exif files so that Orientation becomes 1
996+#
997+
998+trap "if test -n \"\$tempfile\"; then rm -f \"\$tempfile\"; fi" INT QUIT TERM
999+
1000+for i
1001+do
1002+ case $i in
1003+ -v|--version) echo "exifautotran"; exit 0;;
1004+ -h|--help)
1005+ cat <<EOF
1006+exifautotran [list of files]
1007+
1008+Transforms Exif files so that Orientation becomes 1
1009+EOF
1010+ exit 0;;
1011+ esac
1012+
1013+ case `jpegexiforient -n "$i"` in
1014+ 1) transform="";;
1015+ 2) transform="-flip horizontal";;
1016+ 3) transform="-rotate 180";;
1017+ 4) transform="-flip vertical";;
1018+ 5) transform="-transpose";;
1019+ 6) transform="-rotate 90";;
1020+ 7) transform="-transverse";;
1021+ 8) transform="-rotate 270";;
1022+ *) transform="";;
1023+ esac
1024+ if test -n "$transform"; then
1025+ tempfile=`mktemp`;
1026+ if test "$?" -ne "0"; then
1027+ echo "Failed to create temporary file" >&2
1028+ exit 1;
1029+ fi
1030+ echo Executing: jpegtran -copy all $transform $i >&2
1031+ jpegtran -copy all $transform "$i" > $tempfile
1032+ if test $? -ne 0; then
1033+ echo Error while transforming $i - skipped. >&2
1034+ rm "$tempfile"
1035+ else
1036+ cp "$tempfile" "$i"
1037+ rm "$tempfile"
1038+ jpegexiforient -1 "$i" > /dev/null
1039+ fi
1040+ fi
1041+done
1042--- libjpeg7-7.orig/debian/extra/Makefile
1043+++ libjpeg7-7/debian/extra/Makefile
1044@@ -0,0 +1,22 @@
1045+CFLAGS = -O2 -Wall -g
1046+CC = cc
1047+INSTALL = install -m755 -o root -g root
1048+INSTALLDIR = install -m755 -o root -g root -d
1049+DESTDIR =
1050+prefix = /usr/local
1051+bindir = $(prefix)/bin
1052+mandir = $(prefix)/share/man/man1
1053+
1054+all: jpegexiforient
1055+
1056+jpegexiforient: jpegexiforient.c
1057+ $(CC) $(CFLAGS) -o jpegexiforient jpegexiforient.c
1058+clean:
1059+ -rm -f jpegexiforient
1060+install:
1061+ $(INSTALLDIR) $(DESTDIR)$(bindir)
1062+ $(INSTALLDIR) $(DESTDIR)$(mandir)
1063+ $(INSTALL) jpegexiforient $(DESTDIR)$(bindir)
1064+ $(INSTALL) jpegexiforient.1 $(DESTDIR)$(mandir)
1065+ $(INSTALL) exifautotran $(DESTDIR)$(bindir)
1066+ $(INSTALL) exifautotran.1 $(DESTDIR)$(mandir)
diff --git a/meta/recipes-core/jpeg/jpeg_8b.bb b/meta/recipes-core/jpeg/jpeg_8b.bb
new file mode 100644
index 0000000000..53847e715a
--- /dev/null
+++ b/meta/recipes-core/jpeg/jpeg_8b.bb
@@ -0,0 +1,42 @@
1DESCRIPTION = "libjpeg is a library for handling the JPEG (JFIF) image format."
2HOMEPAGE = "http://www.ijg.org/"
3BUGTRACKER = ""
4
5LICENSE ="jpeg"
6LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=12;md5=78fa8dbac547bb5b2a0e6457a6cfe21d \
7 file://jpeglib.h;endline=14;md5=dd06b5575519f735ec2565ed36ce62e7 \
8 file://djpeg.c;endline=13;md5=ca89254925da06fef47e4b6468233432"
9
10SECTION = "libs"
11PRIORITY = "required"
12
13DEPENDS = "libtool-cross"
14DEPENDS_virtclass-native = "libtool-native"
15
16PR = "r0"
17
18SRC_URI = "http://www.ijg.org/files/jpegsrc.v${PV}.tar.gz \
19 file://debian-libjpeg7_7-1.diff;patch=1"
20
21inherit autotools
22
23EXTRA_OECONF="--enable-static --enable-shared"
24EXTRA_OEMAKE='"LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"'
25
26CFLAGS_append = " -D_REENTRANT"
27
28do_configure_prepend () {
29 rm -f ${S}/ltconfig
30 rm -f ${S}/ltmain.sh
31}
32
33do_install() {
34 install -d ${D}${bindir} ${D}${includedir} \
35 ${D}${mandir}/man1 ${D}${libdir}
36 oe_runmake 'DESTDIR=${D}' install
37}
38
39PACKAGES =+ "jpeg-tools "
40FILES_jpeg-tools = "${bindir}/*"
41
42BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/libxml/libxml2.inc b/meta/recipes-core/libxml/libxml2.inc
new file mode 100644
index 0000000000..5aba6a7875
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2.inc
@@ -0,0 +1,43 @@
1DESCRIPTION = "GNOME XML Parser library"
2HOMEPAGE = "http://www.xmlsoft.org/"
3BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
4SECTION = "libs"
5PRIORITY = "optional"
6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://COPYING;md5=bb90c48926316d9af6e2d70ca7013ade \
8 file://hash.c;beginline=6;endline=15;md5=ce702952bfddd7aee22639a2d6b54136 \
9 file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
10 file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
11
12DEPENDS_virtclass-native = "python-native"
13DEPENDS =+ "zlib"
14
15SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz \
16 file://libxml-64bit.patch"
17
18
19inherit autotools pkgconfig binconfig
20
21EXTRA_OECONF = "--without-python --without-debug --without-legacy --without-catalog --without-docbook --with-c14n"
22EXTRA_OECONF_virtclass-native = "--with-python=${STAGING_BINDIR}/python --without-debug --without-legacy --with-catalog --without-docbook --with-c14n"
23
24# required for pythong binding
25export HOST_SYS
26export BUILD_SYS
27export STAGING_LIBDIR
28export STAGING_INCDIR
29
30export LDFLAGS += "-ldl"
31
32python populate_packages_prepend () {
33 # autonamer would call this libxml2-2, but we don't want that
34 if bb.data.getVar('DEBIAN_NAMES', d, 1):
35 bb.data.setVar('PKG_libxml2', 'libxml2', d)
36}
37
38PACKAGES = "${PN}-dbg ${PN}-dev ${PN}-utils ${PN} ${PN}-doc ${PN}-locale"
39
40FILES_${PN}-dev += "${bindir}/*-config ${libdir}/xml2Conf.sh"
41FILES_${PN}-utils += "${bindir}/*"
42
43BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/libxml/libxml2/libxml-64bit.patch b/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
new file mode 100644
index 0000000000..fcb7d34fa7
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
@@ -0,0 +1,20 @@
1---
2 libxml.h | 3 +++
3 1 file changed, 3 insertions(+)
4
5--- libxml2-2.6.29.orig/libxml.h
6+++ libxml2-2.6.29/libxml.h
7@@ -11,10 +11,13 @@
8
9 #ifndef NO_LARGEFILE_SOURCE
10 #ifndef _LARGEFILE_SOURCE
11 #define _LARGEFILE_SOURCE
12 #endif
13+#ifndef _LARGEFILE64_SOURCE
14+#define _LARGEFILE64_SOURCE
15+#endif
16 #ifndef _FILE_OFFSET_BITS
17 #define _FILE_OFFSET_BITS 64
18 #endif
19 #endif
20
diff --git a/meta/recipes-core/libxml/libxml2_2.7.7.bb b/meta/recipes-core/libxml/libxml2_2.7.7.bb
new file mode 100644
index 0000000000..deb28b3954
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2_2.7.7.bb
@@ -0,0 +1,3 @@
1require libxml2.inc
2
3PR = "r1"
diff --git a/meta/recipes-core/netbase/netbase/colinux/interfaces b/meta/recipes-core/netbase/netbase/colinux/interfaces
new file mode 100644
index 0000000000..0e495e164e
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/colinux/interfaces
@@ -0,0 +1,8 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wired or wireless interfaces
8iface eth0 inet dhcp
diff --git a/meta/recipes-core/netbase/netbase/epia/interfaces b/meta/recipes-core/netbase/netbase/epia/interfaces
new file mode 100644
index 0000000000..673618f636
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/epia/interfaces
@@ -0,0 +1,10 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Ethernet
8auto eth0
9iface eth0 inet dhcp
10
diff --git a/meta/recipes-core/netbase/netbase/hosts b/meta/recipes-core/netbase/netbase/hosts
new file mode 100644
index 0000000000..2f332451b5
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/hosts
@@ -0,0 +1,2 @@
1127.0.0.1 localhost.localdomain localhost
2
diff --git a/meta/recipes-core/netbase/netbase/init b/meta/recipes-core/netbase/netbase/init
new file mode 100644
index 0000000000..8a67e1cef2
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/init
@@ -0,0 +1,52 @@
1#!/bin/sh
2#
3### BEGIN INIT INFO
4# Provides: networking
5# Required-Start: $local_fs mountvirtfs
6# Required-Stop: $local_fs
7# Default-Start: S
8# Default-Stop: 0 6
9# Short-Description: Raise network interfaces and configure them
10### END INIT INFO
11
12PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
13
14if ! [ -x /sbin/ifup ]; then
15 exit 0
16fi
17
18case "$1" in
19 start)
20 echo -n "Configuring network interfaces... "
21 ifup -a
22 echo "done."
23 ;;
24 stop)
25 if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
26 grep -q "^/ nfs$"; then
27 echo "NOT deconfiguring network interfaces: / is an NFS mount"
28 elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
29 grep -q "^/ smbfs$"; then
30 echo "NOT deconfiguring network interfaces: / is an SMB mount"
31 elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
32 grep -qE '^(nfs|smbfs|ncp|coda)$'; then
33 echo "NOT deconfiguring network interfaces: network shares still mounted."
34 else
35 echo -n "Deconfiguring network interfaces... "
36 ifdown -a
37 echo "done."
38 fi
39 ;;
40 force-reload|restart)
41 echo -n "Reconfiguring network interfaces... "
42 ifdown -a
43 ifup -a
44 echo "done."
45 ;;
46 *)
47 echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
48 exit 1
49 ;;
50esac
51
52exit 0
diff --git a/meta/recipes-core/netbase/netbase/interfaces b/meta/recipes-core/netbase/netbase/interfaces
new file mode 100644
index 0000000000..b06924fa94
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/interfaces
@@ -0,0 +1,30 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wireless interfaces
8iface wlan0 inet dhcp
9 wireless_mode managed
10 wireless_essid any
11 wpa-driver wext
12 wpa-conf /etc/wpa_supplicant.conf
13
14iface atml0 inet dhcp
15
16# Wired or wireless interfaces
17iface eth0 inet dhcp
18iface eth1 inet dhcp
19
20# Ethernet/RNDIS gadget (g_ether)
21# ... or on host side, usbnet and random hwaddr
22iface usb0 inet static
23 address 192.168.7.2
24 netmask 255.255.255.0
25 network 192.168.7.0
26 gateway 192.168.7.1
27
28# Bluetooth networking
29iface bnep0 inet dhcp
30
diff --git a/meta/recipes-core/netbase/netbase/mtx-1/interfaces b/meta/recipes-core/netbase/netbase/mtx-1/interfaces
new file mode 100644
index 0000000000..a7c6da5752
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/mtx-1/interfaces
@@ -0,0 +1,29 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Ethernet
8auto eth0
9iface eth0 inet dhcp
10
11# wlan interface 1 for clients
12auto wlan0
13iface wlan0 inet static
14 address 10.0.0.1
15 netmask 255.0.0.0
16 wireless_mode master
17 wireless_essid cube-ap
18 wireless_channel 1
19
20# wlan interface 2 for mesh
21auto wlan1
22iface wlan1 inet static
23 address 172.16.0.1
24 netmask 255.240.0.0
25 broadcast 172.31.255.255
26 wireless_mode ad-hoc
27 wireless_essid cube-mesh
28 wireless_channel 11
29 wireless_rts 250
diff --git a/meta/recipes-core/netbase/netbase/nfsroot b/meta/recipes-core/netbase/netbase/nfsroot
new file mode 100644
index 0000000000..fc384a8ea5
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/nfsroot
@@ -0,0 +1,39 @@
1#! /bin/sh
2
3# In case the interface is used as nfsroot, avoid ifup, otherwise
4# nfsroot may lose response
5
6nfsroot=0
7
8if test "x$IFACE" = xlo ; then
9 exit 0
10fi
11
12exec 9<&0 < /proc/mounts
13while read dev mtpt fstype rest; do
14 if test $mtpt = "/" ; then
15 case $fstype in
16 nfs | nfs4)
17 nfsroot=1
18 nfs_addr=`echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/'`
19 break
20 ;;
21 *)
22 ;;
23 esac
24 fi
25done
26exec 0<&9 9<&-
27
28test $nfsroot -eq 0 && exit 0
29
30if test -x /sbin/ip ; then
31 nfs_iface=`ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/'`
32fi
33
34if test "x$IFACE" = "x$nfs_iface" ; then
35 echo "ifup skipped for nfsroot interface $nfs_iface"
36 exit 1
37fi
38
39exit 0
diff --git a/meta/recipes-core/netbase/netbase/nokia800/interfaces b/meta/recipes-core/netbase/netbase/nokia800/interfaces
new file mode 100644
index 0000000000..16967763e5
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/nokia800/interfaces
@@ -0,0 +1,5 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
diff --git a/meta/recipes-core/netbase/netbase/openmn/hosts b/meta/recipes-core/netbase/netbase/openmn/hosts
new file mode 100644
index 0000000000..0205b98fc2
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/openmn/hosts
@@ -0,0 +1,2 @@
1127.0.0.1 localhost.localdomain localhost
2192.168.233.1 www.mn-solutions.de
diff --git a/meta/recipes-core/netbase/netbase/openmn/interfaces b/meta/recipes-core/netbase/netbase/openmn/interfaces
new file mode 100644
index 0000000000..9ebe9b8ff1
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/openmn/interfaces
@@ -0,0 +1,10 @@
1auto lo
2auto eth1
3
4iface lo inet loopback
5
6iface eth0 inet dhcp
7
8iface eth1 inet dhcp
9 wireless_mode managed
10 wireless_essid any
diff --git a/meta/recipes-core/netbase/netbase/qemuarm/interfaces b/meta/recipes-core/netbase/netbase/qemuarm/interfaces
new file mode 100644
index 0000000000..f657944f0f
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/qemuarm/interfaces
@@ -0,0 +1,13 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wired or wireless interfaces
8auto eth0
9iface eth0 inet static
10 address 192.168.7.2
11 netmask 255.255.255.0
12 network 192.168.7.0
13 gateway 192.168.7.1
diff --git a/meta/recipes-core/netbase/netbase/qemuarmv6/interfaces b/meta/recipes-core/netbase/netbase/qemuarmv6/interfaces
new file mode 100644
index 0000000000..f657944f0f
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/qemuarmv6/interfaces
@@ -0,0 +1,13 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wired or wireless interfaces
8auto eth0
9iface eth0 inet static
10 address 192.168.7.2
11 netmask 255.255.255.0
12 network 192.168.7.0
13 gateway 192.168.7.1
diff --git a/meta/recipes-core/netbase/netbase/qemuarmv7/interfaces b/meta/recipes-core/netbase/netbase/qemuarmv7/interfaces
new file mode 100644
index 0000000000..f657944f0f
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/qemuarmv7/interfaces
@@ -0,0 +1,13 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wired or wireless interfaces
8auto eth0
9iface eth0 inet static
10 address 192.168.7.2
11 netmask 255.255.255.0
12 network 192.168.7.0
13 gateway 192.168.7.1
diff --git a/meta/recipes-core/netbase/netbase/qemux86/interfaces b/meta/recipes-core/netbase/netbase/qemux86/interfaces
new file mode 100644
index 0000000000..9b442355fd
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/qemux86/interfaces
@@ -0,0 +1,15 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wired or wireless interfaces
8auto eth0
9iface eth0 inet static
10 address 192.168.7.2
11 netmask 255.255.255.0
12 network 192.168.7.0
13 gateway 192.168.7.1
14
15
diff --git a/meta/recipes-core/netbase/netbase/tosa/interfaces b/meta/recipes-core/netbase/netbase/tosa/interfaces
new file mode 100644
index 0000000000..0da7168535
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/tosa/interfaces
@@ -0,0 +1,24 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Wireless interfaces
8iface wlan0 inet dhcp
9 wireless_type wlan-ng
10 wireless_mode Managed
11 pre-up modprobe prism2_usb
12# pre-up /sbin/usbctl on 1
13# post-down /sbin/usbctl off 1
14 post-down rmmod prism2_usb
15
16# Wired or wireless interfaces
17iface eth0 inet dhcp
18iface eth1 inet dhcp
19
20# Zaurus usbnet
21iface usbd0 inet dhcp
22
23# usbnet from the other side
24iface usb0 inet dhcp
diff --git a/meta/recipes-core/netbase/netbase/wrt54/interfaces b/meta/recipes-core/netbase/netbase/wrt54/interfaces
new file mode 100644
index 0000000000..8b2852ac51
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/wrt54/interfaces
@@ -0,0 +1,23 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# loopback interface
4auto lo
5iface lo inet loopback
6
7# the 4 LAN ports
8auto vlan0
9iface vlan0 inet static
10 address 192.168.1.1
11 netmask 255.255.255.0
12
13# WAN port
14auto vlan1
15iface vlan1 inet dhcp
16
17# wireless interface
18auto eth1
19iface eth1 inet static
20 wireless_mode master
21 wireless_essid wrt
22 address 10.0.0.1
23 netmask 255.255.255.0
diff --git a/meta/recipes-core/netbase/netbase/xxs1500/interfaces b/meta/recipes-core/netbase/netbase/xxs1500/interfaces
new file mode 100644
index 0000000000..23ccccd2dd
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase/xxs1500/interfaces
@@ -0,0 +1,15 @@
1# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
2
3# The loopback interface
4auto lo
5iface lo inet loopback
6
7# Ethernet
8auto eth0 eth1
9iface eth0 inet static
10 address 192.168.127.1
11 netmask 255.255.255.0
12
13iface eth1 inet static
14 address 192.168.128.1
15 netmask 255.255.255.0
diff --git a/meta/recipes-core/netbase/netbase_4.41.bb b/meta/recipes-core/netbase/netbase_4.41.bb
new file mode 100644
index 0000000000..88b524ffd2
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase_4.41.bb
@@ -0,0 +1,55 @@
1DESCRIPTION = "This package provides the necessary infrastructure for basic TCP/IP based networking"
2HOMEPAGE = "http://packages.debian.org/netbase"
3SECTION = "base"
4LICENSE = "GPLv2"
5PR = "r0"
6
7inherit update-rc.d
8
9INITSCRIPT_NAME = "networking"
10INITSCRIPT_PARAMS = "start 40 S . stop 40 0 6 1 ."
11# On MNCI etc, start very late so that our own apps come up faster
12INITSCRIPT_PARAMS_openmn = "start 85 1 2 3 4 5 . stop 85 0 6 1 ."
13# On SlugOS (NSLU2) delay the stop until after network apps have exited
14# Do not stop in single user - there's no way to sulogin!
15INITSCRIPT_PARAMS_slugos = "start 42 S 0 6 ."
16
17SRC_URI = "${DEBIAN_MIRROR}/main/n/netbase/netbase_${PV}.tar.gz \
18 file://init \
19 file://hosts \
20 file://interfaces \
21 file://nfsroot"
22
23do_install () {
24 install -d ${D}${sysconfdir}/init.d \
25 ${D}${sbindir} \
26 ${D}${mandir}/man8 \
27 ${D}${sysconfdir}/network/if-pre-up.d \
28 ${D}${sysconfdir}/network/if-up.d \
29 ${D}${sysconfdir}/network/if-down.d \
30 ${D}${sysconfdir}/network/if-post-down.d
31 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/networking
32 install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts
33 install -m 0644 etc-rpc ${D}${sysconfdir}/rpc
34 install -m 0644 etc-protocols ${D}${sysconfdir}/protocols
35 install -m 0644 etc-services ${D}${sysconfdir}/services
36 install -m 0644 ${WORKDIR}/interfaces ${D}${sysconfdir}/network/interfaces
37 install -m 0755 ${WORKDIR}/nfsroot ${D}${sysconfdir}/network/if-pre-up.d
38
39 # Disable network manager on machines that commonly do NFS booting
40 case "${MACHINE}" in
41 "omap-3430sdp" | "omap-3430ldp" | "omap-2430sdp" | "qemuarm" | "qemux86" )
42 touch ${D}${sysconfdir}/network/nm-disabled-eth0
43 ;;
44 *)
45 ;;
46 esac
47}
48
49CONFFILES_${PN} = "${sysconfdir}/hosts ${sysconfdir}/network/interfaces"
50
51PACKAGE_ARCH_omap-3430sdp = "${MACHINE_ARCH}"
52PACKAGE_ARCH_omap-3430ldp = "${MACHINE_ARCH}"
53PACKAGE_ARCH_omap-2430sdp = "${MACHINE_ARCH}"
54PACKAGE_ARCH_qemuarm = "${MACHINE_ARCH}"
55PACKAGE_ARCH_qemux86 = "${MACHINE_ARCH}"
diff --git a/meta/recipes-core/psplash/files/psplash-init b/meta/recipes-core/psplash/files/psplash-init
new file mode 100755
index 0000000000..66c85e9335
--- /dev/null
+++ b/meta/recipes-core/psplash/files/psplash-init
@@ -0,0 +1,29 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: psplash
4# Required-Start:
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8### END INIT INFO
9
10read CMDLINE < /proc/cmdline
11for x in $CMDLINE; do
12 case $x in
13 psplash=false)
14 echo "Boot splashscreen disabled"
15 exit 0;
16 ;;
17 esac
18done
19
20export TMPDIR=/mnt/.psplash
21mount tmpfs -t tmpfs $TMPDIR -o,size=40k
22
23rotation=0
24if [ -e /etc/rotation ]; then
25 read rotation < /etc/rotation
26fi
27
28/usr/bin/psplash --angle $rotation &
29
diff --git a/meta/recipes-core/psplash/psplash_svn.bb b/meta/recipes-core/psplash/psplash_svn.bb
new file mode 100644
index 0000000000..1e53ef1f1b
--- /dev/null
+++ b/meta/recipes-core/psplash/psplash_svn.bb
@@ -0,0 +1,26 @@
1DESCRIPTION = "Userspace framebuffer boot logo based on usplash."
2HOMEPAGE = "http://svn.o-hand.com/view/misc/trunk/psplash/"
3SECTION = "base"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://psplash.h;md5=a87c39812c1e37f3451567cc29a29c8f"
6
7PV = "0.0+svnr${SRCREV}"
8PR = "r5"
9
10SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=psplash;proto=http \
11 file://psplash-init"
12
13S = "${WORKDIR}/psplash"
14
15inherit autotools pkgconfig update-rc.d
16
17FILES_${PN} += "/mnt/.psplash"
18
19do_install_prepend() {
20 install -d ${D}/mnt/.psplash/
21 install -d ${D}${sysconfdir}/init.d/
22 install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
23}
24
25INITSCRIPT_NAME = "psplash.sh"
26INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
diff --git a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch
new file mode 100644
index 0000000000..b9511f088e
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch
@@ -0,0 +1,23 @@
1# The src Makefile was checking for libcrypt.a on the host, not in the
2# build environment. This patch checks for $LCRYPT in the environment
3# and uses it if it's there.
4# - jdike@linux.intel.com
5
6Index: sysvinit-2.88dsf/src/Makefile
7===================================================================
8--- sysvinit-2.88dsf.orig/src/Makefile
9+++ sysvinit-2.88dsf/src/Makefile
10@@ -85,9 +85,13 @@ else
11 endif
12
13 # Additional libs for GNU libc.
14+ifneq ($(LCRYPT),)
15+ SULOGINLIBS += $(LCRYPT)
16+else
17 ifneq ($(wildcard /usr/lib*/libcrypt.a),)
18 SULOGINLIBS += -lcrypt
19 endif
20+endif
21
22 all: $(BIN) $(SBIN) $(USRBIN)
23
diff --git a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch b/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch
new file mode 100644
index 0000000000..5978cea076
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch
@@ -0,0 +1,81 @@
1diff --git a/src/Makefile b/src/Makefile
2index e2b8028..3e11e92 100644
3--- a/src/Makefile
4+++ b/src/Makefile
5@@ -65,7 +65,14 @@ else
6 INSTALL_DATA = install -m 644
7 endif
8 INSTALL_DIR = install -m 755 -d
9-MANDIR = /usr/share/man
10+
11+ROOT ?=
12+base_bindir ?= /bin
13+base_sbindir ?= /sbin
14+bindir ?= /usr/bin
15+sysconfdir ?= /etc
16+includedir ?= /usr/include
17+mandir ?= /usr/share/man
18
19 ifeq ($(WITH_SELINUX),yes)
20 SELINUX_DEF = -DWITH_SELINUX
21@@ -138,39 +145,39 @@ clobber: cleanobjs
22 distclean: clobber
23
24 install:
25- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
26- $(INSTALL_DIR) $(ROOT)/usr/bin/
27+ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/
28+ $(INSTALL_DIR) $(ROOT)$(bindir)/
29 for i in $(BIN); do \
30- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
31+ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \
32 done
33 for i in $(SBIN); do \
34- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \
35+ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \
36 done
37 for i in $(USRBIN); do \
38- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \
39+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
40 done
41- # $(INSTALL_DIR) $(ROOT)/etc/
42- # $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/
43- ln -sf halt $(ROOT)/sbin/reboot
44- ln -sf halt $(ROOT)/sbin/poweroff
45- ln -sf init $(ROOT)/sbin/telinit
46- ln -sf /sbin/killall5 $(ROOT)/bin/pidof
47- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
48- ln -sf last $(ROOT)/usr/bin/lastb; \
49+ # $(INSTALL_DIR) $(ROOT)$(sysconfdir)/
50+ # $(INSTALL_EXEC) initscript.sample $(ROOT)$(sysconfdir)/
51+ ln -sf halt $(ROOT)$(base_sbindir)/reboot
52+ ln -sf halt $(ROOT)$(base_sbindir)/poweroff
53+ ln -sf init $(ROOT)$(base_sbindir)/telinit
54+ ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof
55+ if [ ! -f $(ROOT)$(bindir)/lastb ]; then \
56+ ln -sf last $(ROOT)$(bindir)/lastb; \
57 fi
58- $(INSTALL_DIR) $(ROOT)/usr/include/
59- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/
60- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/
61- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/
62- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/
63+ $(INSTALL_DIR) $(ROOT)$(includedir)/
64+ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/
65+ $(INSTALL_DIR) $(ROOT)$(mandir)/man1/
66+ $(INSTALL_DIR) $(ROOT)$(mandir)/man5/
67+ $(INSTALL_DIR) $(ROOT)$(mandir)/man8/
68 for i in $(MAN1); do \
69- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man1/; \
70+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man1/; \
71 done
72 for i in $(MAN5); do \
73- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man5/; \
74+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man5/; \
75 done
76 for i in $(MAN8); do \
77- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man8/; \
78+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man8/; \
79 done
80 ifeq ($(ROOT),)
81 #
diff --git a/meta/recipes-core/sysvinit/sysvinit/bootlogd.init b/meta/recipes-core/sysvinit/sysvinit/bootlogd.init
new file mode 100755
index 0000000000..f8f07a050f
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/bootlogd.init
@@ -0,0 +1,85 @@
1#! /bin/sh
2#
3# bootlogd One of the first scripts to be executed. Starts or stops
4# the bootlogd log program. If this script is called as
5# "stop-bootlogd", it will stop the daemon instead of
6# starting it even when called with the "start" argument.
7#
8# Version: @(#)bootlogd 2.85-12 21-Mar-2004 miquels@cistron.nl
9#
10
11PATH=/sbin:/bin:/usr/sbin:/usr/bin
12DAEMON=/sbin/bootlogd
13NAME=bootlogd
14DESC="Bootlog daemon"
15
16test -f $DAEMON || exit 0
17
18[ -r /etc/default/bootlogd ] && . /etc/default/bootlogd
19
20## set -e # not needed
21
22case "$BOOTLOGD_ENABLE" in
23 [Nn]*)
24 exit 0
25 ;;
26esac
27
28STOPPER=
29ACTION="$1"
30case "$0" in
31 *stop-bootlog*)
32 STOPPER=Y
33 if [ "$ACTION" = start ]
34 then
35 ACTION=stop
36 fi
37 ;;
38esac
39
40case "$ACTION" in
41 start)
42 echo -n "Starting $DESC: "
43 if [ -d /proc/1/. ]
44 then
45 umask 027
46 start-stop-daemon --start --quiet \
47 --exec $DAEMON -- -r
48 else
49 $DAEMON -r
50 fi
51 echo "$NAME."
52 ;;
53 stop)
54 echo -n "Stopping $DESC: "
55 start-stop-daemon --stop --quiet --exec $DAEMON
56
57 if [ "$STOPPER" ] && [ -f /var/log/boot ] && \
58 [ -f /var/log/boot~ ]
59 then
60 cd /var/log
61 chgrp adm boot
62 savelog -p -c 5 boot > /dev/null 2>&1
63 mv boot.0 boot
64 mv boot~ boot.0
65 fi
66
67 echo "$NAME."
68 ;;
69 restart|force-reload)
70 echo -n "Restarting $DESC: "
71 start-stop-daemon --stop --quiet --exec $DAEMON
72 sleep 1
73 start-stop-daemon --start --quiet --exec $DAEMON
74 echo "$NAME."
75 ;;
76 *)
77 N=${0##*/}
78 N=${N#[SK]??}
79 echo "Usage: $N {start|stop|restart|force-reload}" >&2
80 exit 1
81 ;;
82esac
83
84exit 0
85
diff --git a/meta/recipes-core/sysvinit/sysvinit/inittab b/meta/recipes-core/sysvinit/sysvinit/inittab
new file mode 100644
index 0000000000..6abbdf4558
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/inittab
@@ -0,0 +1,30 @@
1# /etc/inittab: init(8) configuration.
2# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
3
4# The default runlevel.
5id:5:initdefault:
6
7# Boot-time system configuration/initialization script.
8# This is run first except when booting in emergency (-b) mode.
9si::sysinit:/etc/init.d/rcS
10
11# What to do in single-user mode.
12~~:S:wait:/sbin/sulogin
13
14# /etc/init.d executes the S and K scripts upon change
15# of runlevel.
16#
17# Runlevel 0 is halt.
18# Runlevel 1 is single-user.
19# Runlevels 2-5 are multi-user.
20# Runlevel 6 is reboot.
21
22l0:0:wait:/etc/init.d/rc 0
23l1:1:wait:/etc/init.d/rc 1
24l2:2:wait:/etc/init.d/rc 2
25l3:3:wait:/etc/init.d/rc 3
26l4:4:wait:/etc/init.d/rc 4
27l5:5:wait:/etc/init.d/rc 5
28l6:6:wait:/etc/init.d/rc 6
29# Normally not reached, but fallthrough in case of emergency.
30z6:6:respawn:/sbin/sulogin
diff --git a/meta/recipes-core/sysvinit/sysvinit/need b/meta/recipes-core/sysvinit/sysvinit/need
new file mode 100644
index 0000000000..4d84bbeee7
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/need
@@ -0,0 +1,6 @@
1#!/bin/sh
2
3# need binary that doesnt do anything, supplied for simpleinit
4# vs sysvinit compatibility for the supplied startup scripts
5
6exit 0
diff --git a/meta/recipes-core/sysvinit/sysvinit/postinst b/meta/recipes-core/sysvinit/sysvinit/postinst
new file mode 100644
index 0000000000..b6fe547fa4
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/postinst
@@ -0,0 +1,17 @@
1#!/bin/busybox ash
2
3action="$1"
4oldversion="$2"
5
6umask 022
7
8if [ "$action" != configure ]
9then
10 exit 0
11fi
12
13update-alternatives --install /sbin/init init /sbin/sysvinit 25
14update-alternatives --install /sbin/need need /sbin/need.sysvinit 25
15update-alternatives --install /sbin/provide provide /sbin/provide.sysvinit 25
16
17exit 0
diff --git a/meta/recipes-core/sysvinit/sysvinit/prerm b/meta/recipes-core/sysvinit/sysvinit/prerm
new file mode 100644
index 0000000000..704a29ffd5
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/prerm
@@ -0,0 +1,9 @@
1#!/bin/sh
2
3if [ "$1" != "upgrade" ]; then
4 update-alternatives --remove need /sbin/need.sysvinit
5 update-alternatives --remove provide /sbin/provide.sysvinit
6 update-alternatives --remove init /sbin/sysvinit
7fi
8
9exit 0
diff --git a/meta/recipes-core/sysvinit/sysvinit/provide b/meta/recipes-core/sysvinit/sysvinit/provide
new file mode 100644
index 0000000000..c90cf3537b
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/provide
@@ -0,0 +1,6 @@
1#!/bin/sh
2
3# provide binary that doesnt do anything, supplied for simpleinit
4# vs sysvinit compatibility for the supplied startup scripts
5
6exit 0
diff --git a/meta/recipes-core/sysvinit/sysvinit/rc b/meta/recipes-core/sysvinit/sysvinit/rc
new file mode 100755
index 0000000000..dce31a5c98
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/rc
@@ -0,0 +1,179 @@
1#!/bin/sh
2#
3# rc This file is responsible for starting/stopping
4# services when the runlevel changes.
5#
6# Optimization feature:
7# A startup script is _not_ run when the service was
8# running in the previous runlevel and it wasn't stopped
9# in the runlevel transition (most Debian services don't
10# have K?? links in rc{1,2,3,4,5} )
11#
12# Author: Miquel van Smoorenburg <miquels@cistron.nl>
13# Bruce Perens <Bruce@Pixar.com>
14#
15# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
16#
17
18. /etc/default/rcS
19export VERBOSE
20
21startup_progress() {
22 step=$(($step + $step_change))
23 if [ "$num_steps" != "0" ]; then
24 progress=$((($step * $progress_size / $num_steps) + $first_step))
25 else
26 progress=$progress_size
27 fi
28 #echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
29 #if type psplash-write >/dev/null 2>&1; then
30 # TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
31 #fi
32 if [ -e /mnt/.psplash/psplash_fifo ]; then
33 echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo
34 fi
35}
36
37
38#
39# Start script or program.
40#
41startup() {
42 # Handle verbosity
43 [ "$VERBOSE" = very ] && echo "INIT: Running $@..."
44
45 case "$1" in
46 *.sh)
47 # Source shell script for speed.
48 (
49 trap - INT QUIT TSTP
50 scriptname=$1
51 shift
52 . $scriptname
53 )
54 ;;
55 *)
56 "$@"
57 ;;
58 esac
59 startup_progress
60}
61
62 # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
63 trap ":" INT QUIT TSTP
64
65 # Set onlcr to avoid staircase effect.
66 stty onlcr 0>&1
67
68 # Now find out what the current and what the previous runlevel are.
69
70 runlevel=$RUNLEVEL
71 # Get first argument. Set new runlevel to this argument.
72 [ "$1" != "" ] && runlevel=$1
73 if [ "$runlevel" = "" ]
74 then
75 echo "Usage: $0 <runlevel>" >&2
76 exit 1
77 fi
78 previous=$PREVLEVEL
79 [ "$previous" = "" ] && previous=N
80
81 export runlevel previous
82
83 # Is there an rc directory for this new runlevel?
84 if [ -d /etc/rc$runlevel.d ]
85 then
86 # Find out where in the progress bar the initramfs got to.
87 PROGRESS_STATE=0
88 #if [ -f /dev/.initramfs/progress_state ]; then
89 # . /dev/.initramfs/progress_state
90 #fi
91
92 # Split the remaining portion of the progress bar into thirds
93 progress_size=$(((100 - $PROGRESS_STATE) / 3))
94
95 case "$runlevel" in
96 0|6)
97 # Count down from -100 to 0 and use the entire bar
98 first_step=-100
99 progress_size=100
100 step_change=1
101 ;;
102 S)
103 # Begin where the initramfs left off and use 2/3
104 # of the remaining space
105 first_step=$PROGRESS_STATE
106 progress_size=$(($progress_size * 2))
107 step_change=1
108 ;;
109 *)
110 # Begin where rcS left off and use the final 1/3 of
111 # the space (by leaving progress_size unchanged)
112 first_step=$(($progress_size * 2 + $PROGRESS_STATE))
113 step_change=1
114 ;;
115 esac
116
117 num_steps=0
118 for s in /etc/rc$runlevel.d/[SK]*; do
119 case "${s##/etc/rc$runlevel.d/S??}" in
120 gdm|xdm|kdm|reboot|halt)
121 break
122 ;;
123 esac
124 num_steps=$(($num_steps + 1))
125 done
126 step=0
127
128 # First, run the KILL scripts.
129 if [ $previous != N ]
130 then
131 for i in /etc/rc$runlevel.d/K[0-9][0-9]*
132 do
133 # Check if the script is there.
134 [ ! -f $i ] && continue
135
136 # Stop the service.
137 startup $i stop
138 done
139 fi
140
141 # Now run the START scripts for this runlevel.
142 for i in /etc/rc$runlevel.d/S*
143 do
144 [ ! -f $i ] && continue
145
146 if [ $previous != N ] && [ $previous != S ]
147 then
148 #
149 # Find start script in previous runlevel and
150 # stop script in this runlevel.
151 #
152 suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
153 stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
154 previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
155 #
156 # If there is a start script in the previous level
157 # and _no_ stop script in this level, we don't
158 # have to re-start the service.
159 #
160 [ -f $previous_start ] && [ ! -f $stop ] && continue
161 fi
162 case "$runlevel" in
163 0|6)
164 startup $i stop
165 ;;
166 *)
167 startup $i start
168 ;;
169 esac
170 done
171 fi
172
173#Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
174#if [ "x$runlevel" != "xS" ]; then
175# if type psplash-write >/dev/null 2>&1; then
176# TMPDIR=/mnt/.psplash psplash-write "QUIT" || true
177# umount /mnt/.psplash
178# fi
179#fi
diff --git a/meta/recipes-core/sysvinit/sysvinit/rcS b/meta/recipes-core/sysvinit/sysvinit/rcS
new file mode 100755
index 0000000000..080b04f32f
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/rcS
@@ -0,0 +1,34 @@
1#!/bin/sh
2#
3# rcS Call all S??* scripts in /etc/rcS.d in
4# numerical/alphabetical order.
5#
6# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
7#
8
9PATH=/sbin:/bin:/usr/sbin:/usr/bin
10runlevel=S
11prevlevel=N
12umask 022
13export PATH runlevel prevlevel
14
15# Make sure proc is mounted
16#
17[ -d "/proc/1" ] || mount /proc
18
19#
20# Source defaults.
21#
22. /etc/default/rcS
23
24#
25# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
26#
27trap ":" INT QUIT TSTP
28
29#
30# Call all parts in order.
31#
32exec /etc/init.d/rc S
33
34
diff --git a/meta/recipes-core/sysvinit/sysvinit/rcS-default b/meta/recipes-core/sysvinit/sysvinit/rcS-default
new file mode 100644
index 0000000000..7ad3c7bf8f
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/rcS-default
@@ -0,0 +1,25 @@
1#
2# Defaults for the boot scripts in /etc/rcS.d
3#
4
5# Time files in /tmp are kept in days.
6TMPTIME=0
7# Set to yes if you want sulogin to be spawned on bootup
8SULOGIN=no
9# Set to no if you want to be able to login over telnet/rlogin
10# before system startup is complete (as soon as inetd is started)
11DELAYLOGIN=no
12# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
13# UTC=yes
14# Set VERBOSE to "no" if you would like a more quiet bootup.
15VERBOSE=no
16# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
17EDITMOTD=no
18# Whether to fsck root on boot
19ENABLE_ROOTFS_FSCK=no
20# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
21FSCKFIX=yes
22# Set TICKADJ to the correct tick value for this specific machine
23#TICKADJ=10000
24# Enable caching in populate-volatile.sh
25VOLATILE_ENABLE_CACHE=yes
diff --git a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
new file mode 100644
index 0000000000..db38064548
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
@@ -0,0 +1,135 @@
1DESCRIPTION = "System-V like init."
2HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/"
3SECTION = "base"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
6 file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4"
7PR = "r1"
8
9# USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
10# Set PACKAGE_ARCH appropriately.
11PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
12
13RDEPENDS_${PN} = "${PN}-inittab"
14
15PACKAGES =+ "bootlogd ${PN}-inittab"
16FILES_bootlogd = "/etc/init.d/bootlogd /etc/init.d/stop-bootlogd /etc/rc?.d/S*bootlogd /sbin/bootlogd"
17FILES_${PN}-inittab = "${sysconfdir}/inittab"
18CONFFILES_${PN}-inittab = "${sysconfdir}/inittab"
19
20USE_VT ?= "1"
21SYSVINIT_ENABLED_GETTYS ?= "1"
22
23SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/sysvinit/sysvinit-${PV}.tar.bz2 \
24 file://install.patch \
25 file://crypt-lib.patch \
26 file://need \
27 file://provide \
28 file://inittab \
29 file://rcS-default \
30 file://rc \
31 file://rcS \
32 file://bootlogd.init"
33
34S = "${WORKDIR}/sysvinit-${PV}"
35B = "${S}/src"
36
37inherit update-alternatives
38
39ALTERNATIVE_NAME = "init"
40ALTERNATIVE_LINK = "${base_sbindir}/init"
41ALTERNATIVE_PATH = "${base_sbindir}/init.sysvinit"
42ALTERNATIVE_PRIORITY = "50"
43
44PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
45FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
46FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit"
47FILES_sysvinit-sulogin = "${base_sbindir}/sulogin"
48
49CFLAGS_prepend = "-D_GNU_SOURCE "
50export LCRYPT = "-lcrypt"
51EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
52 'base_sbindir=${base_sbindir}' \
53 'bindir=${bindir}' \
54 'sbindir=${sbindir}' \
55 'sysconfdir=${sysconfdir}' \
56 'includedir=${includedir}' \
57 'mandir=${mandir}'"
58
59do_install () {
60 oe_runmake 'ROOT=${D}' install
61 install -d ${D}${sysconfdir} \
62 ${D}${sysconfdir}/default \
63 ${D}${sysconfdir}/init.d
64 install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
65 if [ ! -z "${SERIAL_CONSOLE}" ]; then
66 echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}" >> ${D}${sysconfdir}/inittab
67 fi
68 if [ "${USE_VT}" = "1" ]; then
69 cat <<EOF >>${D}${sysconfdir}/inittab
70# ${base_sbindir}/getty invocations for the runlevels.
71#
72# The "id" field MUST be the same as the last
73# characters of the device (after "tty").
74#
75# Format:
76# <id>:<runlevels>:<action>:<process>
77#
78
79EOF
80
81 for n in ${SYSVINIT_ENABLED_GETTYS}
82 do
83 echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab
84 done
85 echo "" >> ${D}${sysconfdir}/inittab
86 fi
87 install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS
88 install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d
90 install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
91 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
92 install -d ${D}${sysconfdir}/rcS.d
93 ln -sf ../init.d/bootlogd ${D}${sysconfdir}/rcS.d/S07bootlogd
94 for level in 2 3 4 5; do
95 install -d ${D}${sysconfdir}/rc$level.d
96 ln -s ../init.d/stop-bootlogd ${D}${sysconfdir}/rc$level.d/S99stop-bootlogd
97 done
98 mv ${D}${base_sbindir}/init ${D}${base_sbindir}/init.${PN}
99 mv ${D}${base_bindir}/pidof ${D}${base_bindir}/pidof.${PN}
100 mv ${D}${base_sbindir}/halt ${D}${base_sbindir}/halt.${PN}
101 mv ${D}${base_sbindir}/reboot ${D}${base_sbindir}/reboot.${PN}
102 mv ${D}${base_sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
103 mv ${D}${base_sbindir}/poweroff ${D}${base_sbindir}/poweroff.${PN}
104 mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
105 mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
106 mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
107}
108
109pkg_postinst_${PN} () {
110 update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 200
111 update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 200
112 update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 200
113 update-alternatives --install ${base_sbindir}/poweroff poweroff poweroff.${PN} 200
114 update-alternatives --install ${bindir}/last last last.${PN} 200
115 update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 200
116 update-alternatives --install ${bindir}/wall wall wall.${PN} 200
117}
118
119pkg_prerm_${PN} () {
120 update-alternatives --remove halt halt.${PN}
121 update-alternatives --remove reboot reboot.${PN}
122 update-alternatives --remove shutdown shutdown.${PN}
123 update-alternatives --remove poweroff poweroff.${PN}
124 update-alternatives --remove last last.${PN}
125 update-alternatives --remove mesg mesg.${PN}
126 update-alternatives --remove wall wall.${PN}
127}
128
129pkg_postinst_sysvinit-pidof () {
130 update-alternatives --install ${base_bindir}/pidof pidof pidof.${PN} 200
131}
132
133pkg_prerm_sysvinit-pidof () {
134 update-alternatives --remove pidof pidof.${PN}
135}
diff --git a/meta/recipes-core/tasks/task-base.bb b/meta/recipes-core/tasks/task-base.bb
new file mode 100644
index 0000000000..9873c060cc
--- /dev/null
+++ b/meta/recipes-core/tasks/task-base.bb
@@ -0,0 +1,385 @@
1DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
2LICENSE = "MIT"
3PR = "r69"
4
5inherit task
6
7PROVIDES = "${PACKAGES}"
8PACKAGES = ' \
9 task-base \
10 task-base-extended \
11 task-distro-base \
12 task-machine-base \
13 \
14 ${@base_contains("MACHINE_FEATURES", "acpi", "task-base-acpi", "",d)} \
15 ${@base_contains("MACHINE_FEATURES", "alsa", "task-base-alsa", "", d)} \
16 ${@base_contains("MACHINE_FEATURES", "apm", "task-base-apm", "", d)} \
17 ${@base_contains("MACHINE_FEATURES", "ext2", "task-base-ext2", "", d)} \
18 ${@base_contains("MACHINE_FEATURES", "vfat", "task-base-vfat", "", d)} \
19 ${@base_contains("MACHINE_FEATURES", "irda", "task-base-irda", "",d)} \
20 ${@base_contains("MACHINE_FEATURES", "keyboard", "task-base-keyboard", "", d)} \
21 ${@base_contains("MACHINE_FEATURES", "pci", "task-base-pci", "",d)} \
22 ${@base_contains("MACHINE_FEATURES", "pcmcia", "task-base-pcmcia", "", d)} \
23 ${@base_contains("MACHINE_FEATURES", "phone", "task-base-phone", "", d)} \
24 ${@base_contains("MACHINE_FEATURES", "screen", "task-base-screen", "", d)} \
25 ${@base_contains("MACHINE_FEATURES", "serial", "task-base-serial", "", d)} \
26 ${@base_contains("MACHINE_FEATURES", "touchscreen", "task-base-touchscreen", "", d)} \
27 ${@base_contains("MACHINE_FEATURES", "usbgadget", "task-base-usbgadget", "", d)} \
28 ${@base_contains("MACHINE_FEATURES", "usbhost", "task-base-usbhost", "", d)} \
29 \
30 ${@base_contains("MACHINE_FEATURES", "uboot", "task-base-uboot", "",d)} \
31 ${@base_contains("MACHINE_FEATURES", "redboot", "task-base-redboot", "",d)} \
32 ${@base_contains("MACHINE_FEATURES", "apex", "task-base-apex", "",d)} \
33 \
34 ${@base_contains("DISTRO_FEATURES", "bluetooth", "task-base-bluetooth", "", d)} \
35 ${@base_contains("DISTRO_FEATURES", "wifi", "task-base-wifi", "", d)} \
36 ${@base_contains("DISTRO_FEATURES", "cramfs", "task-base-cramfs", "", d)} \
37 ${@base_contains("DISTRO_FEATURES", "ipsec", "task-base-ipsec", "", d)} \
38 ${@base_contains("DISTRO_FEATURES", "ipv6", "task-base-ipv6", "", d)} \
39 ${@base_contains("DISTRO_FEATURES", "nfs", "task-base-nfs", "", d)} \
40 ${@base_contains("DISTRO_FEATURES", "ppp", "task-base-ppp", "", d)} \
41 ${@base_contains("DISTRO_FEATURES", "smbfs", "task-base-smbfs", "", d)} \
42 ${@base_contains("DISTRO_FEATURES", "raid", "task-base-raid", "",d)} \
43 ${@base_contains("DISTRO_FEATURES", "zeroconf", "task-base-zeroconf", "", d)} \
44 \
45 ${@base_contains("MACHINE_FEATURES","kernel26","task-base-kernel26","task-base-kernel24",d)} \
46 '
47
48ALLOW_EMPTY = "1"
49
50#
51# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
52#
53PACKAGE_ARCH = "${MACHINE_ARCH}"
54
55#
56# linux-hotplug or none
57#
58HOTPLUG ?= "${@base_contains("MACHINE_FEATURES", "kernel24", "linux-hotplug","",d)} "
59
60#
61# dropbear, openssh or none
62#
63DISTRO_SSH_DAEMON ?= "dropbear"
64
65#
66# pcmciautils for >= 2.6.13-rc1, pcmcia-cs for others
67#
68PCMCIA_MANAGER ?= "${@base_contains('MACHINE_FEATURES', 'kernel26','pcmciautils','pcmcia-cs',d)} "
69
70#
71# those ones can be set in machine config to supply packages needed to get machine booting
72#
73MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
74MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
75
76#
77# task-base contain stuff needed for base system (machine related)
78#
79RDEPENDS_task-base = "\
80 task-distro-base \
81 task-machine-base \
82 ${DISTRO_SSH_DAEMON} \
83 ${HOTPLUG} \
84 \
85 ${@base_contains('MACHINE_FEATURES', 'kernel26','task-base-kernel26','task-base-kernel24',d)} \
86 ${@base_contains('MACHINE_FEATURES', 'apm', 'task-base-apm', '',d)} \
87 ${@base_contains('MACHINE_FEATURES', 'acpi', 'task-base-acpi', '',d)} \
88 ${@base_contains('MACHINE_FEATURES', 'keyboard', 'task-base-keyboard', '',d)} \
89 ${@base_contains('MACHINE_FEATURES', 'phone', 'task-base-phone', '',d)} \
90 \
91 ${@base_contains('COMBINED_FEATURES', 'alsa', 'task-base-alsa', '',d)} \
92 ${@base_contains('COMBINED_FEATURES', 'ext2', 'task-base-ext2', '',d)} \
93 ${@base_contains('COMBINED_FEATURES', 'vfat', 'task-base-vfat', '',d)} \
94 ${@base_contains('COMBINED_FEATURES', 'irda', 'task-base-irda', '',d)} \
95 ${@base_contains('COMBINED_FEATURES', 'pci', 'task-base-pci', '',d)} \
96 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'task-base-pcmcia', '',d)} \
97 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'bluez-dtl1-workaround', '',d)} \
98 ${@base_contains('COMBINED_FEATURES', 'usbgadget', 'task-base-usbgadget', '',d)} \
99 ${@base_contains('COMBINED_FEATURES', 'usbhost', 'task-base-usbhost', '',d)} \
100 ${@base_contains('COMBINED_FEATURES', 'bluetooth', 'task-base-bluetooth', '',d)} \
101 ${@base_contains('COMBINED_FEATURES', 'wifi', 'task-base-wifi', '',d)} \
102 ${@base_contains('COMBINED_FEATURES', 'uboot', 'task-base-uboot', '',d)} \
103 ${@base_contains('COMBINED_FEATURES', 'redboot', 'task-base-redboot', '',d)} \
104 ${@base_contains('COMBINED_FEATURES', 'apex', 'task-base-apex', '',d)} \
105 \
106 ${@base_contains('DISTRO_FEATURES', 'nfs', 'task-base-nfs', '',d)} \
107 ${@base_contains('DISTRO_FEATURES', 'cramfs', 'task-base-cramfs', '',d)} \
108 ${@base_contains('DISTRO_FEATURES', 'smbfs', 'task-base-smbfs', '',d)} \
109 ${@base_contains('DISTRO_FEATURES', 'ipv6', 'task-base-ipv6', '',d)} \
110 ${@base_contains('DISTRO_FEATURES', 'ipsec', 'task-base-ipsec', '',d)} \
111 ${@base_contains('DISTRO_FEATURES', 'ppp', 'task-base-ppp', '',d)} \
112 ${@base_contains('DISTRO_FEATURES', 'raid', 'task-base-raid', '',d)} \
113 ${@base_contains('DISTRO_FEATURES', 'zeroconf', 'task-base-zeroconf', '',d)} \
114 "
115# bluez-dtl1-workaround above is workaround for bitbake not handling DEPENDS on it in
116
117RDEPENDS_task-base-extended = "\
118 task-base \
119 ${ADD_WIFI} \
120 ${ADD_BT} \
121 "
122
123ADD_WIFI = ""
124ADD_BT = ""
125
126python __anonymous () {
127 # If Distro want wifi and machine feature wifi/pci/pcmcia/usbhost (one of them)
128 # then include task-base-wifi in task-base
129
130 import bb
131
132 distro_features = set(bb.data.getVar("DISTRO_FEATURES", d, 1).split())
133 machine_features= set(bb.data.getVar("MACHINE_FEATURES", d, 1).split())
134
135 if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
136 bb.data.setVar("ADD_BT", "task-base-bluetooth", d)
137
138 if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
139 bb.data.setVar("ADD_WIFI", "task-base-wifi", d)
140}
141
142#
143# packages added by distribution
144#
145DEPENDS_task-distro-base = "${DISTRO_EXTRA_DEPENDS}"
146RDEPENDS_task-distro-base = "${DISTRO_EXTRA_RDEPENDS}"
147RRECOMMENDS_task-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
148
149#
150# packages added by machine config
151#
152RDEPENDS_task-machine-base = "${MACHINE_EXTRA_RDEPENDS}"
153RRECOMMENDS_task-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}"
154
155RDEPENDS_task-base-kernel24 = "\
156 modutils-depmod"
157
158RDEPENDS_task-base-kernel26 = "\
159 sysfsutils \
160 module-init-tools"
161
162RRECOMMENDS_task-base-kernel24 = "\
163 kernel-module-input \
164 kernel-module-uinput"
165
166RRECOMMENDS_task-base-kernel26 = "\
167 kernel-module-nls-utf8 \
168 kernel-module-input \
169 kernel-module-uinput \
170 kernel-module-rtc-dev \
171 kernel-module-rtc-proc \
172 kernel-module-rtc-sysfs \
173 kernel-module-rtc-sa1100 \
174 kernel-module-unix"
175
176RDEPENDS_task-base-keyboard = "\
177 keymaps"
178
179RDEPENDS_task-base-pci = "\
180 pciutils"
181
182RDEPENDS_task-base-acpi = "\
183 acpid \
184 libacpi "
185
186RDEPENDS_task-base-apm = "\
187 apm \
188 apmd"
189
190RDEPENDS_task-base-ext2 = "\
191 hdparm \
192 e2fsprogs \
193 e2fsprogs-e2fsck \
194 e2fsprogs-mke2fs"
195
196RRECOMMENDS_task-base-vfat = "\
197 kernel-module-msdos \
198 kernel-module-vfat \
199 kernel-module-nls-iso8859-1 \
200 kernel-module-nls-cp437"
201
202RDEPENDS_task-base-alsa = "\
203 alsa-utils-alsactl \
204 alsa-utils-alsamixer"
205
206RRECOMMENDS_task-base-alsa = "\
207 kernel-module-snd-mixer-oss \
208 kernel-module-snd-pcm-oss"
209
210RDEPENDS_task-base-pcmcia = "\
211 ${PCMCIA_MANAGER} \
212 ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism-firmware', '',d)} \
213 ${@base_contains('DISTRO_FEATURES', 'wifi', 'spectrum-fw', '',d)} \
214 "
215
216RRECOMMENDS_task-base-pcmcia = "\
217 ${@base_contains('MACHINE_FEATURES', 'kernel26', '${task-base-pcmcia26}', '${task-base-pcmcia24}',d)} \
218 kernel-module-pcmcia \
219 kernel-module-airo-cs \
220 kernel-module-pcnet-cs \
221 kernel-module-serial-cs \
222 kernel-module-ide-cs \
223 kernel-module-ide-disk \
224 "
225
226task-base-pcmcia24 = "\
227 ${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-modules-cs', '',d)} \
228 ${@base_contains('DISTRO_FEATURES', 'wifi', 'orinoco-modules-cs', '',d)} \
229 "
230
231task-base-pcmcia26 = "\
232 ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-hostap-cs', '',d)} \
233 ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-orinoco-cs', '',d)} \
234 ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-spectrum-cs', '',d)}"
235
236# Provide bluez-utils-compat utils for the time being, the binaries in that package will vanish soon from upstream releases, so beware!
237
238RDEPENDS_task-base-bluetooth = "\
239 bluez4 \
240 "
241
242RRECOMMENDS_task-base-bluetooth = "\
243 kernel-module-bluetooth \
244 kernel-module-l2cap \
245 kernel-module-rfcomm \
246 kernel-module-hci-vhci \
247 kernel-module-bnep \
248 kernel-module-hidp \
249 kernel-module-hci-uart \
250 kernel-module-sco \
251 ${@base_contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-hci-usb', '',d)} \
252 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetooth3c-cs', '',d)} \
253 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluecard-cs', '',d)} \
254 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetoothuart-cs', '',d)} \
255 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-dtl1-cs', '',d)} \
256 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'bluez-dtl1-workaround', '',d)} \
257 "
258# bluez-dtl1-workaround above is workaround for bitbake not handling DEPENDS on it in
259# kernel.bbclass. It should be there as long as kernel-module-dtl1-cs is, but not longer.
260
261RDEPENDS_task-base-irda = "\
262 irda-utils"
263
264RRECOMMENDS_task-base-irda = "\
265 kernel-module-pxaficp-ir \
266 kernel-module-irda \
267 kernel-module-ircomm \
268 kernel-module-ircomm-tty \
269 kernel-module-irlan \
270 ${@base_contains('DISTRO_FEATURES', 'ppp', 'kernel-module-irnet', '',d)} \
271 kernel-module-irport \
272 kernel-module-irtty \
273 kernel-module-irtty-sir \
274 kernel-module-sir-dev \
275 ${@base_contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-ir-usb', '',d)} "
276
277RRECOMMENDS_task-base-usbgadget = "\
278 kernel-module-pxa27x_udc \
279 kernel-module-gadgetfs \
280 kernel-module-g-file-storage \
281 kernel-module-g-serial \
282 kernel-module-g-ether"
283
284RDEPENDS_task-base-usbhost = "\
285 usbutils "
286
287RRECOMMENDS_task-base-usbhost = "\
288 kernel-module-uhci-hcd \
289 kernel-module-ohci-hcd \
290 kernel-module-ehci-hcd \
291 kernel-module-usbcore \
292 kernel-module-usbhid \
293 kernel-module-usbnet \
294 kernel-module-sd-mod \
295 kernel-module-scsi-mod \
296 kernel-module-usbmouse \
297 kernel-module-mousedev \
298 kernel-module-usbserial \
299 kernel-module-usb-storage "
300
301RDEPENDS_task-base-ppp = "\
302 ppp \
303 ppp-dialin"
304
305RRECOMMENDS_task-base-ppp = "\
306 kernel-module-ppp-async \
307 kernel-module-ppp-deflate \
308 kernel-module-ppp-generic \
309 kernel-module-ppp-mppe \
310 kernel-module-slhc"
311
312RDEPENDS_task-base-ipsec = "\
313 openswan"
314
315RRECOMMENDS_task-base-ipsec = "\
316 kernel-module-ipsec"
317
318#
319# task-base-wifi contain everything needed to get WiFi working
320# WEP/WPA connection needs to be supported out-of-box
321#
322RDEPENDS_task-base-wifi = "\
323 wireless-tools \
324 ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'hostap-utils', '',d)} \
325 ${@base_contains('COMBINED_FEATURES', 'pci', 'hostap-utils', '',d)} \
326 wpa-supplicant"
327
328RRECOMMENDS_task-base-wifi = "\
329 ${@base_contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-zd1211rw', '',d)} \
330 kernel-module-ieee80211-crypt \
331 kernel-module-ieee80211-crypt-ccmp \
332 kernel-module-ieee80211-crypt-tkip \
333 kernel-module-ieee80211-crypt-wep \
334 kernel-module-ecb \
335 kernel-module-arc4 \
336 kernel-module-crypto_algapi \
337 kernel-module-cryptomgr \
338 kernel-module-michael-mic \
339 kernel-module-aes-generic \
340 kernel-module-aes"
341
342RRECOMMENDS_task-base-smbfs = "\
343 kernel-module-cifs \
344 kernel-module-smbfs"
345
346RRECOMMENDS_task-base-cramfs = "\
347 kernel-module-cramfs"
348
349#
350# task-base-nfs provides ONLY client support - server is in nfs-utils package
351#
352RDEPENDS_task-base-nfs = "\
353 portmap"
354
355RRECOMMENDS_task-base-nfs = "\
356 kernel-module-nfs "
357
358RDEPENDS_task-base-zeroconf = "\
359 avahi-daemon"
360
361RDEPENDS_task-base-raid = "\
362 "
363
364RDEPENDS_task-base-screen = "\
365 "
366
367#
368# GPE/OPIE/OpenMoko provide own touchscreen calibration utils
369#
370RDEPENDS_task-base-touchscreen = "\
371 "
372
373RDEPENDS_task-base-ipv6 = "\
374 "
375
376RRECOMMENDS_task-base-ipv6 = "\
377 kernel-module-ipv6 "
378
379RDEPENDS_task-base-serial = "\
380 setserial \
381 lrzsz "
382
383RDEPENDS_task-base-phone = "\
384 gsmd \
385 libgsmd-tools"
diff --git a/meta/recipes-core/tasks/task-poky-boot.bb b/meta/recipes-core/tasks/task-poky-boot.bb
new file mode 100644
index 0000000000..4143369cd3
--- /dev/null
+++ b/meta/recipes-core/tasks/task-poky-boot.bb
@@ -0,0 +1,33 @@
1#
2# Copyright (C) 2007 OpenedHand Ltd.
3#
4
5DESCRIPTION = "Task for OpenedHand Poky - minimal bootable image"
6LICENSE = "MIT"
7PACKAGE_ARCH = "${MACHINE_ARCH}"
8DEPENDS = "virtual/kernel"
9ALLOW_EMPTY = "1"
10PR = "r7"
11
12#
13# Set by the machine configuration with packages essential for device bootup
14#
15MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
16MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
17
18RDEPENDS_task-poky-boot = "\
19 base-files \
20 base-passwd \
21 busybox \
22 initscripts \
23 ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \
24 modutils-initscripts \
25 netbase \
26 sysvinit \
27 tinylogin \
28 udev \
29 ${VIRTUAL-RUNTIME_update-alternatives} \
30 ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
31
32RRECOMMENDS_task-poky-boot = "\
33 ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/add-system.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/add-system.patch
new file mode 100644
index 0000000000..18b4e47ad7
--- /dev/null
+++ b/meta/recipes-core/tinylogin/tinylogin-1.4/add-system.patch
@@ -0,0 +1,115 @@
1? add-system.patch
2? cvs-20040608.patch
3? familiar
4? pod2htmd.tmp
5? pod2htmi.tmp
6? system.diff
7? tinylogin_1.4-20030620.1_arm.ipk
8? tinylogin_1.4-20030620.1_arm.ipk.asc
9? tinylogin_1.4-20030620.1_arm.ipk.upload.html
10? tinylogin_1.4-20030620.2_arm.ipk
11? tinylogin_1.4-20030620.2_arm.ipk.asc
12? tinylogin_1.4-20030620.2_arm.ipk.upload.html
13? tinylogin_1.4-20030620_arm.ipk
14? tinylogin_1.4-20030620_arm.ipk.asc
15? tinylogin_1.4-20030620_arm.ipk.upload.html
16? tmp
17Index: addgroup.c
18===================================================================
19RCS file: /var/cvs/tinylogin/addgroup.c,v
20retrieving revision 1.23
21diff -u -r1.23 addgroup.c
22--- a/addgroup.c 9 Jan 2003 18:43:29 -0000 1.23
23+++ b/addgroup.c 8 Jun 2004 08:56:08 -0000
24@@ -31,6 +31,7 @@
25 #include <sys/stat.h>
26 #include <sys/types.h>
27 #include <unistd.h>
28+#include <getopt.h>
29 #include "tinylogin.h"
30
31 #define GROUP_FILE "/etc/group"
32@@ -124,6 +125,11 @@
33 return 0;
34 }
35
36+static struct option long_options[] = {
37+ { "system", 0, NULL, 'S' },
38+ { 0, 0, 0, 0 }
39+};
40+
41 /*
42 * addgroup will take a login_name as its first parameter.
43 *
44@@ -136,14 +142,19 @@
45 int opt;
46 char *group;
47 char *user;
48+ int option_index = -1;
49 gid_t gid = 0;
50+ int system = 0;
51
52 /* get remaining args */
53- while ((opt = getopt (argc, argv, "g:")) != -1) {
54+ while ((opt = getopt_long (argc, argv, "g:S", long_options, &option_index)) != -1) {
55 switch (opt) {
56 case 'g':
57 gid = strtol(optarg, NULL, 10);
58 break;
59+ case 'S':
60+ system = 1;
61+ break;
62 default:
63 show_usage();
64 break;
65Index: adduser.c
66===================================================================
67RCS file: /var/cvs/tinylogin/adduser.c,v
68retrieving revision 1.38
69diff -u -r1.38 adduser.c
70--- a/adduser.c 21 Jun 2003 19:35:42 -0000 1.38
71+++ b/adduser.c 8 Jun 2004 08:56:09 -0000
72@@ -66,13 +66,13 @@
73
74 /* remix */
75 /* EDR recoded such that the uid may be passed in *p */
76-static int passwd_study(const char *filename, struct passwd *p)
77+static int passwd_study(const char *filename, struct passwd *p, int system)
78 {
79 struct passwd *pw;
80 FILE *passwd;
81
82- const int min = 500;
83- const int max = 65000;
84+ const int min = system ? 10 : 500;
85+ const int max = system ? 99 : 65000;
86
87 passwd = wfopen(filename, "r");
88 if (!passwd)
89@@ -142,7 +142,7 @@
90 }
91
92 /* putpwent(3) remix */
93-static int adduser(const char *filename, struct passwd *p, int makehome, int setpass)
94+static int adduser(const char *filename, struct passwd *p, int makehome, int setpass, int system)
95 {
96 FILE *passwd;
97 int r;
98@@ -165,7 +165,7 @@
99 fseek(passwd, 0, SEEK_END);
100
101 /* if (passwd_study(filename, p) == 0) { */
102- r = passwd_study(filename, p);
103+ r = passwd_study(filename, p, system);
104 if (r) {
105 if (r == 1)
106 error_msg("%s: login already in use", p->pw_name);
107@@ -357,7 +357,7 @@
108 }
109
110 /* grand finale */
111- return adduser(PASSWD_FILE, &pw, makehome, setpass);
112+ return adduser(PASSWD_FILE, &pw, makehome, setpass, system);
113 }
114
115 /* $Id: adduser.c,v 1.38 2003/06/21 19:35:42 andersen Exp $ */
diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/adduser-empty_pwd.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/adduser-empty_pwd.patch
new file mode 100644
index 0000000000..737ac423c4
--- /dev/null
+++ b/meta/recipes-core/tinylogin/tinylogin-1.4/adduser-empty_pwd.patch
@@ -0,0 +1,43 @@
1--- tinylogin-1.4/adduser.c.orig 2004-09-30 18:01:46.000000000 +0200
2+++ tinylogin-1.4/adduser.c 2004-09-30 18:07:01.000000000 +0200
3@@ -249,6 +249,7 @@
4 struct option long_options[] = {
5 { "home", 1, NULL, 'h' },
6 { "disabled-password", 0, NULL, 'D' },
7+ { "empty-password", 0, NULL, 'E' },
8 { "system", 0, NULL, 'S' },
9 { "ingroup", 1, NULL, 'G' },
10 { "no-create-home", 0, NULL, 'H' },
11@@ -287,7 +288,7 @@
12 shell = default_shell;
13
14 /* get args */
15- while ((opt = getopt_long (argc, argv, "h:g:s:G:DSH", long_options, &option_index)) != -1) {
16+ while ((opt = getopt_long (argc, argv, "h:g:s:G:DESH", long_options, &option_index)) != -1) {
17 switch (opt) {
18 case 'h':
19 home = optarg;
20@@ -304,6 +305,9 @@
21 case 'D':
22 setpass = 0;
23 break;
24+ case 'E':
25+ setpass = -1;
26+ break;
27 case 'S':
28 system = 1;
29 break;
30@@ -338,7 +342,12 @@
31
32 /* create a passwd struct */
33 pw.pw_name = (char *)login;
34- pw.pw_passwd = (char *)default_passwd;
35+ if (setpass != -1)
36+ pw.pw_passwd = (char *)default_passwd;
37+ else {
38+ pw.pw_passwd = (char *)"";
39+ setpass = 0;
40+ }
41 pw.pw_uid = 0;
42 pw.pw_gid = 0;
43 pw.pw_gecos = (char *)gecos;
diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/cvs-20040608.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/cvs-20040608.patch
new file mode 100644
index 0000000000..1142329a67
--- /dev/null
+++ b/meta/recipes-core/tinylogin/tinylogin-1.4/cvs-20040608.patch
@@ -0,0 +1,821 @@
1Index: Config.h
2===================================================================
3RCS file: /var/cvs/tinylogin/Config.h,v
4retrieving revision 1.10
5retrieving revision 1.12
6diff -u -r1.10 -r1.12
7--- a/Config.h 23 Jun 2002 03:09:07 -0000 1.10
8+++ b/Config.h 17 Feb 2003 11:51:55 -0000 1.12
9@@ -27,15 +27,11 @@
10 // Enable checking of /etc/securetty by login
11 #define CONFIG_FEATURE_SECURETTY
12 //
13-// Enable using sha passwords
14-#define CONFIG_FEATURE_SHA1_PASSWORDS
15-//
16 // Enable use of a wheel group
17 #define CONFIG_WHEEL_GROUP
18 //
19-// This compiles out everything but the most
20-// trivial --help usage information (i.e. reduces binary size)
21-#define CONFIG_FEATURE_TRIVIAL_HELP
22+// Show verbose usage messages
23+//#define CONFIG_FEATURE_VERBOSE_USAGE
24 //
25 // Enable 'tinylogin --install [-s]' to allow tinylogin
26 // to create links (or symlinks) at runtime for all the
27@@ -48,10 +44,6 @@
28 // Nothing beyond this point should ever be touched by
29 // mere mortals so leave this stuff alone.
30 //
31-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
32-#define CONFIG_SHA1
33-#endif
34-//
35 #ifdef CONFIG_FEATURE_SHADOWPASSWDS
36 #define CONFIG_SHADOW
37 #endif
38Index: addgroup.c
39===================================================================
40RCS file: /var/cvs/tinylogin/addgroup.c,v
41retrieving revision 1.22
42retrieving revision 1.23
43diff -u -r1.22 -r1.23
44--- a/addgroup.c 12 Dec 2002 08:46:03 -0000 1.22
45+++ b/addgroup.c 9 Jan 2003 18:43:29 -0000 1.23
46@@ -133,23 +133,33 @@
47 * ________________________________________________________________________ */
48 int addgroup_main(int argc, char **argv)
49 {
50+ int opt;
51 char *group;
52 char *user;
53 gid_t gid = 0;
54
55- if (argc < 2) {
56- show_usage();
57+ /* get remaining args */
58+ while ((opt = getopt (argc, argv, "g:")) != -1) {
59+ switch (opt) {
60+ case 'g':
61+ gid = strtol(optarg, NULL, 10);
62+ break;
63+ default:
64+ show_usage();
65+ break;
66+ }
67 }
68
69- if (strncmp(argv[1], "-g", 2) == 0) {
70- gid = strtol(argv[2], NULL, 10);
71- group = argv[2];
72+ if (optind < argc) {
73+ group = argv[optind];
74+ optind++;
75 } else {
76 show_usage();
77 }
78-
79- if (argc == 4) {
80- user = argv[3];
81+
82+ if (optind < argc) {
83+ user = argv[optind];
84+ optind++;
85 } else {
86 user = "";
87 }
88@@ -163,4 +173,4 @@
89 return addgroup(GROUP_FILE, group, gid, user);
90 }
91
92-/* $Id: addgroup.c,v 1.22 2002/12/12 08:46:03 andersen Exp $ */
93+/* $Id: addgroup.c,v 1.23 2003/01/09 18:43:29 andersen Exp $ */
94Index: adduser.c
95===================================================================
96RCS file: /var/cvs/tinylogin/adduser.c,v
97retrieving revision 1.37
98retrieving revision 1.38
99diff -u -r1.37 -r1.38
100--- a/adduser.c 12 Dec 2002 08:46:03 -0000 1.37
101+++ b/adduser.c 21 Jun 2003 19:35:42 -0000 1.38
102@@ -21,6 +21,9 @@
103 *
104 */
105
106+#ifndef _GNU_SOURCE
107+#define _GNU_SOURCE
108+#endif
109 #include <errno.h>
110 #include <fcntl.h>
111 #include <stdarg.h>
112@@ -29,6 +32,7 @@
113 #include <string.h>
114 #include <time.h>
115 #include <unistd.h>
116+#include <getopt.h>
117 #include <sys/param.h>
118 #include <sys/stat.h>
119 #include <sys/types.h>
120@@ -93,21 +97,23 @@
121 }
122 }
123
124- /* EDR check for an already existing gid */
125- while (getgrgid(p->pw_uid) != NULL)
126- p->pw_uid++;
127-
128- /* EDR also check for an existing group definition */
129- if (getgrnam(p->pw_name) != NULL)
130- return 3;
131+ if (p->pw_gid == 0) {
132+ /* EDR check for an already existing gid */
133+ while (getgrgid(p->pw_uid) != NULL)
134+ p->pw_uid++;
135+
136+ /* EDR also check for an existing group definition */
137+ if (getgrnam(p->pw_name) != NULL)
138+ return 3;
139+
140+ /* EDR create new gid always = uid */
141+ p->pw_gid = p->pw_uid;
142+ }
143
144 /* EDR bounds check */
145 if ((p->pw_uid > max) || (p->pw_uid < min))
146 return 2;
147
148- /* EDR create new gid always = uid */
149- p->pw_gid = p->pw_uid;
150-
151 /* return 1; */
152 return 0;
153 }
154@@ -136,7 +142,7 @@
155 }
156
157 /* putpwent(3) remix */
158-static int adduser(const char *filename, struct passwd *p)
159+static int adduser(const char *filename, struct passwd *p, int makehome, int setpass)
160 {
161 FILE *passwd;
162 int r;
163@@ -144,6 +150,11 @@
164 FILE *shadow;
165 struct spwd *sp;
166 #endif
167+ int new_group = 1;
168+
169+ /* if using a pre-existing group, don't create one */
170+ if (p->pw_gid != 0)
171+ new_group = 0;
172
173 /* make sure everything is kosher and setup uid && gid */
174 passwd = wfopen(filename, "a");
175@@ -194,29 +205,36 @@
176 }
177 #endif
178
179- /* add to group */
180- /* addgroup should be responsible for dealing w/ gshadow */
181- addgroup_wrapper(p->pw_name, p->pw_gid);
182+ if (new_group) {
183+ /* add to group */
184+ /* addgroup should be responsible for dealing w/ gshadow */
185+ addgroup_wrapper(p->pw_name, p->pw_gid);
186+ }
187
188 /* Clear the umask for this process so it doesn't
189 * * screw up the permissions on the mkdir and chown. */
190 umask(0);
191
192- /* mkdir */
193- if (mkdir(p->pw_dir, 0755)) {
194- perror_msg("%s", p->pw_dir);
195- }
196- /* Set the owner and group so it is owned by the new user. */
197- if (chown(p->pw_dir, p->pw_uid, p->pw_gid)) {
198- perror_msg("%s", p->pw_dir);
199- }
200- /* Now fix up the permissions to 2755. Can't do it before now
201- * since chown will clear the setgid bit */
202- if (chmod(p->pw_dir, 02755)) {
203- perror_msg("%s", p->pw_dir);
204+ if (makehome) {
205+ /* mkdir */
206+ if (mkdir(p->pw_dir, 0755)) {
207+ perror_msg("%s", p->pw_dir);
208+ }
209+ /* Set the owner and group so it is owned by the new user. */
210+ if (chown(p->pw_dir, p->pw_uid, p->pw_gid)) {
211+ perror_msg("%s", p->pw_dir);
212+ }
213+ /* Now fix up the permissions to 2755. Can't do it before now
214+ * since chown will clear the setgid bit */
215+ if (chmod(p->pw_dir, 02755)) {
216+ perror_msg("%s", p->pw_dir);
217+ }
218+ }
219+
220+ if (setpass) {
221+ /* interactively set passwd */
222+ passwd_wrapper(p->pw_name);
223 }
224- /* interactively set passwd */
225- passwd_wrapper(p->pw_name);
226
227 return 0;
228 }
229@@ -228,6 +246,15 @@
230 return geteuid();
231 }
232
233+struct option long_options[] = {
234+ { "home", 1, NULL, 'h' },
235+ { "disabled-password", 0, NULL, 'D' },
236+ { "system", 0, NULL, 'S' },
237+ { "ingroup", 1, NULL, 'G' },
238+ { "no-create-home", 0, NULL, 'H' },
239+ { 0, 0, 0, 0 }
240+};
241+
242 /*
243 * adduser will take a login_name as its first parameter.
244 *
245@@ -244,6 +271,11 @@
246 const char *gecos;
247 const char *home = NULL;
248 const char *shell;
249+ const char *usegroup = NULL;
250+ int option_index = -1;
251+ int setpass = 1;
252+ int makehome = 1;
253+ int system = 0;
254
255 struct passwd pw;
256
257@@ -255,7 +287,7 @@
258 shell = default_shell;
259
260 /* get args */
261- while ((opt = getopt (argc, argv, "h:g:s:")) != -1) {
262+ while ((opt = getopt_long (argc, argv, "h:g:s:G:DSH", long_options, &option_index)) != -1) {
263 switch (opt) {
264 case 'h':
265 home = optarg;
266@@ -266,6 +298,18 @@
267 case 's':
268 shell = optarg;
269 break;
270+ case 'H':
271+ makehome = 0;
272+ break;
273+ case 'D':
274+ setpass = 0;
275+ break;
276+ case 'S':
277+ system = 1;
278+ break;
279+ case 'G':
280+ usegroup = optarg;
281+ break;
282 default:
283 show_usage ();
284 break;
285@@ -301,8 +345,19 @@
286 pw.pw_dir = (char *)home;
287 pw.pw_shell = (char *)shell;
288
289+ if (usegroup) {
290+ /* Add user to a group that already exists */
291+ struct group *g;
292+
293+ g = getgrnam(usegroup);
294+ if (g == NULL)
295+ error_msg_and_die("group %s does not exist", usegroup);
296+
297+ pw.pw_gid = g->gr_gid;
298+ }
299+
300 /* grand finale */
301- return adduser(PASSWD_FILE, &pw);
302+ return adduser(PASSWD_FILE, &pw, makehome, setpass);
303 }
304
305-/* $Id: adduser.c,v 1.37 2002/12/12 08:46:03 andersen Exp $ */
306+/* $Id: adduser.c,v 1.38 2003/06/21 19:35:42 andersen Exp $ */
307Index: install.sh
308===================================================================
309RCS file: /var/cvs/tinylogin/install.sh,v
310retrieving revision 1.10
311retrieving revision 1.11
312diff -u -r1.10 -r1.11
313--- a/install.sh 23 Jun 2002 03:09:07 -0000 1.10
314+++ b/install.sh 6 Mar 2003 19:29:17 -0000 1.11
315@@ -21,11 +21,11 @@
316 h=`sort tinylogin.links | uniq`
317
318
319-mkdir -p $prefix/bin || exit 1
320+install -d -m 0755 $prefix/bin || exit 1
321
322 for i in $h ; do
323 appdir=`dirname $i`
324- mkdir -p $prefix/$appdir || exit 1
325+ install -d -m 0755 $prefix/$appdir || exit 1
326 if [ "$2" = "--hardlinks" ]; then
327 bb_path="$prefix/bin/tinylogin"
328 else
329Index: passwd.c
330===================================================================
331RCS file: /var/cvs/tinylogin/passwd.c,v
332retrieving revision 1.19
333retrieving revision 1.20
334diff -u -r1.19 -r1.20
335--- a/passwd.c 7 Nov 2002 02:34:15 -0000 1.19
336+++ b/passwd.c 17 Feb 2003 11:51:55 -0000 1.20
337@@ -25,10 +25,6 @@
338 {
339 int x = 0; /* standart: DES */
340
341-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
342- if (strcasecmp(a, "sha1") == 0)
343- x = 2;
344-#endif
345 if (strcasecmp(a, "md5") == 0)
346 x = 1;
347 return x;
348@@ -394,11 +390,6 @@
349 bzero(cp, strlen(cp));
350 bzero(orig, sizeof(orig));
351
352-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
353- if (algo == 2) {
354- cp = pw_encrypt(pass, "$2$");
355- } else
356-#endif
357 if (algo == 1) {
358 cp = pw_encrypt(pass, "$1$");
359 } else
360Index: sha1.c
361===================================================================
362RCS file: sha1.c
363diff -N sha1.c
364--- a/sha1.c 20 Dec 2000 21:54:28 -0000 1.2
365+++ /dev/null 1 Jan 1970 00:00:00 -0000
366@@ -1,187 +0,0 @@
367-/* vi: set sw=4 ts=4: */
368-/*
369- Implements the Secure Hash Algorithm (SHA1)
370-
371- Copyright (C) 1999 Scott G. Miller
372-
373- Released under the terms of the GNU General Public License v2
374- see file COPYING for details
375-
376- Credits:
377- Robert Klep <robert@ilse.nl> -- Expansion function fix
378- ---
379- FIXME: This source takes int to be a 32 bit integer. This
380- may vary from system to system. I'd use autoconf if I was familiar
381- with it. Anyone want to help me out?
382-*/
383-
384-void sha_hash(int *, int *);
385-void sha_init(int *);
386-char *sprint_hash(int *);
387-void do_sha_hash(int *, int *);
388-
389-/*
390- added 3 functions for sha passowrd stuff (mainly inspired from stuff seen in main.c from shasum-1.3 package)
391-*/
392-#include <stdio.h>
393-#include <string.h>
394-#include <stdlib.h>
395-
396-#include <endian.h>
397-/* On big endian machines, we need to reverse the input to process
398- the blocks correctly */
399-
400-#define switch_endianness(x) (x<<24 & 0xff000000) | \
401- (x<<8 & 0x00ff0000) | \
402- (x>>8 & 0x0000ff00) | \
403- (x>>24 & 0x000000ff)
404-
405-/* Initial hash values */
406-#define Ai 0x67452301
407-#define Bi 0xefcdab89
408-#define Ci 0x98badcfe
409-#define Di 0x10325476
410-#define Ei 0xc3d2e1f0
411-
412-/* SHA1 round constants */
413-#define K1 0x5a827999
414-#define K2 0x6ed9eba1
415-#define K3 0x8f1bbcdc
416-#define K4 0xca62c1d6
417-
418-/* Round functions. Note that f2() is used in both rounds 2 and 4 */
419-#define f1(B,C,D) ((B & C) | ((~B) & D))
420-#define f2(B,C,D) (B ^ C ^ D)
421-#define f3(B,C,D) ((B & C) | (B & D) | (C & D))
422-
423-/* left circular shift functions (rotate left) */
424-#define rol1(x) ((x<<1) | ((x>>31) & 1))
425-#define rol5(A) ((A<<5) | ((A>>27) & 0x1f))
426-#define rol30(B) ((B<<30) | ((B>>2) & 0x3fffffff))
427-
428-/*
429- Hashes 'data', which should be a pointer to 512 bits of data (sixteen
430- 32 bit ints), into the ongoing 160 bit hash value (five 32 bit ints)
431- 'hash'
432-*/
433-void sha_hash(int *data, int *hash)
434-{
435- int W[80];
436- unsigned int A = hash[0], B = hash[1], C = hash[2], D = hash[3], E =
437- hash[4];
438- unsigned int t, x, TEMP;
439-
440- for (t = 0; t < 16; t++) {
441-#ifdef BIG_ENDIAN
442- W[t] = switch_endianness(data[t]);
443-#else
444- W[t] = data[t];
445-#endif
446- }
447-
448-
449- /* SHA1 Data expansion */
450- for (t = 16; t < 80; t++) {
451- x = W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16];
452- W[t] = rol1(x);
453- }
454-
455- /* SHA1 main loop (t=0 to 79)
456- This is broken down into four subloops in order to use
457- the correct round function and constant */
458- for (t = 0; t < 20; t++) {
459- TEMP = rol5(A) + f1(B, C, D) + E + W[t] + K1;
460- E = D;
461- D = C;
462- C = rol30(B);
463- B = A;
464- A = TEMP;
465- }
466- for (; t < 40; t++) {
467- TEMP = rol5(A) + f2(B, C, D) + E + W[t] + K2;
468- E = D;
469- D = C;
470- C = rol30(B);
471- B = A;
472- A = TEMP;
473- }
474- for (; t < 60; t++) {
475- TEMP = rol5(A) + f3(B, C, D) + E + W[t] + K3;
476- E = D;
477- D = C;
478- C = rol30(B);
479- B = A;
480- A = TEMP;
481- }
482- for (; t < 80; t++) {
483- TEMP = rol5(A) + f2(B, C, D) + E + W[t] + K4;
484- E = D;
485- D = C;
486- C = rol30(B);
487- B = A;
488- A = TEMP;
489- }
490- hash[0] += A;
491- hash[1] += B;
492- hash[2] += C;
493- hash[3] += D;
494- hash[4] += E;
495-}
496-
497-/*
498- Takes a pointer to a 160 bit block of data (five 32 bit ints) and
499- intializes it to the start constants of the SHA1 algorithm. This
500- must be called before using hash in the call to sha_hash
501-*/
502-void sha_init(int *hash)
503-{
504- hash[0] = Ai;
505- hash[1] = Bi;
506- hash[2] = Ci;
507- hash[3] = Di;
508- hash[4] = Ei;
509-}
510-
511-
512-/*
513- * write the hash to a string
514- */
515-char *sprint_sha1_hash(int *hashval)
516-{
517- int x = 0;
518- char *out = NULL;
519-
520- if ((out = malloc(43)) == NULL)
521- return NULL;
522- memset(out, 0x00, 43);
523- strcpy(out, "$2$");
524- for (x = 0; x < 5; x++) {
525- sprintf(out + (x * 8) + 3, "%08x", hashval[x]);
526- }
527- out[43] = 0;
528- return out;
529-}
530-
531-
532-/*
533- * hash the password
534- */
535-void do_sha_hash(int *hashval, int *pw)
536-{
537- sha_init(hashval);
538- sha_hash(pw, hashval);
539-}
540-
541-
542-/*
543- * hash a charakter string and return the 160bit integer in hex as a character string
544- */
545-char *sha1_crypt(const char *pw)
546-{
547- int hashval[20];
548-
549- memset(hashval, 0x00, sizeof(hashval));
550- do_sha_hash(hashval, (int *) ((char *) pw + 3));
551-
552- return sprint_sha1_hash(hashval);
553-}
554Index: vlock.c
555===================================================================
556RCS file: /var/cvs/tinylogin/vlock.c,v
557retrieving revision 1.13
558retrieving revision 1.14
559diff -u -r1.13 -r1.14
560--- a/vlock.c 19 Sep 2002 03:50:31 -0000 1.13
561+++ b/vlock.c 17 Feb 2003 11:51:56 -0000 1.14
562@@ -26,7 +26,7 @@
563 * minimalistic vlock.
564 */
565 /* Fixed by Erik Andersen to do passwords the tinylogin way...
566- * It now works with md5, sha1, etc passwords. */
567+ * It now works with md5, etc passwords. */
568
569 #include "tinylogin.h"
570 #include <stdio.h>
571Index: docs/tinylogin.busybox.net/index.html
572===================================================================
573RCS file: /var/cvs/tinylogin/docs/tinylogin.busybox.net/index.html,v
574retrieving revision 1.23
575retrieving revision 1.25
576diff -u -r1.23 -r1.25
577--- a/docs/tinylogin.busybox.net/index.html 3 Jan 2003 10:56:32 -0000 1.23
578+++ b/docs/tinylogin.busybox.net/index.html 3 Jan 2003 11:21:53 -0000 1.25
579@@ -56,6 +56,9 @@
580 Erik Andersen</a>, and licensed under the
581 <a href="http://www.gnu.org/copyleft/gpl.html">GNU GENERAL PUBLIC LICENSE</a>.
582
583+<h3>Mailing List Information</h3>
584+Here are the Tinylogin <a href="/lists/tinylogin/">mailing list archives</a><br>
585+To subscribe, go and visit <a href= "/mailman/listinfo/tinylogin">this page</a>.
586
587 <!-- Begin Download section -->
588
589@@ -222,19 +225,19 @@
590 <ul>
591 <li> <A HREF="http://freshmeat.net/projects/tinylogin/?highlight=tinylogin">
592 Freshmeat AppIndex record for TinyLogin</A>
593+ <p>
594
595 <li><a href="http://www.busybox.net/">BusyBox</a>
596 combines tiny versions of many common UNIX utilities into a single small
597 executable. It provides minimalist replacements for most of the utilities
598 you usually find on a standard Linux system.
599-
600 <p>
601+
602 <li><a href="http://uclibc.org/uClibc.html">uClibc</a>
603 is a C library for embedded systems. You can actually statically link
604 a "Hello World" application under x86 that only takes 4k (as opposed to
605 200k under GNU libc). It can do dynamic linking too and works nicely with
606 BusyBox to create very small embedded systems.
607-
608 <p>
609
610 </ul>
611Index: include/libbb.h
612===================================================================
613RCS file: /var/cvs/tinylogin/include/libbb.h,v
614retrieving revision 1.1
615retrieving revision 1.2
616diff -u -r1.1 -r1.2
617--- a/include/libbb.h 23 Jun 2002 03:09:10 -0000 1.1
618+++ b/include/libbb.h 17 Feb 2003 11:51:57 -0000 1.2
619@@ -39,9 +39,6 @@
620 #ifdef CONFIG_FEATURE_SHADOWPASSWDS
621 #include "shadow_.h"
622 #endif
623-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
624-# include "sha1.h"
625-#endif
626
627 #if (__GNU_LIBRARY__ < 5) && (!defined __dietlibc__)
628 /* libc5 doesn't define socklen_t */
629Index: include/sha1.h
630===================================================================
631RCS file: include/sha1.h
632diff -N include/sha1.h
633--- a/include/sha1.h 23 Jun 2002 03:09:10 -0000 1.1
634+++ /dev/null 1 Jan 1970 00:00:00 -0000
635@@ -1,3 +0,0 @@
636-/* SHA1.H - header file for SHA1.C */
637-
638-char *sha1_crypt(const char *pw);
639Index: include/usage.h
640===================================================================
641RCS file: /var/cvs/tinylogin/include/usage.h,v
642retrieving revision 1.2
643retrieving revision 1.3
644diff -u -r1.2 -r1.3
645--- a/include/usage.h 3 Jul 2002 05:57:00 -0000 1.2
646+++ b/include/usage.h 17 Feb 2003 11:51:57 -0000 1.3
647@@ -33,11 +33,6 @@
648 "\t-h\tName of the remote host for this login.\n" \
649 "\t-p\tPreserve environment."
650
651-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
652- #define PASSWORD_ALG_TYPES(a) a
653-#else
654- #define PASSWORD_ALG_TYPES(a)
655-#endif
656 #define passwd_trivial_usage \
657 "[OPTION] [name]"
658 #define passwd_full_usage \
659@@ -46,7 +41,6 @@
660 "Options:\n" \
661 "\t-a\tDefine which algorithm shall be used for the password.\n" \
662 "\t\t\t(Choices: des, md5" \
663- PASSWORD_ALG_TYPES(", sha1") \
664 ")\n\t-d\tDelete the password for the specified user account.\n" \
665 "\t-l\tLocks (disables) the specified user account.\n" \
666 "\t-u\tUnlocks (re-enables) the specified user account."
667Index: libbb/obscure.c
668===================================================================
669RCS file: /var/cvs/tinylogin/libbb/obscure.c,v
670retrieving revision 1.2
671retrieving revision 1.3
672diff -u -r1.2 -r1.3
673--- a/libbb/obscure.c 23 Jun 2002 04:05:59 -0000 1.2
674+++ b/libbb/obscure.c 30 Jul 2003 08:41:33 -0000 1.3
675@@ -44,7 +44,7 @@
676 * can't be a palindrome - like `R A D A R' or `M A D A M'
677 */
678
679-static int palindrome(const char *old, const char *newval)
680+static int palindrome(const char *newval)
681 {
682 int i, j;
683
684@@ -79,24 +79,25 @@
685 * a nice mix of characters.
686 */
687
688-static int simple(const char *old, const char *newval)
689+static int simple(const char *newval)
690 {
691 int digits = 0;
692 int uppers = 0;
693 int lowers = 0;
694 int others = 0;
695+ int c;
696 int size;
697 int i;
698
699- for (i = 0; newval[i]; i++) {
700- if (isdigit(newval[i]))
701- digits++;
702- else if (isupper(newval[i]))
703- uppers++;
704- else if (islower(newval[i]))
705- lowers++;
706+ for (i = 0; (c = *newval++) != 0; i++) {
707+ if (isdigit(c))
708+ digits = c;
709+ else if (isupper(c))
710+ uppers = c;
711+ else if (islower(c))
712+ lowers = c;
713 else
714- others++;
715+ others = c;
716 }
717
718 /*
719@@ -129,49 +130,53 @@
720 return string;
721 }
722
723-static char *password_check(const char *old, const char *newval, const struct passwd *pwdp)
724+static const char *
725+password_check(const char *old, const char *newval, const struct passwd *pwdp)
726 {
727- char *msg = NULL;
728- char *oldmono, *newmono, *wrapped;
729+ const char *msg;
730+ char *newmono, *wrapped;
731+ int lenwrap;
732
733 if (strcmp(newval, old) == 0)
734 return "no change";
735+ if (simple(newval))
736+ return "too simple";
737
738+ msg = NULL;
739 newmono = str_lower(xstrdup(newval));
740- oldmono = str_lower(xstrdup(old));
741- wrapped = (char *) xmalloc(strlen(oldmono) * 2 + 1);
742- strcpy(wrapped, oldmono);
743- strcat(wrapped, oldmono);
744+ lenwrap = strlen(old) * 2 + 1;
745+ wrapped = (char *) xmalloc(lenwrap);
746+ str_lower(strcpy(wrapped, old));
747
748- if (palindrome(oldmono, newmono))
749+ if (palindrome(newmono))
750 msg = "a palindrome";
751
752- if (!msg && strcmp(oldmono, newmono) == 0)
753+ else if (strcmp(wrapped, newmono) == 0)
754 msg = "case changes only";
755
756- if (!msg && similiar(oldmono, newmono))
757+ else if (similiar(wrapped, newmono))
758 msg = "too similiar";
759
760- if (!msg && simple(old, newval))
761- msg = "too simple";
762-
763- if (!msg && strstr(wrapped, newmono))
764- msg = "rotated";
765+ else {
766+ safe_strncpy(wrapped + lenwrap, wrapped, lenwrap + 1);
767+ if (strstr(wrapped, newmono))
768+ msg = "rotated";
769+ }
770
771 bzero(newmono, strlen(newmono));
772- bzero(oldmono, strlen(oldmono));
773- bzero(wrapped, strlen(wrapped));
774+ bzero(wrapped, lenwrap);
775 free(newmono);
776- free(oldmono);
777 free(wrapped);
778
779 return msg;
780 }
781
782-static char *obscure_msg(const char *old, const char *newval, const struct passwd *pwdp)
783+static const char *
784+obscure_msg(const char *old, const char *newval, const struct passwd *pwdp)
785 {
786 int maxlen, oldlen, newlen;
787- char *new1, *old1, *msg;
788+ char *new1, *old1;
789+ const char *msg;
790
791 oldlen = strlen(old);
792 newlen = strlen(newval);
793@@ -233,7 +238,7 @@
794
795 extern int obscure(const char *old, const char *newval, const struct passwd *pwdp)
796 {
797- char *msg = obscure_msg(old, newval, pwdp);
798+ const char *msg = obscure_msg(old, newval, pwdp);
799
800 /* if (msg) { */
801 if (msg != NULL) {
802Index: libbb/pw_encrypt.c
803===================================================================
804RCS file: /var/cvs/tinylogin/libbb/pw_encrypt.c,v
805retrieving revision 1.1
806retrieving revision 1.2
807diff -u -r1.1 -r1.2
808--- a/libbb/pw_encrypt.c 23 Jun 2002 03:09:12 -0000 1.1
809+++ b/libbb/pw_encrypt.c 17 Feb 2003 11:51:58 -0000 1.2
810@@ -30,11 +30,6 @@
811 static char cipher[128];
812 char *cp;
813
814-#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
815- if (strncmp(salt, "$2$", 3) == 0) {
816- return sha1_crypt(clear);
817- }
818-#endif
819 cp = (char *) crypt(clear, salt);
820 /* if crypt (a nonstandard crypt) returns a string too large,
821 truncate it so we don't overrun buffers and hope there is
diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/remove-index.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/remove-index.patch
new file mode 100644
index 0000000000..fc35002bad
--- /dev/null
+++ b/meta/recipes-core/tinylogin/tinylogin-1.4/remove-index.patch
@@ -0,0 +1,11 @@
1--- /tmp/deluser.c 2007-05-13 10:38:19.000000000 +0200
2+++ tinylogin-1.4/deluser.c 2007-05-13 10:38:50.185251000 +0200
3@@ -60,7 +60,7 @@
4 }
5 start++;
6
7- stop = index(start, '\n'); /* index is a BSD-ism */
8+ stop = strchr(start, '\n'); /* index is a BSD-ism, strchr hopefully isn't */
9 b.start = start - buffer;
10 b.stop = stop - buffer;
11 return b;
diff --git a/meta/recipes-core/tinylogin/tinylogin_1.4.bb b/meta/recipes-core/tinylogin/tinylogin_1.4.bb
new file mode 100644
index 0000000000..ad254bff6a
--- /dev/null
+++ b/meta/recipes-core/tinylogin/tinylogin_1.4.bb
@@ -0,0 +1,29 @@
1SECTION = "base"
2DESCRIPTION = "TinyLogin is a suite of tiny UNIX \
3utilities for handling logins, user authentication, \
4changing passwords, and otherwise maintaining users \
5and groups on an embedded system."
6HOMEPAGE = "http://tinylogin.busybox.net/"
7LICENSE = "GPL"
8PR = "r4"
9
10SRC_URI = "http://tinylogin.busybox.net/downloads/tinylogin-${PV}.tar.bz2 \
11 file://cvs-20040608.patch;patch=1;pnum=1 \
12 file://add-system.patch;patch=1;pnum=1 \
13 file://adduser-empty_pwd.patch;patch=1 \
14 file://remove-index.patch;patch=1"
15
16EXTRA_OEMAKE = ""
17
18do_compile () {
19 oe_runmake 'CC=${CC}' 'CROSS=${HOST_PREFIX}'
20}
21
22do_install () {
23 install -d ${D}${base_bindir}
24 install -m 4755 tinylogin ${D}${base_bindir}/tinylogin
25 for i in `cat tinylogin.links`; do
26 mkdir -p ${D}/`dirname $i`
27 ln -sf /bin/tinylogin ${D}$i
28 done
29}
diff --git a/meta/recipes-core/uclibc/files/armeb-kernel-stat.h.patch b/meta/recipes-core/uclibc/files/armeb-kernel-stat.h.patch
new file mode 100644
index 0000000000..0440718eec
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/armeb-kernel-stat.h.patch
@@ -0,0 +1,125 @@
1# The 2.6 asm/stat.h for ARM has some rather unusual transmogrifications
2# for big-endian running. This patch adds ARM specific code in xstatconv.c
3# which deals with the 2.4->2.6 ABI change.
4--- uClibc-0.9.27/libc/sysdeps/linux/common/xstatconv.c 2005-01-11 23:59:21.000000000 -0800
5+++ uClibc-0.9.27/libc/sysdeps/linux/common/xstatconv.c 2005-06-05 11:03:56.742587966 -0700
6@@ -18,7 +18,14 @@
7 02111-1307 USA.
8
9 Modified for uClibc by Erik Andersen <andersen@codepoet.org>
10+ Further modified for ARMBE by John Bowler <jbowler@acm.org>
11 */
12+/* This is a copy of common/xstatconv.c with a fixup for the ABI
13+ * (structure layout) change in ARM Linux 2.6 - this shifts the
14+ * st_dev and st_rdev information from the start of the 8 byte
15+ * space to the end on big-endian ARM (only). The code is unchanged
16+ * on little endian.
17+ */
18
19 #define _GNU_SOURCE
20 #define _LARGEFILE64_SOURCE
21@@ -32,6 +39,84 @@
22 #include <sys/stat.h>
23 #include "xstatconv.h"
24
25+/* Only for ARMEB and LFS. */
26+#if defined(__ARMEB__) && defined(__UCLIBC_HAS_LFS__)
27+/* stat64 (renamed) from 2.6.11.11. What happened here is that after
28+ * Linux 2.4 the 2.4 unsigned short st_rdev and st_dev fields were
29+ * lengthened to unsigned long long - causing the inclusion of at least
30+ * some of the 0 padding bytes which followed them. On little endian
31+ * this is fine because 2.4 did zero the pad bytes (I think) and the
32+ * position of the data did not change. On big endian the change
33+ * shifted the data to the end of the field. Someone noticed for the
34+ * struct stat, and the armeb (big endian) case preserved the
35+ * unsigned short (yuck), but no so for stat64 (maybe this was deliberate,
36+ * but there is no evidence in the code of this.) Consequently a
37+ * fixup is necessary for the stat64 case. The fixup here is to
38+ * use the new structure when the change is detected. See below.
39+ */
40+struct __kernel_stat64_armeb {
41+ /* This definition changes the layout on big-endian from that
42+ * used in 2.4.31 - ABI change! Likewise for st_rdev.
43+ */
44+ unsigned long long st_dev;
45+ unsigned char __pad0[4];
46+ unsigned long __st_ino;
47+ unsigned int st_mode;
48+ unsigned int st_nlink;
49+ unsigned long st_uid;
50+ unsigned long st_gid;
51+ unsigned long long st_rdev;
52+ unsigned char __pad3[4];
53+ long long st_size;
54+ unsigned long st_blksize;
55+ unsigned long __pad4;
56+ unsigned long st_blocks;
57+ unsigned long st_atime;
58+ unsigned long st_atime_nsec;
59+ unsigned long st_mtime;
60+ unsigned long st_mtime_nsec;
61+ unsigned long st_ctime;
62+ unsigned long st_ctime_nsec;
63+ unsigned long long st_ino;
64+};
65+
66+/* This fixup only works so long as the old struct stat64 is no
67+ * smaller than the new one - the caller of xstatconv uses the
68+ * *old* struct, but the kernel writes the new one. CASSERT
69+ * detects this at compile time.
70+ */
71+#define CASSERT(c) do switch (0) { case 0:; case (c):; } while (0)
72+
73+void __xstat64_conv_new(struct __kernel_stat64_armeb *kbuf, struct stat64 *buf)
74+{
75+ CASSERT(sizeof *kbuf <= sizeof (struct kernel_stat64));
76+
77+ /* Convert from new kernel version of `struct stat64'. */
78+ buf->st_dev = kbuf->st_dev;
79+ buf->st_ino = kbuf->st_ino;
80+#ifdef _HAVE_STAT64___ST_INO
81+ buf->__st_ino = kbuf->__st_ino;
82+#endif
83+ buf->st_mode = kbuf->st_mode;
84+ buf->st_nlink = kbuf->st_nlink;
85+ buf->st_uid = kbuf->st_uid;
86+ buf->st_gid = kbuf->st_gid;
87+ buf->st_rdev = kbuf->st_rdev;
88+ buf->st_size = kbuf->st_size;
89+ buf->st_blksize = kbuf->st_blksize;
90+ buf->st_blocks = kbuf->st_blocks;
91+ buf->st_atime = kbuf->st_atime;
92+ buf->st_mtime = kbuf->st_mtime;
93+ buf->st_ctime = kbuf->st_ctime;
94+}
95+#define _MAY_HAVE_NEW_STAT64 1
96+#else
97+#define _MAY_HAVE_NEW_STAT64 0
98+#endif
99+
100+/* The following is taken verbatim from xstatconv.c apart from
101+ * the addition of the _MAY_HAVE_NEW_STAT64 code.
102+ */
103 void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf)
104 {
105 /* Convert to current kernel version of `struct stat'. */
106@@ -53,6 +138,19 @@
107 #if defined __UCLIBC_HAS_LFS__
108 void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
109 {
110+# if _MAY_HAVE_NEW_STAT64
111+ /* This relies on any device (0,0) not being mountable - i.e.
112+ * it fails on Linux 2.4 if dev(0,0) is a mountable block file
113+ * system and itself contains it's own device. That doesn't
114+ * happen on Linux 2.4 so far as I can see, but even if it
115+ * does the API only fails (even then) if 2.4 didn't set all
116+ * of the pad bytes to 0 (and it does set them to zero.)
117+ */
118+ if (kbuf->st_dev == 0 && kbuf->st_rdev == 0) {
119+ __xstat64_conv_new((struct __kernel_stat64_armeb*)kbuf, buf);
120+ return;
121+ }
122+# endif
123 /* Convert to current kernel version of `struct stat64'. */
124 buf->st_dev = kbuf->st_dev;
125 buf->st_ino = kbuf->st_ino;
diff --git a/meta/recipes-core/uclibc/files/errno_values.h.patch b/meta/recipes-core/uclibc/files/errno_values.h.patch
new file mode 100644
index 0000000000..a1e39c181b
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/errno_values.h.patch
@@ -0,0 +1,21 @@
1Index: uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h
2===================================================================
3--- uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h 2002-08-23 20:48:19.000000000 +0200
4+++ uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h 2007-07-01 22:11:53.000000000 +0200
5@@ -134,4 +134,16 @@
6 #define ENOMEDIUM 123 /* No medium found */
7 #define EMEDIUMTYPE 124 /* Wrong medium type */
8
9+/* the following errornumbers are only in 2.6 */
10+
11+#define ECANCELED 125 /* Operation Canceled */
12+#define ENOKEY 126 /* Required key not available */
13+#define EKEYEXPIRED 127 /* Key has expired */
14+#define EKEYREVOKED 128 /* Key has been revoked */
15+#define EKEYREJECTED 129 /* Key was rejected by service */
16+
17+/* for robust mutexes */
18+#define EOWNERDEAD 130 /* Owner died */
19+#define ENOTRECOVERABLE 131 /* State not recoverable */
20+
21 #endif /* _BITS_ERRNO_VALUES_H */
diff --git a/meta/recipes-core/uclibc/files/kernel-key-t-ipc.h.patch b/meta/recipes-core/uclibc/files/kernel-key-t-ipc.h.patch
new file mode 100644
index 0000000000..4cc4530470
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/kernel-key-t-ipc.h.patch
@@ -0,0 +1,27 @@
1# include/linux/posix_types.h defines __kernel_key_t as int, this file
2# contains an identical definition. This results in a compiler error
3# if both files are included. The ipc.h file, however, also includes
4# bits/types.h, which typedefs __key_t to (int), therefore it must
5# be safe to use __key_t in place of __kernel_key_t (given that C
6# regards equivalent numeric typedefs as identical.)
7--- uClibc-0.9.27/libc/sysdeps/linux/common/bits/ipc.h.orig 2005-05-07 13:36:04.448332211 -0700
8+++ uClibc-0.9.27/libc/sysdeps/linux/common/bits/ipc.h 2005-05-07 13:37:00.493885708 -0700
9@@ -35,9 +35,6 @@
10 # define IPC_INFO 3 /* See ipcs. */
11 #endif
12
13-/* Type of a SYSV IPC key. */
14-typedef int __kernel_key_t;
15-
16 /* Special key values. */
17 #define IPC_PRIVATE ((__key_t) 0) /* Private key. */
18
19@@ -45,7 +42,7 @@
20 /* Data structure used to pass permission information to IPC operations. */
21 struct ipc_perm
22 {
23- __kernel_key_t __key;
24+ __key_t __key;
25 __kernel_uid_t uid;
26 __kernel_gid_t gid;
27 __kernel_uid_t cuid;
diff --git a/meta/recipes-core/uclibc/files/nokernelheadercheck.patch b/meta/recipes-core/uclibc/files/nokernelheadercheck.patch
new file mode 100644
index 0000000000..9f09fb2ac9
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/nokernelheadercheck.patch
@@ -0,0 +1,24 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- uClibc/Makefile~nokernelheadercheck
7+++ uClibc/Makefile
8@@ -121,11 +121,11 @@
9 @./extra/config/conf -o extra/Configs/Config.in
10
11 headers: include/bits/uClibc_config.h
12-ifeq ($(strip $(ARCH_HAS_MMU)),y)
13- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH)
14-else
15- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n
16-endif
17+#ifeq ($(strip $(ARCH_HAS_MMU)),y)
18+# @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH)
19+#else
20+# @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n
21+#endif
22 @cd include/bits; \
23 set -e; \
24 for i in `ls ../../libc/sysdeps/linux/common/bits/*.h` ; do \
diff --git a/meta/recipes-core/uclibc/files/termios.h.patch b/meta/recipes-core/uclibc/files/termios.h.patch
new file mode 100644
index 0000000000..f7200ba393
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/termios.h.patch
@@ -0,0 +1,22 @@
1Index: uClibc-0.9.29/libc/sysdeps/linux/common/bits/termios.h
2===================================================================
3--- uClibc-0.9.29.orig/libc/sysdeps/linux/common/bits/termios.h 2006-02-13 09:41:37.000000000 +0100
4+++ uClibc-0.9.29/libc/sysdeps/linux/common/bits/termios.h 2007-07-03 00:41:27.000000000 +0200
5@@ -156,7 +156,6 @@
6 #endif
7 #define B57600 0010001
8 #define B115200 0010002
9-#if 0 /* limited on uClibc, keep in sync w/ cfsetspeed.c */
10 #define B230400 0010003
11 #define B460800 0010004
12 #define B500000 0010005
13@@ -171,9 +170,6 @@
14 #define B3500000 0010016
15 #define B4000000 0010017
16 #define __MAX_BAUD B4000000
17-#else
18-#define __MAX_BAUD B115200
19-#endif
20 #ifdef __USE_MISC
21 # define CIBAUD 002003600000 /* input baud rate (not used) */
22 # define CMSPAR 010000000000 /* mark or space (stick) parity */
diff --git a/meta/recipes-core/uclibc/files/uClibc.distro b/meta/recipes-core/uclibc/files/uClibc.distro
new file mode 100644
index 0000000000..d87b891b41
--- /dev/null
+++ b/meta/recipes-core/uclibc/files/uClibc.distro
@@ -0,0 +1,3 @@
1# Default per-distro config
2# DO NOT CHANGE THIS
3# Create a new file ${DISTRO}/uClibc.distro
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch
new file mode 100644
index 0000000000..a9c7a4fb10
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch
@@ -0,0 +1,393 @@
1From c190f738e1b0e87658ea5f86c057fb147dc19428 Mon Sep 17 00:00:00 2001
2From: Carmelo Amoroso <carmelo.amoroso@st.com>
3Date: Thu, 5 Mar 2009 13:28:55 +0000
4Subject: [PATCH] Use __always_inline instead of __inline__
5
6---
7 ldso/ldso/arm/dl-sysdep.h | 8 ++++----
8 ldso/ldso/bfin/dl-sysdep.h | 2 +-
9 ldso/ldso/cris/dl-sysdep.h | 6 +++---
10 ldso/ldso/i386/dl-sysdep.h | 10 +++++-----
11 ldso/ldso/m68k/dl-sysdep.h | 6 +++---
12 ldso/ldso/mips/dl-sysdep.h | 8 ++++----
13 ldso/ldso/powerpc/dl-sysdep.h | 8 ++++----
14 ldso/ldso/sh/dl-sysdep.h | 8 ++++----
15 ldso/ldso/sh64/dl-sysdep.h | 6 +++---
16 ldso/ldso/sparc/dl-sysdep.h | 8 ++++----
17 ldso/ldso/xtensa/dl-sysdep.h | 6 +++---
18 11 files changed, 38 insertions(+), 38 deletions(-)
19
20diff --git a/ldso/ldso/arm/dl-sysdep.h b/ldso/ldso/arm/dl-sysdep.h
21index eea3b98..5191dd7 100644
22--- a/ldso/ldso/arm/dl-sysdep.h
23+++ b/ldso/ldso/arm/dl-sysdep.h
24@@ -15,7 +15,7 @@
25 GOT_BASE[1] = (unsigned long) MODULE; \
26 }
27
28-static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
29+static __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p)
30 {
31 unsigned long i,t,inc;
32 i=p; t=0;
33@@ -67,7 +67,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
34 first element of the GOT. We used to use the PIC register to do this
35 without a constant pool reference, but GCC 4.2 will use a pseudo-register
36 for the PIC base, so it may not be in r10. */
37-static __inline__ Elf32_Addr __attribute__ ((unused))
38+static __always_inline Elf32_Addr __attribute__ ((unused))
39 elf_machine_dynamic (void)
40 {
41 Elf32_Addr dynamic;
42@@ -99,7 +99,7 @@ elf_machine_dynamic (void)
43 }
44
45 /* Return the run-time load address of the shared object. */
46-static __inline__ Elf32_Addr __attribute__ ((unused))
47+static __always_inline Elf32_Addr __attribute__ ((unused))
48 elf_machine_load_address (void)
49 {
50 extern void __dl_start __asm__ ("_dl_start");
51@@ -123,7 +123,7 @@ elf_machine_load_address (void)
52 return pcrel_addr - got_addr;
53 }
54
55-static __inline__ void
56+static __always_inline void
57 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
58 Elf32_Word relative_count)
59 {
60diff --git a/ldso/ldso/bfin/dl-sysdep.h b/ldso/ldso/bfin/dl-sysdep.h
61index 3c88da4..f0c5129 100644
62--- a/ldso/ldso/bfin/dl-sysdep.h
63+++ b/ldso/ldso/bfin/dl-sysdep.h
64@@ -210,7 +210,7 @@ while (0)
65 #endif
66
67 #include <elf.h>
68-static __inline__ void
69+static __always_inline void
70 elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
71 Elf32_Word relative_count)
72 {
73diff --git a/ldso/ldso/cris/dl-sysdep.h b/ldso/ldso/cris/dl-sysdep.h
74index ffb763a..e454c10 100644
75--- a/ldso/ldso/cris/dl-sysdep.h
76+++ b/ldso/ldso/cris/dl-sysdep.h
77@@ -37,7 +37,7 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entr
78 || ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT) \
79 | (((type) == R_CRIS_COPY) * ELF_RTYPE_CLASS_COPY))
80
81-static __inline__ Elf32_Addr
82+static __always_inline Elf32_Addr
83 elf_machine_dynamic(void)
84 {
85 /* Don't just set this to an asm variable "r0" since that's not logical
86@@ -59,7 +59,7 @@ elf_machine_dynamic(void)
87 there's some other symbol we could use, that we don't *have* to force a
88 GOT entry for. */
89
90-static __inline__ Elf32_Addr
91+static __always_inline Elf32_Addr
92 elf_machine_load_address(void)
93 {
94 Elf32_Addr gotaddr_diff;
95@@ -93,7 +93,7 @@ elf_machine_load_address(void)
96 return gotaddr_diff;
97 }
98
99-static __inline__ void
100+static __always_inline void
101 elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
102 Elf32_Word relative_count)
103 {
104diff --git a/ldso/ldso/i386/dl-sysdep.h b/ldso/ldso/i386/dl-sysdep.h
105index 77fa372..6e84861 100644
106--- a/ldso/ldso/i386/dl-sysdep.h
107+++ b/ldso/ldso/i386/dl-sysdep.h
108@@ -37,8 +37,8 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_ent
109 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
110 first element of the GOT. This must be inlined in a function which
111 uses global data. */
112-static __inline__ Elf32_Addr elf_machine_dynamic (void) attribute_unused;
113-static __inline__ Elf32_Addr
114+static __always_inline Elf32_Addr elf_machine_dynamic (void) attribute_unused;
115+static __always_inline Elf32_Addr
116 elf_machine_dynamic (void)
117 {
118 register Elf32_Addr *got __asm__ ("%ebx");
119@@ -47,8 +47,8 @@ elf_machine_dynamic (void)
120
121
122 /* Return the run-time load address of the shared object. */
123-static __inline__ Elf32_Addr elf_machine_load_address (void) attribute_unused;
124-static __inline__ Elf32_Addr
125+static __always_inline Elf32_Addr elf_machine_load_address (void) attribute_unused;
126+static __always_inline Elf32_Addr
127 elf_machine_load_address (void)
128 {
129 /* It doesn't matter what variable this is, the reference never makes
130@@ -61,7 +61,7 @@ elf_machine_load_address (void)
131 return addr;
132 }
133
134-static __inline__ void
135+static __always_inline void
136 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
137 Elf32_Word relative_count)
138 {
139diff --git a/ldso/ldso/m68k/dl-sysdep.h b/ldso/ldso/m68k/dl-sysdep.h
140index 8e26e20..259cb84 100644
141--- a/ldso/ldso/m68k/dl-sysdep.h
142+++ b/ldso/ldso/m68k/dl-sysdep.h
143@@ -39,7 +39,7 @@ extern unsigned long _dl_linux_resolver (struct elf_resolve *, int);
144 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
145 first element of the GOT. This must be inlined in a function which
146 uses global data. */
147-static __inline__ Elf32_Addr
148+static __always_inline Elf32_Addr
149 elf_machine_dynamic (void)
150 {
151 register Elf32_Addr *got __asm__ ("%a5");
152@@ -48,7 +48,7 @@ elf_machine_dynamic (void)
153
154
155 /* Return the run-time load address of the shared object. */
156-static __inline__ Elf32_Addr
157+static __always_inline Elf32_Addr
158 elf_machine_load_address (void)
159 {
160 Elf32_Addr addr;
161@@ -58,7 +58,7 @@ elf_machine_load_address (void)
162 return addr;
163 }
164
165-static __inline__ void
166+static __always_inline void
167 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
168 Elf32_Word relative_count)
169 {
170diff --git a/ldso/ldso/mips/dl-sysdep.h b/ldso/ldso/mips/dl-sysdep.h
171index cf6b28b..30d84fb 100644
172--- a/ldso/ldso/mips/dl-sysdep.h
173+++ b/ldso/ldso/mips/dl-sysdep.h
174@@ -169,7 +169,7 @@ void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy)
175
176 #define OFFSET_GP_GOT 0x7ff0
177
178-static __inline__ ElfW(Addr) *
179+static __always_inline ElfW(Addr) *
180 elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
181 {
182 /* FIXME: the offset of gp from GOT may be system-dependent. */
183@@ -179,7 +179,7 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
184 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
185 first element of the GOT. This must be inlined in a function which
186 uses global data. We assume its $gp points to the primary GOT. */
187-static __inline__ ElfW(Addr)
188+static __always_inline ElfW(Addr)
189 elf_machine_dynamic (void)
190 {
191 register ElfW(Addr) gp __asm__ ("$28");
192@@ -198,7 +198,7 @@ elf_machine_dynamic (void)
193 #endif
194
195 /* Return the run-time load address of the shared object. */
196-static __inline__ ElfW(Addr)
197+static __always_inline ElfW(Addr)
198 elf_machine_load_address (void)
199 {
200 ElfW(Addr) addr;
201@@ -214,7 +214,7 @@ elf_machine_load_address (void)
202 return addr;
203 }
204
205-static __inline__ void
206+static __always_inline void
207 elf_machine_relative (ElfW(Addr) load_off, const ElfW(Addr) rel_addr,
208 ElfW(Word) relative_count)
209 {
210diff --git a/ldso/ldso/powerpc/dl-sysdep.h b/ldso/ldso/powerpc/dl-sysdep.h
211index fdbf564..f33214c 100644
212--- a/ldso/ldso/powerpc/dl-sysdep.h
213+++ b/ldso/ldso/powerpc/dl-sysdep.h
214@@ -85,7 +85,7 @@ void _dl_init_got(unsigned long *lpnt,struct elf_resolve *tpnt);
215 #define ELF_MACHINE_PLTREL_OVERLAP 1
216
217 /* Return the value of the GOT pointer. */
218-static __inline__ Elf32_Addr * __attribute__ ((const))
219+static __always_inline Elf32_Addr * __attribute__ ((const))
220 ppc_got (void)
221 {
222 Elf32_Addr *got;
223@@ -104,14 +104,14 @@ ppc_got (void)
224
225 /* Return the link-time address of _DYNAMIC, stored as
226 the first value in the GOT. */
227-static __inline__ Elf32_Addr __attribute__ ((const))
228+static __always_inline Elf32_Addr __attribute__ ((const))
229 elf_machine_dynamic (void)
230 {
231 return *ppc_got();
232 }
233
234 /* Return the run-time load address of the shared object. */
235-static __inline__ Elf32_Addr __attribute__ ((const))
236+static __always_inline Elf32_Addr __attribute__ ((const))
237 elf_machine_load_address (void)
238 {
239 Elf32_Addr *branchaddr;
240@@ -159,7 +159,7 @@ elf_machine_load_address (void)
241 return runtime_dynamic - elf_machine_dynamic ();
242 }
243
244-static __inline__ void
245+static __always_inline void
246 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
247 Elf32_Word relative_count)
248 {
249diff --git a/ldso/ldso/sh/dl-sysdep.h b/ldso/ldso/sh/dl-sysdep.h
250index daedda5..d4fc784 100644
251--- a/ldso/ldso/sh/dl-sysdep.h
252+++ b/ldso/ldso/sh/dl-sysdep.h
253@@ -25,7 +25,7 @@
254 struct elf_resolve;
255 extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
256
257-static __inline__ unsigned int
258+static __always_inline unsigned int
259 _dl_urem(unsigned int n, unsigned int base)
260 {
261 int res;
262@@ -95,7 +95,7 @@ _dl_urem(unsigned int n, unsigned int base)
263 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
264 first element of the GOT. This must be inlined in a function which
265 uses global data. */
266-static __inline__ Elf32_Addr __attribute__ ((unused))
267+static __always_inline Elf32_Addr __attribute__ ((unused))
268 elf_machine_dynamic (void)
269 {
270 register Elf32_Addr *got;
271@@ -104,7 +104,7 @@ elf_machine_dynamic (void)
272 }
273
274 /* Return the run-time load address of the shared object. */
275-static __inline__ Elf32_Addr __attribute__ ((unused))
276+static __always_inline Elf32_Addr __attribute__ ((unused))
277 elf_machine_load_address (void)
278 {
279 Elf32_Addr addr;
280@@ -146,7 +146,7 @@ elf_machine_load_address (void)
281 } \
282 }
283
284-static __inline__ void
285+static __always_inline void
286 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
287 Elf32_Word relative_count)
288 {
289diff --git a/ldso/ldso/sh64/dl-sysdep.h b/ldso/ldso/sh64/dl-sysdep.h
290index fc67b12..15d9b5e 100644
291--- a/ldso/ldso/sh64/dl-sysdep.h
292+++ b/ldso/ldso/sh64/dl-sysdep.h
293@@ -41,7 +41,7 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_ent
294 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
295 first element of the GOT. This must be inlined in a function which
296 uses global data. */
297-static __inline__ Elf32_Addr elf_machine_dynamic(void)
298+static __always_inline Elf32_Addr elf_machine_dynamic(void)
299 {
300 register Elf32_Addr *got;
301
302@@ -69,7 +69,7 @@ static __inline__ Elf32_Addr elf_machine_dynamic(void)
303 }
304
305 /* Return the run-time load address of the shared object. */
306-static __inline__ Elf32_Addr elf_machine_load_address(void)
307+static __always_inline Elf32_Addr elf_machine_load_address(void)
308 {
309 Elf32_Addr addr;
310
311@@ -122,7 +122,7 @@ static __inline__ Elf32_Addr elf_machine_load_address(void)
312 } \
313 }
314
315-static __inline__ void
316+static __always_inline void
317 elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
318 Elf32_Word relative_count)
319 {
320diff --git a/ldso/ldso/sparc/dl-sysdep.h b/ldso/ldso/sparc/dl-sysdep.h
321index 7936517..ebfa268 100644
322--- a/ldso/ldso/sparc/dl-sysdep.h
323+++ b/ldso/ldso/sparc/dl-sysdep.h
324@@ -52,7 +52,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
325
326 #ifndef COMPILE_ASM
327 /* Cheap modulo implementation, taken from arm/ld_sysdep.h. */
328-static __inline__ unsigned long
329+static __always_inline unsigned long
330 sparc_mod(unsigned long m, unsigned long p)
331 {
332 unsigned long i, t, inc;
333@@ -118,7 +118,7 @@ do { register Elf32_Addr pc __asm__("o7"); \
334 /* Return the link-time address of _DYNAMIC. Conveniently, this is the
335 first element of the GOT. This must be inlined in a function which
336 uses global data. */
337-static __inline__ Elf32_Addr
338+static __always_inline Elf32_Addr
339 elf_machine_dynamic (void)
340 {
341 register Elf32_Addr *got __asm__ ("%l7");
342@@ -129,7 +129,7 @@ elf_machine_dynamic (void)
343 }
344
345 /* Return the run-time load address of the shared object. */
346-static __inline__ Elf32_Addr
347+static __always_inline Elf32_Addr
348 elf_machine_load_address (void)
349 {
350 register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7");
351@@ -148,7 +148,7 @@ elf_machine_load_address (void)
352 return (Elf32_Addr) got - *got + (pc[2] - pc[3]) * 4 - 4;
353 }
354
355-static __inline__ void
356+static __always_inline void
357 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
358 Elf32_Word relative_count)
359 {
360diff --git a/ldso/ldso/xtensa/dl-sysdep.h b/ldso/ldso/xtensa/dl-sysdep.h
361index daae428..07b9b79 100644
362--- a/ldso/ldso/xtensa/dl-sysdep.h
363+++ b/ldso/ldso/xtensa/dl-sysdep.h
364@@ -85,7 +85,7 @@ extern unsigned long _dl_linux_resolver (struct elf_resolve *, int);
365 (((type) == R_XTENSA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)
366
367 /* Return the link-time address of _DYNAMIC. */
368-static __inline__ Elf32_Addr
369+static __always_inline Elf32_Addr
370 elf_machine_dynamic (void)
371 {
372 /* This function is only used while bootstrapping the runtime linker.
373@@ -95,7 +95,7 @@ elf_machine_dynamic (void)
374 }
375
376 /* Return the run-time load address of the shared object. */
377-static __inline__ Elf32_Addr
378+static __always_inline Elf32_Addr
379 elf_machine_load_address (void)
380 {
381 Elf32_Addr addr, tmp;
382@@ -116,7 +116,7 @@ elf_machine_load_address (void)
383 return addr - 3;
384 }
385
386-static __inline__ void
387+static __always_inline void
388 elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
389 Elf32_Word relative_count)
390 {
391--
3921.6.3.3.444.g4ecbc
393
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/akita/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/akita/uClibc.machine
new file mode 100644
index 0000000000..e27931cf6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/akita/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 23:18:41 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52CONFIG_ARM_IWMMXT=y
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch
new file mode 100644
index 0000000000..e222668a66
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch
@@ -0,0 +1,218 @@
1Index: uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S
2===================================================================
3--- /dev/null 1970-01-01 00:00:00.000000000 +0000
4+++ uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2008-08-28 00:22:06.278340855 +0200
5@@ -0,0 +1,78 @@
6+/* Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
7+ This file is part of the GNU C Library.
8+ Contributed by Philip Blundell <philb@gnu.org>.
9+
10+ The GNU C Library is free software; you can redistribute it and/or
11+ modify it under the terms of the GNU Lesser General Public
12+ License as published by the Free Software Foundation; either
13+ version 2.1 of the License, or (at your option) any later version.
14+
15+ The GNU C Library is distributed in the hope that it will be useful,
16+ but WITHOUT ANY WARRANTY; without even the implied warranty of
17+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18+ Lesser General Public License for more details.
19+
20+ You should have received a copy of the GNU Lesser General Public
21+ License along with the GNU C Library; if not, write to the Free
22+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
23+ 02111-1307 USA. */
24+
25+#include <sysdep-cancel.h>
26+#define _ERRNO_H 1
27+#include <bits/errno.h>
28+#include <kernel-features.h>
29+
30+/* Clone the calling process, but without copying the whole address space.
31+ The calling process is suspended until the new process exits or is
32+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
33+ and the process ID of the new process to the old process. */
34+
35+ENTRY (__vfork)
36+
37+#ifdef __NR_vfork
38+
39+#ifdef SHARED
40+ ldr ip, 1f
41+ ldr r0, 2f
42+3: add ip, pc, ip
43+ ldr r0, [ip, r0]
44+#else
45+ ldr r0, 1f
46+#endif
47+ movs r0, r0
48+ bne HIDDEN_JUMPTARGET (__fork)
49+
50+ DO_CALL (vfork, 0)
51+ cmn a1, #4096
52+ RETINSTR(cc, lr)
53+
54+#ifndef __ASSUME_VFORK_SYSCALL
55+ /* Check if vfork syscall is known at all. */
56+ cmn a1, #ENOSYS
57+ bne PLTJMP(C_SYMBOL_NAME(__syscall_error))
58+#endif
59+
60+#endif
61+
62+#ifndef __ASSUME_VFORK_SYSCALL
63+ /* If we don't have vfork, fork is close enough. */
64+ DO_CALL (fork, 0)
65+ cmn a1, #4096
66+ RETINSTR(cc, lr)
67+#elif !defined __NR_vfork
68+# error "__NR_vfork not available and __ASSUME_VFORK_SYSCALL defined"
69+#endif
70+ b PLTJMP(C_SYMBOL_NAME(__syscall_error))
71+
72+#ifdef SHARED
73+1: .word _GLOBAL_OFFSET_TABLE_ - 3b - 8
74+2: .word __libc_pthread_functions(GOTOFF)
75+#else
76+ .weak pthread_create
77+1: .word pthread_create
78+#endif
79+
80+PSEUDO_END (__vfork)
81+libc_hidden_def (__vfork)
82+
83+weak_alias (__vfork, vfork)
84Index: uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
85===================================================================
86--- /dev/null 1970-01-01 00:00:00.000000000 +0000
87+++ uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2008-08-28 00:28:04.301636993 +0200
88@@ -0,0 +1,130 @@
89+/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
90+ This file is part of the GNU C Library.
91+ Contributed by Phil Blundell <pb@nexus.co.uk>, 2003.
92+
93+ The GNU C Library is free software; you can redistribute it and/or
94+ modify it under the terms of the GNU Lesser General Public
95+ License as published by the Free Software Foundation; either
96+ version 2.1 of the License, or (at your option) any later version.
97+
98+ The GNU C Library is distributed in the hope that it will be useful,
99+ but WITHOUT ANY WARRANTY; without even the implied warranty of
100+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
101+ Lesser General Public License for more details.
102+
103+ You should have received a copy of the GNU Lesser General Public
104+ License along with the GNU C Library; if not, write to the Free
105+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
106+ 02111-1307 USA. */
107+
108+#include <tls.h>
109+#include <pt-machine.h>
110+#ifndef __ASSEMBLER__
111+# include <linuxthreads/internals.h>
112+#endif
113+
114+#if !defined NOT_IN_libc || defined IS_IN_libpthread
115+
116+/* We push lr onto the stack, so we have to use ldmib instead of ldmia
117+ to find the saved arguments. */
118+# ifdef PIC
119+# undef DOARGS_5
120+# undef DOARGS_6
121+# undef DOARGS_7
122+# define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8];
123+# define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5};
124+# define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6};
125+# endif
126+
127+# undef PSEUDO_RET
128+# define PSEUDO_RET \
129+ ldrcc pc, [sp], $4; \
130+ ldr lr, [sp], $4; \
131+ b PLTJMP(SYSCALL_ERROR)
132+
133+# undef PSEUDO
134+# define PSEUDO(name, syscall_name, args) \
135+ .section ".text"; \
136+ PSEUDO_PROLOGUE; \
137+ ENTRY (name); \
138+ SINGLE_THREAD_P; \
139+ bne .Lpseudo_cancel; \
140+ DO_CALL (syscall_name, args); \
141+ cmn r0, $4096; \
142+ RETINSTR(cc, lr); \
143+ b PLTJMP(SYSCALL_ERROR); \
144+ .Lpseudo_cancel: \
145+ str lr, [sp, $-4]!; \
146+ DOCARGS_##args; /* save syscall args around CENABLE. */ \
147+ CENABLE; \
148+ mov ip, r0; /* put mask in safe place. */ \
149+ UNDOCARGS_##args; /* restore syscall args. */ \
150+ swi SYS_ify (syscall_name); /* do the call. */ \
151+ str r0, [sp, $-4]!; /* save syscall return value. */ \
152+ mov r0, ip; /* get mask back. */ \
153+ CDISABLE; \
154+ ldr r0, [sp], $4; /* retrieve return value. */ \
155+ UNDOC2ARGS_##args; /* fix register damage. */ \
156+ cmn r0, $4096;
157+
158+# define DOCARGS_0
159+# define UNDOCARGS_0
160+# define UNDOC2ARGS_0
161+
162+# define DOCARGS_1 str r0, [sp, #-4]!;
163+# define UNDOCARGS_1 ldr r0, [sp], #4;
164+# define UNDOC2ARGS_1
165+
166+# define DOCARGS_2 str r1, [sp, #-4]!; str r0, [sp, #-4]!;
167+# define UNDOCARGS_2 ldr r0, [sp], #4; ldr r1, [sp], #4;
168+# define UNDOC2ARGS_2
169+
170+# define DOCARGS_3 str r2, [sp, #-4]!; str r1, [sp, #-4]!; str r0, [sp, #-4]!;
171+# define UNDOCARGS_3 ldr r0, [sp], #4; ldr r1, [sp], #4; ldr r2, [sp], #4
172+# define UNDOC2ARGS_3
173+
174+# define DOCARGS_4 stmfd sp!, {r0-r3}
175+# define UNDOCARGS_4 ldmfd sp!, {r0-r3}
176+# define UNDOC2ARGS_4
177+
178+# define DOCARGS_5 stmfd sp!, {r0-r3}
179+# define UNDOCARGS_5 ldmfd sp, {r0-r3}; str r4, [sp, #-4]!; ldr r4, [sp, #24]
180+# define UNDOC2ARGS_5 ldr r4, [sp], #20
181+
182+# ifdef IS_IN_libpthread
183+# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
184+# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
185+# define __local_multiple_threads __pthread_multiple_threads
186+# else
187+# define CENABLE bl PLTJMP(__libc_enable_asynccancel)
188+# define CDISABLE bl PLTJMP(__libc_disable_asynccancel)
189+# define __local_multiple_threads __libc_multiple_threads
190+# endif
191+
192+# ifndef __ASSEMBLER__
193+extern int __local_multiple_threads attribute_hidden;
194+# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
195+# else
196+# if !defined PIC
197+# define SINGLE_THREAD_P \
198+ ldr ip, =__local_multiple_threads; \
199+ ldr ip, [ip]; \
200+ teq ip, #0;
201+# define PSEUDO_PROLOGUE
202+# else
203+# define SINGLE_THREAD_P \
204+ ldr ip, 1b; \
205+2: \
206+ ldr ip, [pc, ip]; \
207+ teq ip, #0;
208+# define PSEUDO_PROLOGUE \
209+ 1: .word __local_multiple_threads - 2f - 8;
210+# endif
211+# endif
212+
213+#elif !defined __ASSEMBLER__
214+
215+/* This code should never be used but we define it anyhow. */
216+# define SINGLE_THREAD_P (1)
217+
218+#endif
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm/uClibc.machine
new file mode 100644
index 0000000000..898b73a33b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/arm/uClibc.machine
@@ -0,0 +1,69 @@
1#
2# Automatically generated make config: don't edit
3# Mon May 14 10:23:14 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42CONFIG_ARM920T=y
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67KERNEL_HEADERS="/usr/include"
68HAVE_DOT_CONFIG=y
69
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine
new file mode 100644
index 0000000000..2d9f63e531
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 22:07:03 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_BIG_ENDIAN=y
60ARCH_WANTS_BIG_ENDIAN=y
61# ARCH_WANTS_LITTLE_ENDIAN is not set
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine
new file mode 100644
index 0000000000..898b73a33b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine
@@ -0,0 +1,69 @@
1#
2# Automatically generated make config: don't edit
3# Mon May 14 10:23:14 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42CONFIG_ARM920T=y
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67KERNEL_HEADERS="/usr/include"
68HAVE_DOT_CONFIG=y
69
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine
new file mode 100644
index 0000000000..ec0385bc0f
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine
new file mode 100644
index 0000000000..85f70f70c7
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65UCLIBC_HAS_FPU=y
66UCLIBC_HAS_SOFT_FLOAT=n
67DO_C99_MATH=y
68KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine
new file mode 100644
index 0000000000..85f70f70c7
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65UCLIBC_HAS_FPU=y
66UCLIBC_HAS_SOFT_FLOAT=n
67DO_C99_MATH=y
68KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine
new file mode 100644
index 0000000000..ec0385bc0f
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine
new file mode 100644
index 0000000000..e27931cf6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 23:18:41 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52CONFIG_ARM_IWMMXT=y
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch
new file mode 100644
index 0000000000..b9ff6710bc
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch
@@ -0,0 +1,31 @@
1Index: uClibc-0.9.30.1/extra/scripts/unifdef.c
2===================================================================
3--- uClibc-0.9.30.1.orig/extra/scripts/unifdef.c 2009-08-09 11:55:23.000000000 +0200
4+++ uClibc-0.9.30.1/extra/scripts/unifdef.c 2009-08-09 11:55:46.000000000 +0200
5@@ -206,7 +206,7 @@
6 static void error(const char *);
7 static int findsym(const char *);
8 static void flushline(bool);
9-static Linetype getline(void);
10+static Linetype _getline(void);
11 static Linetype ifeval(const char **);
12 static void ignoreoff(void);
13 static void ignoreon(void);
14@@ -512,7 +512,7 @@
15
16 for (;;) {
17 linenum++;
18- lineval = getline();
19+ lineval = _getline();
20 trans_table[ifstate[depth]][lineval]();
21 debug("process %s -> %s depth %d",
22 linetype_name[lineval],
23@@ -526,7 +526,7 @@
24 * help from skipcomment().
25 */
26 static Linetype
27-getline(void)
28+_getline(void)
29 {
30 const char *cp;
31 int cursym;
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine
new file mode 100644
index 0000000000..e27931cf6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 23:18:41 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52CONFIG_ARM_IWMMXT=y
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
new file mode 100644
index 0000000000..cfa68ce52d
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
@@ -0,0 +1,21 @@
1Index: uClibc/ldso/ldso/arm/resolve.S
2===================================================================
3--- uClibc.orig/ldso/ldso/arm/resolve.S 2009-03-20 12:03:32.000000000 -0700
4+++ uClibc/ldso/ldso/arm/resolve.S 2009-03-20 12:04:23.000000000 -0700
5@@ -97,7 +97,6 @@
6
7 .text
8 .align 4 @ 16 byte boundary and there are 32 bytes below (arm case)
9- #if !defined(__thumb__) || defined(__thumb2__)
10 .arm
11 .globl _dl_linux_resolve
12 .type _dl_linux_resolve,%function
13@@ -129,7 +128,7 @@
14 #else
15 mov pc,ip
16 #endif
17-#else
18+#if 0
19 @ In the thumb case _dl_linux_resolver is thumb. If a bl is used
20 @ from arm code the linker will insert a stub call which, with
21 @ binutils 2.16, is not PIC. Since this code is accessed by an
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch
new file mode 100644
index 0000000000..f6f32cdd29
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch
@@ -0,0 +1,291 @@
1Index: uClibc/libpthread/linuxthreads/descr.h
2===================================================================
3--- uClibc.orig/libpthread/linuxthreads/descr.h 2008-08-27 23:59:46.171809044 +0200
4+++ uClibc/libpthread/linuxthreads/descr.h 2008-08-28 00:00:35.435134759 +0200
5@@ -123,9 +123,9 @@
6 union dtv *dtvp;
7 pthread_descr self; /* Pointer to this structure */
8 int multiple_threads;
9-# ifdef NEED_DL_SYSINFO
10 uintptr_t sysinfo;
11-# endif
12+ uintptr_t stack_guard;
13+ uintptr_t pointer_guard;
14 } data;
15 void *__padding[16];
16 } p_header;
17@@ -193,6 +193,13 @@
18 size_t p_alloca_cutoff; /* Maximum size which should be allocated
19 using alloca() instead of malloc(). */
20 /* New elements must be added at the end. */
21+
22+ /* This member must be last. */
23+ char end_padding[];
24+
25+#define PTHREAD_STRUCT_END_PADDING \
26+ (sizeof (struct _pthread_descr_struct) \
27+ - offsetof (struct _pthread_descr_struct, end_padding))
28 } __attribute__ ((aligned(32))); /* We need to align the structure so that
29 doubles are aligned properly. This is 8
30 bytes on MIPS and 16 bytes on MIPS64.
31Index: uClibc/libpthread/linuxthreads/manager.c
32===================================================================
33--- uClibc.orig/libpthread/linuxthreads/manager.c 2008-08-27 23:59:54.185140485 +0200
34+++ uClibc/libpthread/linuxthreads/manager.c 2008-08-28 00:00:35.435134759 +0200
35@@ -679,6 +679,17 @@
36 new_thread->p_inheritsched = attr ? attr->__inheritsched : 0;
37 new_thread->p_alloca_cutoff = stksize / 4 > __MAX_ALLOCA_CUTOFF
38 ? __MAX_ALLOCA_CUTOFF : stksize / 4;
39+
40+ /* Copy the stack guard canary. */
41+#ifdef THREAD_COPY_STACK_GUARD
42+ THREAD_COPY_STACK_GUARD (new_thread);
43+#endif
44+
45+ /* Copy the pointer guard value. */
46+#ifdef THREAD_COPY_POINTER_GUARD
47+ THREAD_COPY_POINTER_GUARD (new_thread);
48+#endif
49+
50 /* Initialize the thread handle */
51 __pthread_init_lock(&__pthread_handles[sseg].h_lock);
52 __pthread_handles[sseg].h_descr = new_thread;
53@@ -742,15 +753,15 @@
54 pid = __clone2(pthread_start_thread_event,
55 (void **)new_thread_bottom,
56 (char *)stack_addr - new_thread_bottom,
57- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
58+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
59 __pthread_sig_cancel, new_thread);
60 #elif _STACK_GROWS_UP
61 pid = __clone(pthread_start_thread_event, (void *) new_thread_bottom,
62- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
63+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
64 __pthread_sig_cancel, new_thread);
65 #else
66 pid = __clone(pthread_start_thread_event, stack_addr,
67- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
68+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
69 __pthread_sig_cancel, new_thread);
70 #endif
71 saved_errno = errno;
72@@ -783,15 +794,15 @@
73 pid = __clone2(pthread_start_thread,
74 (void **)new_thread_bottom,
75 (char *)stack_addr - new_thread_bottom,
76- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
77+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
78 __pthread_sig_cancel, new_thread);
79 #elif _STACK_GROWS_UP
80 pid = __clone(pthread_start_thread, (void *) new_thread_bottom,
81- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
82+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
83 __pthread_sig_cancel, new_thread);
84 #else
85 pid = __clone(pthread_start_thread, stack_addr,
86- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
87+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
88 __pthread_sig_cancel, new_thread);
89 #endif /* !NEED_SEPARATE_REGISTER_STACK */
90 saved_errno = errno;
91@@ -892,10 +903,11 @@
92 #ifdef _STACK_GROWS_UP
93 # ifdef USE_TLS
94 size_t stacksize = guardaddr - th->p_stackaddr;
95+ guardaddr = th->p_stackaddr;
96 # else
97 size_t stacksize = guardaddr - (char *)th;
98-# endif
99 guardaddr = (char *)th;
100+# endif
101 #else
102 /* Guardaddr is always set, even if guardsize is 0. This allows
103 us to compute everything else. */
104Index: uClibc/libpthread/linuxthreads/pthread.c
105===================================================================
106--- uClibc.orig/libpthread/linuxthreads/pthread.c 2008-08-28 00:00:00.825141935 +0200
107+++ uClibc/libpthread/linuxthreads/pthread.c 2008-08-28 00:00:35.438472147 +0200
108@@ -698,6 +698,16 @@
109 mgr = &__pthread_manager_thread;
110 #endif
111
112+ /* Copy the stack guard canary. */
113+#ifdef THREAD_COPY_STACK_GUARD
114+ THREAD_COPY_STACK_GUARD (mgr);
115+#endif
116+
117+ /* Copy the pointer guard value. */
118+#ifdef THREAD_COPY_POINTER_GUARD
119+ THREAD_COPY_POINTER_GUARD (mgr);
120+#endif
121+
122 __pthread_manager_request = manager_pipe[1]; /* writing end */
123 __pthread_manager_reader = manager_pipe[0]; /* reading end */
124
125@@ -738,17 +748,17 @@
126 pid = __clone2(__pthread_manager_event,
127 (void **) __pthread_manager_thread_bos,
128 THREAD_MANAGER_STACK_SIZE,
129- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
130+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
131 mgr);
132 #elif _STACK_GROWS_UP
133 pid = __clone(__pthread_manager_event,
134 (void **) __pthread_manager_thread_bos,
135- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
136+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
137 mgr);
138 #else
139 pid = __clone(__pthread_manager_event,
140 (void **) __pthread_manager_thread_tos,
141- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
142+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
143 mgr);
144 #endif
145
146@@ -778,13 +788,13 @@
147 #ifdef NEED_SEPARATE_REGISTER_STACK
148 pid = __clone2(__pthread_manager, (void **) __pthread_manager_thread_bos,
149 THREAD_MANAGER_STACK_SIZE,
150- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
151+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
152 #elif _STACK_GROWS_UP
153 pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_bos,
154- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
155+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
156 #else
157 pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_tos,
158- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
159+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
160 #endif
161 }
162 if (__builtin_expect (pid, 0) == -1) {
163@@ -971,6 +981,10 @@
164 struct pthread_request request;
165 pthread_descr self = thread_self();
166
167+ /* Make sure we come back here after suspend(), in case we entered
168+ from a signal handler. */
169+ THREAD_SETMEM(self, p_signal_jmp, NULL);
170+
171 request.req_thread = self;
172 request.req_kind = REQ_PROCESS_EXIT;
173 request.req_args.exit.code = retcode;
174@@ -1198,13 +1212,13 @@
175
176 void __pthread_restart_old(pthread_descr th)
177 {
178- if (atomic_increment(&th->p_resume_count) == -1)
179+ if (pthread_atomic_increment(&th->p_resume_count) == -1)
180 kill(th->p_pid, __pthread_sig_restart);
181 }
182
183 void __pthread_suspend_old(pthread_descr self)
184 {
185- if (atomic_decrement(&self->p_resume_count) <= 0)
186+ if (pthread_atomic_decrement(&self->p_resume_count) <= 0)
187 __pthread_wait_for_restart_signal(self);
188 }
189
190@@ -1215,7 +1229,7 @@
191 int was_signalled = 0;
192 sigjmp_buf jmpbuf;
193
194- if (atomic_decrement(&self->p_resume_count) == 0) {
195+ if (pthread_atomic_decrement(&self->p_resume_count) == 0) {
196 /* Set up a longjmp handler for the restart signal, unblock
197 the signal and sleep. */
198
199@@ -1272,9 +1286,9 @@
200 being delivered. */
201
202 if (!was_signalled) {
203- if (atomic_increment(&self->p_resume_count) != -1) {
204+ if (pthread_atomic_increment(&self->p_resume_count) != -1) {
205 __pthread_wait_for_restart_signal(self);
206- atomic_decrement(&self->p_resume_count); /* should be zero now! */
207+ pthread_atomic_decrement(&self->p_resume_count); /* should be zero now! */
208 /* woke spontaneously and consumed restart signal */
209 return 1;
210 }
211Index: uClibc/libpthread/linuxthreads/specific.c
212===================================================================
213--- uClibc.orig/libpthread/linuxthreads/specific.c 2008-08-28 00:00:07.595139286 +0200
214+++ uClibc/libpthread/linuxthreads/specific.c 2008-08-28 00:00:35.438472147 +0200
215@@ -104,13 +104,14 @@
216 that if the key is reallocated later by pthread_key_create, its
217 associated values will be NULL in all threads.
218
219- If no threads have been created yet, clear it just in the
220- current thread. */
221+ If no threads have been created yet, or if we are exiting, clear
222+ it just in the current thread. */
223
224 struct pthread_key_delete_helper_args args;
225 args.idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
226 args.idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
227- if (__pthread_manager_request != -1)
228+ if (__pthread_manager_request != -1
229+ && !(__builtin_expect (__pthread_exit_requested, 0)))
230 {
231 struct pthread_request request;
232
233@@ -203,8 +204,9 @@
234 __pthread_lock(THREAD_GETMEM(self, p_lock), self);
235 for (i = 0; i < PTHREAD_KEY_1STLEVEL_SIZE; i++) {
236 if (THREAD_GETMEM_NC(self, p_specific[i]) != NULL) {
237- free(THREAD_GETMEM_NC(self, p_specific[i]));
238+ void *p = THREAD_GETMEM_NC(self, p_specific[i]);
239 THREAD_SETMEM_NC(self, p_specific[i], NULL);
240+ free(p);
241 }
242 }
243 __pthread_unlock(THREAD_GETMEM(self, p_lock));
244Index: uClibc/libpthread/linuxthreads/spinlock.c
245===================================================================
246--- uClibc.orig/libpthread/linuxthreads/spinlock.c 2008-08-28 00:00:17.805140454 +0200
247+++ uClibc/libpthread/linuxthreads/spinlock.c 2008-08-28 00:00:35.438472147 +0200
248@@ -637,8 +637,20 @@
249 #if defined HAS_COMPARE_AND_SWAP
250 wait_node_dequeue(pp_head, pp_max_prio, p_max_prio);
251 #endif
252+
253+ /* Release the spinlock before restarting. */
254+#if defined TEST_FOR_COMPARE_AND_SWAP
255+ if (!__pthread_has_cas)
256+#endif
257+#if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP
258+ {
259+ __pthread_release(&lock->__spinlock);
260+ }
261+#endif
262+
263 restart(p_max_prio->thr);
264- break;
265+
266+ return;
267 }
268 }
269
270Index: uClibc/libpthread/linuxthreads/spinlock.h
271===================================================================
272--- uClibc.orig/libpthread/linuxthreads/spinlock.h 2008-08-28 00:00:24.768471655 +0200
273+++ uClibc/libpthread/linuxthreads/spinlock.h 2008-08-28 00:02:42.971786951 +0200
274@@ -172,7 +172,7 @@
275
276 /* Operations on pthread_atomic, which is defined in internals.h */
277
278-static __inline__ long atomic_increment(struct pthread_atomic *pa)
279+static __inline__ long pthread_atomic_increment(struct pthread_atomic *pa)
280 {
281 long oldval;
282
283@@ -184,7 +184,7 @@
284 }
285
286
287-static __inline__ long atomic_decrement(struct pthread_atomic *pa)
288+static __inline__ long pthread_atomic_decrement(struct pthread_atomic *pa)
289 {
290 long oldval;
291
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine
new file mode 100644
index 0000000000..5df15f94cb
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine
@@ -0,0 +1,69 @@
1#
2# Automatically generated make config: don't edit
3# Fri Nov 23 15:49:33 2007
4#
5# TARGET_alpha is not set
6# TARGET_arm is not set
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13TARGET_i386=y
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="i386"
33FORCE_OPTIONS_FOR_ARCH=y
34CONFIG_GENERIC_386=y
35# CONFIG_386 is not set
36# CONFIG_486 is not set
37# CONFIG_586 is not set
38# CONFIG_586MMX is not set
39# CONFIG_686 is not set
40# CONFIG_PENTIUMII is not set
41# CONFIG_PENTIUMIII is not set
42# CONFIG_PENTIUM4 is not set
43# CONFIG_K6 is not set
44# CONFIG_K7 is not set
45# CONFIG_ELAN is not set
46# CONFIG_CRUSOE is not set
47# CONFIG_WINCHIPC6 is not set
48# CONFIG_WINCHIP2 is not set
49# CONFIG_CYRIXIII is not set
50# CONFIG_NEHEMIAH is not set
51TARGET_SUBARCH=""
52
53#
54# Using ELF file format
55#
56ARCH_LITTLE_ENDIAN=y
57
58#
59# Using Little Endian
60#
61ARCH_HAS_MMU=y
62ARCH_USE_MMU=y
63UCLIBC_HAS_FLOATS=y
64UCLIBC_HAS_FPU=y
65DO_C99_MATH=y
66KERNEL_HEADERS="/usr/include"
67HAVE_DOT_CONFIG=y
68
69UCLIBC_HAS_FENV=y
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine
new file mode 100644
index 0000000000..898b73a33b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine
@@ -0,0 +1,69 @@
1#
2# Automatically generated make config: don't edit
3# Mon May 14 10:23:14 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42CONFIG_ARM920T=y
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67KERNEL_HEADERS="/usr/include"
68HAVE_DOT_CONFIG=y
69
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/pthread_atfork.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/pthread_atfork.patch
new file mode 100644
index 0000000000..92accc2a1a
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/pthread_atfork.patch
@@ -0,0 +1,42 @@
1Index: uClibc-0.9.30/libpthread/linuxthreads/Makefile.in
2===================================================================
3--- uClibc-0.9.30.orig/libpthread/linuxthreads/Makefile.in 2009-01-11 01:09:27.008515954 +0100
4+++ uClibc-0.9.30/libpthread/linuxthreads/Makefile.in 2009-01-11 01:09:35.295181636 +0100
5@@ -45,7 +45,7 @@
6 pthread_SRC := \
7 attr barrier cancel condvar errno events join pthread \
8 lockfile manager mutex pt-machine ptcleanup \
9- ptclock_gettime ptclock_settime ptfork pthandles \
10+ ptclock_gettime ptclock_settime ptfork pthandles pthread_atfork \
11 pthread_setegid pthread_seteuid pthread_setgid pthread_setregid \
12 pthread_setresgid pthread_setresuid pthread_setreuid pthread_setuid \
13 rwlock semaphore sighandler signals specific spinlock
14Index: uClibc-0.9.30/libpthread/linuxthreads/pthread_atfork.c
15===================================================================
16--- uClibc-0.9.30.orig/libpthread/linuxthreads/pthread_atfork.c 2009-01-11 01:09:44.931848926 +0100
17+++ uClibc-0.9.30/libpthread/linuxthreads/pthread_atfork.c 2009-01-11 01:12:49.926539743 +0100
18@@ -43,12 +43,8 @@
19
20 /* Hide the symbol so that no definition but the one locally in the
21 executable or DSO is used. */
22-int
23-#ifndef __pthread_atfork
24-/* Don't mark the compatibility function as hidden. */
25-attribute_hidden
26-#endif
27-__pthread_atfork (prepare, parent, child)
28+
29+int attribute_hidden __pthread_atfork (prepare, parent, child)
30 void (*prepare) (void);
31 void (*parent) (void);
32 void (*child) (void);
33@@ -56,8 +52,5 @@
34 return __register_atfork (prepare, parent, child,
35 &__dso_handle == NULL ? NULL : __dso_handle);
36 }
37-#ifndef __pthread_atfork
38-extern int pthread_atfork (void (*prepare) (void), void (*parent) (void),
39- void (*child) (void)) attribute_hidden;
40+
41 strong_alias (__pthread_atfork, pthread_atfork)
42-#endif
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine
new file mode 100644
index 0000000000..fafdd7584e
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44CONFIG_ARM926T=y
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/bad/path/to/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine
new file mode 100644
index 0000000000..44fec169c8
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine
@@ -0,0 +1,68 @@
1#
2# Automatically generated make config: don't edit
3# Fri Nov 23 15:49:33 2007
4#
5# TARGET_alpha is not set
6# TARGET_arm is not set
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13TARGET_i386=y
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="i386"
33FORCE_OPTIONS_FOR_ARCH=y
34CONFIG_GENERIC_386=y
35# CONFIG_386 is not set
36# CONFIG_486 is not set
37# CONFIG_586 is not set
38# CONFIG_586MMX is not set
39# CONFIG_686 is not set
40# CONFIG_PENTIUMII is not set
41# CONFIG_PENTIUMIII is not set
42# CONFIG_PENTIUM4 is not set
43# CONFIG_K6 is not set
44# CONFIG_K7 is not set
45# CONFIG_ELAN is not set
46# CONFIG_CRUSOE is not set
47# CONFIG_WINCHIPC6 is not set
48# CONFIG_WINCHIP2 is not set
49# CONFIG_CYRIXIII is not set
50# CONFIG_NEHEMIAH is not set
51TARGET_SUBARCH=""
52
53#
54# Using ELF file format
55#
56ARCH_LITTLE_ENDIAN=y
57
58#
59# Using Little Endian
60#
61ARCH_HAS_MMU=y
62ARCH_USE_MMU=y
63UCLIBC_HAS_FLOATS=y
64UCLIBC_HAS_FPU=y
65DO_C99_MATH=y
66KERNEL_HEADERS="/usr/include"
67HAVE_DOT_CONFIG=y
68
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine
new file mode 100644
index 0000000000..44fec169c8
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine
@@ -0,0 +1,68 @@
1#
2# Automatically generated make config: don't edit
3# Fri Nov 23 15:49:33 2007
4#
5# TARGET_alpha is not set
6# TARGET_arm is not set
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13TARGET_i386=y
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="i386"
33FORCE_OPTIONS_FOR_ARCH=y
34CONFIG_GENERIC_386=y
35# CONFIG_386 is not set
36# CONFIG_486 is not set
37# CONFIG_586 is not set
38# CONFIG_586MMX is not set
39# CONFIG_686 is not set
40# CONFIG_PENTIUMII is not set
41# CONFIG_PENTIUMIII is not set
42# CONFIG_PENTIUM4 is not set
43# CONFIG_K6 is not set
44# CONFIG_K7 is not set
45# CONFIG_ELAN is not set
46# CONFIG_CRUSOE is not set
47# CONFIG_WINCHIPC6 is not set
48# CONFIG_WINCHIP2 is not set
49# CONFIG_CYRIXIII is not set
50# CONFIG_NEHEMIAH is not set
51TARGET_SUBARCH=""
52
53#
54# Using ELF file format
55#
56ARCH_LITTLE_ENDIAN=y
57
58#
59# Using Little Endian
60#
61ARCH_HAS_MMU=y
62ARCH_USE_MMU=y
63UCLIBC_HAS_FLOATS=y
64UCLIBC_HAS_FPU=y
65DO_C99_MATH=y
66KERNEL_HEADERS="/usr/include"
67HAVE_DOT_CONFIG=y
68
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine
new file mode 100644
index 0000000000..e27931cf6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 23:18:41 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52CONFIG_ARM_IWMMXT=y
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.config b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.config
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.config
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.distro b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.distro
new file mode 100644
index 0000000000..042ea4c547
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.distro
@@ -0,0 +1,148 @@
1#
2# General Library Settings
3#
4# HAVE_NO_PIC is not set
5# DOPIC is not set
6# HAVE_NO_SHARED is not set
7# ARCH_HAS_NO_LDSO is not set
8HAVE_SHARED=y
9# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
10LDSO_LDD_SUPPORT=y
11LDSO_CACHE_SUPPORT=y
12# LDSO_PRELOAD_FILE_SUPPORT is not set
13LDSO_BASE_FILENAME="ld.so"
14# UCLIBC_STATIC_LDCONFIG is not set
15LDSO_RUNPATH=y
16UCLIBC_CTOR_DTOR=y
17LDSO_GNU_HASH_SUPPORT=y
18# HAS_NO_THREADS is not set
19UCLIBC_HAS_THREADS=y
20PTHREADS_DEBUG_SUPPORT=y
21LINUXTHREADS_OLD=y
22UCLIBC_HAS_LFS=y
23# MALLOC is not set
24# MALLOC_SIMPLE is not set
25MALLOC_STANDARD=y
26MALLOC_GLIBC_COMPAT=y
27UCLIBC_DYNAMIC_ATEXIT=y
28COMPAT_ATEXIT=y
29UCLIBC_SUSV3_LEGACY=y
30UCLIBC_SUSV3_LEGACY_MACROS=y
31UCLIBC_HAS_SHADOW=y
32UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
33UCLIBC_HAS___PROGNAME=y
34UNIX98PTY_ONLY=y
35UCLIBC_HAS_GETPT=y
36ASSUME_DEVPTS=y
37UCLIBC_HAS_TM_EXTENSIONS=y
38UCLIBC_HAS_TZ_CACHING=y
39UCLIBC_HAS_TZ_FILE=y
40UCLIBC_HAS_TZ_FILE_READ_MANY=y
41UCLIBC_TZ_FILE_PATH="/etc/TZ"
42
43#
44# Advanced Library Settings
45#
46UCLIBC_PWD_BUFFER_SIZE=256
47UCLIBC_GRP_BUFFER_SIZE=256
48
49#
50# Networking Support
51#
52UCLIBC_HAS_IPV6=y
53UCLIBC_HAS_RPC=y
54UCLIBC_HAS_FULL_RPC=y
55# UCLIBC_HAS_REENTRANT_RPC is not set
56# UCLIBC_USE_NETLINK is not set
57# UCLIBC_HAS_BSD_RES_CLOSE is not set
58
59#
60# String and Stdio Support
61#
62UCLIBC_HAS_STRING_GENERIC_OPT=y
63UCLIBC_HAS_STRING_ARCH_OPT=y
64UCLIBC_HAS_CTYPE_TABLES=y
65UCLIBC_HAS_CTYPE_SIGNED=y
66# UCLIBC_HAS_CTYPE_UNSAFE is not set
67UCLIBC_HAS_CTYPE_CHECKED=y
68# UCLIBC_HAS_CTYPE_ENFORCED is not set
69UCLIBC_HAS_WCHAR=y
70# UCLIBC_HAS_LOCALE is not set
71UCLIBC_HAS_HEXADECIMAL_FLOATS=y
72UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
73UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
74UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
75# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
76UCLIBC_HAS_STDIO_BUFSIZ_256=y
77# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
78# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
79# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
80# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
81# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
82UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
83# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
84# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
85# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
86# UCLIBC_HAS_STDIO_GETC_MACRO is not set
87# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
88UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
89# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
90UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
91UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
92UCLIBC_HAS_PRINTF_M_SPEC=y
93UCLIBC_HAS_ERRNO_MESSAGES=y
94# UCLIBC_HAS_SYS_ERRLIST is not set
95UCLIBC_HAS_SIGNUM_MESSAGES=y
96# UCLIBC_HAS_SYS_SIGLIST is not set
97UCLIBC_HAS_GNU_GETOPT=y
98UCLIBC_HAS_GNU_GETSUBOPT=y
99
100#
101# Big and Tall
102#
103UCLIBC_HAS_REGEX=y
104# UCLIBC_HAS_REGEX_OLD is not set
105UCLIBC_HAS_FNMATCH=y
106# UCLIBC_HAS_FNMATCH_OLD is not set
107UCLIBC_HAS_WORDEXP=y
108UCLIBC_HAS_FTW=y
109UCLIBC_HAS_GLOB=y
110UCLIBC_HAS_GNU_GLOB=y
111
112#
113# Library Installation Options
114#
115SHARED_LIB_LOADER_PREFIX="/lib"
116RUNTIME_PREFIX="/"
117DEVEL_PREFIX="//usr"
118
119#
120# Security options
121#
122# UCLIBC_BUILD_PIE is not set
123# UCLIBC_HAS_ARC4RANDOM is not set
124# HAVE_NO_SSP is not set
125# UCLIBC_HAS_SSP is not set
126UCLIBC_BUILD_RELRO=y
127UCLIBC_BUILD_NOW=y
128UCLIBC_BUILD_NOEXECSTACK=y
129
130#
131# uClibc development/debugging options
132#
133CROSS_COMPILER_PREFIX=""
134UCLIBC_EXTRA_CFLAGS=""
135# DODEBUG is not set
136# DODEBUG_PT is not set
137DOSTRIP=n
138# DOASSERTS is not set
139# SUPPORT_LD_DEBUG is not set
140# SUPPORT_LD_DEBUG_EARLY is not set
141# UCLIBC_MALLOC_DEBUGGING is not set
142WARNINGS="-Wall"
143# EXTRA_WARNINGS is not set
144# DOMULTI is not set
145# UCLIBC_MJN3_ONLY is not set
146
147# math stuff for perl
148DO_C99_MATH=y
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t
new file mode 100644
index 0000000000..898b73a33b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t
@@ -0,0 +1,69 @@
1#
2# Automatically generated make config: don't edit
3# Mon May 14 10:23:14 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42CONFIG_ARM920T=y
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67KERNEL_HEADERS="/usr/include"
68HAVE_DOT_CONFIG=y
69
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te
new file mode 100644
index 0000000000..ec0385bc0f
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:16:02 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51CONFIG_ARM_XSCALE=y
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt
new file mode 100644
index 0000000000..e27931cf6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sat May 12 23:18:41 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34# CONFIG_ARM_OABI is not set
35CONFIG_ARM_EABI=y
36USE_BX=y
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50# CONFIG_ARM_SA1100 is not set
51# CONFIG_ARM_XSCALE is not set
52CONFIG_ARM_IWMMXT=y
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm
new file mode 100644
index 0000000000..6e89444a64
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm
@@ -0,0 +1,70 @@
1#
2# Automatically generated make config: don't edit
3# Sun May 13 11:29:51 2007
4#
5# TARGET_alpha is not set
6TARGET_arm=y
7# TARGET_bfin is not set
8# TARGET_cris is not set
9# TARGET_e1 is not set
10# TARGET_frv is not set
11# TARGET_h8300 is not set
12# TARGET_hppa is not set
13# TARGET_i386 is not set
14# TARGET_i960 is not set
15# TARGET_ia64 is not set
16# TARGET_m68k is not set
17# TARGET_microblaze is not set
18# TARGET_mips is not set
19# TARGET_nios is not set
20# TARGET_nios2 is not set
21# TARGET_powerpc is not set
22# TARGET_sh is not set
23# TARGET_sh64 is not set
24# TARGET_sparc is not set
25# TARGET_v850 is not set
26# TARGET_vax is not set
27# TARGET_x86_64 is not set
28
29#
30# Target Architecture Features and Options
31#
32TARGET_ARCH="arm"
33FORCE_OPTIONS_FOR_ARCH=y
34CONFIG_ARM_OABI=y
35# CONFIG_ARM_EABI is not set
36# USE_BX is not set
37# CONFIG_GENERIC_ARM is not set
38# CONFIG_ARM610 is not set
39# CONFIG_ARM710 is not set
40# CONFIG_ARM7TDMI is not set
41# CONFIG_ARM720T is not set
42# CONFIG_ARM920T is not set
43# CONFIG_ARM922T is not set
44# CONFIG_ARM926T is not set
45# CONFIG_ARM10T is not set
46# CONFIG_ARM1136JF_S is not set
47# CONFIG_ARM1176JZ_S is not set
48# CONFIG_ARM1176JZF_S is not set
49# CONFIG_ARM_SA110 is not set
50CONFIG_ARM_SA1100=y
51# CONFIG_ARM_XSCALE is not set
52# CONFIG_ARM_IWMMXT is not set
53TARGET_SUBARCH=""
54
55#
56# Using ELF file format
57#
58ARCH_ANY_ENDIAN=y
59ARCH_LITTLE_ENDIAN=y
60# ARCH_WANTS_BIG_ENDIAN is not set
61ARCH_WANTS_LITTLE_ENDIAN=y
62ARCH_HAS_MMU=y
63ARCH_USE_MMU=y
64UCLIBC_HAS_FLOATS=y
65# UCLIBC_HAS_FPU is not set
66UCLIBC_HAS_SOFT_FLOAT=y
67DO_C99_MATH=y
68KERNEL_HEADERS="/usr/include"
69HAVE_DOT_CONFIG=y
70
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch
new file mode 100644
index 0000000000..f3718431ea
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch
@@ -0,0 +1,474 @@
1Index: uClibc-0.9.30.1/libm/ldouble_wrappers.c
2===================================================================
3--- uClibc-0.9.30.1/libm/ldouble_wrappers.c (revision 25552)
4+++ uClibc-0.9.30.1/libm/ldouble_wrappers.c (working copy)
5@@ -13,6 +13,16 @@
6 #include "math.h"
7 #include <complex.h>
8
9+#if defined __NO_LONG_DOUBLE_MATH
10+# define int_WRAPPER_C99(func) /* not needed */
11+# else
12+# define int_WRAPPER_C99(func) \
13+int func##l(long double x) \
14+{ \
15+ return func((double) x); \
16+} \
17+libm_hidden_def(func##l)
18+#endif
19
20 /* Implement the following, as defined by SuSv3 */
21 #if 0
22@@ -543,46 +553,28 @@ long double truncl (long double x)
23 #endif
24
25
26-#ifdef __DO_C99_MATH__
27+#if defined __DO_C99_MATH__
28
29 #ifdef L_fpclassifyl
30-int __fpclassifyl (long double x)
31-{
32- return __fpclassify ( (double) x );
33-}
34-libm_hidden_def(__fpclassifyl)
35+int_WRAPPER_C99(__fpclassify)
36 #endif
37
38 #ifdef L_finitel
39-int __finitel (long double x)
40-{
41- return __finite ( (double)x );
42-}
43-libm_hidden_def(__finitel)
44+int_WRAPPER_C99(__finite)
45 #endif
46
47 #ifdef L_signbitl
48-int __signbitl (long double x)
49-{
50- return __signbitl ( (double)x );
51-}
52-libm_hidden_def(__signbitl)
53+int_WRAPPER_C99(__signbit)
54 #endif
55
56 #ifdef L_isnanl
57-int __isnanl (long double x)
58-{
59- return __isnan ( (double)x );
60-}
61-libm_hidden_def(__isnanl)
62+int_WRAPPER_C99(__isnan)
63 #endif
64
65 #ifdef L_isinfl
66-int __isinfl (long double x)
67-{
68- return __isinf ( (double)x );
69-}
70-libm_hidden_def(__isinfl)
71+int_WRAPPER_C99(__isinf)
72 #endif
73
74-#endif
75+#endif /* DO_C99_MATH */
76+
77+#undef int_WRAPPER_C99
78Index: uClibc-0.9.30.1/libm/nan.c
79===================================================================
80--- uClibc-0.9.30.1/libm/nan.c (revision 25552)
81+++ uClibc-0.9.30.1/libm/nan.c (working copy)
82@@ -45,7 +45,7 @@ float nanf (const char *tagp)
83 }
84 libm_hidden_def(nanf)
85
86-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
87+#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
88 libm_hidden_proto(nanl)
89 long double nanl (const char *tagp)
90 {
91Index: uClibc-0.9.30.1/include/math.h
92===================================================================
93--- uClibc-0.9.30.1/include/math.h (revision 25552)
94+++ uClibc-0.9.30.1/include/math.h (working copy)
95@@ -118,7 +118,7 @@ __BEGIN_DECLS
96 # undef __MATH_PRECNAME
97
98 # if (__STDC__ - 0 || __GNUC__ - 0) \
99- && (defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ || defined __LDBL_COMPAT)
100+ && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
101 # ifdef __LDBL_COMPAT
102
103 # ifdef __USE_ISOC99
104@@ -230,7 +230,7 @@ enum
105 };
106
107 /* Return number of classification appropriate for X. */
108-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
109+# ifdef __NO_LONG_DOUBLE_MATH
110 # define fpclassify(x) \
111 (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
112 # else
113@@ -242,7 +242,7 @@ enum
114 # endif
115
116 /* Return nonzero value if sign of X is negative. */
117-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
118+# ifdef __NO_LONG_DOUBLE_MATH
119 # define signbit(x) \
120 (sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
121 # else
122@@ -254,7 +254,7 @@ enum
123 # endif
124
125 /* Return nonzero value if X is not +-Inf or NaN. */
126-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
127+# ifdef __NO_LONG_DOUBLE_MATH
128 # define isfinite(x) \
129 (sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
130 # else
131@@ -270,7 +270,7 @@ enum
132
133 /* Return nonzero value if X is a NaN. We could use `fpclassify' but
134 we already have this functions `__isnan' and it is faster. */
135-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
136+# ifdef __NO_LONG_DOUBLE_MATH
137 # define isnan(x) \
138 (sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
139 # else
140@@ -282,7 +282,7 @@ enum
141 # endif
142
143 /* Return nonzero value is X is positive or negative infinity. */
144-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
145+# ifdef __NO_LONG_DOUBLE_MATH
146 # define isinf(x) \
147 (sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
148 # else
149Index: uClibc-0.9.30.1/include/tgmath.h
150===================================================================
151--- uClibc-0.9.30.1/include/tgmath.h (revision 25552)
152+++ uClibc-0.9.30.1/include/tgmath.h (working copy)
153@@ -36,7 +36,7 @@
154
155 #if __GNUC_PREREQ (2, 7)
156
157-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
158+# ifdef __NO_LONG_DOUBLE_MATH
159 # define __tgml(fct) fct
160 # else
161 # define __tgml(fct) fct ## l
162Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h
163===================================================================
164--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (revision 25552)
165+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (working copy)
166@@ -7,13 +7,13 @@
167 # define __WORDSIZE 32
168 #endif
169
170-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
171+#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
172
173 /* Signal the glibc ABI didn't used to have a `long double'.
174 The changes all the `long double' function variants to be redirects
175 to the double functions. */
176 # define __LONG_DOUBLE_MATH_OPTIONAL 1
177 # ifndef __LONG_DOUBLE_128__
178-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
179+# define __NO_LONG_DOUBLE_MATH 1
180 # endif
181 #endif
182Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h
183===================================================================
184--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (revision 25552)
185+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (working copy)
186@@ -65,11 +65,13 @@ typedef double double_t;
187
188 #endif /* ISO C99 */
189
190-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
191+#ifndef __NO_LONG_DOUBLE_MATH
192 #include <bits/wordsize.h>
193 /* Signal that we do not really have a `long double'. The disables the
194 declaration of all the `long double' function variants. */
195 # if __WORDSIZE == 32
196-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
197+# define __NO_LONG_DOUBLE_MATH 1
198+# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
199+# define __NO_LONG_DOUBLE_MATH 1
200 # endif /* __WORDSIZE == 32 */
201-#endif /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */
202+#endif /* __NO_LONG_DOUBLE_MATH */
203Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h
204===================================================================
205--- uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (revision 25552)
206+++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (working copy)
207@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
208 # define FP_ILOGBNAN (2147483647)
209
210 #endif /* ISO C99 */
211+
212+#ifndef __NO_LONG_DOUBLE_MATH
213+/* Signal that we do not really have a `long double'. This disables the
214+ declaration of all the `long double' function variants. */
215+/* XXX The FPA does support this but the patterns in GCC are currently
216+ turned off. */
217+# define __NO_LONG_DOUBLE_MATH 1
218+#endif
219Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h
220===================================================================
221--- uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (revision 25552)
222+++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (working copy)
223@@ -36,3 +36,7 @@ typedef long double double_t; /* `double
224 # define FP_ILOGBNAN (2147483647)
225
226 #endif /* ISO C99 */
227+
228+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
229+# define __NO_LONG_DOUBLE_MATH 1
230+#endif
231Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h
232===================================================================
233--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (revision 25552)
234+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (working copy)
235@@ -18,13 +18,13 @@
236
237 #define __WORDSIZE 64
238
239-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
240+#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
241
242 /* Signal that we didn't used to have a `long double'. The changes all
243 the `long double' function variants to be redirects to the double
244 functions. */
245 # define __LONG_DOUBLE_MATH_OPTIONAL 1
246 # ifndef __LONG_DOUBLE_128__
247-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
248+# define __NO_LONG_DOUBLE_MATH 1
249 # endif
250 #endif
251Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h
252===================================================================
253--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (revision 25552)
254+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (working copy)
255@@ -78,3 +78,7 @@ typedef double double_t;
256
257 # endif /* GNUC before 3.4 */
258 #endif /* COMPLEX_H */
259+
260+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
261+# define __NO_LONG_DOUBLE_MATH 1
262+#endif
263Index: uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h
264===================================================================
265--- uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (revision 25552)
266+++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (working copy)
267@@ -35,3 +35,9 @@ typedef double double_t; /* `double' exp
268 # define FP_ILOGBNAN 2147483647
269
270 #endif /* ISO C99 */
271+
272+#ifndef __NO_LONG_DOUBLE_MATH
273+/* Signal that we do not really have a `long double'. The disables the
274+ declaration of all the `long double' function variants. */
275+# define __NO_LONG_DOUBLE_MATH 1
276+#endif
277Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h
278===================================================================
279--- uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (revision 25552)
280+++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (working copy)
281@@ -44,3 +44,7 @@ typedef long double double_t; /* `double
282 # define FP_ILOGBNAN (-2147483647 - 1)
283
284 #endif /* ISO C99 */
285+
286+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
287+# define __NO_LONG_DOUBLE_MATH 1
288+#endif
289Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h
290===================================================================
291--- uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (revision 25552)
292+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (working copy)
293@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
294 # define FP_ILOGBNAN (2147483647)
295
296 #endif /* ISO C99 */
297+
298+#ifndef __NO_LONG_DOUBLE_MATH
299+/* Signal that we do not really have a `long double'. This disables the
300+ declaration of all the `long double' function variants. */
301+/* XXX The FPA does support this but the patterns in GCC are currently
302+ turned off. */
303+# define __NO_LONG_DOUBLE_MATH 1
304+#endif
305Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h
306===================================================================
307--- uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (revision 25552)
308+++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (working copy)
309@@ -46,3 +46,7 @@ typedef long double double_t; /* `double
310 # define FP_ILOGBNAN (-2147483647 - 1)
311
312 #endif /* ISO C99 */
313+
314+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
315+# define __NO_LONG_DOUBLE_MATH 1
316+#endif
317Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h
318===================================================================
319--- uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (revision 25552)
320+++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (working copy)
321@@ -36,8 +36,8 @@ typedef double double_t; /* `double' exp
322
323 #endif /* ISO C99 */
324
325-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
326+#ifndef __NO_LONG_DOUBLE_MATH
327 /* Signal that we do not really have a `long double'. The disables the
328 declaration of all the `long double' function variants. */
329-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
330+# define __NO_LONG_DOUBLE_MATH 1
331 #endif
332Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h
333===================================================================
334--- uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (revision 25552)
335+++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (working copy)
336@@ -35,3 +35,7 @@ typedef double double_t; /* `double' exp
337 # define FP_ILOGBNAN 2147483647
338
339 #endif /* ISO C99 */
340+
341+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
342+# define __NO_LONG_DOUBLE_MATH 1
343+#endif
344Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h
345===================================================================
346--- uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (revision 25552)
347+++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (working copy)
348@@ -39,8 +39,10 @@ typedef double double_t; /* `double' exp
349
350 #endif /* ISO C99 */
351
352-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32
353+#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
354 /* Signal that we do not really have a `long double'. This disables the
355 declaration of all the `long double' function variants. */
356-# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32
357+# define __NO_LONG_DOUBLE_MATH 1
358+#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
359+# define __NO_LONG_DOUBLE_MATH 1
360 #endif
361Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h
362===================================================================
363--- uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (revision 25552)
364+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (working copy)
365@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
366 # define FP_ILOGBNAN (2147483647)
367
368 #endif /* ISO C99 */
369+
370+#ifndef __NO_LONG_DOUBLE_MATH
371+/* Signal that we do not really have a `long double'. This disables the
372+ declaration of all the `long double' function variants. */
373+/* XXX The FPA does support this but the patterns in GCC are currently
374+ turned off. */
375+# define __NO_LONG_DOUBLE_MATH 1
376+#endif
377Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h
378===================================================================
379--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (revision 25552)
380+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (working copy)
381@@ -6,7 +6,7 @@
382 # define __WORDSIZE 32
383 #endif
384
385-#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
386+#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
387
388 # if __WORDSIZE == 32
389 /* Signal that in 32bit ABI we didn't used to have a `long double'.
390@@ -14,7 +14,7 @@
391 to the double functions. */
392 # define __LONG_DOUBLE_MATH_OPTIONAL 1
393 # ifndef __LONG_DOUBLE_128__
394-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
395+# define __NO_LONG_DOUBLE_MATH 1
396 # endif
397 # endif
398 #endif
399Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h
400===================================================================
401--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (revision 25552)
402+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (working copy)
403@@ -57,13 +57,15 @@ typedef double double_t;
404
405 #endif /* ISO C99 */
406
407-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
408+#ifndef __NO_LONG_DOUBLE_MATH
409
410 # if __WORDSIZE == 32
411 /* Signal that in 32bit ABI we do not really have a `long double'.
412 The disables the declaration of all the `long double' function
413 variants. */
414-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
415+# define __NO_LONG_DOUBLE_MATH 1
416+# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
417+# define __NO_LONG_DOUBLE_MATH 1
418 # endif
419
420 #endif
421Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h
422===================================================================
423--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (revision 25552)
424+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (working copy)
425@@ -37,7 +37,7 @@
426
427 # if __WORDSIZE == 32
428
429-# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
430+# ifndef __NO_LONG_DOUBLE_MATH
431
432 # define __unordered_cmp(x, y) \
433 (__extension__ \
434@@ -157,7 +157,7 @@ __NTH (__signbit (double __x))
435 return __u.__i[0] < 0;
436 }
437
438-# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
439+# ifndef __NO_LONG_DOUBLE_MATH
440 __MATH_INLINE int
441 __NTH (__signbitl (long double __x))
442 {
443@@ -219,7 +219,7 @@ __NTH (sqrtl (long double __x))
444 _Qp_sqrt (&__r, &__x);
445 return __r;
446 }
447-# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
448+# elif !defined __NO_LONG_DOUBLE_MATH
449 __MATH_INLINE long double
450 sqrtl (long double __x) __THROW
451 {
452@@ -257,7 +257,7 @@ __ieee754_sqrtl (long double __x)
453 _Qp_sqrt(&__r, &__x);
454 return __r;
455 }
456-# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
457+# elif !defined __NO_LONG_DOUBLE_MATH
458 __MATH_INLINE long double
459 __ieee754_sqrtl (long double __x)
460 {
461Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h
462===================================================================
463--- uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (revision 25552)
464+++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (working copy)
465@@ -61,3 +61,9 @@ typedef double double_t;
466 # define FP_ILOGBNAN 0x7fffffff
467
468 #endif /* ISO C99 */
469+
470+#ifndef __NO_LONG_DOUBLE_MATH
471+/* Signal that we do not really have a `long double'. The disables the
472+ declaration of all the `long double' function variants. */
473+# define __NO_LONG_DOUBLE_MATH 1
474+#endif
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch
new file mode 100644
index 0000000000..7a89e66621
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch
@@ -0,0 +1,13 @@
1Index: uClibc/ldso/ldso/Makefile.in
2===================================================================
3--- uClibc.orig/ldso/ldso/Makefile.in 2009-02-03 17:27:55.000000000 -0800
4+++ uClibc/ldso/ldso/Makefile.in 2009-02-03 17:28:11.000000000 -0800
5@@ -8,7 +8,7 @@
6 CFLAGS-ldso := -DNOT_IN_libc -DIS_IN_rtld $(SSP_DISABLE_FLAGS)
7
8 # This stuff will not work with -fomit-frame-pointer
9-CFLAGS-ldso += -fno-omit-frame-pointer
10+CFLAGS-ldso += -O0 -fno-omit-frame-pointer
11
12 CFLAGS-ldso += -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) -I$(top_srcdir)ldso/include -I$(top_srcdir)ldso/ldso
13 CFLAGS-ldso += -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\"
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.30.1/x86/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.30.1/x86/uClibc.machine
new file mode 100644
index 0000000000..6cd19e851e
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.30.1/x86/uClibc.machine
@@ -0,0 +1,72 @@
1#
2# Automatically generated make config: don't edit
3# Version: 0.9.30.1
4# Wed Jul 1 17:04:32 2009
5#
6# TARGET_alpha is not set
7# TARGET_arm is not set
8# TARGET_avr32 is not set
9# TARGET_bfin is not set
10# TARGET_cris is not set
11# TARGET_e1 is not set
12# TARGET_frv is not set
13# TARGET_h8300 is not set
14# TARGET_hppa is not set
15TARGET_i386=y
16# TARGET_i960 is not set
17# TARGET_ia64 is not set
18# TARGET_m68k is not set
19# TARGET_microblaze is not set
20# TARGET_mips is not set
21# TARGET_nios is not set
22# TARGET_nios2 is not set
23# TARGET_powerpc is not set
24# TARGET_sh is not set
25# TARGET_sh64 is not set
26# TARGET_sparc is not set
27# TARGET_v850 is not set
28# TARGET_vax is not set
29# TARGET_x86_64 is not set
30# TARGET_xtensa is not set
31
32#
33# Target Architecture Features and Options
34#
35TARGET_ARCH="i386"
36FORCE_OPTIONS_FOR_ARCH=y
37CONFIG_GENERIC_386=y
38# CONFIG_386 is not set
39# CONFIG_486 is not set
40# CONFIG_586 is not set
41# CONFIG_586MMX is not set
42# CONFIG_686 is not set
43# CONFIG_PENTIUMII is not set
44# CONFIG_PENTIUMIII is not set
45# CONFIG_PENTIUM4 is not set
46# CONFIG_K6 is not set
47# CONFIG_K7 is not set
48# CONFIG_ELAN is not set
49# CONFIG_CRUSOE is not set
50# CONFIG_WINCHIPC6 is not set
51# CONFIG_WINCHIP2 is not set
52# CONFIG_CYRIXIII is not set
53# CONFIG_NEHEMIAH is not set
54TARGET_SUBARCH=""
55
56#
57# Using ELF file format
58#
59ARCH_LITTLE_ENDIAN=y
60
61#
62# Using Little Endian
63#
64ARCH_HAS_MMU=y
65ARCH_USE_MMU=y
66UCLIBC_HAS_FLOATS=y
67UCLIBC_HAS_FPU=y
68DO_C99_MATH=y
69# UCLIBC_HAS_FENV is not set
70UCLIBC_HAS_LONG_DOUBLE_MATH=y
71KERNEL_HEADERS="/bla"
72HAVE_DOT_CONFIG=y
diff --git a/meta/recipes-core/uclibc/uclibc-initial_0.9.30.1.bb b/meta/recipes-core/uclibc/uclibc-initial_0.9.30.1.bb
new file mode 100644
index 0000000000..6d21d3a2c5
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-initial_0.9.30.1.bb
@@ -0,0 +1,27 @@
1SECTION = "base"
2require uclibc_${PV}.bb
3
4DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
5PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
6PACKAGES = ""
7
8do_install() {
9 # Install initial headers into the cross dir
10 make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
11 install_headers
12 #ln -sf include ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/sys-include
13
14 # This conflicts with the c++ version of this header
15 rm -f ${D}${includedir}/bits/atomicity.h
16 install -d ${D}${libdir}/
17 install -m 644 lib/crt[1in].o ${D}${libdir}/
18 install -d ${D}${libdir}/
19 install -m 644 lib/libc.so ${D}${libdir}/
20}
21
22do_compile () {
23 make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
24 lib/crt1.o lib/crti.o lib/crtn.o
25 ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
26 -o lib/libc.so
27}
diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
new file mode 100644
index 0000000000..18392b5c17
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -0,0 +1,183 @@
1DESCRIPTION = "C library for embedded systems"
2LICENSE = "LGPL"
3SECTION = "libs"
4PRIORITY = "required"
5
6#
7# For now, we will skip building of a gcc package if it is a uclibc one
8# and our build is not a uclibc one, and we skip a glibc one if our build
9# is a uclibc build.
10#
11# See the note in gcc/gcc_3.4.0.oe
12#
13
14python __anonymous () {
15 import bb, re
16 uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
17 if not uc_os:
18 raise bb.parse.SkipPackage("incompatible with target %s" %
19 bb.data.getVar('TARGET_OS', d, 1))
20}
21
22PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
23PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
24DEPENDS = "virtual/${TARGET_PREFIX}binutils \
25 virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
26RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
27
28# Blackfin needs a wrapper around ld
29#DEPENDS_append_bfin = " elf2flt "
30
31INHIBIT_DEFAULT_DEPS = "1"
32PARALLEL_MAKE = ""
33
34PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
35
36LEAD_SONAME = "libc.so"
37
38# The last line (gdb and lib1) is for uclinux-uclibc builds
39uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
40 ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
41 ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
42 ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
43 ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \
44 ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
45 ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
46 ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
47 ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
48 ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
49 ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
50 ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
51 "
52FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
53 ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
54FILES_ldd = "${bindir}/ldd"
55FILES_uclibc-dev += "${libdir}/*.o"
56FILES_uclibc-utils = "${bindir} ${sbindir}"
57FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
58FILES_uclibc-gconv = "${libdir}/gconv"
59FILES_uclibc-thread-db = "/lib/libthread_db*"
60RPROVIDES_uclibc-dev += "libc-dev"
61
62#
63# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
64# build, it does not need to be unpacked, but we can't inhibit the unpacking
65# in the current build system.
66#
67UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
68UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz"
69UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}"
70UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}"
71
72SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
73 file://uClibc.config \
74 http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2 \
75 "
76
77# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
78# the CFLAGS (for when building the utils).
79OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
80 'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
81EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
82 'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \
83 ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`"
84EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
85
86KERNEL_SOURCE = "${STAGING_INCDIR}"
87KERNEL_HEADERS = "${STAGING_INCDIR}"
88
89# Lets munge this via siteinfo.bbclass as well:
90# ARCH_BIG_ENDIAN=y
91# ARCH_WANTS_BIG_ENDIAN=y
92# ARCH_WANTS_LITTLE_ENDIAN is not set
93
94# How to enable verbose logs:
95#export VERBOSE="1"
96
97configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
98 s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
99 s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
100 s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \
101 s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \
102 s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \
103 s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
104 ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
105 ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
106 '
107
108CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}"
109
110python () {
111 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
112 bb.data.setVar('configmangle_append', ' s,^HAS_FPU=y,# HAS_FPU is not set,;', d)
113}
114
115uclibcbuild_do_patch() {
116 ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
117 ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
118
119 ${@['cp %s/%s extra/locale' % (bb.data.getVar('DL_DIR', d, 1) or '', bb.data.getVar('UCLIBC_LOCALE_FILE', d, 1) or ''), ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}
120}
121
122python do_patch () {
123 bb.build.exec_func('base_do_patch', d)
124 bb.build.exec_func('uclibcbuild_do_patch', d)
125}
126
127do_configure() {
128 rm -f ${S}/.config
129
130 # For uClibc 0.9.29, OpenEmbedded splits the uClibc.config in two parts:
131 # uClibc.machine and uClibc.distro. So, if they exist use them, otherwise
132 # use a uClibc.config
133 if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
134 echo "### uClibc.machine ###" >${S}/merged.config
135 cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
136 echo "### uClibc.distro ###" >>${S}/merged.config
137 cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
138 else
139 echo "### uClibc.config ###" >${S}/merged.config
140 cat ${WORKDIR}/uClibc.config >>${S}/merged.config
141 fi
142 cp ${S}/merged.config ${S}/.config
143
144 # Mangle the resulting .config depending on OE variables
145 perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
146 sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak
147 perl -i -p -e '${configmangle}' ${S}/.config
148
149 sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
150
151 if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
152 if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
153 echo "CONFIG_ARM_EABI=y" >> ${S}/.config
154 else
155 echo "# CONFIG_ARM_EABI is not set" >> ${S}/.config
156 fi
157 fi
158 yes '' | oe_runmake oldconfig
159}
160
161do_install() {
162 oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
163 install_dev install_runtime
164
165 # Need to overwrite the version from -initial
166 if [ ! -e ${D}${libdir}/libc.so ]; then
167 ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
168 fi
169
170 # We don't really need this in ${includedir}
171 rm -f ${D}${prefix}/include/.cvsignore
172
173 # This conflicts with the c++ version of this header
174 rm -f ${D}${prefix}/include/bits/atomicity.h
175
176 oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
177 oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
178 install_utils
179
180 # oe_runstrip needs +x on files
181 chmod +x ${D}/${base_libdir}/*
182}
183
diff --git a/meta/recipes-core/uclibc/uclibc_0.9.30.1.bb b/meta/recipes-core/uclibc/uclibc_0.9.30.1.bb
new file mode 100644
index 0000000000..6bdf153a2a
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc_0.9.30.1.bb
@@ -0,0 +1,33 @@
1# UCLIBC_BASE should be the latest released revision of uclibc (that way
2# the config files will typically be correct!) uclibc-cvs takes precedence
3# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-cvs is out of date
4# try removing it
5#
6# UCLIBC_BASE can be set in a distro file, but whether this works depends
7# on whether the base patches apply to the selected (SRCDATE) svn release.
8#
9UCLIBC_BASE ?= "0.9.30.1"
10
11require uclibc.inc
12PR = "r1"
13
14PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
15
16SRC_URI += "file://uClibc.machine file://uClibc.distro \
17 file://arm-linuxthreads.patch;patch=1 \
18 file://linuxthreads-changes.patch;patch=1 \
19 file://pthread_atfork.patch;patch=1 \
20 file://uclibc_ldso_use_O0.patch;patch=1 \
21 file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch;patch=1 \
22 file://gcc-4.4-fixlet.patch;patch=1 \
23 file://uclibc-c99-ldbl-math.patch;patch=1 \
24 file://Use-__always_inline-instead-of-__inline__.patch;patch=1 \
25 "
26#recent versions uclibc require real kernel headers
27PACKAGE_ARCH = "${MACHINE_ARCH}"
28
29#as stated above, uclibc needs real kernel-headers
30#however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking ....
31KERNEL_SOURCE = "${STAGING_DIR_HOST}/${exec_prefix}"
32
33S = "${WORKDIR}/uClibc-${UCLIBC_BASE}"
diff --git a/meta/recipes-core/udev/files/50-hostap_cs.rules b/meta/recipes-core/udev/files/50-hostap_cs.rules
new file mode 100644
index 0000000000..efefdc58fc
--- /dev/null
+++ b/meta/recipes-core/udev/files/50-hostap_cs.rules
@@ -0,0 +1,4 @@
1# hostap_cs needs ignore_cis_vcc=1 set - this should handle all cards
2#
3ACTION=="add", DEVICE=="hostap_cs", \
4 SYSFS{func_id}=="0x06", RUN+="/sbin/modprobe hostap_cs ignore_cis_vcc=1"
diff --git a/meta/recipes-core/udev/files/akita/mount.blacklist b/meta/recipes-core/udev/files/akita/mount.blacklist
new file mode 100644
index 0000000000..c15b582298
--- /dev/null
+++ b/meta/recipes-core/udev/files/akita/mount.blacklist
@@ -0,0 +1,3 @@
1/dev/mtdblock
2/dev/loop
3/dev/ram
diff --git a/meta/recipes-core/udev/files/c7x0/mount.blacklist b/meta/recipes-core/udev/files/c7x0/mount.blacklist
new file mode 100644
index 0000000000..c15b582298
--- /dev/null
+++ b/meta/recipes-core/udev/files/c7x0/mount.blacklist
@@ -0,0 +1,3 @@
1/dev/mtdblock
2/dev/loop
3/dev/ram
diff --git a/meta/recipes-core/udev/files/devfs-udev.rules b/meta/recipes-core/udev/files/devfs-udev.rules
new file mode 100644
index 0000000000..0ba1ad4e7f
--- /dev/null
+++ b/meta/recipes-core/udev/files/devfs-udev.rules
@@ -0,0 +1,108 @@
1# The use of these rules is not recommended or supported.
2# In a world where devices can come and go at any time, the devfs scheme
3# of simple device enumeration does not help _anything_. Just forget about
4# it. Use custom rules to name your device or look at the persistent device
5# naming scheme, which is implemented for disks and add your subsystem.
6
7# ide block devices
8BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
9
10# md block devices
11KERNEL="md[0-9]*", NAME="md/%n"
12
13# floppy devices
14KERNEL="fd[0-9]*", NAME="floppy/%n"
15
16# tty devices
17KERNEL="tty[0-9]*", NAME="vc/%n", SYMLINK="%k"
18KERNEL="ttyS[0-9]*", NAME="tts/%n", SYMLINK="%k"
19KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
20
21# vc devices
22KERNEL="vcs", NAME="vcc/0"
23KERNEL="vcs[0-9]*", NAME="vcc/%n"
24KERNEL="vcsa", NAME="vcc/a0"
25KERNEL="vcsa[0-9]*", NAME="vcc/a%n"
26
27# v4l devices
28KERNEL="video[0-9]*", NAME="v4l/video%n"
29KERNEL="radio[0-9]*", NAME="v4l/radio%n"
30KERNEL="vbi[0-9]*", NAME="v4l/vbi%n"
31KERNEL="vtx[0-9]*", NAME="v4l/vtx%n"
32
33# dm devices (ignore them)
34KERNEL="dm-[0-9]*", NAME=""
35
36# i2c devices
37KERNEL="i2c-[0-9]*", NAME="i2c/%n", SYMLINK="%k"
38
39# loop devices
40KERNEL="loop[0-9]*", NAME="loop/%n", SYMLINK="%k"
41
42# ramdisks
43KERNEL="ram[0-9]*", NAME="rd/%n", SYMLINK="%k"
44
45# framebuffer devices
46KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k"
47
48# misc
49KERNEL="rtc", NAME="misc/%k", SYMLINK="%k"
50KERNEL="psaux", NAME="misc/%k", SYMLINK="%k"
51KERNEL="agpgart", NAME="misc/%k", SYMLINK="%k"
52KERNEL="rtc", NAME="misc/%k", SYMLINK="%k"
53KERNEL="psaux", NAME="misc/%k", SYMLINK="%k"
54KERNEL="uinput", NAME="misc/%k", SYMLINK="%k"
55
56# alsa devices
57KERNEL="controlC[0-9]*", NAME="snd/%k"
58KERNEL="hw[CD0-9]*", NAME="snd/%k"
59KERNEL="pcm[CD0-9cp]*", NAME="snd/%k"
60KERNEL="midi[CD0-9]*", NAME="snd/%k"
61KERNEL="timer", NAME="snd/%k"
62KERNEL="seq", NAME="snd/%k"
63
64# oss devices
65KERNEL="audio*", NAME="sound/%k", SYMLINK="%k"
66KERNEL="dmmidi", NAME="sound/%k", SYMLINK="%k"
67KERNEL="dsp*", NAME="sound/%k", SYMLINK="%k"
68KERNEL="midi*", NAME="sound/%k", SYMLINK="%k"
69KERNEL="mixer*", NAME="sound/%k", SYMLINK="%k"
70KERNEL="sequencer*", NAME="sound/%k", SYMLINK="%k"
71
72# input devices
73KERNEL="mice", NAME="input/%k"
74KERNEL="mouse*", NAME="input/%k"
75KERNEL="event*", NAME="input/%k"
76KERNEL="js*", NAME="input/%k"
77KERNEL="ts*", NAME="input/%k"
78
79# USB devices
80KERNEL="hiddev*", NAME="usb/%k"
81KERNEL="auer*", NAME="usb/%k"
82KERNEL="legousbtower*", NAME="usb/%k"
83KERNEL="dabusb*", NAME="usb/%k"
84BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k"
85
86# netlink devices
87KERNEL="route", NAME="netlink/%k"
88KERNEL="skip", NAME="netlink/%k"
89KERNEL="usersock", NAME="netlink/%k"
90KERNEL="fwmonitor", NAME="netlink/%k"
91KERNEL="tcpdiag", NAME="netlink/%k"
92KERNEL="nflog", NAME="netlink/%k"
93KERNEL="xfrm", NAME="netlink/%k"
94KERNEL="arpd", NAME="netlink/%k"
95KERNEL="route6", NAME="netlink/%k"
96KERNEL="ip6_fw", NAME="netlink/%k"
97KERNEL="dnrtmsg", NAME="netlink/%k"
98KERNEL="tap*", NAME="netlink/%k"
99
100# CAPI devices
101KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
102KERNEL="capi*", NAME="capi/%n"
103
104# Network devices
105KERNEL="tun", NAME="net/%k"
106
107# raw devices
108KERNEL="raw[0-9]*", NAME="raw/%k"
diff --git a/meta/recipes-core/udev/files/fix-alignment.patch b/meta/recipes-core/udev/files/fix-alignment.patch
new file mode 100644
index 0000000000..8c7b8b5ac5
--- /dev/null
+++ b/meta/recipes-core/udev/files/fix-alignment.patch
@@ -0,0 +1,24 @@
1diff --git a/udev_rules_parse.c b/udev_rules_parse.c
2--- a/udev_rules_parse.c
3+++ b/udev_rules_parse.c
4@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule
5 int valid;
6 char *linepos;
7 char *attr;
8+ size_t padding;
9 int retval;
10
11 /* get all the keys */
12@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule
13
14 /* grow buffer and add rule */
15 rule_size = sizeof(struct udev_rule) + rule->bufsize;
16+ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t);
17+ dbg("add %zi padding bytes", padding);
18+ rule_size += padding;
19+ rule->bufsize += padding;
20+
21 rules->buf = realloc(rules->buf, rules->bufsize + rule_size);
22 if (!rules->buf) {
23 err("realloc failed");
24
diff --git a/meta/recipes-core/udev/files/init b/meta/recipes-core/udev/files/init
new file mode 100755
index 0000000000..8cbab188f0
--- /dev/null
+++ b/meta/recipes-core/udev/files/init
@@ -0,0 +1,212 @@
1#!/bin/sh -e
2
3UDEVSTART=/sbin/udevstart
4
5# defaults
6tmpfs_size="10M"
7udev_root="/dev"
8
9[ -x $UDEVSTART ] || exit 0
10
11. /etc/udev/udev.conf
12
13##############################################################################
14
15# we need to unmount /dev/pts/ and remount it later over the tmpfs
16unmount_devpts() {
17 if mountpoint -q /dev/pts/; then
18 umount -l /dev/pts/
19 fi
20
21 if mountpoint -q /dev/shm/; then
22 umount -l /dev/shm/
23 fi
24}
25
26# mount a tmpfs over /dev, if somebody did not already do it
27mount_tmpfs() {
28 if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then
29 return 0
30 fi
31
32 # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory.
33 # /etc/udev/ is recycled as a temporary mount point because it's the only
34 # directory which is guaranteed to be available.
35 mount -n -o bind /dev /etc/udev
36
37 if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then
38 umount /etc/udev
39 echo "udev requires tmpfs support, not started."
40 exit 1
41 fi
42
43 # using ln to test if /dev works, because touch is in /usr/bin/
44 if ln -s test /dev/test-file; then
45 rm /dev/test-file
46 else
47 echo "udev requires tmpfs support, not started."
48 umount /etc/udev
49 umount /dev
50 exit 1
51 fi
52
53 mkdir -p /dev/.static/dev
54 chmod 700 /dev/.static/
55 # The mount options in busybox are non-standard...
56 if test -x /bin/mount.util-linux
57 then
58 /bin/mount.util-linux --move /etc/udev /dev/.static/dev
59 elif test -x /bin/busybox
60 then
61 busybox mount -n -o move /etc/udev /dev/.static/dev
62 else
63 echo "udev requires an identifiable mount command, not started."
64 umount /etc/udev
65 umount /dev
66 exit 1
67 fi
68}
69
70# I hate this hack. -- Md
71make_extra_nodes() {
72 [ -e /etc/udev/links.conf ] || return 0
73 grep '^[^#]' /etc/udev/links.conf | \
74 while read type name arg1; do
75 [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue
76 case "$type" in
77 L) ln -s $arg1 /dev/$name ;;
78 D) mkdir -p /dev/$name ;;
79 M) mknod -m 600 /dev/$name $arg1 ;;
80 *) echo "links.conf: unparseable line ($type $name $arg1)" ;;
81 esac
82 done
83}
84
85# this function is duplicated in preinst, postinst and d-i
86supported_kernel() {
87 case "$(uname -r)" in
88 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
89 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;;
90 esac
91 return 0
92}
93
94# shell version of /usr/bin/tty
95my_tty() {
96 [ -x /bin/readlink ] || return 0
97 [ -e /proc/self/fd/0 ] || return 0
98 readlink --silent /proc/self/fd/0 || true
99}
100
101warn_if_interactive() {
102 if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then
103 return 0
104 fi
105
106 TTY=$(my_tty)
107 if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then
108 return 0
109 fi
110
111 printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n"
112 printf "has been run from an interactive shell.\n"
113 printf "It will probably not do what you expect, so this script will wait\n"
114 printf "60 seconds before continuing. Press ^C to stop it.\n"
115 printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n"
116 sleep 60
117}
118
119##############################################################################
120
121if ! supported_kernel; then
122 echo "udev requires a kernel >= 2.6.12, not started."
123 exit 1
124fi
125
126if [ ! -e /proc/filesystems ]; then
127 echo "udev requires a mounted procfs, not started."
128 exit 1
129fi
130
131if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then
132 echo "udev requires tmpfs support, not started."
133 exit 1
134fi
135
136if [ ! -d /sys/class/ ]; then
137 echo "udev requires a mounted sysfs, not started."
138 exit 1
139fi
140
141if [ ! -e /proc/sys/kernel/hotplug ] && [ ! -e /sys/kernel/uevent_helper ]; then
142 echo "udev requires hotplug support, not started."
143 exit 1
144fi
145
146##############################################################################
147
148# When modifying this script, do not forget that between the time that
149# the new /dev has been mounted and udevstart has been run there will be
150# no /dev/null. This also means that you cannot use the "&" shell command.
151
152case "$1" in
153 start)
154 if [ -e "$udev_root/.udevdb" ]; then
155 if mountpoint -q /dev/; then
156 TMPFS_MOUNTED=1
157 else
158 echo ".udevdb already exists on the old $udev_root!"
159 fi
160 fi
161 warn_if_interactive
162
163 #echo /sbin/udevsend > /proc/sys/kernel/hotplug
164 if [ -e /sys/kernel/uevent_helper ] ; then
165 echo "" > /sys/kernel/uevent_helper
166 else
167 echo "" > /proc/sys/kernel/hotplug
168 fi
169 udevsend
170 if [ "$UDEV_DISABLED" = "yes" ]; then
171 echo "udev disabled on the kernel command line, not started."
172 exit 0
173 fi
174
175 if [ ! "$TMPFS_MOUNTED" ]; then
176 unmount_devpts
177 mount_tmpfs
178 [ -d /proc/1 ] || mount -n /proc
179 # if this directory is not present /dev will not be updated by udev
180 mkdir /dev/.udevdb/
181 echo "Creating initial device nodes..."
182 udevstart
183 fi
184 make_extra_nodes
185 ;;
186 stop)
187 warn_if_interactive
188 start-stop-daemon --stop --exec /sbin/udevd --quiet
189 unmount_devpts
190 if [ -d /dev/.static/dev/ ]; then
191 umount -l /dev/.static/dev/ || true
192 fi
193 echo "Unmounting /dev..."
194 # unmounting with -l should never fail
195 if ! umount -l /dev; then
196 exit 1
197 fi
198 ;;
199 restart|force-reload)
200 start-stop-daemon --stop --exec /sbin/udevd --quiet
201 log_begin_msg "Recreating device nodes..."
202 udevstart
203 make_extra_nodes
204 log_end_msg 0
205 ;;
206 *)
207 echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}"
208 exit 1
209 ;;
210esac
211
212exit 0
diff --git a/meta/recipes-core/udev/files/links.conf b/meta/recipes-core/udev/files/links.conf
new file mode 100644
index 0000000000..8fff922db6
--- /dev/null
+++ b/meta/recipes-core/udev/files/links.conf
@@ -0,0 +1,21 @@
1# This file does not exist. Please do not ask the debian maintainer about it.
2# You may use it to do strange and wonderful things, at your risk.
3
4L fd /proc/self/fd
5L stdin /proc/self/fd/0
6L stdout /proc/self/fd/1
7L stderr /proc/self/fd/2
8L core /proc/kcore
9L sndstat /proc/asound/oss/sndstat
10L MAKEDEV /sbin/MAKEDEV
11
12D pts
13D shm
14
15# Hic sunt leones.
16M ppp c 108 0
17D loop
18M loop/0 b 7 0
19D net
20M net/tun c 10 200
21
diff --git a/meta/recipes-core/udev/files/local.rules b/meta/recipes-core/udev/files/local.rules
new file mode 100644
index 0000000000..5f2efbeb0c
--- /dev/null
+++ b/meta/recipes-core/udev/files/local.rules
@@ -0,0 +1,22 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
diff --git a/meta/recipes-core/udev/files/mount.blacklist b/meta/recipes-core/udev/files/mount.blacklist
new file mode 100644
index 0000000000..d3ebb17176
--- /dev/null
+++ b/meta/recipes-core/udev/files/mount.blacklist
@@ -0,0 +1,3 @@
1/dev/loop
2/dev/ram
3/dev/mtdblock
diff --git a/meta/recipes-core/udev/files/mount.sh b/meta/recipes-core/udev/files/mount.sh
new file mode 100644
index 0000000000..53fefa3681
--- /dev/null
+++ b/meta/recipes-core/udev/files/mount.sh
@@ -0,0 +1,68 @@
1#!/bin/sh
2#
3# Called from udev
4#
5# Attempt to mount any added block devices and umount any removed devices
6
7
8MOUNT="/bin/mount"
9PMOUNT="/usr/bin/pmount"
10UMOUNT="/bin/umount"
11
12for line in `cat /etc/udev/mount.blacklist`
13do
14 if [ ` expr match "$DEVNAME" "$line" ` -gt 0 ];
15 then
16 logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
17 exit 0
18 fi
19done
20
21automount() {
22 name="`basename "$DEVNAME"`"
23
24 ! test -d "/media/$name" && mkdir -p "/media/$name"
25
26 if ! $MOUNT -t auto -o sync $DEVNAME "/media/$name"
27 then
28 #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
29 rm_dir "/media/$name"
30 else
31 logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
32 touch "/tmp/.automount-$name"
33 fi
34}
35
36rm_dir() {
37 # We do not want to rm -r populated directories
38 if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1"
39 then
40 ! test -z "$1" && rm -r "$1"
41 else
42 logger "mount.sh/automount" "Not removing non-empty directory [$1]"
43 fi
44}
45
46if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; then
47 if [ -x "$PMOUNT" ]; then
48 $PMOUNT $DEVNAME 2> /dev/null
49 elif [ -x $MOUNT ]; then
50 $MOUNT $DEVNAME 2> /dev/null
51 fi
52
53 # If the device isn't mounted at this point, it isn't configured in fstab
54 grep -q "^$DEVNAME " /proc/mounts || automount
55fi
56
57
58
59if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
60 for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `
61 do
62 $UMOUNT $mnt
63 done
64
65 # Remove empty directories from auto-mounter
66 name="`basename "$DEVNAME"`"
67 test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
68fi
diff --git a/meta/recipes-core/udev/files/network.sh b/meta/recipes-core/udev/files/network.sh
new file mode 100644
index 0000000000..5016328df4
--- /dev/null
+++ b/meta/recipes-core/udev/files/network.sh
@@ -0,0 +1,55 @@
1#!/bin/sh
2
3# Do not run when pcmcia-cs is installed
4test -x /sbin/cardctl && exit 0
5
6# We get two "add" events for hostap cards due to wifi0
7echo "$INTERFACE" | grep -q wifi && exit 0
8
9
10# Check if /etc/init.d/network has been run yet to see if we are
11# called by starting /etc/rcS.d/S03udev and not by hotplugging a device
12#
13# At this stage, network interfaces should not be brought up
14# automatically because:
15# a) /etc/init.d/network has not been run yet (security issue)
16# b) /var has not been populated yet so /etc/resolv,conf points to
17# oblivion, making the network unusable
18#
19
20spoofp="`grep ^spoofprotect /etc/network/options`"
21if test -z "$spoofp"
22then
23 # This is the default from /etc/init.d/network
24 spoofp_val=yes
25else
26 spoofp_val=${spoofp#spoofprotect=}
27fi
28
29test "$spoofp_val" = yes && spoofp_val=1 || spoofp_val=0
30
31# I think it is safe to assume that "lo" will always be there ;)
32if test "`cat /proc/sys/net/ipv4/conf/lo/rp_filter`" != "$spoofp_val" -a -n "$spoofp_val"
33then
34 echo "$INTERFACE" >> /dev/udev_network_queue
35 exit 0
36fi
37
38#
39# Code taken from pcmcia-cs:/etc/pcmcia/network
40#
41
42# if this interface has an entry in /etc/network/interfaces, let ifupdown
43# handle it
44if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then
45 case $ACTION in
46 add)
47 ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE
48 ;;
49 remove)
50 ifdown $INTERFACE
51 ;;
52 esac
53
54 exit 0
55fi
diff --git a/meta/recipes-core/udev/files/noasmlinkage.patch b/meta/recipes-core/udev/files/noasmlinkage.patch
new file mode 100644
index 0000000000..0d8e854c0e
--- /dev/null
+++ b/meta/recipes-core/udev/files/noasmlinkage.patch
@@ -0,0 +1,38 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- udev-062/udev.c~noasmlinkage.patch
7+++ udev-062/udev.c
8@@ -54,7 +54,7 @@
9 }
10 #endif
11
12-static void asmlinkage sig_handler(int signum)
13+static void sig_handler(int signum)
14 {
15 switch (signum) {
16 case SIGALRM:
17--- udev-062/udevd.c~noasmlinkage.patch
18+++ udev-062/udevd.c
19@@ -639,7 +639,7 @@
20 return msg;
21 }
22
23-static void asmlinkage sig_handler(int signum)
24+static void sig_handler(int signum)
25 {
26 int rc;
27
28--- udev-062/udevstart.c~noasmlinkage.patch
29+++ udev-062/udevstart.c
30@@ -323,7 +323,7 @@
31 exec_list(&device_list);
32 }
33
34-static void asmlinkage sig_handler(int signum)
35+static void sig_handler(int signum)
36 {
37 switch (signum) {
38 case SIGALRM:
diff --git a/meta/recipes-core/udev/files/permissions.rules b/meta/recipes-core/udev/files/permissions.rules
new file mode 100644
index 0000000000..86d771276b
--- /dev/null
+++ b/meta/recipes-core/udev/files/permissions.rules
@@ -0,0 +1,81 @@
1# default permissions for block devices
2SUBSYSTEM=="block", GROUP="disk"
3SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"
4
5# IDE devices
6BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}="1", \
7 PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="cdrom*", GROUP="cdrom"
8BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape"
9BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape"
10
11# SCSI devices
12BUS=="scsi", SYSFS{type}=="1", GROUP="tape"
13BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom"
14BUS=="scsi", SYSFS{type}=="6", GROUP="scanner"
15
16# USB devices
17BUS=="usb", KERNEL=="legousbtower*", MODE="0666"
18BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp"
19
20# serial devices
21SUBSYSTEM=="tty", GROUP="dialout"
22SUBSYSTEM=="capi", GROUP="dialout"
23SUBSYSTEM=="slamr", GROUP="dialout"
24
25# vc devices (all members of the tty subsystem)
26KERNEL=="ptmx", MODE="0666", GROUP="root"
27KERNEL=="console", MODE="0600", GROUP="root"
28KERNEL=="tty", MODE="0666", GROUP="root"
29KERNEL=="tty[0-9]*", GROUP="root"
30KERNEL=="pty*", MODE="0666", GROUP="tty"
31
32# video devices
33SUBSYSTEM=="video4linux", GROUP="video"
34SUBSYSTEM=="drm", GROUP="video"
35SUBSYSTEM=="dvb", GROUP="video"
36SUBSYSTEM=="em8300", GROUP="video"
37SUBSYSTEM=="graphics", GROUP="video"
38SUBSYSTEM=="nvidia", GROUP="video"
39
40# misc devices
41KERNEL=="random", MODE="0666"
42KERNEL=="urandom", MODE="0444"
43KERNEL=="mem", MODE="0640", GROUP="kmem"
44KERNEL=="kmem", MODE="0640", GROUP="kmem"
45KERNEL=="port", MODE="0640", GROUP="kmem"
46KERNEL=="full", MODE="0666"
47KERNEL=="null", MODE="0666"
48KERNEL=="zero", MODE="0666"
49KERNEL=="inotify", MODE="0666"
50KERNEL=="sgi_fetchop", MODE="0666"
51KERNEL=="sonypi", MODE="0666"
52KERNEL=="agpgart", GROUP="video"
53KERNEL=="nvram", GROUP="nvram"
54KERNEL=="rtc", MODE="0660", GROUP="audio"
55
56KERNEL=="cdemu[0-9]*", GROUP="cdrom"
57KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
58KERNEL=="pktcdvd", MODE="0644"
59
60# printers and parallel devices
61SUBSYSTEM=="printer", GROUP="lp"
62SUBSYSTEM=="ppdev", GROUP="lp"
63KERNEL=="pt[0-9]*", GROUP="tape"
64KERNEL=="pht[0-9]*", GROUP="tape"
65
66# sound devices
67SUBSYSTEM=="sound", GROUP="audio"
68
69# ieee1394 devices
70KERNEL=="raw1394", GROUP="disk"
71KERNEL=="dv1394*", GROUP="video"
72KERNEL=="video1394*", GROUP="video"
73
74# input devices
75KERNEL=="event[0-9]*", MODE="0664"
76KERNEL=="js[0-9]*", MODE="0664"
77
78# AOE character devices
79SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
80SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
81
diff --git a/meta/recipes-core/udev/files/slugos/mount.blacklist b/meta/recipes-core/udev/files/slugos/mount.blacklist
new file mode 100644
index 0000000000..210702f837
--- /dev/null
+++ b/meta/recipes-core/udev/files/slugos/mount.blacklist
@@ -0,0 +1,4 @@
1ram[0-9]$
2mtdblock[0-9]$
3hd[a-z]$
4sd[a-z]$
diff --git a/meta/recipes-core/udev/files/spitz/mount.blacklist b/meta/recipes-core/udev/files/spitz/mount.blacklist
new file mode 100644
index 0000000000..aee308f9b8
--- /dev/null
+++ b/meta/recipes-core/udev/files/spitz/mount.blacklist
@@ -0,0 +1,4 @@
1/dev/mtdblock
2/dev/hda
3/dev/loop
4/dev/ram
diff --git a/meta/recipes-core/udev/files/tmpfs.patch b/meta/recipes-core/udev/files/tmpfs.patch
new file mode 100644
index 0000000000..9d0d8b4515
--- /dev/null
+++ b/meta/recipes-core/udev/files/tmpfs.patch
@@ -0,0 +1,16 @@
1
2#
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
4#
5
6--- udev-031/extras/start_udev~tmpfs 2004-09-10 17:10:03.000000000 -0400
7+++ udev-031/extras/start_udev 2004-09-11 15:18:15.560789160 -0400
8@@ -85,7 +85,7 @@
9 fi
10
11 echo "mounting... ramfs at $udev_root"
12-mount -n -t ramfs none $udev_root
13+mount -n -t ramfs none $udev_root || mount -n -t tmpfs none $udev_root
14
15 # propogate /udev from /sys
16 echo "Creating initial udev device nodes:"
diff --git a/meta/recipes-core/udev/files/tosa/mount.blacklist b/meta/recipes-core/udev/files/tosa/mount.blacklist
new file mode 100644
index 0000000000..c15b582298
--- /dev/null
+++ b/meta/recipes-core/udev/files/tosa/mount.blacklist
@@ -0,0 +1,3 @@
1/dev/mtdblock
2/dev/loop
3/dev/ram
diff --git a/meta/recipes-core/udev/files/udev-cache b/meta/recipes-core/udev/files/udev-cache
new file mode 100644
index 0000000000..77bbda6f1b
--- /dev/null
+++ b/meta/recipes-core/udev/files/udev-cache
@@ -0,0 +1,20 @@
1#!/bin/sh -e
2
3### BEGIN INIT INFO
4# Provides: udev-cache
5# Required-Start: mountall
6# Required-Stop:
7# Default-Start: S
8# Default-Stop:
9# Short-Description: cache /dev to speedup the udev next boot
10### END INIT INFO
11
12[ -d /sys/class ] || exit 1
13[ -r /proc/mounts ] || exit 1
14[ -x /sbin/udevd ] || exit 1
15
16if [ ! -e /etc/dev.tar ]; then
17 (cd /; tar cf /etc/dev.tar dev)
18fi
19
20exit 0
diff --git a/meta/recipes-core/udev/files/udev.rules b/meta/recipes-core/udev/files/udev.rules
new file mode 100644
index 0000000000..5c566f6cef
--- /dev/null
+++ b/meta/recipes-core/udev/files/udev.rules
@@ -0,0 +1,98 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# SCSI devices
17BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
18
19# USB devices
20BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
21BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
22BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
23BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
24BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
25BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
26BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
27 SYMLINK+="pilot"
28
29# usbfs-like devices
30SUBSYSTEM=="usb_device", \
31 PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
32
33# serial devices
34KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
35KERNEL=="capi[0-9]*", NAME="capi/%n"
36
37# video devices
38KERNEL=="card[0-9]*", NAME="dri/%k"
39
40# misc devices
41KERNEL=="hw_random", NAME="hwrng"
42KERNEL=="tun", NAME="net/%k"
43
44KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
45KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
46KERNEL=="pktcdvd", NAME="pktcdvd/control"
47
48KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
49KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
50KERNEL=="microcode", NAME="cpu/microcode"
51
52KERNEL=="umad*", NAME="infiniband/%k"
53KERNEL=="issm*", NAME="infiniband/%k"
54KERNEL=="uverbs*", NAME="infiniband/%k"
55KERNEL=="ucm", NAME="infiniband/%k"
56
57KERNEL=="buzzer", NAME="misc/buzzer"
58
59# ALSA devices
60KERNEL=="controlC[0-9]*", NAME="snd/%k"
61KERNEL=="hwC[D0-9]*", NAME="snd/%k"
62KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
63KERNEL=="midiC[D0-9]*", NAME="snd/%k"
64KERNEL=="timer", NAME="snd/%k"
65KERNEL=="seq", NAME="snd/%k"
66
67# ieee1394 devices
68KERNEL=="dv1394*", NAME="dv1394/%n"
69KERNEL=="video1394*", NAME="video1394/%n"
70
71# input devices
72KERNEL=="mice", NAME="input/%k"
73KERNEL=="mouse[0-9]*", NAME="input/%k"
74KERNEL=="event[0-9]*", NAME="input/%k"
75KERNEL=="js[0-9]*", NAME="input/%k"
76KERNEL=="ts[0-9]*", NAME="input/%k"
77KERNEL=="uinput", NAME="input/%k"
78
79# Zaptel
80KERNEL=="zapctl", NAME="zap/ctl"
81KERNEL=="zaptimer", NAME="zap/timer"
82KERNEL=="zapchannel", NAME="zap/channel"
83KERNEL=="zappseudo", NAME="zap/pseudo"
84KERNEL=="zap[0-9]*", NAME="zap/%n"
85
86# AOE character devices
87SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
88SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
89SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
90
91# device mapper creates its own device nodes, so ignore these
92KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
93KERNEL=="device-mapper", NAME="mapper/control"
94
95KERNEL="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
96
97# Firmware Helper
98ACTION=="add", SUBSYSTEM=="firmware", RUN+="/sbin/firmware_helper"
diff --git a/meta/recipes-core/udev/files/udev_network_queue.sh b/meta/recipes-core/udev/files/udev_network_queue.sh
new file mode 100644
index 0000000000..05e08e9d1b
--- /dev/null
+++ b/meta/recipes-core/udev/files/udev_network_queue.sh
@@ -0,0 +1,35 @@
1#! /bin/sh
2#
3# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
4# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
5#
6# Filename: udev_network_queue.sh
7# Date: 03-May-06
8
9do_start() {
10 if test -e /dev/udev_network_queue
11 then
12 echo "Activating queued NICs..."
13 for NIC in `cat /dev/udev_network_queue`
14 do
15 export INTERFACE="$NIC" ; export ACTION=add
16 /etc/udev/scripts/network.sh
17 done
18 echo ""
19 else
20 echo "No NICs queued"
21 fi
22}
23
24do_stop() {
25 /bin/true
26}
27
28case "$1" in
29start) do_start;;
30stop) do_stop;;
31restart) do_stop
32 do_start;;
33*) echo "Usage: `basename $0` [ start | stop | restart ]"
34 exit 0;;
35esac
diff --git a/meta/recipes-core/udev/files/udevsynthesize.patch b/meta/recipes-core/udev/files/udevsynthesize.patch
new file mode 100644
index 0000000000..7811188485
--- /dev/null
+++ b/meta/recipes-core/udev/files/udevsynthesize.patch
@@ -0,0 +1,776 @@
1--- udev-081/udevsynthesize.c.orig 2006-01-29 12:22:45.000000000 +0100
2+++ udev-081/udevsynthesize.c 2006-01-29 12:22:40.000000000 +0100
3@@ -0,0 +1,763 @@
4+/*
5+ * udevcoldplug.c
6+ *
7+ * Copyright (C) 2005 SUSE Linux Products GmbH
8+ *
9+ * Author:
10+ * Kay Sievers <kay.sievers@vrfy.org>
11+ *
12+ * Synthesize kernel events from sysfs information and pass them
13+ * to the udevd daemon.
14+ *
15+ * This program is free software; you can redistribute it and/or modify it
16+ * under the terms of the GNU General Public License as published by the
17+ * Free Software Foundation version 2 of the License.
18+ *
19+ * This program is distributed in the hope that it will be useful, but
20+ * WITHOUT ANY WARRANTY; without even the implied warranty of
21+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22+ * General Public License for more details.
23+ *
24+ * You should have received a copy of the GNU General Public License along
25+ * with this program; if not, write to the Free Software Foundation, Inc.,
26+ * 675 Mass Ave, Cambridge, MA 02139, USA.
27+ *
28+ */
29+
30+#include <stdlib.h>
31+#include <stddef.h>
32+#include <string.h>
33+#include <stdio.h>
34+#include <unistd.h>
35+#include <errno.h>
36+#include <ctype.h>
37+#include <fcntl.h>
38+#include <dirent.h>
39+#include <signal.h>
40+#include <syslog.h>
41+#include <sys/socket.h>
42+#include <sys/un.h>
43+#include <sys/wait.h>
44+#include <sys/stat.h>
45+#include <sys/types.h>
46+
47+#include "udev_libc_wrapper.h"
48+#include "udev.h"
49+#include "udevd.h"
50+#include "udev_version.h"
51+#include "logging.h"
52+
53+#include "list.h"
54+
55+#ifndef DT_DIR
56+#define DT_DIR 4
57+#endif
58+
59+static const char *udev_log_str;
60+static int udevd_sock = -1;
61+
62+#ifdef USE_LOG
63+void log_message(int priority, const char *format, ...)
64+{
65+ va_list args;
66+
67+ if (priority > udev_log_priority)
68+ return;
69+
70+ va_start(args, format);
71+ vsyslog(priority, format, args);
72+ va_end(args);
73+}
74+#endif
75+
76+struct device {
77+ struct list_head node;
78+ struct udevd_msg msg;
79+ size_t bufpos;
80+ char *path;
81+};
82+
83+static dev_t read_devt(const char *path)
84+{
85+ char filename[PATH_SIZE];
86+ char majorminor[64];
87+ unsigned int major, minor;
88+ ssize_t count;
89+ int fd;
90+
91+ snprintf(filename, sizeof(filename), "%s/%s", path, "dev");
92+ filename[sizeof(filename)-1] = '\0';
93+
94+ fd = open(filename, O_RDONLY);
95+ if (fd < 0)
96+ return 0;
97+
98+ count = read(fd, majorminor, sizeof(majorminor));
99+ close(fd);
100+ majorminor[count] = '\0';
101+ if (sscanf(majorminor, "%u:%u", &major, &minor) != 2)
102+ return 0;
103+ dbg("found major=%d, minor=%d", major, minor);
104+
105+ return makedev(major, minor);
106+}
107+
108+static ssize_t read_file(const char *directory, const char *file, char *str, size_t len)
109+{
110+ char filename[PATH_SIZE];
111+ ssize_t count;
112+ int fd;
113+
114+ memset(filename, 0, sizeof(filename));
115+ snprintf(filename, sizeof(filename), "%s/%s", directory, file);
116+ filename[sizeof(filename)-1] = '\0';
117+
118+ fd = open(filename, O_RDONLY);
119+ if (fd < 0)
120+ return -1;
121+
122+ count = read(fd, str, len-1);
123+ close(fd);
124+
125+ if (count > (ssize_t)len)
126+ count = len;
127+ str[count-1] = '\0';
128+
129+ return count;
130+}
131+
132+static ssize_t read_link(const char *directory, const char *file, char *str, size_t size)
133+{
134+ char filename[PATH_SIZE];
135+ char target[PATH_SIZE];
136+ int len;
137+ char *back;
138+ char *strip;
139+ int level = 1;
140+
141+ snprintf(filename, sizeof(filename), "%s/%s", directory, file);
142+ filename[sizeof(filename)-1] = '\0';
143+
144+ len = readlink(filename, target, sizeof(target)-1);
145+ if (len < 0)
146+ return -1;
147+ target[len] = '\0';
148+
149+ back = target;
150+ while (strncmp(back, "../", 3) == 0) {
151+ back += 3;
152+ level++;
153+ }
154+ while(level--) {
155+ strip = strrchr(filename, '/');
156+ if (!strip)
157+ return -1;
158+ strip[0] = '\0';
159+ }
160+
161+ snprintf(str, size, "%s/%s", filename, back);
162+ str[size-1] = '\0';
163+
164+ return len;
165+}
166+
167+static char *add_env_key(struct device *device, const char *key, const char *value)
168+{
169+ size_t pos = device->bufpos;
170+ device->bufpos += sprintf(&device->msg.envbuf[device->bufpos], "%s=%s", key, value)+1;
171+ return &device->msg.envbuf[pos];
172+}
173+
174+static struct device *device_create(const char *path, const char *subsystem, dev_t devt)
175+{
176+ struct device *device;
177+ const char *devpath = &path[strlen(sysfs_path)];
178+ char target[PATH_SIZE];
179+
180+ device = malloc(sizeof(struct device));
181+ if (device == NULL) {
182+ dbg("error malloc");
183+ return NULL;
184+ }
185+ memset(device, 0x00, sizeof(struct device));
186+
187+ device->path = add_env_key(device, "DEVPATH", devpath);
188+ device->path += strlen("DEVPATH=");
189+ add_env_key(device, "SUBSYSTEM", subsystem);
190+ add_env_key(device, "ACTION", "add");
191+ add_env_key(device, "UDEV_COLDPLUG", "1");
192+
193+ if (major(devt)) {
194+ char number[32];
195+ sprintf(number, "%u", major(devt));
196+ add_env_key(device, "MAJOR", number);
197+ sprintf(number, "%u", minor(devt));
198+ add_env_key(device, "MINOR", number);
199+ }
200+
201+ if (strncmp(devpath, "/block/", strlen("/block/")) == 0 ||
202+ strncmp(devpath, "/class/", strlen("/class/")) == 0) {
203+ char physpath[PATH_SIZE];
204+
205+ if (read_link(path, "device", physpath, sizeof(physpath)) > (ssize_t)strlen(sysfs_path)) {
206+ add_env_key(device, "PHYSDEVPATH", &physpath[strlen(sysfs_path)]);
207+ if (read_link(physpath, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) {
208+ char *pos = strrchr(target, '/');
209+ if (pos)
210+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]);
211+ }
212+ if (read_link(physpath, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) {
213+ char *pos = strrchr(target, '/');
214+ if (pos)
215+ add_env_key(device, "PHYSDEVBUS", &pos[1]);
216+ }
217+ }
218+ } else if (strncmp(devpath, "/devices/", strlen("/devices/")) == 0) {
219+ if (read_link(path, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) {
220+ char *pos = strrchr(target, '/');
221+ if (pos)
222+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]);
223+ }
224+ if (read_link(path, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) {
225+ char *pos = strrchr(target, '/');
226+ if (pos)
227+ add_env_key(device, "PHYSDEVBUS", &pos[1]);
228+ }
229+ }
230+
231+ return device;
232+}
233+
234+static int device_list_insert(struct list_head *device_list, struct device *device)
235+{
236+ struct device *loop_device;
237+
238+ dbg("insert: '%s'", device->path);
239+
240+ /* sort files in lexical order */
241+ list_for_each_entry(loop_device, device_list, node)
242+ if (strcmp(loop_device->path, device->path) > 0)
243+ break;
244+
245+ list_add_tail(&device->node, &loop_device->node);
246+
247+ return 0;
248+}
249+
250+static int add_device_udevd(struct device *device)
251+{
252+ size_t msg_len;
253+ struct sockaddr_un saddr;
254+ socklen_t addrlen;
255+ int retval;
256+
257+ memset(&saddr, 0x00, sizeof(struct sockaddr_un));
258+ saddr.sun_family = AF_LOCAL;
259+ /* use abstract namespace for socket path */
260+ strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH);
261+ addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
262+
263+ strcpy(device->msg.magic, UDEV_MAGIC);
264+ device->msg.type = UDEVD_UEVENT_UDEVSEND;
265+
266+ msg_len = offsetof(struct udevd_msg, envbuf) + device->bufpos;
267+ dbg("msg_len=%i", msg_len);
268+
269+ retval = sendto(udevd_sock, &device->msg, msg_len, 0, (struct sockaddr *)&saddr, addrlen);
270+ if (retval < 0)
271+ return -1;
272+
273+ return 0;
274+}
275+
276+static void exec_list(struct list_head *device_list, const char *first[], const char *last[])
277+{
278+ struct device *loop_device;
279+ struct device *tmp_device;
280+ int i;
281+
282+ /* handle the "first" type devices first */
283+ if (first)
284+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) {
285+ for (i = 0; first[i] != NULL; i++) {
286+ if (strncmp(loop_device->path, first[i], strlen(first[i])) == 0) {
287+ add_device_udevd(loop_device);
288+ list_del(&loop_device->node);
289+ free(loop_device);
290+ break;
291+ }
292+ }
293+ }
294+
295+ /* handle the devices we are allowed to, excluding the "last" type devices */
296+ if (last)
297+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) {
298+ int found = 0;
299+ for (i = 0; last[i] != NULL; i++) {
300+ if (strncmp(loop_device->path, last[i], strlen(last[i])) == 0) {
301+ found = 1;
302+ break;
303+ }
304+ }
305+ if (found)
306+ continue;
307+
308+ add_device_udevd(loop_device);
309+ list_del(&loop_device->node);
310+ free(loop_device);
311+ }
312+
313+ /* handle the rest of the devices */
314+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) {
315+ add_device_udevd(loop_device);
316+ list_del(&loop_device->node);
317+ free(loop_device);
318+ }
319+}
320+
321+static int udev_scan_class(void)
322+{
323+ char base[PATH_SIZE];
324+ DIR *dir;
325+ struct dirent *dent;
326+ LIST_HEAD(device_list);
327+
328+ /* we want /dev/null and /dev/console first */
329+ const char *first[] = {
330+ "/class/mem",
331+ "/class/tty",
332+ NULL,
333+ };
334+
335+ snprintf(base, sizeof(base), "%s/class", sysfs_path);
336+ base[sizeof(base)-1] = '\0';
337+
338+ dir = opendir(base);
339+ if (!dir)
340+ return -1;
341+
342+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
343+ char dirname[PATH_SIZE];
344+ DIR *dir2;
345+ struct dirent *dent2;
346+
347+ if (dent->d_name[0] == '.')
348+ continue;
349+
350+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name);
351+ dirname[sizeof(dirname)-1] = '\0';
352+
353+ dir2 = opendir(dirname);
354+ if (!dir2)
355+ continue;
356+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) {
357+ char dirname2[PATH_SIZE];
358+ struct device *device;
359+ dev_t devt;
360+
361+ if (dent2->d_name[0] == '.')
362+ continue;
363+ if (dent2->d_type != DT_DIR)
364+ continue;
365+
366+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name);
367+ dirname2[sizeof(dirname2)-1] = '\0';
368+ devt = read_devt(dirname2);
369+ device = device_create(dirname2, dent->d_name, devt);
370+
371+ if (strcmp(dent->d_name, "net") == 0 ||
372+ strcmp(dent->d_name, "bluetooth") == 0) {
373+ add_env_key(device, "INTERFACE", dent2->d_name);
374+ } else if (strcmp(dent->d_name, "pcmcia_socket") == 0 &&
375+ strlen(dent->d_name) > 14) {
376+ add_env_key(device, "SOCKET_NO",
377+ dent2->d_name + 14);
378+ }
379+
380+ device_list_insert(&device_list, device);
381+ }
382+ closedir(dir2);
383+ }
384+ closedir(dir);
385+ exec_list(&device_list, first, NULL);
386+
387+ return 0;
388+}
389+
390+static int udev_scan_block(void)
391+{
392+ char base[PATH_SIZE];
393+ DIR *dir;
394+ struct dirent *dent;
395+ LIST_HEAD(device_list);
396+
397+ /* dm wants to have the block devices around before it */
398+ const char *last[] = {
399+ "/block/dm",
400+ NULL,
401+ };
402+
403+ snprintf(base, sizeof(base), "%s/block", sysfs_path);
404+ base[sizeof(base)-1] = '\0';
405+
406+ dir = opendir(base);
407+ if (!dir)
408+ return -1;
409+
410+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
411+ char dirname[PATH_SIZE];
412+ struct device *device;
413+ struct dirent *dent2;
414+ DIR *dir2;
415+ dev_t devt;
416+
417+ if (dent->d_name[0] == '.')
418+ continue;
419+ if (dent->d_type != DT_DIR)
420+ continue;
421+
422+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name);
423+ dirname[sizeof(dirname)-1] = '\0';
424+ devt = read_devt(dirname);
425+ if (major(devt)) {
426+ device = device_create(dirname, "block", devt);
427+ device_list_insert(&device_list, device);
428+ }
429+
430+ /* look for partitions */
431+ dir2 = opendir(dirname);
432+ if (!dir2)
433+ continue;
434+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) {
435+ char dirname2[PATH_SIZE];
436+
437+ if (dent2->d_name[0] == '.')
438+ continue;
439+ if (dent2->d_type != DT_DIR)
440+ continue;
441+
442+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name);
443+ dirname2[sizeof(dirname2)-1] = '\0';
444+ devt = read_devt(dirname2);
445+ if (major(devt)) {
446+ device = device_create(dirname2, "block", devt);
447+ device_list_insert(&device_list, device);
448+ continue;
449+ }
450+ }
451+ closedir(dir2);
452+ }
453+ closedir(dir);
454+ exec_list(&device_list, NULL, last);
455+
456+ return 0;
457+}
458+
459+static int pci_handler(struct device *device)
460+{
461+ char path[PATH_SIZE];
462+ char value[PATH_SIZE];
463+ char vendor[PATH_SIZE];
464+ char product[PATH_SIZE];
465+ const char *name;
466+
467+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path);
468+ path[sizeof(path)-1] = '\0';
469+
470+ if (read_file(path, "modalias", value, sizeof(value)) > 0)
471+ add_env_key(device, "MODALIAS", value);
472+
473+ name = strrchr(device->path, '/');
474+ if (name)
475+ add_env_key(device, "PCI_SLOT_NAME", &name[1]);
476+
477+ if (read_file(path, "class", value, sizeof(value)) > 0)
478+ add_env_key(device, "PCI_CLASS", &value[2]);
479+
480+ if (read_file(path, "vendor", vendor, sizeof(vendor)) > 0 &&
481+ read_file(path, "device", product, sizeof(product)) > 0) {
482+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]);
483+ path[sizeof(value)-1] = '\0';
484+ add_env_key(device, "PCI_ID", value);
485+ }
486+
487+ if (read_file(path, "subsystem_vendor", vendor, sizeof(vendor)) > 0 &&
488+ read_file(path, "subsystem_device", product, sizeof(product)) > 0) {
489+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]);
490+ path[sizeof(value)-1] = '\0';
491+ add_env_key(device, "PCI_SUBSYS_ID", value);
492+ }
493+
494+ return 0;
495+}
496+
497+static int usb_handler(struct device *device)
498+{
499+ char path[PATH_SIZE];
500+ char value[PATH_SIZE];
501+ char str1[PATH_SIZE];
502+ char str2[PATH_SIZE];
503+ char str3[PATH_SIZE];
504+ unsigned int int1;
505+ unsigned int int2;
506+ unsigned int int3;
507+ char *pos;
508+
509+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path);
510+ path[sizeof(path)-1] = '\0';
511+
512+ /* device events have : in their directory name */
513+ pos = strrchr(path, '/');
514+ if (!strchr(pos, ':'))
515+ return 0; /* and do not have other variables */
516+
517+ if (read_file(path, "modalias", value, sizeof(value)) > 0)
518+ add_env_key(device, "MODALIAS", value);
519+
520+ if (read_file(path, "bInterfaceClass", str1, sizeof(str1)) > 0 &&
521+ read_file(path, "bInterfaceSubClass", str2, sizeof(str2)) > 0 &&
522+ read_file(path, "bInterfaceProtocol", str3, sizeof(str3)) > 0) {
523+ int1 = (int) strtol(str1, NULL, 16);
524+ int2 = (int) strtol(str2, NULL, 16);
525+ int3 = (int) strtol(str3, NULL, 16);
526+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3);
527+ path[sizeof(value)-1] = '\0';
528+ add_env_key(device, "INTERFACE", value);
529+ }
530+
531+ /* move to the parent directory */
532+ pos[0] = '\0';
533+
534+ if (read_file(path, "idVendor", str1, sizeof(str1)) > 0 &&
535+ read_file(path, "idProduct", str2, sizeof(str2)) > 0 &&
536+ read_file(path, "bcdDevice", str3, sizeof(str3)) > 0) {
537+ int1 = (int) strtol(str1, NULL, 16);
538+ int2 = (int) strtol(str2, NULL, 16);
539+ int3 = (int) strtol(str3, NULL, 16);
540+ snprintf(value, sizeof(value), "%x/%x/%x", int1, int2, int3);
541+ path[sizeof(value)-1] = '\0';
542+ add_env_key(device, "PRODUCT", value);
543+ }
544+
545+ if (read_file(path, "bDeviceClass", str1, sizeof(str1)) > 0 &&
546+ read_file(path, "bDeviceSubClass", str2, sizeof(str2)) > 0 &&
547+ read_file(path, "bDeviceProtocol", str3, sizeof(str3)) > 0) {
548+ int1 = (int) strtol(str1, NULL, 16);
549+ int2 = (int) strtol(str2, NULL, 16);
550+ int3 = (int) strtol(str3, NULL, 16);
551+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3);
552+ path[sizeof(value)-1] = '\0';
553+ add_env_key(device, "TYPE", value);
554+ }
555+
556+ if (read_file(path, "devnum", str2, sizeof(str2)) > 0) {
557+ pos = strrchr(path, 'b');
558+ int1 = (int) strtol(pos + 1, NULL, 16);
559+ int2 = (int) strtol(str2, NULL, 16);
560+ snprintf(value, sizeof(value),
561+ "/proc/bus/usb/%03d/%03d", int1, int2);
562+ path[sizeof(value)-1] = '\0';
563+ add_env_key(device, "DEVICE", value);
564+ }
565+
566+ return 0;
567+}
568+
569+static int serio_handler(struct device *device)
570+{
571+ char path[PATH_SIZE];
572+ char value[PATH_SIZE];
573+
574+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path);
575+ path[sizeof(path)-1] = '\0';
576+
577+ if (read_file(path, "modalias", value, sizeof(value)) > 0)
578+ add_env_key(device, "MODALIAS", value);
579+
580+ if (read_file(path, "id/type", value, sizeof(value)) > 0)
581+ add_env_key(device, "SERIO_TYPE", value);
582+
583+ if (read_file(path, "id/proto", value, sizeof(value)) > 0)
584+ add_env_key(device, "SERIO_PROTO", value);
585+
586+ if (read_file(path, "id/id", value, sizeof(value)) > 0)
587+ add_env_key(device, "SERIO_ID", value);
588+
589+ if (read_file(path, "id/extra", value, sizeof(value)) > 0)
590+ add_env_key(device, "SERIO_EXTRA", value);
591+
592+ return 0;
593+}
594+
595+static int ccw_handler(struct device *device)
596+{
597+ char path[PATH_SIZE];
598+ char value[PATH_SIZE], *tmp;
599+
600+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path);
601+ path[sizeof(path)-1] = '\0';
602+
603+ if (read_file(path, "modalias", value, sizeof(value)) > 0)
604+ add_env_key(device, "MODALIAS", value);
605+
606+ if (read_file(path, "cutype", value, sizeof(value)) > 0) {
607+ value[4] = 0;
608+ tmp = &value[5];
609+ add_env_key(device, "CU_TYPE", value);
610+ add_env_key(device, "CU_MODEL", tmp);
611+ }
612+
613+ if (read_file(path, "devtype", value, sizeof(value)) > 0) {
614+ if (value[0] == 'n') {
615+ add_env_key(device, "DEV_TYPE", "0000");
616+ add_env_key(device, "DEV_MODEL", "00");
617+ }
618+ else {
619+ value[4] = 0;
620+ tmp = &value[5];
621+ add_env_key(device, "DEV_TYPE", value);
622+ add_env_key(device, "DEV_MODEL", tmp);
623+ }
624+ }
625+
626+ return 0;
627+}
628+
629+static int modalias_handler(struct device *device)
630+{
631+ char path[PATH_SIZE];
632+ char value[PATH_SIZE];
633+
634+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path);
635+ path[sizeof(path)-1] = '\0';
636+
637+ if (read_file(path, "modalias", value, sizeof(value)) > 0)
638+ add_env_key(device, "MODALIAS", value);
639+
640+ return 0;
641+}
642+
643+static int udev_scan_bus(const char *bus, int bus_handler(struct device *device))
644+{
645+ char base[PATH_SIZE];
646+ DIR *dir;
647+ struct dirent *dent;
648+ LIST_HEAD(device_list);
649+
650+ snprintf(base, sizeof(base), "%s/bus/%s/devices", sysfs_path, bus);
651+ base[sizeof(base)-1] = '\0';
652+
653+ dir = opendir(base);
654+ if (!dir)
655+ return -1;
656+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
657+ char devpath[PATH_SIZE];
658+ struct device *device;
659+
660+ if (dent->d_name[0] == '.')
661+ continue;
662+
663+ if (read_link(base, dent->d_name, devpath, sizeof(devpath)) < 0)
664+ continue;
665+
666+ device = device_create(devpath, bus, makedev(0, 0));
667+ if (bus_handler) {
668+ if (bus_handler(device) < 0) {
669+ dbg("'%s' bus handler skipped event", devpath);
670+ free(device);
671+ continue;
672+ }
673+ }
674+
675+ device_list_insert(&device_list, device);
676+ }
677+ closedir(dir);
678+ exec_list(&device_list, NULL, NULL);
679+
680+ return 0;
681+}
682+
683+static int udev_scan_devices(void)
684+{
685+ char base[PATH_SIZE];
686+ DIR *dir;
687+ struct dirent *dent;
688+
689+ snprintf(base, sizeof(base), "%s/bus", sysfs_path);
690+ base[sizeof(base)-1] = '\0';
691+
692+ dir = opendir(base);
693+ if (!dir)
694+ return -1;
695+
696+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
697+ if (dent->d_name[0] == '.')
698+ continue;
699+ if (dent->d_type != DT_DIR)
700+ continue;
701+
702+ /* add bus specific env values */
703+ if (strcmp(dent->d_name, "pci") == 0)
704+ udev_scan_bus("pci", pci_handler);
705+ else if (strcmp(dent->d_name, "usb") == 0)
706+ udev_scan_bus("usb", usb_handler);
707+ else if (strcmp(dent->d_name, "serio") == 0)
708+ udev_scan_bus("serio", serio_handler);
709+ else if (strcmp(dent->d_name, "ccw") == 0)
710+ udev_scan_bus("ccw", ccw_handler);
711+ else
712+ udev_scan_bus(dent->d_name, modalias_handler);
713+ }
714+ closedir(dir);
715+
716+ return 0;
717+}
718+
719+int main(int argc, char *argv[], char *envp[])
720+{
721+ LIST_HEAD(device_list);
722+ int i;
723+
724+ logging_init("udevcoldplug");
725+ udev_config_init(); sysfs_init();
726+ dbg("version %s", UDEV_VERSION);
727+
728+ udev_log_str = getenv("UDEV_LOG");
729+
730+ /* disable all logging if not explicitely requested */
731+ if (udev_log_str == NULL)
732+ udev_log_priority = 0;
733+
734+ for (i = 1 ; i < argc; i++) {
735+ char *arg = argv[i];
736+
737+ if (strcmp(arg, "help") == 0 || strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) {
738+ printf("Usage: udevcoldplug \n"
739+ " --help print this help text\n\n");
740+ exit(0);
741+ } else {
742+ fprintf(stderr, "unknown option\n\n");
743+ exit(1);
744+ }
745+ }
746+
747+ udevd_sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
748+ if (udevd_sock < 0) {
749+ err("error getting socket");
750+ return 1;
751+ }
752+
753+ /* create nodes for already available devices */
754+ udev_scan_class();
755+ udev_scan_block();
756+
757+ /* synthesize events for bus devices
758+ * may load modules or configure the device */
759+ udev_scan_devices();
760+
761+ if (udevd_sock >= 0)
762+ close(udevd_sock);
763+ logging_close();
764+
765+ return 0;
766+}
767--- udev-081/Makefile
768+++ udev-081/Makefile
769@@ -58,6 +58,7 @@ PROGRAMS = \
770 udevmonitor \
771 udevinfo \
772 udevtest \
773+ udevsynthesize \
774 udevstart
775
776 HEADERS = \
diff --git a/meta/recipes-core/udev/files/udevsynthesize.sh b/meta/recipes-core/udev/files/udevsynthesize.sh
new file mode 100644
index 0000000000..d58217c144
--- /dev/null
+++ b/meta/recipes-core/udev/files/udevsynthesize.sh
@@ -0,0 +1,51 @@
1#!/bin/sh -e
2
3load_input_modules() {
4 for module in mousedev evdev joydev; do
5 modprobe -q $module || true
6 done
7}
8
9if [ ! -e /sys/class/mem/null/uevent ]; then # <= 2.6.14
10 /lib/udev/udevsynthesize
11 load_input_modules
12 exit 0
13fi
14
15# replace $IFS with something which is not likely to appear in a sysfs path,
16# because some buggy drivers have spaces in their names
17oldifs="$IFS"
18IFS="|"
19
20for file in /sys/bus/*/devices/*/uevent /sys/class/*/*/uevent \
21 /sys/block/*/uevent /sys/block/*/*/uevent; do
22 case "$file" in
23 */device/uevent) ;; # skip followed device symlinks
24 */\*/*) ;;
25
26 */class/mem/*) # for /dev/null
27 first="$first${IFS}$file" ;;
28
29 */block/md[0-9]*)
30 last="$last${IFS}$file" ;;
31
32 *)
33 default="$default${IFS}$file" ;;
34 esac
35done
36
37for file in $first${IFS}$default${IFS}$last; do
38 [ "$file" ] || continue
39 echo 'add' > "$file" || true
40done
41
42IFS="$oldifs"
43
44case "$(uname -r)" in
45 2.6.1[0-5]|2.6.1[0-5][!0-9]*) # <= 2.6.15
46 load_input_modules
47 ;;
48esac
49
50exit 0
51
diff --git a/meta/recipes-core/udev/udev-092/arm_inotify_fix.patch b/meta/recipes-core/udev/udev-092/arm_inotify_fix.patch
new file mode 100644
index 0000000000..4bd0d4d9b9
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/arm_inotify_fix.patch
@@ -0,0 +1,17 @@
1Index: udev-092/udev_libc_wrapper.h
2===================================================================
3--- udev-092.orig/udev_libc_wrapper.h 2006-07-26 21:55:06.000000000 +0100
4+++ udev-092/udev_libc_wrapper.h 2006-07-26 21:55:37.000000000 +0100
5@@ -58,9 +58,9 @@
6 # define __NR_inotify_add_watch 152
7 # define __NR_inotify_rm_watch 156
8 #elif defined (__arm__)
9-# define __NR_inotify_init 316
10-# define __NR_inotify_add_watch 317
11-# define __NR_inotify_rm_watch 318
12+# define __NR_inotify_init __NR_SYSCALL_BASE+316
13+# define __NR_inotify_add_watch __NR_SYSCALL_BASE+317
14+# define __NR_inotify_rm_watch __NR_SYSCALL_BASE+318
15 #elif defined (__sh__)
16 # define __NR_inotify_init 290
17 # define __NR_inotify_add_watch 291
diff --git a/meta/recipes-core/udev/udev-092/flags.patch b/meta/recipes-core/udev/udev-092/flags.patch
new file mode 100644
index 0000000000..492a39881c
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/flags.patch
@@ -0,0 +1,51 @@
1--- udev-089/Makefile.orig 2006-04-08 13:32:53.000000000 +0200
2+++ udev-089/Makefile 2006-04-08 13:34:27.000000000 +0200
3@@ -117,28 +117,28 @@
4 AR = $(CROSS_COMPILE)ar
5 RANLIB = $(CROSS_COMPILE)ranlib
6
7-CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
8+override CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
9 WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
10 -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
11 -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
12-CFLAGS += $(WARNINGS)
13+override CFLAGS += $(WARNINGS)
14
15 LDFLAGS = -Wl,-warn-common
16
17 OPTFLAGS = -Os
18-CFLAGS += $(OPTFLAGS)
19+override CFLAGS += $(OPTFLAGS)
20
21 ifeq ($(strip $(USE_LOG)),true)
22- CFLAGS += -DUSE_LOG
23+ override CFLAGS += -DUSE_LOG
24 endif
25
26 # if DEBUG is enabled, then we do not strip
27 ifeq ($(strip $(DEBUG)),true)
28- CFLAGS += -DDEBUG
29+ override CFLAGS += -DDEBUG
30 endif
31
32 ifeq ($(strip $(USE_GCOV)),true)
33- CFLAGS += -fprofile-arcs -ftest-coverage
34+ override CFLAGS += -fprofile-arcs -ftest-coverage
35 LDFLAGS += -fprofile-arcs
36 endif
37
38@@ -151,11 +151,11 @@
39 ifeq ($(strip $(USE_SELINUX)),true)
40 UDEV_OBJS += udev_selinux.o
41 LIB_OBJS += -lselinux -lsepol
42- CFLAGS += -DUSE_SELINUX
43+ override CFLAGS += -DUSE_SELINUX
44 endif
45
46 ifeq ($(strip $(USE_STATIC)),true)
47- CFLAGS += -DUSE_STATIC
48+ override CFLAGS += -DUSE_STATIC
49 LDFLAGS += -static
50 endif
51
diff --git a/meta/recipes-core/udev/udev-092/init b/meta/recipes-core/udev/udev-092/init
new file mode 100644
index 0000000000..5a60d52a9a
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/init
@@ -0,0 +1,227 @@
1#!/bin/sh -e
2### BEGIN INIT INFO
3# Provides: udev
4# Required-Start: mountvirtfs
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8# Short-Description: Start udevd, populate /dev and load drivers.
9### END INIT INFO
10
11# we need to unmount /dev/pts/ and remount it later over the tmpfs
12unmount_devpts() {
13 if mountpoint -q /dev/pts/; then
14 umount -l /dev/pts/
15 fi
16
17 if mountpoint -q /dev/shm/; then
18 umount -l /dev/shm/
19 fi
20}
21
22# mount a tmpfs over /dev, if somebody did not already do it
23mount_tmpfs() {
24 if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then
25 return
26 fi
27
28 # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory.
29 # /etc/udev/ is recycled as a temporary mount point because it's the only
30 # directory which is guaranteed to be available.
31 mount -n -o bind /dev /etc/udev
32
33 if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then
34 umount /etc/udev
35 echo "udev requires tmpfs support, not started."
36 exit 1
37 fi
38
39 mkdir -p /dev/.static/dev
40 chmod 700 /dev/.static/
41 # The mount options in busybox are non-standard...
42 if test -x /bin/mount.util-linux
43 then
44 /bin/mount.util-linux --move /etc/udev /dev/.static/dev
45 elif test -x /bin/busybox
46 then
47 busybox mount -n -o move /etc/udev /dev/.static/dev
48 else
49 echo "udev requires an identifiable mount command, not started."
50 umount /etc/udev
51 umount /dev
52 exit 1
53 fi
54}
55
56# I hate this hack. -- Md
57make_extra_nodes() {
58 if [ "$(echo /lib/udev/devices/*)" != "/lib/udev/devices/*" ]; then
59 cp -a /lib/udev/devices/* /dev/
60 fi
61
62 [ -e /etc/udev/links.conf ] || return 0
63 grep '^[^#]' /etc/udev/links.conf | \
64 while read type name arg1; do
65 [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue
66 case "$type" in
67 L) ln -s $arg1 /dev/$name ;;
68 D) mkdir -p /dev/$name ;;
69 M) mknod -m 600 /dev/$name $arg1 ;;
70 *) echo "links.conf: unparseable line ($type $name $arg1)" ;;
71 esac
72 done
73}
74
75supported_kernel() {
76 case "$(uname -r)" in
77 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
78 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;;
79 esac
80 return 0
81}
82
83set_hotplug_handler() {
84 case "$(uname -r)" in
85 2.6.1[0-4]|2.6.1[0-4][!0-9]*) HANDLER='/sbin/udevsend' ;;
86 esac
87 echo $HANDLER > /proc/sys/kernel/hotplug
88}
89
90# shell version of /usr/bin/tty
91my_tty() {
92 [ -x /bin/readlink ] || return 0
93 [ -e /proc/self/fd/0 ] || return 0
94 readlink --silent /proc/self/fd/0 || true
95}
96
97warn_if_interactive() {
98 if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then
99 return
100 fi
101
102 TTY=$(my_tty)
103 if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then
104 return
105 fi
106
107 printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n"
108 printf "has been run from an interactive shell.\n"
109 printf "It will probably not do what you expect, so this script will wait\n"
110 printf "60 seconds before continuing. Press ^C to stop it.\n"
111 printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n"
112 sleep 60
113}
114
115##############################################################################
116
117PATH="/sbin:/bin:/usr/bin"
118
119[ -x /sbin/udevd ] || exit 0
120
121# defaults
122tmpfs_size="10M"
123udev_root="/dev"
124udevd_timeout=30
125
126. /etc/udev/udev.conf
127
128if ! supported_kernel; then
129 echo "udev requires a kernel >= 2.6.12, not started."
130 exit 1
131fi
132
133if [ ! -e /proc/filesystems ]; then
134 echo "udev requires a mounted procfs, not started."
135 exit 1
136fi
137
138if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then
139 echo "udev requires tmpfs support, not started."
140 exit 1
141fi
142
143if [ ! -d /sys/class/ ]; then
144 echo "udev requires a mounted sysfs, not started."
145 exit 1
146fi
147
148if [ ! -e /proc/sys/kernel/hotplug ]; then
149 echo "udev requires hotplug support, not started."
150 exit 1
151fi
152
153##############################################################################
154
155# When modifying this script, do not forget that between the time that
156# the new /dev has been mounted and udevsynthesize has been run there will be
157# no /dev/null. This also means that you cannot use the "&" shell command.
158
159case "$1" in
160 start)
161 if [ -e "$udev_root/.udev/" ]; then
162 if mountpoint -q /dev/; then
163 TMPFS_MOUNTED=1
164 else
165 echo ".udev/ already exists on the static $udev_root!"
166 fi
167 else
168 warn_if_interactive
169 fi
170
171 echo "Starting the hotplug events dispatcher" "udevd"
172 udevd --daemon
173
174 set_hotplug_handler
175
176 if [ -z "$TMPFS_MOUNTED" ]; then
177 unmount_devpts
178 mount_tmpfs
179 [ -d /proc/1 ] || mount -n /proc
180 fi
181
182 # if this directory is not present /dev will not be updated by udev
183 mkdir -p /dev/.udev/ /dev/.udev/db/ /dev/.udev/queue/ /dev/.udevdb/
184 # /dev/null must be created before udevd is started
185 make_extra_nodes
186
187 echo "Synthesizing the initial hotplug events"
188 udevsynthesize
189
190 # wait for the udevd childs to finish
191 echo "Waiting for /dev to be fully populated"
192 while [ -d /dev/.udev/queue/ ]; do
193 sleep 1
194 udevd_timeout=$(($udevd_timeout - 1))
195 if [ $udevd_timeout -eq 0 ]; then
196 # ps axf
197 break
198 fi
199 done
200 if [ $udevd_timeout -eq 0 ]; then
201 echo 'timeout'
202 fi
203 ;;
204
205 stop)
206 echo "Stopping the hotplug events dispatcher" "udevd"
207 start-stop-daemon --stop --name udevd --quiet
208 ;;
209
210 restart|force-reload)
211 echo "Stopping the hotplug events dispatcher" "udevd"
212 if start-stop-daemon --stop --name udevd --quiet ; then
213 exit 1
214 fi
215
216 echo "Starting the hotplug events dispatcher" "udevd"
217 udevd --daemon
218 ;;
219
220 *)
221 echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}"
222 exit 1
223 ;;
224esac
225
226exit 0
227
diff --git a/meta/recipes-core/udev/udev-092/local.rules b/meta/recipes-core/udev/udev-092/local.rules
new file mode 100644
index 0000000000..5b926018f5
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/local.rules
@@ -0,0 +1,31 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
diff --git a/meta/recipes-core/udev/udev-092/permissions.rules b/meta/recipes-core/udev/udev-092/permissions.rules
new file mode 100644
index 0000000000..8da35c3090
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/permissions.rules
@@ -0,0 +1,109 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
5SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
6# only needed for kernels < 2.6.16
7SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
8# only needed for kernels < 2.6.17
9SUBSYSTEM=="net", ENV{PHYSDEVDRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
10
11# default permissions for block devices
12SUBSYSTEM=="block", GROUP="disk"
13SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"
14
15# IDE devices
16BUS=="ide", KERNEL=="hd[a-z]|pcd[0-9]*", DRIVER=="ide-cdrom|pcd", \
17 IMPORT{program}="cdrom_id --export $tempnode"
18ENV{ID_CDROM}=="?*", GROUP="cdrom"
19BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape"
20BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape"
21
22# SCSI devices
23BUS=="scsi", SYSFS{type}=="1", GROUP="tape"
24BUS=="scsi", SYSFS{type}=="3", SYSFS{vendor}=="HP", GROUP="scanner"
25BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom"
26BUS=="scsi", SYSFS{type}=="6", GROUP="scanner"
27
28# USB devices
29BUS=="usb", KERNEL=="legousbtower*", MODE="0666"
30BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp"
31
32# usbfs-like devices
33SUBSYSTEM=="usb_device", MODE="0664"
34
35# iRiver music players
36SUBSYSTEM=="usb_device", GROUP="plugdev", \
37 SYSFS{idVendor}=="4102", SYSFS{idProduct}=="10[01][135789]"
38
39# serial devices
40SUBSYSTEM=="tty", GROUP="dialout"
41SUBSYSTEM=="capi", GROUP="dialout"
42SUBSYSTEM=="slamr", GROUP="dialout"
43SUBSYSTEM=="zaptel", GROUP="dialout"
44
45# vc devices (all members of the tty subsystem)
46KERNEL=="ptmx", MODE="0666", GROUP="root"
47KERNEL=="console", MODE="0600", GROUP="root"
48KERNEL=="tty", MODE="0666", GROUP="root"
49KERNEL=="tty[0-9]*", GROUP="root"
50KERNEL=="pty*", MODE="0666", GROUP="tty"
51
52# video devices
53SUBSYSTEM=="video4linux", GROUP="video"
54SUBSYSTEM=="drm", GROUP="video"
55SUBSYSTEM=="dvb", GROUP="video"
56SUBSYSTEM=="em8300", GROUP="video"
57SUBSYSTEM=="graphics", GROUP="video"
58SUBSYSTEM=="nvidia", GROUP="video"
59
60# misc devices
61KERNEL=="random", MODE="0666"
62KERNEL=="urandom", MODE="0666"
63KERNEL=="mem", MODE="0640", GROUP="kmem"
64KERNEL=="kmem", MODE="0640", GROUP="kmem"
65KERNEL=="port", MODE="0640", GROUP="kmem"
66KERNEL=="full", MODE="0666"
67KERNEL=="null", MODE="0666"
68KERNEL=="zero", MODE="0666"
69KERNEL=="inotify", MODE="0666"
70KERNEL=="sgi_fetchop", MODE="0666"
71KERNEL=="sonypi", MODE="0666"
72KERNEL=="agpgart", GROUP="video"
73KERNEL=="nvram", GROUP="nvram"
74KERNEL=="rtc", GROUP="audio"
75KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss"
76KERNEL=="fuse", GROUP="fuse"
77
78KERNEL=="cdemu[0-9]*", GROUP="cdrom"
79KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
80KERNEL=="pktcdvd", MODE="0644"
81
82KERNEL=="uverbs*", GROUP="rdma"
83KERNEL=="ucm*", GROUP="rdma"
84
85# printers and parallel devices
86SUBSYSTEM=="printer", GROUP="lp"
87SUBSYSTEM=="ppdev", GROUP="lp"
88KERNEL=="pt[0-9]*", GROUP="tape"
89KERNEL=="pht[0-9]*", GROUP="tape"
90
91# sound devices
92SUBSYSTEM=="sound", GROUP="audio"
93
94# ieee1394 devices
95KERNEL=="raw1394", GROUP="disk"
96KERNEL=="dv1394*", GROUP="video"
97KERNEL=="video1394*", GROUP="video"
98
99# input devices
100KERNEL=="event[0-9]*", SYSFS{name}=="*dvb*|*DVB*|* IR *" \
101 MODE="0664", GROUP="video"
102KERNEL=="js[0-9]*", MODE="0664"
103
104# AOE character devices
105SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
106SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
107
108LABEL="permissions_end"
109
diff --git a/meta/recipes-core/udev/udev-092/udev.rules b/meta/recipes-core/udev/udev-092/udev.rules
new file mode 100644
index 0000000000..72be706e84
--- /dev/null
+++ b/meta/recipes-core/udev/udev-092/udev.rules
@@ -0,0 +1,102 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# SCSI devices
17BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
18
19# USB devices
20BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
21BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
22BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
23BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
24BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
25BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
26BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
27 SYMLINK+="pilot"
28
29# usbfs-like devices
30SUBSYSTEM=="usb_device", \
31 PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
32
33# serial devices
34KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
35KERNEL=="capi[0-9]*", NAME="capi/%n"
36
37# video devices
38KERNEL=="card[0-9]*", NAME="dri/%k"
39
40# misc devices
41KERNEL=="hw_random", NAME="hwrng"
42KERNEL=="tun", NAME="net/%k"
43
44KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
45KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
46KERNEL=="pktcdvd", NAME="pktcdvd/control"
47
48KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
49KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
50KERNEL=="microcode", NAME="cpu/microcode"
51
52KERNEL=="umad*", NAME="infiniband/%k"
53KERNEL=="issm*", NAME="infiniband/%k"
54KERNEL=="uverbs*", NAME="infiniband/%k"
55KERNEL=="ucm", NAME="infiniband/%k"
56
57KERNEL=="buzzer", NAME="misc/buzzer"
58
59# ALSA devices
60KERNEL=="controlC[0-9]*", NAME="snd/%k"
61KERNEL=="hwC[D0-9]*", NAME="snd/%k"
62KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
63KERNEL=="midiC[D0-9]*", NAME="snd/%k"
64KERNEL=="timer", NAME="snd/%k"
65KERNEL=="seq", NAME="snd/%k"
66
67# ieee1394 devices
68KERNEL=="dv1394*", NAME="dv1394/%n"
69KERNEL=="video1394*", NAME="video1394/%n"
70
71# input devices
72KERNEL=="mice", NAME="input/%k"
73KERNEL=="mouse[0-9]*", NAME="input/%k"
74KERNEL=="event[0-9]*", NAME="input/%k"
75KERNEL=="js[0-9]*", NAME="input/%k"
76KERNEL=="ts[0-9]*", NAME="input/%k"
77KERNEL=="uinput", NAME="input/%k"
78
79# Zaptel
80KERNEL=="zapctl", NAME="zap/ctl"
81KERNEL=="zaptimer", NAME="zap/timer"
82KERNEL=="zapchannel", NAME="zap/channel"
83KERNEL=="zappseudo", NAME="zap/pseudo"
84KERNEL=="zap[0-9]*", NAME="zap/%n"
85
86# AOE character devices
87SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
88SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
89SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
90
91# device mapper creates its own device nodes, so ignore these
92KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
93KERNEL=="device-mapper", NAME="mapper/control"
94
95KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
96
97# Firmware Helper
98ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper"
99
100# Samsung UARTS
101KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
102
diff --git a/meta/recipes-core/udev/udev-115/flags.patch b/meta/recipes-core/udev/udev-115/flags.patch
new file mode 100644
index 0000000000..13f20eb6a8
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/flags.patch
@@ -0,0 +1,56 @@
1---
2 Makefile | 16 ++++++++--------
3 1 file changed, 8 insertions(+), 8 deletions(-)
4
5Index: udev-115/Makefile
6===================================================================
7--- udev-115.orig/Makefile 2007-08-24 01:29:54.000000000 +0200
8+++ udev-115/Makefile 2007-09-20 17:21:45.000000000 +0200
9@@ -112,39 +112,39 @@
10 AR = $(CROSS_COMPILE)ar
11 RANLIB = $(CROSS_COMPILE)ranlib
12
13-CFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
14+override CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
15 WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
16 -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
17 -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
18-CFLAGS += $(WARNINGS)
19+override CFLAGS += $(WARNINGS)
20
21 LDFLAGS += -Wl,-warn-common,--as-needed
22
23 OPTFLAGS = -Os
24-CFLAGS += $(OPTFLAGS)
25+override CFLAGS += $(OPTFLAGS)
26
27 ifeq ($(strip $(USE_LOG)),true)
28- CFLAGS += -DUSE_LOG
29+ override CFLAGS += -DUSE_LOG
30 endif
31
32 # if DEBUG is enabled, then we do not strip
33 ifeq ($(strip $(DEBUG)),true)
34- CFLAGS += -DDEBUG
35+ override CFLAGS += -DDEBUG
36 endif
37
38 ifeq ($(strip $(USE_GCOV)),true)
39- CFLAGS += -fprofile-arcs -ftest-coverage
40+ override CFLAGS += -fprofile-arcs -ftest-coverage
41 LDFLAGS += -fprofile-arcs
42 endif
43
44 ifeq ($(strip $(USE_SELINUX)),true)
45 UDEV_OBJS += udev_selinux.o
46 LIB_OBJS += -lselinux -lsepol
47- CFLAGS += -DUSE_SELINUX
48+ override CFLAGS += -DUSE_SELINUX
49 endif
50
51 ifeq ($(strip $(USE_STATIC)),true)
52- CFLAGS += -DUSE_STATIC
53+ override CFLAGS += -DUSE_STATIC
54 LDFLAGS += -static
55 endif
56
diff --git a/meta/recipes-core/udev/udev-115/init b/meta/recipes-core/udev/udev-115/init
new file mode 100644
index 0000000000..c882c75607
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/init
@@ -0,0 +1,48 @@
1export TZ=/etc/localtime
2
3[ -d /sys/class ] || exit 1
4[ -r /proc/mounts ] || exit 1
5[ -x /sbin/udevd ] || exit 1
6[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
7
8kill_udevd() {
9 if [ -x /sbin/pidof ]; then
10 pid=`/sbin/pidof -x udevd`
11 [ -n "$pid" ] && kill $pid
12 fi
13}
14
15export ACTION=add
16# propagate /dev from /sys
17echo -n "Starting udev"
18
19# mount the tmpfs on /dev, if not already done
20LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
21 mount -n -o mode=0755 -t tmpfs none "/dev"
22 mkdir -m 0755 /dev/pts
23 mkdir -m 0755 /dev/shm
24}
25
26if [ -e /etc/dev.tar ]; then
27 (cd /; tar xf /etc/dev.tar)
28 not_first_boot=1
29fi
30
31# make_extra_nodes
32kill_udevd > "/dev/null" 2>&1
33
34 # trigger the sorted events
35 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
36 /sbin/udevd -d
37
38 /sbin/udevcontrol env STARTUP=1
39 if [ "$not_first_boot" != "" ];then
40 /sbin/udevtrigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
41 (/sbin/udevsettle --timeout=3; /sbin/udevcontrol env STARTUP=)&
42 else
43 /sbin/udevtrigger
44 /sbin/udevsettle
45 fi
46
47echo
48exit 0
diff --git a/meta/recipes-core/udev/udev-115/local.rules b/meta/recipes-core/udev/udev-115/local.rules
new file mode 100644
index 0000000000..5b926018f5
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/local.rules
@@ -0,0 +1,31 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
diff --git a/meta/recipes-core/udev/udev-115/noasmlinkage.patch b/meta/recipes-core/udev/udev-115/noasmlinkage.patch
new file mode 100644
index 0000000000..5824d29590
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/noasmlinkage.patch
@@ -0,0 +1,36 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6---
7 udevd.c | 2 +-
8 udevstart.c | 2 +-
9 2 files changed, 2 insertions(+), 2 deletions(-)
10
11Index: udev-115/udevd.c
12===================================================================
13--- udev-115.orig/udevd.c 2007-08-24 01:29:54.000000000 +0200
14+++ udev-115/udevd.c 2007-09-20 17:04:51.000000000 +0200
15@@ -767,7 +767,7 @@
16 return msg;
17 }
18
19-static void asmlinkage sig_handler(int signum)
20+static void sig_handler(int signum)
21 {
22 switch (signum) {
23 case SIGINT:
24Index: udev-115/udevstart.c
25===================================================================
26--- udev-115.orig/udevstart.c 2007-08-24 01:29:54.000000000 +0200
27+++ udev-115/udevstart.c 2007-09-20 17:04:51.000000000 +0200
28@@ -304,7 +304,7 @@
29 }
30 }
31
32-static void asmlinkage sig_handler(int signum)
33+static void sig_handler(int signum)
34 {
35 switch (signum) {
36 case SIGALRM:
diff --git a/meta/recipes-core/udev/udev-115/permissions.rules b/meta/recipes-core/udev/udev-115/permissions.rules
new file mode 100644
index 0000000000..99e03b1036
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/permissions.rules
@@ -0,0 +1,101 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
5SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
6# only needed for kernels < 2.6.16
7SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
8# only needed for kernels < 2.6.17
9SUBSYSTEM=="net", ENV{PHYSDEVDRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
10
11# default permissions for block devices
12SUBSYSTEM=="block", GROUP="disk"
13SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"
14
15# IDE devices
16BUS=="ide", KERNEL=="hd[a-z]|pcd[0-9]*", DRIVER=="ide-cdrom|pcd", \
17 IMPORT{program}="cdrom_id --export $tempnode"
18ENV{ID_CDROM}=="?*", GROUP="cdrom"
19BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape"
20BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape"
21
22# SCSI devices
23BUS=="scsi", SYSFS{type}=="1", GROUP="tape"
24BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom"
25
26# USB devices
27BUS=="usb", KERNEL=="legousbtower*", MODE="0666"
28BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp"
29
30# usbfs-like devices
31SUBSYSTEM=="usb_device", MODE="0664"
32
33# iRiver music players
34SUBSYSTEM=="usb_device", GROUP="plugdev", \
35 SYSFS{idVendor}=="4102", SYSFS{idProduct}=="10[01][135789]"
36
37# serial devices
38SUBSYSTEM=="tty", GROUP="dialout"
39SUBSYSTEM=="capi", GROUP="dialout"
40SUBSYSTEM=="slamr", GROUP="dialout"
41SUBSYSTEM=="zaptel", GROUP="dialout"
42
43# vc devices (all members of the tty subsystem)
44KERNEL=="ptmx", MODE="0666", GROUP="root"
45KERNEL=="console", MODE="0600", GROUP="root"
46KERNEL=="tty", MODE="0666", GROUP="root"
47KERNEL=="tty[0-9]*", GROUP="root"
48KERNEL=="pty*", MODE="0666", GROUP="tty"
49
50# video devices
51SUBSYSTEM=="video4linux", GROUP="video"
52SUBSYSTEM=="drm", GROUP="video"
53SUBSYSTEM=="dvb", GROUP="video"
54SUBSYSTEM=="em8300", GROUP="video"
55SUBSYSTEM=="graphics", GROUP="video"
56SUBSYSTEM=="nvidia", GROUP="video"
57
58# misc devices
59KERNEL=="random", MODE="0666"
60KERNEL=="urandom", MODE="0666"
61KERNEL=="mem", MODE="0640", GROUP="kmem"
62KERNEL=="kmem", MODE="0640", GROUP="kmem"
63KERNEL=="port", MODE="0640", GROUP="kmem"
64KERNEL=="full", MODE="0666"
65KERNEL=="null", MODE="0666"
66KERNEL=="zero", MODE="0666"
67KERNEL=="inotify", MODE="0666"
68KERNEL=="sgi_fetchop", MODE="0666"
69KERNEL=="sonypi", MODE="0666"
70KERNEL=="agpgart", GROUP="video"
71KERNEL=="rtc", GROUP="audio"
72
73KERNEL=="cdemu[0-9]*", GROUP="cdrom"
74KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
75KERNEL=="pktcdvd", MODE="0644"
76
77# printers and parallel devices
78SUBSYSTEM=="printer", GROUP="lp"
79SUBSYSTEM=="ppdev", GROUP="lp"
80KERNEL=="pt[0-9]*", GROUP="tape"
81KERNEL=="pht[0-9]*", GROUP="tape"
82
83# sound devices
84SUBSYSTEM=="sound", GROUP="audio"
85
86# ieee1394 devices
87KERNEL=="raw1394", GROUP="disk"
88KERNEL=="dv1394*", GROUP="video"
89KERNEL=="video1394*", GROUP="video"
90
91# input devices
92KERNEL=="event[0-9]*", SYSFS{name}=="*dvb*|*DVB*|* IR *" \
93 MODE="0664", GROUP="video"
94KERNEL=="js[0-9]*", MODE="0664"
95
96# AOE character devices
97SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
98SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
99
100LABEL="permissions_end"
101
diff --git a/meta/recipes-core/udev/udev-115/udev.rules b/meta/recipes-core/udev/udev-115/udev.rules
new file mode 100644
index 0000000000..4d29acac0c
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/udev.rules
@@ -0,0 +1,105 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# SCSI devices
17BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
18
19# USB devices
20BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
21BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
22BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
23BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
24BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
25BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
26BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
27 SYMLINK+="pilot"
28
29# usbfs-like devices
30SUBSYSTEM=="usb_device", \
31 PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
32
33# serial devices
34KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
35KERNEL=="capi[0-9]*", NAME="capi/%n"
36
37# video devices
38KERNEL=="card[0-9]*", NAME="dri/%k"
39
40# misc devices
41KERNEL=="hw_random", NAME="hwrng"
42KERNEL=="tun", NAME="net/%k"
43
44KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
45KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
46KERNEL=="pktcdvd", NAME="pktcdvd/control"
47
48KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
49KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
50KERNEL=="microcode", NAME="cpu/microcode"
51
52KERNEL=="umad*", NAME="infiniband/%k"
53KERNEL=="issm*", NAME="infiniband/%k"
54KERNEL=="uverbs*", NAME="infiniband/%k"
55KERNEL=="ucm", NAME="infiniband/%k"
56
57KERNEL=="buzzer", NAME="misc/buzzer"
58
59# ALSA devices
60KERNEL=="controlC[0-9]*", NAME="snd/%k"
61KERNEL=="hwC[D0-9]*", NAME="snd/%k"
62KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
63KERNEL=="midiC[D0-9]*", NAME="snd/%k"
64KERNEL=="timer", NAME="snd/%k"
65KERNEL=="seq", NAME="snd/%k"
66
67# ieee1394 devices
68KERNEL=="dv1394*", NAME="dv1394/%n"
69KERNEL=="video1394*", NAME="video1394/%n"
70
71# input devices
72KERNEL=="mice", NAME="input/%k"
73KERNEL=="mouse[0-9]*", NAME="input/%k"
74KERNEL=="event[0-9]*", NAME="input/%k"
75KERNEL=="js[0-9]*", NAME="input/%k"
76KERNEL=="ts[0-9]*", NAME="input/%k"
77KERNEL=="uinput", NAME="input/%k"
78
79# Zaptel
80KERNEL=="zapctl", NAME="zap/ctl"
81KERNEL=="zaptimer", NAME="zap/timer"
82KERNEL=="zapchannel", NAME="zap/channel"
83KERNEL=="zappseudo", NAME="zap/pseudo"
84KERNEL=="zap[0-9]*", NAME="zap/%n"
85
86# AOE character devices
87SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
88SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
89SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
90
91# device mapper creates its own device nodes, so ignore these
92KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
93KERNEL=="device-mapper", NAME="mapper/control"
94
95KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
96
97# Firmware Helper
98ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper"
99
100# Samsung UARTS
101KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
102
103# MXC UARTs
104KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
105
diff --git a/meta/recipes-core/udev/udev-115/udevtrigger_add_devname_filtering.patch b/meta/recipes-core/udev/udev-115/udevtrigger_add_devname_filtering.patch
new file mode 100644
index 0000000000..87cafcaa9d
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/udevtrigger_add_devname_filtering.patch
@@ -0,0 +1,104 @@
1---
2 udevtrigger.c | 40 ++++++++++++++++++++++++++++++++++++++++
3 1 file changed, 40 insertions(+)
4
5Index: udev-115/udevtrigger.c
6===================================================================
7--- udev-115.orig/udevtrigger.c 2007-08-24 01:29:54.000000000 +0200
8+++ udev-115/udevtrigger.c 2007-09-21 18:45:28.000000000 +0200
9@@ -39,6 +39,8 @@
10 LIST_HEAD(device_list);
11 LIST_HEAD(filter_subsystem_match_list);
12 LIST_HEAD(filter_subsystem_nomatch_list);
13+LIST_HEAD(filter_kernel_match_list);
14+LIST_HEAD(filter_kernel_nomatch_list);
15 LIST_HEAD(filter_attr_match_list);
16 LIST_HEAD(filter_attr_nomatch_list);
17
18@@ -218,6 +220,26 @@
19 return 0;
20 }
21
22+static int kernel_filtered(const char *kernel)
23+{
24+ struct name_entry *loop_name;
25+
26+ /* skip devices matching the prohibited kernel device names */
27+ list_for_each_entry(loop_name, &filter_kernel_nomatch_list, node)
28+ if (fnmatch(loop_name->name, kernel, 0) == 0)
29+ return 1;
30+
31+ /* skip devices not matching the listed kernel device names */
32+ if (!list_empty(&filter_kernel_match_list)) {
33+ list_for_each_entry(loop_name, &filter_kernel_match_list, node)
34+ if (fnmatch(loop_name->name, kernel, 0) == 0)
35+ return 0;
36+ return 1;
37+ }
38+
39+ return 0;
40+}
41+
42 static int attr_filtered(const char *path)
43 {
44 struct name_entry *loop_name;
45@@ -296,6 +318,9 @@
46 if (dent2->d_name[0] == '.')
47 continue;
48
49+ if (kernel_filtered(dent2->d_name))
50+ continue;
51+
52 strlcpy(dirname2, dirname, sizeof(dirname2));
53 strlcat(dirname2, "/", sizeof(dirname2));
54 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
55@@ -402,6 +427,9 @@
56 if (!strcmp(dent2->d_name, "device"))
57 continue;
58
59+ if (kernel_filtered(dent2->d_name))
60+ continue;
61+
62 strlcpy(dirname2, dirname, sizeof(dirname2));
63 strlcat(dirname2, "/", sizeof(dirname2));
64 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
65@@ -458,6 +486,8 @@
66 { "subsystem-nomatch", 1, NULL, 'S' },
67 { "attr-match", 1, NULL, 'a' },
68 { "attr-nomatch", 1, NULL, 'A' },
69+ { "kernel-match", 1, NULL, 'k' },
70+ { "kernel-nomatch", 1, NULL, 'K' },
71 {}
72 };
73
74@@ -496,6 +526,12 @@
75 case 'A':
76 name_list_add(&filter_attr_nomatch_list, optarg, 0);
77 break;
78+ case 'k':
79+ name_list_add(&filter_kernel_match_list, optarg, 0);
80+ break;
81+ case 'K':
82+ name_list_add(&filter_kernel_nomatch_list, optarg, 0);
83+ break;
84 case 'h':
85 printf("Usage: udevtrigger OPTIONS\n"
86 " --verbose print the list of devices while running\n"
87@@ -504,6 +540,8 @@
88 " marked as failed during a previous run\n"
89 " --subsystem-match=<subsystem> trigger devices from a matching subystem\n"
90 " --subsystem-nomatch=<subsystem> exclude devices from a matching subystem\n"
91+ " --kernel-match=<subsystem> trigger devices from a matching kernel device name\n"
92+ " --kernel-nomatch=<subsystem> exclude devices from a matching kernel device name\n"
93 " --attr-match=<file[=<value>]> trigger devices with a matching sysfs\n"
94 " attribute\n"
95 " --attr-nomatch=<file[=<value>]> exclude devices with a matching sysfs\n"
96@@ -549,6 +587,8 @@
97 exit:
98 name_list_cleanup(&filter_subsystem_match_list);
99 name_list_cleanup(&filter_subsystem_nomatch_list);
100+ name_list_cleanup(&filter_kernel_match_list);
101+ name_list_cleanup(&filter_kernel_nomatch_list);
102 name_list_cleanup(&filter_attr_match_list);
103 name_list_cleanup(&filter_attr_nomatch_list);
104
diff --git a/meta/recipes-core/udev/udev-115/vol_id_ld.patch b/meta/recipes-core/udev/udev-115/vol_id_ld.patch
new file mode 100644
index 0000000000..11126eef8d
--- /dev/null
+++ b/meta/recipes-core/udev/udev-115/vol_id_ld.patch
@@ -0,0 +1,17 @@
1---
2 extras/volume_id/Makefile | 2 +-
3 1 file changed, 1 insertion(+), 1 deletion(-)
4
5Index: udev-115/extras/volume_id/Makefile
6===================================================================
7--- udev-115.orig/extras/volume_id/Makefile 2007-09-20 18:17:59.000000000 +0200
8+++ udev-115/extras/volume_id/Makefile 2007-09-20 18:18:08.000000000 +0200
9@@ -44,7 +44,7 @@
10 ifeq ($(strip $(VOLUME_ID_STATIC)),true)
11 $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) lib/libvolume_id.a $(LIB_OBJS)
12 else
13- $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -Llib -lvolume_id $(LIB_OBJS)
14+ $(Q) $(LD) -Llib $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -lvolume_id $(LIB_OBJS)
15 endif
16
17 # man pages
diff --git a/meta/recipes-core/udev/udev-124/flags.patch b/meta/recipes-core/udev/udev-124/flags.patch
new file mode 100644
index 0000000000..13f20eb6a8
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/flags.patch
@@ -0,0 +1,56 @@
1---
2 Makefile | 16 ++++++++--------
3 1 file changed, 8 insertions(+), 8 deletions(-)
4
5Index: udev-115/Makefile
6===================================================================
7--- udev-115.orig/Makefile 2007-08-24 01:29:54.000000000 +0200
8+++ udev-115/Makefile 2007-09-20 17:21:45.000000000 +0200
9@@ -112,39 +112,39 @@
10 AR = $(CROSS_COMPILE)ar
11 RANLIB = $(CROSS_COMPILE)ranlib
12
13-CFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
14+override CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
15 WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
16 -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
17 -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
18-CFLAGS += $(WARNINGS)
19+override CFLAGS += $(WARNINGS)
20
21 LDFLAGS += -Wl,-warn-common,--as-needed
22
23 OPTFLAGS = -Os
24-CFLAGS += $(OPTFLAGS)
25+override CFLAGS += $(OPTFLAGS)
26
27 ifeq ($(strip $(USE_LOG)),true)
28- CFLAGS += -DUSE_LOG
29+ override CFLAGS += -DUSE_LOG
30 endif
31
32 # if DEBUG is enabled, then we do not strip
33 ifeq ($(strip $(DEBUG)),true)
34- CFLAGS += -DDEBUG
35+ override CFLAGS += -DDEBUG
36 endif
37
38 ifeq ($(strip $(USE_GCOV)),true)
39- CFLAGS += -fprofile-arcs -ftest-coverage
40+ override CFLAGS += -fprofile-arcs -ftest-coverage
41 LDFLAGS += -fprofile-arcs
42 endif
43
44 ifeq ($(strip $(USE_SELINUX)),true)
45 UDEV_OBJS += udev_selinux.o
46 LIB_OBJS += -lselinux -lsepol
47- CFLAGS += -DUSE_SELINUX
48+ override CFLAGS += -DUSE_SELINUX
49 endif
50
51 ifeq ($(strip $(USE_STATIC)),true)
52- CFLAGS += -DUSE_STATIC
53+ override CFLAGS += -DUSE_STATIC
54 LDFLAGS += -static
55 endif
56
diff --git a/meta/recipes-core/udev/udev-124/init b/meta/recipes-core/udev/udev-124/init
new file mode 100644
index 0000000000..32ab370aa9
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/init
@@ -0,0 +1,59 @@
1#!/bin/sh -e
2
3### BEGIN INIT INFO
4# Provides: udev
5# Required-Start: mountvirtfs
6# Required-Stop:
7# Default-Start: S
8# Default-Stop:
9# Short-Description: Start udevd, populate /dev and load drivers.
10### END INIT INFO
11
12export TZ=/etc/localtime
13
14[ -d /sys/class ] || exit 1
15[ -r /proc/mounts ] || exit 1
16[ -x /sbin/udevd ] || exit 1
17[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
18
19kill_udevd() {
20 if [ -x /sbin/pidof ]; then
21 pid=`/sbin/pidof -x udevd`
22 [ -n "$pid" ] && kill $pid
23 fi
24}
25
26export ACTION=add
27# propagate /dev from /sys
28echo -n "Starting udev"
29
30# mount the tmpfs on /dev, if not already done
31LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
32 mount -n -o mode=0755 -t tmpfs none "/dev"
33 mkdir -m 0755 /dev/pts
34 mkdir -m 0755 /dev/shm
35}
36
37if [ -e /etc/dev.tar ]; then
38 (cd /; tar xf /etc/dev.tar)
39 not_first_boot=1
40fi
41
42# make_extra_nodes
43kill_udevd > "/dev/null" 2>&1
44
45 # trigger the sorted events
46 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
47 /sbin/udevd -d
48
49 /sbin/udevadm control env STARTUP=1
50 if [ "$not_first_boot" != "" ];then
51 /sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
52 (/sbin/udevadm settle --timeout=3; /sbin/udevadm control env STARTUP=)&
53 else
54 /sbin/udevadm trigger
55 /sbin/udevadm settle
56 fi
57
58echo
59exit 0
diff --git a/meta/recipes-core/udev/udev-124/local.rules b/meta/recipes-core/udev/udev-124/local.rules
new file mode 100644
index 0000000000..5b926018f5
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/local.rules
@@ -0,0 +1,31 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
diff --git a/meta/recipes-core/udev/udev-124/noasmlinkage.patch b/meta/recipes-core/udev/udev-124/noasmlinkage.patch
new file mode 100644
index 0000000000..d58a7ea4de
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/noasmlinkage.patch
@@ -0,0 +1,45 @@
1diff -pru udev-124.orig/test-udev.c udev-124/test-udev.c
2--- udev-124.orig/test-udev.c 2008-06-12 06:24:30.000000000 +0100
3+++ udev-124/test-udev.c 2008-07-07 14:43:37.000000000 +0100
4@@ -46,7 +46,7 @@ void log_message(int priority, const cha
5 }
6 #endif
7
8-static void asmlinkage sig_handler(int signum)
9+static void sig_handler(int signum)
10 {
11 switch (signum) {
12 case SIGALRM:
13diff -pru udev-124.orig/udevd.c udev-124/udevd.c
14--- udev-124.orig/udevd.c 2008-06-12 06:24:30.000000000 +0100
15+++ udev-124/udevd.c 2008-07-07 14:43:58.000000000 +0100
16@@ -87,7 +87,7 @@ void log_message(int priority, const cha
17
18 #endif
19
20-static void asmlinkage udev_event_sig_handler(int signum)
21+static void udev_event_sig_handler(int signum)
22 {
23 if (signum == SIGALRM)
24 exit(1);
25@@ -798,7 +798,7 @@ static struct udevd_uevent_msg *get_netl
26 return msg;
27 }
28
29-static void asmlinkage sig_handler(int signum)
30+static void sig_handler(int signum)
31 {
32 switch (signum) {
33 case SIGINT:
34diff -pru udev-124.orig/udevmonitor.c udev-124/udevmonitor.c
35--- udev-124.orig/udevmonitor.c 2008-06-12 06:24:30.000000000 +0100
36+++ udev-124/udevmonitor.c 2008-07-07 14:44:24.000000000 +0100
37@@ -97,7 +97,7 @@ static int init_uevent_netlink_sock(void
38 return 0;
39 }
40
41-static void asmlinkage sig_handler(int signum)
42+static void sig_handler(int signum)
43 {
44 if (signum == SIGINT || signum == SIGTERM)
45 udev_exit = 1;
diff --git a/meta/recipes-core/udev/udev-124/permissions.rules b/meta/recipes-core/udev/udev-124/permissions.rules
new file mode 100644
index 0000000000..205b733292
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/permissions.rules
@@ -0,0 +1,131 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4# only needed for kernels < v2.6.18-rc1
5ENV{PHYSDEVPATH}!="?*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
6SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", WAIT_FOR_SYSFS="ioerr_cnt"
7# only needed for kernels < 2.6.16
8SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
9# only needed for kernels < 2.6.17
10SUBSYSTEM=="net", ENV{DRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
11
12# devices needed to load the drivers providing them
13KERNEL=="tun", OPTIONS+="ignore_remove"
14KERNEL=="ppp", OPTIONS+="ignore_remove"
15KERNEL=="loop[0-9]*", OPTIONS+="ignore_remove"
16
17# default permissions for block devices
18SUBSYSTEM=="block", GROUP="disk"
19# the aacraid driver is broken and reports that disks removable (see #404927)
20SUBSYSTEM=="block", ATTRS{removable}=="1", \
21 DRIVERS!="aacraid", GROUP="floppy"
22# all block devices on these buses are "removable"
23SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy"
24
25# IDE devices
26KERNEL=="hd[a-z]|pcd[0-9]*", DRIVERS=="ide-cdrom|pcd", \
27 IMPORT{program}="cdrom_id --export $tempnode"
28ENV{ID_CDROM}=="?*", GROUP="cdrom"
29KERNEL=="ht[0-9]*", GROUP="tape"
30KERNEL=="nht[0-9]*", GROUP="tape"
31
32# SCSI devices
33KERNEL=="sr[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
34SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"
35SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner"
36SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner"
37SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner"
38SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"
39SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"
40SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner"
41SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"
42
43# USB devices
44KERNEL=="legousbtower*", MODE="0666"
45KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"
46
47# usbfs-like devices
48SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
49 MODE="0664"
50
51# iRiver music players
52SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="plugdev", \
53 ATTRS{idVendor}=="4102", ATTRS{idProduct}=="10[01][135789]"
54
55# serial devices
56SUBSYSTEM=="tty", GROUP="dialout"
57SUBSYSTEM=="capi", GROUP="dialout"
58SUBSYSTEM=="slamr", GROUP="dialout"
59SUBSYSTEM=="zaptel", GROUP="dialout"
60
61# vc devices (all members of the tty subsystem)
62KERNEL=="ptmx", MODE="0666", GROUP="root"
63KERNEL=="console", MODE="0600", GROUP="root"
64KERNEL=="tty", MODE="0666", GROUP="root"
65KERNEL=="tty[0-9]*", GROUP="root"
66KERNEL=="pty*", MODE="0666", GROUP="tty"
67
68# video devices
69SUBSYSTEM=="video4linux", GROUP="video"
70SUBSYSTEM=="drm", GROUP="video"
71SUBSYSTEM=="dvb", GROUP="video"
72SUBSYSTEM=="em8300", GROUP="video"
73SUBSYSTEM=="graphics", GROUP="video"
74SUBSYSTEM=="nvidia", GROUP="video"
75
76# misc devices
77KERNEL=="random", MODE="0666"
78KERNEL=="urandom", MODE="0666"
79KERNEL=="mem", MODE="0640", GROUP="kmem"
80KERNEL=="kmem", MODE="0640", GROUP="kmem"
81KERNEL=="port", MODE="0640", GROUP="kmem"
82KERNEL=="full", MODE="0666"
83KERNEL=="null", MODE="0666"
84KERNEL=="zero", MODE="0666"
85KERNEL=="inotify", MODE="0666"
86KERNEL=="sgi_fetchop", MODE="0666"
87KERNEL=="sonypi", MODE="0666"
88KERNEL=="agpgart", GROUP="video"
89KERNEL=="nvram", GROUP="nvram"
90KERNEL=="rtc|rtc[0-9]*", GROUP="audio"
91KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss"
92KERNEL=="fuse", GROUP="fuse"
93KERNEL=="kqemu", MODE="0666"
94KERNEL=="kvm", GROUP="kvm"
95KERNEL=="tun", MODE="0666",
96
97KERNEL=="cdemu[0-9]*", GROUP="cdrom"
98KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
99KERNEL=="pktcdvd", MODE="0644"
100
101KERNEL=="uverbs*", GROUP="rdma"
102KERNEL=="ucm*", GROUP="rdma"
103KERNEL=="rdma_ucm", GROUP="rdma"
104
105# printers and parallel devices
106SUBSYSTEM=="printer", GROUP="lp"
107SUBSYSTEM=="ppdev", GROUP="lp"
108KERNEL=="irlpt*", GROUP="lp"
109KERNEL=="pt[0-9]*", GROUP="tape"
110KERNEL=="pht[0-9]*", GROUP="tape"
111
112# sound devices
113SUBSYSTEM=="sound", GROUP="audio"
114
115# ieee1394 devices
116KERNEL=="raw1394", GROUP="disk"
117KERNEL=="dv1394*", GROUP="video"
118KERNEL=="video1394*", GROUP="video"
119
120# input devices
121KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \
122 MODE="0664", GROUP="video"
123KERNEL=="js[0-9]*", MODE="0664"
124KERNEL=="lirc[0-9]*", GROUP="video"
125
126# AOE character devices
127SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
128SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
129
130LABEL="permissions_end"
131
diff --git a/meta/recipes-core/udev/udev-124/run.rules b/meta/recipes-core/udev/udev-124/run.rules
new file mode 100644
index 0000000000..75d71375bb
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/run.rules
@@ -0,0 +1,14 @@
1# debugging monitor
2RUN+="socket:/org/kernel/udev/monitor"
3
4# run a command on remove events
5ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
6
7# ignore the events generated by virtual consoles
8KERNEL=="ptmx", OPTIONS+="last_rule"
9KERNEL=="console", OPTIONS+="last_rule"
10KERNEL=="tty" , OPTIONS+="last_rule"
11KERNEL=="tty[0-9]*", OPTIONS+="last_rule"
12KERNEL=="pty*", OPTIONS+="last_rule"
13SUBSYSTEM=="vc", OPTIONS+="last_rule"
14
diff --git a/meta/recipes-core/udev/udev-124/udev.rules b/meta/recipes-core/udev/udev-124/udev.rules
new file mode 100644
index 0000000000..a19d4a0bf6
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/udev.rules
@@ -0,0 +1,116 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# workaround for devices which do not report media changes
17SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
18 ENV{ID_MODEL}=="IOMEGA_ZIP*", NAME="%k", OPTIONS+="all_partitions"
19SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
20 OPTIONS+="all_partitions"
21
22# SCSI devices
23SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
24
25# USB devices
26SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
27SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
28SUBSYSTEMS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
29SUBSYSTEMS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
30SUBSYSTEMS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
31SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
32SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
33 ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
34 SYMLINK+="pilot"
35
36# usbfs-like devices
37SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
38 NAME="%c"
39SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
40
41# serial devices
42KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
43KERNEL=="capi[0-9]*", NAME="capi/%n"
44
45# video devices
46KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
47 NAME="%c"
48KERNEL=="card[0-9]*", NAME="dri/%k"
49
50# misc devices
51KERNEL=="hw_random", NAME="hwrng"
52KERNEL=="tun", NAME="net/%k"
53KERNEL=="evtchn", NAME="xen/%k"
54
55KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
56KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
57KERNEL=="pktcdvd", NAME="pktcdvd/control"
58
59KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
60KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
61KERNEL=="microcode", NAME="cpu/microcode"
62
63KERNEL=="umad*", NAME="infiniband/%k"
64KERNEL=="issm*", NAME="infiniband/%k"
65KERNEL=="uverbs*", NAME="infiniband/%k"
66KERNEL=="ucm*", NAME="infiniband/%k"
67KERNEL=="rdma_ucm", NAME="infiniband/%k"
68
69# ALSA devices
70KERNEL=="controlC[0-9]*", NAME="snd/%k"
71KERNEL=="hwC[D0-9]*", NAME="snd/%k"
72KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
73KERNEL=="midiC[D0-9]*", NAME="snd/%k"
74KERNEL=="timer", NAME="snd/%k"
75KERNEL=="seq", NAME="snd/%k"
76
77# ieee1394 devices
78KERNEL=="dv1394*", NAME="dv1394/%n"
79KERNEL=="video1394*", NAME="video1394/%n"
80
81# input devices
82KERNEL=="mice", NAME="input/%k"
83KERNEL=="mouse[0-9]*", NAME="input/%k"
84KERNEL=="event[0-9]*", NAME="input/%k"
85KERNEL=="js[0-9]*", NAME="input/%k"
86KERNEL=="ts[0-9]*", NAME="input/%k"
87KERNEL=="uinput", NAME="input/%k"
88
89# Zaptel
90KERNEL=="zapctl", NAME="zap/ctl"
91KERNEL=="zaptimer", NAME="zap/timer"
92KERNEL=="zapchannel", NAME="zap/channel"
93KERNEL=="zappseudo", NAME="zap/pseudo"
94KERNEL=="zap[0-9]*", NAME="zap/%n"
95
96# AOE character devices
97SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
98SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
99SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
100SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k"
101
102# device mapper creates its own device nodes, so ignore these
103KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
104KERNEL=="device-mapper", NAME="mapper/control"
105
106KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
107
108# Firmware Helper
109ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
110
111# Samsung UARTS
112KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
113
114# MXC UARTs
115KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
116
diff --git a/meta/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch b/meta/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch
new file mode 100644
index 0000000000..5182542461
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/udevtrigger_add_devname_filtering.patch
@@ -0,0 +1,99 @@
1diff -pru udev-124.orig/udevtrigger.c udev-124/udevtrigger.c
2--- udev-124.orig/udevtrigger.c 2008-06-12 06:24:30.000000000 +0100
3+++ udev-124/udevtrigger.c 2008-07-07 15:10:09.000000000 +0100
4@@ -42,6 +42,8 @@ static int dry_run;
5 LIST_HEAD(device_list);
6 LIST_HEAD(filter_subsystem_match_list);
7 LIST_HEAD(filter_subsystem_nomatch_list);
8+LIST_HEAD(filter_kernel_match_list);
9+LIST_HEAD(filter_kernel_nomatch_list);
10 LIST_HEAD(filter_attr_match_list);
11 LIST_HEAD(filter_attr_nomatch_list);
12 static int sock = -1;
13@@ -331,6 +333,26 @@ static int attr_match(const char *path,
14 return 0;
15 }
16
17+static int kernel_filtered(const char *kernel)
18+{
19+ struct name_entry *loop_name;
20+
21+ /* skip devices matching the prohibited kernel device names */
22+ list_for_each_entry(loop_name, &filter_kernel_nomatch_list, node)
23+ if (fnmatch(loop_name->name, kernel, 0) == 0)
24+ return 1;
25+
26+ /* skip devices not matching the listed kernel device names */
27+ if (!list_empty(&filter_kernel_match_list)) {
28+ list_for_each_entry(loop_name, &filter_kernel_match_list, node)
29+ if (fnmatch(loop_name->name, kernel, 0) == 0)
30+ return 0;
31+ return 1;
32+ }
33+
34+ return 0;
35+}
36+
37 static int attr_filtered(const char *path)
38 {
39 struct name_entry *loop_name;
40@@ -409,6 +431,9 @@ static void scan_subsystem(const char *s
41 if (dent2->d_name[0] == '.')
42 continue;
43
44+ if (kernel_filtered(dent2->d_name))
45+ continue;
46+
47 strlcpy(dirname2, dirname, sizeof(dirname2));
48 strlcat(dirname2, "/", sizeof(dirname2));
49 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
50@@ -465,6 +490,9 @@ static void scan_block(void)
51 if (!strcmp(dent2->d_name,"device"))
52 continue;
53
54+ if (kernel_filtered(dent2->d_name))
55+ continue;
56+
57 strlcpy(dirname2, dirname, sizeof(dirname2));
58 strlcat(dirname2, "/", sizeof(dirname2));
59 strlcat(dirname2, dent2->d_name, sizeof(dirname2));
60@@ -576,6 +604,8 @@ int udevtrigger(int argc, char *argv[],
61 { "subsystem-nomatch", 1, NULL, 'S' },
62 { "attr-match", 1, NULL, 'a' },
63 { "attr-nomatch", 1, NULL, 'A' },
64+ { "kernel-match", 1, NULL, 'k' },
65+ { "kernel-nomatch", 1, NULL, 'K' },
66 { "env", 1, NULL, 'e' },
67 {}
68 };
69@@ -622,6 +652,12 @@ int udevtrigger(int argc, char *argv[],
70 case 'A':
71 name_list_add(&filter_attr_nomatch_list, optarg, 0);
72 break;
73+ case 'k':
74+ name_list_add(&filter_kernel_match_list, optarg, 0);
75+ break;
76+ case 'K':
77+ name_list_add(&filter_kernel_nomatch_list, optarg, 0);
78+ break;
79 case 'h':
80 printf("Usage: udevadm trigger OPTIONS\n"
81 " --verbose print the list of devices while running\n"
82@@ -632,6 +668,8 @@ int udevtrigger(int argc, char *argv[],
83 " --env=<KEY>=<value> pass an additional key (works only with --socket=)\n"
84 " --subsystem-match=<subsystem> trigger devices from a matching subystem\n"
85 " --subsystem-nomatch=<subsystem> exclude devices from a matching subystem\n"
86+ " --kernel-match=<subsystem> trigger devices from a matching kernel device name\n"
87+ " --kernel-nomatch=<subsystem> exclude devices from a matching kernel device name\n"
88 " --attr-match=<file[=<value>]> trigger devices with a matching sysfs\n"
89 " attribute\n"
90 " --attr-nomatch=<file[=<value>]> exclude devices with a matching sysfs\n"
91@@ -701,6 +739,8 @@ int udevtrigger(int argc, char *argv[],
92 exit:
93 name_list_cleanup(&filter_subsystem_match_list);
94 name_list_cleanup(&filter_subsystem_nomatch_list);
95+ name_list_cleanup(&filter_kernel_match_list);
96+ name_list_cleanup(&filter_kernel_nomatch_list);
97 name_list_cleanup(&filter_attr_match_list);
98 name_list_cleanup(&filter_attr_nomatch_list);
99
diff --git a/meta/recipes-core/udev/udev-124/vol_id_ld.patch b/meta/recipes-core/udev/udev-124/vol_id_ld.patch
new file mode 100644
index 0000000000..11126eef8d
--- /dev/null
+++ b/meta/recipes-core/udev/udev-124/vol_id_ld.patch
@@ -0,0 +1,17 @@
1---
2 extras/volume_id/Makefile | 2 +-
3 1 file changed, 1 insertion(+), 1 deletion(-)
4
5Index: udev-115/extras/volume_id/Makefile
6===================================================================
7--- udev-115.orig/extras/volume_id/Makefile 2007-09-20 18:17:59.000000000 +0200
8+++ udev-115/extras/volume_id/Makefile 2007-09-20 18:18:08.000000000 +0200
9@@ -44,7 +44,7 @@
10 ifeq ($(strip $(VOLUME_ID_STATIC)),true)
11 $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) lib/libvolume_id.a $(LIB_OBJS)
12 else
13- $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -Llib -lvolume_id $(LIB_OBJS)
14+ $(Q) $(LD) -Llib $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -lvolume_id $(LIB_OBJS)
15 endif
16
17 # man pages
diff --git a/meta/recipes-core/udev/udev-141/igep0020/local.rules b/meta/recipes-core/udev/udev-141/igep0020/local.rules
new file mode 100644
index 0000000000..db976d0419
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/igep0020/local.rules
@@ -0,0 +1,34 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# The first framebuffer is symlinked to /dev/fb
28KERNEL=="fb0", SYMLINK+="fb"
29
30# Try and modprobe for drivers for new hardware
31ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
32
33# Create a symlink to any touchscreen input device
34SUBSYSTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
diff --git a/meta/recipes-core/udev/udev-141/init b/meta/recipes-core/udev/udev-141/init
new file mode 100644
index 0000000000..eb5e50758b
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/init
@@ -0,0 +1,59 @@
1#!/bin/sh -e
2
3### BEGIN INIT INFO
4# Provides: udev
5# Required-Start: mountvirtfs
6# Required-Stop:
7# Default-Start: S
8# Default-Stop:
9# Short-Description: Start udevd, populate /dev and load drivers.
10### END INIT INFO
11
12export TZ=/etc/localtime
13
14[ -d /sys/class ] || exit 1
15[ -r /proc/mounts ] || exit 1
16[ -x /sbin/udevd ] || exit 1
17[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
18
19kill_udevd() {
20 if [ -x /sbin/pidof ]; then
21 pid=`/sbin/pidof -x udevd`
22 [ -n "$pid" ] && kill $pid
23 fi
24}
25
26export ACTION=add
27# propagate /dev from /sys
28echo -n "Starting udev"
29
30# mount the tmpfs on /dev, if not already done
31LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
32 mount -n -o mode=0755 -t tmpfs none "/dev"
33 mkdir -m 0755 /dev/pts
34 mkdir -m 1777 /dev/shm
35}
36
37if [ -e /etc/dev.tar ]; then
38 (cd /; tar xf /etc/dev.tar)
39 not_first_boot=1
40fi
41
42# make_extra_nodes
43kill_udevd > "/dev/null" 2>&1
44
45 # trigger the sorted events
46 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
47 /sbin/udevd -d
48
49 /sbin/udevadm control --env=STARTUP=1
50 if [ "$not_first_boot" != "" ];then
51 /sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
52 (/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
53 else
54 /sbin/udevadm trigger
55 /sbin/udevadm settle
56 fi
57
58echo
59exit 0
diff --git a/meta/recipes-core/udev/udev-141/local.rules b/meta/recipes-core/udev/udev-141/local.rules
new file mode 100644
index 0000000000..dab319b431
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/local.rules
@@ -0,0 +1,33 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31# Need to use ../ so the eventX can find the parent inputX modalias which is a directory above
32SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{../modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
33
diff --git a/meta/recipes-core/udev/udev-141/noasmlinkage.patch b/meta/recipes-core/udev/udev-141/noasmlinkage.patch
new file mode 100644
index 0000000000..6f9fe948f2
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/noasmlinkage.patch
@@ -0,0 +1,48 @@
1Index: udev-141/udev/test-udev.c
2===================================================================
3--- udev-141.orig/udev/test-udev.c 2008-10-24 09:07:24.000000000 +0100
4+++ udev-141/udev/test-udev.c 2009-04-14 15:34:01.000000000 +0100
5@@ -30,7 +30,7 @@
6
7 #include "udev.h"
8
9-static void asmlinkage sig_handler(int signum)
10+static void sig_handler(int signum)
11 {
12 switch (signum) {
13 case SIGALRM:
14Index: udev-141/udev/udevadm-monitor.c
15===================================================================
16--- udev-141.orig/udev/udevadm-monitor.c 2009-03-29 19:07:01.000000000 +0100
17+++ udev-141/udev/udevadm-monitor.c 2009-04-14 15:34:01.000000000 +0100
18@@ -35,7 +35,7 @@
19
20 static int udev_exit;
21
22-static void asmlinkage sig_handler(int signum)
23+static void sig_handler(int signum)
24 {
25 if (signum == SIGINT || signum == SIGTERM)
26 udev_exit = 1;
27Index: udev-141/udev/udevd.c
28===================================================================
29--- udev-141.orig/udev/udevd.c 2009-03-29 19:07:01.000000000 +0100
30+++ udev-141/udev/udevd.c 2009-04-14 15:34:56.000000000 +0100
31@@ -172,7 +172,7 @@
32 udev_event_unref(event);
33 }
34
35-static void asmlinkage event_sig_handler(int signum)
36+static void event_sig_handler(int signum)
37 {
38 if (signum == SIGALRM)
39 exit(1);
40@@ -583,7 +583,7 @@
41 return 0;
42 }
43
44-static void asmlinkage sig_handler(int signum)
45+static void sig_handler(int signum)
46 {
47 switch (signum) {
48 case SIGINT:
diff --git a/meta/recipes-core/udev/udev-141/permissions.rules b/meta/recipes-core/udev/udev-141/permissions.rules
new file mode 100644
index 0000000000..205b733292
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/permissions.rules
@@ -0,0 +1,131 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4# only needed for kernels < v2.6.18-rc1
5ENV{PHYSDEVPATH}!="?*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
6SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", WAIT_FOR_SYSFS="ioerr_cnt"
7# only needed for kernels < 2.6.16
8SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
9# only needed for kernels < 2.6.17
10SUBSYSTEM=="net", ENV{DRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
11
12# devices needed to load the drivers providing them
13KERNEL=="tun", OPTIONS+="ignore_remove"
14KERNEL=="ppp", OPTIONS+="ignore_remove"
15KERNEL=="loop[0-9]*", OPTIONS+="ignore_remove"
16
17# default permissions for block devices
18SUBSYSTEM=="block", GROUP="disk"
19# the aacraid driver is broken and reports that disks removable (see #404927)
20SUBSYSTEM=="block", ATTRS{removable}=="1", \
21 DRIVERS!="aacraid", GROUP="floppy"
22# all block devices on these buses are "removable"
23SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy"
24
25# IDE devices
26KERNEL=="hd[a-z]|pcd[0-9]*", DRIVERS=="ide-cdrom|pcd", \
27 IMPORT{program}="cdrom_id --export $tempnode"
28ENV{ID_CDROM}=="?*", GROUP="cdrom"
29KERNEL=="ht[0-9]*", GROUP="tape"
30KERNEL=="nht[0-9]*", GROUP="tape"
31
32# SCSI devices
33KERNEL=="sr[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
34SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"
35SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner"
36SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner"
37SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner"
38SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"
39SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"
40SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner"
41SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"
42
43# USB devices
44KERNEL=="legousbtower*", MODE="0666"
45KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"
46
47# usbfs-like devices
48SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
49 MODE="0664"
50
51# iRiver music players
52SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="plugdev", \
53 ATTRS{idVendor}=="4102", ATTRS{idProduct}=="10[01][135789]"
54
55# serial devices
56SUBSYSTEM=="tty", GROUP="dialout"
57SUBSYSTEM=="capi", GROUP="dialout"
58SUBSYSTEM=="slamr", GROUP="dialout"
59SUBSYSTEM=="zaptel", GROUP="dialout"
60
61# vc devices (all members of the tty subsystem)
62KERNEL=="ptmx", MODE="0666", GROUP="root"
63KERNEL=="console", MODE="0600", GROUP="root"
64KERNEL=="tty", MODE="0666", GROUP="root"
65KERNEL=="tty[0-9]*", GROUP="root"
66KERNEL=="pty*", MODE="0666", GROUP="tty"
67
68# video devices
69SUBSYSTEM=="video4linux", GROUP="video"
70SUBSYSTEM=="drm", GROUP="video"
71SUBSYSTEM=="dvb", GROUP="video"
72SUBSYSTEM=="em8300", GROUP="video"
73SUBSYSTEM=="graphics", GROUP="video"
74SUBSYSTEM=="nvidia", GROUP="video"
75
76# misc devices
77KERNEL=="random", MODE="0666"
78KERNEL=="urandom", MODE="0666"
79KERNEL=="mem", MODE="0640", GROUP="kmem"
80KERNEL=="kmem", MODE="0640", GROUP="kmem"
81KERNEL=="port", MODE="0640", GROUP="kmem"
82KERNEL=="full", MODE="0666"
83KERNEL=="null", MODE="0666"
84KERNEL=="zero", MODE="0666"
85KERNEL=="inotify", MODE="0666"
86KERNEL=="sgi_fetchop", MODE="0666"
87KERNEL=="sonypi", MODE="0666"
88KERNEL=="agpgart", GROUP="video"
89KERNEL=="nvram", GROUP="nvram"
90KERNEL=="rtc|rtc[0-9]*", GROUP="audio"
91KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss"
92KERNEL=="fuse", GROUP="fuse"
93KERNEL=="kqemu", MODE="0666"
94KERNEL=="kvm", GROUP="kvm"
95KERNEL=="tun", MODE="0666",
96
97KERNEL=="cdemu[0-9]*", GROUP="cdrom"
98KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
99KERNEL=="pktcdvd", MODE="0644"
100
101KERNEL=="uverbs*", GROUP="rdma"
102KERNEL=="ucm*", GROUP="rdma"
103KERNEL=="rdma_ucm", GROUP="rdma"
104
105# printers and parallel devices
106SUBSYSTEM=="printer", GROUP="lp"
107SUBSYSTEM=="ppdev", GROUP="lp"
108KERNEL=="irlpt*", GROUP="lp"
109KERNEL=="pt[0-9]*", GROUP="tape"
110KERNEL=="pht[0-9]*", GROUP="tape"
111
112# sound devices
113SUBSYSTEM=="sound", GROUP="audio"
114
115# ieee1394 devices
116KERNEL=="raw1394", GROUP="disk"
117KERNEL=="dv1394*", GROUP="video"
118KERNEL=="video1394*", GROUP="video"
119
120# input devices
121KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \
122 MODE="0664", GROUP="video"
123KERNEL=="js[0-9]*", MODE="0664"
124KERNEL=="lirc[0-9]*", GROUP="video"
125
126# AOE character devices
127SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
128SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
129
130LABEL="permissions_end"
131
diff --git a/meta/recipes-core/udev/udev-141/run.rules b/meta/recipes-core/udev/udev-141/run.rules
new file mode 100644
index 0000000000..75d71375bb
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/run.rules
@@ -0,0 +1,14 @@
1# debugging monitor
2RUN+="socket:/org/kernel/udev/monitor"
3
4# run a command on remove events
5ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
6
7# ignore the events generated by virtual consoles
8KERNEL=="ptmx", OPTIONS+="last_rule"
9KERNEL=="console", OPTIONS+="last_rule"
10KERNEL=="tty" , OPTIONS+="last_rule"
11KERNEL=="tty[0-9]*", OPTIONS+="last_rule"
12KERNEL=="pty*", OPTIONS+="last_rule"
13SUBSYSTEM=="vc", OPTIONS+="last_rule"
14
diff --git a/meta/recipes-core/udev/udev-141/udev.rules b/meta/recipes-core/udev/udev-141/udev.rules
new file mode 100644
index 0000000000..a19d4a0bf6
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/udev.rules
@@ -0,0 +1,116 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# workaround for devices which do not report media changes
17SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
18 ENV{ID_MODEL}=="IOMEGA_ZIP*", NAME="%k", OPTIONS+="all_partitions"
19SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
20 OPTIONS+="all_partitions"
21
22# SCSI devices
23SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
24
25# USB devices
26SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
27SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
28SUBSYSTEMS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
29SUBSYSTEMS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
30SUBSYSTEMS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
31SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
32SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
33 ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
34 SYMLINK+="pilot"
35
36# usbfs-like devices
37SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
38 NAME="%c"
39SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
40
41# serial devices
42KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
43KERNEL=="capi[0-9]*", NAME="capi/%n"
44
45# video devices
46KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
47 NAME="%c"
48KERNEL=="card[0-9]*", NAME="dri/%k"
49
50# misc devices
51KERNEL=="hw_random", NAME="hwrng"
52KERNEL=="tun", NAME="net/%k"
53KERNEL=="evtchn", NAME="xen/%k"
54
55KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
56KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
57KERNEL=="pktcdvd", NAME="pktcdvd/control"
58
59KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
60KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
61KERNEL=="microcode", NAME="cpu/microcode"
62
63KERNEL=="umad*", NAME="infiniband/%k"
64KERNEL=="issm*", NAME="infiniband/%k"
65KERNEL=="uverbs*", NAME="infiniband/%k"
66KERNEL=="ucm*", NAME="infiniband/%k"
67KERNEL=="rdma_ucm", NAME="infiniband/%k"
68
69# ALSA devices
70KERNEL=="controlC[0-9]*", NAME="snd/%k"
71KERNEL=="hwC[D0-9]*", NAME="snd/%k"
72KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
73KERNEL=="midiC[D0-9]*", NAME="snd/%k"
74KERNEL=="timer", NAME="snd/%k"
75KERNEL=="seq", NAME="snd/%k"
76
77# ieee1394 devices
78KERNEL=="dv1394*", NAME="dv1394/%n"
79KERNEL=="video1394*", NAME="video1394/%n"
80
81# input devices
82KERNEL=="mice", NAME="input/%k"
83KERNEL=="mouse[0-9]*", NAME="input/%k"
84KERNEL=="event[0-9]*", NAME="input/%k"
85KERNEL=="js[0-9]*", NAME="input/%k"
86KERNEL=="ts[0-9]*", NAME="input/%k"
87KERNEL=="uinput", NAME="input/%k"
88
89# Zaptel
90KERNEL=="zapctl", NAME="zap/ctl"
91KERNEL=="zaptimer", NAME="zap/timer"
92KERNEL=="zapchannel", NAME="zap/channel"
93KERNEL=="zappseudo", NAME="zap/pseudo"
94KERNEL=="zap[0-9]*", NAME="zap/%n"
95
96# AOE character devices
97SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
98SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
99SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
100SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k"
101
102# device mapper creates its own device nodes, so ignore these
103KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
104KERNEL=="device-mapper", NAME="mapper/control"
105
106KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
107
108# Firmware Helper
109ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
110
111# Samsung UARTS
112KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
113
114# MXC UARTs
115KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
116
diff --git a/meta/recipes-core/udev/udev-141/unbreak.patch b/meta/recipes-core/udev/udev-141/unbreak.patch
new file mode 100644
index 0000000000..bb5988dca4
--- /dev/null
+++ b/meta/recipes-core/udev/udev-141/unbreak.patch
@@ -0,0 +1,24 @@
1Index: udev-141/extras/volume_id/lib/Makefile.am
2===================================================================
3--- udev-141.orig/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:16.000000000 +0100
4+++ udev-141/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:26.000000000 +0100
5@@ -54,19 +54,6 @@
6 -version-info $(VOLID_LT_CURRENT):$(VOLID_LT_REVISION):$(VOLID_LT_AGE) \
7 -export-symbols $(top_srcdir)/extras/volume_id/lib/exported_symbols
8
9-# move devel files to $(prefix)$(libdir_name) if needed
10-install-data-hook:
11- rm $(DESTDIR)$(rootlibdir)/libvolume_id.la
12- if test "$(prefix)" != "$(exec_prefix)"; then \
13- mkdir -p $(DESTDIR)$(prefix)/$(libdir_name); \
14- mv $(DESTDIR)$(rootlibdir)/libvolume_id.a $(DESTDIR)$(prefix)/$(libdir_name)/; \
15- so_img_name=$$(readlink $(DESTDIR)$(rootlibdir)/libvolume_id.so); \
16- rm $(DESTDIR)$(rootlibdir)/libvolume_id.so; \
17- so_img_rel_target_prefix=$$(echo $(prefix)/$(libdir_name) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
18- ln -sf $$so_img_rel_target_prefix$(exec_prefix)/$(libdir_name)/$$so_img_name \
19- $(DESTDIR)$(prefix)/$(libdir_name)/libvolume_id.so; \
20- fi
21-
22 EXTRA_DIST = \
23 exported_symbols
24
diff --git a/meta/recipes-core/udev/udev-145/enable-gudev.patch b/meta/recipes-core/udev/udev-145/enable-gudev.patch
new file mode 100644
index 0000000000..45fd37311c
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/enable-gudev.patch
@@ -0,0 +1,48 @@
1Index: udev-145/configure.ac
2===================================================================
3--- udev-145.orig/configure.ac 2010-01-29 14:41:29.000000000 +0000
4+++ udev-145/configure.ac 2010-01-29 14:41:54.000000000 +0000
5@@ -49,16 +49,17 @@
6 AC_ARG_ENABLE([extras],
7 AS_HELP_STRING([--disable-extras], [disable extras with external dependencies]),
8 [], [enable_extras=yes])
9+
10+ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0])
11+ AC_SUBST([GLIB_CFLAGS])
12+ AC_SUBST([GLIB_LIBS])
13+
14 if test "x$enable_extras" = xyes; then
15 AC_PATH_PROG([GPERF], [gperf])
16 if test -z "$GPERF"; then
17 AC_MSG_ERROR([gperf is needed])
18 fi
19
20- PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0])
21- AC_SUBST([GLIB_CFLAGS])
22- AC_SUBST([GLIB_LIBS])
23-
24 AC_CHECK_LIB([acl], [acl_init], [:], AC_MSG_ERROR([libacl not found]))
25 AC_CHECK_HEADER([acl/libacl.h], [:], AC_MSG_ERROR([libacl header not found]))
26
27Index: udev-145/extras/Makefile.am
28===================================================================
29--- udev-145.orig/extras/Makefile.am 2010-01-29 14:43:56.000000000 +0000
30+++ udev-145/extras/Makefile.am 2010-01-29 14:44:11.000000000 +0000
31@@ -12,7 +12,8 @@
32 rule_generator \
33 scsi_id \
34 usb_id \
35- v4l_id
36+ v4l_id \
37+ gudev
38
39 if ENABLE_EXTRAS
40 SUBDIRS += \
41@@ -20,6 +21,5 @@
42 usb-db \
43 hid2hci \
44 keymap \
45- modem-modeswitch \
46- gudev
47+ modem-modeswitch
48 endif
diff --git a/meta/recipes-core/udev/udev-145/init b/meta/recipes-core/udev/udev-145/init
new file mode 100644
index 0000000000..eb5e50758b
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/init
@@ -0,0 +1,59 @@
1#!/bin/sh -e
2
3### BEGIN INIT INFO
4# Provides: udev
5# Required-Start: mountvirtfs
6# Required-Stop:
7# Default-Start: S
8# Default-Stop:
9# Short-Description: Start udevd, populate /dev and load drivers.
10### END INIT INFO
11
12export TZ=/etc/localtime
13
14[ -d /sys/class ] || exit 1
15[ -r /proc/mounts ] || exit 1
16[ -x /sbin/udevd ] || exit 1
17[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
18
19kill_udevd() {
20 if [ -x /sbin/pidof ]; then
21 pid=`/sbin/pidof -x udevd`
22 [ -n "$pid" ] && kill $pid
23 fi
24}
25
26export ACTION=add
27# propagate /dev from /sys
28echo -n "Starting udev"
29
30# mount the tmpfs on /dev, if not already done
31LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
32 mount -n -o mode=0755 -t tmpfs none "/dev"
33 mkdir -m 0755 /dev/pts
34 mkdir -m 1777 /dev/shm
35}
36
37if [ -e /etc/dev.tar ]; then
38 (cd /; tar xf /etc/dev.tar)
39 not_first_boot=1
40fi
41
42# make_extra_nodes
43kill_udevd > "/dev/null" 2>&1
44
45 # trigger the sorted events
46 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
47 /sbin/udevd -d
48
49 /sbin/udevadm control --env=STARTUP=1
50 if [ "$not_first_boot" != "" ];then
51 /sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
52 (/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
53 else
54 /sbin/udevadm trigger
55 /sbin/udevadm settle
56 fi
57
58echo
59exit 0
diff --git a/meta/recipes-core/udev/udev-145/local.rules b/meta/recipes-core/udev/udev-145/local.rules
new file mode 100644
index 0000000000..dab319b431
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/local.rules
@@ -0,0 +1,33 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31# Need to use ../ so the eventX can find the parent inputX modalias which is a directory above
32SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{../modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
33
diff --git a/meta/recipes-core/udev/udev-145/noasmlinkage.patch b/meta/recipes-core/udev/udev-145/noasmlinkage.patch
new file mode 100644
index 0000000000..6f9fe948f2
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/noasmlinkage.patch
@@ -0,0 +1,48 @@
1Index: udev-141/udev/test-udev.c
2===================================================================
3--- udev-141.orig/udev/test-udev.c 2008-10-24 09:07:24.000000000 +0100
4+++ udev-141/udev/test-udev.c 2009-04-14 15:34:01.000000000 +0100
5@@ -30,7 +30,7 @@
6
7 #include "udev.h"
8
9-static void asmlinkage sig_handler(int signum)
10+static void sig_handler(int signum)
11 {
12 switch (signum) {
13 case SIGALRM:
14Index: udev-141/udev/udevadm-monitor.c
15===================================================================
16--- udev-141.orig/udev/udevadm-monitor.c 2009-03-29 19:07:01.000000000 +0100
17+++ udev-141/udev/udevadm-monitor.c 2009-04-14 15:34:01.000000000 +0100
18@@ -35,7 +35,7 @@
19
20 static int udev_exit;
21
22-static void asmlinkage sig_handler(int signum)
23+static void sig_handler(int signum)
24 {
25 if (signum == SIGINT || signum == SIGTERM)
26 udev_exit = 1;
27Index: udev-141/udev/udevd.c
28===================================================================
29--- udev-141.orig/udev/udevd.c 2009-03-29 19:07:01.000000000 +0100
30+++ udev-141/udev/udevd.c 2009-04-14 15:34:56.000000000 +0100
31@@ -172,7 +172,7 @@
32 udev_event_unref(event);
33 }
34
35-static void asmlinkage event_sig_handler(int signum)
36+static void event_sig_handler(int signum)
37 {
38 if (signum == SIGALRM)
39 exit(1);
40@@ -583,7 +583,7 @@
41 return 0;
42 }
43
44-static void asmlinkage sig_handler(int signum)
45+static void sig_handler(int signum)
46 {
47 switch (signum) {
48 case SIGINT:
diff --git a/meta/recipes-core/udev/udev-145/permissions.rules b/meta/recipes-core/udev/udev-145/permissions.rules
new file mode 100644
index 0000000000..205b733292
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/permissions.rules
@@ -0,0 +1,131 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4# only needed for kernels < v2.6.18-rc1
5ENV{PHYSDEVPATH}!="?*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
6SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", WAIT_FOR_SYSFS="ioerr_cnt"
7# only needed for kernels < 2.6.16
8SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
9# only needed for kernels < 2.6.17
10SUBSYSTEM=="net", ENV{DRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
11
12# devices needed to load the drivers providing them
13KERNEL=="tun", OPTIONS+="ignore_remove"
14KERNEL=="ppp", OPTIONS+="ignore_remove"
15KERNEL=="loop[0-9]*", OPTIONS+="ignore_remove"
16
17# default permissions for block devices
18SUBSYSTEM=="block", GROUP="disk"
19# the aacraid driver is broken and reports that disks removable (see #404927)
20SUBSYSTEM=="block", ATTRS{removable}=="1", \
21 DRIVERS!="aacraid", GROUP="floppy"
22# all block devices on these buses are "removable"
23SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy"
24
25# IDE devices
26KERNEL=="hd[a-z]|pcd[0-9]*", DRIVERS=="ide-cdrom|pcd", \
27 IMPORT{program}="cdrom_id --export $tempnode"
28ENV{ID_CDROM}=="?*", GROUP="cdrom"
29KERNEL=="ht[0-9]*", GROUP="tape"
30KERNEL=="nht[0-9]*", GROUP="tape"
31
32# SCSI devices
33KERNEL=="sr[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
34SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"
35SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner"
36SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner"
37SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner"
38SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"
39SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"
40SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner"
41SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"
42
43# USB devices
44KERNEL=="legousbtower*", MODE="0666"
45KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"
46
47# usbfs-like devices
48SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
49 MODE="0664"
50
51# iRiver music players
52SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="plugdev", \
53 ATTRS{idVendor}=="4102", ATTRS{idProduct}=="10[01][135789]"
54
55# serial devices
56SUBSYSTEM=="tty", GROUP="dialout"
57SUBSYSTEM=="capi", GROUP="dialout"
58SUBSYSTEM=="slamr", GROUP="dialout"
59SUBSYSTEM=="zaptel", GROUP="dialout"
60
61# vc devices (all members of the tty subsystem)
62KERNEL=="ptmx", MODE="0666", GROUP="root"
63KERNEL=="console", MODE="0600", GROUP="root"
64KERNEL=="tty", MODE="0666", GROUP="root"
65KERNEL=="tty[0-9]*", GROUP="root"
66KERNEL=="pty*", MODE="0666", GROUP="tty"
67
68# video devices
69SUBSYSTEM=="video4linux", GROUP="video"
70SUBSYSTEM=="drm", GROUP="video"
71SUBSYSTEM=="dvb", GROUP="video"
72SUBSYSTEM=="em8300", GROUP="video"
73SUBSYSTEM=="graphics", GROUP="video"
74SUBSYSTEM=="nvidia", GROUP="video"
75
76# misc devices
77KERNEL=="random", MODE="0666"
78KERNEL=="urandom", MODE="0666"
79KERNEL=="mem", MODE="0640", GROUP="kmem"
80KERNEL=="kmem", MODE="0640", GROUP="kmem"
81KERNEL=="port", MODE="0640", GROUP="kmem"
82KERNEL=="full", MODE="0666"
83KERNEL=="null", MODE="0666"
84KERNEL=="zero", MODE="0666"
85KERNEL=="inotify", MODE="0666"
86KERNEL=="sgi_fetchop", MODE="0666"
87KERNEL=="sonypi", MODE="0666"
88KERNEL=="agpgart", GROUP="video"
89KERNEL=="nvram", GROUP="nvram"
90KERNEL=="rtc|rtc[0-9]*", GROUP="audio"
91KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss"
92KERNEL=="fuse", GROUP="fuse"
93KERNEL=="kqemu", MODE="0666"
94KERNEL=="kvm", GROUP="kvm"
95KERNEL=="tun", MODE="0666",
96
97KERNEL=="cdemu[0-9]*", GROUP="cdrom"
98KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
99KERNEL=="pktcdvd", MODE="0644"
100
101KERNEL=="uverbs*", GROUP="rdma"
102KERNEL=="ucm*", GROUP="rdma"
103KERNEL=="rdma_ucm", GROUP="rdma"
104
105# printers and parallel devices
106SUBSYSTEM=="printer", GROUP="lp"
107SUBSYSTEM=="ppdev", GROUP="lp"
108KERNEL=="irlpt*", GROUP="lp"
109KERNEL=="pt[0-9]*", GROUP="tape"
110KERNEL=="pht[0-9]*", GROUP="tape"
111
112# sound devices
113SUBSYSTEM=="sound", GROUP="audio"
114
115# ieee1394 devices
116KERNEL=="raw1394", GROUP="disk"
117KERNEL=="dv1394*", GROUP="video"
118KERNEL=="video1394*", GROUP="video"
119
120# input devices
121KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \
122 MODE="0664", GROUP="video"
123KERNEL=="js[0-9]*", MODE="0664"
124KERNEL=="lirc[0-9]*", GROUP="video"
125
126# AOE character devices
127SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
128SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
129
130LABEL="permissions_end"
131
diff --git a/meta/recipes-core/udev/udev-145/run.rules b/meta/recipes-core/udev/udev-145/run.rules
new file mode 100644
index 0000000000..75d71375bb
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/run.rules
@@ -0,0 +1,14 @@
1# debugging monitor
2RUN+="socket:/org/kernel/udev/monitor"
3
4# run a command on remove events
5ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
6
7# ignore the events generated by virtual consoles
8KERNEL=="ptmx", OPTIONS+="last_rule"
9KERNEL=="console", OPTIONS+="last_rule"
10KERNEL=="tty" , OPTIONS+="last_rule"
11KERNEL=="tty[0-9]*", OPTIONS+="last_rule"
12KERNEL=="pty*", OPTIONS+="last_rule"
13SUBSYSTEM=="vc", OPTIONS+="last_rule"
14
diff --git a/meta/recipes-core/udev/udev-145/udev.rules b/meta/recipes-core/udev/udev-145/udev.rules
new file mode 100644
index 0000000000..a19d4a0bf6
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/udev.rules
@@ -0,0 +1,116 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# workaround for devices which do not report media changes
17SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
18 ENV{ID_MODEL}=="IOMEGA_ZIP*", NAME="%k", OPTIONS+="all_partitions"
19SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
20 OPTIONS+="all_partitions"
21
22# SCSI devices
23SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
24
25# USB devices
26SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
27SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
28SUBSYSTEMS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
29SUBSYSTEMS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
30SUBSYSTEMS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
31SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
32SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
33 ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
34 SYMLINK+="pilot"
35
36# usbfs-like devices
37SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
38 NAME="%c"
39SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
40
41# serial devices
42KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
43KERNEL=="capi[0-9]*", NAME="capi/%n"
44
45# video devices
46KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
47 NAME="%c"
48KERNEL=="card[0-9]*", NAME="dri/%k"
49
50# misc devices
51KERNEL=="hw_random", NAME="hwrng"
52KERNEL=="tun", NAME="net/%k"
53KERNEL=="evtchn", NAME="xen/%k"
54
55KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
56KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
57KERNEL=="pktcdvd", NAME="pktcdvd/control"
58
59KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
60KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
61KERNEL=="microcode", NAME="cpu/microcode"
62
63KERNEL=="umad*", NAME="infiniband/%k"
64KERNEL=="issm*", NAME="infiniband/%k"
65KERNEL=="uverbs*", NAME="infiniband/%k"
66KERNEL=="ucm*", NAME="infiniband/%k"
67KERNEL=="rdma_ucm", NAME="infiniband/%k"
68
69# ALSA devices
70KERNEL=="controlC[0-9]*", NAME="snd/%k"
71KERNEL=="hwC[D0-9]*", NAME="snd/%k"
72KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
73KERNEL=="midiC[D0-9]*", NAME="snd/%k"
74KERNEL=="timer", NAME="snd/%k"
75KERNEL=="seq", NAME="snd/%k"
76
77# ieee1394 devices
78KERNEL=="dv1394*", NAME="dv1394/%n"
79KERNEL=="video1394*", NAME="video1394/%n"
80
81# input devices
82KERNEL=="mice", NAME="input/%k"
83KERNEL=="mouse[0-9]*", NAME="input/%k"
84KERNEL=="event[0-9]*", NAME="input/%k"
85KERNEL=="js[0-9]*", NAME="input/%k"
86KERNEL=="ts[0-9]*", NAME="input/%k"
87KERNEL=="uinput", NAME="input/%k"
88
89# Zaptel
90KERNEL=="zapctl", NAME="zap/ctl"
91KERNEL=="zaptimer", NAME="zap/timer"
92KERNEL=="zapchannel", NAME="zap/channel"
93KERNEL=="zappseudo", NAME="zap/pseudo"
94KERNEL=="zap[0-9]*", NAME="zap/%n"
95
96# AOE character devices
97SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
98SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
99SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
100SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k"
101
102# device mapper creates its own device nodes, so ignore these
103KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
104KERNEL=="device-mapper", NAME="mapper/control"
105
106KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
107
108# Firmware Helper
109ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
110
111# Samsung UARTS
112KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
113
114# MXC UARTs
115KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
116
diff --git a/meta/recipes-core/udev/udev-145/unbreak.patch b/meta/recipes-core/udev/udev-145/unbreak.patch
new file mode 100644
index 0000000000..bb5988dca4
--- /dev/null
+++ b/meta/recipes-core/udev/udev-145/unbreak.patch
@@ -0,0 +1,24 @@
1Index: udev-141/extras/volume_id/lib/Makefile.am
2===================================================================
3--- udev-141.orig/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:16.000000000 +0100
4+++ udev-141/extras/volume_id/lib/Makefile.am 2009-05-17 23:36:26.000000000 +0100
5@@ -54,19 +54,6 @@
6 -version-info $(VOLID_LT_CURRENT):$(VOLID_LT_REVISION):$(VOLID_LT_AGE) \
7 -export-symbols $(top_srcdir)/extras/volume_id/lib/exported_symbols
8
9-# move devel files to $(prefix)$(libdir_name) if needed
10-install-data-hook:
11- rm $(DESTDIR)$(rootlibdir)/libvolume_id.la
12- if test "$(prefix)" != "$(exec_prefix)"; then \
13- mkdir -p $(DESTDIR)$(prefix)/$(libdir_name); \
14- mv $(DESTDIR)$(rootlibdir)/libvolume_id.a $(DESTDIR)$(prefix)/$(libdir_name)/; \
15- so_img_name=$$(readlink $(DESTDIR)$(rootlibdir)/libvolume_id.so); \
16- rm $(DESTDIR)$(rootlibdir)/libvolume_id.so; \
17- so_img_rel_target_prefix=$$(echo $(prefix)/$(libdir_name) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
18- ln -sf $$so_img_rel_target_prefix$(exec_prefix)/$(libdir_name)/$$so_img_name \
19- $(DESTDIR)$(prefix)/$(libdir_name)/libvolume_id.so; \
20- fi
21-
22 EXTRA_DIST = \
23 exported_symbols
24
diff --git a/meta/recipes-core/udev/udev-158/init b/meta/recipes-core/udev/udev-158/init
new file mode 100644
index 0000000000..eb5e50758b
--- /dev/null
+++ b/meta/recipes-core/udev/udev-158/init
@@ -0,0 +1,59 @@
1#!/bin/sh -e
2
3### BEGIN INIT INFO
4# Provides: udev
5# Required-Start: mountvirtfs
6# Required-Stop:
7# Default-Start: S
8# Default-Stop:
9# Short-Description: Start udevd, populate /dev and load drivers.
10### END INIT INFO
11
12export TZ=/etc/localtime
13
14[ -d /sys/class ] || exit 1
15[ -r /proc/mounts ] || exit 1
16[ -x /sbin/udevd ] || exit 1
17[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
18
19kill_udevd() {
20 if [ -x /sbin/pidof ]; then
21 pid=`/sbin/pidof -x udevd`
22 [ -n "$pid" ] && kill $pid
23 fi
24}
25
26export ACTION=add
27# propagate /dev from /sys
28echo -n "Starting udev"
29
30# mount the tmpfs on /dev, if not already done
31LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && {
32 mount -n -o mode=0755 -t tmpfs none "/dev"
33 mkdir -m 0755 /dev/pts
34 mkdir -m 1777 /dev/shm
35}
36
37if [ -e /etc/dev.tar ]; then
38 (cd /; tar xf /etc/dev.tar)
39 not_first_boot=1
40fi
41
42# make_extra_nodes
43kill_udevd > "/dev/null" 2>&1
44
45 # trigger the sorted events
46 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
47 /sbin/udevd -d
48
49 /sbin/udevadm control --env=STARTUP=1
50 if [ "$not_first_boot" != "" ];then
51 /sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
52 (/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
53 else
54 /sbin/udevadm trigger
55 /sbin/udevadm settle
56 fi
57
58echo
59exit 0
diff --git a/meta/recipes-core/udev/udev-158/local.rules b/meta/recipes-core/udev/udev-158/local.rules
new file mode 100644
index 0000000000..dab319b431
--- /dev/null
+++ b/meta/recipes-core/udev/udev-158/local.rules
@@ -0,0 +1,33 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# Media automounting
17SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
18SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
19
20# Handle network interface setup
21SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
22SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
23
24# The first rtc device is symlinked to /dev/rtc
25KERNEL=="rtc0", SYMLINK+="rtc"
26
27# Try and modprobe for drivers for new hardware
28ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
29
30# Create a symlink to any touchscreen input device
31# Need to use ../ so the eventX can find the parent inputX modalias which is a directory above
32SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{../modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
33
diff --git a/meta/recipes-core/udev/udev-158/permissions.rules b/meta/recipes-core/udev/udev-158/permissions.rules
new file mode 100644
index 0000000000..205b733292
--- /dev/null
+++ b/meta/recipes-core/udev/udev-158/permissions.rules
@@ -0,0 +1,131 @@
1ACTION!="add", GOTO="permissions_end"
2
3# workarounds needed to synchronize with sysfs
4# only needed for kernels < v2.6.18-rc1
5ENV{PHYSDEVPATH}!="?*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
6SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", WAIT_FOR_SYSFS="ioerr_cnt"
7# only needed for kernels < 2.6.16
8SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
9# only needed for kernels < 2.6.17
10SUBSYSTEM=="net", ENV{DRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
11
12# devices needed to load the drivers providing them
13KERNEL=="tun", OPTIONS+="ignore_remove"
14KERNEL=="ppp", OPTIONS+="ignore_remove"
15KERNEL=="loop[0-9]*", OPTIONS+="ignore_remove"
16
17# default permissions for block devices
18SUBSYSTEM=="block", GROUP="disk"
19# the aacraid driver is broken and reports that disks removable (see #404927)
20SUBSYSTEM=="block", ATTRS{removable}=="1", \
21 DRIVERS!="aacraid", GROUP="floppy"
22# all block devices on these buses are "removable"
23SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy"
24
25# IDE devices
26KERNEL=="hd[a-z]|pcd[0-9]*", DRIVERS=="ide-cdrom|pcd", \
27 IMPORT{program}="cdrom_id --export $tempnode"
28ENV{ID_CDROM}=="?*", GROUP="cdrom"
29KERNEL=="ht[0-9]*", GROUP="tape"
30KERNEL=="nht[0-9]*", GROUP="tape"
31
32# SCSI devices
33KERNEL=="sr[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
34SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"
35SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner"
36SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner"
37SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner"
38SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"
39SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"
40SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner"
41SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"
42
43# USB devices
44KERNEL=="legousbtower*", MODE="0666"
45KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"
46
47# usbfs-like devices
48SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
49 MODE="0664"
50
51# iRiver music players
52SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="plugdev", \
53 ATTRS{idVendor}=="4102", ATTRS{idProduct}=="10[01][135789]"
54
55# serial devices
56SUBSYSTEM=="tty", GROUP="dialout"
57SUBSYSTEM=="capi", GROUP="dialout"
58SUBSYSTEM=="slamr", GROUP="dialout"
59SUBSYSTEM=="zaptel", GROUP="dialout"
60
61# vc devices (all members of the tty subsystem)
62KERNEL=="ptmx", MODE="0666", GROUP="root"
63KERNEL=="console", MODE="0600", GROUP="root"
64KERNEL=="tty", MODE="0666", GROUP="root"
65KERNEL=="tty[0-9]*", GROUP="root"
66KERNEL=="pty*", MODE="0666", GROUP="tty"
67
68# video devices
69SUBSYSTEM=="video4linux", GROUP="video"
70SUBSYSTEM=="drm", GROUP="video"
71SUBSYSTEM=="dvb", GROUP="video"
72SUBSYSTEM=="em8300", GROUP="video"
73SUBSYSTEM=="graphics", GROUP="video"
74SUBSYSTEM=="nvidia", GROUP="video"
75
76# misc devices
77KERNEL=="random", MODE="0666"
78KERNEL=="urandom", MODE="0666"
79KERNEL=="mem", MODE="0640", GROUP="kmem"
80KERNEL=="kmem", MODE="0640", GROUP="kmem"
81KERNEL=="port", MODE="0640", GROUP="kmem"
82KERNEL=="full", MODE="0666"
83KERNEL=="null", MODE="0666"
84KERNEL=="zero", MODE="0666"
85KERNEL=="inotify", MODE="0666"
86KERNEL=="sgi_fetchop", MODE="0666"
87KERNEL=="sonypi", MODE="0666"
88KERNEL=="agpgart", GROUP="video"
89KERNEL=="nvram", GROUP="nvram"
90KERNEL=="rtc|rtc[0-9]*", GROUP="audio"
91KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss"
92KERNEL=="fuse", GROUP="fuse"
93KERNEL=="kqemu", MODE="0666"
94KERNEL=="kvm", GROUP="kvm"
95KERNEL=="tun", MODE="0666",
96
97KERNEL=="cdemu[0-9]*", GROUP="cdrom"
98KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
99KERNEL=="pktcdvd", MODE="0644"
100
101KERNEL=="uverbs*", GROUP="rdma"
102KERNEL=="ucm*", GROUP="rdma"
103KERNEL=="rdma_ucm", GROUP="rdma"
104
105# printers and parallel devices
106SUBSYSTEM=="printer", GROUP="lp"
107SUBSYSTEM=="ppdev", GROUP="lp"
108KERNEL=="irlpt*", GROUP="lp"
109KERNEL=="pt[0-9]*", GROUP="tape"
110KERNEL=="pht[0-9]*", GROUP="tape"
111
112# sound devices
113SUBSYSTEM=="sound", GROUP="audio"
114
115# ieee1394 devices
116KERNEL=="raw1394", GROUP="disk"
117KERNEL=="dv1394*", GROUP="video"
118KERNEL=="video1394*", GROUP="video"
119
120# input devices
121KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \
122 MODE="0664", GROUP="video"
123KERNEL=="js[0-9]*", MODE="0664"
124KERNEL=="lirc[0-9]*", GROUP="video"
125
126# AOE character devices
127SUBSYSTEM=="aoe", MODE="0220", GROUP="disk"
128SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
129
130LABEL="permissions_end"
131
diff --git a/meta/recipes-core/udev/udev-158/run.rules b/meta/recipes-core/udev/udev-158/run.rules
new file mode 100644
index 0000000000..75d71375bb
--- /dev/null
+++ b/meta/recipes-core/udev/udev-158/run.rules
@@ -0,0 +1,14 @@
1# debugging monitor
2RUN+="socket:/org/kernel/udev/monitor"
3
4# run a command on remove events
5ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
6
7# ignore the events generated by virtual consoles
8KERNEL=="ptmx", OPTIONS+="last_rule"
9KERNEL=="console", OPTIONS+="last_rule"
10KERNEL=="tty" , OPTIONS+="last_rule"
11KERNEL=="tty[0-9]*", OPTIONS+="last_rule"
12KERNEL=="pty*", OPTIONS+="last_rule"
13SUBSYSTEM=="vc", OPTIONS+="last_rule"
14
diff --git a/meta/recipes-core/udev/udev-158/udev.rules b/meta/recipes-core/udev/udev-158/udev.rules
new file mode 100644
index 0000000000..a19d4a0bf6
--- /dev/null
+++ b/meta/recipes-core/udev/udev-158/udev.rules
@@ -0,0 +1,116 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16# workaround for devices which do not report media changes
17SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
18 ENV{ID_MODEL}=="IOMEGA_ZIP*", NAME="%k", OPTIONS+="all_partitions"
19SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
20 OPTIONS+="all_partitions"
21
22# SCSI devices
23SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
24
25# USB devices
26SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
27SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
28SUBSYSTEMS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
29SUBSYSTEMS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
30SUBSYSTEMS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
31SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
32SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
33 ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
34 SYMLINK+="pilot"
35
36# usbfs-like devices
37SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
38 NAME="%c"
39SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
40
41# serial devices
42KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
43KERNEL=="capi[0-9]*", NAME="capi/%n"
44
45# video devices
46KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
47 NAME="%c"
48KERNEL=="card[0-9]*", NAME="dri/%k"
49
50# misc devices
51KERNEL=="hw_random", NAME="hwrng"
52KERNEL=="tun", NAME="net/%k"
53KERNEL=="evtchn", NAME="xen/%k"
54
55KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
56KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
57KERNEL=="pktcdvd", NAME="pktcdvd/control"
58
59KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
60KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
61KERNEL=="microcode", NAME="cpu/microcode"
62
63KERNEL=="umad*", NAME="infiniband/%k"
64KERNEL=="issm*", NAME="infiniband/%k"
65KERNEL=="uverbs*", NAME="infiniband/%k"
66KERNEL=="ucm*", NAME="infiniband/%k"
67KERNEL=="rdma_ucm", NAME="infiniband/%k"
68
69# ALSA devices
70KERNEL=="controlC[0-9]*", NAME="snd/%k"
71KERNEL=="hwC[D0-9]*", NAME="snd/%k"
72KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
73KERNEL=="midiC[D0-9]*", NAME="snd/%k"
74KERNEL=="timer", NAME="snd/%k"
75KERNEL=="seq", NAME="snd/%k"
76
77# ieee1394 devices
78KERNEL=="dv1394*", NAME="dv1394/%n"
79KERNEL=="video1394*", NAME="video1394/%n"
80
81# input devices
82KERNEL=="mice", NAME="input/%k"
83KERNEL=="mouse[0-9]*", NAME="input/%k"
84KERNEL=="event[0-9]*", NAME="input/%k"
85KERNEL=="js[0-9]*", NAME="input/%k"
86KERNEL=="ts[0-9]*", NAME="input/%k"
87KERNEL=="uinput", NAME="input/%k"
88
89# Zaptel
90KERNEL=="zapctl", NAME="zap/ctl"
91KERNEL=="zaptimer", NAME="zap/timer"
92KERNEL=="zapchannel", NAME="zap/channel"
93KERNEL=="zappseudo", NAME="zap/pseudo"
94KERNEL=="zap[0-9]*", NAME="zap/%n"
95
96# AOE character devices
97SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
98SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
99SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
100SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k"
101
102# device mapper creates its own device nodes, so ignore these
103KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
104KERNEL=="device-mapper", NAME="mapper/control"
105
106KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
107
108# Firmware Helper
109ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
110
111# Samsung UARTS
112KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"
113
114# MXC UARTs
115KERNEL=="ttymxc[0-4]", NAME="ttymxc%n"
116
diff --git a/meta/recipes-core/udev/udev-extraconf_0.0.bb b/meta/recipes-core/udev/udev-extraconf_0.0.bb
new file mode 100644
index 0000000000..34c8400ddd
--- /dev/null
+++ b/meta/recipes-core/udev/udev-extraconf_0.0.bb
@@ -0,0 +1,12 @@
1DESCRIPTION = "Extra machine specific configuration files"
2LICENCE = "GPL"
3
4PR = "r0"
5
6SRC_URI = "file://mount.blacklist"
7
8do_install () {
9 install -d ${D}${sysconfdir}/udev/
10
11 install -m 0644 ${WORKDIR}/mount.blacklist ${D}${sysconfdir}/udev/
12}
diff --git a/meta/recipes-core/udev/udev-new.inc b/meta/recipes-core/udev/udev-new.inc
new file mode 100644
index 0000000000..87f9633473
--- /dev/null
+++ b/meta/recipes-core/udev/udev-new.inc
@@ -0,0 +1,92 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4HOMEPAGE = "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
5LICENSE = "GPLv2+ & LGPLv2.1+"
6LICENSE_${PN} = "GPLv2+"
7LICENSE_libudev = "LGPLv2.1+"
8LICENSE_libgudev = "LGPLv2.1+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
10 file://libudev/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
11 file://extras/gudev/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
12
13DEPENDS = "acl glib-2.0 libusb usbutils pciutils linux-libc-headers gperf-native libxslt-native"
14RPROVIDES_${PN} = "hotplug"
15RRECOMMENDS_${PN} += "udev-extraconf udev-cache usbutils-ids pciutils-ids"
16RDEPENDS_libudev = "${PN} (= ${EXTENDPV})"
17
18SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
19 file://run.rules \
20 file://udev.rules \
21 file://devfs-udev.rules \
22 file://links.conf \
23 file://permissions.rules \
24 file://mount.sh \
25 file://network.sh \
26 file://local.rules \
27 file://udev-cache \
28 file://init"
29
30SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
31
32inherit autotools pkgconfig update-rc.d
33
34# udevd/udevadm -> /sbin/, libudev.so.* -> /lib/
35sbindir = "${base_sbindir}"
36libexecdir = "${base_libdir}/udev"
37EXTRA_OECONF = "--disable-introspection --with-rootlibdir=${base_libdir} \
38 --with-pci-ids-path=${datadir}/pci.ids"
39
40PACKAGES =+ "udev-cache libudev libudev-dev libudev-dbg"
41PACKAGES =+ "libgudev libgudev-dev libgudev-dbg"
42PACKAGE_ARCH_h2200 = "h2200"
43
44INITSCRIPT_PACKAGES = "udev udev-cache"
45INITSCRIPT_NAME_udev = "udev"
46INITSCRIPT_PARAMS_udev = "start 04 S ."
47INITSCRIPT_NAME_udev-cache = "udev-cache"
48INITSCRIPT_PARAMS_udev-cache = "start 36 S ."
49
50FILES_${PN} += "${libexecdir} ${libdir}/ConsoleKit"
51FILES_${PN}-dbg += "${libexecdir}/.debug"
52FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc"
53FILES_libudev = "${base_libdir}/libudev.so.*"
54FILES_libudev-dbg = "${base_libdir}/.debug/libudev.so.*"
55FILES_libudev-dev = "${includedir}/libudev.h ${libdir}/libudev.so ${libdir}/libudev.la \
56 ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc"
57FILES_libgudev = "${libdir}/libgudev*.so.*"
58FILES_libgudev-dbg = "${libdir}/.debug/libgudev*.so.*"
59FILES_libgudev-dev = "${includedir}/gudev* ${libdir}/libgudev*.so ${libdir}/libgudev*.la \
60 ${libdir}/libgudev*.a ${libdir}/pkgconfig/gudev*.pc"
61FILES_udev-cache = "${sysconfdir}/init.d/udev-cache"
62
63do_install_append () {
64 install -d ${D}${sysconfdir}/init.d
65 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
66 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
67
68 install -d ${D}${sysconfdir}/udev/rules.d/
69
70 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
71 #install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
72 #install -m 0644 ${WORKDIR}/run.rules ${D}${sysconfdir}/udev/rules.d/run.rules
73 #install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
74 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
75 #if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
76 # install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
77 #fi
78
79 # Remove some default rules that don't work well on embedded devices
80 #rm ${D}${libexecdir}/rules.d/60-persistent-input.rules
81 #rm ${D}${libexecdir}/rules.d/60-persistent-storage.rules
82 #rm ${D}${libexecdir}/rules.d/60-persistent-storage-tape.rules
83
84 install -d ${D}${sysconfdir}/udev/scripts/
85
86 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
87 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
88}
89
90do_install_append_h2200() {
91 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
92}
diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc
new file mode 100644
index 0000000000..0afd817b8f
--- /dev/null
+++ b/meta/recipes-core/udev/udev.inc
@@ -0,0 +1,71 @@
1DESCRIPTION ?= "udev is a program which dynamically creates and removes device nodes from \
2/dev/. It responds to /sbin/hotplug device events and requires a 2.6 kernel."
3LICENSE = "GPL"
4
5SRC_URI += " \
6 file://udev.rules \
7 file://devfs-udev.rules \
8 file://links.conf \
9 file://permissions.rules \
10 file://mount.sh \
11 file://network.sh \
12 file://local.rules \
13 file://udev-cache \
14 file://init"
15
16UDEV_DEVFS_RULES ?= "0"
17
18PACKAGES =+ "udev-utils libvolume-id udev-cache"
19FILES_udev-utils = "${usrbindir}/udevinfo ${usrbindir}/udevtest"
20FILES_libvolume-id = "${base_libdir}/libvolume_id.so.*"
21FILES_udev-cache = "${sysconfdir}/init.d/udev-cache"
22
23RRECOMMENDS_${PN} += "udev-extraconf udev-cache"
24
25inherit update-rc.d autotools pkgconfig
26
27INITSCRIPT_PACKAGES = "udev udev-cache"
28INITSCRIPT_NAME_udev = "udev"
29INITSCRIPT_PARAMS_udev = "start 04 S ."
30INITSCRIPT_NAME_udev-cache = "udev-cache"
31INITSCRIPT_PARAMS_udev-cache = "start 36 S ."
32
33export CROSS = "${TARGET_PREFIX}"
34export HOSTCC = "${BUILD_CC}"
35export udevdir ?= "/dev"
36export usrbindir := "${bindir}"
37export usrsbindir := "${sbindir}"
38export etcdir = "${sysconfdir}"
39LD = "${CC}"
40bindir = "/bin"
41sbindir = "/sbin"
42
43UDEV_EXTRAS = "<override me>"
44FILES_${PN} += "${usrbindir}/* ${usrsbindir}/*"
45FILES_${PN}-dbg += "${usrbindir}/.debug ${usrsbindir}/.debug"
46EXTRA_OEMAKE = "-e \
47 'EXTRAS=${UDEV_EXTRAS}' \
48 'STRIP=echo'"
49
50do_install () {
51 install -d ${D}${usrsbindir} \
52 ${D}${sbindir}
53 oe_runmake 'DESTDIR=${D}' INSTALL=install install
54 install -d ${D}${sysconfdir}/init.d
55 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
56 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
57
58 install -d ${D}${sysconfdir}/udev/rules.d/
59
60 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
61 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
62 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
63 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
64 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
65 fi
66
67 install -d ${D}${sysconfdir}/udev/scripts/
68
69 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
70 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
71}
diff --git a/meta/recipes-core/udev/udev_092.bb b/meta/recipes-core/udev/udev_092.bb
new file mode 100644
index 0000000000..0e94d1f6c8
--- /dev/null
+++ b/meta/recipes-core/udev/udev_092.bb
@@ -0,0 +1,58 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6PR = "r17"
7
8SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
9 file://noasmlinkage.patch;patch=1 \
10 file://flags.patch;patch=1 \
11 file://udevsynthesize.patch;patch=1 \
12 file://udevsynthesize.sh \
13 file://arm_inotify_fix.patch;patch=1 \
14 "
15
16SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
17PACKAGE_ARCH_h2200 = "h2200"
18
19require udev.inc
20
21INITSCRIPT_PARAMS = "start 03 S ."
22
23FILES_${PN} += "${base_libdir}/udev/*"
24FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
25UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/ extras/run_directory/"
26EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
27
28do_install () {
29 install -d ${D}${usrsbindir} \
30 ${D}${sbindir}
31 oe_runmake 'DESTDIR=${D}' INSTALL=install install
32 install -d ${D}${sysconfdir}/init.d
33 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
34 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
35
36 install -d ${D}${sysconfdir}/udev/rules.d/
37
38 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
39 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
40 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
41 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
42 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
43 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
44 fi
45
46 install -d ${D}${sysconfdir}/udev/scripts/
47
48 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
49 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
50
51 install -d ${D}${base_libdir}/udev/
52 install -m 0755 ${S}/udevsynthesize ${D}${base_libdir}/udev/udevsynthesize
53 install -m 0755 ${WORKDIR}/udevsynthesize.sh ${D}${sbindir}/udevsynthesize
54}
55
56do_install_append_h2200() {
57 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
58}
diff --git a/meta/recipes-core/udev/udev_115.bb b/meta/recipes-core/udev/udev_115.bb
new file mode 100644
index 0000000000..9db8661b61
--- /dev/null
+++ b/meta/recipes-core/udev/udev_115.bb
@@ -0,0 +1,55 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6PR = "r5"
7
8SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
9 file://noasmlinkage.patch;patch=1 \
10 file://flags.patch;patch=1 \
11 file://vol_id_ld.patch;patch=1 \
12 file://udevtrigger_add_devname_filtering.patch;patch=1 \
13 "
14
15SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
16PACKAGE_ARCH_h2200 = "h2200"
17
18require udev.inc
19
20INITSCRIPT_PARAMS = "start 03 S ."
21
22FILES_${PN} += "${base_libdir}/udev/*"
23FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
24UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
25EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
26
27do_install () {
28 install -d ${D}${usrsbindir} \
29 ${D}${sbindir}
30 oe_runmake 'DESTDIR=${D}' INSTALL=install install
31 install -d ${D}${sysconfdir}/init.d
32 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
33 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
34
35 install -d ${D}${sysconfdir}/udev/rules.d/
36
37 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
38 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
39 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
40 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
41 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
42 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
43 fi
44
45 install -d ${D}${sysconfdir}/udev/scripts/
46
47 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
48 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
49
50 install -d ${D}${base_libdir}/udev/
51}
52
53do_install_append_h2200() {
54 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
55}
diff --git a/meta/recipes-core/udev/udev_124.bb b/meta/recipes-core/udev/udev_124.bb
new file mode 100644
index 0000000000..ccfbbf7018
--- /dev/null
+++ b/meta/recipes-core/udev/udev_124.bb
@@ -0,0 +1,62 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6PR = "r10"
7
8SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
9 file://noasmlinkage.patch;patch=1 \
10 file://flags.patch;patch=1 \
11 file://vol_id_ld.patch;patch=1 \
12 file://udevtrigger_add_devname_filtering.patch;patch=1 \
13 file://run.rules \
14 "
15
16SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
17PACKAGE_ARCH_h2200 = "h2200"
18
19require udev.inc
20
21INITSCRIPT_PARAMS = "start 03 S ."
22
23FILES_${PN} += "${base_libdir}/udev/*"
24FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
25UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
26EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
27
28do_install () {
29 install -d ${D}${usrsbindir} \
30 ${D}${sbindir}
31 oe_runmake 'DESTDIR=${D}' INSTALL=install install
32 install -d ${D}${sysconfdir}/init.d
33 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
34 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
35
36 install -d ${D}${sysconfdir}/udev/rules.d/
37
38 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
39 install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
40 install -m 0644 ${WORKDIR}/run.rules ${D}${sysconfdir}/udev/rules.d/run.rules
41 install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
42 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
43 if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
44 install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
45 fi
46
47 # Remove some default rules that don't work well on embedded devices
48 rm ${D}${sysconfdir}/udev/rules.d/60-persistent-input.rules
49 rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage.rules
50 rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage-tape.rules
51
52 install -d ${D}${sysconfdir}/udev/scripts/
53
54 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
55 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
56
57 install -d ${D}${base_libdir}/udev/
58}
59
60do_install_append_h2200() {
61 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
62}
diff --git a/meta/recipes-core/udev/udev_141.bb b/meta/recipes-core/udev/udev_141.bb
new file mode 100644
index 0000000000..3893a98a2d
--- /dev/null
+++ b/meta/recipes-core/udev/udev_141.bb
@@ -0,0 +1,65 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6PR = "r8"
7
8SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
9 file://noasmlinkage.patch;patch=1 \
10 file://unbreak.patch;patch=1 \
11 file://run.rules \
12 "
13
14SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
15PACKAGE_ARCH_h2200 = "h2200"
16
17require udev.inc
18
19FILES_${PN} += "${base_libdir}/udev/*"
20FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
21UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
22#EXTRA_OEMAKE += "libudevdir=/lib/udev libdir=${base_libdir} prefix="
23
24exec_prefix = ""
25
26EXTRA_OECONF = "--with-udev-prefix="
27
28do_install () {
29 install -d ${D}${usrsbindir} \
30 ${D}${sbindir}
31 oe_runmake 'DESTDIR=${D}' INSTALL=install install
32 install -d ${D}${sysconfdir}/init.d
33 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
34 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
35
36 install -d ${D}${sysconfdir}/udev/rules.d/
37
38 cp ${S}/rules/rules.d/* ${D}${sysconfdir}/udev/rules.d/
39 cp ${S}/rules/packages/* ${D}${sysconfdir}/udev/rules.d/
40 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
41 #install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
42 #install -m 0644 ${WORKDIR}/run.rules ${D}${sysconfdir}/udev/rules.d/run.rules
43 #install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
44 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
45 #if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
46 # install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
47 #fi
48
49 # Remove some default rules that don't work well on embedded devices
50 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-input.rules
51 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage.rules
52 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage-tape.rules
53
54 install -d ${D}${sysconfdir}/udev/scripts/
55
56 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
57 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
58
59 install -d ${D}${base_libdir}/udev/
60}
61
62do_install_append_h2200() {
63 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
64}
65
diff --git a/meta/recipes-core/udev/udev_145.bb b/meta/recipes-core/udev/udev_145.bb
new file mode 100644
index 0000000000..91d8ce3734
--- /dev/null
+++ b/meta/recipes-core/udev/udev_145.bb
@@ -0,0 +1,65 @@
1DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \
2/dev/, handles hotplug events and loads drivers at boot time. It replaces \
3the hotplug package and requires a kernel not older than 2.6.12."
4RPROVIDES_${PN} = "hotplug"
5
6PR = "r9"
7
8SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
9 file://enable-gudev.patch;patch=1 \
10 file://run.rules \
11 "
12
13SRC_URI_append_h2200 = " file://50-hostap_cs.rules "
14PACKAGE_ARCH_h2200 = "h2200"
15
16require udev.inc
17
18INITSCRIPT_PARAMS = "start 03 S ."
19
20FILES_${PN} += "${base_libdir}/udev/*"
21FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
22UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/"
23
24EXTRA_OECONF = "--with-udev-prefix= --disable-extras --disable-introspection"
25
26DEPENDS += "glib-2.0"
27
28do_install () {
29 install -d ${D}${usrsbindir} \
30 ${D}${sbindir}
31 oe_runmake 'DESTDIR=${D}' INSTALL=install install
32 install -d ${D}${sysconfdir}/init.d
33 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
34 install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
35
36 install -d ${D}${sysconfdir}/udev/rules.d/
37
38 cp ${S}/rules/rules.d/* ${D}${sysconfdir}/udev/rules.d/
39 cp ${S}/rules/packages/* ${D}${sysconfdir}/udev/rules.d/
40 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
41 #install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules
42 #install -m 0644 ${WORKDIR}/run.rules ${D}${sysconfdir}/udev/rules.d/run.rules
43 #install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules
44 install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf
45 #if [ "${UDEV_DEVFS_RULES}" = "1" ]; then
46 # install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules
47 #fi
48
49 # Remove some default rules that don't work well on embedded devices
50 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-input.rules
51 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage.rules
52 #rm ${D}${sysconfdir}/udev/rules.d/60-persistent-storage-tape.rules
53
54 install -d ${D}${sysconfdir}/udev/scripts/
55
56 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
57 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
58
59 install -d ${D}${base_libdir}/udev/
60}
61
62do_install_append_h2200() {
63 install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
64}
65
diff --git a/meta/recipes-core/udev/udev_158.bb b/meta/recipes-core/udev/udev_158.bb
new file mode 100644
index 0000000000..daf8d37e5f
--- /dev/null
+++ b/meta/recipes-core/udev/udev_158.bb
@@ -0,0 +1,3 @@
1include udev-new.inc
2
3PR = "r2"
diff --git a/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch b/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch
new file mode 100644
index 0000000000..0f068308f6
--- /dev/null
+++ b/meta/recipes-core/update-rc.d/update-rc.d/add-verbose.patch
@@ -0,0 +1,47 @@
1--- update-rc.d/update-rc.d.org 2005-01-03 00:30:47.000000000 +0200
2+++ update-rc.d/update-rc.d 2007-12-01 19:41:08.000000000 +0200
3@@ -19,6 +19,7 @@
4 notreally=0
5 force=0
6 dostart=0
7+verbose=0
8
9 usage()
10 {
11@@ -28,6 +29,7 @@
12 update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN runlvl [runlvl] [...] .
13 -n: not really
14 -f: force
15+ -v: verbose
16 -r: alternate root path (default is /)
17 -s: invoke start methods if appropriate to current runlevel
18 EOF
19@@ -69,7 +71,7 @@
20 lev=`echo $2 | cut -d/ -f1`
21 nn=`echo $2 | cut -d/ -f2`
22 fn="${etcd}${lev}.d/${startstop}${nn}${bn}"
23- echo " $fn -> ../init.d/$bn"
24+ [ $verbose -eq 1 ] && echo " $fn -> ../init.d/$bn"
25 if [ $notreally -eq 0 ]; then
26 mkdir -p `dirname $fn`
27 ln -s ../init.d/$bn $fn
28@@ -89,7 +91,7 @@
29 exit 0
30 fi
31
32- echo " Adding system startup for $initd/$bn ..."
33+ echo " Adding system startup for $initd/$bn."
34
35 for i in $startlinks; do
36 dolink S $i
37@@ -105,6 +107,10 @@
38 shift
39 continue
40 ;;
41+ -v) verbose=1
42+ shift
43+ continue
44+ ;;
45 -f) force=1
46 shift
47 continue
diff --git a/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb b/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
new file mode 100644
index 0000000000..03ac5c1a29
--- /dev/null
+++ b/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
@@ -0,0 +1,25 @@
1DESCRIPTION = "manage symlinks in /etc/rcN.d."
2SECTION = "base"
3PRIORITY = "standard"
4PACKAGE_ARCH = "all"
5
6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=148a48321b10eb37c1fa3ee02b940a75"
8
9PR = "r3"
10
11SRC_URI = "${HANDHELDS_CVS};module=apps/update-rc.d;tag=r0_7 \
12 file://add-verbose.patch;apply=yes"
13
14S = "${WORKDIR}/update-rc.d"
15
16
17do_compile() {
18}
19
20do_install() {
21 install -d ${D}${sbindir}
22 install -m 0755 ${S}/update-rc.d ${D}${sbindir}/update-rc.d
23}
24
25BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/zlib/files/Makefile.am b/meta/recipes-core/zlib/files/Makefile.am
new file mode 100644
index 0000000000..b66d299d8f
--- /dev/null
+++ b/meta/recipes-core/zlib/files/Makefile.am
@@ -0,0 +1,9 @@
1lib_LTLIBRARIES = libz.la
2
3libz_la_SOURCES = adler32.c compress.c crc32.c gzlib.c gzclose.c gzread.c \
4 gzwrite.c uncompr.c deflate.c trees.c zutil.c inflate.c \
5 infback.c inftrees.c inffast.c
6
7libz_la_LDFLAGS = -version-number 1:2:5 --version-script zlib.map
8
9include_HEADERS = zconf.h zlib.h zlibdefs.h
diff --git a/meta/recipes-core/zlib/files/configure.ac b/meta/recipes-core/zlib/files/configure.ac
new file mode 100644
index 0000000000..4761b7ef28
--- /dev/null
+++ b/meta/recipes-core/zlib/files/configure.ac
@@ -0,0 +1,48 @@
1AC_INIT(zlib,1.2.5)
2AC_CONFIG_SRCDIR(adler32.c)
3AM_INIT_AUTOMAKE(zlibs,1.2.5)
4
5AC_PREREQ([2.59])
6
7AC_PROG_CC([gcc])
8AC_PROG_LIBTOOL
9
10AC_HEADER_STDC
11
12zlib_save_CPPFLAGS=$CPPFLAGS
13CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
14AC_CHECK_TYPES(off64_t)
15CPPFLAGS=$zlib_save_CPPFLAGS
16
17AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], [zlib_cv_use_lfs64], [
18 zlib_cv_use_lfs64=no
19 if test "$ac_cv_type_off64_t" = "yes"; then
20 zlib_cv_use_lfs64=yes
21 fi
22])
23
24if test "$zlib_cv_use_lfs64" = "yes"; then
25 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
26
27 #APR_ADDTO(CPPFLAGS, [-D_LARGEFILE64_SOURCE])
28fi
29
30cat > zlibdefs.h << EOF
31/* zlibdefs.h -- compile-time definitions for the zlib compression library
32 * Copyright (C) 1995-2006 Jean-loup Gailly.
33 * For conditions of distribution and use, see copyright notice in zlib.h
34 */
35
36#include <sys/types.h> /* for off_t */
37#include <unistd.h> /* for SEEK_* and off_t */
38#ifdef VMS
39# include <unixio.h> /* for off_t */
40#endif
41#ifndef z_off_t
42# define z_off_t off_t
43#endif
44EOF
45
46AC_CONFIG_FILES([Makefile])
47
48AC_OUTPUT
diff --git a/meta/recipes-core/zlib/zlib_1.2.5.bb b/meta/recipes-core/zlib/zlib_1.2.5.bb
new file mode 100644
index 0000000000..e6db69e3a6
--- /dev/null
+++ b/meta/recipes-core/zlib/zlib_1.2.5.bb
@@ -0,0 +1,22 @@
1DESCRIPTION = "Zlib Compression Library"
2HOMEPAGE = "http://zlib.net/"
3SECTION = "libs"
4PRIORITY = "required"
5LICENSE = "zlib"
6LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=084e9c30e4e6272c3b057b13c6467f3d"
7
8DEPENDS = "libtool-cross"
9PR = "r0"
10
11SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
12 file://configure.ac \
13 file://Makefile.am"
14
15inherit autotools
16
17do_configure_prepend () {
18 cp ${WORKDIR}/configure.ac ${S}/
19 cp ${WORKDIR}/Makefile.am ${S}/
20}
21
22BBCLASSEXTEND = "native nativesdk"