adb package merged upstream.
libbase-fix-includes.patch unknown status 2
1 | - | This patch fixes the build of adb on linux. It was taken from archlinux. | |
2 | - | ||
3 | - | diff --git a/adb/sysdeps.h b/adb/sysdeps.h | |
4 | - | index 75dcc86..867f3ec 100644 | |
5 | - | --- a/adb/sysdeps.h | |
6 | - | +++ b/adb/sysdeps.h | |
7 | - | @@ -25,6 +25,7 @@ | |
8 | - | #endif | |
9 | - | ||
10 | - | #include <errno.h> | |
11 | - | +#include <sys/syscall.h> | |
12 | - | ||
13 | - | #include <string> | |
14 | - | #include <vector> | |
15 | - | @@ -831,7 +832,16 @@ static __inline__ int adb_is_absolute_host_path(const char* path) { | |
16 | - | ||
17 | - | static __inline__ unsigned long adb_thread_id() | |
18 | - | { | |
19 | - | - return (unsigned long)gettid(); | |
20 | - | + // TODO: this function should be merged with GetThreadId | |
21 | - | +#if defined(__BIONIC__) | |
22 | - | + return gettid(); | |
23 | - | +#elif defined(__APPLE__) | |
24 | - | + return syscall(SYS_thread_selfid); | |
25 | - | +#elif defined(__linux__) | |
26 | - | + return syscall(__NR_gettid); | |
27 | - | +#elif defined(_WIN32) | |
28 | - | + return GetCurrentThreadId(); | |
29 | - | +#endif | |
30 | - | } | |
31 | - | ||
32 | - | #endif /* !_WIN32 */ | |
33 | - | diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp | |
34 | - | index 296995e..48269b6 100644 | |
35 | - | --- a/base/errors_unix.cpp | |
36 | - | +++ b/base/errors_unix.cpp | |
37 | - | @@ -17,6 +17,7 @@ | |
38 | - | #include "android-base/errors.h" | |
39 | - | ||
40 | - | #include <errno.h> | |
41 | - | +#include <string.h> | |
42 | - | ||
43 | - | namespace android { | |
44 | - | namespace base { | |
45 | - | diff --git a/base/file.cpp b/base/file.cpp | |
46 | - | index da1adba..91a3901 100644 | |
47 | - | --- a/base/file.cpp | |
48 | - | +++ b/base/file.cpp | |
49 | - | @@ -20,6 +20,7 @@ | |
50 | - | #include <fcntl.h> | |
51 | - | #include <sys/stat.h> | |
52 | - | #include <sys/types.h> | |
53 | - | +#include <string.h> | |
54 | - | ||
55 | - | #include <string> | |
56 | - | ||
57 | - | diff --git a/base/logging.cpp b/base/logging.cpp | |
58 | - | index 1741871..e97c7f1 100644 | |
59 | - | --- a/base/logging.cpp | |
60 | - | +++ b/base/logging.cpp | |
61 | - | @@ -21,6 +21,7 @@ | |
62 | - | #include "android-base/logging.h" | |
63 | - | ||
64 | - | #include <libgen.h> | |
65 | - | +#include <string.h> | |
66 | - | ||
67 | - | // For getprogname(3) or program_invocation_short_name. | |
68 | - | #if defined(__ANDROID__) || defined(__APPLE__) |
libbase-use-own-logging.patch unknown status 2
1 | - | From e5dd71a290f664d3f3bf0dd8a4bad411dc7ad416 Mon Sep 17 00:00:00 2001 | |
2 | - | From: Elliott Hughes <enh@google.com> | |
3 | - | Date: Thu, 28 Jul 2016 15:15:28 -0700 | |
4 | - | Subject: [PATCH] libbase should use its own logging! | |
5 | - | ||
6 | - | Not doing so led to us using a bogus log tag. | |
7 | - | ||
8 | - | Bug: http://b/30281203 | |
9 | - | Change-Id: I3ac91758a1a043146c65f2ae0f36fcfbe372c30f | |
10 | - | --- | |
11 | - | base/file.cpp | 11 +++++------ | |
12 | - | base/logging.cpp | 3 +-- | |
13 | - | 2 files changed, 6 insertions(+), 8 deletions(-) | |
14 | - | ||
15 | - | diff --git a/base/file.cpp b/base/file.cpp | |
16 | - | index da1adba19..4e7ac82d1 100644 | |
17 | - | --- a/base/file.cpp | |
18 | - | +++ b/base/file.cpp | |
19 | - | @@ -24,9 +24,8 @@ | |
20 | - | #include <string> | |
21 | - | ||
22 | - | #include "android-base/macros.h" // For TEMP_FAILURE_RETRY on Darwin. | |
23 | - | +#include "android-base/logging.h" | |
24 | - | #include "android-base/utf8.h" | |
25 | - | -#define LOG_TAG "base.file" | |
26 | - | -#include "cutils/log.h" | |
27 | - | #include "utils/Compat.h" | |
28 | - | ||
29 | - | namespace android { | |
30 | - | @@ -86,22 +85,22 @@ bool WriteStringToFile(const std::string& content, const std::string& path, | |
31 | - | int flags = O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC | O_NOFOLLOW | O_BINARY; | |
32 | - | int fd = TEMP_FAILURE_RETRY(open(path.c_str(), flags, mode)); | |
33 | - | if (fd == -1) { | |
34 | - | - ALOGE("android::WriteStringToFile open failed: %s", strerror(errno)); | |
35 | - | + PLOG(ERROR) << "android::WriteStringToFile open failed"; | |
36 | - | return false; | |
37 | - | } | |
38 | - | ||
39 | - | // We do an explicit fchmod here because we assume that the caller really | |
40 | - | // meant what they said and doesn't want the umask-influenced mode. | |
41 | - | if (fchmod(fd, mode) == -1) { | |
42 | - | - ALOGE("android::WriteStringToFile fchmod failed: %s", strerror(errno)); | |
43 | - | + PLOG(ERROR) << "android::WriteStringToFile fchmod failed"; | |
44 | - | return CleanUpAfterFailedWrite(path); | |
45 | - | } | |
46 | - | if (fchown(fd, owner, group) == -1) { | |
47 | - | - ALOGE("android::WriteStringToFile fchown failed: %s", strerror(errno)); | |
48 | - | + PLOG(ERROR) << "android::WriteStringToFile fchown failed"; | |
49 | - | return CleanUpAfterFailedWrite(path); | |
50 | - | } | |
51 | - | if (!WriteStringToFd(content, fd)) { | |
52 | - | - ALOGE("android::WriteStringToFile write failed: %s", strerror(errno)); | |
53 | - | + PLOG(ERROR) << "android::WriteStringToFile write failed"; | |
54 | - | return CleanUpAfterFailedWrite(path); | |
55 | - | } | |
56 | - | close(fd); | |
57 | - | diff --git a/base/logging.cpp b/base/logging.cpp | |
58 | - | index 769c266c9..959bb8b05 100644 | |
59 | - | --- a/base/logging.cpp | |
60 | - | +++ b/base/logging.cpp | |
61 | - | @@ -43,12 +43,11 @@ | |
62 | - | ||
63 | - | #include "android-base/macros.h" | |
64 | - | #include "android-base/strings.h" | |
65 | - | -#include "cutils/threads.h" | |
66 | - | ||
67 | - | // Headers for LogMessage::LogLine. | |
68 | - | #ifdef __ANDROID__ | |
69 | - | #include <android/set_abort_message.h> | |
70 | - | -#include "cutils/log.h" | |
71 | - | +#include "log/log.h" | |
72 | - | #else | |
73 | - | #include <sys/types.h> | |
74 | - | #include <unistd.h> | |
75 | - | -- | |
76 | - | 2.11.0 | |
77 | - |
more/packages/android.scm unknown status 2
1 | - | ;;; GNU Guix --- Functional package management for GNU | |
2 | - | ;;; Copyright ?? 2012 Stefan Handschuh <handschuh.stefan@googlemail.com> | |
3 | - | ;;; Copyright ?? 2015 Kai-Chung Yan <seamlikok@gmail.com> | |
4 | - | ;;; Copyright ?? 2016 Marius Bakke <mbakke@fastmail.com> | |
5 | - | ;;; Copyright ?? 2017 Julien Lepiller <julien@lepiller.eu> | |
6 | - | ;;; | |
7 | - | ;;; This file is part of GNU Guix. | |
8 | - | ;;; | |
9 | - | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
10 | - | ;;; under the terms of the GNU General Public License as published by | |
11 | - | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
12 | - | ;;; your option) any later version. | |
13 | - | ;;; | |
14 | - | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
15 | - | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | - | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | - | ;;; GNU General Public License for more details. | |
18 | - | ;;; | |
19 | - | ;;; You should have received a copy of the GNU General Public License | |
20 | - | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
21 | - | ||
22 | - | (define-module (more packages android) | |
23 | - | #:use-module (guix packages) | |
24 | - | #:use-module (guix git-download) | |
25 | - | #:use-module (guix build-system gnu) | |
26 | - | #:use-module ((guix licenses) #:prefix license:) | |
27 | - | #:use-module (gnu packages) | |
28 | - | #:use-module (gnu packages tls)) | |
29 | - | ||
30 | - | ;; The Makefiles that we add are largely based on the Debian | |
31 | - | ;; packages. They are licensed under GPL-2 and have copyright: | |
32 | - | ;; 2012, Stefan Handschuh <handschuh.stefan@googlemail.com> | |
33 | - | ;; 2015, Kai-Chung Yan <seamlikok@gmail.com> | |
34 | - | ;; Big thanks to them for laying the groundwork. | |
35 | - | ||
36 | - | ;; The version tag is consistent between all repositories. | |
37 | - | (define (android-platform-version) "7.1.2_r6") | |
38 | - | ||
39 | - | (define (android-platform-system-core version) | |
40 | - | (origin | |
41 | - | (method git-fetch) | |
42 | - | (uri (git-reference | |
43 | - | (url "https://android.googlesource.com/platform/system/core") | |
44 | - | (commit (string-append "android-" version)))) | |
45 | - | (file-name (string-append "android-platform-system-core-" | |
46 | - | version "-checkout")) | |
47 | - | (sha256 | |
48 | - | (base32 | |
49 | - | "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")))) | |
50 | - | ||
51 | - | (define liblog | |
52 | - | (package | |
53 | - | (name "liblog") | |
54 | - | (version (android-platform-version)) | |
55 | - | (source (android-platform-system-core version)) | |
56 | - | (build-system gnu-build-system) | |
57 | - | (arguments | |
58 | - | `(#:tests? #f ; TODO. | |
59 | - | #:make-flags '("CC=gcc") | |
60 | - | #:phases | |
61 | - | (modify-phases %standard-phases | |
62 | - | (add-after 'unpack 'enter-source | |
63 | - | (lambda _ (chdir "liblog") #t)) | |
64 | - | (add-after 'enter-source 'create-Makefile | |
65 | - | (lambda _ | |
66 | - | ;; No useful makefile is shipped, so we create one. | |
67 | - | (with-output-to-file "Makefile" | |
68 | - | (lambda _ | |
69 | - | (display | |
70 | - | (string-append | |
71 | - | "NAME = liblog\n" | |
72 | - | "SOURCES = log_event_list.c log_event_write.c" | |
73 | - | " logger_write.c config_write.c logger_name.c" | |
74 | - | " logger_lock.c fake_log_device.c fake_writer.c" | |
75 | - | " event_tag_map.c\n" | |
76 | - | ||
77 | - | "CFLAGS += -fvisibility=hidden -fPIC\n" | |
78 | - | "CPPFLAGS += -I../include -DFAKE_LOG_DEVICE=1" | |
79 | - | ;; Keep these two in sync with "liblog/Android.bp". | |
80 | - | " -DLIBLOG_LOG_TAG=1005" | |
81 | - | " -DSNET_EVENT_LOG_TAG=1397638484\n" | |
82 | - | "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread\n" | |
83 | - | ||
84 | - | "build: $(SOURCES)\n" | |
85 | - | " $(CC) $^ -o $(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)\n")))))) | |
86 | - | (delete 'configure) | |
87 | - | (replace 'install | |
88 | - | (lambda* (#:key outputs #:allow-other-keys) | |
89 | - | (let* ((out (assoc-ref outputs "out")) | |
90 | - | (lib (string-append out "/lib"))) | |
91 | - | (install-file "liblog.so.0" lib) | |
92 | - | (with-directory-excursion lib | |
93 | - | (symlink "liblog.so.0" "liblog.so")) | |
94 | - | #t)))))) | |
95 | - | (home-page "https://developer.android.com/") | |
96 | - | (synopsis "Logging library from the Android platform.") | |
97 | - | (description "@code{liblog} represents an interface to the volatile Android | |
98 | - | Logging system for NDK (Native) applications and libraries and contain | |
99 | - | interfaces for either writing or reading logs. The log buffers are divided up | |
100 | - | in Main, System, Radio and Events sub-logs.") | |
101 | - | (license license:asl2.0))) | |
102 | - | ||
103 | - | (define libbase | |
104 | - | (package | |
105 | - | (name "libbase") | |
106 | - | (version (android-platform-version)) | |
107 | - | (source (origin | |
108 | - | (inherit (android-platform-system-core version)) | |
109 | - | (patches | |
110 | - | (search-patches "libbase-use-own-logging.patch" | |
111 | - | "libbase-fix-includes.patch")))) | |
112 | - | (build-system gnu-build-system) | |
113 | - | (arguments | |
114 | - | `(#:tests? #f ; TODO. | |
115 | - | #:phases | |
116 | - | (modify-phases %standard-phases | |
117 | - | (add-after 'unpack 'enter-source | |
118 | - | (lambda _ (chdir "base") #t)) | |
119 | - | (add-after 'enter-source 'create-Makefile | |
120 | - | (lambda _ | |
121 | - | ;; No useful makefile is shipped, so we create one. | |
122 | - | (with-output-to-file "Makefile" | |
123 | - | (lambda _ | |
124 | - | (display | |
125 | - | (string-append | |
126 | - | "NAME = libbase\n" | |
127 | - | "SOURCES = file.cpp logging.cpp parsenetaddress.cpp" | |
128 | - | " stringprintf.cpp strings.cpp errors_unix.cpp\n" | |
129 | - | ||
130 | - | "CXXFLAGS += -std=gnu++11 -fPIC\n" | |
131 | - | "CPPFLAGS += -Iinclude -I../include\n" | |
132 | - | "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0" | |
133 | - | " -L.. -llog\n" | |
134 | - | ||
135 | - | "build: $(SOURCES)\n" | |
136 | - | " $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n" | |
137 | - | )))))) | |
138 | - | (delete 'configure) | |
139 | - | (replace 'install | |
140 | - | (lambda* (#:key outputs #:allow-other-keys) | |
141 | - | (let* ((out (assoc-ref outputs "out")) | |
142 | - | (lib (string-append out "/lib"))) | |
143 | - | (install-file "libbase.so.0" lib) | |
144 | - | (with-directory-excursion lib | |
145 | - | (symlink "libbase.so.0" "libbase.so")) | |
146 | - | (copy-recursively "include" out) | |
147 | - | #t)))))) | |
148 | - | (inputs `(("liblog" ,liblog))) | |
149 | - | (home-page "https://developer.android.com/") | |
150 | - | (synopsis "Android platform base library") | |
151 | - | (description "@code{libbase} is a library in common use by the | |
152 | - | various Android core host applications.") | |
153 | - | (license license:asl2.0))) | |
154 | - | ||
155 | - | (define libcutils | |
156 | - | (package | |
157 | - | (name "libcutils") | |
158 | - | (version (android-platform-version)) | |
159 | - | (source (android-platform-system-core version)) | |
160 | - | (build-system gnu-build-system) | |
161 | - | (arguments | |
162 | - | `(#:tests? #f ; TODO. | |
163 | - | #:phases | |
164 | - | (modify-phases %standard-phases | |
165 | - | (add-after 'unpack 'enter-source | |
166 | - | (lambda _ (chdir "libcutils") #t)) | |
167 | - | (add-after 'enter-source 'create-Makefile | |
168 | - | (lambda _ | |
169 | - | ;; No useful makefile is shipped, so we create one. | |
170 | - | (with-output-to-file "Makefile" | |
171 | - | (lambda _ | |
172 | - | (display | |
173 | - | (string-append | |
174 | - | "NAME = libcutils\n" | |
175 | - | "SOURCES = load_file.o socket_local_client_unix.o" | |
176 | - | " socket_loopback_client_unix.o socket_network_client_unix.o" | |
177 | - | " socket_loopback_server_unix.o socket_local_server_unix.o" | |
178 | - | " sockets_unix.o socket_inaddr_any_server_unix.o" | |
179 | - | " sockets.o\n" | |
180 | - | "CC = gcc\n" | |
181 | - | ||
182 | - | "CFLAGS += -fPIC\n" | |
183 | - | "CXXFLAGS += -std=gnu++11 -fPIC\n" | |
184 | - | "CPPFLAGS += -Iinclude -I../include\n" | |
185 | - | "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0\n" | |
186 | - | ||
187 | - | "build: $(SOURCES)\n" | |
188 | - | " $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n" | |
189 | - | )))))) | |
190 | - | (delete 'configure) | |
191 | - | (replace 'install | |
192 | - | (lambda* (#:key outputs #:allow-other-keys) | |
193 | - | (let* ((out (assoc-ref outputs "out")) | |
194 | - | (lib (string-append out "/lib"))) | |
195 | - | (install-file "libcutils.so.0" lib) | |
196 | - | (with-directory-excursion lib | |
197 | - | (symlink "libcutils.so.0" "libcutils.so")) | |
198 | - | #t)))))) | |
199 | - | (home-page "https://developer.android.com/") | |
200 | - | (synopsis "Android platform c utils library") | |
201 | - | (description "@code{libcutils} is a library in common use by the | |
202 | - | various Android core host applications.") | |
203 | - | (license license:asl2.0))) | |
204 | - | ||
205 | - | (define-public adb | |
206 | - | (package | |
207 | - | (name "adb") | |
208 | - | (version (android-platform-version)) | |
209 | - | (source (origin | |
210 | - | (inherit (android-platform-system-core version)) | |
211 | - | (patches | |
212 | - | (search-patches "libbase-use-own-logging.patch" | |
213 | - | "libbase-fix-includes.patch")))) | |
214 | - | (build-system gnu-build-system) | |
215 | - | (arguments | |
216 | - | `(#:phases | |
217 | - | (modify-phases %standard-phases | |
218 | - | (add-after 'unpack 'enter-source | |
219 | - | (lambda _ (chdir "adb") #t)) | |
220 | - | (add-before 'build 'fix-clang | |
221 | - | (lambda _ | |
222 | - | (substitute* "adb_client.h" | |
223 | - | (("_Nonnull") "") | |
224 | - | (("_Nullable") "")))) | |
225 | - | (add-before 'build 'fix-main | |
226 | - | (lambda _ | |
227 | - | (copy-file "client/main.cpp" "adb_main.cpp"))) | |
228 | - | (add-after 'enter-source 'create-Makefile | |
229 | - | (lambda* (#:key outputs #:allow-other-keys) | |
230 | - | ;; No useful makefile is shipped, so we create one. | |
231 | - | (with-output-to-file "Makefile" | |
232 | - | (lambda _ | |
233 | - | (display | |
234 | - | (string-append | |
235 | - | ;; Common for all components. | |
236 | - | "CXXFLAGS += -std=gnu++14 -fpermissive\n" | |
237 | - | "CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 " | |
238 | - | "-DADB_REVISION='\"" ,version "\"' -fPIC\n" | |
239 | - | "LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n" | |
240 | - | ||
241 | - | ;; Libadb specifics. | |
242 | - | "LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp " | |
243 | - | "adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp " | |
244 | - | "sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp " | |
245 | - | "get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp " | |
246 | - | "adb_auth_host.cpp diagnose_usb.cpp services.cpp " | |
247 | - | "shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n" | |
248 | - | ||
249 | - | "LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 " | |
250 | - | "-lcrypto -lpthread -lbase\n" | |
251 | - | ||
252 | - | ;; Adb specifics. | |
253 | - | "ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp " | |
254 | - | "adb_client.cpp file_sync_client.cpp\n" | |
255 | - | "ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n" | |
256 | - | ||
257 | - | "build: libadb $(ADB_SOURCES)\n" | |
258 | - | " $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) " | |
259 | - | "$(ADB_LDFLAGS) $(LDFLAGS)\n" | |
260 | - | ||
261 | - | "libadb: $(LIBADB_SOURCES)\n" | |
262 | - | " $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) " | |
263 | - | "$(LIBADB_LDFLAGS)\n" | |
264 | - | " ln -sv libadb.so.0 libadb.so\n" | |
265 | - | )))))) | |
266 | - | (delete 'configure) | |
267 | - | (replace 'install | |
268 | - | (lambda* (#:key outputs #:allow-other-keys) | |
269 | - | (let* ((out (assoc-ref outputs "out")) | |
270 | - | (lib (string-append out "/lib")) | |
271 | - | (bin (string-append out "/bin"))) | |
272 | - | (install-file "libadb.so.0" lib) | |
273 | - | (install-file "adb" bin) | |
274 | - | (with-directory-excursion lib | |
275 | - | (symlink "libadb.so.0" "libadb.so")) | |
276 | - | #t)))) | |
277 | - | ;; Test suite must be run with attached devices | |
278 | - | #:tests? #f)) | |
279 | - | (inputs | |
280 | - | `(("libbase" ,libbase) | |
281 | - | ("libcutils" ,libcutils) | |
282 | - | ("openssl" ,openssl))) | |
283 | - | (home-page "https://developer.android.com/studio/command-line/adb.html") | |
284 | - | (synopsis "Android Debug Bridge") | |
285 | - | (description | |
286 | - | "@command{adb} is a versatile command line tool that lets you communicate | |
287 | - | with an emulator instance or connected Android device. It facilitates a variety | |
288 | - | of device actions, such as installing and debugging apps, and it provides access | |
289 | - | to a Unix shell that can run commands on the connected device or emulator.") | |
290 | - | (license license:asl2.0))) |