Control: tags 788113 + pending Dear maintainer,
I've prepared an NMU for proot (versioned as 5.1.0-1.1) and uploaded it to DELAYED/10. Please feel free to tell me if I should delay it longer. Regards. -- WBR, wRAR
diff -Nru proot-5.1.0/debian/changelog proot-5.1.0/debian/changelog --- proot-5.1.0/debian/changelog 2015-01-27 18:29:21.000000000 +0500 +++ proot-5.1.0/debian/changelog 2016-11-26 22:12:08.000000000 +0500 @@ -1,3 +1,10 @@ +proot (5.1.0-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix FTBFS on arm64, patch by Sebastian Ramacher (Closes: #788113). + + -- Andrey Rahmatullin <w...@debian.org> Sat, 26 Nov 2016 22:12:08 +0500 + proot (5.1.0-1) unstable; urgency=low * Upgrade to latest PRoot version - PRoot is now embedding is own ELF interpreter diff -Nru proot-5.1.0/debian/patches/arm64.patch proot-5.1.0/debian/patches/arm64.patch --- proot-5.1.0/debian/patches/arm64.patch 1970-01-01 05:00:00.000000000 +0500 +++ proot-5.1.0/debian/patches/arm64.patch 2016-11-26 22:11:22.000000000 +0500 @@ -0,0 +1,134 @@ +diff -ru proot-5.1.0.orig/src/arch.h proot-5.1.0/src/arch.h +--- proot-5.1.0.orig/src/arch.h ++++ proot-5.1.0/src/arch.h +@@ -125,6 +125,9 @@ + #define OFFSETOF_STAT_UID_32 0 + #define OFFSETOF_STAT_GID_32 0 + ++ #define EXEC_PIC_ADDRESS 0x500000000000 ++ #define INTERP_PIC_ADDRESS 0x6f0000000000 ++ + #elif defined(ARCH_X86) + + #define SYSNUMS_HEADER1 "syscall/sysnums-i386.h" +diff -ru proot-5.1.0.orig/src/loader/assembly-arm64.h proot-5.1.0/src/loader/assembly-arm64.h +--- /dev/null ++++ proot-5.1.0/src/loader/assembly-arm64.h +@@ -0,0 +1,93 @@ ++/* -*- c-set-style: "K&R"; c-basic-offset: 8 -*- ++ * ++ * This file is part of PRoot. ++ * ++ * Copyright (C) 2014 STMicroelectronics ++ * ++ * This program 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 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This program 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 this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301 USA. ++ */ ++ ++#define BRANCH(stack_pointer, destination) do { \ ++ asm volatile ( \ ++ "// Restore initial stack pointer. \n\t" \ ++ "mov sp, %0 \n\t" \ ++ " \n\t" \ ++ "// Clear rtld_fini. \n\t" \ ++ "mov x0, #0 \n\t" \ ++ " \n\t" \ ++ "// Start the program. \n\t" \ ++ "br %1 \n" \ ++ : /* no output */ \ ++ : "r" (stack_pointer), "r" (destination) \ ++ : "memory", "sp", "x0"); \ ++ __builtin_unreachable(); \ ++ } while (0) ++ ++#define PREPARE_ARGS_1(arg1_) \ ++ register word_t arg1 asm("x0") = arg1_; \ ++ ++#define PREPARE_ARGS_3(arg1_, arg2_, arg3_) \ ++ PREPARE_ARGS_1(arg1_) \ ++ register word_t arg2 asm("x1") = arg2_; \ ++ register word_t arg3 asm("x2") = arg3_; \ ++ ++#define PREPARE_ARGS_4(arg1_, arg2_, arg3_, arg4_) \ ++ PREPARE_ARGS_3(arg1_, arg2_, arg3_) \ ++ register word_t arg4 asm("x3") = arg4_; ++ ++#define PREPARE_ARGS_6(arg1_, arg2_, arg3_, arg4_, arg5_, arg6_) \ ++ PREPARE_ARGS_3(arg1_, arg2_, arg3_) \ ++ register word_t arg4 asm("x3") = arg4_; \ ++ register word_t arg5 asm("x4") = arg5_; \ ++ register word_t arg6 asm("x5") = arg6_; ++ ++#define OUTPUT_CONTRAINTS_1 \ ++ "r" (arg1) ++ ++#define OUTPUT_CONTRAINTS_3 \ ++ OUTPUT_CONTRAINTS_1, \ ++ "r" (arg2), "r" (arg3) ++ ++#define OUTPUT_CONTRAINTS_4 \ ++ OUTPUT_CONTRAINTS_3, \ ++ "r" (arg4) ++ ++#define OUTPUT_CONTRAINTS_6 \ ++ OUTPUT_CONTRAINTS_3, \ ++ "r" (arg4), "r" (arg5), "r" (arg6) ++ ++#define SYSCALL(number_, nb_args, args...) \ ++ ({ \ ++ register word_t number asm("w8") = number_; \ ++ register word_t result asm("x0"); \ ++ PREPARE_ARGS_##nb_args(args) \ ++ asm volatile ( \ ++ "svc #0x00000000 \n\t" \ ++ : "=r" (result) \ ++ : "r" (number), \ ++ OUTPUT_CONTRAINTS_##nb_args \ ++ : "memory"); \ ++ result; \ ++ }) ++ ++#define OPENAT 56 ++#define CLOSE 57 ++#define MMAP 222 ++#define MMAP_OFFSET_SHIFT 0 ++#define EXECVE 221 ++#define EXIT 93 ++#define PRCTL 167 ++ +diff -ru proot-5.1.0.orig/src/loader/loader.c proot-5.1.0/src/loader/loader.c +--- proot-5.1.0.orig/src/loader/loader.c ++++ proot-5.1.0/src/loader/loader.c +@@ -39,6 +39,8 @@ + # include "loader/assembly-x86_64.h" + #elif defined(ARCH_ARM_EABI) + # include "loader/assembly-arm.h" ++#elif defined(ARCH_ARM64) ++# include "loader/assembly-arm64.h" + #elif defined(ARCH_X86) + # include "loader/assembly-x86.h" + #else +@@ -134,7 +136,11 @@ + /* Fall through. */ + + case LOAD_ACTION_OPEN: ++#ifdef OPENAT ++ fd = SYSCALL(OPENAT, 4, AT_FDCWD, stmt->open.string_address, O_RDONLY, 0); ++#else + fd = SYSCALL(OPEN, 3, stmt->open.string_address, O_RDONLY, 0); ++#endif + if (unlikely((int) fd < 0)) + FATAL(); + diff -Nru proot-5.1.0/debian/patches/series proot-5.1.0/debian/patches/series --- proot-5.1.0/debian/patches/series 2015-01-27 18:27:02.000000000 +0500 +++ proot-5.1.0/debian/patches/series 2016-11-26 22:11:32.000000000 +0500 @@ -1,2 +1,3 @@ Install-proot-into-DESTDIR-usr-bin.patch Fix-man-syntax.diff +arm64.patch
signature.asc
Description: PGP signature