From b292896e382b8394ef147b105de0eccd4bd78be7 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Thu, 9 May 2019 01:39:14 +0000 Subject: Thu May 9 01:39:14 UTC 2019 a/hwdata-0.323-noarch-1.txz: Upgraded. a/kernel-generic-4.19.41-x86_64-1.txz: Upgraded. a/kernel-huge-4.19.41-x86_64-1.txz: Upgraded. a/kernel-modules-4.19.41-x86_64-1.txz: Upgraded. a/usbutils-012-x86_64-1.txz: Upgraded. ap/lsof-4.93.2-x86_64-1.txz: Upgraded. d/gcc-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-brig-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-g++-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-gdc-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-gfortran-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-gnat-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-go-9.1.0-x86_64-4.txz: Rebuilt. d/gcc-objc-9.1.0-x86_64-4.txz: Rebuilt. Add support for Objective-C++. Thanks to USUARIONUEVO. d/kernel-headers-4.19.41-x86-1.txz: Upgraded. d/python-pip-19.1.1-x86_64-1.txz: Upgraded. k/kernel-source-4.19.41-noarch-1.txz: Upgraded. l/gegl-0.4.16-x86_64-1.txz: Upgraded. l/vte-0.56.3-x86_64-1.txz: Upgraded. xap/mozilla-firefox-60.6.3esr-x86_64-1.txz: Upgraded. This update provides further improvements to re-enable web extensions which had been disabled for users with a master password set (Bug 1549249). For more information, see: https://www.mozilla.org/en-US/firefox/60.6.3/releasenotes/ isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt. --- source/a/usbutils/usbreset.c | 188 ---------------------------------- source/a/usbutils/usbutils.SlackBuild | 9 +- 2 files changed, 7 insertions(+), 190 deletions(-) delete mode 100644 source/a/usbutils/usbreset.c (limited to 'source/a') diff --git a/source/a/usbutils/usbreset.c b/source/a/usbutils/usbreset.c deleted file mode 100644 index abab5434c..000000000 --- a/source/a/usbutils/usbreset.c +++ /dev/null @@ -1,188 +0,0 @@ -/* usbreset -- send a USB port reset to a USB device */ -/* To build: gcc -o usbreset usbreset.c */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - - -static char *usbfs = NULL; - -struct usbentry { - int bus_num; - int dev_num; - int vendor_id; - int product_id; - char vendor_name[128]; - char product_name[128]; -}; - -static char *sysfs_attr(const char *dev, const char *attr) -{ - int fd, len = 0; - char path[PATH_MAX]; - static char buf[129]; - - memset(buf, 0, sizeof(buf)); - snprintf(path, sizeof(path) - 1, "/sys/bus/usb/devices/%s/%s", dev, attr); - - fd = open(path, O_RDONLY); - if (fd >= 0) { - len = read(fd, buf, sizeof(buf) - 1); - close(fd); - } - - while (--len > 0 && isspace(buf[len])) - buf[len] = 0; - - return (len >= 0) ? buf : NULL; -} - -static struct usbentry *parse_devlist(DIR *d) -{ - char *attr; - struct dirent *e; - static struct usbentry dev; - - do { - e = readdir(d); - - if (!e) - return NULL; - } while (!isdigit(e->d_name[0]) || strchr(e->d_name, ':')); - - memset(&dev, 0, sizeof(dev)); - - attr = sysfs_attr(e->d_name, "busnum"); - if (attr) - dev.bus_num = strtoul(attr, NULL, 10); - - attr = sysfs_attr(e->d_name, "devnum"); - if (attr) - dev.dev_num = strtoul(attr, NULL, 10); - - attr = sysfs_attr(e->d_name, "idVendor"); - if (attr) - dev.vendor_id = strtoul(attr, NULL, 16); - - attr = sysfs_attr(e->d_name, "idProduct"); - if (attr) - dev.product_id = strtoul(attr, NULL, 16); - - attr = sysfs_attr(e->d_name, "manufacturer"); - if (attr) - strcpy(dev.vendor_name, attr); - - attr = sysfs_attr(e->d_name, "product"); - if (attr) - strcpy(dev.product_name, attr); - - if (dev.bus_num && dev.dev_num && dev.vendor_id && dev.product_id) - return &dev; - - return NULL; -} - -static void list_devices(void) -{ - DIR *devs = opendir("/sys/bus/usb/devices"); - struct usbentry *dev; - - if (!devs) - return; - - while ((dev = parse_devlist(devs)) != NULL) - printf(" Number %03d/%03d ID %04x:%04x %s\n", - dev->bus_num, dev->dev_num, - dev->vendor_id, dev->product_id, - dev->product_name); - - closedir(devs); -} - -struct usbentry *find_device(int *bus, int *dev, int *vid, int *pid, - const char *product) -{ - DIR *devs = opendir("/sys/bus/usb/devices"); - - struct usbentry *e, *match = NULL; - - if (!devs) - return NULL; - - while ((e = parse_devlist(devs)) != NULL) - if ((bus && (e->bus_num == *bus) && (e->dev_num == *dev)) || - (vid && (e->vendor_id == *vid) && (e->product_id == *pid)) || - (product && !strcasecmp(e->product_name, product))) { - match = e; - break; - } - - closedir(devs); - - return match; -} - -static void reset_device(struct usbentry *dev) -{ - int fd; - char path[PATH_MAX]; - - snprintf(path, sizeof(path) - 1, "/dev/bus/usb/%03d/%03d", - dev->bus_num, dev->dev_num); - - printf("Resetting %s ... ", dev->product_name); - - fd = open(path, O_WRONLY); - if (fd > -1) { - if (ioctl(fd, USBDEVFS_RESET, 0) < 0) - printf("failed [%s]\n", strerror(errno)); - else - printf("ok\n"); - - close(fd); - } else { - printf("can't open [%s]\n", strerror(errno)); - } -} - - -int main(int argc, char **argv) -{ - int id1, id2; - struct usbentry *dev; - - if ((argc == 2) && (sscanf(argv[1], "%3d/%3d", &id1, &id2) == 2)) - dev = find_device(&id1, &id2, NULL, NULL, NULL); - else if ((argc == 2) && (sscanf(argv[1], "%4x:%4x", &id1, &id2) == 2)) - dev = find_device(NULL, NULL, &id1, &id2, NULL); - else if ((argc == 2) && strlen(argv[1]) < 128) - dev = find_device(NULL, NULL, NULL, NULL, argv[1]); - else { - printf("Usage:\n" - " usbreset PPPP:VVVV - reset by product and vendor id\n" - " usbreset BBB/DDD - reset by bus and device number\n" - " usbreset \"Product\" - reset by product name\n\n" - "Devices:\n"); - list_devices(); - return 1; - } - - if (!dev) { - fprintf(stderr, "No such device found\n"); - return 1; - } - - reset_device(dev); - return 0; -} diff --git a/source/a/usbutils/usbutils.SlackBuild b/source/a/usbutils/usbutils.SlackBuild index 88497af22..4b0b86943 100755 --- a/source/a/usbutils/usbutils.SlackBuild +++ b/source/a/usbutils/usbutils.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2011, 2013, 2015, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2011, 2013, 2015, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -81,6 +81,10 @@ find . \ #rm -f usb.ids* #wget $(grep 'SRC=' update-usbids.sh.in | cut -d= -f2- | tr -d \") +if [ ! -r configure ]; then + NOCONFIGURE=1 ./autogen.sh +fi + # Use --datadir=/usr/share/hwdata so usb.ids is expected to be there CFLAGS="$SLKCFLAGS" \ ./configure \ @@ -95,7 +99,7 @@ make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG || exit 1 # Include the example usbreset program -gcc ${SLKCFLAGS} -o $PKG/usr/bin/usbreset $CWD/usbreset.c || exit 1 +gcc ${SLKCFLAGS} -o $PKG/usr/bin/usbreset usbreset.c || exit 1 chmod 0755 $PKG/usr/bin/usbreset find $PKG | xargs file | grep -e "executable" -e "shared object" \ @@ -119,6 +123,7 @@ fi mkdir -p $PKG/usr/doc/usbutils-$VERSION cp -a \ AUTHORS COPYING* NEWS README* \ + LICENSES/* \ $PKG/usr/doc/usbutils-$VERSION # If there's a ChangeLog, installing at least part of the recent history -- cgit v1.2.3