From 2b1e71a99eb85c82e4f5fbe16ad7d99ca250072a Mon Sep 17 00:00:00 2001 From: Mike Westerhof Date: Thu, 6 Apr 2006 03:39:05 +0000 Subject: Unslung: README firmware flashing procedure updated --- .../nslu2-binary-only/unslung-rootfs-2.3r63/README | 75 +++++++++++----------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README index 9e34a42820..27dddeafbf 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README @@ -148,44 +148,43 @@ FIRMWARE INSTALLATION DETAILS Management web pages). 2-a) If you are installing Unslung 6.x onto an NSLU2 unit with Linksys - standard firmware *or* Unslung version 1.x or version 2.x already - installed, flash unslung-6.x.bin as you normally would flash new - firmware (using the web interface "Upgrade Firmware" page). - - 2-b) If you are installing Unslung 6.x onto an NSLU2 unit with Unslung - version 3.x already installed, you must put the NSLU2 into - maintenance mode before you can use the web interface to flash a new - version. Just click the "Enter Maintenance Mode" link on the web - interface "Upgrade Firmware" page, wait for the NSLU2 to reboot, and - then flash the new firmware in the normal manner (using the web - interface "Upgrade Firmware" page). - - 2-c) If you are installing Unslung 6.x onto an NSLU2 unit with Unslung - version 4.x already installed, you must put the NSLU2 into RedBoot - Upgrade Mode before you can upload new firmware. Note that Unslung - version 4.x has an "Enter Maintenance Mode" link on the web interface - "Upgrade Firmware" page, but it does not work, so you will need to - use the instructions at - - http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot - - to access the RedBoot command line, and then type "upgrade" to put - the NSLU2 into RedBoot Upgrade Mode. Then you will need to use the - Linux UpSlug2 tool or the Windows SerComm Upgrade tool to upload the - new firmware. - - 2-d) If you are installing Unslung 6.x onto an NSLU2 unit with version 5.x - or version 6.x already installed, you must first put the NSLU2 into - RedBoot Upgrade Mode. Just click the "Enter Upgrade Mode" link on the - web interface "Upgrade Firmware" page, wait for the NSLU2 to reboot, - and for the Ready/Status LED to begin flashing red and green, and then - use either the Linux UpSlug2 tool or the Windows SerComm Upgrade tool - to upload the new firmware. - - - During firmware flashing, the top LED - Ready/Status - flashes red and - green (approximately 5 minutes, but can be much longer). - - - The NSLU2 will reboot after the flashing is complete. + standard firmware already installed, flash unslung-6.x.bin as you + normally would flash new firmware (using the web interface + "Upgrade Firmware" page). See your NSLU2 user manual for details + if you don't know how to do this. + + - During firmware flashing, the top LED - Ready/Status - flashes + red and green (approximately 5 minutes, but can be much longer). + + - The NSLU2 will reboot after the flashing is complete. + + 2-b) If you are installing Unslung 6.x onto an NSLU2 unit with an + existing version of nslu2-linux.org firmware already installed, + you must first put the NSLU2 into RedBoot Upgrade Mode. + + - The NSLU2 should still be powered off at this point. If not, + shut it down again before proceeding. + + - Using a paper clip, push and hold in the reset button which is + located on the back of the NSLU2 near the power socket. + + - While holding in the reset button, press and release the power + button. + + - Watch the Ready/Status LED, and as soon as it turns red quickly + release the reset button. + + - You should now be in upgrade mode which is indicated by the + Ready/Status LED alternating between red and green. + + - Use either the Linux UpSlug2 tool or the Windows SerComm Upgrade + tool to upload the new firmware - you can find download links at + http://www.nslu2-linux.org/wiki/HowTo/InstallUnslungFirmware + + - During firmware flashing, the top LED - Ready/Status - flashes + red and green (approximately 5 minutes, but can be much longer). + + - The NSLU2 will reboot after the flashing is complete. 3) Shutdown the NSLU2 (again), attach disk(s), and power it back up. -- cgit v1.2.3 From 7d3475348c98e767588d525150e42267ea2d063c Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Mon, 10 Apr 2006 18:28:47 +0000 Subject: udev: move duplicate patches to files/ --- packages/udev/files/fix-alignment.patch | 24 + packages/udev/files/noasmlinkage.patch | 38 ++ packages/udev/files/udevsynthesize.patch | 776 ++++++++++++++++++++++++++++ packages/udev/files/udevsynthesize.sh | 51 ++ packages/udev/udev-063/fix-alignment.patch | 24 - packages/udev/udev-063/noasmlinkage.patch | 38 -- packages/udev/udev-065/fix-alignment.patch | 24 - packages/udev/udev-065/noasmlinkage.patch | 38 -- packages/udev/udev-070/noasmlinkage.patch | 38 -- packages/udev/udev-071/noasmlinkage.patch | 38 -- packages/udev/udev-084/noasmlinkage.patch | 38 -- packages/udev/udev-084/udevsynthesize.patch | 776 ---------------------------- packages/udev/udev-084/udevsynthesize.sh | 51 -- packages/udev/udev-089/.mtn2git_empty | 0 packages/udev/udev-089/flags.patch | 51 ++ packages/udev/udev-089/init | 227 ++++++++ packages/udev/udev-089/local.rules | 28 + packages/udev/udev-089/udev.rules | 98 ++++ 18 files changed, 1293 insertions(+), 1065 deletions(-) create mode 100644 packages/udev/files/fix-alignment.patch create mode 100644 packages/udev/files/noasmlinkage.patch create mode 100644 packages/udev/files/udevsynthesize.patch create mode 100644 packages/udev/files/udevsynthesize.sh delete mode 100644 packages/udev/udev-063/fix-alignment.patch delete mode 100644 packages/udev/udev-063/noasmlinkage.patch delete mode 100644 packages/udev/udev-065/fix-alignment.patch delete mode 100644 packages/udev/udev-065/noasmlinkage.patch delete mode 100644 packages/udev/udev-070/noasmlinkage.patch delete mode 100644 packages/udev/udev-071/noasmlinkage.patch delete mode 100644 packages/udev/udev-084/noasmlinkage.patch delete mode 100644 packages/udev/udev-084/udevsynthesize.patch delete mode 100644 packages/udev/udev-084/udevsynthesize.sh create mode 100644 packages/udev/udev-089/.mtn2git_empty create mode 100644 packages/udev/udev-089/flags.patch create mode 100644 packages/udev/udev-089/init create mode 100644 packages/udev/udev-089/local.rules create mode 100644 packages/udev/udev-089/udev.rules diff --git a/packages/udev/files/fix-alignment.patch b/packages/udev/files/fix-alignment.patch new file mode 100644 index 0000000000..8c7b8b5ac5 --- /dev/null +++ b/packages/udev/files/fix-alignment.patch @@ -0,0 +1,24 @@ +diff --git a/udev_rules_parse.c b/udev_rules_parse.c +--- a/udev_rules_parse.c ++++ b/udev_rules_parse.c +@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule + int valid; + char *linepos; + char *attr; ++ size_t padding; + int retval; + + /* get all the keys */ +@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule + + /* grow buffer and add rule */ + rule_size = sizeof(struct udev_rule) + rule->bufsize; ++ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); ++ dbg("add %zi padding bytes", padding); ++ rule_size += padding; ++ rule->bufsize += padding; ++ + rules->buf = realloc(rules->buf, rules->bufsize + rule_size); + if (!rules->buf) { + err("realloc failed"); + diff --git a/packages/udev/files/noasmlinkage.patch b/packages/udev/files/noasmlinkage.patch new file mode 100644 index 0000000000..0d8e854c0e --- /dev/null +++ b/packages/udev/files/noasmlinkage.patch @@ -0,0 +1,38 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- udev-062/udev.c~noasmlinkage.patch ++++ udev-062/udev.c +@@ -54,7 +54,7 @@ + } + #endif + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: +--- udev-062/udevd.c~noasmlinkage.patch ++++ udev-062/udevd.c +@@ -639,7 +639,7 @@ + return msg; + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + int rc; + +--- udev-062/udevstart.c~noasmlinkage.patch ++++ udev-062/udevstart.c +@@ -323,7 +323,7 @@ + exec_list(&device_list); + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: diff --git a/packages/udev/files/udevsynthesize.patch b/packages/udev/files/udevsynthesize.patch new file mode 100644 index 0000000000..7811188485 --- /dev/null +++ b/packages/udev/files/udevsynthesize.patch @@ -0,0 +1,776 @@ +--- udev-081/udevsynthesize.c.orig 2006-01-29 12:22:45.000000000 +0100 ++++ udev-081/udevsynthesize.c 2006-01-29 12:22:40.000000000 +0100 +@@ -0,0 +1,763 @@ ++/* ++ * udevcoldplug.c ++ * ++ * Copyright (C) 2005 SUSE Linux Products GmbH ++ * ++ * Author: ++ * Kay Sievers ++ * ++ * Synthesize kernel events from sysfs information and pass them ++ * to the udevd daemon. ++ * ++ * 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 version 2 of the License. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 675 Mass Ave, Cambridge, MA 02139, USA. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "udev_libc_wrapper.h" ++#include "udev.h" ++#include "udevd.h" ++#include "udev_version.h" ++#include "logging.h" ++ ++#include "list.h" ++ ++#ifndef DT_DIR ++#define DT_DIR 4 ++#endif ++ ++static const char *udev_log_str; ++static int udevd_sock = -1; ++ ++#ifdef USE_LOG ++void log_message(int priority, const char *format, ...) ++{ ++ va_list args; ++ ++ if (priority > udev_log_priority) ++ return; ++ ++ va_start(args, format); ++ vsyslog(priority, format, args); ++ va_end(args); ++} ++#endif ++ ++struct device { ++ struct list_head node; ++ struct udevd_msg msg; ++ size_t bufpos; ++ char *path; ++}; ++ ++static dev_t read_devt(const char *path) ++{ ++ char filename[PATH_SIZE]; ++ char majorminor[64]; ++ unsigned int major, minor; ++ ssize_t count; ++ int fd; ++ ++ snprintf(filename, sizeof(filename), "%s/%s", path, "dev"); ++ filename[sizeof(filename)-1] = '\0'; ++ ++ fd = open(filename, O_RDONLY); ++ if (fd < 0) ++ return 0; ++ ++ count = read(fd, majorminor, sizeof(majorminor)); ++ close(fd); ++ majorminor[count] = '\0'; ++ if (sscanf(majorminor, "%u:%u", &major, &minor) != 2) ++ return 0; ++ dbg("found major=%d, minor=%d", major, minor); ++ ++ return makedev(major, minor); ++} ++ ++static ssize_t read_file(const char *directory, const char *file, char *str, size_t len) ++{ ++ char filename[PATH_SIZE]; ++ ssize_t count; ++ int fd; ++ ++ memset(filename, 0, sizeof(filename)); ++ snprintf(filename, sizeof(filename), "%s/%s", directory, file); ++ filename[sizeof(filename)-1] = '\0'; ++ ++ fd = open(filename, O_RDONLY); ++ if (fd < 0) ++ return -1; ++ ++ count = read(fd, str, len-1); ++ close(fd); ++ ++ if (count > (ssize_t)len) ++ count = len; ++ str[count-1] = '\0'; ++ ++ return count; ++} ++ ++static ssize_t read_link(const char *directory, const char *file, char *str, size_t size) ++{ ++ char filename[PATH_SIZE]; ++ char target[PATH_SIZE]; ++ int len; ++ char *back; ++ char *strip; ++ int level = 1; ++ ++ snprintf(filename, sizeof(filename), "%s/%s", directory, file); ++ filename[sizeof(filename)-1] = '\0'; ++ ++ len = readlink(filename, target, sizeof(target)-1); ++ if (len < 0) ++ return -1; ++ target[len] = '\0'; ++ ++ back = target; ++ while (strncmp(back, "../", 3) == 0) { ++ back += 3; ++ level++; ++ } ++ while(level--) { ++ strip = strrchr(filename, '/'); ++ if (!strip) ++ return -1; ++ strip[0] = '\0'; ++ } ++ ++ snprintf(str, size, "%s/%s", filename, back); ++ str[size-1] = '\0'; ++ ++ return len; ++} ++ ++static char *add_env_key(struct device *device, const char *key, const char *value) ++{ ++ size_t pos = device->bufpos; ++ device->bufpos += sprintf(&device->msg.envbuf[device->bufpos], "%s=%s", key, value)+1; ++ return &device->msg.envbuf[pos]; ++} ++ ++static struct device *device_create(const char *path, const char *subsystem, dev_t devt) ++{ ++ struct device *device; ++ const char *devpath = &path[strlen(sysfs_path)]; ++ char target[PATH_SIZE]; ++ ++ device = malloc(sizeof(struct device)); ++ if (device == NULL) { ++ dbg("error malloc"); ++ return NULL; ++ } ++ memset(device, 0x00, sizeof(struct device)); ++ ++ device->path = add_env_key(device, "DEVPATH", devpath); ++ device->path += strlen("DEVPATH="); ++ add_env_key(device, "SUBSYSTEM", subsystem); ++ add_env_key(device, "ACTION", "add"); ++ add_env_key(device, "UDEV_COLDPLUG", "1"); ++ ++ if (major(devt)) { ++ char number[32]; ++ sprintf(number, "%u", major(devt)); ++ add_env_key(device, "MAJOR", number); ++ sprintf(number, "%u", minor(devt)); ++ add_env_key(device, "MINOR", number); ++ } ++ ++ if (strncmp(devpath, "/block/", strlen("/block/")) == 0 || ++ strncmp(devpath, "/class/", strlen("/class/")) == 0) { ++ char physpath[PATH_SIZE]; ++ ++ if (read_link(path, "device", physpath, sizeof(physpath)) > (ssize_t)strlen(sysfs_path)) { ++ add_env_key(device, "PHYSDEVPATH", &physpath[strlen(sysfs_path)]); ++ if (read_link(physpath, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { ++ char *pos = strrchr(target, '/'); ++ if (pos) ++ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); ++ } ++ if (read_link(physpath, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { ++ char *pos = strrchr(target, '/'); ++ if (pos) ++ add_env_key(device, "PHYSDEVBUS", &pos[1]); ++ } ++ } ++ } else if (strncmp(devpath, "/devices/", strlen("/devices/")) == 0) { ++ if (read_link(path, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { ++ char *pos = strrchr(target, '/'); ++ if (pos) ++ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); ++ } ++ if (read_link(path, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { ++ char *pos = strrchr(target, '/'); ++ if (pos) ++ add_env_key(device, "PHYSDEVBUS", &pos[1]); ++ } ++ } ++ ++ return device; ++} ++ ++static int device_list_insert(struct list_head *device_list, struct device *device) ++{ ++ struct device *loop_device; ++ ++ dbg("insert: '%s'", device->path); ++ ++ /* sort files in lexical order */ ++ list_for_each_entry(loop_device, device_list, node) ++ if (strcmp(loop_device->path, device->path) > 0) ++ break; ++ ++ list_add_tail(&device->node, &loop_device->node); ++ ++ return 0; ++} ++ ++static int add_device_udevd(struct device *device) ++{ ++ size_t msg_len; ++ struct sockaddr_un saddr; ++ socklen_t addrlen; ++ int retval; ++ ++ memset(&saddr, 0x00, sizeof(struct sockaddr_un)); ++ saddr.sun_family = AF_LOCAL; ++ /* use abstract namespace for socket path */ ++ strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH); ++ addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1; ++ ++ strcpy(device->msg.magic, UDEV_MAGIC); ++ device->msg.type = UDEVD_UEVENT_UDEVSEND; ++ ++ msg_len = offsetof(struct udevd_msg, envbuf) + device->bufpos; ++ dbg("msg_len=%i", msg_len); ++ ++ retval = sendto(udevd_sock, &device->msg, msg_len, 0, (struct sockaddr *)&saddr, addrlen); ++ if (retval < 0) ++ return -1; ++ ++ return 0; ++} ++ ++static void exec_list(struct list_head *device_list, const char *first[], const char *last[]) ++{ ++ struct device *loop_device; ++ struct device *tmp_device; ++ int i; ++ ++ /* handle the "first" type devices first */ ++ if (first) ++ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { ++ for (i = 0; first[i] != NULL; i++) { ++ if (strncmp(loop_device->path, first[i], strlen(first[i])) == 0) { ++ add_device_udevd(loop_device); ++ list_del(&loop_device->node); ++ free(loop_device); ++ break; ++ } ++ } ++ } ++ ++ /* handle the devices we are allowed to, excluding the "last" type devices */ ++ if (last) ++ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { ++ int found = 0; ++ for (i = 0; last[i] != NULL; i++) { ++ if (strncmp(loop_device->path, last[i], strlen(last[i])) == 0) { ++ found = 1; ++ break; ++ } ++ } ++ if (found) ++ continue; ++ ++ add_device_udevd(loop_device); ++ list_del(&loop_device->node); ++ free(loop_device); ++ } ++ ++ /* handle the rest of the devices */ ++ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { ++ add_device_udevd(loop_device); ++ list_del(&loop_device->node); ++ free(loop_device); ++ } ++} ++ ++static int udev_scan_class(void) ++{ ++ char base[PATH_SIZE]; ++ DIR *dir; ++ struct dirent *dent; ++ LIST_HEAD(device_list); ++ ++ /* we want /dev/null and /dev/console first */ ++ const char *first[] = { ++ "/class/mem", ++ "/class/tty", ++ NULL, ++ }; ++ ++ snprintf(base, sizeof(base), "%s/class", sysfs_path); ++ base[sizeof(base)-1] = '\0'; ++ ++ dir = opendir(base); ++ if (!dir) ++ return -1; ++ ++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { ++ char dirname[PATH_SIZE]; ++ DIR *dir2; ++ struct dirent *dent2; ++ ++ if (dent->d_name[0] == '.') ++ continue; ++ ++ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); ++ dirname[sizeof(dirname)-1] = '\0'; ++ ++ dir2 = opendir(dirname); ++ if (!dir2) ++ continue; ++ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { ++ char dirname2[PATH_SIZE]; ++ struct device *device; ++ dev_t devt; ++ ++ if (dent2->d_name[0] == '.') ++ continue; ++ if (dent2->d_type != DT_DIR) ++ continue; ++ ++ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); ++ dirname2[sizeof(dirname2)-1] = '\0'; ++ devt = read_devt(dirname2); ++ device = device_create(dirname2, dent->d_name, devt); ++ ++ if (strcmp(dent->d_name, "net") == 0 || ++ strcmp(dent->d_name, "bluetooth") == 0) { ++ add_env_key(device, "INTERFACE", dent2->d_name); ++ } else if (strcmp(dent->d_name, "pcmcia_socket") == 0 && ++ strlen(dent->d_name) > 14) { ++ add_env_key(device, "SOCKET_NO", ++ dent2->d_name + 14); ++ } ++ ++ device_list_insert(&device_list, device); ++ } ++ closedir(dir2); ++ } ++ closedir(dir); ++ exec_list(&device_list, first, NULL); ++ ++ return 0; ++} ++ ++static int udev_scan_block(void) ++{ ++ char base[PATH_SIZE]; ++ DIR *dir; ++ struct dirent *dent; ++ LIST_HEAD(device_list); ++ ++ /* dm wants to have the block devices around before it */ ++ const char *last[] = { ++ "/block/dm", ++ NULL, ++ }; ++ ++ snprintf(base, sizeof(base), "%s/block", sysfs_path); ++ base[sizeof(base)-1] = '\0'; ++ ++ dir = opendir(base); ++ if (!dir) ++ return -1; ++ ++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { ++ char dirname[PATH_SIZE]; ++ struct device *device; ++ struct dirent *dent2; ++ DIR *dir2; ++ dev_t devt; ++ ++ if (dent->d_name[0] == '.') ++ continue; ++ if (dent->d_type != DT_DIR) ++ continue; ++ ++ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); ++ dirname[sizeof(dirname)-1] = '\0'; ++ devt = read_devt(dirname); ++ if (major(devt)) { ++ device = device_create(dirname, "block", devt); ++ device_list_insert(&device_list, device); ++ } ++ ++ /* look for partitions */ ++ dir2 = opendir(dirname); ++ if (!dir2) ++ continue; ++ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { ++ char dirname2[PATH_SIZE]; ++ ++ if (dent2->d_name[0] == '.') ++ continue; ++ if (dent2->d_type != DT_DIR) ++ continue; ++ ++ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); ++ dirname2[sizeof(dirname2)-1] = '\0'; ++ devt = read_devt(dirname2); ++ if (major(devt)) { ++ device = device_create(dirname2, "block", devt); ++ device_list_insert(&device_list, device); ++ continue; ++ } ++ } ++ closedir(dir2); ++ } ++ closedir(dir); ++ exec_list(&device_list, NULL, last); ++ ++ return 0; ++} ++ ++static int pci_handler(struct device *device) ++{ ++ char path[PATH_SIZE]; ++ char value[PATH_SIZE]; ++ char vendor[PATH_SIZE]; ++ char product[PATH_SIZE]; ++ const char *name; ++ ++ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); ++ path[sizeof(path)-1] = '\0'; ++ ++ if (read_file(path, "modalias", value, sizeof(value)) > 0) ++ add_env_key(device, "MODALIAS", value); ++ ++ name = strrchr(device->path, '/'); ++ if (name) ++ add_env_key(device, "PCI_SLOT_NAME", &name[1]); ++ ++ if (read_file(path, "class", value, sizeof(value)) > 0) ++ add_env_key(device, "PCI_CLASS", &value[2]); ++ ++ if (read_file(path, "vendor", vendor, sizeof(vendor)) > 0 && ++ read_file(path, "device", product, sizeof(product)) > 0) { ++ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "PCI_ID", value); ++ } ++ ++ if (read_file(path, "subsystem_vendor", vendor, sizeof(vendor)) > 0 && ++ read_file(path, "subsystem_device", product, sizeof(product)) > 0) { ++ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "PCI_SUBSYS_ID", value); ++ } ++ ++ return 0; ++} ++ ++static int usb_handler(struct device *device) ++{ ++ char path[PATH_SIZE]; ++ char value[PATH_SIZE]; ++ char str1[PATH_SIZE]; ++ char str2[PATH_SIZE]; ++ char str3[PATH_SIZE]; ++ unsigned int int1; ++ unsigned int int2; ++ unsigned int int3; ++ char *pos; ++ ++ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); ++ path[sizeof(path)-1] = '\0'; ++ ++ /* device events have : in their directory name */ ++ pos = strrchr(path, '/'); ++ if (!strchr(pos, ':')) ++ return 0; /* and do not have other variables */ ++ ++ if (read_file(path, "modalias", value, sizeof(value)) > 0) ++ add_env_key(device, "MODALIAS", value); ++ ++ if (read_file(path, "bInterfaceClass", str1, sizeof(str1)) > 0 && ++ read_file(path, "bInterfaceSubClass", str2, sizeof(str2)) > 0 && ++ read_file(path, "bInterfaceProtocol", str3, sizeof(str3)) > 0) { ++ int1 = (int) strtol(str1, NULL, 16); ++ int2 = (int) strtol(str2, NULL, 16); ++ int3 = (int) strtol(str3, NULL, 16); ++ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "INTERFACE", value); ++ } ++ ++ /* move to the parent directory */ ++ pos[0] = '\0'; ++ ++ if (read_file(path, "idVendor", str1, sizeof(str1)) > 0 && ++ read_file(path, "idProduct", str2, sizeof(str2)) > 0 && ++ read_file(path, "bcdDevice", str3, sizeof(str3)) > 0) { ++ int1 = (int) strtol(str1, NULL, 16); ++ int2 = (int) strtol(str2, NULL, 16); ++ int3 = (int) strtol(str3, NULL, 16); ++ snprintf(value, sizeof(value), "%x/%x/%x", int1, int2, int3); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "PRODUCT", value); ++ } ++ ++ if (read_file(path, "bDeviceClass", str1, sizeof(str1)) > 0 && ++ read_file(path, "bDeviceSubClass", str2, sizeof(str2)) > 0 && ++ read_file(path, "bDeviceProtocol", str3, sizeof(str3)) > 0) { ++ int1 = (int) strtol(str1, NULL, 16); ++ int2 = (int) strtol(str2, NULL, 16); ++ int3 = (int) strtol(str3, NULL, 16); ++ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "TYPE", value); ++ } ++ ++ if (read_file(path, "devnum", str2, sizeof(str2)) > 0) { ++ pos = strrchr(path, 'b'); ++ int1 = (int) strtol(pos + 1, NULL, 16); ++ int2 = (int) strtol(str2, NULL, 16); ++ snprintf(value, sizeof(value), ++ "/proc/bus/usb/%03d/%03d", int1, int2); ++ path[sizeof(value)-1] = '\0'; ++ add_env_key(device, "DEVICE", value); ++ } ++ ++ return 0; ++} ++ ++static int serio_handler(struct device *device) ++{ ++ char path[PATH_SIZE]; ++ char value[PATH_SIZE]; ++ ++ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); ++ path[sizeof(path)-1] = '\0'; ++ ++ if (read_file(path, "modalias", value, sizeof(value)) > 0) ++ add_env_key(device, "MODALIAS", value); ++ ++ if (read_file(path, "id/type", value, sizeof(value)) > 0) ++ add_env_key(device, "SERIO_TYPE", value); ++ ++ if (read_file(path, "id/proto", value, sizeof(value)) > 0) ++ add_env_key(device, "SERIO_PROTO", value); ++ ++ if (read_file(path, "id/id", value, sizeof(value)) > 0) ++ add_env_key(device, "SERIO_ID", value); ++ ++ if (read_file(path, "id/extra", value, sizeof(value)) > 0) ++ add_env_key(device, "SERIO_EXTRA", value); ++ ++ return 0; ++} ++ ++static int ccw_handler(struct device *device) ++{ ++ char path[PATH_SIZE]; ++ char value[PATH_SIZE], *tmp; ++ ++ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); ++ path[sizeof(path)-1] = '\0'; ++ ++ if (read_file(path, "modalias", value, sizeof(value)) > 0) ++ add_env_key(device, "MODALIAS", value); ++ ++ if (read_file(path, "cutype", value, sizeof(value)) > 0) { ++ value[4] = 0; ++ tmp = &value[5]; ++ add_env_key(device, "CU_TYPE", value); ++ add_env_key(device, "CU_MODEL", tmp); ++ } ++ ++ if (read_file(path, "devtype", value, sizeof(value)) > 0) { ++ if (value[0] == 'n') { ++ add_env_key(device, "DEV_TYPE", "0000"); ++ add_env_key(device, "DEV_MODEL", "00"); ++ } ++ else { ++ value[4] = 0; ++ tmp = &value[5]; ++ add_env_key(device, "DEV_TYPE", value); ++ add_env_key(device, "DEV_MODEL", tmp); ++ } ++ } ++ ++ return 0; ++} ++ ++static int modalias_handler(struct device *device) ++{ ++ char path[PATH_SIZE]; ++ char value[PATH_SIZE]; ++ ++ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); ++ path[sizeof(path)-1] = '\0'; ++ ++ if (read_file(path, "modalias", value, sizeof(value)) > 0) ++ add_env_key(device, "MODALIAS", value); ++ ++ return 0; ++} ++ ++static int udev_scan_bus(const char *bus, int bus_handler(struct device *device)) ++{ ++ char base[PATH_SIZE]; ++ DIR *dir; ++ struct dirent *dent; ++ LIST_HEAD(device_list); ++ ++ snprintf(base, sizeof(base), "%s/bus/%s/devices", sysfs_path, bus); ++ base[sizeof(base)-1] = '\0'; ++ ++ dir = opendir(base); ++ if (!dir) ++ return -1; ++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { ++ char devpath[PATH_SIZE]; ++ struct device *device; ++ ++ if (dent->d_name[0] == '.') ++ continue; ++ ++ if (read_link(base, dent->d_name, devpath, sizeof(devpath)) < 0) ++ continue; ++ ++ device = device_create(devpath, bus, makedev(0, 0)); ++ if (bus_handler) { ++ if (bus_handler(device) < 0) { ++ dbg("'%s' bus handler skipped event", devpath); ++ free(device); ++ continue; ++ } ++ } ++ ++ device_list_insert(&device_list, device); ++ } ++ closedir(dir); ++ exec_list(&device_list, NULL, NULL); ++ ++ return 0; ++} ++ ++static int udev_scan_devices(void) ++{ ++ char base[PATH_SIZE]; ++ DIR *dir; ++ struct dirent *dent; ++ ++ snprintf(base, sizeof(base), "%s/bus", sysfs_path); ++ base[sizeof(base)-1] = '\0'; ++ ++ dir = opendir(base); ++ if (!dir) ++ return -1; ++ ++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { ++ if (dent->d_name[0] == '.') ++ continue; ++ if (dent->d_type != DT_DIR) ++ continue; ++ ++ /* add bus specific env values */ ++ if (strcmp(dent->d_name, "pci") == 0) ++ udev_scan_bus("pci", pci_handler); ++ else if (strcmp(dent->d_name, "usb") == 0) ++ udev_scan_bus("usb", usb_handler); ++ else if (strcmp(dent->d_name, "serio") == 0) ++ udev_scan_bus("serio", serio_handler); ++ else if (strcmp(dent->d_name, "ccw") == 0) ++ udev_scan_bus("ccw", ccw_handler); ++ else ++ udev_scan_bus(dent->d_name, modalias_handler); ++ } ++ closedir(dir); ++ ++ return 0; ++} ++ ++int main(int argc, char *argv[], char *envp[]) ++{ ++ LIST_HEAD(device_list); ++ int i; ++ ++ logging_init("udevcoldplug"); ++ udev_config_init(); sysfs_init(); ++ dbg("version %s", UDEV_VERSION); ++ ++ udev_log_str = getenv("UDEV_LOG"); ++ ++ /* disable all logging if not explicitely requested */ ++ if (udev_log_str == NULL) ++ udev_log_priority = 0; ++ ++ for (i = 1 ; i < argc; i++) { ++ char *arg = argv[i]; ++ ++ if (strcmp(arg, "help") == 0 || strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { ++ printf("Usage: udevcoldplug \n" ++ " --help print this help text\n\n"); ++ exit(0); ++ } else { ++ fprintf(stderr, "unknown option\n\n"); ++ exit(1); ++ } ++ } ++ ++ udevd_sock = socket(AF_LOCAL, SOCK_DGRAM, 0); ++ if (udevd_sock < 0) { ++ err("error getting socket"); ++ return 1; ++ } ++ ++ /* create nodes for already available devices */ ++ udev_scan_class(); ++ udev_scan_block(); ++ ++ /* synthesize events for bus devices ++ * may load modules or configure the device */ ++ udev_scan_devices(); ++ ++ if (udevd_sock >= 0) ++ close(udevd_sock); ++ logging_close(); ++ ++ return 0; ++} +--- udev-081/Makefile ++++ udev-081/Makefile +@@ -58,6 +58,7 @@ PROGRAMS = \ + udevmonitor \ + udevinfo \ + udevtest \ ++ udevsynthesize \ + udevstart + + HEADERS = \ diff --git a/packages/udev/files/udevsynthesize.sh b/packages/udev/files/udevsynthesize.sh new file mode 100644 index 0000000000..d58217c144 --- /dev/null +++ b/packages/udev/files/udevsynthesize.sh @@ -0,0 +1,51 @@ +#!/bin/sh -e + +load_input_modules() { + for module in mousedev evdev joydev; do + modprobe -q $module || true + done +} + +if [ ! -e /sys/class/mem/null/uevent ]; then # <= 2.6.14 + /lib/udev/udevsynthesize + load_input_modules + exit 0 +fi + +# replace $IFS with something which is not likely to appear in a sysfs path, +# because some buggy drivers have spaces in their names +oldifs="$IFS" +IFS="|" + +for file in /sys/bus/*/devices/*/uevent /sys/class/*/*/uevent \ + /sys/block/*/uevent /sys/block/*/*/uevent; do + case "$file" in + */device/uevent) ;; # skip followed device symlinks + */\*/*) ;; + + */class/mem/*) # for /dev/null + first="$first${IFS}$file" ;; + + */block/md[0-9]*) + last="$last${IFS}$file" ;; + + *) + default="$default${IFS}$file" ;; + esac +done + +for file in $first${IFS}$default${IFS}$last; do + [ "$file" ] || continue + echo 'add' > "$file" || true +done + +IFS="$oldifs" + +case "$(uname -r)" in + 2.6.1[0-5]|2.6.1[0-5][!0-9]*) # <= 2.6.15 + load_input_modules + ;; +esac + +exit 0 + diff --git a/packages/udev/udev-063/fix-alignment.patch b/packages/udev/udev-063/fix-alignment.patch deleted file mode 100644 index 8c7b8b5ac5..0000000000 --- a/packages/udev/udev-063/fix-alignment.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/udev_rules_parse.c b/udev_rules_parse.c ---- a/udev_rules_parse.c -+++ b/udev_rules_parse.c -@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule - int valid; - char *linepos; - char *attr; -+ size_t padding; - int retval; - - /* get all the keys */ -@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule - - /* grow buffer and add rule */ - rule_size = sizeof(struct udev_rule) + rule->bufsize; -+ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); -+ dbg("add %zi padding bytes", padding); -+ rule_size += padding; -+ rule->bufsize += padding; -+ - rules->buf = realloc(rules->buf, rules->bufsize + rule_size); - if (!rules->buf) { - err("realloc failed"); - diff --git a/packages/udev/udev-063/noasmlinkage.patch b/packages/udev/udev-063/noasmlinkage.patch deleted file mode 100644 index 0d8e854c0e..0000000000 --- a/packages/udev/udev-063/noasmlinkage.patch +++ /dev/null @@ -1,38 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/packages/udev/udev-065/fix-alignment.patch b/packages/udev/udev-065/fix-alignment.patch deleted file mode 100644 index 8c7b8b5ac5..0000000000 --- a/packages/udev/udev-065/fix-alignment.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/udev_rules_parse.c b/udev_rules_parse.c ---- a/udev_rules_parse.c -+++ b/udev_rules_parse.c -@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule - int valid; - char *linepos; - char *attr; -+ size_t padding; - int retval; - - /* get all the keys */ -@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule - - /* grow buffer and add rule */ - rule_size = sizeof(struct udev_rule) + rule->bufsize; -+ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); -+ dbg("add %zi padding bytes", padding); -+ rule_size += padding; -+ rule->bufsize += padding; -+ - rules->buf = realloc(rules->buf, rules->bufsize + rule_size); - if (!rules->buf) { - err("realloc failed"); - diff --git a/packages/udev/udev-065/noasmlinkage.patch b/packages/udev/udev-065/noasmlinkage.patch deleted file mode 100644 index 0d8e854c0e..0000000000 --- a/packages/udev/udev-065/noasmlinkage.patch +++ /dev/null @@ -1,38 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/packages/udev/udev-070/noasmlinkage.patch b/packages/udev/udev-070/noasmlinkage.patch deleted file mode 100644 index 0d8e854c0e..0000000000 --- a/packages/udev/udev-070/noasmlinkage.patch +++ /dev/null @@ -1,38 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/packages/udev/udev-071/noasmlinkage.patch b/packages/udev/udev-071/noasmlinkage.patch deleted file mode 100644 index 0d8e854c0e..0000000000 --- a/packages/udev/udev-071/noasmlinkage.patch +++ /dev/null @@ -1,38 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/packages/udev/udev-084/noasmlinkage.patch b/packages/udev/udev-084/noasmlinkage.patch deleted file mode 100644 index 0d8e854c0e..0000000000 --- a/packages/udev/udev-084/noasmlinkage.patch +++ /dev/null @@ -1,38 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-062/udev.c~noasmlinkage.patch -+++ udev-062/udev.c -@@ -54,7 +54,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-062/udevd.c~noasmlinkage.patch -+++ udev-062/udevd.c -@@ -639,7 +639,7 @@ - return msg; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - ---- udev-062/udevstart.c~noasmlinkage.patch -+++ udev-062/udevstart.c -@@ -323,7 +323,7 @@ - exec_list(&device_list); - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: diff --git a/packages/udev/udev-084/udevsynthesize.patch b/packages/udev/udev-084/udevsynthesize.patch deleted file mode 100644 index 7811188485..0000000000 --- a/packages/udev/udev-084/udevsynthesize.patch +++ /dev/null @@ -1,776 +0,0 @@ ---- udev-081/udevsynthesize.c.orig 2006-01-29 12:22:45.000000000 +0100 -+++ udev-081/udevsynthesize.c 2006-01-29 12:22:40.000000000 +0100 -@@ -0,0 +1,763 @@ -+/* -+ * udevcoldplug.c -+ * -+ * Copyright (C) 2005 SUSE Linux Products GmbH -+ * -+ * Author: -+ * Kay Sievers -+ * -+ * Synthesize kernel events from sysfs information and pass them -+ * to the udevd daemon. -+ * -+ * 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 version 2 of the License. -+ * -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 675 Mass Ave, Cambridge, MA 02139, USA. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "udev_libc_wrapper.h" -+#include "udev.h" -+#include "udevd.h" -+#include "udev_version.h" -+#include "logging.h" -+ -+#include "list.h" -+ -+#ifndef DT_DIR -+#define DT_DIR 4 -+#endif -+ -+static const char *udev_log_str; -+static int udevd_sock = -1; -+ -+#ifdef USE_LOG -+void log_message(int priority, const char *format, ...) -+{ -+ va_list args; -+ -+ if (priority > udev_log_priority) -+ return; -+ -+ va_start(args, format); -+ vsyslog(priority, format, args); -+ va_end(args); -+} -+#endif -+ -+struct device { -+ struct list_head node; -+ struct udevd_msg msg; -+ size_t bufpos; -+ char *path; -+}; -+ -+static dev_t read_devt(const char *path) -+{ -+ char filename[PATH_SIZE]; -+ char majorminor[64]; -+ unsigned int major, minor; -+ ssize_t count; -+ int fd; -+ -+ snprintf(filename, sizeof(filename), "%s/%s", path, "dev"); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ fd = open(filename, O_RDONLY); -+ if (fd < 0) -+ return 0; -+ -+ count = read(fd, majorminor, sizeof(majorminor)); -+ close(fd); -+ majorminor[count] = '\0'; -+ if (sscanf(majorminor, "%u:%u", &major, &minor) != 2) -+ return 0; -+ dbg("found major=%d, minor=%d", major, minor); -+ -+ return makedev(major, minor); -+} -+ -+static ssize_t read_file(const char *directory, const char *file, char *str, size_t len) -+{ -+ char filename[PATH_SIZE]; -+ ssize_t count; -+ int fd; -+ -+ memset(filename, 0, sizeof(filename)); -+ snprintf(filename, sizeof(filename), "%s/%s", directory, file); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ fd = open(filename, O_RDONLY); -+ if (fd < 0) -+ return -1; -+ -+ count = read(fd, str, len-1); -+ close(fd); -+ -+ if (count > (ssize_t)len) -+ count = len; -+ str[count-1] = '\0'; -+ -+ return count; -+} -+ -+static ssize_t read_link(const char *directory, const char *file, char *str, size_t size) -+{ -+ char filename[PATH_SIZE]; -+ char target[PATH_SIZE]; -+ int len; -+ char *back; -+ char *strip; -+ int level = 1; -+ -+ snprintf(filename, sizeof(filename), "%s/%s", directory, file); -+ filename[sizeof(filename)-1] = '\0'; -+ -+ len = readlink(filename, target, sizeof(target)-1); -+ if (len < 0) -+ return -1; -+ target[len] = '\0'; -+ -+ back = target; -+ while (strncmp(back, "../", 3) == 0) { -+ back += 3; -+ level++; -+ } -+ while(level--) { -+ strip = strrchr(filename, '/'); -+ if (!strip) -+ return -1; -+ strip[0] = '\0'; -+ } -+ -+ snprintf(str, size, "%s/%s", filename, back); -+ str[size-1] = '\0'; -+ -+ return len; -+} -+ -+static char *add_env_key(struct device *device, const char *key, const char *value) -+{ -+ size_t pos = device->bufpos; -+ device->bufpos += sprintf(&device->msg.envbuf[device->bufpos], "%s=%s", key, value)+1; -+ return &device->msg.envbuf[pos]; -+} -+ -+static struct device *device_create(const char *path, const char *subsystem, dev_t devt) -+{ -+ struct device *device; -+ const char *devpath = &path[strlen(sysfs_path)]; -+ char target[PATH_SIZE]; -+ -+ device = malloc(sizeof(struct device)); -+ if (device == NULL) { -+ dbg("error malloc"); -+ return NULL; -+ } -+ memset(device, 0x00, sizeof(struct device)); -+ -+ device->path = add_env_key(device, "DEVPATH", devpath); -+ device->path += strlen("DEVPATH="); -+ add_env_key(device, "SUBSYSTEM", subsystem); -+ add_env_key(device, "ACTION", "add"); -+ add_env_key(device, "UDEV_COLDPLUG", "1"); -+ -+ if (major(devt)) { -+ char number[32]; -+ sprintf(number, "%u", major(devt)); -+ add_env_key(device, "MAJOR", number); -+ sprintf(number, "%u", minor(devt)); -+ add_env_key(device, "MINOR", number); -+ } -+ -+ if (strncmp(devpath, "/block/", strlen("/block/")) == 0 || -+ strncmp(devpath, "/class/", strlen("/class/")) == 0) { -+ char physpath[PATH_SIZE]; -+ -+ if (read_link(path, "device", physpath, sizeof(physpath)) > (ssize_t)strlen(sysfs_path)) { -+ add_env_key(device, "PHYSDEVPATH", &physpath[strlen(sysfs_path)]); -+ if (read_link(physpath, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); -+ } -+ if (read_link(physpath, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVBUS", &pos[1]); -+ } -+ } -+ } else if (strncmp(devpath, "/devices/", strlen("/devices/")) == 0) { -+ if (read_link(path, "driver", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVDRIVER", &pos[1]); -+ } -+ if (read_link(path, "bus", target, sizeof(target)) > (ssize_t)strlen(sysfs_path)) { -+ char *pos = strrchr(target, '/'); -+ if (pos) -+ add_env_key(device, "PHYSDEVBUS", &pos[1]); -+ } -+ } -+ -+ return device; -+} -+ -+static int device_list_insert(struct list_head *device_list, struct device *device) -+{ -+ struct device *loop_device; -+ -+ dbg("insert: '%s'", device->path); -+ -+ /* sort files in lexical order */ -+ list_for_each_entry(loop_device, device_list, node) -+ if (strcmp(loop_device->path, device->path) > 0) -+ break; -+ -+ list_add_tail(&device->node, &loop_device->node); -+ -+ return 0; -+} -+ -+static int add_device_udevd(struct device *device) -+{ -+ size_t msg_len; -+ struct sockaddr_un saddr; -+ socklen_t addrlen; -+ int retval; -+ -+ memset(&saddr, 0x00, sizeof(struct sockaddr_un)); -+ saddr.sun_family = AF_LOCAL; -+ /* use abstract namespace for socket path */ -+ strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH); -+ addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1; -+ -+ strcpy(device->msg.magic, UDEV_MAGIC); -+ device->msg.type = UDEVD_UEVENT_UDEVSEND; -+ -+ msg_len = offsetof(struct udevd_msg, envbuf) + device->bufpos; -+ dbg("msg_len=%i", msg_len); -+ -+ retval = sendto(udevd_sock, &device->msg, msg_len, 0, (struct sockaddr *)&saddr, addrlen); -+ if (retval < 0) -+ return -1; -+ -+ return 0; -+} -+ -+static void exec_list(struct list_head *device_list, const char *first[], const char *last[]) -+{ -+ struct device *loop_device; -+ struct device *tmp_device; -+ int i; -+ -+ /* handle the "first" type devices first */ -+ if (first) -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ for (i = 0; first[i] != NULL; i++) { -+ if (strncmp(loop_device->path, first[i], strlen(first[i])) == 0) { -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ break; -+ } -+ } -+ } -+ -+ /* handle the devices we are allowed to, excluding the "last" type devices */ -+ if (last) -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ int found = 0; -+ for (i = 0; last[i] != NULL; i++) { -+ if (strncmp(loop_device->path, last[i], strlen(last[i])) == 0) { -+ found = 1; -+ break; -+ } -+ } -+ if (found) -+ continue; -+ -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ } -+ -+ /* handle the rest of the devices */ -+ list_for_each_entry_safe(loop_device, tmp_device, device_list, node) { -+ add_device_udevd(loop_device); -+ list_del(&loop_device->node); -+ free(loop_device); -+ } -+} -+ -+static int udev_scan_class(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ /* we want /dev/null and /dev/console first */ -+ const char *first[] = { -+ "/class/mem", -+ "/class/tty", -+ NULL, -+ }; -+ -+ snprintf(base, sizeof(base), "%s/class", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char dirname[PATH_SIZE]; -+ DIR *dir2; -+ struct dirent *dent2; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ -+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); -+ dirname[sizeof(dirname)-1] = '\0'; -+ -+ dir2 = opendir(dirname); -+ if (!dir2) -+ continue; -+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { -+ char dirname2[PATH_SIZE]; -+ struct device *device; -+ dev_t devt; -+ -+ if (dent2->d_name[0] == '.') -+ continue; -+ if (dent2->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); -+ dirname2[sizeof(dirname2)-1] = '\0'; -+ devt = read_devt(dirname2); -+ device = device_create(dirname2, dent->d_name, devt); -+ -+ if (strcmp(dent->d_name, "net") == 0 || -+ strcmp(dent->d_name, "bluetooth") == 0) { -+ add_env_key(device, "INTERFACE", dent2->d_name); -+ } else if (strcmp(dent->d_name, "pcmcia_socket") == 0 && -+ strlen(dent->d_name) > 14) { -+ add_env_key(device, "SOCKET_NO", -+ dent2->d_name + 14); -+ } -+ -+ device_list_insert(&device_list, device); -+ } -+ closedir(dir2); -+ } -+ closedir(dir); -+ exec_list(&device_list, first, NULL); -+ -+ return 0; -+} -+ -+static int udev_scan_block(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ /* dm wants to have the block devices around before it */ -+ const char *last[] = { -+ "/block/dm", -+ NULL, -+ }; -+ -+ snprintf(base, sizeof(base), "%s/block", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char dirname[PATH_SIZE]; -+ struct device *device; -+ struct dirent *dent2; -+ DIR *dir2; -+ dev_t devt; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname, sizeof(dirname), "%s/%s", base, dent->d_name); -+ dirname[sizeof(dirname)-1] = '\0'; -+ devt = read_devt(dirname); -+ if (major(devt)) { -+ device = device_create(dirname, "block", devt); -+ device_list_insert(&device_list, device); -+ } -+ -+ /* look for partitions */ -+ dir2 = opendir(dirname); -+ if (!dir2) -+ continue; -+ for (dent2 = readdir(dir2); dent2 != NULL; dent2 = readdir(dir2)) { -+ char dirname2[PATH_SIZE]; -+ -+ if (dent2->d_name[0] == '.') -+ continue; -+ if (dent2->d_type != DT_DIR) -+ continue; -+ -+ snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name); -+ dirname2[sizeof(dirname2)-1] = '\0'; -+ devt = read_devt(dirname2); -+ if (major(devt)) { -+ device = device_create(dirname2, "block", devt); -+ device_list_insert(&device_list, device); -+ continue; -+ } -+ } -+ closedir(dir2); -+ } -+ closedir(dir); -+ exec_list(&device_list, NULL, last); -+ -+ return 0; -+} -+ -+static int pci_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ char vendor[PATH_SIZE]; -+ char product[PATH_SIZE]; -+ const char *name; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ name = strrchr(device->path, '/'); -+ if (name) -+ add_env_key(device, "PCI_SLOT_NAME", &name[1]); -+ -+ if (read_file(path, "class", value, sizeof(value)) > 0) -+ add_env_key(device, "PCI_CLASS", &value[2]); -+ -+ if (read_file(path, "vendor", vendor, sizeof(vendor)) > 0 && -+ read_file(path, "device", product, sizeof(product)) > 0) { -+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PCI_ID", value); -+ } -+ -+ if (read_file(path, "subsystem_vendor", vendor, sizeof(vendor)) > 0 && -+ read_file(path, "subsystem_device", product, sizeof(product)) > 0) { -+ snprintf(value, sizeof(value), "%s:%s", &vendor[2], &product[2]); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PCI_SUBSYS_ID", value); -+ } -+ -+ return 0; -+} -+ -+static int usb_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ char str1[PATH_SIZE]; -+ char str2[PATH_SIZE]; -+ char str3[PATH_SIZE]; -+ unsigned int int1; -+ unsigned int int2; -+ unsigned int int3; -+ char *pos; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ /* device events have : in their directory name */ -+ pos = strrchr(path, '/'); -+ if (!strchr(pos, ':')) -+ return 0; /* and do not have other variables */ -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "bInterfaceClass", str1, sizeof(str1)) > 0 && -+ read_file(path, "bInterfaceSubClass", str2, sizeof(str2)) > 0 && -+ read_file(path, "bInterfaceProtocol", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "INTERFACE", value); -+ } -+ -+ /* move to the parent directory */ -+ pos[0] = '\0'; -+ -+ if (read_file(path, "idVendor", str1, sizeof(str1)) > 0 && -+ read_file(path, "idProduct", str2, sizeof(str2)) > 0 && -+ read_file(path, "bcdDevice", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%x/%x/%x", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "PRODUCT", value); -+ } -+ -+ if (read_file(path, "bDeviceClass", str1, sizeof(str1)) > 0 && -+ read_file(path, "bDeviceSubClass", str2, sizeof(str2)) > 0 && -+ read_file(path, "bDeviceProtocol", str3, sizeof(str3)) > 0) { -+ int1 = (int) strtol(str1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ int3 = (int) strtol(str3, NULL, 16); -+ snprintf(value, sizeof(value), "%u/%u/%u", int1, int2, int3); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "TYPE", value); -+ } -+ -+ if (read_file(path, "devnum", str2, sizeof(str2)) > 0) { -+ pos = strrchr(path, 'b'); -+ int1 = (int) strtol(pos + 1, NULL, 16); -+ int2 = (int) strtol(str2, NULL, 16); -+ snprintf(value, sizeof(value), -+ "/proc/bus/usb/%03d/%03d", int1, int2); -+ path[sizeof(value)-1] = '\0'; -+ add_env_key(device, "DEVICE", value); -+ } -+ -+ return 0; -+} -+ -+static int serio_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "id/type", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_TYPE", value); -+ -+ if (read_file(path, "id/proto", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_PROTO", value); -+ -+ if (read_file(path, "id/id", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_ID", value); -+ -+ if (read_file(path, "id/extra", value, sizeof(value)) > 0) -+ add_env_key(device, "SERIO_EXTRA", value); -+ -+ return 0; -+} -+ -+static int ccw_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE], *tmp; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ if (read_file(path, "cutype", value, sizeof(value)) > 0) { -+ value[4] = 0; -+ tmp = &value[5]; -+ add_env_key(device, "CU_TYPE", value); -+ add_env_key(device, "CU_MODEL", tmp); -+ } -+ -+ if (read_file(path, "devtype", value, sizeof(value)) > 0) { -+ if (value[0] == 'n') { -+ add_env_key(device, "DEV_TYPE", "0000"); -+ add_env_key(device, "DEV_MODEL", "00"); -+ } -+ else { -+ value[4] = 0; -+ tmp = &value[5]; -+ add_env_key(device, "DEV_TYPE", value); -+ add_env_key(device, "DEV_MODEL", tmp); -+ } -+ } -+ -+ return 0; -+} -+ -+static int modalias_handler(struct device *device) -+{ -+ char path[PATH_SIZE]; -+ char value[PATH_SIZE]; -+ -+ snprintf(path, sizeof(path), "%s%s", sysfs_path, device->path); -+ path[sizeof(path)-1] = '\0'; -+ -+ if (read_file(path, "modalias", value, sizeof(value)) > 0) -+ add_env_key(device, "MODALIAS", value); -+ -+ return 0; -+} -+ -+static int udev_scan_bus(const char *bus, int bus_handler(struct device *device)) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ LIST_HEAD(device_list); -+ -+ snprintf(base, sizeof(base), "%s/bus/%s/devices", sysfs_path, bus); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char devpath[PATH_SIZE]; -+ struct device *device; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ -+ if (read_link(base, dent->d_name, devpath, sizeof(devpath)) < 0) -+ continue; -+ -+ device = device_create(devpath, bus, makedev(0, 0)); -+ if (bus_handler) { -+ if (bus_handler(device) < 0) { -+ dbg("'%s' bus handler skipped event", devpath); -+ free(device); -+ continue; -+ } -+ } -+ -+ device_list_insert(&device_list, device); -+ } -+ closedir(dir); -+ exec_list(&device_list, NULL, NULL); -+ -+ return 0; -+} -+ -+static int udev_scan_devices(void) -+{ -+ char base[PATH_SIZE]; -+ DIR *dir; -+ struct dirent *dent; -+ -+ snprintf(base, sizeof(base), "%s/bus", sysfs_path); -+ base[sizeof(base)-1] = '\0'; -+ -+ dir = opendir(base); -+ if (!dir) -+ return -1; -+ -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR) -+ continue; -+ -+ /* add bus specific env values */ -+ if (strcmp(dent->d_name, "pci") == 0) -+ udev_scan_bus("pci", pci_handler); -+ else if (strcmp(dent->d_name, "usb") == 0) -+ udev_scan_bus("usb", usb_handler); -+ else if (strcmp(dent->d_name, "serio") == 0) -+ udev_scan_bus("serio", serio_handler); -+ else if (strcmp(dent->d_name, "ccw") == 0) -+ udev_scan_bus("ccw", ccw_handler); -+ else -+ udev_scan_bus(dent->d_name, modalias_handler); -+ } -+ closedir(dir); -+ -+ return 0; -+} -+ -+int main(int argc, char *argv[], char *envp[]) -+{ -+ LIST_HEAD(device_list); -+ int i; -+ -+ logging_init("udevcoldplug"); -+ udev_config_init(); sysfs_init(); -+ dbg("version %s", UDEV_VERSION); -+ -+ udev_log_str = getenv("UDEV_LOG"); -+ -+ /* disable all logging if not explicitely requested */ -+ if (udev_log_str == NULL) -+ udev_log_priority = 0; -+ -+ for (i = 1 ; i < argc; i++) { -+ char *arg = argv[i]; -+ -+ if (strcmp(arg, "help") == 0 || strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { -+ printf("Usage: udevcoldplug \n" -+ " --help print this help text\n\n"); -+ exit(0); -+ } else { -+ fprintf(stderr, "unknown option\n\n"); -+ exit(1); -+ } -+ } -+ -+ udevd_sock = socket(AF_LOCAL, SOCK_DGRAM, 0); -+ if (udevd_sock < 0) { -+ err("error getting socket"); -+ return 1; -+ } -+ -+ /* create nodes for already available devices */ -+ udev_scan_class(); -+ udev_scan_block(); -+ -+ /* synthesize events for bus devices -+ * may load modules or configure the device */ -+ udev_scan_devices(); -+ -+ if (udevd_sock >= 0) -+ close(udevd_sock); -+ logging_close(); -+ -+ return 0; -+} ---- udev-081/Makefile -+++ udev-081/Makefile -@@ -58,6 +58,7 @@ PROGRAMS = \ - udevmonitor \ - udevinfo \ - udevtest \ -+ udevsynthesize \ - udevstart - - HEADERS = \ diff --git a/packages/udev/udev-084/udevsynthesize.sh b/packages/udev/udev-084/udevsynthesize.sh deleted file mode 100644 index d58217c144..0000000000 --- a/packages/udev/udev-084/udevsynthesize.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e - -load_input_modules() { - for module in mousedev evdev joydev; do - modprobe -q $module || true - done -} - -if [ ! -e /sys/class/mem/null/uevent ]; then # <= 2.6.14 - /lib/udev/udevsynthesize - load_input_modules - exit 0 -fi - -# replace $IFS with something which is not likely to appear in a sysfs path, -# because some buggy drivers have spaces in their names -oldifs="$IFS" -IFS="|" - -for file in /sys/bus/*/devices/*/uevent /sys/class/*/*/uevent \ - /sys/block/*/uevent /sys/block/*/*/uevent; do - case "$file" in - */device/uevent) ;; # skip followed device symlinks - */\*/*) ;; - - */class/mem/*) # for /dev/null - first="$first${IFS}$file" ;; - - */block/md[0-9]*) - last="$last${IFS}$file" ;; - - *) - default="$default${IFS}$file" ;; - esac -done - -for file in $first${IFS}$default${IFS}$last; do - [ "$file" ] || continue - echo 'add' > "$file" || true -done - -IFS="$oldifs" - -case "$(uname -r)" in - 2.6.1[0-5]|2.6.1[0-5][!0-9]*) # <= 2.6.15 - load_input_modules - ;; -esac - -exit 0 - diff --git a/packages/udev/udev-089/.mtn2git_empty b/packages/udev/udev-089/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/udev/udev-089/flags.patch b/packages/udev/udev-089/flags.patch new file mode 100644 index 0000000000..492a39881c --- /dev/null +++ b/packages/udev/udev-089/flags.patch @@ -0,0 +1,51 @@ +--- udev-089/Makefile.orig 2006-04-08 13:32:53.000000000 +0200 ++++ udev-089/Makefile 2006-04-08 13:34:27.000000000 +0200 +@@ -117,28 +117,28 @@ + AR = $(CROSS_COMPILE)ar + RANLIB = $(CROSS_COMPILE)ranlib + +-CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 ++override CFLAGS = -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 + WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \ + -Wchar-subscripts -Wmissing-declarations -Wnested-externs \ + -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes +-CFLAGS += $(WARNINGS) ++override CFLAGS += $(WARNINGS) + + LDFLAGS = -Wl,-warn-common + + OPTFLAGS = -Os +-CFLAGS += $(OPTFLAGS) ++override CFLAGS += $(OPTFLAGS) + + ifeq ($(strip $(USE_LOG)),true) +- CFLAGS += -DUSE_LOG ++ override CFLAGS += -DUSE_LOG + endif + + # if DEBUG is enabled, then we do not strip + ifeq ($(strip $(DEBUG)),true) +- CFLAGS += -DDEBUG ++ override CFLAGS += -DDEBUG + endif + + ifeq ($(strip $(USE_GCOV)),true) +- CFLAGS += -fprofile-arcs -ftest-coverage ++ override CFLAGS += -fprofile-arcs -ftest-coverage + LDFLAGS += -fprofile-arcs + endif + +@@ -151,11 +151,11 @@ + ifeq ($(strip $(USE_SELINUX)),true) + UDEV_OBJS += udev_selinux.o + LIB_OBJS += -lselinux -lsepol +- CFLAGS += -DUSE_SELINUX ++ override CFLAGS += -DUSE_SELINUX + endif + + ifeq ($(strip $(USE_STATIC)),true) +- CFLAGS += -DUSE_STATIC ++ override CFLAGS += -DUSE_STATIC + LDFLAGS += -static + endif + diff --git a/packages/udev/udev-089/init b/packages/udev/udev-089/init new file mode 100644 index 0000000000..5a60d52a9a --- /dev/null +++ b/packages/udev/udev-089/init @@ -0,0 +1,227 @@ +#!/bin/sh -e +### BEGIN INIT INFO +# Provides: udev +# Required-Start: mountvirtfs +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Start udevd, populate /dev and load drivers. +### END INIT INFO + +# we need to unmount /dev/pts/ and remount it later over the tmpfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -l /dev/shm/ + fi +} + +# mount a tmpfs over /dev, if somebody did not already do it +mount_tmpfs() { + if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then + return + fi + + # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory. + # /etc/udev/ is recycled as a temporary mount point because it's the only + # directory which is guaranteed to be available. + mount -n -o bind /dev /etc/udev + + if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then + umount /etc/udev + echo "udev requires tmpfs support, not started." + exit 1 + fi + + mkdir -p /dev/.static/dev + chmod 700 /dev/.static/ + # The mount options in busybox are non-standard... + if test -x /bin/mount.util-linux + then + /bin/mount.util-linux --move /etc/udev /dev/.static/dev + elif test -x /bin/busybox + then + busybox mount -n -o move /etc/udev /dev/.static/dev + else + echo "udev requires an identifiable mount command, not started." + umount /etc/udev + umount /dev + exit 1 + fi +} + +# I hate this hack. -- Md +make_extra_nodes() { + if [ "$(echo /lib/udev/devices/*)" != "/lib/udev/devices/*" ]; then + cp -a /lib/udev/devices/* /dev/ + fi + + [ -e /etc/udev/links.conf ] || return 0 + grep '^[^#]' /etc/udev/links.conf | \ + while read type name arg1; do + [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue + case "$type" in + L) ln -s $arg1 /dev/$name ;; + D) mkdir -p /dev/$name ;; + M) mknod -m 600 /dev/$name $arg1 ;; + *) echo "links.conf: unparseable line ($type $name $arg1)" ;; + esac + done +} + +supported_kernel() { + case "$(uname -r)" in + 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;; + 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;; + esac + return 0 +} + +set_hotplug_handler() { + case "$(uname -r)" in + 2.6.1[0-4]|2.6.1[0-4][!0-9]*) HANDLER='/sbin/udevsend' ;; + esac + echo $HANDLER > /proc/sys/kernel/hotplug +} + +# shell version of /usr/bin/tty +my_tty() { + [ -x /bin/readlink ] || return 0 + [ -e /proc/self/fd/0 ] || return 0 + readlink --silent /proc/self/fd/0 || true +} + +warn_if_interactive() { + if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then + return + fi + + TTY=$(my_tty) + if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then + return + fi + + printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n" + printf "has been run from an interactive shell.\n" + printf "It will probably not do what you expect, so this script will wait\n" + printf "60 seconds before continuing. Press ^C to stop it.\n" + printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n" + sleep 60 +} + +############################################################################## + +PATH="/sbin:/bin:/usr/bin" + +[ -x /sbin/udevd ] || exit 0 + +# defaults +tmpfs_size="10M" +udev_root="/dev" +udevd_timeout=30 + +. /etc/udev/udev.conf + +if ! supported_kernel; then + echo "udev requires a kernel >= 2.6.12, not started." + exit 1 +fi + +if [ ! -e /proc/filesystems ]; then + echo "udev requires a mounted procfs, not started." + exit 1 +fi + +if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then + echo "udev requires tmpfs support, not started." + exit 1 +fi + +if [ ! -d /sys/class/ ]; then + echo "udev requires a mounted sysfs, not started." + exit 1 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 1 +fi + +############################################################################## + +# When modifying this script, do not forget that between the time that +# the new /dev has been mounted and udevsynthesize has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if [ -e "$udev_root/.udev/" ]; then + if mountpoint -q /dev/; then + TMPFS_MOUNTED=1 + else + echo ".udev/ already exists on the static $udev_root!" + fi + else + warn_if_interactive + fi + + echo "Starting the hotplug events dispatcher" "udevd" + udevd --daemon + + set_hotplug_handler + + if [ -z "$TMPFS_MOUNTED" ]; then + unmount_devpts + mount_tmpfs + [ -d /proc/1 ] || mount -n /proc + fi + + # if this directory is not present /dev will not be updated by udev + mkdir -p /dev/.udev/ /dev/.udev/db/ /dev/.udev/queue/ /dev/.udevdb/ + # /dev/null must be created before udevd is started + make_extra_nodes + + echo "Synthesizing the initial hotplug events" + udevsynthesize + + # wait for the udevd childs to finish + echo "Waiting for /dev to be fully populated" + while [ -d /dev/.udev/queue/ ]; do + sleep 1 + udevd_timeout=$(($udevd_timeout - 1)) + if [ $udevd_timeout -eq 0 ]; then + # ps axf + break + fi + done + if [ $udevd_timeout -eq 0 ]; then + echo 'timeout' + fi + ;; + + stop) + echo "Stopping the hotplug events dispatcher" "udevd" + start-stop-daemon --stop --name udevd --quiet + ;; + + restart|force-reload) + echo "Stopping the hotplug events dispatcher" "udevd" + if start-stop-daemon --stop --name udevd --quiet ; then + exit 1 + fi + + echo "Starting the hotplug events dispatcher" "udevd" + udevd --daemon + ;; + + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 + diff --git a/packages/udev/udev-089/local.rules b/packages/udev/udev-089/local.rules new file mode 100644 index 0000000000..bb8459ba23 --- /dev/null +++ b/packages/udev/udev-089/local.rules @@ -0,0 +1,28 @@ +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %e the smallest number for that name which does not matches an existing node +# %k the kernel name for the device +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute +# %% the '%' char itself +# + +# Media automounting +SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh" +SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh" + +# Handle network interface setup +SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh" +SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh" + +# The first rtc device is symlinked to /dev/rtc +KERNEL="rtc0", SYMLINK="rtc" + +# Try and modprobe for drivers for new hardware +ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias" diff --git a/packages/udev/udev-089/udev.rules b/packages/udev/udev-089/udev.rules new file mode 100644 index 0000000000..7b4152c5bf --- /dev/null +++ b/packages/udev/udev-089/udev.rules @@ -0,0 +1,98 @@ +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %e the smallest number for that name which does not matches an existing node +# %k the kernel name for the device +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute +# %% the '%' char itself +# + +# SCSI devices +BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" + +# USB devices +BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" +BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" +BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" +BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ + SYMLINK+="pilot" + +# usbfs-like devices +SUBSYSTEM=="usb_device", \ + PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c" + +# serial devices +KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20" +KERNEL=="capi[0-9]*", NAME="capi/%n" + +# video devices +KERNEL=="card[0-9]*", NAME="dri/%k" + +# misc devices +KERNEL=="hw_random", NAME="hwrng" +KERNEL=="tun", NAME="net/%k" + +KERNEL=="cdemu[0-9]*", NAME="cdemu/%n" +KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n" +KERNEL=="pktcdvd", NAME="pktcdvd/control" + +KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" +KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" +KERNEL=="microcode", NAME="cpu/microcode" + +KERNEL=="umad*", NAME="infiniband/%k" +KERNEL=="issm*", NAME="infiniband/%k" +KERNEL=="uverbs*", NAME="infiniband/%k" +KERNEL=="ucm", NAME="infiniband/%k" + +KERNEL=="buzzer", NAME="misc/buzzer" + +# ALSA devices +KERNEL=="controlC[0-9]*", NAME="snd/%k" +KERNEL=="hwC[D0-9]*", NAME="snd/%k" +KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" +KERNEL=="midiC[D0-9]*", NAME="snd/%k" +KERNEL=="timer", NAME="snd/%k" +KERNEL=="seq", NAME="snd/%k" + +# ieee1394 devices +KERNEL=="dv1394*", NAME="dv1394/%n" +KERNEL=="video1394*", NAME="video1394/%n" + +# input devices +KERNEL=="mice", NAME="input/%k" +KERNEL=="mouse[0-9]*", NAME="input/%k" +KERNEL=="event[0-9]*", NAME="input/%k" +KERNEL=="js[0-9]*", NAME="input/%k" +KERNEL=="ts[0-9]*", NAME="input/%k" +KERNEL=="uinput", NAME="input/%k" + +# Zaptel +KERNEL=="zapctl", NAME="zap/ctl" +KERNEL=="zaptimer", NAME="zap/timer" +KERNEL=="zapchannel", NAME="zap/channel" +KERNEL=="zappseudo", NAME="zap/pseudo" +KERNEL=="zap[0-9]*", NAME="zap/%n" + +# AOE character devices +SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k" + +# device mapper creates its own device nodes, so ignore these +KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device" +KERNEL=="device-mapper", NAME="mapper/control" + +KERNEL="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660" + +# Firmware Helper +ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper" -- cgit v1.2.3 From 83e3ce3dbc5f49a7c8ee4b535ed14d8938c252aa Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Mon, 10 Apr 2006 18:38:41 +0000 Subject: udev: add 089, DEFAULT_PREFERENCE="-1" --- packages/udev/udev_089.bb | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 packages/udev/udev_089.bb diff --git a/packages/udev/udev_089.bb b/packages/udev/udev_089.bb new file mode 100644 index 0000000000..28cda40f0f --- /dev/null +++ b/packages/udev/udev_089.bb @@ -0,0 +1,46 @@ +DEFAULT_PREFERENCE = "-1" + +DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \ +/dev/, handles hotplug events and loads drivers at boot time. It replaces \ +the hotplug package and requires a kernel not older than 2.6.12." +RPROVIDES = "hotplug" + +SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ + file://noasmlinkage.patch;patch=1 \ + file://flags.patch;patch=1 \ + file://udevsynthesize.patch;patch=1 \ + file://udevsynthesize.sh" + +include udev.inc + +INITSCRIPT_PARAMS = "start 03 S . start 55 0 6 ." + +FILES_${PN} += "${base_libdir}" +UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/ extras/run_directory/" +EXTRA_OEMAKE += "libudevdir=/lib/udev" + +do_install () { + install -d ${D}${usrsbindir} \ + ${D}${sbindir} + oe_runmake 'DESTDIR=${D}' INSTALL=install install + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev + + install -d ${D}${sysconfdir}/udev/rules.d/ + + install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules + install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules + install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules + if [ "${UDEV_DEVFS_RULES}" = "1" ]; then + install -m 0644 ${WORKDIR}/devfs-udev.rules ${D}${sysconfdir}/udev/rules.d/devfs-udev.rules + fi + + install -d ${D}${sysconfdir}/udev/scripts/ + + install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh + install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts + + install -d ${D}${base_libdir}/udev/ + install -m 0755 ${S}/udevsynthesize ${D}${base_libdir}/udev/udevsynthesize + install -m 0755 ${WORKDIR}/udevsynthesize.sh ${D}${sbindir}/udevsynthesize +} -- cgit v1.2.3 From d48797b217dacc96edfeb41122dc18dde1a0558a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 10 Apr 2006 22:05:24 +0000 Subject: elfutils 0.108: Remove -Eextra flags to fix failures with certain compilers --- packages/elfutils/elfutils-0.108/warnings.patch | 58 ++++++++++++------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/packages/elfutils/elfutils-0.108/warnings.patch b/packages/elfutils/elfutils-0.108/warnings.patch index 1c283d8530..9de027ee26 100644 --- a/packages/elfutils/elfutils-0.108/warnings.patch +++ b/packages/elfutils/elfutils-0.108/warnings.patch @@ -1,7 +1,7 @@ Index: elfutils-0.108/configure.ac =================================================================== ---- elfutils-0.108.orig/configure.ac 2005-05-08 19:13:45.000000000 +0100 -+++ elfutils-0.108/configure.ac 2006-04-07 11:34:17.000000000 +0100 +--- elfutils-0.108.orig/configure.ac 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/configure.ac 2006-04-10 19:19:33.000000000 +0100 @@ -49,6 +49,10 @@ dnl Add all the languages for which translations are available. ALL_LINGUAS= @@ -15,108 +15,108 @@ Index: elfutils-0.108/configure.ac AC_PROG_YACC Index: elfutils-0.108/lib/Makefile.am =================================================================== ---- elfutils-0.108.orig/lib/Makefile.am 2005-05-07 00:48:02.000000000 +0100 -+++ elfutils-0.108/lib/Makefile.am 2006-04-07 11:35:38.000000000 +0100 +--- elfutils-0.108.orig/lib/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/lib/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -21,7 +21,7 @@ else AM_CFLAGS = endif -AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra $($(*F)_CFLAGS) -+AM_CFLAGS += -fpic -Wshadow -Wunused -Wextra $($(*F)_CFLAGS) ++AM_CFLAGS += -fpic -Wshadow -Wunused $($(*F)_CFLAGS) INCLUDES = -I$(srcdir)/../libelf -I.. noinst_LIBRARIES = libeu.a Index: elfutils-0.108/libasm/Makefile.am =================================================================== ---- elfutils-0.108.orig/libasm/Makefile.am 2005-02-25 06:46:26.000000000 +0000 -+++ elfutils-0.108/libasm/Makefile.am 2006-04-07 11:36:09.000000000 +0100 +--- elfutils-0.108.orig/libasm/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/libasm/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -18,7 +18,7 @@ else AM_CFLAGS = endif -AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -+AM_CFLAGS += -Wshadow -Wunused -Wextra -Wformat=2 ++AM_CFLAGS += -Wshadow -Wunused -Wformat=2 INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \ -I$(top_srcdir)/lib GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) Index: elfutils-0.108/libcpu/Makefile.am =================================================================== ---- elfutils-0.108.orig/libcpu/Makefile.am 2005-02-25 06:46:58.000000000 +0000 -+++ elfutils-0.108/libcpu/Makefile.am 2006-04-07 11:36:32.000000000 +0100 +--- elfutils-0.108.orig/libcpu/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/libcpu/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -13,7 +13,7 @@ ## 3001 King Ranch Road, Ukiah, CA 95482. ## DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -AM_CFLAGS = -Wall -Wshadow -Werror -Wextra -Wformat=2 -Wunused -+AM_CFLAGS = -Wshadow -Wextra -Wformat=2 -Wunused ++AM_CFLAGS = -Wshadow -Wformat=2 -Wunused INCLUDES = -I$(srcdir) noinst_LIBRARIES = libcpu_i386.a Index: elfutils-0.108/libdw/Makefile.am =================================================================== ---- elfutils-0.108.orig/libdw/Makefile.am 2005-04-04 01:29:25.000000000 +0100 -+++ elfutils-0.108/libdw/Makefile.am 2006-04-07 11:36:42.000000000 +0100 +--- elfutils-0.108.orig/libdw/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/libdw/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -18,7 +18,7 @@ else AM_CFLAGS = endif -AM_CFLAGS += -Wall -Werror -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99 -+AM_CFLAGS += -Wshadow -Wunused -Wformat=2 -Wextra -std=gnu99 ++AM_CFLAGS += -Wshadow -Wunused -Wformat=2 -std=gnu99 INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib VERSION = 1 Index: elfutils-0.108/libebl/Makefile.am =================================================================== ---- elfutils-0.108.orig/libebl/Makefile.am 2005-05-07 00:40:23.000000000 +0100 -+++ elfutils-0.108/libebl/Makefile.am 2006-04-07 11:36:53.000000000 +0100 +--- elfutils-0.108.orig/libebl/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/libebl/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -18,7 +18,7 @@ else AM_CFLAGS = endif -AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 \ -+AM_CFLAGS += -fpic -Wshadow -Wunused -Wextra -Wformat=2 \ ++AM_CFLAGS += -fpic -Wshadow -Wunused -Wformat=2 \ -std=gnu99 INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I.. Index: elfutils-0.108/libelf/Makefile.am =================================================================== ---- elfutils-0.108.orig/libelf/Makefile.am 2005-02-25 06:46:17.000000000 +0000 -+++ elfutils-0.108/libelf/Makefile.am 2006-04-07 11:37:08.000000000 +0100 +--- elfutils-0.108.orig/libelf/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/libelf/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -21,7 +21,7 @@ else AM_CFLAGS = endif -AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \ -+AM_CFLAGS += -Wshadow -Wunused -Wextra -Wformat=2 -std=gnu99 \ ++AM_CFLAGS += -Wshadow -Wunused -Wformat=2 -std=gnu99 \ $($(*F)_CFLAGS) INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I.. GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) Index: elfutils-0.108/src/Makefile.am =================================================================== ---- elfutils-0.108.orig/src/Makefile.am 2005-05-07 21:27:58.000000000 +0100 -+++ elfutils-0.108/src/Makefile.am 2006-04-07 11:38:21.000000000 +0100 -@@ -15,14 +15,13 @@ +--- elfutils-0.108.orig/src/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/src/Makefile.am 2006-04-10 19:20:19.000000000 +0100 +@@ -15,14 +15,12 @@ DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \ -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\" if MUDFLAP -AM_CFLAGS = -Wall -Wshadow -Wunused -Wextra -std=gnu99 -fmudflap \ -+AM_CFLAGS = -Wshadow -Wunused -Wextra -std=gnu99 -fmudflap \ ++AM_CFLAGS = -Wshadow -Wunused -std=gnu99 -fmudflap \ $(native_ld_cflags) $(if $($(*F)_no_Wunused),,-Wunused) \ $(if $($(*F)_no_Wformat),,-Wformat=2) else -AM_CFLAGS = -Wall -Wshadow -std=gnu99 $(native_ld_cflags) \ -+AM_CFLAGS = -Wshadow -std=gnu99 $(native_ld_cflags) \ - $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Werror),,-Werror) \ - $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ - $(if $($(*F)_no_Wformat),,-Wformat=2) -+ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) ++AM_CFLAGS = -Wshadow -std=gnu99 $(native_ld_cflags) \ ++ $(if $($(*F)_no_Werror),,-Werror) endif if MUDFLAP libmudflap = -lmudflap Index: elfutils-0.108/tests/Makefile.am =================================================================== ---- elfutils-0.108.orig/tests/Makefile.am 2005-05-08 18:56:19.000000000 +0100 -+++ elfutils-0.108/tests/Makefile.am 2006-04-07 11:38:36.000000000 +0100 +--- elfutils-0.108.orig/tests/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.108/tests/Makefile.am 2006-04-10 19:19:33.000000000 +0100 @@ -14,10 +14,10 @@ ## DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE -- cgit v1.2.3 From a40f6aee1a9a5d28ccc91b468d77d197fb435683 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 10 Apr 2006 22:10:44 +0000 Subject: prelink: Drop old/stale/broken versions and add 20050901 with patched EABI support --- packages/prelink/prelink-20031029/.mtn2git_empty | 0 .../prelink/prelink-20031029/Makefile.in.patch | 11 - packages/prelink/prelink-20031029/dso.c.patch | 16 -- packages/prelink/prelink-20031029/layout.c.patch | 26 -- packages/prelink/prelink-20031029/prelink.conf | 21 -- .../prelink/prelink-20031029/prelink.cron.daily | 43 ---- packages/prelink/prelink-20031029/prelink.default | 25 -- packages/prelink/prelink-20031029/prelink.h.patch | 48 ---- .../prelink/prelink-20031029/ts.Makefile.am.patch | 11 - .../prelink/prelink-20031029/ts.Makefile.in.patch | 11 - packages/prelink/prelink-20040304/.mtn2git_empty | 0 packages/prelink/prelink-20040304/prelink.conf | 21 -- .../prelink/prelink-20040304/prelink.cron.daily | 43 ---- packages/prelink/prelink-20040304/prelink.default | 25 -- packages/prelink/prelink-20050901/.mtn2git_empty | 0 packages/prelink/prelink-20050901/arm_eabi.patch | 286 +++++++++++++++++++++ packages/prelink/prelink-20050901/prelink.conf | 18 ++ .../prelink/prelink-20050901/prelink.cron.daily | 40 +++ packages/prelink/prelink-20050901/prelink.default | 22 ++ packages/prelink/prelink_20031029.bb | 26 -- packages/prelink/prelink_20040304.bb | 20 -- packages/prelink/prelink_20040520.bb | 16 -- packages/prelink/prelink_20050901.bb | 46 ++++ 23 files changed, 412 insertions(+), 363 deletions(-) delete mode 100644 packages/prelink/prelink-20031029/.mtn2git_empty delete mode 100644 packages/prelink/prelink-20031029/Makefile.in.patch delete mode 100644 packages/prelink/prelink-20031029/dso.c.patch delete mode 100644 packages/prelink/prelink-20031029/layout.c.patch delete mode 100644 packages/prelink/prelink-20031029/prelink.conf delete mode 100644 packages/prelink/prelink-20031029/prelink.cron.daily delete mode 100644 packages/prelink/prelink-20031029/prelink.default delete mode 100644 packages/prelink/prelink-20031029/prelink.h.patch delete mode 100644 packages/prelink/prelink-20031029/ts.Makefile.am.patch delete mode 100644 packages/prelink/prelink-20031029/ts.Makefile.in.patch delete mode 100644 packages/prelink/prelink-20040304/.mtn2git_empty delete mode 100644 packages/prelink/prelink-20040304/prelink.conf delete mode 100644 packages/prelink/prelink-20040304/prelink.cron.daily delete mode 100644 packages/prelink/prelink-20040304/prelink.default create mode 100644 packages/prelink/prelink-20050901/.mtn2git_empty create mode 100644 packages/prelink/prelink-20050901/arm_eabi.patch create mode 100644 packages/prelink/prelink-20050901/prelink.conf create mode 100644 packages/prelink/prelink-20050901/prelink.cron.daily create mode 100644 packages/prelink/prelink-20050901/prelink.default delete mode 100644 packages/prelink/prelink_20031029.bb delete mode 100644 packages/prelink/prelink_20040304.bb delete mode 100644 packages/prelink/prelink_20040520.bb create mode 100644 packages/prelink/prelink_20050901.bb diff --git a/packages/prelink/prelink-20031029/.mtn2git_empty b/packages/prelink/prelink-20031029/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/prelink/prelink-20031029/Makefile.in.patch b/packages/prelink/prelink-20031029/Makefile.in.patch deleted file mode 100644 index 930ea5f9c4..0000000000 --- a/packages/prelink/prelink-20031029/Makefile.in.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- prelink-0.0.20030902.orig/src/Makefile.in 2003-07-01 14:38:41.000000000 +0000 -+++ prelink-0.0.20030902/src/Makefile.in 2003-09-16 23:26:16.000000000 +0000 -@@ -108,7 +108,7 @@ - $(prelink_SYSDEPS) - - prelink_LDADD = @LIBGELF@ --prelink_LDFLAGS = -all-static -+#prelink_LDFLAGS = -all-static - - extra_DIST = makecrc.c - subdir = src diff --git a/packages/prelink/prelink-20031029/dso.c.patch b/packages/prelink/prelink-20031029/dso.c.patch deleted file mode 100644 index 1be2f52961..0000000000 --- a/packages/prelink/prelink-20031029/dso.c.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- prelink-0.0.20030902.orig/src/dso.c 2003-08-11 11:55:11.000000000 +0000 -+++ prelink-0.0.20030902/src/dso.c 2003-09-16 23:26:16.000000000 +0000 -@@ -334,7 +334,13 @@ - } - else - sections[--k] = i; -+/* this fails for the statically linked upx executable - assert (j == k); -+*/ -+ if (j != k) { -+ printf("assert(j == k) at dso.c:311 has failed for file %s\n", name); -+ goto error_out; -+ } - - section_cmp_dso = dso; - qsort (sections + k, dso->ehdr.e_shnum - k, sizeof (*sections), section_cmp); diff --git a/packages/prelink/prelink-20031029/layout.c.patch b/packages/prelink/prelink-20031029/layout.c.patch deleted file mode 100644 index 3961d84d0b..0000000000 --- a/packages/prelink/prelink-20031029/layout.c.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- prelink-0.0.20030902.orig/src/layout.c 2003-06-13 15:12:26.000000000 +0000 -+++ prelink-0.0.20030902/src/layout.c 2003-09-16 23:26:16.000000000 +0000 -@@ -614,7 +614,23 @@ - < ((deps[j - 1]->end + max_page_size - 1) - & ~(max_page_size - 1)) - && (deps[j]->type == ET_DYN || deps[j - 1]->type == ET_DYN)) -+{ /* XXX some binaries cause a segfault but I do not know why -- Md*/ -+ fprintf(stderr, -+ "Unknown fatal error at src/layout.c:538\n" -+ "l.binlibs[i]->filename: %s\n" -+ "deps[j]->base: %lx\n" -+ "(deps[j - 1]->end + max_page_size - 1) & ~(max_page_size - 1): %ld\n" -+ "[deps[j - 1]->end: %lx max_page_size: %lu]\n" -+ "deps[j]->type: %x deps[j - 1]->type: %x\n" -+ , -+ l.binlibs[i]->filename, -+ deps[j]->base, -+ ((deps[j - 1]->end + max_page_size - 1) & ~(max_page_size - 1)), -+ deps[j - 1]->end, max_page_size, -+ deps[j]->type, deps[j - 1]->type -+ ); - abort (); -+} - } - #endif - } diff --git a/packages/prelink/prelink-20031029/prelink.conf b/packages/prelink/prelink-20031029/prelink.conf deleted file mode 100644 index 1777aa849e..0000000000 --- a/packages/prelink/prelink-20031029/prelink.conf +++ /dev/null @@ -1,21 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.conf -+++ prelink-0.0.20040115/debian/prelink.conf -@@ -0,0 +1,18 @@ -+# This config file contains a list of directories both with binaries -+# and libraries prelink should consider by default. -+# If a directory name is prefixed with `-l ', the directory hierarchy -+# will be walked as long as filesystem boundaries are not crossed. -+# If a directory name is prefixed with `-h ', symbolic links in a -+# directory hierarchy are followed. -+-l /usr/local/sbin -+-l /sbin -+-l /usr/sbin -+-l /usr/local/bin -+-l /bin -+-l /usr/bin -+-l /usr/X11R6/bin -+-l /usr/games -+-l /usr/local/lib -+-l /lib -+-l /usr/lib -+-l /usr/X11R6/lib diff --git a/packages/prelink/prelink-20031029/prelink.cron.daily b/packages/prelink/prelink-20031029/prelink.cron.daily deleted file mode 100644 index 91983ee18b..0000000000 --- a/packages/prelink/prelink-20031029/prelink.cron.daily +++ /dev/null @@ -1,43 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.cron.daily -+++ prelink-0.0.20040115/debian/prelink.cron.daily -@@ -0,0 +1,40 @@ -+#!/bin/sh -+ -+. /etc/default/prelink -+ -+renice +19 -p $$ >/dev/null 2>&1 -+ -+if [ "$PRELINKING" != yes ]; then -+ if [ -f /etc/prelink.cache ]; then -+ echo /usr/sbin/prelink -uav > /var/log/prelink.log -+ /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1 -+ rm -f /etc/prelink.cache -+ # Restart init if needed -+ [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u -+ fi -+ exit 0 -+fi -+ -+if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \ -+ || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then -+ # If cache does not exist or is from older prelink versions or -+ # if we were asked to explicitely, force full prelinking -+ rm -f /etc/prelink.cache /var/lib/misc/prelink.force -+ PRELINK_OPTS="$PRELINK_OPTS -f" -+ date > /var/lib/misc/prelink.full -+elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \ -+ -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \ -+ = /var/lib/misc/prelink.full ]; then -+ # If prelink without -q has been run in the last -+ # PRELINK_FULL_TIME_INTERVAL days, just use quick mode -+ PRELINK_OPTS="$PRELINK_OPTS -q" -+else -+ date > /var/lib/misc/prelink.full -+fi -+ -+echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log -+/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1 -+# Restart init if needed -+[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u -+ -+exit 0 diff --git a/packages/prelink/prelink-20031029/prelink.default b/packages/prelink/prelink-20031029/prelink.default deleted file mode 100644 index d89649e49b..0000000000 --- a/packages/prelink/prelink-20031029/prelink.default +++ /dev/null @@ -1,25 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.default -+++ prelink-0.0.20040115/debian/prelink.default -@@ -0,0 +1,22 @@ -+# Set this to no to disable prelinking altogether -+# or to yes to enable it. -+# (if you change this from yes to no prelink -ua -+# will be run next night to undo prelinking) -+PRELINKING=unknown -+ -+# Options to pass to prelink -+# -m Try to conserve virtual memory by allowing overlapping -+# assigned virtual memory slots for libraries which -+# never appear together in one binary -+# -R Randomize virtual memory slot assignments for libraries. -+# This makes it slightly harder for various buffer overflow -+# attacks, since library addresses will be different on each -+# host using -R. -+PRELINK_OPTS=-mR -+ -+# How often should full prelink be run (in days) -+# Normally, prelink will be run in quick mode, every -+# $PRELINK_FULL_TIME_INTERVAL days it will be run -+# in normal mode. Comment this line out if prelink -+# should be run in normal mode always. -+PRELINK_FULL_TIME_INTERVAL=14 diff --git a/packages/prelink/prelink-20031029/prelink.h.patch b/packages/prelink/prelink-20031029/prelink.h.patch deleted file mode 100644 index 3ca2930d3a..0000000000 --- a/packages/prelink/prelink-20031029/prelink.h.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- prelink-0.0.20030902.orig/src/prelink.h 2003-08-11 11:54:01.000000000 +0000 -+++ prelink-0.0.20030902/src/prelink.h 2003-09-16 23:26:16.000000000 +0000 -@@ -26,6 +26,45 @@ - #include - #include - -+/* http://gcc.gnu.org/ml/gcc/2003-01/msg00922.html */ -+#ifndef R_390_TLS_DTPMOD -+#define R_390_TLS_DTPMOD 54 -+#define R_390_TLS_DTPOFF 55 -+#define R_390_TLS_TPOFF 56 -+#endif -+ -+/* from http://www.cygwin.com/ml/libc-alpha/2003-02/msg00241.html */ -+#ifndef R_PPC_TLS -+#define R_PPC_TLS 67 -+#define R_PPC_DTPMOD32 68 -+#define R_PPC_TPREL16 69 -+#define R_PPC_TPREL16_LO 70 -+#define R_PPC_TPREL16_HI 71 -+#define R_PPC_TPREL16_HA 72 -+#define R_PPC_TPREL32 73 -+#define R_PPC_DTPREL16 74 -+#define R_PPC_DTPREL16_LO 75 -+#define R_PPC_DTPREL16_HI 76 -+#define R_PPC_DTPREL16_HA 77 -+#define R_PPC_DTPREL32 78 -+#define R_PPC_GOT_TLSGD16 79 -+#define R_PPC_GOT_TLSGD16_LO 80 -+#define R_PPC_GOT_TLSGD16_HI 81 -+#define R_PPC_GOT_TLSGD16_HA 82 -+#define R_PPC_GOT_TLSLD16 83 -+#define R_PPC_GOT_TLSLD16_LO 84 -+#define R_PPC_GOT_TLSLD16_HI 85 -+#define R_PPC_GOT_TLSLD16_HA 86 -+#define R_PPC_GOT_TPREL16 87 -+#define R_PPC_GOT_TPREL16_LO 88 -+#define R_PPC_GOT_TPREL16_HI 89 -+#define R_PPC_GOT_TPREL16_HA 90 -+#define R_PPC_GOT_DTPREL16 91 -+#define R_PPC_GOT_DTPREL16_LO 92 -+#define R_PPC_GOT_DTPREL16_HI 93 -+#define R_PPC_GOT_DTPREL16_HA 94 -+#endif -+ - #ifndef DT_GNU_LIBLIST - #define DT_GNU_LIBLIST 0x6ffffef9 - #define DT_GNU_LIBLISTSZ 0x6ffffdf7 diff --git a/packages/prelink/prelink-20031029/ts.Makefile.am.patch b/packages/prelink/prelink-20031029/ts.Makefile.am.patch deleted file mode 100644 index 6b8c3c5c38..0000000000 --- a/packages/prelink/prelink-20031029/ts.Makefile.am.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- prelink-0.0.20031029.orig/testsuite/Makefile.am 2003-09-02 21:44:23.000000000 +0000 -+++ prelink-0.0.20031029/testsuite/Makefile.am 2003-10-31 20:28:02.000000000 +0000 -@@ -11,7 +11,7 @@ - shuffle1.sh shuffle2.sh shuffle3.sh shuffle4.sh shuffle5.sh \ - shuffle6.sh shuffle7.sh \ - layout1.sh layout2.sh tls1.sh tls2.sh tls3.sh tls4.sh \ -- cxx1.sh quick1.sh cycle1.sh cycle2.sh \ -+ cxx1.sh cycle1.sh cycle2.sh \ - undosyslibs.sh - TESTS_ENVIRONMENT = \ - PRELINK="../src/prelink -c ./prelink.conf -C ./prelink.cache --ld-library-path=. --dynamic-linker=`echo ./ld*.so.*[0-9]`" \ diff --git a/packages/prelink/prelink-20031029/ts.Makefile.in.patch b/packages/prelink/prelink-20031029/ts.Makefile.in.patch deleted file mode 100644 index 4253badb65..0000000000 --- a/packages/prelink/prelink-20031029/ts.Makefile.in.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- prelink-0.0.20031029.orig/testsuite/Makefile.in 2003-10-28 20:01:56.000000000 +0000 -+++ prelink-0.0.20031029/testsuite/Makefile.in 2003-10-31 20:28:10.000000000 +0000 -@@ -106,7 +106,7 @@ - shuffle1.sh shuffle2.sh shuffle3.sh shuffle4.sh shuffle5.sh \ - shuffle6.sh shuffle7.sh \ - layout1.sh layout2.sh tls1.sh tls2.sh tls3.sh tls4.sh \ -- cxx1.sh quick1.sh cycle1.sh cycle2.sh \ -+ cxx1.sh cycle1.sh cycle2.sh \ - undosyslibs.sh - - TESTS_ENVIRONMENT = \ diff --git a/packages/prelink/prelink-20040304/.mtn2git_empty b/packages/prelink/prelink-20040304/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/prelink/prelink-20040304/prelink.conf b/packages/prelink/prelink-20040304/prelink.conf deleted file mode 100644 index 1777aa849e..0000000000 --- a/packages/prelink/prelink-20040304/prelink.conf +++ /dev/null @@ -1,21 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.conf -+++ prelink-0.0.20040115/debian/prelink.conf -@@ -0,0 +1,18 @@ -+# This config file contains a list of directories both with binaries -+# and libraries prelink should consider by default. -+# If a directory name is prefixed with `-l ', the directory hierarchy -+# will be walked as long as filesystem boundaries are not crossed. -+# If a directory name is prefixed with `-h ', symbolic links in a -+# directory hierarchy are followed. -+-l /usr/local/sbin -+-l /sbin -+-l /usr/sbin -+-l /usr/local/bin -+-l /bin -+-l /usr/bin -+-l /usr/X11R6/bin -+-l /usr/games -+-l /usr/local/lib -+-l /lib -+-l /usr/lib -+-l /usr/X11R6/lib diff --git a/packages/prelink/prelink-20040304/prelink.cron.daily b/packages/prelink/prelink-20040304/prelink.cron.daily deleted file mode 100644 index 91983ee18b..0000000000 --- a/packages/prelink/prelink-20040304/prelink.cron.daily +++ /dev/null @@ -1,43 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.cron.daily -+++ prelink-0.0.20040115/debian/prelink.cron.daily -@@ -0,0 +1,40 @@ -+#!/bin/sh -+ -+. /etc/default/prelink -+ -+renice +19 -p $$ >/dev/null 2>&1 -+ -+if [ "$PRELINKING" != yes ]; then -+ if [ -f /etc/prelink.cache ]; then -+ echo /usr/sbin/prelink -uav > /var/log/prelink.log -+ /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1 -+ rm -f /etc/prelink.cache -+ # Restart init if needed -+ [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u -+ fi -+ exit 0 -+fi -+ -+if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \ -+ || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then -+ # If cache does not exist or is from older prelink versions or -+ # if we were asked to explicitely, force full prelinking -+ rm -f /etc/prelink.cache /var/lib/misc/prelink.force -+ PRELINK_OPTS="$PRELINK_OPTS -f" -+ date > /var/lib/misc/prelink.full -+elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \ -+ -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \ -+ = /var/lib/misc/prelink.full ]; then -+ # If prelink without -q has been run in the last -+ # PRELINK_FULL_TIME_INTERVAL days, just use quick mode -+ PRELINK_OPTS="$PRELINK_OPTS -q" -+else -+ date > /var/lib/misc/prelink.full -+fi -+ -+echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log -+/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1 -+# Restart init if needed -+[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u -+ -+exit 0 diff --git a/packages/prelink/prelink-20040304/prelink.default b/packages/prelink/prelink-20040304/prelink.default deleted file mode 100644 index d89649e49b..0000000000 --- a/packages/prelink/prelink-20040304/prelink.default +++ /dev/null @@ -1,25 +0,0 @@ ---- prelink-0.0.20040115.orig/debian/prelink.default -+++ prelink-0.0.20040115/debian/prelink.default -@@ -0,0 +1,22 @@ -+# Set this to no to disable prelinking altogether -+# or to yes to enable it. -+# (if you change this from yes to no prelink -ua -+# will be run next night to undo prelinking) -+PRELINKING=unknown -+ -+# Options to pass to prelink -+# -m Try to conserve virtual memory by allowing overlapping -+# assigned virtual memory slots for libraries which -+# never appear together in one binary -+# -R Randomize virtual memory slot assignments for libraries. -+# This makes it slightly harder for various buffer overflow -+# attacks, since library addresses will be different on each -+# host using -R. -+PRELINK_OPTS=-mR -+ -+# How often should full prelink be run (in days) -+# Normally, prelink will be run in quick mode, every -+# $PRELINK_FULL_TIME_INTERVAL days it will be run -+# in normal mode. Comment this line out if prelink -+# should be run in normal mode always. -+PRELINK_FULL_TIME_INTERVAL=14 diff --git a/packages/prelink/prelink-20050901/.mtn2git_empty b/packages/prelink/prelink-20050901/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/prelink/prelink-20050901/arm_eabi.patch b/packages/prelink/prelink-20050901/arm_eabi.patch new file mode 100644 index 0000000000..b234af9b3f --- /dev/null +++ b/packages/prelink/prelink-20050901/arm_eabi.patch @@ -0,0 +1,286 @@ +Index: prelink-0.0.20050901/src/arch-arm.c +=================================================================== +--- prelink-0.0.20050901.orig/src/arch-arm.c 2004-09-30 17:07:57.000000000 +0100 ++++ prelink-0.0.20050901/src/arch-arm.c 2006-04-07 14:41:25.000000000 +0100 +@@ -145,6 +145,24 @@ + error (0, 0, "%s: R_ARM_PC24 relocs with non-zero addend should not be present in prelinked REL sections", + dso->filename); + return 1; ++ case R_ARM_TLS_DTPOFF32: ++ write_le32 (dso, rel->r_offset, value); ++ break; ++ /* DTPMOD32 and TPOFF32 is impossible to predict unless prelink ++ sets the rules. Also for TPOFF{32,} there is REL->RELA problem. */ ++ case R_ARM_TLS_DTPMOD32: ++ if (dso->ehdr.e_type == ET_EXEC) ++ { ++ error (0, 0, "%s: R_ARM_TLS_DTPMOD32 reloc in executable?", ++ dso->filename); ++ return 1; ++ } ++ break; ++ case R_ARM_TLS_TPOFF32: ++ if (dso->ehdr.e_type == ET_EXEC) ++ error (0, 0, "%s: R_ARM_TLS_TPOFF32 relocs should not be present in prelinked ET_EXEC REL sections", ++ dso->filename); ++ break; + case R_ARM_COPY: + if (dso->ehdr.e_type == ET_EXEC) + /* COPY relocs are handled specially in generic code. */ +@@ -195,6 +213,24 @@ + write_le32 (dso, rela->r_offset, + (read_ule32 (dso, rela->r_offset) & 0xff000000) | val); + break; ++ case R_ARM_TLS_DTPOFF32: ++ write_le32 (dso, rela->r_offset, value + rela->r_addend); ++ break; ++ /* DTPMOD32 and TPOFF32 is impossible to predict unless prelink ++ sets the rules. */ ++ case R_ARM_TLS_DTPMOD32: ++ if (dso->ehdr.e_type == ET_EXEC) ++ { ++ error (0, 0, "%s: R_ARM_TLS_DTPMOD32 reloc in executable?", ++ dso->filename); ++ return 1; ++ } ++ break; ++ case R_ARM_TLS_TPOFF32: ++ if (dso->ehdr.e_type == ET_EXEC && info->resolvetls) ++ write_le32 (dso, rela->r_offset, ++ -(value + rela->r_addend - info->resolvetls->offset)); ++ break; + case R_ARM_COPY: + if (dso->ehdr.e_type == ET_EXEC) + /* COPY relocs are handled specially in generic code. */ +@@ -315,6 +351,7 @@ + { + GElf_Addr value; + struct prelink_conflict *conflict; ++ struct prelink_tls *tls; + GElf_Rela *ret; + + if (GELF_R_TYPE (rel->r_info) == R_ARM_RELATIVE +@@ -324,8 +361,31 @@ + conflict = prelink_conflict (info, GELF_R_SYM (rel->r_info), + GELF_R_TYPE (rel->r_info)); + if (conflict == NULL) +- return 0; +- value = conflict_lookup_value (conflict); ++ { ++ if (info->curtls == NULL) ++ return 0; ++ switch (GELF_R_TYPE (rel->r_info)) ++ { ++ /* Even local DTPMOD and TPOFF relocs need conflicts. */ ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_TPOFF32: ++ break; ++ default: ++ return 0; ++ } ++ value = 0; ++ } ++ else ++ { ++ /* DTPOFF32 wants to see only real conflicts, not lookups ++ with reloc_class RTYPE_CLASS_TLS. */ ++ if (GELF_R_TYPE (rel->r_info) == R_ARM_TLS_DTPOFF32 ++ && conflict->lookup.tls == conflict->conflict.tls ++ && conflict->lookupval == conflict->conflictval) ++ return 0; ++ ++ value = conflict_lookup_value (conflict); ++ } + ret = prelink_conflict_add_rela (info); + if (ret == NULL) + return 1; +@@ -342,6 +402,33 @@ + error (0, 0, "%s: R_ARM_%s relocs should not be present in prelinked REL sections", + dso->filename, GELF_R_TYPE (rel->r_info) == R_ARM_ABS32 ? "ABS32" : "PC24"); + return 1; ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_DTPOFF32: ++ case R_ARM_TLS_TPOFF32: ++ if (conflict != NULL ++ && (conflict->reloc_class != RTYPE_CLASS_TLS ++ || conflict->lookup.tls == NULL)) ++ { ++ error (0, 0, "%s: R_ARM_TLS not resolving to STT_TLS symbol", ++ dso->filename); ++ return 1; ++ } ++ tls = conflict ? conflict->lookup.tls : info->curtls; ++ ret->r_info = GELF_R_INFO (0, R_ARM_ABS32); ++ switch (GELF_R_TYPE (rel->r_info)) ++ { ++ case R_ARM_TLS_DTPMOD32: ++ ret->r_addend = tls->modid; ++ break; ++ case R_ARM_TLS_DTPOFF32: ++ ret->r_addend = value; ++ break; ++ case R_ARM_TLS_TPOFF32: ++ ret->r_addend = -(value + read_ule32 (dso, rel->r_offset) ++ - tls->offset); ++ break; ++ } ++ break; + case R_ARM_COPY: + error (0, 0, "R_ARM_COPY should not be present in shared libraries"); + return 1; +@@ -359,6 +446,7 @@ + { + GElf_Addr value; + struct prelink_conflict *conflict; ++ struct prelink_tls *tls; + GElf_Rela *ret; + Elf32_Sword val; + +@@ -369,8 +457,31 @@ + conflict = prelink_conflict (info, GELF_R_SYM (rela->r_info), + GELF_R_TYPE (rela->r_info)); + if (conflict == NULL) +- return 0; +- value = conflict_lookup_value (conflict); ++ { ++ if (info->curtls == NULL) ++ return 0; ++ switch (GELF_R_TYPE (rela->r_info)) ++ { ++ /* Even local DTPMOD and TPOFF relocs need conflicts. */ ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_TPOFF32: ++ break; ++ default: ++ return 0; ++ } ++ value = 0; ++ } ++ else ++ { ++ /* DTPOFF32 wants to see only real conflicts, not lookups ++ with reloc_class RTYPE_CLASS_TLS. */ ++ if (GELF_R_TYPE (rela->r_info) == R_ARM_TLS_DTPOFF32 ++ && conflict->lookup.tls == conflict->conflict.tls ++ && conflict->lookupval == conflict->conflictval) ++ return 0; ++ ++ value = conflict_lookup_value (conflict); ++ } + ret = prelink_conflict_add_rela (info); + if (ret == NULL) + return 1; +@@ -398,6 +509,32 @@ + case R_ARM_COPY: + error (0, 0, "R_ARM_COPY should not be present in shared libraries"); + return 1; ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_DTPOFF32: ++ case R_ARM_TLS_TPOFF32: ++ if (conflict != NULL ++ && (conflict->reloc_class != RTYPE_CLASS_TLS ++ || conflict->lookup.tls == NULL)) ++ { ++ error (0, 0, "%s: R_386_TLS not resolving to STT_TLS symbol", ++ dso->filename); ++ return 1; ++ } ++ tls = conflict ? conflict->lookup.tls : info->curtls; ++ ret->r_info = GELF_R_INFO (0, R_ARM_ABS32); ++ switch (GELF_R_TYPE (rela->r_info)) ++ { ++ case R_ARM_TLS_DTPMOD32: ++ ret->r_addend = tls->modid; ++ break; ++ case R_ARM_TLS_DTPOFF32: ++ ret->r_addend += value; ++ break; ++ case R_ARM_TLS_TPOFF32: ++ ret->r_addend = -(value + rela->r_addend - tls->offset); ++ break; ++ } ++ break; + default: + error (0, 0, "%s: Unknown arm relocation type %d", dso->filename, + (int) GELF_R_TYPE (rela->r_info)); +@@ -418,6 +555,7 @@ + abort (); + case R_ARM_RELATIVE: + case R_ARM_ABS32: ++ case R_ARM_TLS_TPOFF32: + rela->r_addend = (Elf32_Sword) read_ule32 (dso, rel->r_offset); + break; + case R_ARM_PC24: +@@ -426,6 +564,8 @@ + break; + case R_ARM_COPY: + case R_ARM_GLOB_DAT: ++ case R_ARM_TLS_DTPOFF32: ++ case R_ARM_TLS_DTPMOD32: + rela->r_addend = 0; + break; + } +@@ -445,6 +585,7 @@ + abort (); + case R_ARM_RELATIVE: + case R_ARM_ABS32: ++ case R_ARM_TLS_TPOFF32: + write_le32 (dso, rela->r_offset, rela->r_addend); + break; + case R_ARM_PC24: +@@ -453,6 +594,8 @@ + | ((rela->r_addend >> 2) & 0xffffff)); + break; + case R_ARM_GLOB_DAT: ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_DTPOFF32: + write_le32 (dso, rela->r_offset, 0); + break; + } +@@ -488,6 +631,13 @@ + /* FALLTHROUGH */ + case R_ARM_PC24: + return 1; ++ case R_ARM_TLS_TPOFF32: ++ /* In shared libraries TPOFF is changed always into ++ conflicts, for executables we need to preserve ++ original addend. */ ++ if (dso->ehdr.e_type == ET_EXEC) ++ return 1; ++ break; + } + } + } +@@ -612,6 +762,12 @@ + return 0; + error (0, 0, "%s: R_ARM_COPY reloc in shared library?", dso->filename); + return 1; ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_DTPOFF32: ++ write_le32 (dso, rel->r_offset, 0); ++ break; ++ case R_ARM_TLS_TPOFF32: ++ break; + default: + error (0, 0, "%s: Unknown arm relocation type %d", dso->filename, + (int) GELF_R_TYPE (rel->r_info)); +@@ -634,6 +790,10 @@ + { + case R_ARM_COPY: return RTYPE_CLASS_COPY; + case R_ARM_JUMP_SLOT: return RTYPE_CLASS_PLT; ++ case R_ARM_TLS_DTPMOD32: ++ case R_ARM_TLS_DTPOFF32: ++ case R_ARM_TLS_TPOFF32: ++ return RTYPE_CLASS_TLS; + default: return RTYPE_CLASS_VALID; + } + } +@@ -646,7 +806,7 @@ + .R_JMP_SLOT = R_ARM_JUMP_SLOT, + .R_COPY = R_ARM_COPY, + .R_RELATIVE = R_ARM_RELATIVE, +- .dynamic_linker = "/lib/ld-linux.so.2", ++ .dynamic_linker = "/lib/ld-linux.so.3", + .adjust_dyn = arm_adjust_dyn, + .adjust_rel = arm_adjust_rel, + .adjust_rela = arm_adjust_rela, diff --git a/packages/prelink/prelink-20050901/prelink.conf b/packages/prelink/prelink-20050901/prelink.conf new file mode 100644 index 0000000000..c5a4f4adc3 --- /dev/null +++ b/packages/prelink/prelink-20050901/prelink.conf @@ -0,0 +1,18 @@ +# This config file contains a list of directories both with binaries +# and libraries prelink should consider by default. +# If a directory name is prefixed with `-l ', the directory hierarchy +# will be walked as long as filesystem boundaries are not crossed. +# If a directory name is prefixed with `-h ', symbolic links in a +# directory hierarchy are followed. +-l /usr/local/sbin +-l /sbin +-l /usr/sbin +-l /usr/local/bin +-l /bin +-l /usr/bin +-l /usr/X11R6/bin +-l /usr/games +-l /usr/local/lib +-l /lib +-l /usr/lib +-l /usr/X11R6/lib diff --git a/packages/prelink/prelink-20050901/prelink.cron.daily b/packages/prelink/prelink-20050901/prelink.cron.daily new file mode 100644 index 0000000000..0b3c07322c --- /dev/null +++ b/packages/prelink/prelink-20050901/prelink.cron.daily @@ -0,0 +1,40 @@ +#!/bin/sh + +. /etc/default/prelink + +renice +19 -p $$ >/dev/null 2>&1 + +if [ "$PRELINKING" != yes ]; then + if [ -f /etc/prelink.cache ]; then + echo /usr/sbin/prelink -uav > /var/log/prelink.log + /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1 + rm -f /etc/prelink.cache + # Restart init if needed + [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u + fi + exit 0 +fi + +if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \ + || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then + # If cache does not exist or is from older prelink versions or + # if we were asked to explicitely, force full prelinking + rm -f /etc/prelink.cache /var/lib/misc/prelink.force + PRELINK_OPTS="$PRELINK_OPTS -f" + date > /var/lib/misc/prelink.full +elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \ + -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \ + = /var/lib/misc/prelink.full ]; then + # If prelink without -q has been run in the last + # PRELINK_FULL_TIME_INTERVAL days, just use quick mode + PRELINK_OPTS="$PRELINK_OPTS -q" +else + date > /var/lib/misc/prelink.full +fi + +echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log +/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1 +# Restart init if needed +[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u + +exit 0 diff --git a/packages/prelink/prelink-20050901/prelink.default b/packages/prelink/prelink-20050901/prelink.default new file mode 100644 index 0000000000..901258ed2a --- /dev/null +++ b/packages/prelink/prelink-20050901/prelink.default @@ -0,0 +1,22 @@ +# Set this to no to disable prelinking altogether +# or to yes to enable it. +# (if you change this from yes to no prelink -ua +# will be run next night to undo prelinking) +PRELINKING=unknown + +# Options to pass to prelink +# -m Try to conserve virtual memory by allowing overlapping +# assigned virtual memory slots for libraries which +# never appear together in one binary +# -R Randomize virtual memory slot assignments for libraries. +# This makes it slightly harder for various buffer overflow +# attacks, since library addresses will be different on each +# host using -R. +PRELINK_OPTS=-mR + +# How often should full prelink be run (in days) +# Normally, prelink will be run in quick mode, every +# $PRELINK_FULL_TIME_INTERVAL days it will be run +# in normal mode. Comment this line out if prelink +# should be run in normal mode always. +PRELINK_FULL_TIME_INTERVAL=14 diff --git a/packages/prelink/prelink_20031029.bb b/packages/prelink/prelink_20031029.bb deleted file mode 100644 index 1788dd3342..0000000000 --- a/packages/prelink/prelink_20031029.bb +++ /dev/null @@ -1,26 +0,0 @@ -SECTION = "devel" -DEPENDS = "elfutils " -DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \ -and executables, so that far fewer relocations need to be resolved at \ -runtime and thus programs come up faster." -LICENSE = "GPL" -SRC_URI = "ftp://people.redhat.com/jakub/prelink/prelink-${PV}.tar.bz2 \ - file://dso.c.patch;patch=1 \ - file://layout.c.patch;patch=1 \ - file://Makefile.in.patch;patch=1 \ - file://prelink.h.patch;patch=1 \ - file://ts.Makefile.am.patch;patch=1 \ - file://ts.Makefile.in.patch;patch=1 \ - file://prelink.conf \ - file://prelink.cron.daily \ - file://prelink.default" -S = "${WORKDIR}/prelink" - -inherit autotools - -do_install_append () { - install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/prelink.conf ${D}${sysconfdir}/prelink.conf - install -m 0644 ${WORKDIR}/prelink.cron.daily ${D}${sysconfdir}/cron.daily/prelink - install -m 0644 ${WORKDIR}/prelink.default ${D}${sysconfdir}/default/prelink -} diff --git a/packages/prelink/prelink_20040304.bb b/packages/prelink/prelink_20040304.bb deleted file mode 100644 index bb134fe536..0000000000 --- a/packages/prelink/prelink_20040304.bb +++ /dev/null @@ -1,20 +0,0 @@ -SECTION = "devel" -DEPENDS = "elfutils " -DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \ -and executables, so that far fewer relocations need to be resolved at \ -runtime and thus programs come up faster." -LICENSE = "PRELINK" -SRC_URI = "${DEBIAN_MIRROR}/main/p/prelink/prelink_0.0.${PV}.orig.tar.gz \ - file://prelink.conf \ - file://prelink.cron.daily \ - file://prelink.default" -S = "${WORKDIR}/prelink-0.0.${PV}" - -inherit autotools - -do_install_append () { - install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/prelink.conf ${D}${sysconfdir}/prelink.conf - install -m 0644 ${WORKDIR}/prelink.cron.daily ${D}${sysconfdir}/cron.daily/prelink - install -m 0644 ${WORKDIR}/prelink.default ${D}${sysconfdir}/default/prelink -} diff --git a/packages/prelink/prelink_20040520.bb b/packages/prelink/prelink_20040520.bb deleted file mode 100644 index 922994ce3a..0000000000 --- a/packages/prelink/prelink_20040520.bb +++ /dev/null @@ -1,16 +0,0 @@ -SECTION = "devel" -DEPENDS = "elfutils " -DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \ -and executables, so that far fewer relocations need to be resolved at \ -runtime and thus programs come up faster." -LICENSE = "GPL" -SRC_URI = "ftp://people.redhat.com/jakub/prelink/prelink-${PV}.tar.bz2" -S = "${WORKDIR}/prelink" - -EXTRA_OECONF = "--disable-64bit" - -inherit autotools - -do_install_append () { - install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default -} diff --git a/packages/prelink/prelink_20050901.bb b/packages/prelink/prelink_20050901.bb new file mode 100644 index 0000000000..a83ff1b61f --- /dev/null +++ b/packages/prelink/prelink_20050901.bb @@ -0,0 +1,46 @@ +SECTION = "devel" +DEPENDS = "elfutils" +DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \ +and executables, so that far fewer relocations need to be resolved at \ +runtime and thus programs come up faster." +LICENSE = "GPL" +PR = "r2" + +SRC_URI = "${DEBIAN_MIRROR}/main/p/prelink/prelink_0.0.${PV}.orig.tar.gz \ + file://prelink.conf \ + file://prelink.cron.daily \ + file://prelink.default" + +TARGET_OS_ORIG := "${TARGET_OS}" +OVERRIDES_append = ":${TARGET_OS_ORIG}" +SRC_URI_append_linux-gnueabi = " file://arm_eabi.patch;patch=1" + +S = "${WORKDIR}/prelink-0.0.${PV}" + +EXTRA_OECONF = "--disable-64bit" + +inherit autotools + +do_install_append () { + install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/prelink.conf ${D}${sysconfdir}/prelink.conf + install -m 0644 ${WORKDIR}/prelink.cron.daily ${D}${sysconfdir}/cron.daily/prelink + install -m 0644 ${WORKDIR}/prelink.default ${D}${sysconfdir}/default/prelink +} + +pkg_postinst_prelink() { +#!/bin/sh + +if [ "x$D" != "x" ]; then + exit 1 +fi + +prelink -a +} + +pkg_postrm_prelink() { +#!/bin/sh + +prelink -au +} + -- cgit v1.2.3 From 734c5296cdfc25ec221233f49455e1280a64a595 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 10 Apr 2006 22:12:08 +0000 Subject: Add fakechroot and fakechroot-native --- packages/fakechroot/.mtn2git_empty | 0 packages/fakechroot/fakechroot-native_2.5.bb | 12 ++++++++++++ packages/fakechroot/fakechroot_2.5.bb | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 packages/fakechroot/.mtn2git_empty create mode 100644 packages/fakechroot/fakechroot-native_2.5.bb create mode 100644 packages/fakechroot/fakechroot_2.5.bb diff --git a/packages/fakechroot/.mtn2git_empty b/packages/fakechroot/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/fakechroot/fakechroot-native_2.5.bb b/packages/fakechroot/fakechroot-native_2.5.bb new file mode 100644 index 0000000000..5af3e79467 --- /dev/null +++ b/packages/fakechroot/fakechroot-native_2.5.bb @@ -0,0 +1,12 @@ +SECTION = "base" +PR = "r0" +include fakechroot_${PV}.bb +inherit native + +S = "${WORKDIR}/fakechroot-${PV}" + +EXTRA_OECONF = " --program-prefix=" + +do_stage_append () { + oe_libinstall -so libfakechroot ${STAGING_LIBDIR}/libfakechroot/ +} diff --git a/packages/fakechroot/fakechroot_2.5.bb b/packages/fakechroot/fakechroot_2.5.bb new file mode 100644 index 0000000000..c791512185 --- /dev/null +++ b/packages/fakechroot/fakechroot_2.5.bb @@ -0,0 +1,7 @@ +SECTION = "base" +DESCRIPTION = "Gives a fake root environment which can support chroot" +LICENSE = "GPL" + +SRC_URI = "${DEBIAN_MIRROR}/main/f/fakechroot/fakechroot_${PV}.orig.tar.gz" + +inherit autotools -- cgit v1.2.3 From d067171824b7a8a2d1a5d734b99fffe00fb128e0 Mon Sep 17 00:00:00 2001 From: Mike Westerhof Date: Tue, 11 Apr 2006 03:47:17 +0000 Subject: Unslung: update URI for unslung 6.8 beta modules --- conf/distro/unslung.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf index 1308340887..a26e790fd5 100644 --- a/conf/distro/unslung.conf +++ b/conf/distro/unslung.conf @@ -8,7 +8,7 @@ DISTRO_TYPE = "beta" FEED_URIS = "cross##http://ipkg.nslu2-linux.org/feeds/optware/nslu2/cross/stable" FEED_URIS += "native##http://ipkg.nslu2-linux.org/feeds/optware/nslu2/native/stable" -FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/modules/cross/stable" +FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/modules/cross/6.8-beta" # pull in the frozen list of bbfiles UNSLUNG_EXTRA_BBFILES ?= "" -- cgit v1.2.3 From 02a7ba97f61e2d7ec73013612472307f0d9a8b34 Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Tue, 11 Apr 2006 08:18:44 +0000 Subject: orbit2-native_2.14.0.bb : fix the SRC_URI bug #830 --- packages/gnome/orbit2-native_2.14.0.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gnome/orbit2-native_2.14.0.bb b/packages/gnome/orbit2-native_2.14.0.bb index c10afb58db..2d52ab7eee 100644 --- a/packages/gnome/orbit2-native_2.14.0.bb +++ b/packages/gnome/orbit2-native_2.14.0.bb @@ -1,7 +1,7 @@ DESCRIPTION = "CORBA ORB" LICENSE = "LGPL GPL" SECTION = "x11/gnome/libs" -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.13/ORBit2-${PV}.tar.bz2 \ +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.14/ORBit2-${PV}.tar.bz2 \ file://configure-lossage.patch;patch=1;pnum=1 \ file://gtk-doc.m4 \ file://gtk-doc.make" -- cgit v1.2.3