/* GNU Guix --- Functional package management for GNU Copyright (C) 2012 Ludovic Courtès This file is part of GNU Guix. GNU Guix is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Guix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Guix. If not, see . */ /* Release file to build Guix with Nix. Useful to bootstrap Guix on Guix-enabled Hydra instances. */ let nixpkgs = ; buildOutOfSourceTree = true; succeedOnFailure = true; keepBuildDirectory = true; # The Guile used to bootstrap the whole thing. It's normally # downloaded by the build system, but here we download it via a # fixed-output derivation and stuff it into the build tree. bootstrap_guile = let pkgs = import nixpkgs {}; in { i686 = pkgs.fetchurl { url = http://www.fdn.fr/~lcourtes/software/guix/packages/i686-linux/20121219/guile-2.0.7.tar.xz; sha256 = "45d1f9bfb9e4531a8f1c5a105f7ab094cd481b8a179ccc63cbabb73ce6b8437f"; }; x86_64 = pkgs.fetchurl { url = http://www.fdn.fr/~lcourtes/software/guix/packages/x86_64-linux/20121219/guile-2.0.7.tar.xz; sha256 = "953fbcc8db6e310626be79b67319cf4141dc23b296447952a99d95425b3a4dc1"; }; }; jobs = { tarball = let pkgs = import nixpkgs {}; in pkgs.releaseTools.sourceTarball { name = "guix-tarball"; src = ; buildInputs = with pkgs; [ guile sqlite bzip2 git libgcrypt ]; buildNativeInputs = with pkgs; [ texinfo gettexThis patch fixes the build of adb on linux. Copied from archlinux repository: https://git.archlinux.org/svntogit/community.git/tree/trunk/fix_build.patch?h=packages/android-tools diff --git a/adb/sysdeps.h b/adb/sysdeps.h index 75dcc86..867f3ec 100644 --- a/adb/sysdeps.h +++ b/adb/sysdeps.h @@ -25,6 +25,7 @@ #endif #include <errno.h> +#include <sys/syscall.h> #include <string> #include <vector> @@ -831,7 +832,16 @@ static __inline__ int adb_is_absolute_host_path(const char* path) { static __inline__ unsigned long adb_thread_id() { - return (unsigned long)gettid(); + // TODO: this function should be merged with GetThreadId +#if defined(__BIONIC__) + return gettid(); +#elif defined(__APPLE__) + return syscall(SYS_thread_selfid); +#elif defined(__linux__) + return syscall(__NR_gettid); +#elif defined(_WIN32) + return GetCurrentThreadId(); +#endif } #endif /* !_WIN32 */ diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp index 296995e..48269b6 100644 --- a/base/errors_unix.cpp +++ b/base/errors_unix.cpp @@ -17,6 +17,7 @@ #include "android-base/errors.h" #include <errno.h> +#include <string.h> namespace android { namespace base { diff --git a/base/file.cpp b/base/file.cpp index da1adba..91a3901 100644 --- a/base/file.cpp +++ b/base/file.cpp @@ -20,6 +20,7 @@ #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> +#include <string.h> #include <string> diff --git a/base/logging.cpp b/base/logging.cpp index 1741871..e97c7f1 100644 --- a/base/logging.cpp +++ b/base/logging.cpp @@ -21,6 +21,7 @@ #include "android-base/logging.h" #include <libgen.h> +#include <string.h> // For getprogname(3) or program_invocation_short_name. #if defined(__ANDROID__) || defined(__APPLE__) pointless indirection # here. This could be worked around by generating Nix code # from the .drv, and importing that. pkgs.releaseTools.nixBuild { src = null; name = "guix-hello"; phases = "buildPhase"; buildPhase = "${guix}/bin/guix-build --no-substitutes hello | tee $out"; __noChroot = true; }; }; }; in jobs