diff options
author | Koen Kooi <koen@openembedded.org> | 2008-03-26 18:46:06 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2008-03-26 18:46:06 +0000 |
commit | 48fd147498115e7682153b9ec28f4ab0065a845e (patch) | |
tree | 86b0d7876538f6c5f2e73a82020864ac10e9d020 | |
parent | f76280c3bdee25e5126d68f3891bb240b3cd1ce9 (diff) | |
parent | f7147e250bbe3dfc84913aa7a16d58026d98ae90 (diff) |
merge of '1ba445dfd1a9b934962a4db388d6ab641b3f74e8'
and '8f2da0702f522e178a88e3c2dd8f65e05d0680a7'
-rw-r--r-- | MAINTAINERS | 5 | ||||
-rw-r--r-- | conf/distro/include/angstrom.inc | 4 | ||||
-rw-r--r-- | conf/distro/include/sane-srcdates.inc | 2 | ||||
-rw-r--r-- | conf/distro/openmoko.conf | 31 | ||||
-rw-r--r-- | conf/machine/om-gta01.conf (renamed from conf/machine/fic-gta01.conf) | 2 | ||||
-rw-r--r-- | conf/machine/om-gta02.conf (renamed from conf/machine/fic-gta02.conf) | 2 | ||||
-rwxr-xr-x | contrib/angstrom/build-feeds.sh | 2 | ||||
-rwxr-xr-x | contrib/angstrom/build-release.sh | 4 | ||||
-rw-r--r-- | contrib/feed-browser/includes/config.inc | 2 | ||||
-rw-r--r-- | contrib/qa/bugzilla.py | 4 | ||||
-rw-r--r-- | packages/alsa/alsa-state.bb | 4 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/.mtn2git_empty (renamed from packages/alsa/alsa-state/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/asound.state (renamed from packages/alsa/alsa-state/fic-gta01/asound.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/capturehandset.state (renamed from packages/alsa/alsa-state/fic-gta01/capturehandset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/captureheadset.state (renamed from packages/alsa/alsa-state/fic-gta01/captureheadset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/gsmbluetooth.state (renamed from packages/alsa/alsa-state/fic-gta01/gsmbluetooth.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/gsmhandset.state (renamed from packages/alsa/alsa-state/fic-gta01/gsmhandset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/gsmheadset.state (renamed from packages/alsa/alsa-state/fic-gta01/gsmheadset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/gsmspeakerout.state (renamed from packages/alsa/alsa-state/fic-gta01/gsmspeakerout.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/stereoout.state (renamed from packages/alsa/alsa-state/fic-gta01/stereoout.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/voip-handset.state (renamed from packages/alsa/alsa-state/fic-gta01/voip-handset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta01/voip-headset.state (renamed from packages/alsa/alsa-state/fic-gta01/voip-headset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta02/.mtn2git_empty (renamed from packages/alsa/alsa-state/fic-gta02/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta02/asound.state (renamed from packages/alsa/alsa-state/fic-gta02/asound.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta02/gsmhandset.state (renamed from packages/alsa/alsa-state/fic-gta02/gsmhandset.state) | 0 | ||||
-rw-r--r-- | packages/alsa/alsa-state/om-gta02/stereoout.state (renamed from packages/alsa/alsa-state/fic-gta02/stereoout.state) | 0 | ||||
-rw-r--r-- | packages/base-files/base-files/om-gta01/.mtn2git_empty (renamed from packages/base-files/base-files/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/base-files/base-files/om-gta01/fstab (renamed from packages/base-files/base-files/fic-gta01/fstab) | 0 | ||||
-rw-r--r-- | packages/base-files/base-files/om-gta02/.mtn2git_empty (renamed from packages/base-files/base-files/fic-gta02/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/base-files/base-files/om-gta02/fstab (renamed from packages/base-files/base-files/fic-gta02/fstab) | 0 | ||||
-rw-r--r-- | packages/bluez/bluez-utils3.inc | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.11.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.12.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.13.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.14.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.15.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.16.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils_3.17.bb | 2 | ||||
-rw-r--r-- | packages/fbreader/fbreader_0.8.2a.bb | 2 | ||||
-rw-r--r-- | packages/fbset/fbset-modes/om-gta01/.mtn2git_empty (renamed from packages/fbset/fbset-modes/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/fbset/fbset-modes/om-gta01/fb.modes (renamed from packages/fbset/fbset-modes/fic-gta01/fb.modes) | 0 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher/om-gta01/.mtn2git_empty (renamed from packages/gpephone/gpe-applauncher/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher/om-gta01/hotkeys.conf (renamed from packages/gpephone/gpe-applauncher/fic-gta01/hotkeys.conf) | 0 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher/om-gta01/softkeys.conf (renamed from packages/gpephone/gpe-applauncher/fic-gta01/softkeys.conf) | 0 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher_0.10.bb | 2 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher_0.11.bb | 2 | ||||
-rw-r--r-- | packages/gpephone/gpe-applauncher_svn.bb | 2 | ||||
-rw-r--r-- | packages/gpephone/phoneserver_1.0.bb | 2 | ||||
-rw-r--r-- | packages/gpsd/files/om-gta01/.mtn2git_empty (renamed from packages/gpsd/files/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/gpsd/files/om-gta01/gps-hardware (renamed from packages/gpsd/files/fic-gta01/gps-hardware) | 0 | ||||
-rw-r--r-- | packages/gpsd/files/om-gta01/gpsd-default (renamed from packages/gpsd/files/fic-gta01/gpsd-default) | 0 | ||||
-rw-r--r-- | packages/gpsd/files/om-gta01/restart_gllin.sh (renamed from packages/gpsd/files/fic-gta01/restart_gllin.sh) | 0 | ||||
-rw-r--r-- | packages/gpsd/gpsd.inc | 4 | ||||
-rw-r--r-- | packages/gtkhtml/gtkhtml-3.8_3.18.0.bb | 12 | ||||
-rw-r--r-- | packages/initscripts/initscripts-1.0/om-gta01/.mtn2git_empty (renamed from packages/initscripts/initscripts-1.0/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/initscripts/initscripts-1.0/om-gta01/inittab (renamed from packages/initscripts/initscripts-1.0/fic-gta01/inittab) | 0 | ||||
-rw-r--r-- | packages/linux/linux-2.6.24/simpad/linux-2.6.24-SIMpad-rtc-sa1100.patch | 76 | ||||
-rw-r--r-- | packages/linux/linux-openmoko-devel_git.bb | 2 | ||||
-rw-r--r-- | packages/linux/linux-openmoko.inc | 4 | ||||
-rw-r--r-- | packages/linux/linux-openmoko_2.6.22.5.bb | 2 | ||||
-rw-r--r-- | packages/linux/linux-openmoko_2.6.24.bb | 13 | ||||
-rw-r--r-- | packages/linux/linux_2.6.24.bb | 2 | ||||
-rw-r--r-- | packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb | 4 | ||||
-rw-r--r-- | packages/netbase/netbase/om-gta01/.mtn2git_empty (renamed from packages/netbase/netbase/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/netbase/netbase/om-gta01/interfaces (renamed from packages/netbase/netbase/fic-gta01/interfaces) | 0 | ||||
-rw-r--r-- | packages/netbase/netbase/om-gta02/.mtn2git_empty (renamed from packages/netbase/netbase/fic-gta02/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/netbase/netbase/om-gta02/interfaces (renamed from packages/netbase/netbase/fic-gta02/interfaces) | 0 | ||||
-rw-r--r-- | packages/openmoko2/neod_svn.bb | 4 | ||||
-rw-r--r-- | packages/openmoko2/openmoko-dialer2/om-gta01/.mtn2git_empty (renamed from packages/openmoko2/openmoko-dialer2/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/openmoko2/openmoko-dialer2/om-gta01/kernel-2.6.24.patch (renamed from packages/openmoko2/openmoko-dialer2/fic-gta01/kernel-2.6.24.patch) | 0 | ||||
-rw-r--r-- | packages/openmoko2/openmoko-dialer2/om-gta02/.mtn2git_empty (renamed from packages/openmoko2/openmoko-dialer2/fic-gta02/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/openmoko2/openmoko-dialer2/om-gta02/kernel-2.6.24.patch (renamed from packages/openmoko2/openmoko-dialer2/fic-gta02/kernel-2.6.24.patch) | 0 | ||||
-rw-r--r-- | packages/openmoko2/openmoko-dialer2_svn.bb | 4 | ||||
-rw-r--r-- | packages/opkg/opkg.inc | 2 | ||||
-rw-r--r-- | packages/pointercal/files/om-gta01/.mtn2git_empty (renamed from packages/pointercal/files/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/pointercal/files/om-gta01/pointercal (renamed from packages/pointercal/files/fic-gta01/pointercal) | 0 | ||||
-rw-r--r-- | packages/pointercal/files/om-gta02/.mtn2git_empty (renamed from packages/pointercal/files/fic-gta02/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/pointercal/files/om-gta02/pointercal (renamed from packages/pointercal/files/fic-gta02/pointercal) | bin | 46 -> 46 bytes | |||
-rw-r--r-- | packages/popt/popt-1.13/.mtn2git_empty (renamed from packages/scummvm/files/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/popt/popt-1.13/iconv.patch | 13 | ||||
-rw-r--r-- | packages/popt/popt_1.13.bb | 6 | ||||
-rw-r--r-- | packages/pump/.mtn2git_empty (renamed from packages/tslib/tslib/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/pump/pump/.mtn2git_empty (renamed from packages/u-boot/u-boot-1.2.0/fic-gta01/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/pump/pump/debian.patch | 2141 | ||||
-rw-r--r-- | packages/pump/pump_0.8.24.bb | 19 | ||||
-rw-r--r-- | packages/scummvm/files/om-gta01/.mtn2git_empty (renamed from packages/uclibc/uclibc-0.9.29/fic-gta01/.mtn2git_empty) | 0 | ||||
-rwxr-xr-x | packages/scummvm/files/om-gta01/openmoko-scummvm (renamed from packages/scummvm/files/fic-gta01/openmoko-scummvm) | 0 | ||||
-rw-r--r-- | packages/slugos-init/files/modulefunctions | 34 | ||||
-rw-r--r-- | packages/slugos-init/files/turnup | 6 | ||||
-rw-r--r-- | packages/slugos-init/slugos-init_4.8.bb | 2 | ||||
-rw-r--r-- | packages/squid/squid/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/squid/squid/fix_epoll_check.patch | 11 | ||||
-rw-r--r-- | packages/squid/squid/squid.init | 70 | ||||
-rw-r--r-- | packages/squid/squid_2.6.STABLE14.bb | 24 | ||||
-rw-r--r-- | packages/squidview/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/squidview/squidview_0.72.bb | 12 | ||||
-rw-r--r-- | packages/tslib/tslib/om-gta01/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/tslib/tslib/om-gta01/ts.conf (renamed from packages/tslib/tslib/fic-gta01/ts.conf) | 0 | ||||
-rw-r--r-- | packages/u-boot/u-boot-1.2.0/om-gta01/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/u-boot/u-boot-1.2.0/om-gta01/fw_env.config (renamed from packages/u-boot/u-boot-1.2.0/fic-gta01/fw_env.config) | 0 | ||||
-rw-r--r-- | packages/uclibc/uclibc-0.9.29/om-gta01/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/uclibc/uclibc-0.9.29/om-gta01/uClibc.machine (renamed from packages/uclibc/uclibc-0.9.29/fic-gta01/uClibc.machine) | 0 |
102 files changed, 2446 insertions, 109 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index fd26450557..65eb4c7c20 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -96,7 +96,8 @@ Person: Jeremy Lainé Mail: jeremy.laine@bolloretelecom.eu Website: http://www.jerryweb.org/ Machines: mpc8313e-rdb -Recipes: libexosip2, python-cheetah, python-django, python-pyopenssl +Recipes: libexosip2, python-cheetah, python-django, python-pyopenssl, +Recipes: pump, squid, squidview Person: Joaquim Duran Mail: joaquinduran@adtelecom.es @@ -165,7 +166,7 @@ Recipes: altboot, webcam-server Person: Michael 'Mickey' Lauer Mail: mlauer@vanille-media.de Distros: OpenMoko, Ångström, Generic -Machines: fic-gta01, fic-gta02, nokia810, x86, qemuarm, qemux86 +Machines: om-gta01, om-gta02, nokia810, x86, qemuarm, qemux86 Interests: Core OE infrastructure, everything Python, EFL, E17, Qt4 Recipes: *python*, efl/*, e17* diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc index 8699dc183c..bb1d65dec3 100644 --- a/conf/distro/include/angstrom.inc +++ b/conf/distro/include/angstrom.inc @@ -92,8 +92,8 @@ FEED_ARCH_acern30 = "armv4t" FEED_ARCH_amsdelta = "armv4t" FEED_ARCH_ep93xx = "armv4t" FEED_ARCH_eteng500 = "armv4t" -FEED_ARCH_fic-gta01 = "armv4t" -FEED_ARCH_fic-gta02 = "armv4t" +FEED_ARCH_om-gta01 = "armv4t" +FEED_ARCH_om-gta02 = "armv4t" FEED_ARCH_h1940 = "armv4t" FEED_ARCH_h6300 = "armv4t" FEED_ARCH_kb9202 = "armv4t" diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc index 9c14f9a018..13ea6a4811 100644 --- a/conf/distro/include/sane-srcdates.inc +++ b/conf/distro/include/sane-srcdates.inc @@ -52,7 +52,7 @@ SRCDATE_gtkhtml2 ?= "20060323" # Enlightenment Foundation Libraries # Caution: This is not alphabetically, but (roughly) dependency-sorted. # Please leave it like that. -EFL_SRCDATE = "20080129" +EFL_SRCDATE = "20080310" SRCDATE_edb-native ?= "${EFL_SRCDATE}" SRCDATE_edb ?= "${EFL_SRCDATE}" SRCDATE_eet-native ?= "${EFL_SRCDATE}" diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf index 62d2189c8a..434469dc74 100644 --- a/conf/distro/openmoko.conf +++ b/conf/distro/openmoko.conf @@ -27,12 +27,12 @@ FEED_URIS = "\ snapshot-all##http://buildhost.openmoko.org/snapshots/2007.08/ipk/all \ snapshot-armv4t##http://buildhost.openmoko.org/snapshots/2007.08/ipk/armv4t \ snapshot-neo1973##http://buildhost.openmoko.org/snapshots/2007.08/ipk/neo1973 \ - snapshot-fic-gta01##http://buildhost.openmoko.org/snapshots/2007.08/ipk/fic-gta01 \ + snapshot-om-gta01##http://buildhost.openmoko.org/snapshots/2007.08/ipk/om-gta01 \ \ updates-all##http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/all \ updates-armv4t##http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/armv4t \ updates-neo1973##http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/neo1973 \ - updates-fic-gta01##http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/fic-gta01 " + updates-om-gta01##http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/om-gta01 " # 2.18 seems to break badly on 64-bit systems PREFERRED_VERSION_binutils ?= "2.17.50.0.12" @@ -47,19 +47,22 @@ PREFERRED_PROVIDER_libgsmd = "libgsmd" # override the PACKAGE_ARCH of certain packages for openmoko distro # # Same kernel runs on both these machines -PACKAGE_ARCH_pn-linux-openmoko_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-linux-openmoko_fic-gta02 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-linux-openmoko-devel_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-linux-openmoko-devel_fic-gta02 = "${MACHINE_CLASS}" +# Currently not used but left here in case someone wants to switch on +# quickly +#PACKAGE_ARCH_pn-linux-openmoko_om-gta01 = "${MACHINE_CLASS}" +#PACKAGE_ARCH_pn-linux-openmoko_om-gta02 = "${MACHINE_CLASS}" +#PACKAGE_ARCH_pn-linux-openmoko-devel_om-gta01 = "${MACHINE_CLASS}" +#PACKAGE_ARCH_pn-linux-openmoko-devel_om-gta02 = "${MACHINE_CLASS}" + # Same kernel so same usb -PACKAGE_ARCH_pn-usb-gadget-mode_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-usb-gadget-mode_fic-gta02 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-usb-gadget-mode_om-gta01 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-usb-gadget-mode_om-gta02 = "${MACHINE_CLASS}" # same kernel so same keymaps -PACKAGE_ARCH_pn-keymaps_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-keymaps_fic-gta02 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-keymaps_om-gta01 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-keymaps_om-gta02 = "${MACHINE_CLASS}" # neod knows about both machines -PACKAGE_ARCH_pn-neod_fic-gta01 = "${MACHINE_CLASS}" -PACKAGE_ARCH_pn-neod_fic-gta02 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-neod_om-gta01 = "${MACHINE_CLASS}" +PACKAGE_ARCH_pn-neod_om-gta02 = "${MACHINE_CLASS}" # Select package versions we want to use. PREFERRED_PROVIDER_gtk+ = "gtk+-fastscaling" @@ -71,5 +74,5 @@ PREFERRED_PROVIDER_virtual/java-initial = "cacao-initial" PREFERRED_PROVIDER_swt3.4-gtk = "swt3.4-gtk" # deploy gta01 and gta02 in ${MACHINE_CLASS} directory -DEPLOY_DIR_IMAGE_fic-gta01 = "${DEPLOY_DIR}/images/${MACHINE_CLASS}" -DEPLOY_DIR_IMAGE_fic-gta02 = "${DEPLOY_DIR}/images/${MACHINE_CLASS}" +DEPLOY_DIR_IMAGE_om-gta01 = "${DEPLOY_DIR}/images/${MACHINE_CLASS}" +DEPLOY_DIR_IMAGE_om-gta02 = "${DEPLOY_DIR}/images/${MACHINE_CLASS}" diff --git a/conf/machine/fic-gta01.conf b/conf/machine/om-gta01.conf index bfaf5ed793..09c382f376 100644 --- a/conf/machine/fic-gta01.conf +++ b/conf/machine/om-gta01.conf @@ -6,7 +6,7 @@ TARGET_ARCH = "arm" MACHINE_CLASS = "neo1973" -PACKAGE_EXTRA_ARCHS = "armv4t ${MACHINE_CLASS}" +PACKAGE_EXTRA_ARCHS = "armv4t fic-gta01 ${MACHINE_CLASS}" PREFERRED_PROVIDER_virtual/kernel = "linux-openmoko" UBOOT_ENTRYPOINT = "30008000" diff --git a/conf/machine/fic-gta02.conf b/conf/machine/om-gta02.conf index 2c2034b1b6..18678cc336 100644 --- a/conf/machine/fic-gta02.conf +++ b/conf/machine/om-gta02.conf @@ -6,7 +6,7 @@ TARGET_ARCH = "arm" MACHINE_CLASS = "neo1973" -PACKAGE_EXTRA_ARCHS = "armv4t ${MACHINE_CLASS}" +PACKAGE_EXTRA_ARCHS = "armv4t fic-gta02 ${MACHINE_CLASS}" PREFERRED_PROVIDER_virtual/kernel = "linux-openmoko" UBOOT_ENTRYPOINT = "30008000" diff --git a/contrib/angstrom/build-feeds.sh b/contrib/angstrom/build-feeds.sh index 600352ec6e..12f74a81c0 100755 --- a/contrib/angstrom/build-feeds.sh +++ b/contrib/angstrom/build-feeds.sh @@ -38,7 +38,7 @@ do_report_success() { echo "$(date -u +%s) $target $BUILD_MODE $machine" >> autobuilder-feed.log } -for machine in ep93xx gumstix-connex gumstix-verdex efika dht-walnut omap5912osk ixp4xxle ixp4xxbe c7x0 poodle tosa akita spitz collie simpad fic-gta01 a780 at91sam9263ek qemuarm h2200 h3900 h4000 hx4700 +for machine in ep93xx gumstix-connex gumstix-verdex efika dht-walnut omap5912osk ixp4xxle ixp4xxbe c7x0 poodle tosa akita spitz collie simpad om-gta01 a780 at91sam9263ek qemuarm h2200 h3900 h4000 hx4700 do BUILD_MACHINE=$machine BUILD_CLEAN="libtool-cross qmake-native qmake2-native" diff --git a/contrib/angstrom/build-release.sh b/contrib/angstrom/build-release.sh index cf5af3073e..bb903b236a 100755 --- a/contrib/angstrom/build-release.sh +++ b/contrib/angstrom/build-release.sh @@ -78,7 +78,7 @@ do done # graphics, flash storage -for machine in fic-gta01 a780 at91sam9263ek qemuarm h2200 h3900 h4000 h5000 poodle tosa hx4700 c7x0 spitz akita collie simpad +for machine in om-gta01 a780 at91sam9263ek qemuarm h2200 h3900 h4000 h5000 poodle tosa hx4700 c7x0 spitz akita collie simpad do BUILD_CLEAN="base-files" BUILD_MACHINE=$machine @@ -96,7 +96,7 @@ do done #phones -for machine in fic-gta01 a780 +for machine in om-gta01 a780 do BUILD_MACHINE=$machine BUILD_TARGETS="minimal-openmoko-image openmoko-image" diff --git a/contrib/feed-browser/includes/config.inc b/contrib/feed-browser/includes/config.inc index c2414b8013..195363df3c 100644 --- a/contrib/feed-browser/includes/config.inc +++ b/contrib/feed-browser/includes/config.inc @@ -251,7 +251,7 @@ $feeds = array( ), array( 'name'=>'FIC gta01/Neo1973 phone', - 'url'=>'armv4t/machine/fic-gta01', + 'url'=>'armv4t/machine/om-gta01', ), array( diff --git a/contrib/qa/bugzilla.py b/contrib/qa/bugzilla.py index 17849552b0..019b546a96 100644 --- a/contrib/qa/bugzilla.py +++ b/contrib/qa/bugzilla.py @@ -5126,7 +5126,7 @@ bugs_openmoko = """<!-- 1.0@bugzilla.org --> </td> <td><nobr>FIXE</nobr> </td> - <td>defconfig-fic-gta01 could use updating + <td>defconfig-om-gta01 could use updating </td> </tr> @@ -5798,7 +5798,7 @@ bugs_openmoko = """<!-- 1.0@bugzilla.org --> </td> <td><nobr>FIXE</nobr> </td> - <td>Please enable CONFIG_TUN as a module in defconfig-fic-gta01 + <td>Please enable CONFIG_TUN as a module in defconfig-om-gta01 </td> </tr> diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index 7a95b55f34..1d31bd765e 100644 --- a/packages/alsa/alsa-state.bb +++ b/packages/alsa/alsa-state.bb @@ -15,7 +15,7 @@ SRC_URI = " \ file://asound.state \ file://alsa-state " -SRC_URI_append_fic-gta01 = " \ +SRC_URI_append_om-gta01 = " \ file://capturehandset.state \ file://captureheadset.state \ file://gsmbluetooth.state \ @@ -26,7 +26,7 @@ SRC_URI_append_fic-gta01 = " \ file://voip-handset.state \ file://voip-headset.state" -SRC_URI_append_fic-gta02 = "\ +SRC_URI_append_om-gta02 = "\ file://stereoout.state \ file://gsmhandset.state \ " diff --git a/packages/alsa/alsa-state/fic-gta01/.mtn2git_empty b/packages/alsa/alsa-state/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/alsa/alsa-state/fic-gta01/.mtn2git_empty +++ b/packages/alsa/alsa-state/om-gta01/.mtn2git_empty diff --git a/packages/alsa/alsa-state/fic-gta01/asound.state b/packages/alsa/alsa-state/om-gta01/asound.state index 26db3cf311..26db3cf311 100644 --- a/packages/alsa/alsa-state/fic-gta01/asound.state +++ b/packages/alsa/alsa-state/om-gta01/asound.state diff --git a/packages/alsa/alsa-state/fic-gta01/capturehandset.state b/packages/alsa/alsa-state/om-gta01/capturehandset.state index 54bf01e945..54bf01e945 100644 --- a/packages/alsa/alsa-state/fic-gta01/capturehandset.state +++ b/packages/alsa/alsa-state/om-gta01/capturehandset.state diff --git a/packages/alsa/alsa-state/fic-gta01/captureheadset.state b/packages/alsa/alsa-state/om-gta01/captureheadset.state index 2a174d80ab..2a174d80ab 100644 --- a/packages/alsa/alsa-state/fic-gta01/captureheadset.state +++ b/packages/alsa/alsa-state/om-gta01/captureheadset.state diff --git a/packages/alsa/alsa-state/fic-gta01/gsmbluetooth.state b/packages/alsa/alsa-state/om-gta01/gsmbluetooth.state index 8569474a0e..8569474a0e 100644 --- a/packages/alsa/alsa-state/fic-gta01/gsmbluetooth.state +++ b/packages/alsa/alsa-state/om-gta01/gsmbluetooth.state diff --git a/packages/alsa/alsa-state/fic-gta01/gsmhandset.state b/packages/alsa/alsa-state/om-gta01/gsmhandset.state index 999f71253c..999f71253c 100644 --- a/packages/alsa/alsa-state/fic-gta01/gsmhandset.state +++ b/packages/alsa/alsa-state/om-gta01/gsmhandset.state diff --git a/packages/alsa/alsa-state/fic-gta01/gsmheadset.state b/packages/alsa/alsa-state/om-gta01/gsmheadset.state index e81bfc8306..e81bfc8306 100644 --- a/packages/alsa/alsa-state/fic-gta01/gsmheadset.state +++ b/packages/alsa/alsa-state/om-gta01/gsmheadset.state diff --git a/packages/alsa/alsa-state/fic-gta01/gsmspeakerout.state b/packages/alsa/alsa-state/om-gta01/gsmspeakerout.state index 5e3ed93179..5e3ed93179 100644 --- a/packages/alsa/alsa-state/fic-gta01/gsmspeakerout.state +++ b/packages/alsa/alsa-state/om-gta01/gsmspeakerout.state diff --git a/packages/alsa/alsa-state/fic-gta01/stereoout.state b/packages/alsa/alsa-state/om-gta01/stereoout.state index 26db3cf311..26db3cf311 100644 --- a/packages/alsa/alsa-state/fic-gta01/stereoout.state +++ b/packages/alsa/alsa-state/om-gta01/stereoout.state diff --git a/packages/alsa/alsa-state/fic-gta01/voip-handset.state b/packages/alsa/alsa-state/om-gta01/voip-handset.state index 420a4eb79d..420a4eb79d 100644 --- a/packages/alsa/alsa-state/fic-gta01/voip-handset.state +++ b/packages/alsa/alsa-state/om-gta01/voip-handset.state diff --git a/packages/alsa/alsa-state/fic-gta01/voip-headset.state b/packages/alsa/alsa-state/om-gta01/voip-headset.state index df22f5b7d5..df22f5b7d5 100644 --- a/packages/alsa/alsa-state/fic-gta01/voip-headset.state +++ b/packages/alsa/alsa-state/om-gta01/voip-headset.state diff --git a/packages/alsa/alsa-state/fic-gta02/.mtn2git_empty b/packages/alsa/alsa-state/om-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/alsa/alsa-state/fic-gta02/.mtn2git_empty +++ b/packages/alsa/alsa-state/om-gta02/.mtn2git_empty diff --git a/packages/alsa/alsa-state/fic-gta02/asound.state b/packages/alsa/alsa-state/om-gta02/asound.state index 3b46fc7223..3b46fc7223 100644 --- a/packages/alsa/alsa-state/fic-gta02/asound.state +++ b/packages/alsa/alsa-state/om-gta02/asound.state diff --git a/packages/alsa/alsa-state/fic-gta02/gsmhandset.state b/packages/alsa/alsa-state/om-gta02/gsmhandset.state index 722ce88425..722ce88425 100644 --- a/packages/alsa/alsa-state/fic-gta02/gsmhandset.state +++ b/packages/alsa/alsa-state/om-gta02/gsmhandset.state diff --git a/packages/alsa/alsa-state/fic-gta02/stereoout.state b/packages/alsa/alsa-state/om-gta02/stereoout.state index 3b46fc7223..3b46fc7223 100644 --- a/packages/alsa/alsa-state/fic-gta02/stereoout.state +++ b/packages/alsa/alsa-state/om-gta02/stereoout.state diff --git a/packages/base-files/base-files/fic-gta01/.mtn2git_empty b/packages/base-files/base-files/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/base-files/base-files/fic-gta01/.mtn2git_empty +++ b/packages/base-files/base-files/om-gta01/.mtn2git_empty diff --git a/packages/base-files/base-files/fic-gta01/fstab b/packages/base-files/base-files/om-gta01/fstab index e5acb6a1eb..e5acb6a1eb 100644 --- a/packages/base-files/base-files/fic-gta01/fstab +++ b/packages/base-files/base-files/om-gta01/fstab diff --git a/packages/base-files/base-files/fic-gta02/.mtn2git_empty b/packages/base-files/base-files/om-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/base-files/base-files/fic-gta02/.mtn2git_empty +++ b/packages/base-files/base-files/om-gta02/.mtn2git_empty diff --git a/packages/base-files/base-files/fic-gta02/fstab b/packages/base-files/base-files/om-gta02/fstab index e5acb6a1eb..e5acb6a1eb 100644 --- a/packages/base-files/base-files/fic-gta02/fstab +++ b/packages/base-files/base-files/om-gta02/fstab diff --git a/packages/bluez/bluez-utils3.inc b/packages/bluez/bluez-utils3.inc index 3932d722ee..e9edfe1b95 100644 --- a/packages/bluez/bluez-utils3.inc +++ b/packages/bluez/bluez-utils3.inc @@ -40,7 +40,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.11.bb b/packages/bluez/bluez-utils_3.11.bb index 6cadfc1a53..25fda9dcff 100644 --- a/packages/bluez/bluez-utils_3.11.bb +++ b/packages/bluez/bluez-utils_3.11.bb @@ -29,7 +29,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.12.bb b/packages/bluez/bluez-utils_3.12.bb index 754097acce..98a79af901 100644 --- a/packages/bluez/bluez-utils_3.12.bb +++ b/packages/bluez/bluez-utils_3.12.bb @@ -27,7 +27,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.13.bb b/packages/bluez/bluez-utils_3.13.bb index 5ea1429641..0a2a062338 100644 --- a/packages/bluez/bluez-utils_3.13.bb +++ b/packages/bluez/bluez-utils_3.13.bb @@ -27,7 +27,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.14.bb b/packages/bluez/bluez-utils_3.14.bb index 237a1aff0d..5d0c3cf15b 100644 --- a/packages/bluez/bluez-utils_3.14.bb +++ b/packages/bluez/bluez-utils_3.14.bb @@ -28,7 +28,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.15.bb b/packages/bluez/bluez-utils_3.15.bb index b8dbfbca7c..a7d1dce192 100644 --- a/packages/bluez/bluez-utils_3.15.bb +++ b/packages/bluez/bluez-utils_3.15.bb @@ -29,7 +29,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.16.bb b/packages/bluez/bluez-utils_3.16.bb index b8dbfbca7c..a7d1dce192 100644 --- a/packages/bluez/bluez-utils_3.16.bb +++ b/packages/bluez/bluez-utils_3.16.bb @@ -29,7 +29,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/bluez/bluez-utils_3.17.bb b/packages/bluez/bluez-utils_3.17.bb index b8dbfbca7c..a7d1dce192 100644 --- a/packages/bluez/bluez-utils_3.17.bb +++ b/packages/bluez/bluez-utils_3.17.bb @@ -29,7 +29,7 @@ EXTRA_OECONF = " \ # The config options are explained below: # --enable-obex enable OBEX support -# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and om-gtao1 # --enable-cups install CUPS backend support # --enable-bccmd install BCCMD interface utility # --enable-avctrl install Audio/Video control utility diff --git a/packages/fbreader/fbreader_0.8.2a.bb b/packages/fbreader/fbreader_0.8.2a.bb index fa982040f9..52e8439a88 100644 --- a/packages/fbreader/fbreader_0.8.2a.bb +++ b/packages/fbreader/fbreader_0.8.2a.bb @@ -30,7 +30,7 @@ READER_GUI = "gpe" READER_STATUS = "release" # Set device specific overrides -READER_RESOLUTION_fic-gta01 = "480x640" +READER_RESOLUTION_om-gta01 = "480x640" READER_RESOLUTION_spitz = "640x480" READER_RESOLUTION_akita = "640x480" READER_RESOLUTION_htcuniversal = "640x480" diff --git a/packages/fbset/fbset-modes/fic-gta01/.mtn2git_empty b/packages/fbset/fbset-modes/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/fbset/fbset-modes/fic-gta01/.mtn2git_empty +++ b/packages/fbset/fbset-modes/om-gta01/.mtn2git_empty diff --git a/packages/fbset/fbset-modes/fic-gta01/fb.modes b/packages/fbset/fbset-modes/om-gta01/fb.modes index 446d23dd8e..446d23dd8e 100644 --- a/packages/fbset/fbset-modes/fic-gta01/fb.modes +++ b/packages/fbset/fbset-modes/om-gta01/fb.modes diff --git a/packages/gpephone/gpe-applauncher/fic-gta01/.mtn2git_empty b/packages/gpephone/gpe-applauncher/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gpephone/gpe-applauncher/fic-gta01/.mtn2git_empty +++ b/packages/gpephone/gpe-applauncher/om-gta01/.mtn2git_empty diff --git a/packages/gpephone/gpe-applauncher/fic-gta01/hotkeys.conf b/packages/gpephone/gpe-applauncher/om-gta01/hotkeys.conf index 34bd6a22b7..34bd6a22b7 100644 --- a/packages/gpephone/gpe-applauncher/fic-gta01/hotkeys.conf +++ b/packages/gpephone/gpe-applauncher/om-gta01/hotkeys.conf diff --git a/packages/gpephone/gpe-applauncher/fic-gta01/softkeys.conf b/packages/gpephone/gpe-applauncher/om-gta01/softkeys.conf index f9fde86d2d..f9fde86d2d 100644 --- a/packages/gpephone/gpe-applauncher/fic-gta01/softkeys.conf +++ b/packages/gpephone/gpe-applauncher/om-gta01/softkeys.conf diff --git a/packages/gpephone/gpe-applauncher_0.10.bb b/packages/gpephone/gpe-applauncher_0.10.bb index 94f26c5589..7167b42071 100644 --- a/packages/gpephone/gpe-applauncher_0.10.bb +++ b/packages/gpephone/gpe-applauncher_0.10.bb @@ -7,7 +7,7 @@ PR = "r1" SRC_URI_OVERRIDES_PACKAGE_ARCH = "0" PACKAGES += "gpe-applauncher-config" -PACKAGE_ARCH_gpe-applauncher-config_fic-gta01 = "${MACHINE_ARCH}" +PACKAGE_ARCH_gpe-applauncher-config_om-gta01 = "${MACHINE_ARCH}" DEPENDS = "gtk+ libgpewidget libgpephone libgpelaunch dbus-glib libsettings libxsettings-client" RDEPENDS_${PN} += "gpe-applauncher-config" diff --git a/packages/gpephone/gpe-applauncher_0.11.bb b/packages/gpephone/gpe-applauncher_0.11.bb index 204f7828f9..4934cdeaf2 100644 --- a/packages/gpephone/gpe-applauncher_0.11.bb +++ b/packages/gpephone/gpe-applauncher_0.11.bb @@ -7,7 +7,7 @@ PR = "r2" SRC_URI_OVERRIDES_PACKAGE_ARCH = "0" PACKAGES += "gpe-applauncher-config" -PACKAGE_ARCH_gpe-applauncher-config_fic-gta01 = "${MACHINE_ARCH}" +PACKAGE_ARCH_gpe-applauncher-config_om-gta01 = "${MACHINE_ARCH}" DEPENDS = "gtk+ libgpewidget libgpephone libgpelaunch dbus-glib libsettings libxsettings-client" RDEPENDS_${PN} += "gpe-applauncher-config" diff --git a/packages/gpephone/gpe-applauncher_svn.bb b/packages/gpephone/gpe-applauncher_svn.bb index 9360c6f6d3..3087088ab8 100644 --- a/packages/gpephone/gpe-applauncher_svn.bb +++ b/packages/gpephone/gpe-applauncher_svn.bb @@ -15,7 +15,7 @@ S = "${WORKDIR}/${PN}" PACKAGES += "gpe-applauncher-config" -PACKAGE_ARCH_gpe-applauncher-config_fic-gta01 = "${MACHINE_ARCH}" +PACKAGE_ARCH_gpe-applauncher-config_om-gta01 = "${MACHINE_ARCH}" DEPENDS = "gtk+ libgpewidget libgpephone libgpelaunch dbus-glib libsettings libxsettings-client" RDEPENDS_${PN} += "gpe-applauncher-config" diff --git a/packages/gpephone/phoneserver_1.0.bb b/packages/gpephone/phoneserver_1.0.bb index 1415951473..ebd8a3c7cb 100644 --- a/packages/gpephone/phoneserver_1.0.bb +++ b/packages/gpephone/phoneserver_1.0.bb @@ -12,5 +12,5 @@ GPE_TARBALL_SUFFIX= "bz2" inherit gpephone autotools SRC_URI_append_x86 = " file://changeport.patch;patch=1;pnum=0" -SRC_URI_append_fic-gta01 = " file://phoneserver-gta01.patch;patch=1" +SRC_URI_append_om-gta01 = " file://phoneserver-gta01.patch;patch=1" diff --git a/packages/gpsd/files/fic-gta01/.mtn2git_empty b/packages/gpsd/files/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gpsd/files/fic-gta01/.mtn2git_empty +++ b/packages/gpsd/files/om-gta01/.mtn2git_empty diff --git a/packages/gpsd/files/fic-gta01/gps-hardware b/packages/gpsd/files/om-gta01/gps-hardware index 6490f52c27..6490f52c27 100644 --- a/packages/gpsd/files/fic-gta01/gps-hardware +++ b/packages/gpsd/files/om-gta01/gps-hardware diff --git a/packages/gpsd/files/fic-gta01/gpsd-default b/packages/gpsd/files/om-gta01/gpsd-default index abd35927e5..abd35927e5 100644 --- a/packages/gpsd/files/fic-gta01/gpsd-default +++ b/packages/gpsd/files/om-gta01/gpsd-default diff --git a/packages/gpsd/files/fic-gta01/restart_gllin.sh b/packages/gpsd/files/om-gta01/restart_gllin.sh index 50810c3583..50810c3583 100644 --- a/packages/gpsd/files/fic-gta01/restart_gllin.sh +++ b/packages/gpsd/files/om-gta01/restart_gllin.sh diff --git a/packages/gpsd/gpsd.inc b/packages/gpsd/gpsd.inc index f7952e0297..06be2fe2eb 100644 --- a/packages/gpsd/gpsd.inc +++ b/packages/gpsd/gpsd.inc @@ -15,7 +15,7 @@ SRC_URI = "http://download.berlios.de/gpsd/gpsd-${PV}.tar.gz \ file://gps-hardware \ file://gpsd" -SRC_URI_append_fic-gta01 = " \ +SRC_URI_append_om-gta01 = " \ file://restart_gllin.sh \ " @@ -52,7 +52,7 @@ do_install_append() { install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default } -do_install_append_fic-gta01() { +do_install_append_om-gta01() { install -d ${D}/${sysconfdir}/apm/resume.d install -m 755 ${WORKDIR}/restart_gllin.sh ${D}/${sysconfdir}/apm/resume.d } diff --git a/packages/gtkhtml/gtkhtml-3.8_3.18.0.bb b/packages/gtkhtml/gtkhtml-3.8_3.18.0.bb new file mode 100644 index 0000000000..e678bc3134 --- /dev/null +++ b/packages/gtkhtml/gtkhtml-3.8_3.18.0.bb @@ -0,0 +1,12 @@ +require gtkhtml.inc + +DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" + +SRC_URI = "${GNOME_MIRROR}/gtkhtml/3.18/gtkhtml-${PV}.tar.bz2" +FILES_${PN} += "${datadir}/gtkhtml-3.8" + +do_stage() { + mv src/libgtkhtml.pc src/libgtkhtml-3.8.pc || true + gnome_stage_includes + oe_libinstall -C src -so libgtkhtml-3.8 ${STAGING_LIBDIR} +} diff --git a/packages/initscripts/initscripts-1.0/fic-gta01/.mtn2git_empty b/packages/initscripts/initscripts-1.0/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/initscripts/initscripts-1.0/fic-gta01/.mtn2git_empty +++ b/packages/initscripts/initscripts-1.0/om-gta01/.mtn2git_empty diff --git a/packages/initscripts/initscripts-1.0/fic-gta01/inittab b/packages/initscripts/initscripts-1.0/om-gta01/inittab index 8d313b2a58..8d313b2a58 100644 --- a/packages/initscripts/initscripts-1.0/fic-gta01/inittab +++ b/packages/initscripts/initscripts-1.0/om-gta01/inittab diff --git a/packages/linux/linux-2.6.24/simpad/linux-2.6.24-SIMpad-rtc-sa1100.patch b/packages/linux/linux-2.6.24/simpad/linux-2.6.24-SIMpad-rtc-sa1100.patch index 6e09bfd103..407fd89a26 100644 --- a/packages/linux/linux-2.6.24/simpad/linux-2.6.24-SIMpad-rtc-sa1100.patch +++ b/packages/linux/linux-2.6.24/simpad/linux-2.6.24-SIMpad-rtc-sa1100.patch @@ -1,28 +1,68 @@ -diff -Nur linux-2.6.24.vanilla/drivers/rtc/rtc-sa1100.c linux-2.6.24/drivers/rtc/rtc-sa1100.c +diff -Nur linux-2.6.24.vanilla/drivers/rtc/rtc-sa1100.c linux-2.6.24_rtc/drivers/rtc/rtc-sa1100.c --- linux-2.6.24.vanilla/drivers/rtc/rtc-sa1100.c 2008-01-24 23:58:37.000000000 +0100 -+++ linux-2.6.24/drivers/rtc/rtc-sa1100.c 2008-03-17 20:52:41.000000000 +0100 -@@ -15,6 +15,10 @@ - * Converted to the RTC subsystem and Driver Model - * by Richard Purdie <rpurdie@rpsys.net> - * -+ * 2008/03/17 mrdata: -+ * disable IRQ RTC1Hz and RTCAlrm before request_irq -+ * in sa1100_rtc_open() -+ * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version -@@ -154,7 +158,12 @@ - static int sa1100_rtc_open(struct device *dev) ++++ linux-2.6.24_rtc/drivers/rtc/rtc-sa1100.c 2008-03-24 13:49:40.000000000 +0100 +@@ -79,7 +79,10 @@ + + rtsr = RTSR; + /* clear interrupt sources */ +- RTSR = 0; ++ RTSR &= ~RTSR_HZE; //RTSR = 0; is not possible and does not work ++ RTSR &= ~RTSR_HZ; ++ RTSR &= ~RTSR_ALE; ++ RTSR &= ~RTSR_AL; + RTSR = (RTSR_AL | RTSR_HZ) & (rtsr >> 2); + + /* clear alarm interrupt if it has occurred */ +@@ -155,6 +158,20 @@ { int ret; -- -+ + ++ /* ++ * On some devices RTSR is set to some value but it must be set to 0. ++ * We have to set RTSR to 0 and OIER/OSSR to default. This should not be ++ * necessary here but it is. ++ */ + spin_lock_irq(&sa1100_rtc_lock); + RTSR &= ~RTSR_HZE; ++ RTSR &= ~RTSR_HZ; + RTSR &= ~RTSR_ALE; ++ RTSR &= ~RTSR_AL; ++ OIER &= ~OIER_E1; ++ OSSR = OSSR_M1; + spin_unlock_irq(&sa1100_rtc_lock); -+ ++ ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, IRQF_DISABLED, "rtc 1Hz", dev); if (ret) { +@@ -186,7 +203,10 @@ + static void sa1100_rtc_release(struct device *dev) + { + spin_lock_irq(&sa1100_rtc_lock); +- RTSR = 0; ++ RTSR &= ~RTSR_HZE; //RTSR = 0; is not possible and does not work ++ RTSR &= ~RTSR_HZ; ++ RTSR &= ~RTSR_ALE; ++ RTSR &= ~RTSR_AL; + OIER &= ~OIER_E1; + OSSR = OSSR_M1; + spin_unlock_irq(&sa1100_rtc_lock); +@@ -339,6 +359,19 @@ + + platform_set_drvdata(pdev, rtc); + ++ /* ++ * On some devices RTSR is set to some value but it must be set to 0. ++ * We have to set RTSR to 0 and OIER/OSSR to default. ++ */ ++ spin_lock_irq(&sa1100_rtc_lock); ++ RTSR &= ~RTSR_HZE; ++ RTSR &= ~RTSR_HZ; ++ RTSR &= ~RTSR_ALE; ++ RTSR &= ~RTSR_AL; ++ OIER &= ~OIER_E1; ++ OSSR = OSSR_M1; ++ spin_unlock_irq(&sa1100_rtc_lock); ++ + return 0; + } + diff --git a/packages/linux/linux-openmoko-devel_git.bb b/packages/linux/linux-openmoko-devel_git.bb index b727478c76..6b563a012a 100644 --- a/packages/linux/linux-openmoko-devel_git.bb +++ b/packages/linux/linux-openmoko-devel_git.bb @@ -24,7 +24,7 @@ FILES_kernel-image = "" ALLOW_EMPTY = "1" COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' +COMPATIBLE_MACHINE = 'om-gta01|om-gta02' CMDLINE = "unused -- bootloader passes ATAG list" diff --git a/packages/linux/linux-openmoko.inc b/packages/linux/linux-openmoko.inc index 4f1981c8b3..69d7845f04 100644 --- a/packages/linux/linux-openmoko.inc +++ b/packages/linux/linux-openmoko.inc @@ -1,9 +1,7 @@ # extra stuff we need for openmoko that is not in linux.inc do_deploy_append() { - mv ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE}.tgz ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE_CLASS}.tgz - mv ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_CLASS}.bin rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin - ln -sf ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_CLASS}.bin ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE_CLASS}-latest.bin + ln -sf ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_ARCH}.bin ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE_ARCH}-latest.bin } RDEPENDS_kernel-image += "mtd-utils" diff --git a/packages/linux/linux-openmoko_2.6.22.5.bb b/packages/linux/linux-openmoko_2.6.22.5.bb index fe46c59a58..126221ad6d 100644 --- a/packages/linux/linux-openmoko_2.6.22.5.bb +++ b/packages/linux/linux-openmoko_2.6.22.5.bb @@ -39,7 +39,7 @@ S = "${WORKDIR}/linux-${VANILLA_VERSION}" ALLOW_EMPTY = "1" COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' +COMPATIBLE_MACHINE = 'om-gta01|om-gta02' CMDLINE = "unused -- bootloader passes ATAG list" diff --git a/packages/linux/linux-openmoko_2.6.24.bb b/packages/linux/linux-openmoko_2.6.24.bb index 0a7b34ba30..f87e6b68d8 100644 --- a/packages/linux/linux-openmoko_2.6.24.bb +++ b/packages/linux/linux-openmoko_2.6.24.bb @@ -11,10 +11,10 @@ KERNEL_VERSION = "${KERNEL_RELEASE}" # re-enabled this when feature is fully implemented in OE #SRCREV_FORMAT = "patches-rconfig" SRCREV_FORMAT = "patches" -CONFIG_REV = "4165" - +CONFIG_REV_om-gta01 = "4251" +CONFIG_REV_om-gta02 = "4251" PV = "${VANILLA_VERSION}+svnr${SRCREV}-r${CONFIG_REV}" -PR = "r4" +PR = "r5" KERNEL_IMAGETYPE = "uImage" UBOOT_ENTRYPOINT = "30008000" @@ -35,7 +35,7 @@ S = "${WORKDIR}/linux-${VANILLA_VERSION}" ALLOW_EMPTY = "1" COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' +COMPATIBLE_MACHINE = 'om-gta01|om-gta02' CMDLINE = "unused -- bootloader passes ATAG list" @@ -55,11 +55,14 @@ module_autoload_snd-mixer-oss = "snd-mixer-oss" # sd/mmc module_autoload_s3cmci = "s3cmci" +CONFIG_NAME_om-gta01 = "gta01" +CONFIG_NAME_om-gta02 = "gta02" + do_prepatch() { mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av mv patches patches.openmoko mv .pc .pc.old - mv ${WORKDIR}/config/defconfig-${KERNEL_RELEASE} ${WORKDIR}/defconfig + mv ${WORKDIR}/config/defconfig-${CONFIG_NAME} ${WORKDIR}/defconfig } addtask prepatch after do_unpack before do_patch diff --git a/packages/linux/linux_2.6.24.bb b/packages/linux/linux_2.6.24.bb index a3ae2f9248..c0751634a5 100644 --- a/packages/linux/linux_2.6.24.bb +++ b/packages/linux/linux_2.6.24.bb @@ -12,7 +12,7 @@ DEFAULT_PREFERENCE_ts72xx = "1" DEPENDS_append_mpc8313e-rdb = " dtc-native" -PR = "r10" +PR = "r11" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 \ http://kamikaze.waninkoko.info/patches/2.6.24/kamikaze1/broken-out/squashfs-lzma-2.6.24.patch;patch=1 \ diff --git a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb index 4384b6db7d..03123d9b8b 100644 --- a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb +++ b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb @@ -16,8 +16,8 @@ SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-keyboard;pr file://6-Add-layout-switch-key-to-all-layouts.patch;patch=1 \ file://80matchboxkeyboard" -SRC_URI_append_fic-gta01 = " file://fic-gta01-font-size.patch;patch=1" -SRC_URI_append_fic-gta02 = " file://fic-gta01-font-size.patch;patch=1" +SRC_URI_append_om-gta01 = " file://fic-gta01-font-size.patch;patch=1" +SRC_URI_append_om-gta02 = " file://fic-gta01-font-size.patch;patch=1" S = "${WORKDIR}/matchbox-keyboard" diff --git a/packages/netbase/netbase/fic-gta01/.mtn2git_empty b/packages/netbase/netbase/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/netbase/netbase/fic-gta01/.mtn2git_empty +++ b/packages/netbase/netbase/om-gta01/.mtn2git_empty diff --git a/packages/netbase/netbase/fic-gta01/interfaces b/packages/netbase/netbase/om-gta01/interfaces index 39f45af734..39f45af734 100644 --- a/packages/netbase/netbase/fic-gta01/interfaces +++ b/packages/netbase/netbase/om-gta01/interfaces diff --git a/packages/netbase/netbase/fic-gta02/.mtn2git_empty b/packages/netbase/netbase/om-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/netbase/netbase/fic-gta02/.mtn2git_empty +++ b/packages/netbase/netbase/om-gta02/.mtn2git_empty diff --git a/packages/netbase/netbase/fic-gta02/interfaces b/packages/netbase/netbase/om-gta02/interfaces index 39f45af734..39f45af734 100644 --- a/packages/netbase/netbase/fic-gta02/interfaces +++ b/packages/netbase/netbase/om-gta02/interfaces diff --git a/packages/openmoko2/neod_svn.bb b/packages/openmoko2/neod_svn.bb index e627e60bd2..9dbe35c790 100644 --- a/packages/openmoko2/neod_svn.bb +++ b/packages/openmoko2/neod_svn.bb @@ -10,8 +10,8 @@ inherit openmoko2 gconf SRC_URI += "file://htc.patch;patch=1;maxrev=3348 \ file://ipaq.patch;patch=1;maxrev=3348" -EXTRA_OECONF_fic-gta01 = "--with-platform=neo1973" -EXTRA_OECONF_fic-gta02 = "--with-platform=neo1973" +EXTRA_OECONF_om-gta01 = "--with-platform=neo1973" +EXTRA_OECONF_om-gta02 = "--with-platform=neo1973" EXTRA_OECONF_a780 = "--with-platform=ezx" EXTRA_OECONF_a1200 = "--with-platform=ezx" EXTRA_OECONF_e680 = "--with-platform=ezx" diff --git a/packages/openmoko2/openmoko-dialer2/fic-gta01/.mtn2git_empty b/packages/openmoko2/openmoko-dialer2/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/openmoko2/openmoko-dialer2/fic-gta01/.mtn2git_empty +++ b/packages/openmoko2/openmoko-dialer2/om-gta01/.mtn2git_empty diff --git a/packages/openmoko2/openmoko-dialer2/fic-gta01/kernel-2.6.24.patch b/packages/openmoko2/openmoko-dialer2/om-gta01/kernel-2.6.24.patch index c6f34f4131..c6f34f4131 100644 --- a/packages/openmoko2/openmoko-dialer2/fic-gta01/kernel-2.6.24.patch +++ b/packages/openmoko2/openmoko-dialer2/om-gta01/kernel-2.6.24.patch diff --git a/packages/openmoko2/openmoko-dialer2/fic-gta02/.mtn2git_empty b/packages/openmoko2/openmoko-dialer2/om-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/openmoko2/openmoko-dialer2/fic-gta02/.mtn2git_empty +++ b/packages/openmoko2/openmoko-dialer2/om-gta02/.mtn2git_empty diff --git a/packages/openmoko2/openmoko-dialer2/fic-gta02/kernel-2.6.24.patch b/packages/openmoko2/openmoko-dialer2/om-gta02/kernel-2.6.24.patch index 72c516f5d6..72c516f5d6 100644 --- a/packages/openmoko2/openmoko-dialer2/fic-gta02/kernel-2.6.24.patch +++ b/packages/openmoko2/openmoko-dialer2/om-gta02/kernel-2.6.24.patch diff --git a/packages/openmoko2/openmoko-dialer2_svn.bb b/packages/openmoko2/openmoko-dialer2_svn.bb index 4f15ac07dc..7ef548bc15 100644 --- a/packages/openmoko2/openmoko-dialer2_svn.bb +++ b/packages/openmoko2/openmoko-dialer2_svn.bb @@ -7,8 +7,8 @@ PE = "1" inherit openmoko2 -SRC_URI_append_fic-gta01 = " file://kernel-2.6.24.patch;patch=1" -SRC_URI_append_fic-gta02 = " file://kernel-2.6.24.patch;patch=1" +SRC_URI_append_om-gta01 = " file://kernel-2.6.24.patch;patch=1" +SRC_URI_append_om-gta02 = " file://kernel-2.6.24.patch;patch=1" EXTRA_OECONF = "--with-dbusbindir=${STAGING_BINDIR_NATIVE}" diff --git a/packages/opkg/opkg.inc b/packages/opkg/opkg.inc index 6459ca78d8..40b9fffa3c 100644 --- a/packages/opkg/opkg.inc +++ b/packages/opkg/opkg.inc @@ -6,7 +6,7 @@ DEPENDS = "curl gpgme" PV = "0.0+svnr${SRCREV}" SRC_URI = "svn://svn.openmoko.org/trunk/src/target/;module=opkg;proto=http \ - file://fix_endianness.patch;patch=1" + file://fix_endianness.patch;patch=1;maxrev=4246" S = "${WORKDIR}/opkg" inherit autotools pkgconfig diff --git a/packages/pointercal/files/fic-gta01/.mtn2git_empty b/packages/pointercal/files/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pointercal/files/fic-gta01/.mtn2git_empty +++ b/packages/pointercal/files/om-gta01/.mtn2git_empty diff --git a/packages/pointercal/files/fic-gta01/pointercal b/packages/pointercal/files/om-gta01/pointercal index 198fd2a776..198fd2a776 100644 --- a/packages/pointercal/files/fic-gta01/pointercal +++ b/packages/pointercal/files/om-gta01/pointercal diff --git a/packages/pointercal/files/fic-gta02/.mtn2git_empty b/packages/pointercal/files/om-gta02/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pointercal/files/fic-gta02/.mtn2git_empty +++ b/packages/pointercal/files/om-gta02/.mtn2git_empty diff --git a/packages/pointercal/files/fic-gta02/pointercal b/packages/pointercal/files/om-gta02/pointercal Binary files differindex 841ec7fab2..841ec7fab2 100644 --- a/packages/pointercal/files/fic-gta02/pointercal +++ b/packages/pointercal/files/om-gta02/pointercal diff --git a/packages/scummvm/files/fic-gta01/.mtn2git_empty b/packages/popt/popt-1.13/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/scummvm/files/fic-gta01/.mtn2git_empty +++ b/packages/popt/popt-1.13/.mtn2git_empty diff --git a/packages/popt/popt-1.13/iconv.patch b/packages/popt/popt-1.13/iconv.patch new file mode 100644 index 0000000000..83c70b0560 --- /dev/null +++ b/packages/popt/popt-1.13/iconv.patch @@ -0,0 +1,13 @@ +Index: popt-1.13/Makefile.am +=================================================================== +--- popt-1.13.orig/Makefile.am 2008-03-25 21:51:12.000000000 +0100 ++++ popt-1.13/Makefile.am 2008-03-25 21:51:42.000000000 +0100 +@@ -39,7 +39,7 @@ + usrlib_LTLIBRARIES = libpopt.la + + libpopt_la_SOURCES = popt.c findme.c poptparse.c poptconfig.c popthelp.c poptint.c +-libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ ++libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@ + + if HAVE_LD_VERSION_SCRIPT + libpopt_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpopt.vers diff --git a/packages/popt/popt_1.13.bb b/packages/popt/popt_1.13.bb index 9b071ba731..7a736bde87 100644 --- a/packages/popt/popt_1.13.bb +++ b/packages/popt/popt_1.13.bb @@ -2,11 +2,13 @@ require popt.inc DEPENDS = "gettext virtual/libintl" -PR = "r0" +PR = "r1" inherit autotools -SRC_URI = "http://freshmeat.net/redir/popt/72854/url_bz2/popt-${PV}.tar.gz" +SRC_URI = "http://freshmeat.net/redir/popt/72854/url_bz2/popt-${PV}.tar.gz \ + file://iconv.patch;patch=1 \ + " do_stage() { oe_libinstall -a -so libpopt ${STAGING_LIBDIR} diff --git a/packages/tslib/tslib/fic-gta01/.mtn2git_empty b/packages/pump/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/tslib/tslib/fic-gta01/.mtn2git_empty +++ b/packages/pump/.mtn2git_empty diff --git a/packages/u-boot/u-boot-1.2.0/fic-gta01/.mtn2git_empty b/packages/pump/pump/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/u-boot/u-boot-1.2.0/fic-gta01/.mtn2git_empty +++ b/packages/pump/pump/.mtn2git_empty diff --git a/packages/pump/pump/debian.patch b/packages/pump/pump/debian.patch new file mode 100644 index 0000000000..63001b88df --- /dev/null +++ b/packages/pump/pump/debian.patch @@ -0,0 +1,2141 @@ +--- pump-0.8.24.orig/dhcp.c ++++ pump-0.8.24/dhcp.c +@@ -31,9 +31,11 @@ + #include <netinet/in.h> + #include <netinet/ip.h> + #include <netinet/udp.h> ++#include <netpacket/packet.h> + #include <popt.h> + #include <resolv.h> + #include <signal.h> ++#include <stdint.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -82,9 +84,6 @@ + #define DHCP_OPTION_CLASS_IDENTIFIER 60 + #define DHCP_OPTION_CLIENT_IDENTIFIER 61 + +-#define BOOTP_CLIENT_PORT 68 +-#define BOOTP_SERVER_PORT 67 +- + #define BOOTP_OPCODE_REQUEST 1 + #define BOOTP_OPCODE_REPLY 2 + +@@ -126,6 +125,12 @@ + bp_int16 len; + }; + ++struct ippkt { ++ struct ip ip; ++ struct udphdr udp; ++ char payload[sizeof(struct bootpRequest)]; ++} __attribute__ ((packed)); ++ + static void parseReply(struct bootpRequest * breq, struct pumpNetIntf * intf); + static char * prepareRequest(struct bootpRequest * breq, + int sock, char * device, time_t startTime); +@@ -134,36 +139,24 @@ + static char * handleTransaction(int s, struct pumpOverrideInfo * override, + struct bootpRequest * breq, + struct bootpRequest * bresp, +- struct sockaddr_in * serverAddr, ++ struct sockaddr * serverAddr, ++ socklen_t serverAddrLen, + struct sockaddr_in * respondant, +- int useBootpPacket, ++ int useBootpPacket, int raw, + time_t startTime, int dhcpResponseType); + static int dhcpMessageType(struct bootpRequest * response); +-static int oldKernel(void); + static char * getInterfaceInfo(struct pumpNetIntf * intf, int s); + static char * perrorstr(char * msg); + static void addClientIdentifier(int flags, struct bootpRequest * req); + static void buildRequest(struct bootpRequest * req, int flags, int type, + char * reqHostname, char *class, int lease); + static void updateSecCount(struct bootpRequest * breq, time_t startTime); ++static void makeraw(struct ippkt *buf, const void *payload, size_t len); ++static uint32_t checksum(const void *, size_t, uint32_t); ++static uint32_t wrapsum(uint32_t); + + static const char vendCookie[] = { 99, 130, 83, 99, 255 }; + +-static int oldKernel(void) { +- struct utsname ubuf; +- int major1, major2; +- +- uname(&ubuf); +- if (!strcasecmp(ubuf.sysname, "linux")) { +- if (sscanf(ubuf.release, "%d.%d", &major1, &major2) != 2 || +- (major1 < 2) || (major1 == 2 && major2 == 0)) { +- return 1; +- } +- } +- +- return 0; +-} +- + static char * getInterfaceInfo(struct pumpNetIntf * intf, int s) { + struct ifreq req; + struct sockaddr_in * addrp; +@@ -177,6 +170,10 @@ + intf->broadcast = addrp->sin_addr; + intf->set = PUMP_INTFINFO_HAS_BROADCAST; + ++ if (ioctl(s, SIOCGIFINDEX, &req)) ++ return perrorstr("SIOCGIFINDEX"); ++ intf->ifindex = req.ifr_ifindex; ++ + return NULL; + } + +@@ -205,15 +202,18 @@ + } + + +-char * pumpDisableInterface(char * device) { ++char * pumpDisableInterface(struct pumpNetIntf * intf) { + struct ifreq req; + int s; + ++ if (intf->flags & PUMP_FLAG_NOSETUP) ++ return NULL; ++ + s = socket(AF_INET, SOCK_DGRAM, 0); + + memset(&req,0,sizeof(req)); + +- strcpy(req.ifr_name, device); ++ strcpy(req.ifr_name, intf->device); + if (ioctl(s, SIOCGIFFLAGS, &req)) { + close(s); + return perrorstr("SIOCGIFFLAGS"); +@@ -235,6 +235,12 @@ + struct ifreq req; + struct rtentry route; + int s; ++ char * rc; ++ ++ if (intf->flags & PUMP_FLAG_NOSETUP) ++ return NULL; ++ ++ if ((rc = pumpDisableInterface(intf))) return rc; + + s = socket(AF_INET, SOCK_DGRAM, 0); + +@@ -246,34 +252,46 @@ + strcpy(req.ifr_name, intf->device); + + addrp->sin_addr = intf->ip; +- if (ioctl(s, SIOCSIFADDR, &req)) +- return perrorstr("SIOCSIFADDR"); ++ if (ioctl(s, SIOCSIFADDR, &req)) { ++ rc = perrorstr("SIOCSIFADDR"); ++ goto out; ++ } + + addrp->sin_addr = intf->netmask; +- if (ioctl(s, SIOCSIFNETMASK, &req)) +- return perrorstr("SIOCSIFNETMASK"); ++ if (ioctl(s, SIOCSIFNETMASK, &req)) { ++ rc = perrorstr("SIOCSIFNETMASK"); ++ goto out; ++ } + + addrp->sin_addr = intf->broadcast; +- if (ioctl(s, SIOCSIFBRDADDR, &req)) +- return perrorstr("SIOCSIFBRDADDR"); ++ if (ioctl(s, SIOCSIFBRDADDR, &req)) { ++ rc = perrorstr("SIOCSIFBRDADDR"); ++ goto out; ++ } + + if (intf->set & PUMP_INTFINFO_HAS_MTU) { +- req.ifr_mtu = intf->mtu; +- if (ioctl(s, SIOCSIFMTU, &req)) +- return perrorstr("SIOCSIFMTU"); ++ req.ifr_mtu = intf->mtu; ++ if (ioctl(s, SIOCSIFMTU, &req)) { ++ rc = perrorstr("SIOCSIFMTU"); ++ goto out; ++ } + } + + /* Bring up the device, and specifically allow broadcasts through it. + Don't mess with flags we don't understand though. */ +- if (ioctl(s, SIOCGIFFLAGS, &req)) +- return perrorstr("SIOCGIFFLAGS"); ++ if (ioctl(s, SIOCGIFFLAGS, &req)) { ++ rc = perrorstr("SIOCGIFFLAGS"); ++ goto out; ++ } + + req.ifr_flags |= IFF_UP | IFF_RUNNING | IFF_BROADCAST; + +- if (ioctl(s, SIOCSIFFLAGS, &req)) +- return perrorstr("SIOCSIFFLAGS"); ++ if (ioctl(s, SIOCSIFFLAGS, &req)) { ++ rc = perrorstr("SIOCSIFFLAGS"); ++ goto out; ++ } + +- if (!strcmp(intf->device, "lo") || oldKernel()) { ++ if (!strcmp(intf->device, "lo")) { + /* add a route for this network */ + route.rt_dev = intf->device; + route.rt_flags = RTF_UP; +@@ -288,11 +306,14 @@ + + if (ioctl(s, SIOCADDRT, &route)) { + /* the route cannot already exist, as we've taken the device down */ +- return perrorstr("SIOCADDRT 1"); ++ rc = perrorstr("SIOCADDRT 1"); ++ goto out; + } + } + +- return NULL; ++out: ++ close(s); ++ return rc; + } + + int pumpSetupDefaultGateway(struct in_addr * gw) { +@@ -317,23 +338,30 @@ + route.rt_dev = NULL; + + if (ioctl(s, SIOCADDRT, &route)) { ++ close(s); + syslog(LOG_ERR, "failed to set default route: %s", strerror(errno)); + return -1; + } + ++ close(s); + return 0; + } + + char * pumpPrepareInterface(struct pumpNetIntf * intf, int s) { + struct sockaddr_in * addrp; + struct ifreq req; +- struct rtentry route; + + memset(&req,0,sizeof(req)); ++ strcpy(req.ifr_name, intf->device); + +- addrp = (struct sockaddr_in *) &req.ifr_addr; ++ if (ioctl(s, SIOCGIFINDEX, &req)) ++ return perrorstr("SIOCGIFINDEX"); ++ intf->ifindex = req.ifr_ifindex; + +- strcpy(req.ifr_name, intf->device); ++ if (intf->flags & PUMP_FLAG_NOSETUP) ++ return NULL; ++ ++ addrp = (struct sockaddr_in *) &req.ifr_addr; + addrp->sin_family = AF_INET; + addrp->sin_port = 0; + memset(&addrp->sin_addr, 0, sizeof(addrp->sin_addr)); +@@ -344,48 +372,19 @@ + if (ioctl(s, SIOCSIFADDR, &req)) + return perrorstr("SIOCSIFADDR"); + +- if (oldKernel()) { +- if (ioctl(s, SIOCSIFNETMASK, &req)) +- return perrorstr("SIOCSIFNETMASK"); +- +- /* the broadcast address is 255.255.255.255 */ +- memset(&addrp->sin_addr, 255, sizeof(addrp->sin_addr)); +- if (ioctl(s, SIOCSIFBRDADDR, &req)) +- return perrorstr("SIOCSIFBRDADDR"); +- } +- + if (ioctl(s, SIOCGIFFLAGS, &req)) + return perrorstr("SIOCGIFFLAGS"); + req.ifr_flags |= IFF_UP | IFF_BROADCAST | IFF_RUNNING; + if (ioctl(s, SIOCSIFFLAGS, &req)) + return perrorstr("SIOCSIFFLAGS"); + +- memset(&route, 0, sizeof(route)); +- memcpy(&route.rt_gateway, addrp, sizeof(*addrp)); +- +- addrp->sin_family = AF_INET; +- addrp->sin_port = 0; +- addrp->sin_addr.s_addr = INADDR_ANY; +- memcpy(&route.rt_dst, addrp, sizeof(*addrp)); +- memcpy(&route.rt_genmask, addrp, sizeof(*addrp)); +- +- route.rt_dev = intf->device; +- route.rt_flags = RTF_UP; +- route.rt_metric = 0; +- +- if (ioctl(s, SIOCADDRT, &route)) { +- if (errno != EEXIST) { +- close(s); +- return perrorstr("SIOCADDRT 3"); +- } +- } +- + return NULL; + } + + static int dhcpMessageType(struct bootpRequest * response) { + unsigned char * chptr; + unsigned char option, length; ++ + + chptr = response->vendor; + +@@ -516,9 +515,17 @@ + break; + + case BOOTP_OPTION_GATEWAY: +- memcpy(&intf->gateway, chptr, 4); ++ intf->numGateways = 0; ++ for (i = 0; i < length; i += 4) { ++ if (intf->numGateways < MAX_GATEWAYS) { ++ memcpy(&intf->gateways[intf->numGateways++], chptr + i, ++ 4); ++ syslog(LOG_DEBUG, "intf: gateways[%i]: %s", ++ i/4, inet_ntoa (intf->gateways[i/4])); ++ } ++ } + intf->set |= PUMP_NETINFO_HAS_GATEWAY; +- syslog (LOG_DEBUG, "intf: gateway: %s", inet_ntoa (intf->gateway)); ++ syslog (LOG_DEBUG, "intf: numGateways: %i", intf->numGateways); + break; + + case BOOTP_OPTION_HOSTNAME: +@@ -692,6 +699,9 @@ + struct in_addr address; + unsigned char *vndptr; + unsigned char option, length; ++ ++ if (!verbose) ++ return; + + memset(&address,0,sizeof(address)); + +@@ -744,12 +754,12 @@ + sprintf (vendor, "%3u %3u", option, length); + for (i = 0; i < length; i++) + { +- if (strlen (vendor) > 22) ++ if (strlen (vendor) > sizeof(vendor2) - 6) + { + syslog (LOG_DEBUG, "%s: vendor: %s", name, vendor); + strcpy (vendor, "++++++"); + } +- snprintf (vendor2, 27, "%s 0x%02x", vendor, *vndptr++); ++ snprintf (vendor2, sizeof(vendor2), "%s 0x%02x", vendor, *vndptr++); + strcpy (vendor, vendor2); + + } +@@ -763,11 +773,12 @@ + } + + static char * handleTransaction(int s, struct pumpOverrideInfo * override, +- struct bootpRequest * breq, ++ struct bootpRequest * breq, + struct bootpRequest * bresp, +- struct sockaddr_in * serverAddr, ++ struct sockaddr * serverAddr, ++ socklen_t serverAddrLen, + struct sockaddr_in * respondant, +- int useBootpPacket, ++ const int useBootpPacket, const int raw, + time_t startTime, int dhcpResponseType) { + struct timeval tv; + fd_set readfs; +@@ -786,6 +797,9 @@ + struct udphdr * udpHdr = NULL; + struct psuedohUdpHeader pHdr; + time_t start = pumpUptime(); ++ struct ippkt buf; ++ void * pkt; ++ size_t pktlen, breqlen; + + memset(&pHdr,0,sizeof(pHdr)); + debugbootpRequest("breq", breq); +@@ -802,17 +816,26 @@ + return strerror(errno); + } + +- while (!gotit && tries) { +- i = sizeof(*breq); +- if (useBootpPacket) +- i -= (DHCP_VENDOR_LENGTH - BOOTP_VENDOR_LENGTH); ++ pkt = breq; ++ breqlen = sizeof(*breq); ++ if (useBootpPacket) ++ breqlen -= (DHCP_VENDOR_LENGTH - BOOTP_VENDOR_LENGTH); ++ pktlen = breqlen; ++ if (raw) { ++ pkt = &buf; ++ pktlen += sizeof(struct ip) + sizeof(struct udphdr); ++ } + ++ while (!gotit && tries) { + if (resend) { + if (startTime != -1) + updateSecCount(breq, startTime); + +- if (sendto(s, breq, i, 0, (struct sockaddr *) serverAddr, +- sizeof(*serverAddr)) != i) { ++ if (raw) ++ makeraw(&buf, breq, breqlen); ++ ++ if (sendto(s, pkt, pktlen, 0, (struct sockaddr *) serverAddr, ++ serverAddrLen) != pktlen) { + close(sin); + return perrorstr("sendto"); + } +@@ -890,9 +913,9 @@ + continue; + */ + +- if (ntohs(udpHdr->source) != BOOTP_SERVER_PORT) ++ if (udpHdr->source != bootp_server_port) + continue; +- if (ntohs(udpHdr->dest) != BOOTP_CLIENT_PORT) ++ if (udpHdr->dest != bootp_client_port) + continue; + /* Go on with this packet; it looks sane */ + +@@ -1022,12 +1045,12 @@ + } + + if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1)) { +- syslog(LOG_ERR, "SO_BINDTODEVICE %s (%zd) failed: %s", device, strlen(device), strerror(errno)); ++ syslog(LOG_ERR, "SO_BINDTODEVICE %s (%zu) failed: %s", device, strlen(device), strerror(errno)); + } + + memset(&clientAddr.sin_addr, 0, sizeof(&clientAddr.sin_addr)); + clientAddr.sin_family = AF_INET; +- clientAddr.sin_port = htons(BOOTP_CLIENT_PORT); /* bootp client */ ++ clientAddr.sin_port = bootp_client_port; /* bootp client */ + + if (bind(s, (struct sockaddr *) &clientAddr, sizeof(clientAddr))) { + close(s); +@@ -1046,7 +1069,7 @@ + char hostname[1024]; + + if (!(intf->set & PUMP_INTFINFO_HAS_LEASE)) { +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + syslog(LOG_INFO, "disabling interface %s", intf->device); + + return 0; +@@ -1057,7 +1080,7 @@ + if ((chptr = prepareRequest(&breq, s, intf->device, pumpUptime()))) { + close(s); + while (1) { +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return 0; + } + } +@@ -1072,6 +1095,7 @@ + strlen(intf->hostname) + 1, intf->hostname); + } else { + gethostname(hostname, sizeof(hostname)); ++ hostname[sizeof(hostname) - 1] = 0; + if (strcmp(hostname, "localhost") && + strcmp(hostname, "localhost.localdomain")) { + addVendorCode(&breq, BOOTP_OPTION_HOSTNAME, +@@ -1080,13 +1104,13 @@ + } + + serverAddr.sin_family = AF_INET; +- serverAddr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */ ++ serverAddr.sin_port = bootp_server_port; /* bootp server */ + serverAddr.sin_addr = intf->bootServer; + +- handleTransaction(s, NULL, &breq, &bresp, &serverAddr, NULL, 0, +- -1, NORESPONSE); ++ handleTransaction(s, NULL, &breq, &bresp, (struct sockaddr *) &serverAddr, ++ sizeof(serverAddr), NULL, 0, 0, -1, NORESPONSE); + +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + close(s); + + if (intf->set & PUMP_NETINFO_HAS_HOSTNAME) +@@ -1116,7 +1140,7 @@ + + if ((chptr = prepareRequest(&breq, s, intf->device, pumpUptime()))) { + close(s); +- while (1); /* problem */ ++ return 1; + } + + messageType = DHCP_TYPE_REQUEST; +@@ -1132,6 +1156,7 @@ + intf->hostname); + } else { + gethostname(hostname, sizeof(hostname)); ++ hostname[sizeof(hostname) - 1] = 0; + if (strcmp(hostname, "localhost") && + strcmp(hostname, "localhost.localdomain")) { + addVendorCode(&breq, BOOTP_OPTION_HOSTNAME, +@@ -1143,11 +1168,12 @@ + addVendorCode(&breq, DHCP_OPTION_LEASE, 4, &i); + + serverAddr.sin_family = AF_INET; +- serverAddr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */ ++ serverAddr.sin_port = bootp_server_port; /* bootp server */ + serverAddr.sin_addr = intf->bootServer; + +- if (handleTransaction(s, NULL, &breq, &bresp, &serverAddr, NULL, 0, +- startTime, DHCP_TYPE_ACK)) { ++ if (handleTransaction(s, NULL, &breq, &bresp, ++ (struct sockaddr *) &serverAddr, sizeof(serverAddr), ++ NULL, 0, 0, startTime, DHCP_TYPE_ACK)) { + close(s); + return 1; + } +@@ -1232,6 +1258,7 @@ + if (!reqHostname) { + reqHostname = alloca(200); + gethostname(reqHostname, 200); ++ reqHostname[199] = 0; + if (!strcmp(reqHostname, "localhost") || + !strcmp(reqHostname, "localhost.localdomain")) + reqHostname = NULL; +@@ -1254,15 +1281,13 @@ + struct pumpOverrideInfo * override) { + int s; + struct sockaddr_in serverAddr; +- struct sockaddr_in clientAddr; +- struct sockaddr_in broadcastAddr; ++ struct sockaddr_ll broadcastAddr; + struct bootpRequest breq, bresp; + char * chptr; + time_t startTime = pumpUptime(); +- int true = 1; +- int ttl = 16; + char * saveDeviceName; + unsigned char messageType; ++ struct pumpOverrideInfo saveOverride; + + /* If device is the same as intf->device, don't let the memset() + blow away the device name */ +@@ -1270,25 +1295,25 @@ + strcpy(saveDeviceName, device); + device = saveDeviceName; + ++ memcpy(&saveOverride, override, sizeof(*override)); ++ override = &saveOverride; ++ + memset(intf, 0, sizeof(*intf)); + strcpy(intf->device, device); + intf->reqLease = reqLease; + intf->set |= PUMP_INTFINFO_HAS_REQLEASE; ++ memcpy(&intf->override, override, sizeof(*override)); + +- s = socket(AF_INET, SOCK_DGRAM, 0); ++ /* Save these for later */ ++ intf->flags = flags & PUMP_FLAG_WINCLIENTID; ++ if (override && (override->flags & OVERRIDE_FLAG_NOSETUP)) ++ intf->flags |= PUMP_FLAG_NOSETUP; ++ ++ s = socket(AF_PACKET, SOCK_DGRAM, ntohs(ETH_P_IP)); + if (s < 0) { + return perrorstr("socket"); + } + +- if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &true, sizeof(true))) { +- close(s); +- return perrorstr("setsockopt"); +- } +- if (setsockopt(s, SOL_IP, IP_TTL, &ttl, sizeof(ttl))) { +- close(s); +- return perrorstr("setsockopt"); +- } +- + if (flags & PUMP_FLAG_NOCONFIG) { + if ((chptr = getInterfaceInfo(intf, s))) { + close(s); +@@ -1301,7 +1326,7 @@ + + if ((chptr = prepareRequest(&breq, s, intf->device, startTime))) { + close(s); +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return chptr; + } + +@@ -1318,19 +1343,10 @@ + addVendorCode(&breq, DHCP_OPTION_CLASS_IDENTIFIER, + strlen(class) + 1, class); + } +- memset(&clientAddr.sin_addr, 0, sizeof(&clientAddr.sin_addr)); +- clientAddr.sin_family = AF_INET; +- clientAddr.sin_port = htons(BOOTP_CLIENT_PORT); /* bootp client */ +- +- if (bind(s, (struct sockaddr *) &clientAddr, sizeof(clientAddr))) { +- pumpDisableInterface(intf->device); +- close(s); +- return perrorstr("bind"); +- } + + memset(&serverAddr,0,sizeof(serverAddr)); + serverAddr.sin_family = AF_INET; +- serverAddr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */ ++ serverAddr.sin_port = bootp_server_port; /* bootp server */ + + #if 0 + /* seems like a good idea?? */ +@@ -1339,27 +1355,21 @@ + #endif + + memset(&broadcastAddr,0,sizeof(broadcastAddr)); +- broadcastAddr.sin_family = AF_INET; +- broadcastAddr.sin_port = htons(BOOTP_SERVER_PORT); +- +-#if 0 +- /* this too! */ +- if (intf->set & PUMP_INTFINFO_HAS_BROADCAST) +- broadcastAddr.sin_addr = intf->broadcast; +-#endif +- +- memset(&broadcastAddr.sin_addr, 0xff, +- sizeof(broadcastAddr.sin_addr)); /* all 1's broadcast */ ++ memset(&broadcastAddr.sll_addr, ~0, ETH_ALEN); ++ broadcastAddr.sll_halen = ETH_ALEN; ++ broadcastAddr.sll_ifindex = intf->ifindex; ++ broadcastAddr.sll_protocol = htons(ETH_P_IP); + + syslog (LOG_DEBUG, "PUMP: sending discover\n"); + + if (override && (override->flags & OVERRIDE_FLAG_NOBOOTP)) + syslog (LOG_DEBUG, "PUMP: Ignoring non-DHCP BOOTP responses\n"); + +- if ((chptr = handleTransaction(s, override, &breq, &bresp, &broadcastAddr, +- NULL, (override && (override->flags & OVERRIDE_FLAG_NOBOOTP))?0:1, startTime, DHCP_TYPE_OFFER))) { ++ if ((chptr = handleTransaction(s, override, &breq, &bresp, ++ (struct sockaddr *) &broadcastAddr, ++ sizeof(broadcastAddr), NULL, (override && (override->flags & OVERRIDE_FLAG_NOBOOTP))?0:1, 1, startTime, DHCP_TYPE_OFFER))) { + close(s); +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return chptr; + } + +@@ -1378,17 +1388,19 @@ + + /* Send another DHCP_DISCOVER with the proper option list */ + if ((chptr = handleTransaction(s, override, &breq, &bresp, +- &broadcastAddr, NULL, 0, ++ (struct sockaddr *) &broadcastAddr, ++ sizeof(broadcastAddr), ++ NULL, 0, 1, + startTime, DHCP_TYPE_OFFER))) { + close(s); +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return chptr; + } + + + if (dhcpMessageType(&bresp) != DHCP_TYPE_OFFER) { + close(s); +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return "dhcp offer expected"; + } + +@@ -1396,7 +1408,7 @@ + + if (getVendorCode(&bresp, DHCP_OPTION_SERVER, &serverAddr.sin_addr, sizeof(struct in_addr))) { + syslog (LOG_DEBUG, "DHCPOFFER didn't include server address"); +- intf->bootServer = broadcastAddr.sin_addr; ++ intf->bootServer.s_addr = INADDR_BROADCAST; + } + + initVendorCodes(&breq); +@@ -1409,10 +1421,12 @@ + /* why do we need to use the broadcast address here? better reread the + spec! */ + if ((chptr = handleTransaction(s, override, &breq, &bresp, +- &broadcastAddr, NULL, 0, ++ (struct sockaddr *) &broadcastAddr, ++ sizeof(broadcastAddr), ++ NULL, 0, 1, + startTime, DHCP_TYPE_ACK))) { + close(s); +- pumpDisableInterface(intf->device); ++ pumpDisableInterface(intf); + return chptr; + } + +@@ -1422,7 +1436,7 @@ + + if (getVendorCode(&bresp, DHCP_OPTION_SERVER, &intf->bootServer, sizeof(struct in_addr))) { + syslog (LOG_DEBUG, "DHCPACK didn't include server address"); +- intf->bootServer = broadcastAddr.sin_addr; ++ intf->bootServer.s_addr = INADDR_BROADCAST; + } + + intf->set |= PUMP_INTFINFO_HAS_BOOTSERVER; +@@ -1434,9 +1448,6 @@ + if (flags & PUMP_FLAG_FORCEHNLOOKUP) + intf->set &= ~(PUMP_NETINFO_HAS_DOMAIN | PUMP_NETINFO_HAS_HOSTNAME); + +- /* Save these for later */ +- intf->flags = flags & PUMP_FLAG_WINCLIENTID; +- + return NULL; + } + +@@ -1448,10 +1459,9 @@ + } + + void pumpInitOverride(struct pumpOverrideInfo * override) { +- strcpy(override->intf.device, "MASTER"); ++ strcpy(override->device, "MASTER"); + override->timeout = DEFAULT_TIMEOUT; + override->numRetries = DEFAULT_NUM_RETRIES; +- override->script = NULL; + } + + /* +@@ -1487,3 +1497,68 @@ + return (time_t)secs; + } + ++static void makeraw(struct ippkt *buf, const void *payload, size_t len) { ++ size_t total = sizeof(struct ip) + sizeof(struct udphdr) + len; ++ ++ buf->ip.ip_v = 4; ++ buf->ip.ip_hl = 5; ++ buf->ip.ip_tos = IPTOS_LOWDELAY; ++ buf->ip.ip_len = htons(total); ++ buf->ip.ip_id = 0; ++ buf->ip.ip_off = 0; ++ buf->ip.ip_ttl = 16; ++ buf->ip.ip_p = IPPROTO_UDP; ++ buf->ip.ip_sum = 0; ++ buf->ip.ip_src.s_addr = INADDR_ANY; ++ buf->ip.ip_dst.s_addr = INADDR_BROADCAST; ++ ++ buf->ip.ip_sum = wrapsum(checksum(&buf->ip, sizeof(buf->ip), 0)); ++ ++ buf->udp.source = bootp_client_port; ++ buf->udp.dest = bootp_server_port; ++ buf->udp.len = htons(sizeof(struct udphdr) + len); ++ buf->udp.check = 0; ++ ++ buf->udp.check = ++ wrapsum( ++ checksum( ++ &buf->udp, sizeof(buf->udp), ++ checksum( ++ payload, len, ++ checksum( ++ &buf->ip.ip_src, ++ 2 * sizeof(buf->ip.ip_src), ++ IPPROTO_UDP + ++ (uint32_t) ++ ntohs(buf->udp.len) ++ ) ++ ) ++ ) ++ ); ++ ++ memcpy(buf->payload, payload, len); ++} ++ ++uint32_t checksum(const void *buf, size_t len, uint32_t sum) { ++ const char *p = buf; ++ size_t i; ++ ++ for (i = 0; i < (len & ~1); i += 2) { ++ sum += ntohs(*(uint16_t *)(p + i)); ++ if (sum > 0xffff) ++ sum -= 0xffff; ++ } ++ ++ if (i < len) { ++ sum += p[i] << 8; ++ if (sum > 0xffff) ++ sum -= 0xffff; ++ } ++ ++ return sum; ++} ++ ++uint32_t wrapsum(uint32_t sum) { ++ sum = ~sum & 0xffff; ++ return htons(sum); ++} +--- pump-0.8.24.orig/config.c ++++ pump-0.8.24/config.c +@@ -101,8 +101,9 @@ + } + + *nextO = *override; +- strcpy(nextO->intf.device, rest); +- nextO->script = override->script ? strdup(override->script) : NULL; ++ strcpy(nextO->device, rest); ++ if (override->script[0]) ++ strcpy(nextO->script, override->script); + + (*lineNum)++; + if (readStanza(&next, overrideList, nextO, lineNum)) return 1; +@@ -155,6 +156,8 @@ + + override->numRetries = num; + } else if (!strcmp(start, "domainsearch")) { ++ size_t len; ++ + if (overrideList != override) { + parseError(*lineNum, "domainsearch directive may not occur " + "inside of device specification"); +@@ -169,12 +172,18 @@ + return 1; + } + ++ len = strlen(argv[0]); ++ if (len >= sizeof(override->searchPath)) { ++ parseError(*lineNum, "domainsearch directive is too long"); ++ return 1; ++ } ++ + /* + We don't free this as other configurations may have inherited + it. This could be the wrong decision, but leak would be tiny + so why worry? + */ +- override->searchPath = strdup(argv[0]); ++ memcpy(override->searchPath, argv[0], len + 1); + free(argv); + } else if (!strcmp(start, "nodns")) { + if (*rest) { +@@ -200,7 +209,25 @@ + return 1; + } + override->flags |= OVERRIDE_FLAG_NONISDOMAIN; ++ } else if (!strcmp(start, "nosetup")) { ++ if (*rest) { ++ parseError(*lineNum, "unexpected argument to nosetup directive"); ++ return 1; ++ } ++ override->flags |= ++ OVERRIDE_FLAG_NOSETUP | ++ OVERRIDE_FLAG_NODNS | ++ OVERRIDE_FLAG_NOGATEWAY | ++ OVERRIDE_FLAG_NONISDOMAIN; ++ } else if (!strcmp(start, "noresolvconf")) { ++ if (*rest) { ++ parseError(*lineNum, "unexpected argument to noresolvconf directive"); ++ return 1; ++ } ++ override->flags |= OVERRIDE_FLAG_NORESOLVCONF; + } else if (!strcmp(start, "script")) { ++ size_t len; ++ + if (overrideList != override) { + parseError(*lineNum, "script directive may not occur " + "inside of device specification"); +@@ -214,7 +241,14 @@ + "single argument"); + return 1; + } +- override->script = strdup(argv[0]); ++ ++ len = strlen(argv[0]); ++ if (len >= sizeof(override->script)) { ++ parseError(*lineNum, "script directive is too long"); ++ return 1; ++ } ++ ++ memcpy(override->script, argv[0], len + 1); + free(argv); + } else { + char * error; +@@ -245,7 +279,6 @@ + if ((fd = open(configFile, O_RDONLY)) < 0) { + *overrides = calloc(sizeof(**overrides), 2); + pumpInitOverride(*overrides); +- close(fd); + return 0; + } + +--- pump-0.8.24.orig/Makefile ++++ pump-0.8.24/Makefile +@@ -6,7 +6,7 @@ + USRLIBPATH = $(libdir) + INCPATH = $(includedir) + MAN8PATH = $(mandir)/man8 +-CFLAGS = -fPIC -I. -Wall -Werror -g $(RPM_OPT_FLAGS) -D__STANDALONE__ -DVERSION=\"$(VERSION)\" ++CFLAGS = $(DEB_CFLAGS) -I. -Wall -Werror -g $(RPM_OPT_FLAGS) -D__STANDALONE__ -DVERSION=\"$(VERSION)\" -D_GNU_SOURCE + CVSROOT = $(shell cat CVS/Root 2>/dev/null) + + ARCH := $(patsubst i%86,i386,$(shell uname -m)) +--- pump-0.8.24.orig/pump.8 ++++ pump-0.8.24/pump.8 +@@ -1,4 +1,5 @@ + .\" Copyright 1999 Red Hat Software, Inc. ++.\" August 2004: Updated by Thomas Hood <jdthood@yahoo.co.uk> + .\" + .\" This man page is free documentation; you can redistribute it and/or modify + .\" it under the terms of the GNU General Public License as published by +@@ -14,69 +15,120 @@ + .\" along with this man page; if not, write to the Free Software + .\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + .\" +-.TH PUMP 8 "December 07, 1999" "Linux" "Linux Administrator's Manual" ++.TH PUMP 8 "26 August 2004" "Linux" "Linux Administrator's Manual" + .SH NAME + pump \- configure network interface via BOOTP or DHCP protocol + .SH SYNOPSIS +-/sbin/pump [-krRsd?] [-c \fIARG\fP] [-h \fIhostname\fP] [-i \fIiface\fP] [-l \fIhours\fP] [--lookup-hostname] [--usage] ++.B pump ++.BR "" [ \-krRsd ] ++.BR "" [ \-c | \-\-config\-file ++.IR FILE ] ++.BR "" [ \-h | \-\-hostname ++.IR HOSTNAME ] ++.BR "" [ \-i | \-\-interface ++.IR IFACE ] ++.BR "" [ \-l | \-\-lease ++.IR HOURS ] ++.BR "" [ \-\-lookup\-hostname ] ++.BR "" [ \-\-no\-dns "] [" \-\-no\-gateway "] [" \-\-no\-setup "] [" \-\-no\-resolvconf ] ++.BR "" [ \-\-release "] [" \-\-renew "] [" \-\-script = ++.IR ISCRIPT ] ++.BR "" [ \-\-status ] ++.BR "" [ \-\-win\-client\-ident ] ++.P ++.B pump ++.BR "" [ \-? | \-\-help "] [" \-\-usage ] + .SH DESCRIPTION +-pump is a daemon that manages network interfaces that are +-controlled by either the DHCP or BOOTP protocol. +- +-While pump may be started manually, it is normally started +-automatically by the /sbin/ifup script for devices configured +-via BOOTP or DHCP. +- +-Once pump is managing an interface, you can run pump to query ++.B pump ++is a daemon that manages network interfaces that are controlled ++by either the DHCP or BOOTP protocol. ++ ++While ++.B pump ++may be started manually, it is normally started automatically by ++.BR ifup (8) ++for devices configured via BOOTP or DHCP. ++ ++If ++.B pump ++is managing an interface, you can run it again to query + the status of that interface. For example, + .br +-\f(CW/sbin/pump -i eth0 --status \fR ++ \f(CWpump \-i eth0 \-\-status\fR + .br + will print the current status of device eth0. +-.SH "COMMAND-LINE OPTIONS" ++.SH "COMMAND LINE OPTIONS" + .TS + lB lB lB + lfCW lfCW l. + switch long option description +-.TH +--c --config-file=ARG Configuration file to use instead of +- /etc/pump.conf +--h --hostname=hostname Hostname to request +--i --interface=iface Interface to configure (normally eth0) +--k --kill Kill daemon (and disable all interfaces) +--l --lease=hours Lease time to request (in hours) +- --lookup-hostname Always look up hostname and domain in DNS +--r --release Release interface +--R --renew Force immediate lease renewal +--s --status Display interface status +--d --no-dns Don't update resolv.conf +- --no-gateway Don't configurate a default route for this interface +- --win-client-id Specify a Windows-like client identifier +--? --help Show this help message +- --usage Display brief usage message ++\-? \-\-help Show this help message ++\-c \-\-config\-file=\fIFILE\fR Get configuration from \fIFILE\fR instead of /etc/pump.conf ++\-d \-\-no\-dns Don't update DNS resolver configuration ++\-h \-\-hostname=\fIHOSTNAME\fR Request \fIHOSTNAME\fR ++\-i \-\-interface=\fIIFACE\fR Manage \fIIFACE\fR rather than eth0 ++\-k \-\-kill Kill daemon (and disable all interfaces) ++\-l \-\-lease=\fIHOURS\fR Request least time of \fIHOURS\fR ++ \-\-lookup\-hostname Look up hostname in DNS ++\-R \-\-renew Renew lease immediately ++\-r \-\-release Release interface ++ \-\-no\-gateway Don't configurate a default route for this interface ++ \-\-no\-resolvconf Don't use the \fBresolvconf\fR program to update resolv.conf ++ \-\-no\-setup Don't set up anything ++ \-\-script=\fISCRIPT\fR Call \fISCRIPT\fR (or null string to disable) ++\-s \-\-status Display interface status ++ \-\-usage Display a brief usage message ++ \-\-win\-client\-ident Specify a Windows(tm)-like client identifier + .TE +-.SH LOGGING +-Pump logs a good deal of information to syslog, much of it at the DEBUG +-level. If you're having trouble, it's a good idea to turn up syslog's logging +-level. +- +-.SH CONFIG FILE +-Pump supports a simple configuration file which lets you tune its behavior. +-By default, it looks at \fI/etc/pump.conf\fR, though the \fB-c\fR option +-lets you override that. +- +-The configuration file is line oriented, and most line contains a +-directive followed by zero or more arguments. Arguments are handled +-similar to how shells handle command arguments, allowing the use of +-quotes and backslash escapes. Comments are allowed, and must begin with +-a # character, and spaces and tabs are ignored. +- +-Directives may be specified at two levels, global and specific. Global +-directives change pump's behavior for all of the devices which it manages, +-while specific directives change pump's behavior for a single device. ++.SH "OPTION NOTES" ++The ++.B \-\-lookup\-hostname ++option causes ++.B pump ++to ignore the host and domain names returned by the server ++and instead ++to look these up in DNS using the IP address of the interface. ++The name that is looked up is used in forming the ++.B search ++line in the resolv.conf file. ++Thus, if either the ++.B \-\-no\-dns ++or ++.B domainsearch ++option is used then ++.B \-\-lookup\-hostname ++has no effect. ++.P ++Note that ++.B pump ++itself never sets the computer's hostname. ++ ++.SH "CONFIGURATION FILE" ++You can tune the behavior of ++.B pump ++using a configuration file. ++By default ++.B pump ++reads \fI/etc/pump.conf\fR but you can change this using the ++\fB\-\-config\-file\fR option. ++ ++The configuration file is line-oriented. ++Most lines contain a directive followed by zero or more arguments. ++Arguments are handled similarly to how shells handle command arguments, ++allowing the use of quotes and backslash escapes. ++Comments are allowed, and must begin with a # character. ++Spaces and tabs are ignored. ++ ++Directives may be specified at two levels: global and specific. ++Global directives change ++.BR pump 's ++behavior for all of the devices that it manages ++whereas specific directives change ++.BR pump 's ++behavior for a single device. + Later directives always override earlier ones. + +-Here is an example /etc/pump.conf: ++Here is an example configuration file: + + .nf + .ta +3i +@@ -91,71 +143,108 @@ + .fi + + .pp +-This configuration file tells pump to use a specific DNS search path rather +-deriving one from the DHCP or BOOTP server response, to retry each request +-3 times (for a total of 4 tries), and not to change any DNS configuration ++This configuration file tells ++.B pump ++to use a specific DNS search path rather ++than deriving one from the DHCP or BOOTP server response, to retry each request ++3 times (for a total of 4 tries), and not to change the DNS configuration file + when it's configuring the eth1 device. + + Here is a complete list of directives: + + .TP +-\fBdevice\fR \fIdevice\fR +-Specify specific directives for the indicated device. This directive must ++\fBdevice\fR \fIDEVICE\fR ++Specify specific directives for \fIDEVICE\fR. This directive must + be followed by a {, and the list of specific directives must end with a } +-on its own line. These directives may not be nested. ++on its own line. ++These directives may not be nested. + + .TP +-\fBdomainsearch\fR \fIsearchpath\fR +-Rather then deriving the DNS search path (for /etc/resolv.conf), use the +-one which is given. As a machine only has a single DNS search path, this +-directive may only be used globally. ++\fBdomainsearch\fR \fISEARCHPATH\fR ++Use \fISEARCHPATH\fR as the DNS search path instead of the domain ++name returned by the server or the domain part of the fully ++qualified hostname. ++As a machine only has a single DNS search path, this directive may ++only be used globally. + + .TP + \fBnonisdomain\fR +-Don't set a new NIS domain. Normally \fBpump\fR sets the system's NIS domain +-if an NIS domain is specified by the dhcp server and the current NIS domain +-is empty or \fBlocaldomain\fR. ++Don't set the NIS domain. ++Normally \fBpump\fR sets the system's NIS domain ++if an NIS domain is specified by the DHCP server ++and the current NIS domain is empty or \fBlocaldomain\fR. + This directive may only be used within a \fBdevice\fR directive. + + .TP + \fBnodns\fR +-Don't create a new /etc/resolv.conf when this interface is configured. This +-directive may only be used within a \fBdevice\fR directive. ++Don't update /etc/resolv.conf when the interface is configured. ++This directive may only be used within a \fBdevice\fR directive. + + .TP + \fBnogateway\fR +-Ignore any default gateway suggested by the DHCP server for this device. This +-can be usefull on machines with multiple ethernet cards. ++Ignore any default gateway suggested by the DHCP server for this device. ++This can be useful on machines with multiple Ethernet cards. ++ ++.TP ++\fBnosetup\fR ++Don't set up anything on the local machine as a result of DHCP operations. ++This implies \fBnodns\fR, \fBnonisdomain\fR and \fBnogateway\fR. ++This option is useful, for example, ++if you want to perform setup in customised scripts. + + .TP +-\fBretries\fR \fIcount\fR +-Retry each phase of the DHCP process \fIcount\fR times. ++\fBnoresolvconf\fR ++Don't use the resolvconf program to update /etc/resolv.conf; ++instead, update /etc/resolv.conf directly. ++(This option is only relevant if ++.B \-\-nodns ++is not used.) + + .TP +-\fBtimeout\fR \fIcount\fR +-Don't let any one step of the DHCP process take more then \fIcount\fR seconds. ++\fBretries\fR \fICOUNT\fR ++Retry each phase of the DHCP process \fICOUNT\fR times. + + .TP +-\fBscript\fR \fIexecutable-filename\fR ++\fBtimeout\fR \fICOUNT\fR ++Don't let any one step of the DHCP process take more then \fICOUNT\fR seconds. ++ ++.TP ++\fBscript\fR \fIFILE\fR + + .TS + lB lB lB lB + lB lfCW lfCW lfCW. +-.TH + Condition arg1 arg2 arg3 + lease up eth0 1.2.3.4 + renewal renewal eth0 2.3.4.5 + release down eth0 + .TE + +-When events occur in negotiation with the server, calls the given +-executable or script. Scripts are called when a lease is granted, +-when a renewal is negotiated, and when the interface is brought +-down and the address released. The scripts are called with two +-or three arguments, depending on the condition, as documented in +-the table above. ++When events occur in negotiation with the server, call the executable \fIFILE\fR. ++Scripts are called when a lease is granted, when a renewal is negotiated, ++and when the interface is brought down and the address released. ++The script is called with two or three arguments, depending on the condition, ++as documented in the table above. ++ ++.SH LOGGING ++The program logs a good deal of information to syslog, ++much of it at the DEBUG level. ++If you're having trouble, it's a good idea to turn up syslog's logging level. + + .SH BUGS ++ ++At startup ++.B pump ++tries to detect whether another instance of itself is running. ++If the UNIX domain socket (normally \fI/var/run/pump.sock\fR) ++does not exist, ++.B pump ++tries to connect to tcp/127.0.0.1:68. ++If it is also unreacheable (possibly due to packet filtering), ++.B pump ++will issue a warning to stderr and assume that there is no ++instance of itself running. ++ + Probably limited to Ethernet, might work on PLIP, probably not + ARCnet and Token Ring. The configuration file should let you do more + things. +@@ -163,5 +252,5 @@ + Submit bug reports at the Bug Track link at + http://developer.redhat.com/ + .SH QUIBBLE +-A pump, like a boot[p], is something you wear on your foot. Some of us +-like the name (I know, hard to believe)! ++A pump, like a boot[p], is something you wear on your foot. ++Some of us like the name (I know, hard to believe)! +--- pump-0.8.24.orig/pump.c ++++ pump-0.8.24/pump.c +@@ -52,6 +52,12 @@ + #include "config.h" + #include "pump.h" + ++int verbose = 0; ++#if !UDEB ++int bootp_client_port; ++int bootp_server_port; ++#endif ++ + #define N_(foo) (foo) + + #define PROGNAME "pump" +@@ -69,6 +75,7 @@ + int flags; + int reqLease; /* in seconds */ + char reqHostname[200]; ++ struct pumpOverrideInfo override; + } start; + int result; /* 0 for success */ + struct { +@@ -90,8 +97,6 @@ + } u; + }; + +-static int openControlSocket(char * configFile, struct pumpOverrideInfo * override); +- + char * readSearchPath(void) { + int fd; + struct stat sb; +@@ -132,14 +137,15 @@ + return NULL; + } + +-static void createResolvConf(struct pumpNetIntf * intf, char * domain, +- int isSearchPath) { ++static void createResolvConf(struct pumpNetIntf * intf, struct pumpOverrideInfo * override, char * domain) { + FILE * f; + int i; + char * chptr; ++ int resolvconf; + + /* force a reread of /etc/resolv.conf if we need it again */ + res_close(); ++ endhostent(); + + if (!domain) { + domain = readSearchPath(); +@@ -148,63 +154,56 @@ + strcpy(chptr, domain); + free(domain); + domain = chptr; +- isSearchPath = 1; + } + } + +- f = fopen("/etc/resolv.conf", "w"); +- if (!f) { +- syslog(LOG_ERR, "cannot create /etc/resolv.conf: %s\n", +- strerror(errno)); +- return; ++ resolvconf = !(override->flags & OVERRIDE_FLAG_NORESOLVCONF); ++ if (resolvconf) { ++ struct stat buf; ++ ++ if (stat("/sbin/resolvconf", &buf) < 0) ++ resolvconf = 0; + } + +- if (domain && isSearchPath) { +- fprintf(f, "search %s\n", domain); +- } else if (domain && !strchr(domain, '.')) { +- fprintf(f, "search %s\n", domain); +- } else if (domain) { +- fprintf(f, "search"); +- chptr = domain; +- do { +- /* If there is a single . in the search path, write it out +- * only if the toplevel domain is com, edu, gov, mil, org, +- * net +- */ +- /* Don't do that! It breaks virtually all installations +- * in Europe. +- * Besides, what's wrong with some company assigning hostnames +- * in the ".internal" TLD? +- * What exactly was this supposed to accomplish? +- * Commented out --bero +- */ +-/* if (!strchr(strchr(chptr, '.') + 1, '.')) { +- char * tail = strchr(chptr, '.'); +- if (strcmp(tail, ".com") && strcmp(tail, ".edu") && +- strcmp(tail, ".gov") && strcmp(tail, ".mil") && +- strcmp(tail, ".net") && +- strcmp(tail, ".org") && strcmp(tail, ".int")) break; +- } */ +- +- fprintf(f, " %s", chptr); +- chptr = strchr(chptr, '.'); +- if (chptr) { +- chptr++; +- if (!strchr(chptr, '.')) +- chptr = NULL; +- } +- } while (chptr); ++ if (resolvconf) { ++ char *arg; + +- fprintf(f, "\n"); ++ f = NULL; ++ if (asprintf(&arg, "/sbin/resolvconf -a %s >/dev/null 2>&1", intf->device) >= 0) { ++ f = popen(arg, "w"); ++ free(arg); ++ } ++ if (!f) { ++ syslog(LOG_ERR, "error starting resolvconf: %s\n", strerror(errno)); ++ return; ++ } ++ } else { ++ f = fopen("/etc/resolv.conf", "w"); ++ if (!f) { ++ syslog(LOG_ERR, "error opening resolv.conf: %s\n", strerror(errno)); ++ return; ++ } + } + ++ ++ errno = 0; ++ ++ if (domain) ++ if(fprintf(f, "search %s\n", domain) < 0) ++ syslog(LOG_ERR, "failed to write resolver configuration data\n"); ++ + for (i = 0; i < intf->numDns; i++) +- fprintf(f, "nameserver %s\n", inet_ntoa(intf->dnsServers[i])); ++ if(fprintf(f, "nameserver %s\n", inet_ntoa(intf->dnsServers[i])) < 0) ++ syslog(LOG_ERR, "failed to write resolver configuration data\n"); + +- fclose(f); ++ if (resolvconf) { ++ if(pclose(f) != 0) /* errno not useful on pclose failure */ ++ syslog(LOG_ERR, "error running resolvconf\n"); ++ } else { ++ if(fclose(f) != 0) ++ syslog(LOG_ERR, "error closing resolv.conf: %s\n", strerror(errno)); ++ } + +- /* force a reread of /etc/resolv.conf */ +- endhostent(); + } + + void setupDomain(struct pumpNetIntf * intf, +@@ -248,8 +247,8 @@ + return; + } + +- if (override->searchPath) { +- createResolvConf(intf, override->searchPath, 1); ++ if (override->searchPath[0]) { ++ createResolvConf(intf, override, override->searchPath); + return; + } + +@@ -258,7 +257,7 @@ + if (intf->set & PUMP_NETINFO_HAS_HOSTNAME) { + hn = intf->hostname; + } else { +- createResolvConf(intf, NULL, 0); ++ createResolvConf(intf, override, NULL); + + he = gethostbyaddr((char *) &intf->ip, sizeof(intf->ip), + AF_INET); +@@ -278,11 +277,35 @@ + dn = intf->domain; + } + +- createResolvConf(intf, dn, 0); ++ createResolvConf(intf, override, dn); ++ } ++} ++ ++void unsetupDns(struct pumpNetIntf * intf, struct pumpOverrideInfo * override) { ++ struct stat buf; ++ char *arg; ++ ++ if (override->flags & OVERRIDE_FLAG_NODNS) ++ return; ++ if (override->flags & OVERRIDE_FLAG_NORESOLVCONF) ++ return; ++ if (stat("/sbin/resolvconf", &buf) < 0) ++ return; ++ if (asprintf(&arg, "/sbin/resolvconf -d %s", intf->device) < 0) { ++ syslog(LOG_ERR, "failed to release resolvconf: %s", strerror(errno)); ++ return; + } ++ ++ if (system(arg) != 0) ++ syslog(LOG_ERR, "resolvconf -d %s failed", intf->device); ++ free(arg); + } + + static void callIfupPost(struct pumpNetIntf* intf) { ++#ifdef debian ++ /* can/should we call a debian one? */ ++ return; ++#else + pid_t child; + char * argv[3]; + char arg[64]; +@@ -304,6 +327,7 @@ + } + + waitpid(child, NULL, 0); ++#endif + } + + static void callScript(char* script,int msg,struct pumpNetIntf* intf) { +@@ -312,13 +336,17 @@ + char ** nextArg; + char * class = NULL, * chptr; + +- if (!script) return; ++ if (!*script) return; + + argv[0] = script; + argv[2] = intf->device; + nextArg = argv + 3; + + switch (msg) { ++ default: ++#ifdef DEBUG ++ abort(); ++#endif + case PUMP_SCRIPT_NEWLEASE: + class = "up"; + chptr = inet_ntoa(intf->ip); +@@ -357,35 +385,58 @@ + waitpid(child, NULL, 0); + } + +-static void runDaemon(int sock, char * configFile, struct pumpOverrideInfo * overrides) { ++static void gotNewLease(struct pumpNetIntf *intf) { ++ struct pumpOverrideInfo *o = &intf->override; ++ ++ pumpSetupInterface(intf); ++ ++ syslog(LOG_INFO, "configured interface %s", intf->device); ++ ++ if (!(o->flags & OVERRIDE_FLAG_NOGATEWAY)) { ++ int i; ++ ++ for (i = intf->numGateways - 1; i >= 0; i--) ++ pumpSetupDefaultGateway(&intf->gateways[i]); ++ } ++ ++ setupDns(intf, o); ++ setupDomain(intf, o); ++ ++ callScript(o->script, PUMP_SCRIPT_NEWLEASE, intf); ++} ++ ++static void killLease(struct pumpNetIntf *intf) { ++ struct pumpOverrideInfo *o = &intf->override; ++ ++ unsetupDns(intf, o); ++ callScript(o->script, PUMP_SCRIPT_DOWN, intf); ++} ++ ++static void runDaemon(int sock, int sock_in) { + int conn; + struct sockaddr_un addr; + socklen_t addrLength = sizeof(struct sockaddr_un); + struct command cmd; + struct pumpNetIntf intf[20]; ++ const int maxIntf = sizeof(intf) / sizeof(intf[0]); + int numInterfaces = 0; + int i; + int closest; + struct timeval tv; + fd_set fds; +- struct pumpOverrideInfo emptyOverride, * o = NULL; +- +- if (!overrides) +- readPumpConfig(configFile, &overrides); +- +- if (!overrides) { +- overrides = &emptyOverride; +- overrides->intf.device[0] = '\0'; +- } + + while (1) { + FD_ZERO(&fds); + FD_SET(sock, &fds); ++ FD_SET(sock_in, &fds); + + tv.tv_sec = tv.tv_usec = 0; + closest = -1; + if (numInterfaces) { +- for (i = 0; i < numInterfaces; i++) ++ for (i = 0; i < numInterfaces; i++) { ++ if (!(intf[i].set & ++ (PUMP_INTFINFO_NEEDS_NEWLEASE | PUMP_INTFINFO_HAS_LEASE))) ++ continue; + /* if this interface has an expired lease due to + * renewal failures and it's time to try again to + * get a new lease, then try again +@@ -402,7 +453,7 @@ + intf[i].reqLease, + intf[i].set & PUMP_NETINFO_HAS_HOSTNAME + ? intf[i].hostname : NULL, +- intf + i, overrides)) { ++ intf + i, &intf[i].override)) { + + /* failed to get a new lease, so try + * again in 30 seconds +@@ -411,14 +462,12 @@ + + } else { + intf[i].set &= ~PUMP_INTFINFO_NEEDS_NEWLEASE; +- callScript(overrides->script, PUMP_SCRIPT_NEWLEASE, +- &intf[i]); ++ gotNewLease(intf + i); + } + } +- else if ((intf[i].set & PUMP_INTFINFO_HAS_LEASE) && +- (closest == -1 || +- (intf[closest].renewAt > intf[i].renewAt))) ++ if (closest == -1 || (intf[closest].renewAt > intf[i].renewAt)) + closest = i; ++ } + if (closest != -1) { + tv.tv_sec = intf[closest].renewAt - pumpUptime(); + if (tv.tv_sec <= 0) { +@@ -434,13 +483,6 @@ + */ + if ((intf[closest].renewAt = pumpUptime() + 30) > + intf[closest].leaseExpiration) { +- o = overrides; +- while (*o->intf.device && +- strcmp(o->intf.device,cmd.u.start.device)) +- o++; +- +- if (!*o->intf.device) o = overrides; +- + intf[closest].set &= ~PUMP_INTFINFO_HAS_LEASE; + intf[closest].set |= PUMP_INTFINFO_NEEDS_NEWLEASE; + +@@ -450,39 +492,23 @@ + intf[closest].reqLease, + intf[closest].set & PUMP_NETINFO_HAS_HOSTNAME + ? intf[closest].hostname : NULL, +- intf + closest, o)) { ++ intf + closest, &intf[closest].override)) { + +- /* failed to get a new lease, so try +- * again in 30 seconds +- */ +- intf[closest].renewAt = pumpUptime() + 30; +-#if 0 +- /* ifdef this out since we now try more than once to get +- * a new lease and don't, therefore, want to remove the interface +- */ +- +- if (numInterfaces == 1) { +- callScript(o->script, PUMP_SCRIPT_DOWN, +- &intf[closest]); +- syslog(LOG_INFO, +- "terminating as there are no " +- "more devices under management"); +- exit(0); +- } +- +- intf[i] = intf[numInterfaces - 1]; +- numInterfaces--; +-#endif ++ /* failed to get a new lease, so try ++ * again in 30 seconds ++ */ ++ intf[closest].renewAt = pumpUptime() + 30; ++ killLease(intf + closest); + } else { ++ killLease(intf + closest); + intf[closest].set &= + ~PUMP_INTFINFO_NEEDS_NEWLEASE; +- callScript(o->script, PUMP_SCRIPT_NEWLEASE, +- &intf[closest]); ++ gotNewLease(intf + closest); + } + } + } else { +- callScript(o->script, PUMP_SCRIPT_RENEWAL, +- &intf[closest]); ++ callScript(intf[closest].override.script, ++ PUMP_SCRIPT_RENEWAL, &intf[closest]); + callIfupPost(&intf[closest]); + } + +@@ -493,6 +519,48 @@ + + if (select(sock + 1, &fds, NULL, NULL, + closest != -1 ? &tv : NULL) > 0) { ++ if (!FD_ISSET(sock, &fds)) { ++ char c = 0; ++ struct sockaddr_in addr_in; ++ socklen_t len; ++ struct stat buf; ++ ++ if (!FD_ISSET(sock_in, &fds)) ++ continue; ++ ++ conn = accept(sock_in, (struct sockaddr *) &addr_in, &len); ++ ++ if (!stat(CONTROLSOCKET, &buf)) ++ goto out; ++ ++ close(sock); ++ ++ addr.sun_family = AF_UNIX; ++ strcpy(addr.sun_path, CONTROLSOCKET); ++ addrLength = sizeof(addr.sun_family) + strlen(addr.sun_path); ++ ++ if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { ++ syslog(LOG_ERR, "failed to create socket: %s\n", ++ strerror(errno)); ++ exit(1); ++ } ++ ++ umask(077); ++ if (bind(sock, (struct sockaddr *) &addr, addrLength)) { ++ syslog(LOG_ERR, "bind to %s failed: %s\n", CONTROLSOCKET, ++ strerror(errno)); ++ exit(1); ++ } ++ umask(033); ++ ++ listen(sock, 5); ++ ++ write(conn, &c, 1); ++ ++out: ++ close(conn); ++ continue; ++ } + conn = accept(sock, (struct sockaddr *) &addr, &addrLength); + + if (read(conn, &cmd, sizeof(cmd)) != sizeof(cmd)) { +@@ -504,7 +572,7 @@ + case CMD_DIE: + for (i = 0; i < numInterfaces; i++) { + pumpDhcpRelease(intf + i); +- callScript(o->script, PUMP_SCRIPT_DOWN, &intf[i]); ++ killLease(intf + i); + } + + syslog(LOG_INFO, "terminating at root's request"); +@@ -515,35 +583,20 @@ + exit(0); + + case CMD_STARTIFACE: +- o = overrides; +- while (*o->intf.device && +- strcmp(o->intf.device, cmd.u.start.device)) { +- o++; ++ if (numInterfaces >= maxIntf) { ++ syslog(LOG_INFO, "too many interfaces"); ++ cmd.u.result = 1; ++ break; + } +- if (!*o->intf.device) o = overrides; + + if (pumpDhcpRun(cmd.u.start.device, + cmd.u.start.flags, cmd.u.start.reqLease, + cmd.u.start.reqHostname[0] ? + cmd.u.start.reqHostname : NULL, +- intf + numInterfaces, o)) { ++ intf + numInterfaces, &cmd.u.start.override)) { + cmd.u.result = 1; + } else { +- pumpSetupInterface(intf + numInterfaces); +- i = numInterfaces; +- +- syslog(LOG_INFO, "configured interface %s", intf[i].device); +- +- if ((intf[i].set & PUMP_NETINFO_HAS_GATEWAY) && +- !(o->flags & OVERRIDE_FLAG_NOGATEWAY)) +- pumpSetupDefaultGateway(&intf[i].gateway); +- +- setupDns(intf + i, o); +- setupDomain(intf + i, o); +- +- callScript(o->script, PUMP_SCRIPT_NEWLEASE, +- intf + numInterfaces); +- ++ gotNewLease(intf + numInterfaces); + cmd.u.result = 0; + numInterfaces++; + } +@@ -557,7 +610,8 @@ + else { + cmd.u.result = pumpDhcpRenew(intf + i); + if (!cmd.u.result) { +- callScript(o->script, PUMP_SCRIPT_RENEWAL, intf + i); ++ callScript(intf[i].override.script, ++ PUMP_SCRIPT_RENEWAL, intf + i); + callIfupPost(intf + i); + } + } +@@ -570,7 +624,7 @@ + cmd.u.result = RESULT_UNKNOWNIFACE; + else { + cmd.u.result = pumpDhcpRelease(intf + i); +- callScript(o->script, PUMP_SCRIPT_DOWN, intf + i); ++ killLease(intf + i); + if (numInterfaces == 1) { + int j; + cmd.type = CMD_RESULT; +@@ -633,12 +687,16 @@ + exit(0); + } + +-static int openControlSocket(char * configFile, struct pumpOverrideInfo * override) { ++static int openControlSocket(void) { + struct sockaddr_un addr; ++ struct sockaddr_in addr_in; + int sock; ++ int sock_in; + size_t addrLength; + pid_t child; + int status; ++ int error; ++ struct timeval timeout; + + if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) + return -1; +@@ -650,13 +708,44 @@ + if (!connect(sock, (struct sockaddr *) &addr, addrLength)) + return sock; + +- if (errno != ENOENT && errno != ECONNREFUSED) { ++ error = errno; ++ if (error != ENOENT && error != ECONNREFUSED) { + fprintf(stderr, "failed to connect to %s: %s\n", CONTROLSOCKET, +- strerror(errno)); +- close(sock); +- return -1; ++ strerror(error)); ++ goto err; + } + ++ unlink(CONTROLSOCKET); ++ ++ if ((sock_in = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ++ goto err; ++ } ++ ++ addr_in.sin_family = AF_INET; ++ addr_in.sin_addr.s_addr = htonl(INADDR_LOOPBACK); ++ addr_in.sin_port = bootp_client_port; ++ ++ timeout.tv_sec = 1; ++ timeout.tv_usec = 0; ++ setsockopt(sock_in, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)); ++ if (!connect(sock_in, (struct sockaddr *) &addr_in, sizeof(addr_in))) { ++ char c; ++ ++ read(sock_in, &c, 1); ++ close(sock_in); ++ goto again; ++ } ++ ++ error = errno; ++ close(sock_in); ++ if (error != ECONNREFUSED && error != ETIMEDOUT) { ++ fprintf(stderr, "failed to connect to localhost:bootpc: %s\n", ++ strerror(error)); ++ fprintf(stderr, "There might be another pump running!\n"); ++ } ++ ++ addr_in.sin_addr.s_addr = htonl(INADDR_ANY); ++ + if (!(child = fork())) { + close(sock); + +@@ -664,12 +753,28 @@ + close(1); + close(2); + +- if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) { ++ openlog("pumpd", LOG_PID, LOG_DAEMON); ++ ++ if ((sock_in = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ++ syslog(LOG_ERR, "failed to create IP socket: %s\n", ++ strerror(errno)); ++ exit(1); ++ } ++ ++ if (bind(sock_in, (struct sockaddr *) &addr_in, sizeof(addr_in))) { ++ syslog(LOG_ERR, "bind to bootpc/tcp failed: %s\n", ++ strerror(errno)); ++ exit(1); ++ } ++ ++ listen(sock_in, 5); ++ ++ if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + syslog(LOG_ERR, "failed to create socket: %s\n", strerror(errno)); + exit(1); + } + +- unlink(CONTROLSOCKET); ++ chdir("/"); + umask(077); + if (bind(sock, (struct sockaddr *) &addr, addrLength)) { + syslog(LOG_ERR, "bind to %s failed: %s\n", CONTROLSOCKET, +@@ -682,7 +787,8 @@ + + if (fork()) _exit(0); + +- openlog("pumpd", LOG_PID, LOG_DAEMON); ++ setsid(); ++ + { + time_t now,upt; + int updays,uphours,upmins,upsecs; +@@ -700,20 +806,25 @@ + } + } + +- runDaemon(sock, configFile, override); ++ runDaemon(sock, sock_in); + } + ++ close(sock_in); ++ + waitpid(child, &status, 0); + if (!WIFEXITED(status) || WEXITSTATUS(status)) + return -1; + ++again: + if (!connect(sock, (struct sockaddr *) &addr, addrLength)) + return sock; + +- fprintf(stderr, "failed to connect to %s: %s\n", CONTROLSOCKET, ++ fprintf(stderr, "failed to connect to localhost:bootpc: %s\n", + strerror(errno)); + +- return 0; ++err: ++ close(sock); ++ return -1; + } + + void printStatus(struct pumpNetIntf i, char * hostname, char * domain, +@@ -729,8 +840,13 @@ + printf("\tBoot server %s\n", inet_ntoa(i.bootServer)); + printf("\tNext server %s\n", inet_ntoa(i.nextServer)); + +- if (i.set & PUMP_NETINFO_HAS_GATEWAY) +- printf("\tGateway: %s\n", inet_ntoa(i.gateway)); ++ if (i.numGateways) { ++ printf("\tGateway: %s\n", inet_ntoa(i.gateways[0])); ++ printf("\tGateways:"); ++ for (j = 0; j < i.numGateways; j++) ++ printf(" %s", inet_ntoa(i.gateways[j])); ++ printf("\n"); ++ } + + if (i.set & PUMP_INTFINFO_HAS_BOOTFILE) + printf("\tBoot file: %s\n", bootFile); +@@ -802,7 +918,6 @@ + char * hostname = ""; + poptContext optCon; + int rc; +- int ret; + int test = 0; + int flags = 0; + int lease_hrs = 0; +@@ -811,8 +926,11 @@ + int winId = 0; + int release = 0, renew = 0, status = 0, lookupHostname = 0, nodns = 0; + int nogateway = 0, nobootp = 0; ++ int nosetup = 0; ++ int noresolvconf = 0; + struct command cmd, response; + char * configFile = "/etc/pump.conf"; ++ char * script = NULL; + struct pumpOverrideInfo * overrides; + int cont; + struct poptOption options[] = { +@@ -836,14 +954,22 @@ + N_("Release interface"), NULL }, + { "renew", 'R', POPT_ARG_NONE, &renew, 0, + N_("Force immediate lease renewal"), NULL }, ++ { "verbose", 'v', POPT_ARG_NONE, &verbose, 0, ++ N_("Log verbose debug info"), NULL }, + { "status", 's', POPT_ARG_NONE, &status, 0, + N_("Display interface status"), NULL }, + { "no-dns", 'd', POPT_ARG_NONE, &nodns, 0, + N_("Don't update resolv.conf"), NULL }, + { "no-gateway", '\0', POPT_ARG_NONE, &nogateway, 0, + N_("Don't set a gateway for this interface"), NULL }, ++ { "no-setup", '\0', POPT_ARG_NONE, &nosetup, 0, ++ N_("Don't set up anything"), NULL }, ++ { "no-resolvconf", '\0', POPT_ARG_NONE, &noresolvconf, 0, ++ N_("Don't set up resolvconf"), NULL }, + { "no-bootp", '\0', POPT_ARG_NONE, &nobootp, 0, + N_("Ignore non-DHCP BOOTP responses"), NULL }, ++ { "script", '\0', POPT_ARG_STRING, &script, 0, ++ N_("Script to use") }, + { "win-client-ident", '\0', POPT_ARG_NONE, &winId, 0, + N_("Set the client identifier to match Window's") }, + /*{ "test", 't', POPT_ARG_NONE, &test, 0, +@@ -852,6 +978,23 @@ + POPT_AUTOHELP + { NULL, '\0', 0, NULL, 0 } + }; ++#if !UDEB ++ struct servent *servent; ++ ++ servent = getservbyname("bootpc", "udp"); ++ if (!servent) { ++ perror("Cannot resolve bootpc/udp service"); ++ return 1; ++ } ++ bootp_client_port = servent->s_port; ++ ++ servent = getservbyname("bootps", "udp"); ++ if (!servent) { ++ perror("Cannot resolve bootps/udp service"); ++ return 1; ++ } ++ bootp_server_port = servent->s_port; ++#endif + + memset(&cmd, 0, sizeof(cmd)); + memset(&response, 0, sizeof(response)); +@@ -871,6 +1014,11 @@ + return 1; + } + ++ if (script && strlen(script) > sizeof(overrides->script)) { ++ fprintf(stderr, _("%s: --script argument is too long\n"), PROGNAME); ++ return 1; ++ } ++ + /* make sure the config file is parseable before going on any further */ + if (readPumpConfig(configFile, &overrides)) return 1; + +@@ -885,16 +1033,6 @@ + flags |= PUMP_FLAG_WINCLIENTID; + if (lookupHostname) + flags |= PUMP_FLAG_FORCEHNLOOKUP; +- if (nodns) +- overrides->flags |= OVERRIDE_FLAG_NODNS; +- if (nobootp) +- overrides->flags |= OVERRIDE_FLAG_NOBOOTP; +- if (nogateway) +- overrides->flags |= OVERRIDE_FLAG_NOGATEWAY; +- +- cont = openControlSocket(configFile, overrides); +- if (cont < 0) +- exit(1); + + if (killDaemon) { + cmd.type = CMD_DIE; +@@ -908,6 +1046,8 @@ + cmd.type = CMD_STOPIFACE; + strcpy(cmd.u.stop.device, device); + } else { ++ struct pumpOverrideInfo * o; ++ + cmd.type = CMD_STARTIFACE; + strcpy(cmd.u.start.device, device); + cmd.u.start.flags = flags; +@@ -916,19 +1056,47 @@ + else + cmd.u.start.reqLease = lease; + strcpy(cmd.u.start.reqHostname, hostname); ++ ++ o = overrides + 1; ++ while (*o->device && strcmp(o->device, device)) ++ o++; ++ if (!*o->device) ++ o = overrides; ++ ++ if (nodns) ++ o->flags |= OVERRIDE_FLAG_NODNS; ++ if (nobootp) ++ o->flags |= OVERRIDE_FLAG_NOBOOTP; ++ if (nogateway) ++ o->flags |= OVERRIDE_FLAG_NOGATEWAY; ++ if (nosetup) ++ o->flags |= ++ OVERRIDE_FLAG_NOSETUP | ++ OVERRIDE_FLAG_NODNS | ++ OVERRIDE_FLAG_NOGATEWAY | ++ OVERRIDE_FLAG_NONISDOMAIN; ++ if (noresolvconf) ++ o->flags |= OVERRIDE_FLAG_NORESOLVCONF; ++ if (script) ++ strcpy(o->script, script); ++ ++ memcpy(&cmd.u.start.override, o, sizeof(*o)); + } + +- ret = write(cont, &cmd, sizeof(cmd)); +- ret = read(cont, &response, sizeof(response)); ++ free(overrides); + +- if (response.type == CMD_RESULT && response.u.result && +- cmd.type == CMD_STARTIFACE) { +- cont = openControlSocket(configFile, overrides); +- if (cont < 0) +- exit(1); +- ret = write(cont, &cmd, sizeof(cmd)); +- ret = read(cont, &response, sizeof(response)); ++again: ++ cont = openControlSocket(); ++ if (cont < 0) ++ exit(1); ++ ++ if (write(cont, &cmd, sizeof(cmd)) < 0) { ++retry: ++ close(cont); ++ goto again; + } ++ if (read(cont, &response, sizeof(response)) <= 0) ++ goto retry; + + if (response.type == CMD_RESULT) { + if (response.u.result) { +--- pump-0.8.24.orig/pump.h ++++ pump-0.8.24/pump.h +@@ -6,6 +6,7 @@ + #include <arpa/inet.h> + #include <sys/time.h> + ++#define MAX_GATEWAYS 3 + #define MAX_DNS_SERVERS 3 + #define MAX_LOG_SERVERS 3 + #define MAX_LPR_SERVERS 3 +@@ -42,14 +43,32 @@ + #define PUMP_FLAG_NOCONFIG (1 << 1) + #define PUMP_FLAG_FORCEHNLOOKUP (1 << 2) + #define PUMP_FLAG_WINCLIENTID (1 << 3) ++#define PUMP_FLAG_NOSETUP (1 << 4) + + #define PUMP_SCRIPT_NEWLEASE 1 + #define PUMP_SCRIPT_RENEWAL 2 + #define PUMP_SCRIPT_DOWN 3 + ++#define OVERRIDE_FLAG_NODNS (1 << 0) ++#define OVERRIDE_FLAG_NONISDOMAIN (1 << 1) ++#define OVERRIDE_FLAG_NOGATEWAY (1 << 2) ++#define OVERRIDE_FLAG_NOBOOTP (1 << 3) ++#define OVERRIDE_FLAG_NOSETUP (1 << 4) ++#define OVERRIDE_FLAG_NORESOLVCONF (1 << 5) ++ ++struct pumpOverrideInfo { ++ char device[10]; ++ char searchPath[1024]; ++ int flags; ++ int numRetries; ++ int timeout; ++ char script[1024]; ++}; ++ + /* all of these in_addr things are in network byte order! */ + struct pumpNetIntf { + char device[10]; ++ int ifindex; + int set; + struct in_addr ip, netmask, broadcast, network; + struct in_addr bootServer, nextServer; +@@ -58,13 +77,14 @@ + int reqLease; /* in seconds */ + char * hostname, * domain; /* dynamically allocated */ + char * nisDomain; /* dynamically allocated */ +- struct in_addr gateway; ++ struct in_addr gateways[MAX_GATEWAYS]; + struct in_addr logServers[MAX_LOG_SERVERS]; + struct in_addr lprServers[MAX_LPR_SERVERS]; + struct in_addr ntpServers[MAX_NTP_SERVERS]; + struct in_addr xfntServers[MAX_XFS_SERVERS]; + struct in_addr xdmServers[MAX_XDM_SERVERS]; + struct in_addr dnsServers[MAX_DNS_SERVERS]; ++ int numGateways; + int numLog; + int numLpr; + int numNtp; +@@ -72,6 +92,7 @@ + int numXdm; + int numDns; + int flags; ++ struct pumpOverrideInfo override; + + /* these don't really belong here, but anaconda's about the only thing + * that uses pump and this stuff is needed for the loader on s390 */ +@@ -79,20 +100,6 @@ + struct in_addr ptpaddr; /* ptp address for ptp devs like ctc */ + }; + +-#define OVERRIDE_FLAG_NODNS (1 << 0) +-#define OVERRIDE_FLAG_NONISDOMAIN (1 << 1) +-#define OVERRIDE_FLAG_NOGATEWAY (1 << 2) +-#define OVERRIDE_FLAG_NOBOOTP (1 << 3) +- +-struct pumpOverrideInfo { +- struct pumpNetIntf intf; +- char * searchPath; +- int flags; +- int numRetries; +- int timeout; +- char * script; +-}; +- + void pumpInitOverride(struct pumpOverrideInfo * override); + char * pumpDhcpClassRun(char * device, int flags, int lease, + char * reqHostname, char * class, struct pumpNetIntf * intf, +@@ -103,7 +110,7 @@ + char * pumpSetupInterface(struct pumpNetIntf * intf); + /* setup an interface for sending a broadcast -- uses all 0's address */ + char * pumpPrepareInterface(struct pumpNetIntf * intf, int s); +-char * pumpDisableInterface(char * device); ++char * pumpDisableInterface(struct pumpNetIntf * intf); + int pumpDhcpRenew(struct pumpNetIntf * intf); + int pumpDhcpRelease(struct pumpNetIntf * intf); + int pumpSetupDefaultGateway(struct in_addr * gw); +@@ -113,5 +120,14 @@ + #define RESULT_FAILED 1 + #define RESULT_UNKNOWNIFACE 2 + ++extern int verbose; ++#if UDEB ++#define bootp_client_port htons(68) ++#define bootp_server_port htons(67) ++#else ++extern int bootp_client_port; ++extern int bootp_server_port; ++#endif ++ + + #endif diff --git a/packages/pump/pump_0.8.24.bb b/packages/pump/pump_0.8.24.bb new file mode 100644 index 0000000000..76fd27d32a --- /dev/null +++ b/packages/pump/pump_0.8.24.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "BOOTP and DHCP client for automatic IP configuration" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "popt" + +S = "${WORKDIR}/pump-${PV}" + +SRC_URI = "http://ftp.de.debian.org/debian/pool/main/p/pump/pump_0.8.24.orig.tar.gz \ + file://debian.patch;patch=1" + +do_compile() { + oe_runmake pump +} + +do_install() { + install -d ${D}${base_sbindir} + install -m 0755 ${S}/pump ${D}${base_sbindir}/pump +} diff --git a/packages/uclibc/uclibc-0.9.29/fic-gta01/.mtn2git_empty b/packages/scummvm/files/om-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/uclibc/uclibc-0.9.29/fic-gta01/.mtn2git_empty +++ b/packages/scummvm/files/om-gta01/.mtn2git_empty diff --git a/packages/scummvm/files/fic-gta01/openmoko-scummvm b/packages/scummvm/files/om-gta01/openmoko-scummvm index e8c5cb3984..e8c5cb3984 100755 --- a/packages/scummvm/files/fic-gta01/openmoko-scummvm +++ b/packages/scummvm/files/om-gta01/openmoko-scummvm diff --git a/packages/slugos-init/files/modulefunctions b/packages/slugos-init/files/modulefunctions index 82fd7681af..02bfccb500 100644 --- a/packages/slugos-init/files/modulefunctions +++ b/packages/slugos-init/files/modulefunctions @@ -6,29 +6,29 @@ loaddiskmods(){ case "$(machine)" in - nslu2) - modprobe ehci-hcd - modprobe ohci-hcd + nslu2) + [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd + [ -d /sys/module/ohci_hcd ] || modprobe ohci-hcd + ;; + nas100d) + [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd + [ -d /sys/module/uhci_hcd ] || modprobe uhci-hcd + [ -d /sys/module/pata_artop ] || modprobe pata-artop + ;; + dsmg600) + [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd + [ -d /sys/module/uhci_hcd ] || modprobe uhci-hcd + [ -d /sys/module/pata_artop ] || modprobe pata-artop ;; - nas100d) - modprobe ehci-hcd - modprobe uhci-hcd - modprobe pata-artop - ;; - dsmg600) - modprobe ehci-hcd - modprobe uhci-hcd - modprobe pata-artop - ;; esac } loadnetmods(){ case "$(machine)" in - dsmg600) - modprobe via-velocity - ;; + dsmg600) + [ -d /sys/module/via_velocity ] || modprobe via-velocity + ;; *) true ;; @@ -36,7 +36,7 @@ loadnetmods(){ } loadnfsmods(){ - modprobe nfs + [ -d /sys/module/nfs ] || modprobe nfs } loadmiscmods(){ diff --git a/packages/slugos-init/files/turnup b/packages/slugos-init/files/turnup index 8d4c3f0f93..c6220077a5 100644 --- a/packages/slugos-init/files/turnup +++ b/packages/slugos-init/files/turnup @@ -490,12 +490,6 @@ boot_rootfs() { return 1 };; *) { echo '#!/bin/sh' -# echo 'modprobe ehci-hcd' -# echo 'modprobe ohci-hcd' -# echo 'modprobe sd_mod' -# echo 'modprobe usb-storage' -# echo 'modprobe ext3' -# echo 'sleep 5' echo 'leds beep' test "$sleep" -gt 0 && echo -n "sleep='$sleep' " test -n "$uuid" && echo -n "UUID='$uuid' " diff --git a/packages/slugos-init/slugos-init_4.8.bb b/packages/slugos-init/slugos-init_4.8.bb index ebb6ff7744..2eca9c9ecf 100644 --- a/packages/slugos-init/slugos-init_4.8.bb +++ b/packages/slugos-init/slugos-init_4.8.bb @@ -4,7 +4,7 @@ PRIORITY = "required" LICENSE = "GPL" DEPENDS = "base-files devio" RDEPENDS = "busybox devio" -PR = "r3" +PR = "r4" SRC_URI = "file://boot/flash \ file://boot/disk \ diff --git a/packages/squid/squid/.mtn2git_empty b/packages/squid/squid/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/squid/squid/.mtn2git_empty diff --git a/packages/squid/squid/fix_epoll_check.patch b/packages/squid/squid/fix_epoll_check.patch new file mode 100644 index 0000000000..8f195277fd --- /dev/null +++ b/packages/squid/squid/fix_epoll_check.patch @@ -0,0 +1,11 @@ +--- squid-2.6.STABLE14.orig/configure.in 2007-07-15 16:21:59.000000000 +0200 ++++ squid-2.6.STABLE14/configure.in 2008-03-25 17:15:53.000000000 +0100 +@@ -2416,7 +2416,7 @@ + + if test -n "$SELECT_TYPE"; then + : # Nothing to do +-elif test "$ac_cv_epoll_works" = "yes" ; then ++elif test "$ac_cv_func_epoll_ctl" = "yes" && "$ac_cv_epoll_works" = "yes" ; then + SELECT_TYPE="epoll" + elif test "$ac_cv_func_kqueue" = "yes" ; then + SELECT_TYPE="kqueue" diff --git a/packages/squid/squid/squid.init b/packages/squid/squid/squid.init new file mode 100644 index 0000000000..61d9de42dd --- /dev/null +++ b/packages/squid/squid/squid.init @@ -0,0 +1,70 @@ +#!/bin/sh +DAEMON=/usr/sbin/squid +NAME=squid +DESC="Squid HTTP proxy" +PIDFILE=/var/run/squid.pid +SQUID_ARGS="-D -sYC" + +test -f $DAEMON || exit 0 + +grepconf() { + w=" " # space tab + sq=/etc/$NAME.conf + # sed is cool. + res=`sed -ne ' + s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p; + t end; + d; + :end q' < $sq` + [ -n "$res" ] || res=$2 + echo "$res" +} + +start() { + owner=nobody + + cdr=`grepconf cache_dir /var/spool/$NAME` + if [ ! -d "$cdr/00" ]; then + mkdir -p $cdr + chown $owner $cdr + $DAEMON -z + fi + + ldr="/var/log/$NAME" + if [ ! -d "$ldr" ]; then + mkdir -p $ldr + chown $owner $ldr + fi + + start-stop-daemon -S -p $PIDFILE -x $DAEMON +} + +stop() { + start-stop-daemon -K -p $PIDFILE -x $DAEMON +} + +case "$1" in + start) + echo -n "Starting $DESC: $NAME... " + start + echo "done." + ;; + stop) + echo -n "Stopping $DESC: $NAME... " + stop + echo "done." + ;; + restart) + echo "Restarting $DESC: $NAME... " + stop + sleep 1 + start + echo "done." + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 diff --git a/packages/squid/squid_2.6.STABLE14.bb b/packages/squid/squid_2.6.STABLE14.bb index beef3ba2b0..10c20c505e 100644 --- a/packages/squid/squid_2.6.STABLE14.bb +++ b/packages/squid/squid_2.6.STABLE14.bb @@ -1,18 +1,36 @@ DESCRIPTION = "Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more" LICENSE = "GPLv2" - +PR = "r1" DEPENDS = "squid-native-${PV}" -SRC_URI = "http://www.squid-cache.org/Versions/v2/2.6/squid-${PV}.tar.bz2" +SRC_URI = "http://www.squid-cache.org/Versions/v2/2.6/squid-${PV}.tar.bz2 \ + file://fix_epoll_check.patch;patch=1 \ + file://squid.init" -inherit autotools +inherit autotools update-rc.d EXTRA_OECONF = "--disable-epoll --disable-nls" +logdir = ${localstatedir}/log/squid +EXTRA_OEMAKE = "\ + DEFAULT_CACHE_LOG=${logdir}/cache.log \ + DEFAULT_ACCESS_LOG=${logdir}/access.log \ + DEFAULT_STORE_LOG=${logdir}/store.log \ + DEFAULT_PID_FILE=${localstatedir}/run/squid.pid \ + DEFAULT_SWAP_DIR=${localstatedir}/spool/squid \ + " + +INITSCRIPT_NAME = "squid" + do_configure_append() { sed -i -e 's|./cf_gen |${STAGING_BINDIR_NATIVE}/cf_gen |g' src/Makefile } +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/squid.init ${D}${sysconfdir}/init.d/squid +} + # this packages the languages better and saves some space, installs # English as errors default and the others in locale package diff --git a/packages/squidview/.mtn2git_empty b/packages/squidview/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/squidview/.mtn2git_empty diff --git a/packages/squidview/squidview_0.72.bb b/packages/squidview/squidview_0.72.bb new file mode 100644 index 0000000000..51dc085587 --- /dev/null +++ b/packages/squidview/squidview_0.72.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Interactive console program which monitors and displays squid logs" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "ncurses" +RDEPENDS = "squid" + +S = "${WORKDIR}/squidview-${PV}" + +SRC_URI = "http://www.rillion.net/squidview/squidview-${PV}.tar.gz" + +inherit autotools diff --git a/packages/tslib/tslib/om-gta01/.mtn2git_empty b/packages/tslib/tslib/om-gta01/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/tslib/tslib/om-gta01/.mtn2git_empty diff --git a/packages/tslib/tslib/fic-gta01/ts.conf b/packages/tslib/tslib/om-gta01/ts.conf index 82f712ef41..82f712ef41 100644 --- a/packages/tslib/tslib/fic-gta01/ts.conf +++ b/packages/tslib/tslib/om-gta01/ts.conf diff --git a/packages/u-boot/u-boot-1.2.0/om-gta01/.mtn2git_empty b/packages/u-boot/u-boot-1.2.0/om-gta01/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/u-boot/u-boot-1.2.0/om-gta01/.mtn2git_empty diff --git a/packages/u-boot/u-boot-1.2.0/fic-gta01/fw_env.config b/packages/u-boot/u-boot-1.2.0/om-gta01/fw_env.config index 9fe07672c5..9fe07672c5 100644 --- a/packages/u-boot/u-boot-1.2.0/fic-gta01/fw_env.config +++ b/packages/u-boot/u-boot-1.2.0/om-gta01/fw_env.config diff --git a/packages/uclibc/uclibc-0.9.29/om-gta01/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/om-gta01/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/om-gta01/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/fic-gta01/uClibc.machine b/packages/uclibc/uclibc-0.9.29/om-gta01/uClibc.machine index 898b73a33b..898b73a33b 100644 --- a/packages/uclibc/uclibc-0.9.29/fic-gta01/uClibc.machine +++ b/packages/uclibc/uclibc-0.9.29/om-gta01/uClibc.machine |