diff options
author | ale <ale@FreeBSD.org> | 2018-08-28 16:39:37 +0800 |
---|---|---|
committer | ale <ale@FreeBSD.org> | 2018-08-28 16:39:37 +0800 |
commit | 6a4c9f91af40c8bad1b126e9126b44ac3edff4b6 (patch) | |
tree | fb765f5ac9e81df0f8ca97cf04e6095605d968ee /security/trezord | |
parent | 7c61321e6e60ef393baf6d5a9ba6a90d65487452 (diff) | |
download | freebsd-ports-gnome-6a4c9f91af40c8bad1b126e9126b44ac3edff4b6.tar.gz freebsd-ports-gnome-6a4c9f91af40c8bad1b126e9126b44ac3edff4b6.tar.zst freebsd-ports-gnome-6a4c9f91af40c8bad1b126e9126b44ac3edff4b6.zip |
Update to 2.0.21 release.
Diffstat (limited to 'security/trezord')
-rw-r--r-- | security/trezord/Makefile | 10 | ||||
-rw-r--r-- | security/trezord/distinfo | 6 | ||||
-rw-r--r-- | security/trezord/files/extra-patch-usb_webusb.go | 54 | ||||
-rw-r--r-- | security/trezord/files/patch-freebsd | 65 |
4 files changed, 78 insertions, 57 deletions
diff --git a/security/trezord/Makefile b/security/trezord/Makefile index 1ff6eef6ddd9..c5ef542fae4b 100644 --- a/security/trezord/Makefile +++ b/security/trezord/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= trezord -PORTVERSION= 2.0.20 +PORTVERSION= 2.0.21 DISTVERSIONPREFIX= v CATEGORIES= security @@ -23,4 +23,10 @@ PATCH_STRIP= -p1 PLIST_FILES= bin/${GH_PROJECT} -.include <bsd.port.mk> +.include <bsd.port.pre.mk> + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1102000 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-usb_webusb.go +.endif + +.include <bsd.port.post.mk> diff --git a/security/trezord/distinfo b/security/trezord/distinfo index c6f2f725f0b5..ab33214cf4f2 100644 --- a/security/trezord/distinfo +++ b/security/trezord/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1532522034 -SHA256 (trezor-trezord-go-v2.0.20_GH0.tar.gz) = ec1a033c828e6c657a36645c5a1feaff14e6f8bf74d5cba6feed00295716fe1c -SIZE (trezor-trezord-go-v2.0.20_GH0.tar.gz) = 953083 +TIMESTAMP = 1535444563 +SHA256 (trezor-trezord-go-v2.0.21_GH0.tar.gz) = e8987e2f998555d354297d0c00a79f0f3eb8343cff8e96241646638d7350f52a +SIZE (trezor-trezord-go-v2.0.21_GH0.tar.gz) = 953365 diff --git a/security/trezord/files/extra-patch-usb_webusb.go b/security/trezord/files/extra-patch-usb_webusb.go new file mode 100644 index 000000000000..d934907da9f5 --- /dev/null +++ b/security/trezord/files/extra-patch-usb_webusb.go @@ -0,0 +1,54 @@ +diff --git a/usb/webusb.go b/usb/webusb.go +index eb8cadd..1366074 100644 +--- a/usb/webusb.go ++++ b/usb/webusb.go +@@ -226,13 +232,21 @@ func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { + } + + func (b *WebUSB) identify(dev lowlevel.Device) string { +- var ports [8]byte +- p, err := lowlevel.Get_Port_Numbers(dev, ports[:]) +- if err != nil { +- b.mw.Println(fmt.Sprintf("webusb - identify - error getting port numbers %s", err.Error())) +- return "" ++ var path string ++ if runtime.GOOS != "freebsd" { ++ var ports [8]byte ++ p, err := lowlevel.Get_Port_Numbers(dev, ports[:]) ++ if err != nil { ++ b.mw.Println(fmt.Sprintf("webusb - identify - error getting port numbers %s", err.Error())) ++ return "" ++ } ++ path = hex.EncodeToString(p) ++ } else { ++ bn := lowlevel.Get_Bus_Number(dev) ++ da := lowlevel.Get_Device_Address(dev) ++ path = fmt.Sprintf("%02x%02x", bn, da) + } +- return webusbPrefix + hex.EncodeToString(p) ++ return webusbPrefix + path + } + + type WUD struct { +@@ -279,6 +293,12 @@ func (d *WUD) finishReadQueue() { + } + + func (d *WUD) readWrite(buf []byte, endpoint uint8) (int, error) { ++ var timeout uint ++ if runtime.GOOS != "freebsd" { ++ timeout = usbTimeout ++ } else { ++ timeout = 0 ++ } + d.mw.Println("webusb - rw - start") + for { + d.mw.Println("webusb - rw - checking closed") +@@ -291,7 +311,7 @@ func (d *WUD) readWrite(buf []byte, endpoint uint8) (int, error) { + d.mw.Println("webusb - rw - lock transfer mutex") + d.transferMutex.Lock() + d.mw.Println("webusb - rw - actual interrupt transport") +- p, err := lowlevel.Interrupt_Transfer(d.dev, endpoint, buf, usbTimeout) ++ p, err := lowlevel.Interrupt_Transfer(d.dev, endpoint, buf, timeout) + d.transferMutex.Unlock() + d.mw.Println("webusb - rw - single transfer done") + diff --git a/security/trezord/files/patch-freebsd b/security/trezord/files/patch-freebsd index 929e0a8a0b48..3b4ed3420101 100644 --- a/security/trezord/files/patch-freebsd +++ b/security/trezord/files/patch-freebsd @@ -161,7 +161,7 @@ index a85a143..8448510 100644 package lowlevel diff --git a/usb/webusb.go b/usb/webusb.go -index eb8cadd..ff42885 100644 +index eb8cadd..1366074 100644 --- a/usb/webusb.go +++ b/usb/webusb.go @@ -3,6 +3,7 @@ package usb @@ -172,60 +172,21 @@ index eb8cadd..ff42885 100644 "strings" "sync" "sync/atomic" -@@ -216,7 +217,7 @@ func (b *WebUSB) match(dev lowlevel.Device) bool { +@@ -214,9 +215,14 @@ func (b *WebUSB) match(dev lowlevel.Device) bool { + b.mw.Println("webusb - match - error getting config descriptor " + err.Error()) + return false } - return (c.BNumInterfaces > webIfaceNum && - c.Interface[webIfaceNum].Num_altsetting > webAltSetting && +- return (c.BNumInterfaces > webIfaceNum && +- c.Interface[webIfaceNum].Num_altsetting > webAltSetting && - c.Interface[webIfaceNum].Altsetting[webAltSetting].BInterfaceClass == lowlevel.CLASS_VENDOR_SPEC) -+ (c.Interface[webIfaceNum].Altsetting[webAltSetting].BInterfaceClass == lowlevel.CLASS_VENDOR_SPEC || runtime.GOOS == "freebsd")) - } - - func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { -@@ -226,13 +227,19 @@ func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { - } - - func (b *WebUSB) identify(dev lowlevel.Device) string { -- var ports [8]byte -- p, err := lowlevel.Get_Port_Numbers(dev, ports[:]) -- if err != nil { -- b.mw.Println(fmt.Sprintf("webusb - identify - error getting port numbers %s", err.Error())) -- return "" + if runtime.GOOS != "freebsd" { -+ var ports [8]byte -+ p, err := lowlevel.Get_Port_Numbers(dev, ports[:]) -+ if err != nil { -+ b.mw.Println(fmt.Sprintf("webusb - identify - error getting port numbers %s", err.Error())) -+ return "" -+ } -+ return webusbPrefix + hex.EncodeToString(p) ++ return (c.BNumInterfaces > webIfaceNum && ++ c.Interface[webIfaceNum].Num_altsetting > webAltSetting && ++ c.Interface[webIfaceNum].Altsetting[webAltSetting].BInterfaceClass == lowlevel.CLASS_VENDOR_SPEC) + } else { -+ bn := lowlevel.Get_Bus_Number(dev) -+ da := lowlevel.Get_Device_Address(dev) -+ return fmt.Sprintf("%s%02x%02x", webusbPrefix, bn, da) - } -- return webusbPrefix + hex.EncodeToString(p) - } - - type WUD struct { -@@ -279,6 +286,12 @@ func (d *WUD) finishReadQueue() { - } - - func (d *WUD) readWrite(buf []byte, endpoint uint8) (int, error) { -+ var timeout uint -+ if runtime.GOOS != "freebsd" { -+ timeout = usbTimeout -+ } else { -+ timeout = 0 ++ return (c.BNumInterfaces > webIfaceNum && ++ c.Interface[webIfaceNum].Num_altsetting > webAltSetting) + } - d.mw.Println("webusb - rw - start") - for { - d.mw.Println("webusb - rw - checking closed") -@@ -291,7 +304,7 @@ func (d *WUD) readWrite(buf []byte, endpoint uint8) (int, error) { - d.mw.Println("webusb - rw - lock transfer mutex") - d.transferMutex.Lock() - d.mw.Println("webusb - rw - actual interrupt transport") -- p, err := lowlevel.Interrupt_Transfer(d.dev, endpoint, buf, usbTimeout) -+ p, err := lowlevel.Interrupt_Transfer(d.dev, endpoint, buf, timeout) - d.transferMutex.Unlock() - d.mw.Println("webusb - rw - single transfer done") + } + func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { |