new package: pacman (#7759)
This commit is contained in:
parent
b62fda06bf
commit
2d2556e4e7
41
packages/pacman/add.c.patch
Normal file
41
packages/pacman/add.c.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff -uNr pacman-6.0.0/lib/libalpm/add.c pacman-termux/lib/libalpm/add.c
|
||||||
|
--- pacman-6.0.0/lib/libalpm/add.c 2021-05-20 06:38:45.938120000 +0300
|
||||||
|
+++ pacman-termux/lib/libalpm/add.c 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -132,6 +132,9 @@
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ archive_entry_set_uid(entry, getuid());
|
||||||
|
+ archive_entry_set_gid(entry, getgid());
|
||||||
|
+
|
||||||
|
archive_write_disk_set_options(archive_writer, archive_flags);
|
||||||
|
|
||||||
|
ret = archive_read_extract2(archive, entry, archive_writer);
|
||||||
|
@@ -242,7 +245,6 @@
|
||||||
|
* 3,4- conflict checks should have caught this. either overwrite
|
||||||
|
* or backup the file.
|
||||||
|
* 5- file replacing directory- don't allow it.
|
||||||
|
- * 6- skip extraction, dir already exists.
|
||||||
|
*/
|
||||||
|
|
||||||
|
isnewfile = llstat(filename, &lsbuf) != 0;
|
||||||
|
@@ -254,19 +256,6 @@
|
||||||
|
gid_t entrygid = archive_entry_gid(entry);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- /* case 6: existing dir, ignore it */
|
||||||
|
- if(lsbuf.st_mode != entrymode) {
|
||||||
|
- /* if filesystem perms are different than pkg perms, warn user */
|
||||||
|
- mode_t mask = 07777;
|
||||||
|
- _alpm_log(handle, ALPM_LOG_WARNING, _("directory permissions differ on %s\n"
|
||||||
|
- "filesystem: %o package: %o\n"), filename, lsbuf.st_mode & mask,
|
||||||
|
- entrymode & mask);
|
||||||
|
- alpm_logaction(handle, ALPM_CALLER_PREFIX,
|
||||||
|
- "warning: directory permissions differ on %s\n"
|
||||||
|
- "filesystem: %o package: %o\n", filename, lsbuf.st_mode & mask,
|
||||||
|
- entrymode & mask);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
#if 0
|
||||||
|
/* Disable this warning until our user management in packages has improved.
|
||||||
|
Currently many packages have to create users in post_install and chown the
|
25
packages/pacman/build.sh
Normal file
25
packages/pacman/build.sh
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
TERMUX_PKG_HOMEPAGE=https://archlinux.org/pacman/
|
||||||
|
TERMUX_PKG_DESCRIPTION="a simple library-based package manager"
|
||||||
|
TERMUX_PKG_LICENSE="GPL-2.0"
|
||||||
|
TERMUX_PKG_MAINTAINER="@Maxython"
|
||||||
|
TERMUX_PKG_VERSION=6.0.0
|
||||||
|
TERMUX_PKG_SRCURL=https://sources.archlinux.org/other/pacman/pacman-${TERMUX_PKG_VERSION}.tar.xz
|
||||||
|
TERMUX_PKG_SHA256=004448085a7747bdc7a0a4dd5d1fb7556c6b890111a06e029ab088f9905d4808
|
||||||
|
TERMUX_PKG_DEPENDS="bash, libarchive, curl, gpgme"
|
||||||
|
TERMUX_PKG_BUILD_DEPENDS="doxygen, asciidoc, nettle"
|
||||||
|
TERMUX_PKG_GROUPS="base-devel"
|
||||||
|
|
||||||
|
# A temporary solution to the problem with compiling the documentation.
|
||||||
|
# https://github.com/termux/termux-packages/pull/7759#issuecomment-945664581
|
||||||
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||||
|
-Ddoc=disabled
|
||||||
|
"
|
||||||
|
|
||||||
|
termux_step_pre_configure() {
|
||||||
|
rm -f ./scripts/libmakepkg/executable/sudo.sh.in
|
||||||
|
rm -f ./scripts/libmakepkg/executable/fakeroot.sh.in
|
||||||
|
}
|
||||||
|
|
||||||
|
termux_step_post_configure() {
|
||||||
|
sed -i 's/$ARGS -o $out $in $LINK_ARGS/$ARGS -o $out $in $LINK_ARGS -landroid-glob/' ${TERMUX_TOPDIR}/pacman/build/build.ninja
|
||||||
|
}
|
12
packages/pacman/doc_meson.build.patch
Normal file
12
packages/pacman/doc_meson.build.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -uNr pacman-6.0.0/doc/meson.build pacman-termux/doc/meson.build
|
||||||
|
--- pacman-6.0.0/doc/meson.build 2021-05-20 06:38:45.938120000 +0300
|
||||||
|
+++ pacman-termux/doc/meson.build 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -101,7 +101,7 @@
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
run_target('html',
|
||||||
|
- command : ['/bin/true'],
|
||||||
|
+ command : ['@TERMUX_PREFIX@/bin/true'],
|
||||||
|
depends : html_targets)
|
||||||
|
|
||||||
|
custom_target(
|
16
packages/pacman/executable_meson.build.patch
Normal file
16
packages/pacman/executable_meson.build.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
diff -uNr pacman-6.0.0/scripts/libmakepkg/executable/meson.build pacman-termux/scripts/libmakepkg/executable/meson.build
|
||||||
|
--- pacman-6.0.0/scripts/libmakepkg/executable/meson.build 2021-05-20 06:38:45.948119900 +0300
|
||||||
|
+++ pacman-termux/scripts/libmakepkg/executable/meson.build 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -4,12 +4,10 @@
|
||||||
|
'ccache.sh.in',
|
||||||
|
'checksum.sh.in',
|
||||||
|
'distcc.sh.in',
|
||||||
|
- 'fakeroot.sh.in',
|
||||||
|
'gpg.sh.in',
|
||||||
|
'gzip.sh.in',
|
||||||
|
'pacman.sh.in',
|
||||||
|
'strip.sh.in',
|
||||||
|
- 'sudo.sh.in',
|
||||||
|
'vcs.sh.in',
|
||||||
|
]
|
||||||
|
|
48
packages/pacman/makepkg.conf.in.patch
Normal file
48
packages/pacman/makepkg.conf.in.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
diff -uNr pacman-6.0.0/etc/makepkg.conf.in pacman-termux/etc/makepkg.conf.in
|
||||||
|
--- pacman-6.0.0/etc/makepkg.conf.in 2021-05-20 06:38:45.938120000 +0300
|
||||||
|
+++ pacman-termux/etc/makepkg.conf.in 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -9,17 +9,17 @@
|
||||||
|
#
|
||||||
|
#-- The download utilities that makepkg should use to acquire sources
|
||||||
|
# Format: 'protocol::agent'
|
||||||
|
-DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
|
||||||
|
- 'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
- 'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
- 'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
- 'rsync::/usr/bin/rsync --no-motd -z %u %o'
|
||||||
|
- 'scp::/usr/bin/scp -C %u %o')
|
||||||
|
+DLAGENTS=('file::@TERMUX_PREFIX@/bin/curl -gqC - -o %o %u'
|
||||||
|
+ 'ftp::@TERMUX_PREFIX@/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
+ 'http::@TERMUX_PREFIX@/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
+ 'https::@TERMUX_PREFIX@/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||||
|
+ 'rsync::@TERMUX_PREFIX@/bin/rsync --no-motd -z %u %o'
|
||||||
|
+ 'scp::@TERMUX_PREFIX@/bin/scp -C %u %o')
|
||||||
|
|
||||||
|
# Other common tools:
|
||||||
|
-# /usr/bin/snarf
|
||||||
|
-# /usr/bin/lftpget -c
|
||||||
|
-# /usr/bin/wget
|
||||||
|
+# @TERMUX_PREFIX@/bin/snarf
|
||||||
|
+# @TERMUX_PREFIX@/bin/lftpget -c0
|
||||||
|
+# @TERMUX_PREFIX@/bin/wget
|
||||||
|
|
||||||
|
#-- The package required by makepkg to download VCS sources
|
||||||
|
# Format: 'protocol::package'
|
||||||
|
@@ -92,7 +92,7 @@
|
||||||
|
OPTIONS=(strip docs libtool staticlibs emptydirs zipman purge !debug !lto)
|
||||||
|
|
||||||
|
#-- File integrity checks to use. Valid: ck, md5, sha1, sha224, sha256, sha384, sha512, b2
|
||||||
|
-INTEGRITY_CHECK=(ck)
|
||||||
|
+INTEGRITY_CHECK=(sha256)
|
||||||
|
#-- Options to be used when stripping binaries. See `man strip' for details.
|
||||||
|
STRIP_BINARIES="@STRIP_BINARIES@"
|
||||||
|
#-- Options to be used when stripping shared libraries. See `man strip' for details.
|
||||||
|
@@ -106,7 +106,7 @@
|
||||||
|
#-- Files to be removed from all packages (if purge is specified)
|
||||||
|
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
|
||||||
|
#-- Directory to store source code in for debug packages
|
||||||
|
-DBGSRCDIR="/usr/src/debug"
|
||||||
|
+DBGSRCDIR="@TERMUX_PREFIX@/src/debug"
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# PACKAGE OUTPUT
|
164
packages/pacman/makepkg.sh.in.patch
Normal file
164
packages/pacman/makepkg.sh.in.patch
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
diff -uNr pacman-6.0.0/scripts/makepkg.sh.in pacman-termux/scripts/makepkg.sh.in
|
||||||
|
--- pacman-6.0.0/scripts/makepkg.sh.in 2021-05-20 06:38:45.954786500 +0300
|
||||||
|
+++ pacman-termux/scripts/makepkg.sh.in 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -26,7 +26,7 @@
|
||||||
|
|
||||||
|
# makepkg uses quite a few external programs during its execution. You
|
||||||
|
# need to have at least the following installed for makepkg to function:
|
||||||
|
-# awk, bsdtar (libarchive), bzip2, coreutils, fakeroot, file, find (findutils),
|
||||||
|
+# awk, bsdtar (libarchive), bzip2, coreutils, file, find (findutils),
|
||||||
|
# gettext, gpg, grep, gzip, sed, tput (ncurses), xz
|
||||||
|
|
||||||
|
# gettext initialization
|
||||||
|
@@ -59,7 +59,7 @@
|
||||||
|
GENINTEG=0
|
||||||
|
HOLDVER=0
|
||||||
|
IGNOREARCH=0
|
||||||
|
-INFAKEROOT=0
|
||||||
|
+PKGCREATION=0
|
||||||
|
INSTALL=0
|
||||||
|
LOGGING=0
|
||||||
|
NEEDED=0
|
||||||
|
@@ -105,7 +105,7 @@
|
||||||
|
trap_exit() {
|
||||||
|
local signal=$1; shift
|
||||||
|
|
||||||
|
- if (( ! INFAKEROOT )); then
|
||||||
|
+ if (( ! PKGCREATION )); then
|
||||||
|
echo
|
||||||
|
error "$@"
|
||||||
|
fi
|
||||||
|
@@ -123,7 +123,7 @@
|
||||||
|
clean_up() {
|
||||||
|
local EXIT_CODE=$?
|
||||||
|
|
||||||
|
- if (( INFAKEROOT )); then
|
||||||
|
+ if (( PKGCREATION )); then
|
||||||
|
# Don't clean up when leaving fakeroot, we're not done yet.
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
@@ -179,9 +179,9 @@
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
-enter_fakeroot() {
|
||||||
|
- msg "$(gettext "Entering %s environment...")" "fakeroot"
|
||||||
|
- fakeroot -- bash -$- "${BASH_SOURCE[0]}" -F "${ARGLIST[@]}" || exit $?
|
||||||
|
+pkg_creation() {
|
||||||
|
+ msg "$(gettext "Package creation...")"
|
||||||
|
+ "${BASH_SOURCE[0]}" -F "${ARGLIST[@]}" || exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
# Automatically update pkgver variable if a pkgver() function is provided
|
||||||
|
@@ -237,10 +237,6 @@
|
||||||
|
else
|
||||||
|
cmd=("${PACMAN_AUTH[@]}" "${cmd[@]}")
|
||||||
|
fi
|
||||||
|
- elif type -p sudo >/dev/null; then
|
||||||
|
- cmd=(sudo "${cmd[@]}")
|
||||||
|
- else
|
||||||
|
- cmd=(su root -c "$cmdescape")
|
||||||
|
fi
|
||||||
|
local lockfile="$(pacman-conf DBPath)/db.lck"
|
||||||
|
while [[ -f $lockfile ]]; do
|
||||||
|
@@ -597,7 +593,6 @@
|
||||||
|
merge_arch_attrs
|
||||||
|
|
||||||
|
printf "# Generated by makepkg %s\n" "$makepkg_version"
|
||||||
|
- printf "# using %s\n" "$(fakeroot -v)"
|
||||||
|
|
||||||
|
write_kv_pair "pkgname" "$pkgname"
|
||||||
|
write_kv_pair "pkgbase" "$pkgbase"
|
||||||
|
@@ -939,7 +934,7 @@
|
||||||
|
|
||||||
|
run_single_packaging() {
|
||||||
|
local pkgdir="$pkgdirbase/$pkgname"
|
||||||
|
- mkdir "$pkgdir"
|
||||||
|
+ mkdir -p "$terdir"
|
||||||
|
if [[ -n $1 ]] || (( PKGFUNC )); then
|
||||||
|
run_package $1
|
||||||
|
fi
|
||||||
|
@@ -1071,7 +1066,7 @@
|
||||||
|
-d|--nodeps) NODEPS=1 ;;
|
||||||
|
-e|--noextract) NOEXTRACT=1 ;;
|
||||||
|
-f|--force) FORCE=1 ;;
|
||||||
|
- -F) INFAKEROOT=1 ;;
|
||||||
|
+ -F) PKGCREATION=1 ;;
|
||||||
|
# generating integrity checks does not depend on architecture
|
||||||
|
-g|--geninteg) BUILDPKG=0 GENINTEG=1 IGNOREARCH=1;;
|
||||||
|
--holdver) HOLDVER=1 ;;
|
||||||
|
@@ -1186,17 +1181,10 @@
|
||||||
|
exit $E_FS_PERMISSIONS
|
||||||
|
fi
|
||||||
|
|
||||||
|
-if (( ! INFAKEROOT )); then
|
||||||
|
- if (( EUID == 0 )); then
|
||||||
|
- error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
|
||||||
|
+if (( EUID == 0 )); then
|
||||||
|
+ error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
|
||||||
|
catastrophic damage to your system.")" "makepkg"
|
||||||
|
- exit $E_ROOT
|
||||||
|
- fi
|
||||||
|
-else
|
||||||
|
- if [[ -z $FAKEROOTKEY ]]; then
|
||||||
|
- error "$(gettext "Do not use the %s option. This option is only for internal use by %s.")" "'-F'" "makepkg"
|
||||||
|
- exit $E_INVALID_OPTION
|
||||||
|
- fi
|
||||||
|
+ exit $E_ROOT
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset pkgname "${pkgbuild_schema_strings[@]}" "${pkgbuild_schema_arrays[@]}"
|
||||||
|
@@ -1252,6 +1240,13 @@
|
||||||
|
# set pkgdir to something "sensible" for (not recommended) use during build()
|
||||||
|
pkgdir="$pkgdirbase/$pkgbase"
|
||||||
|
|
||||||
|
+# the second pkgdir but from the termux system directory
|
||||||
|
+terdir="$pkgdir/@TERMUX_BASE_DIR@"
|
||||||
|
+
|
||||||
|
+# adding home and prefix to compile correctly
|
||||||
|
+prefix="@TERMUX_PREFIX@"
|
||||||
|
+home="@TERMUX_HOME@"
|
||||||
|
+
|
||||||
|
if (( GENINTEG )); then
|
||||||
|
mkdir -p "$srcdir"
|
||||||
|
chmod a-s "$srcdir"
|
||||||
|
@@ -1320,10 +1315,10 @@
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run the bare minimum in fakeroot
|
||||||
|
-if (( INFAKEROOT )); then
|
||||||
|
+if (( PKGCREATION )); then
|
||||||
|
if (( SOURCEONLY )); then
|
||||||
|
create_srcpackage
|
||||||
|
- msg "$(gettext "Leaving %s environment.")" "fakeroot"
|
||||||
|
+ msg "$(gettext "Package creation.")"
|
||||||
|
exit $E_OK
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -1338,7 +1333,7 @@
|
||||||
|
|
||||||
|
create_debug_package
|
||||||
|
|
||||||
|
- msg "$(gettext "Leaving %s environment.")" "fakeroot"
|
||||||
|
+ msg "$(gettext "Package creation.")"
|
||||||
|
exit $E_OK
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -1365,7 +1360,7 @@
|
||||||
|
check_source_integrity all
|
||||||
|
cd_safe "$startdir"
|
||||||
|
|
||||||
|
- enter_fakeroot
|
||||||
|
+ pkg_creation
|
||||||
|
|
||||||
|
if [[ $SIGNPKG = 'y' ]]; then
|
||||||
|
msg "$(gettext "Signing package...")"
|
||||||
|
@@ -1467,7 +1462,7 @@
|
||||||
|
cd_safe "$startdir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- enter_fakeroot
|
||||||
|
+ pkg_creation
|
||||||
|
|
||||||
|
create_package_signatures || exit $E_PRETTY_BAD_PRIVACY
|
||||||
|
fi
|
32
packages/pacman/meson.build.patch
Normal file
32
packages/pacman/meson.build.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
diff -uNr pacman-6.0.0/meson.build pacman-termux/meson.build
|
||||||
|
--- pacman-6.0.0/meson.build 2021-05-20 06:38:45.948119900 +0300
|
||||||
|
+++ pacman-termux/meson.build 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -4,9 +4,9 @@
|
||||||
|
license : 'GPLv2+',
|
||||||
|
default_options : [
|
||||||
|
'c_std=gnu99',
|
||||||
|
- 'prefix=/usr',
|
||||||
|
- 'sysconfdir=/etc',
|
||||||
|
- 'localstatedir=/var',
|
||||||
|
+ 'prefix=@TERMUX_PREFIX@',
|
||||||
|
+ 'sysconfdir=@TERMUX_PREFIX@/etc',
|
||||||
|
+ 'localstatedir=@TERMUX_PREFIX@/var',
|
||||||
|
],
|
||||||
|
meson_version : '>= 0.51')
|
||||||
|
|
||||||
|
@@ -76,15 +76,6 @@
|
||||||
|
conf.set_quoted('ROOTDIR', ROOTDIR)
|
||||||
|
|
||||||
|
libintl = dependency('', required: false)
|
||||||
|
-if get_option('i18n')
|
||||||
|
- if not cc.has_function('ngettext')
|
||||||
|
- libintl = cc.find_library('intl', required : false, static: get_option('buildstatic'))
|
||||||
|
- if not libintl.found()
|
||||||
|
- error('ngettext not found but NLS support requested')
|
||||||
|
- endif
|
||||||
|
- endif
|
||||||
|
- conf.set('ENABLE_NLS', 1)
|
||||||
|
-endif
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
libarchive = dependency('libarchive',
|
32
packages/pacman/meson_options.txt.patch
Normal file
32
packages/pacman/meson_options.txt.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
diff -uNr pacman-6.0.0/meson_options.txt pacman-termux/meson_options.txt
|
||||||
|
--- pacman-6.0.0/meson_options.txt 2021-05-20 06:38:45.948119900 +0300
|
||||||
|
+++ pacman-termux/meson_options.txt 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -8,16 +8,16 @@
|
||||||
|
option('root-dir', type : 'string', value : '/',
|
||||||
|
description : 'set the location of the root operating directory')
|
||||||
|
|
||||||
|
-option('pkg-ext', type : 'string', value : '.pkg.tar.gz',
|
||||||
|
+option('pkg-ext', type : 'string', value : '.pkg.tar.xz',
|
||||||
|
description : 'set the file extension used by packages')
|
||||||
|
|
||||||
|
option('src-ext', type : 'string', value : '.src.tar.gz',
|
||||||
|
description : 'set the file extension used by source packages')
|
||||||
|
|
||||||
|
-option('scriptlet-shell', type : 'string', value : '/bin/sh',
|
||||||
|
+option('scriptlet-shell', type : 'string', value : '@TERMUX_PREFIX@/bin/bash',
|
||||||
|
description : 'The full path of the shell used to run install scriptlets')
|
||||||
|
|
||||||
|
-option('ldconfig', type : 'string', value : '/sbin/ldconfig',
|
||||||
|
+option('ldconfig', type : 'string', value : '@TERMUX_PREFIX@/bin/ldconfig',
|
||||||
|
description : 'set the full path to ldconfig')
|
||||||
|
|
||||||
|
option('buildscript', type : 'string', value : 'PKGBUILD',
|
||||||
|
@@ -26,7 +26,7 @@
|
||||||
|
option('datarootdir', type : 'string', value : 'share',
|
||||||
|
description : 'FIXME')
|
||||||
|
|
||||||
|
-option('makepkg-template-dir', type : 'string', value : '/usr/share/makepkg-template',
|
||||||
|
+option('makepkg-template-dir', type : 'string', value : '@TERMUX_PREFIX@/share/makepkg-template',
|
||||||
|
description : 'template dir used by makepkg-template')
|
||||||
|
|
||||||
|
option('debug-suffix', type : 'string', value : 'debug',
|
15
packages/pacman/pacman-key.sh.in.patch
Normal file
15
packages/pacman/pacman-key.sh.in.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -uNr pacman-6.0.0/scripts/pacman-key.sh.in pacman-termux/scripts/pacman-key.sh.in
|
||||||
|
--- pacman-6.0.0/scripts/pacman-key.sh.in 2021-05-20 06:38:45.954786500 +0300
|
||||||
|
+++ pacman-termux/scripts/pacman-key.sh.in 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -670,11 +670,6 @@
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
-if (( (ADD || DELETE || EDITKEY || IMPORT || IMPORT_TRUSTDB || INIT || LSIGNKEY || POPULATE || RECEIVE || REFRESH || UPDATEDB) && EUID != 0 )); then
|
||||||
|
- error "$(gettext "%s needs to be run as root for this operation.")" "pacman-key"
|
||||||
|
- exit 1
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
CONFIG=${CONFIG:-@sysconfdir@/pacman.conf}
|
||||||
|
if [[ ! -r "${CONFIG}" ]]; then
|
||||||
|
error "$(gettext "%s configuration file '%s' not found.")" "pacman" "$CONFIG"
|
25
packages/pacman/pacman.c.patch
Normal file
25
packages/pacman/pacman.c.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
diff -uNr pacman-6.0.0/src/pacman/pacman.c pacman-termux/src/pacman/pacman.c
|
||||||
|
--- pacman-6.0.0/src/pacman/pacman.c 2021-05-20 06:38:45.964786500 +0300
|
||||||
|
+++ pacman-termux/src/pacman/pacman.c 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -1131,8 +1131,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if we have sufficient permission for the requested operation */
|
||||||
|
- if(myuid > 0 && needs_root()) {
|
||||||
|
- pm_printf(ALPM_LOG_ERROR, _("you cannot perform this operation unless you are root.\n"));
|
||||||
|
+ if(myuid == 0) {
|
||||||
|
+ pm_printf(ALPM_LOG_ERROR, _("blocking operation, you can not run from the root of the user.\n"));
|
||||||
|
cleanup(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1236,9 +1236,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Log command line */
|
||||||
|
- if(needs_root()) {
|
||||||
|
- cl_to_log(argc, argv);
|
||||||
|
- }
|
||||||
|
+ cl_to_log(argc, argv);
|
||||||
|
|
||||||
|
/* start the requested operation */
|
||||||
|
switch(config->op) {
|
80
packages/pacman/pacman.conf.in.patch
Normal file
80
packages/pacman/pacman.conf.in.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
diff -uNr pacman-6.0.0/etc/pacman.conf.in pacman-termux/etc/pacman.conf.in
|
||||||
|
--- pacman-6.0.0/etc/pacman.conf.in 2021-05-20 06:38:45.938120000 +0300
|
||||||
|
+++ pacman-termux/etc/pacman.conf.in 2021-10-04 16:03:29.000000000 +0300
|
||||||
|
@@ -9,20 +9,20 @@
|
||||||
|
[options]
|
||||||
|
# The following paths are commented out with their default values listed.
|
||||||
|
# If you wish to use different paths, uncomment and update the paths.
|
||||||
|
-#RootDir = @ROOTDIR@
|
||||||
|
+#RootDir = /
|
||||||
|
#DBPath = @localstatedir@/lib/pacman/
|
||||||
|
#CacheDir = @localstatedir@/cache/pacman/pkg/
|
||||||
|
#LogFile = @localstatedir@/log/pacman.log
|
||||||
|
#GPGDir = @sysconfdir@/pacman.d/gnupg/
|
||||||
|
#HookDir = @sysconfdir@/pacman.d/hooks/
|
||||||
|
-HoldPkg = pacman glibc
|
||||||
|
-#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||||
|
-#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||||
|
+#XferCommand = @TERMUX_PREFIX@/bin/curl -L -C - -f -o %o %u
|
||||||
|
+#XferCommand = @TERMUX_PREFIX@/bin/wget --passive-ftp -c -O %o %u
|
||||||
|
+HoldPkg = pacman
|
||||||
|
#CleanMethod = KeepInstalled
|
||||||
|
Architecture = auto
|
||||||
|
|
||||||
|
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||||
|
#IgnorePkg =
|
||||||
|
#IgnoreGroup =
|
||||||
|
|
||||||
|
#NoUpgrade =
|
||||||
|
@@ -30,16 +30,21 @@
|
||||||
|
|
||||||
|
# Misc options
|
||||||
|
#UseSyslog
|
||||||
|
-#Color
|
||||||
|
+Color
|
||||||
|
#NoProgressBar
|
||||||
|
CheckSpace
|
||||||
|
#VerbosePkgLists
|
||||||
|
ParallelDownloads = 5
|
||||||
|
|
||||||
|
-# PGP signature checking
|
||||||
|
-#SigLevel = Optional
|
||||||
|
-#LocalFileSigLevel = Optional
|
||||||
|
-#RemoteFileSigLevel = Optional
|
||||||
|
+# By default, pacman accepts packages signed by keys that its local keyring
|
||||||
|
+# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||||
|
+SigLevel = Never
|
||||||
|
+LocalFileSigLevel = Optional
|
||||||
|
+#RemoteFileSigLevel = Required
|
||||||
|
+
|
||||||
|
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||||
|
+# keyring can then be populated with the keys of all official Arch Linux ARM
|
||||||
|
+# packagers with `pacman-key --populate archlinuxarm`.
|
||||||
|
|
||||||
|
#
|
||||||
|
# REPOSITORIES
|
||||||
|
@@ -60,18 +65,9 @@
|
||||||
|
# uncommented to enable the repo.
|
||||||
|
#
|
||||||
|
|
||||||
|
-# An example of a disabled remote package repository with multiple servers
|
||||||
|
-# available. To enable, uncomment the following lines. You can add preferred
|
||||||
|
-# servers immediately after the header and they will be used before the
|
||||||
|
-# default mirrors.
|
||||||
|
-#[core]
|
||||||
|
-#SigLevel = Required
|
||||||
|
-#Server = ftp://ftp.example.com/foobar/$repo/os/$arch/
|
||||||
|
-# The file referenced here should contain a list of 'Server = ' lines.
|
||||||
|
-#Include = @sysconfdir@/pacman.d/mirrorlist
|
||||||
|
-
|
||||||
|
-# An example of a custom package repository. See the pacman manpage for
|
||||||
|
-# tips on creating your own repositories.
|
||||||
|
-#[custom]
|
||||||
|
-#SigLevel = Optional TrustAll
|
||||||
|
-#Server = file:///home/custompkgs
|
||||||
|
+# The testing repositories are disabled by default. To enable, uncomment the
|
||||||
|
+# repo name header and Include lines. You can add preferred servers immediately
|
||||||
|
+# after the header, and they will be used before the default mirrors.
|
||||||
|
+
|
||||||
|
+[main]
|
||||||
|
+Server = https://maxython.github.io/termux-packages-in-pacman-format/main/$arch
|
12
packages/pacman/repo-add.sh.in.patch
Normal file
12
packages/pacman/repo-add.sh.in.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -uNr pacman-6.0.0/scripts/repo-add.sh.in pacman-termux/scripts/repo-add.sh.in
|
||||||
|
--- pacman-6.0.0/scripts/repo-add.sh.in 2021-05-20 06:38:45.961453200 +0300
|
||||||
|
+++ pacman-termux/scripts/repo-add.sh.in 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -585,7 +585,7 @@
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
-tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/repo-tools.XXXXXXXXXX") || (\
|
||||||
|
+tmpdir=$(mktemp -d "${TMPDIR:-@TERMUX_PREFIX@/tmp}/repo-tools.XXXXXXXXXX") || (\
|
||||||
|
error "$(gettext "Cannot create temp directory for database building.")"; \
|
||||||
|
exit 1)
|
||||||
|
|
22
packages/pacman/trans.c.patch
Normal file
22
packages/pacman/trans.c.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff -uNr pacman-6.0.0/lib/libalpm/trans.c pacman-termux/lib/libalpm/trans.c
|
||||||
|
--- pacman-6.0.0/lib/libalpm/trans.c 2021-05-20 06:38:45.948119900 +0300
|
||||||
|
+++ pacman-termux/lib/libalpm/trans.c 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -353,14 +353,14 @@
|
||||||
|
strcpy(arg0, SCRIPTLET_SHELL);
|
||||||
|
strcpy(arg1, "-c");
|
||||||
|
|
||||||
|
- /* create a directory in $root/tmp/ for copying/extracting the scriptlet */
|
||||||
|
- len = strlen(handle->root) + strlen("tmp/alpm_XXXXXX") + 1;
|
||||||
|
+ /* create a directory in @TERMUX_PREFIX@/tmp/ for copying/extracting the scriptlet */
|
||||||
|
+ len = strlen("@TERMUX_PREFIX@/tmp/alpm_XXXXXX") + 1;
|
||||||
|
MALLOC(tmpdir, len, RET_ERR(handle, ALPM_ERR_MEMORY, -1));
|
||||||
|
- snprintf(tmpdir, len, "%stmp/", handle->root);
|
||||||
|
+ snprintf(tmpdir, len, "@TERMUX_PREFIX@/tmp/");
|
||||||
|
if(access(tmpdir, F_OK) != 0) {
|
||||||
|
_alpm_makepath_mode(tmpdir, 01777);
|
||||||
|
}
|
||||||
|
- snprintf(tmpdir, len, "%stmp/alpm_XXXXXX", handle->root);
|
||||||
|
+ snprintf(tmpdir, len, "@TERMUX_PREFIX@/tmp/alpm_XXXXXX");
|
||||||
|
if(mkdtemp(tmpdir) == NULL) {
|
||||||
|
_alpm_log(handle, ALPM_LOG_ERROR, _("could not create temp directory\n"));
|
||||||
|
free(tmpdir);
|
32
packages/pacman/util.c.patch
Normal file
32
packages/pacman/util.c.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
diff -uNr pacman-6.0.0/lib/libalpm/util.c pacman-termux/lib/libalpm/util.c
|
||||||
|
--- pacman-6.0.0/lib/libalpm/util.c 2021-05-20 06:38:45.948119900 +0300
|
||||||
|
+++ pacman-termux/lib/libalpm/util.c 2021-10-04 16:00:39.000000000 +0300
|
||||||
|
@@ -650,10 +650,6 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* use fprintf instead of _alpm_log to send output through the parent */
|
||||||
|
- if(chroot(handle->root) != 0) {
|
||||||
|
- fprintf(stderr, _("could not change the root directory (%s)\n"), strerror(errno));
|
||||||
|
- exit(1);
|
||||||
|
- }
|
||||||
|
if(chdir("/") != 0) {
|
||||||
|
fprintf(stderr, _("could not change directory to %s (%s)\n"),
|
||||||
|
"/", strerror(errno));
|
||||||
|
@@ -669,7 +665,7 @@
|
||||||
|
/* this code runs for the parent only (wait on the child) */
|
||||||
|
int status;
|
||||||
|
char obuf[PIPE_BUF]; /* writes <= PIPE_BUF are guaranteed atomic */
|
||||||
|
- char ibuf[LINE_MAX];
|
||||||
|
+ char ibuf[PATH_MAX];
|
||||||
|
ssize_t olen = 0, ilen = 0;
|
||||||
|
nfds_t nfds = 2;
|
||||||
|
struct pollfd fds[2], *child2parent = &(fds[0]), *parent2child = &(fds[1]);
|
||||||
|
@@ -897,7 +893,7 @@
|
||||||
|
if((tmpdir = getenv("TMPDIR")) && stat(tmpdir, &buf) && S_ISDIR(buf.st_mode)) {
|
||||||
|
/* TMPDIR was good, we can use it */
|
||||||
|
} else {
|
||||||
|
- tmpdir = "/tmp";
|
||||||
|
+ tmpdir = "@TERMUX_PREFIX@/tmp";
|
||||||
|
}
|
||||||
|
alpm_option_add_cachedir(handle, tmpdir);
|
||||||
|
cachedir = handle->cachedirs->prev->data;
|
Loading…
Reference in New Issue
Block a user