new package: chroot
Actually it just a "standalone" chroot utility from the coreutils.
This commit is contained in:
parent
e45ef8ab9d
commit
573da57f1e
45
root-packages/chroot/build.sh
Normal file
45
root-packages/chroot/build.sh
Normal file
@ -0,0 +1,45 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/coreutils/
|
||||
TERMUX_PKG_DESCRIPTION="Chroot utility from the Coreutils"
|
||||
TERMUX_PKG_LICENSE="GPL-3.0"
|
||||
TERMUX_PKG_VERSION=8.30
|
||||
TERMUX_PKG_SHA256=e831b3a86091496cdba720411f9748de81507798f6130adeaef872d206e1b057
|
||||
TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/coreutils/coreutils-${TERMUX_PKG_VERSION}.tar.xz
|
||||
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
gl_cv_host_operating_system=Android
|
||||
--disable-xattr
|
||||
--without-gmp
|
||||
"
|
||||
|
||||
termux_step_pre_configure() {
|
||||
CPPFLAGS+=" -DDEFAULT_TMPDIR=\\\"$TERMUX_PREFIX/tmp\\\""
|
||||
}
|
||||
|
||||
termux_step_make() {
|
||||
# deps for chroot.
|
||||
make lib/configmake.h
|
||||
make src/version.h
|
||||
make lib/fcntl.h
|
||||
make lib/time.h
|
||||
make lib/sys/stat.h
|
||||
make lib/selinux/context.h
|
||||
make lib/selinux/selinux.h
|
||||
make lib/unitypes.h
|
||||
make lib/unistr.h
|
||||
make lib/uniwidth.h
|
||||
make lib/stdint.h
|
||||
make lib/stdio.h
|
||||
make lib/fnmatch.h
|
||||
make lib/getopt.h
|
||||
make lib/getopt-cdefs.h
|
||||
|
||||
# build standalone chroot utility.
|
||||
make src/chroot
|
||||
}
|
||||
|
||||
termux_step_make_install() {
|
||||
install -Dm700 $TERMUX_PKG_BUILDDIR/src/chroot \
|
||||
$TERMUX_PREFIX/bin/
|
||||
install -Dm600 $TERMUX_PKG_SRCDIR/man/chroot.1 \
|
||||
$TERMUX_PREFIX/share/man/man1/
|
||||
}
|
25
root-packages/chroot/configure.patch
Normal file
25
root-packages/chroot/configure.patch
Normal file
@ -0,0 +1,25 @@
|
||||
diff -r -u ../coreutils-8.22/configure ./configure
|
||||
--- ../coreutils-8.22/configure 2013-12-13 16:05:30.000000000 +0100
|
||||
+++ ./configure 2014-02-12 18:21:28.000000000 +0100
|
||||
@@ -39537,7 +39537,7 @@
|
||||
|
||||
|
||||
# Determine how to get the list of mounted file systems.
|
||||
-ac_list_mounted_fs=
|
||||
+ac_list_mounted_fs=found
|
||||
|
||||
# If the getmntent function is available but not in the standard library,
|
||||
# make sure LIBS contains the appropriate -l option.
|
||||
@@ -40077,12 +40077,6 @@
|
||||
esac
|
||||
fi
|
||||
|
||||
-if test -z "$ac_list_mounted_fs"; then
|
||||
- as_fn_error $? "could not determine how to read list of mounted file systems" "$LINENO" 5
|
||||
- # FIXME -- no need to abort building the whole package
|
||||
- # Can't build mountlist.c or anything that needs its functions
|
||||
-fi
|
||||
-
|
||||
if test $ac_list_mounted_fs = found; then :
|
||||
gl_cv_list_mounted_fs=yes
|
||||
else
|
12
root-packages/chroot/lib-stdio-impl.h.patch
Normal file
12
root-packages/chroot/lib-stdio-impl.h.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -u -r ../coreutils-8.30/lib/stdio-impl.h ./lib/stdio-impl.h
|
||||
--- ../coreutils-8.30/lib/stdio-impl.h 2018-06-24 06:52:06.000000000 +0200
|
||||
+++ ./lib/stdio-impl.h 2018-07-03 11:05:27.353619181 +0200
|
||||
@@ -60,7 +60,7 @@
|
||||
# define _flags pub._flags
|
||||
# define _r pub._r
|
||||
# define _w pub._w
|
||||
-# elif defined __ANDROID__ /* Android */
|
||||
+# elif defined __ANDROID_BUT_THIS_IS_BROKEN__ /* Android */
|
||||
/* Up to this commit from 2015-10-12
|
||||
<https://android.googlesource.com/platform/bionic.git/+/f0141dfab10a4b332769d52fa76631a64741297a>
|
||||
the innards of FILE were public, and fp_ub could be defined like for OpenBSD,
|
21
root-packages/chroot/mktemp.patch
Normal file
21
root-packages/chroot/mktemp.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -u -r ../coreutils-8.22/src/mktemp.c ./src/mktemp.c
|
||||
--- ../coreutils-8.22/src/mktemp.c 2013-12-04 15:48:30.000000000 +0100
|
||||
+++ ./src/mktemp.c 2014-06-03 11:31:58.351787119 +0200
|
||||
@@ -269,7 +269,7 @@
|
||||
else if (dest_dir_arg && *dest_dir_arg)
|
||||
dest_dir = dest_dir_arg;
|
||||
else
|
||||
- dest_dir = "/tmp";
|
||||
+ dest_dir = "@TERMUX_PREFIX@/tmp";
|
||||
|
||||
if (last_component (template) != template)
|
||||
error (EXIT_FAILURE, 0,
|
||||
@@ -283,7 +283,7 @@
|
||||
else
|
||||
{
|
||||
char *env = getenv ("TMPDIR");
|
||||
- dest_dir = (env && *env ? env : "/tmp");
|
||||
+ dest_dir = (env && *env ? env : "@TERMUX_PREFIX@/tmp");
|
||||
}
|
||||
if (IS_ABSOLUTE_FILE_NAME (template))
|
||||
error (EXIT_FAILURE, 0,
|
17
root-packages/chroot/nohup.c.patch
Normal file
17
root-packages/chroot/nohup.c.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Fix
|
||||
error: call to '__umask_invalid_mode' declared with
|
||||
attribute error: umask called with invalid mode
|
||||
on android-21
|
||||
|
||||
diff -u -r ../coreutils-8.23/src/nohup.c ./src/nohup.c
|
||||
--- ../coreutils-8.23/src/nohup.c 2014-07-11 07:00:07.000000000 -0400
|
||||
+++ ./src/nohup.c 2014-12-14 15:22:47.939242789 -0500
|
||||
@@ -141,7 +141,7 @@
|
||||
char const *file = "nohup.out";
|
||||
int flags = O_CREAT | O_WRONLY | O_APPEND;
|
||||
mode_t mode = S_IRUSR | S_IWUSR;
|
||||
- mode_t umask_value = umask (~mode);
|
||||
+ mode_t umask_value = umask (0777 & ~mode);
|
||||
out_fd = (redirecting_stdout
|
||||
? fd_reopen (STDOUT_FILENO, file, flags, mode)
|
||||
: open (file, flags, mode));
|
12
root-packages/chroot/pwd.c.patch
Normal file
12
root-packages/chroot/pwd.c.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -u -r ../coreutils-8.23/src/pwd.c ./src/pwd.c
|
||||
--- ../coreutils-8.23/src/pwd.c 2014-07-13 18:09:52.000000000 -0400
|
||||
+++ ./src/pwd.c 2015-05-17 19:58:20.692454980 -0400
|
||||
@@ -366,7 +366,7 @@
|
||||
if (optind < argc)
|
||||
error (0, 0, _("ignoring non-option arguments"));
|
||||
|
||||
- if (logical)
|
||||
+ if (true) /* Termux: Always try logical, to avoid permission denied on /data/data */
|
||||
{
|
||||
wd = logical_getcwd ();
|
||||
if (wd)
|
13
root-packages/chroot/src-ls.c.patch
Normal file
13
root-packages/chroot/src-ls.c.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff -u -r ../coreutils-8.26/src/ls.c ./src/ls.c
|
||||
--- ../coreutils-8.26/src/ls.c 2016-11-22 15:04:32.000000000 -0500
|
||||
+++ ./src/ls.c 2016-11-30 20:27:28.910732105 -0500
|
||||
@@ -1749,6 +1749,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Termux patch: Default to colors if terminal. The --color option may override this. */
|
||||
+ print_with_color = isatty(STDOUT_FILENO);
|
||||
+
|
||||
while (true)
|
||||
{
|
||||
int oi = -1;
|
Loading…
Reference in New Issue
Block a user