Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143772703
D3930.id9499.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D3930.id9499.diff
View Options
Index: devel/Makefile
===================================================================
--- devel/Makefile
+++ devel/Makefile
@@ -496,6 +496,7 @@
SUBDIR += f77flow
SUBDIR += fam
SUBDIR += fastcrc
+ SUBDIR += fb-adb
SUBDIR += fb303
SUBDIR += fc++
SUBDIR += ffcall
Index: devel/fb-adb/Makefile
===================================================================
--- /dev/null
+++ devel/fb-adb/Makefile
@@ -0,0 +1,147 @@
+# $FreeBSD$
+
+PORTNAME= fb-adb
+DISTVERSION= 1.4.4-106
+DISTVERSIONSUFFIX= -g7bb68d5
+CATEGORIES= devel
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= Better shell for Android devices
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= xxd:${PORTSDIR}/editors/vim-lite \
+ ${BASH_CMD}:${PORTSDIR}/shells/${BASH_CMD:T}
+RUN_DEPENDS= adb:${PORTSDIR}/devel/android-tools-adb
+
+USE_GITHUB= yes
+GH_ACCOUNT= facebook
+
+USES= autoreconf:outsource gmake ncurses perl5 python:3,build
+USE_PERL5= build # pod2man
+BASH_CMD?= bash # can be zsh
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= PYTHON3="${PYTHON_CMD}"
+# Cross-build sanitization
+CONFIG_SITE= /dev/null # XXX Only for AC_CONFIG_SUBDIRS
+CONFIGURE_ENV+= HOST_CFLAGS="${CPPFLAGS} ${CFLAGS:N-[Og]*:N-pipe}" \
+ STUB_CFLAGS="${STUB_CFLAGS}" \
+ CPPFLAGS="" CFLAGS="${CFLAGS:M-[Og]*} ${CFLAGS:M-pipe}" \
+ HOST_LDFLAGS="${LDFLAGS} ${LIBS}" \
+ STUB_LDFLAGS="${STUB_LDFLAGS}" \
+ LDFLAGS="" LIBS=""
+# XXX SET_LATE_CONFIGURE_ARGS doesn't respect CONFIGURE_CMD
+CONFIGURE_ARGS= --mandir="${MANPREFIX}/man"
+INSTALL_TARGET= install-strip
+PLIST_FILES= bin/${PORTNAME} \
+ man/man1/${PORTNAME}.1.gz
+
+OPTIONS_DEFINE= ASSERT BASH DEBUG
+OPTIONS_DEFINE_FreeBSD_amd64= NDK
+OPTIONS_DEFINE_FreeBSD_i386= NDK
+OPTIONS_DEFAULT_FreeBSD_amd64= NDK
+OPTIONS_DEFAULT_FreeBSD_i386= NDK
+
+ASSERT_CONFIGURE_ENABLE=checking
+BASH_DESC= Install JSON parser used by bash-completion
+BASH_RUN_DEPENDS= jq:${PORTSDIR}/textproc/jq
+DEBUG_CONFIGURE_ENABLE= debuggable-stubs
+
+# XXX Convert into USES=android once more things depend on it
+NDK_DESC= Build target stubs using Android NDK
+NDK_MASTER_SITES= https://dl.google.com/android/ndk/:ndk
+NDK_DISTFILES= ${DISTNAME_ndk}.bin:ndk,p7zip
+DISTNAME_ndk= android-ndk-r10e-linux-${LINUX_RPM_ARCH:C/i.86/x86/}
+WRKSRC_ndk= ${WRKDIR}/${DISTNAME_ndk:C/(-[^-]+){2}$//}
+NDK_BUILD_DEPENDS= ${LINUX_BASE_PORT}
+NDK_USE= LINUX=yes # build
+NDK_SHELL= ${SETENV} UNAME_s=Linux UNAME_m=${LINUX_RPM_ARCH} ${SH}
+NDK_CONFIGURE_ENV= ANDROID_NDK="${WRKSRC_ndk}" \
+ ANDROID_NDK_SHELL="${NDK_SHELL}" \
+ NDK_TMPDIR="${WRKDIR}"
+NDK_BUILD_DEPENDS_OFF= ${LOCALBASE}/android/ARMv7/bin/arm-aux-linux-androideabi-gcc:${PORTSDIR}/lang/gnatdroid-armv7
+NDK_CONFIGURE_ENV_OFF= PATH="${NDK_BUILD_DEPENDS_OFF:C/:.*//:H}:$$PATH"
+NDK_CONFIGURE_OFF= --with-android-ndk=system
+
+# Custom helpers
+OPTIONS_DEFINE+= ${OPTIONS_DEFINE_${OPSYS}_${ARCH}}
+OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${ARCH}}
+
+post-extract:
+# XXX gold: fatal error: a.out: Invalid argument
+ @for f in $$(${FIND} ${WRKSRC_ndk} -type l -name '*-ld'); do \
+ (cd $${f%/*} && ${LN} -sf $${f##*/}.bfd $${f##*/}); \
+ done
+
+post-patch:
+# XXX Decouple -Werror from --enable-checking (ASSERT=on)
+ @${REINPLACE_CMD} -e '/CPPFLAGS.*-Werror/d' ${WRKSRC}/configure.ac
+
+post-patch-NDK-off:
+# XXX lang/gnatdroid-x86 doesn't exist yet
+ @${REINPLACE_CMD} -i '.x86-off.bak' \
+ -e 's/stub-x86[^,]*, //g' \
+ ${WRKSRC}/configure.ac
+ @${REINPLACE_CMD} -i '.aux.bak' \
+ -e 's/linux-androideabi/aux-&/' \
+ ${WRKSRC}/stub-*/configure
+
+# XXX Similar to USES=qmake:outsource, merge into Mk/Uses/autoreconf.mk
+.if defined(USES) && ${USES:Mautoreconf\:outsource}
+USES:= autoreconf:build ${USES:Nautoreconf*}
+CONFIGURE_CMD= ${AUTORECONF_WRKSRC}/${CONFIGURE_SCRIPT}
+CONFIGURE_WRKSRC= ${WRKDIR}/.build
+BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
+INSTALL_WRKSRC= ${CONFIGURE_WRKSRC}
+AUTORECONF_WRKSRC?= ${WRKSRC}
+
+_USES_configure+= 470:do-autoreconf
+do-autoreconf:
+.for f in AUTHORS ChangeLog INSTALL NEWS README
+# Don't modify time stamps if the files already exist
+ @test -e ${AUTORECONF_WRKSRC}/${f} || ${TOUCH} ${AUTORECONF_WRKSRC}/${f}
+.endfor
+ @(cd ${AUTORECONF_WRKSRC} && ${LOCALBASE}/bin/autoreconf -f -i)
+ @${MKDIR} ${CONFIGURE_WRKSRC}
+.endif
+
+.include <bsd.port.options.mk>
+
+# XXX Make _OFF helpers work with excluded options
+.for opt in ${OPTIONS_DEFINE_FreeBSD_amd64}
+. if ! ${PORT_OPTIONS:M${opt}} && ! ${OPTIONS_DEFINE:M${opt}}
+BUILD_DEPENDS+= ${${opt}_BUILD_DEPENDS_OFF}
+CONFIGURE_ENV+= ${${opt}_CONFIGURE_ENV_OFF}
+CONFIGURE_ARGS+= ${${opt}_CONFIGURE_OFF}
+. endif
+.endfor
+
+# Extract :p7zip files with 7z(1) if libarchive cannot handle x86_64 sfx
+# or is too old to have 7zip reader
+.if defined(OVERRIDE_LINUX_BASE_PORT) || \
+ (${OPSYS} == FreeBSD && ${OSVERSION} < 1000009)
+EXTRACT_ONLY+= ${DISTFILES:N*\:*p7zip*:C/:.*//}
+EXTRACT_DEPENDS+=${P7ZIP_CMD}:${PORTSDIR}/archivers/p7zip
+
+P7ZIP_CMD?= 7z
+P7ZIP_ARGS?= x -bd -y -o${WRKDIR} >/dev/null
+
+_OPTIONS_extract+= 520:do-p7zip-extract
+do-p7zip-extract:
+ @for f in ${DISTFILES:M*\:*p7zip*:C/:.*//}; do \
+ if ! ${P7ZIP_CMD} ${P7ZIP_ARGS} ${_DISTDIR}/$$f; then \
+ return 1; \
+ fi; \
+ done
+.endif
+
+.include <bsd.port.mk>
+
+# XXX Teach USE_LINUX about build-only deps
+.if defined(.PARSEDIR)
+RUN_DEPENDS:= ${RUN_DEPENDS:N${LINUX_BASE_PORT}}
+.else
+RUN_DEPENDS:= ${RUN_DEPENDS:N*linux_base*}
+.endif
Index: devel/fb-adb/distinfo
===================================================================
--- /dev/null
+++ devel/fb-adb/distinfo
@@ -0,0 +1,6 @@
+SHA256 (facebook-fb-adb-1.4.4-106-g7bb68d5_GH0.tar.gz) = 761aae97f4ae9273d4de95e01104315a5022b3eff10a6f11533f2620f0b9c2e4
+SIZE (facebook-fb-adb-1.4.4-106-g7bb68d5_GH0.tar.gz) = 248384
+SHA256 (android-ndk-r10e-linux-x86.bin) = 92b07d25aaad9b341a7f2b2a62402d508e948bf2dea3ee7b65a6aeb18bca7df5
+SIZE (android-ndk-r10e-linux-x86.bin) = 394281908
+SHA256 (android-ndk-r10e-linux-x86_64.bin) = 102d6723f67ff1384330d12c45854315d6452d6510286f4e5891e00a5a8f1d5a
+SIZE (android-ndk-r10e-linux-x86_64.bin) = 401522849
Index: devel/fb-adb/files/patch-util.c
===================================================================
--- /dev/null
+++ devel/fb-adb/files/patch-util.c
@@ -0,0 +1,12 @@
+--- util.c.orig 2015-10-09 22:02:18 UTC
++++ util.c
+@@ -1563,3 +1563,9 @@ xregerror(int errcode, const regex_t* pr
+ reslist_xfer(rl->parent, rl);
+ return (char*) gb.buf;
+ }
++
++#ifndef __linux__
++// XXX For GCC 4.4 or older
++__weak_reference(my_unreachable, __builtin_unreachable);
++void my_unreachable() { abort(); }
++#endif
Index: devel/fb-adb/pkg-descr
===================================================================
--- /dev/null
+++ devel/fb-adb/pkg-descr
@@ -0,0 +1,16 @@
+fb-adb is a tool for interacting with Android systems. It does much of
+what adb does, but with better remote shell support and, hopefully,
+fewer bugs. Differences between adb and fb-adb are that fb-adb:
+
+ * is binary clean (no LF -> CRLF mangling)
+ * transmits and updates window size
+ * distinguishes standard output and standard error
+ * properly muxes streams with independent flow control
+ * allows for ssh-like pty allocation control
+ * propagates program exit status instead of always exiting
+ with status 0
+ * properly escapes program arguments
+ * kills remote program
+ * provides a generic facility to elevate to root without re-escaping
+
+WWW: https://github.com/facebook/fb-adb
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 1, 12:24 PM (8 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28365004
Default Alt Text
D3930.id9499.diff (7 KB)
Attached To
Mode
D3930: [new port] devel/fb-adb: Better shell for Android devices
Attached
Detach File
Event Timeline
Log In to Comment