aboutsummaryrefslogtreecommitdiffstats
path: root/security/trezord
diff options
context:
space:
mode:
authorale <ale@FreeBSD.org>2018-08-28 16:39:37 +0800
committerale <ale@FreeBSD.org>2018-08-28 16:39:37 +0800
commit6a4c9f91af40c8bad1b126e9126b44ac3edff4b6 (patch)
treefb765f5ac9e81df0f8ca97cf04e6095605d968ee /security/trezord
parent7c61321e6e60ef393baf6d5a9ba6a90d65487452 (diff)
downloadfreebsd-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/Makefile10
-rw-r--r--security/trezord/distinfo6
-rw-r--r--security/trezord/files/extra-patch-usb_webusb.go54
-rw-r--r--security/trezord/files/patch-freebsd65
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 {