From owner-svn-ports-all@freebsd.org Mon Jun 11 10:08:12 2018 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BF87100B37A; Mon, 11 Jun 2018 10:08:12 +0000 (UTC) (envelope-from ale@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C9017AFC6; Mon, 11 Jun 2018 10:08:12 +0000 (UTC) (envelope-from ale@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2F6961A00A; Mon, 11 Jun 2018 10:08:12 +0000 (UTC) (envelope-from ale@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w5BA8C4v055592; Mon, 11 Jun 2018 10:08:12 GMT (envelope-from ale@FreeBSD.org) Received: (from ale@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w5BA8B8H055587; Mon, 11 Jun 2018 10:08:11 GMT (envelope-from ale@FreeBSD.org) Message-Id: <201806111008.w5BA8B8H055587@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ale set sender to ale@FreeBSD.org using -f From: Alex Dupre Date: Mon, 11 Jun 2018 10:08:11 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r472181 - in head/security/trezord: . files X-SVN-Group: ports-head X-SVN-Commit-Author: ale X-SVN-Commit-Paths: in head/security/trezord: . files X-SVN-Commit-Revision: 472181 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 10:08:13 -0000 Author: ale Date: Mon Jun 11 10:08:10 2018 New Revision: 472181 URL: https://svnweb.freebsd.org/changeset/ports/472181 Log: Update to 2.0.14 release. Switch from deprecated C++ version to supported Go version. Added: head/security/trezord/files/patch-freebsd (contents, props changed) Deleted: head/security/trezord/files/config.proto head/security/trezord/files/patch-CMakeLists.txt head/security/trezord/files/patch-src_core.hpp head/security/trezord/files/patch-src_main.cpp head/security/trezord/files/patch-src_wire.hpp head/security/trezord/files/usb.hpp Modified: head/security/trezord/Makefile head/security/trezord/distinfo head/security/trezord/files/trezord.in head/security/trezord/pkg-descr Modified: head/security/trezord/Makefile ============================================================================== --- head/security/trezord/Makefile Mon Jun 11 10:07:49 2018 (r472180) +++ head/security/trezord/Makefile Mon Jun 11 10:08:10 2018 (r472181) @@ -2,10 +2,8 @@ # $FreeBSD$ PORTNAME= trezord -PORTVERSION= 1.2.1 -PORTREVISION= 2 +PORTVERSION= 2.0.14 CATEGORIES= security -MASTER_SITES= LOCAL/ale MAINTAINER= ale@FreeBSD.org COMMENT= TREZOR Communication Daemon aka TREZOR Bridge @@ -13,30 +11,16 @@ COMMENT= TREZOR Communication Daemon aka TREZOR Bridge LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= protoc:devel/protobuf \ - boost-libs>=0:devel/boost-libs -LIB_DEPENDS= libcurl.so:ftp/curl \ - libjsoncpp.so:devel/jsoncpp \ - libmicrohttpd.so:www/libmicrohttpd - -USES= cmake compiler:c++11-lang pkgconfig - +USES= go USE_RC_SUBR= ${PORTNAME} +USE_GITHUB= yes +GH_ACCOUNT= trezor +GH_PROJECT= ${PORTNAME}-go +GH_TAGNAME= v${PORTVERSION} +GO_PKGNAME= github.com/${GH_ACCOUNT}/${GH_PROJECT} -CMAKE_ARGS+= -DJSONCPP_INCLUDE_DIR:STRING="${LOCALBASE}/include/jsoncpp" \ - -DJSONCPP_LIBRARY:STRING="-L${LOCALBASE}/lib -ljsoncpp" +PATCH_STRIP= -p1 -PLIST_FILES= sbin/${PORTNAME} - -post-extract: - ${CP} ${FILESDIR}/usb.hpp ${WRKSRC}/src/ - ${CP} ${FILESDIR}/config.proto ${WRKSRC}/src/config/ - -pre-build: - cd ${WRKSRC}/src/config && ${LOCALBASE}/bin/protoc \ - -I${LOCALBASE}/include -I. --cpp_out=. config.proto - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}/${PREFIX}/sbin/ +PLIST_FILES= bin/${GH_PROJECT} .include Modified: head/security/trezord/distinfo ============================================================================== --- head/security/trezord/distinfo Mon Jun 11 10:07:49 2018 (r472180) +++ head/security/trezord/distinfo Mon Jun 11 10:08:10 2018 (r472181) @@ -1,3 +1,3 @@ -TIMESTAMP = 1514538815 -SHA256 (trezord-1.2.1.tar.gz) = aad7426ffd765977b6013d2efe675748027dd61b83dfc3a9ad28e4331fbc0d53 -SIZE (trezord-1.2.1.tar.gz) = 465139 +TIMESTAMP = 1528707476 +SHA256 (trezor-trezord-go-2.0.14-v2.0.14_GH0.tar.gz) = a28001afe130a717e5366fdb5ec16e10ca44d6bdd366694f844efda830a08f68 +SIZE (trezor-trezord-go-2.0.14-v2.0.14_GH0.tar.gz) = 859521 Added: head/security/trezord/files/patch-freebsd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/trezord/files/patch-freebsd Mon Jun 11 10:08:10 2018 (r472181) @@ -0,0 +1,242 @@ +diff --git a/trezord.go b/trezord.go +index e1b7261..75b14bb 100644 +--- a/trezord.go ++++ b/trezord.go +@@ -6,6 +6,7 @@ import ( + "io" + "log" + "os" ++ "runtime" + "strconv" + + "github.com/trezor/trezord-go/memorywriter" +@@ -82,7 +83,11 @@ func main() { + if err != nil { + stderrLogger.Fatalf("hidapi: %s", err) + } +- bus = append(bus, w, h) ++ if runtime.GOOS != "freebsd" { ++ bus = append(bus, w, h) ++ } else { ++ bus = append(bus, w) ++ } + } + + longMemoryWriter.Println(fmt.Sprintf("UDP port count - %d", len(ports))) +diff --git a/usb/webusb.go b/usb/webusb.go +index ee9c8d3..017fbf2 100644 +--- a/usb/webusb.go ++++ b/usb/webusb.go +@@ -3,6 +3,7 @@ package usb + import ( + "encoding/hex" + "fmt" ++ "runtime" + "strings" + "sync" + "sync/atomic" +@@ -188,7 +189,7 @@ func (b *WebUSB) match(dev usbhid.Device) bool { + } + return (c.BNumInterfaces > webIfaceNum && + c.Interface[webIfaceNum].Num_altsetting > webAltSetting && +- c.Interface[webIfaceNum].Altsetting[webAltSetting].BInterfaceClass == usbhid.CLASS_VENDOR_SPEC) ++ (c.Interface[webIfaceNum].Altsetting[webAltSetting].BInterfaceClass == usbhid.CLASS_VENDOR_SPEC || runtime.GOOS == "freebsd")) + } + + func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { +@@ -198,13 +199,19 @@ func (b *WebUSB) matchVidPid(vid uint16, pid uint16) bool { + } + + func (b *WebUSB) identify(dev usbhid.Device) string { +- var ports [8]byte +- p, err := usbhid.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 := usbhid.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) ++ } else { ++ bn := usbhid.Get_Bus_Number(dev) ++ da := usbhid.Get_Device_Address(dev) ++ return fmt.Sprintf("%s%02x%02x", webusbPrefix, bn, da) + } +- return webusbPrefix + hex.EncodeToString(p) + } + + type WUD struct { +@@ -251,6 +258,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") +@@ -263,7 +276,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 := usbhid.Interrupt_Transfer(d.dev, endpoint, buf, usbTimeout) ++ p, err := usbhid.Interrupt_Transfer(d.dev, endpoint, buf, timeout) + d.transferMutex.Unlock() + d.mw.Println("webusb - rw - single transfer done") + +diff --git a/vendor/github.com/trezor/usbhid/hid.go b/vendor/github.com/trezor/usbhid/hid.go +index 114c1fe..4052529 100644 +--- a/vendor/github.com/trezor/usbhid/hid.go ++++ b/vendor/github.com/trezor/usbhid/hid.go +@@ -6,7 +6,7 @@ + + // Package hid provides an interface for USB HID devices. + +-// +build linux,cgo darwin,!ios,cgo windows,cgo ++// +build linux,cgo freebsd,cgo darwin,!ios,cgo windows,cgo + + package usbhid + +@@ -15,6 +15,8 @@ package usbhid + + #cgo linux CFLAGS: -DDEFAULT_VISIBILITY="" -DOS_LINUX -D_GNU_SOURCE -DPOLL_NFDS_TYPE=int + #cgo linux,!android LDFLAGS: -lrt ++#cgo freebsd CFLAGS: -DOS_FREEBSD ++#cgo freebsd LDFLAGS: -lusb + #cgo darwin CFLAGS: -DOS_DARWIN -DDEFAULT_VISIBILITY="" -DPOLL_NFDS_TYPE="unsigned int" + #cgo darwin LDFLAGS: -framework CoreFoundation -framework IOKit -lobjc + #cgo windows CFLAGS: -DOS_WINDOWS -DDEFAULT_VISIBILITY="" -DPOLL_NFDS_TYPE="unsigned int" +@@ -25,6 +27,8 @@ package usbhid + #include + + #include "os/threads_posix.c" ++#elif OS_FREEBSD ++ #include + #elif OS_DARWIN + #include + #include +@@ -38,17 +42,21 @@ package usbhid + #include + #endif + +-#include "libusbi.h" +-#include "libusb.h" +-#include "version.h" +-#include "version_nano.h" +-#include "core.c" +-#include "descriptor.c" +-#include "hotplug.h" +-#include "hotplug.c" +-#include "io.c" +-#include "strerror.c" +-#include "sync.c" ++#ifndef OS_FREEBSD ++ #include "libusbi.h" ++ #include "libusb.h" ++ #include "version.h" ++ #include "version_nano.h" ++ #include "core.c" ++ #include "descriptor.c" ++ #include "hotplug.h" ++ #include "hotplug.c" ++ #include "io.c" ++ #include "strerror.c" ++ #include "sync.c" ++#else ++ #include ++#endif + + #ifdef OS_LINUX + #include "os/poll_posix.h" +@@ -74,6 +82,8 @@ package usbhid + + #ifdef OS_LINUX + #include "linux/hid.c" ++#elif OS_FREEBSD ++ #include "linux/hid.c" + #elif OS_DARWIN + #include "mac/hid.c" + #elif OS_WINDOWS +diff --git a/vendor/github.com/trezor/usbhid/libusb.go b/vendor/github.com/trezor/usbhid/libusb.go +index 13a2a66..b443102 100644 +--- a/vendor/github.com/trezor/usbhid/libusb.go ++++ b/vendor/github.com/trezor/usbhid/libusb.go +@@ -12,9 +12,15 @@ Copyright (c) 2017 Jason T. Harris + package usbhid + + /* +-// +build linux,cgo darwin,!ios,cgo windows,cgo ++// +build linux,cgo freebsd,cgo darwin,!ios,cgo windows,cgo + ++#cgo freebsd LDFLAGS: -lusb ++ ++#ifndef __FreeBSD__ + #include "./c/libusb/libusb.h" ++#else ++#include ++#endif + + // When a C struct ends with a zero-sized field, but the struct itself is not zero-sized, + // Go code can no longer refer to the zero-sized field. Any such references will have to be rewritten. +@@ -921,9 +927,11 @@ func Get_Port_Numbers(dev Device, ports []byte) ([]byte, error) { + return ports[:rc], nil + } + ++/* + func Get_Parent(dev Device) Device { + return C.libusb_get_parent(dev) + } ++*/ + + func Get_Device_Address(dev Device) uint8 { + return uint8(C.libusb_get_device_address(dev)) +@@ -1066,10 +1074,12 @@ func Set_Auto_Detach_Kernel_Driver(hdl Device_Handle, enable bool) error { + //----------------------------------------------------------------------------- + // Miscellaneous + ++/* + func Has_Capability(capability uint32) bool { + rc := int(C.libusb_has_capability((C.uint32_t)(capability))) + return rc != 0 + } ++*/ + + func Error_Name(code int) string { + return C.GoString(C.libusb_error_name(C.int(code))) +@@ -1084,6 +1094,7 @@ func CPU_To_LE16(x uint16) uint16 { + return uint16(C.libusb_cpu_to_le16((C.uint16_t)(x))) + } + ++/* + func Setlocale(locale string) error { + cstr := C.CString(locale) + rc := int(C.libusb_setlocale(cstr)) +@@ -1092,6 +1103,7 @@ func Setlocale(locale string) error { + } + return nil + } ++*/ + + func Strerror(errcode int) string { + return C.GoString(C.libusb_strerror(int32(errcode))) +diff --git a/vendor/github.com/trezor/usbhid/wchar.go b/vendor/github.com/trezor/usbhid/wchar.go +index 16941d1..e955fdd 100644 +--- a/vendor/github.com/trezor/usbhid/wchar.go ++++ b/vendor/github.com/trezor/usbhid/wchar.go +@@ -7,7 +7,7 @@ + // https://github.com/orofarne/gowchar/blob/master/LICENSE + + // +build !ios +-// +build linux darwin windows ++// +build linux freebsd darwin windows + + package usbhid + Modified: head/security/trezord/files/trezord.in ============================================================================== --- head/security/trezord/files/trezord.in Mon Jun 11 10:07:49 2018 (r472180) +++ head/security/trezord/files/trezord.in Mon Jun 11 10:08:10 2018 (r472181) @@ -21,6 +21,21 @@ load_rc_config $name : ${trezord_enable:="NO"} -command=%%PREFIX%%/sbin/${name} +command="%%PREFIX%%/bin/trezord-go" +command_args="-l /var/log/trezord.log" +daemon_command="/usr/sbin/daemon" +pidfile="/var/run/trezord.pid" +start_cmd="${name}_start" + +trezord_start() +{ + if [ -z "$rc_fast" -a -n "$rc_pid" ]; then + echo 1>&2 "${name} already running? (pid=$rc_pid)." + return 1 + fi + echo "Starting ${name}." + /usr/sbin/daemon -p $pidfile ${command} ${command_args} + _run_rc_postcmd +} run_rc_command "$1" Modified: head/security/trezord/pkg-descr ============================================================================== --- head/security/trezord/pkg-descr Mon Jun 11 10:07:49 2018 (r472180) +++ head/security/trezord/pkg-descr Mon Jun 11 10:08:10 2018 (r472181) @@ -1,4 +1,4 @@ trezord (short for TREZOR Daemon), or TREZOR Bridge, is a small piece of software, used for websites, to talk with TREZOR devices. -WWW: https://github.com/trezor/trezord +WWW: https://github.com/trezor/trezord-go