first
This commit is contained in:
commit
b50fd16591
197 changed files with 41663 additions and 0 deletions
58
overlay/Gentoo/usr/local/bin/base_gnupg_test.bash
Executable file
58
overlay/Gentoo/usr/local/bin/base_gnupg_test.bash
Executable file
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
PREFIX=/usr/local
|
||||
ROLE=base
|
||||
. /usr/local/bin/usr_local_tput.bash || exit 1
|
||||
|
||||
# The idea here is to run ansible_local.bash --tags daily
|
||||
# and then use this to do the parsing and throwing errors based on the output.
|
||||
# This was the ansible run can be free from erroring and this can be
|
||||
# run repeatedly anytime outside of ansible to deal with the issues raised.
|
||||
# It is also run at the end of ansible_local.bash --tags daily to raise the issues.
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
[ -f /usr/local/etc/testforge/testforge.bash ] && . /usr/local/etc/testforge/testforge.bash
|
||||
|
||||
. /usr/local/etc/local.d/local.bash
|
||||
|
||||
MYID=$( id -u )
|
||||
[ $MYID -eq 0 ] || { ERROR $prog must be run as root $MYID ; exit 1 ; }
|
||||
LOG_DIR=/usr/local/tmp
|
||||
|
||||
[ -d /etc/portage/gnupg ] || exit 0
|
||||
|
||||
KEY_ID=96D8BF6D
|
||||
KEY_SER=subkeys.pgp.net
|
||||
GPG="gpg --home /etc/portage/gnupg"
|
||||
|
||||
# * - primary key: DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D
|
||||
# * - subkey: E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
|
||||
|
||||
if route | grep ^def ; then
|
||||
[ -f /usr/local/bin/base_daily.gpg ] || \
|
||||
/usr/local/bin/scurl.bash --output /usr/local/bin/base_daily.gpg \
|
||||
https://qa-reports.gentoo.org/output/service-keys.gpg || \
|
||||
exit 2$?
|
||||
fi
|
||||
|
||||
if [ -f /usr/local/bin/base_daily.gpg ] ; then
|
||||
: trusted
|
||||
# expired keys pass this
|
||||
if $GPG --list-keys --with-colons |grep $KEY_ID |grep :f: ; then
|
||||
: full trust?
|
||||
elif $GPG --list-keys |grep -A1 $KEY_ID |tail -1| grep unknown ; then
|
||||
expect /usr/local/bin/base_daily.exp || exit 4$?
|
||||
elif $GPG --list-keys |grep -A1 $KEY_ID |tail -1| grep trust ; then
|
||||
: this format does not exist
|
||||
else
|
||||
PANIC 3 $GPG --list-keys $KEY_ID not trusted
|
||||
fi
|
||||
else
|
||||
gpg --homedir /etc/portage/gnupg --keyserver $KEY_SER --recv-keys 0x$KEY_ID
|
||||
expect /usr/local/bin/base_daily.exp || exit 5$?
|
||||
# was gpg --homedir /etc/portage/gnupg --edit-key 0x$KEY_ID trust || exit 6
|
||||
fi
|
||||
|
||||
ls -ld /etc/portage/gnupg | grep -q drwx------ || chmod 700 /etc/portage/gnupg
|
336
overlay/Gentoo/usr/local/etc/python-exec/python-exec.lis
Normal file
336
overlay/Gentoo/usr/local/etc/python-exec/python-exec.lis
Normal file
|
@ -0,0 +1,336 @@
|
|||
#/usr/bin
|
||||
2to3
|
||||
UTscapy
|
||||
activate-global-python-argcomplete
|
||||
airdrop-ng
|
||||
airgraph-ng
|
||||
airodump-join
|
||||
alembic
|
||||
apirst2html.py
|
||||
automat-visualize
|
||||
autopep8
|
||||
bandit
|
||||
bandit-baseline
|
||||
bandit-config-generator
|
||||
behave
|
||||
binwalk
|
||||
bleachbit
|
||||
bokeh
|
||||
buildhtml.py
|
||||
buildout
|
||||
bumpversion
|
||||
bzr
|
||||
calc-prorate
|
||||
catalyst
|
||||
cftp
|
||||
change_tz
|
||||
chardetect
|
||||
cherryd
|
||||
ckeygen
|
||||
conch
|
||||
coverage
|
||||
coverage-2.7
|
||||
coverage-3.6
|
||||
coverage2
|
||||
coverage3
|
||||
cpuinfo
|
||||
csscapture
|
||||
csscombine
|
||||
cssparse
|
||||
csv2rdf
|
||||
cxfreeze
|
||||
cxfreeze-quickstart
|
||||
cygdb
|
||||
cython
|
||||
cythonize
|
||||
depend-java-query
|
||||
distro
|
||||
docker-compose
|
||||
doesitcache
|
||||
dropbox-cli
|
||||
easy_install
|
||||
echo_supervisord_conf
|
||||
eclean
|
||||
eclean-dist
|
||||
eclean-pkg
|
||||
edfviewer
|
||||
ekeyword
|
||||
elementsinfo
|
||||
enalyze
|
||||
epkginfo
|
||||
epsg_tr.py
|
||||
epydoc
|
||||
epylint
|
||||
equery
|
||||
eshowkw
|
||||
esri2wkt.py
|
||||
f2py
|
||||
fab
|
||||
fast-import-filter
|
||||
fast-import-info
|
||||
fast-import-query
|
||||
fbless
|
||||
flake8
|
||||
flask
|
||||
futurize
|
||||
gcps2vec.py
|
||||
gcps2wld.py
|
||||
gdal2tiles.py
|
||||
gdal2xyz.py
|
||||
gdal_auth.py
|
||||
gdal_calc.py
|
||||
gdal_edit.py
|
||||
gdal_fillnodata.py
|
||||
gdal_merge.py
|
||||
gdal_pansharpen.py
|
||||
gdal_polygonize.py
|
||||
gdal_proximity.py
|
||||
gdal_retile.py
|
||||
gdal_sieve.py
|
||||
gdalchksum.py
|
||||
gdalcompare.py
|
||||
gdalident.py
|
||||
gdalimport.py
|
||||
gdalmove.py
|
||||
gemato
|
||||
gertty
|
||||
gflags2man.py
|
||||
gjl
|
||||
glances
|
||||
gsettings-schema-convert
|
||||
helpviewer-2.8
|
||||
helpviewer-3.0
|
||||
http
|
||||
ics_diff
|
||||
idle
|
||||
img2png-2.8
|
||||
img2png-3.0
|
||||
img2py-2.8
|
||||
img2py-3.0
|
||||
img2xpm-2.8
|
||||
img2xpm-3.0
|
||||
imlate
|
||||
invoke
|
||||
iotop
|
||||
iptest
|
||||
iptest2
|
||||
iptest3
|
||||
ipython
|
||||
ipython2
|
||||
ipython3
|
||||
isort
|
||||
isympy
|
||||
java-config-2
|
||||
jsonpointer
|
||||
jsonschema
|
||||
jupyter
|
||||
jupyter-bundlerextension
|
||||
jupyter-kernel
|
||||
jupyter-kernelspec
|
||||
jupyter-migrate
|
||||
jupyter-nbconvert
|
||||
jupyter-nbextension
|
||||
jupyter-notebook
|
||||
jupyter-qtconsole
|
||||
jupyter-run
|
||||
jupyter-serverextension
|
||||
jupyter-trust
|
||||
kernprof
|
||||
keyczart
|
||||
kivy-garden
|
||||
layman
|
||||
layman-mounter
|
||||
layman-overlay-maker
|
||||
layman-updater
|
||||
livereload
|
||||
m2r
|
||||
mailmail
|
||||
mako-render
|
||||
margins
|
||||
markdown2
|
||||
markdown_py
|
||||
mca2edf
|
||||
meson
|
||||
mibcopy.py
|
||||
mibdump.py
|
||||
miniterm.py
|
||||
mkbootimg
|
||||
mkdocs
|
||||
mkgraticule.py
|
||||
ndg_httpclient
|
||||
nosetests
|
||||
nyx
|
||||
odo
|
||||
ogrmerge.py
|
||||
paster
|
||||
pasteurize
|
||||
paver
|
||||
pbr
|
||||
pct2rgb.py
|
||||
pdfshuffler
|
||||
pdoc
|
||||
peakidentifier
|
||||
pep8
|
||||
pidproxy
|
||||
pt2to3
|
||||
ptdump
|
||||
ptrepack
|
||||
pttree
|
||||
pudb
|
||||
pudb3
|
||||
pwiz.py
|
||||
pxml
|
||||
py.test
|
||||
pyalacarte-2.8
|
||||
pyalacarte-3.0
|
||||
pyalamode-2.8
|
||||
pyalamode-3.0
|
||||
pybabel
|
||||
pybitmessage
|
||||
pybot
|
||||
pycallgraph
|
||||
pycodestyle
|
||||
pycrust-2.8
|
||||
pycrust-3.0
|
||||
pydoc
|
||||
pyflakes
|
||||
pygmentize
|
||||
pygobject-codegen-2.0
|
||||
pyhtmlizer
|
||||
pyjwt
|
||||
pylint
|
||||
pylupdate5
|
||||
pymca
|
||||
pymcabatch
|
||||
pymcapostbatch
|
||||
pymcaroitool
|
||||
pyrcc5
|
||||
pyreverse
|
||||
pyro4-check-config
|
||||
pyro4-flameserver
|
||||
pyro4-httpgateway
|
||||
pyro4-ns
|
||||
pyro4-nsc
|
||||
pyro4-test-echoserver
|
||||
pyroma
|
||||
pyrsa-decrypt
|
||||
pyrsa-decrypt-bigfile
|
||||
pyrsa-encrypt
|
||||
pyrsa-encrypt-bigfile
|
||||
pyrsa-keygen
|
||||
pyrsa-priv2pub
|
||||
pyrsa-sign
|
||||
pyrsa-verify
|
||||
pyshell-2.8
|
||||
pyshell-3.0
|
||||
pytest
|
||||
python-argcomplete-check-easy-install-script
|
||||
python-config
|
||||
python2-config
|
||||
python3-config
|
||||
pyuic5
|
||||
pyvenv
|
||||
pywrap-2.8
|
||||
pywrap-3.0
|
||||
pywxrc-2.8
|
||||
pywxrc-3.0
|
||||
qemu-ga-client
|
||||
qmp-shell
|
||||
qr
|
||||
quicktest.py
|
||||
qutebrowser
|
||||
raven
|
||||
rdf2dot
|
||||
rdfgraphisomorphism
|
||||
rdfpipe
|
||||
rdfs2dot
|
||||
readelf.py
|
||||
rebot
|
||||
register-python-argcomplete
|
||||
repo
|
||||
repoman
|
||||
revdep-rebuild
|
||||
rgb2pct.py
|
||||
rgbcorrelator
|
||||
robot
|
||||
rpyc_classic.py
|
||||
rpyc_registry.py
|
||||
rst2html.py
|
||||
rst2html4.py
|
||||
rst2html5.py
|
||||
rst2latex.py
|
||||
rst2man.py
|
||||
rst2odt.py
|
||||
rst2odt_prepstyles.py
|
||||
rst2pdf
|
||||
rst2pseudoxml.py
|
||||
rst2s5.py
|
||||
rst2xetex.py
|
||||
rst2xml.py
|
||||
rstpep2html.py
|
||||
runxlrd.py
|
||||
safety
|
||||
scapy
|
||||
scons
|
||||
scons-configure-cache
|
||||
scons-time
|
||||
sconsign
|
||||
scour
|
||||
sphinx-apidoc
|
||||
sphinx-autogen
|
||||
sphinx-build
|
||||
sphinx-quickstart
|
||||
spyder3
|
||||
supervisorctl
|
||||
supervisord
|
||||
svg2rlg
|
||||
symilar
|
||||
tabulate
|
||||
tkconch
|
||||
tls.py
|
||||
tlsdb.py
|
||||
tor-prompt
|
||||
tox
|
||||
tox-quickstart
|
||||
trial
|
||||
twist
|
||||
twistd
|
||||
twisted-regen-cache
|
||||
umpv
|
||||
uniconvertor
|
||||
unit2
|
||||
vba_extract.py
|
||||
versioneer
|
||||
veusz
|
||||
virtualenv
|
||||
vmxcap
|
||||
vol.py
|
||||
waitress-serve
|
||||
watchmedo
|
||||
wheel
|
||||
wsdump.py
|
||||
xml2po
|
||||
xpra
|
||||
xpra_browser
|
||||
xpra_launcher
|
||||
xpra_signal_listener
|
||||
xrced-2.8
|
||||
xrced-3.0
|
||||
yamllint
|
||||
yolk
|
||||
yq
|
||||
zope-testrunner
|
||||
# /usr/sbin
|
||||
archive-conf
|
||||
dispatch-conf
|
||||
env-update
|
||||
fixpackages
|
||||
regenworld
|
||||
smbios-keyboard-ctl
|
||||
smbios-lcd-brightness
|
||||
smbios-passwd
|
||||
smbios-sys-info
|
||||
smbios-thermal-ctl
|
||||
smbios-token-ctl
|
||||
smbios-wakeup-ctl
|
||||
smbios-wireless-ctl
|
19
overlay/Gentoo/usr/local/etc/python-exec/python3-base.lis
Normal file
19
overlay/Gentoo/usr/local/etc/python-exec/python3-base.lis
Normal file
|
@ -0,0 +1,19 @@
|
|||
ebuild
|
||||
egencache
|
||||
emerge
|
||||
emirrordist
|
||||
glsa-check
|
||||
portageq
|
||||
quickpkg
|
||||
emaint
|
||||
ansible
|
||||
ansible-config
|
||||
ansible-connection
|
||||
ansible-console
|
||||
ansible-doc
|
||||
ansible-galaxy
|
||||
ansible-inventory
|
||||
ansible-playbook
|
||||
ansible-playbook.bash
|
||||
ansible-pull
|
||||
ansible-vault
|
30
overlay/Gentoo/usr/local/sbin/base_diff_from_dst.bash
Executable file
30
overlay/Gentoo/usr/local/sbin/base_diff_from_dst.bash
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
. /usr/local/bin/usr_local_base.bash || exit 1
|
||||
. /usr/local/bin/usr_local_tput.bash || exit 2
|
||||
|
||||
TODIR=/o/data/TestForge/src/ansible
|
||||
BASE_DIR=`basename $PWD`
|
||||
|
||||
[ $# -ge 1 ] && ROLE=$1 || ROLE=
|
||||
if [ -z "$ROLE" ] ; then
|
||||
base=`basename $PWD`
|
||||
parent=`dirname $PWD`
|
||||
file=$parent/$base.bash
|
||||
if [ -f "$file" ] ; then
|
||||
ROLE=`grep '^ *ROLE=' $file | sed -e 's/=.*//'`
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
|
||||
if [ $PWD = $PREFIX/src ] ; then
|
||||
ERROR $prog diffing in $PWD with "$@"
|
||||
exit 4
|
||||
fi
|
||||
INFO $prog diffing in $PWD with "$@"
|
||||
|
||||
PREFIX=$PREFIX ROLE="$ROLE" \
|
||||
/var/local/src/var_local_src.bash ols_testforge_diffs
|
||||
|
||||
exit 0
|
51
overlay/Gentoo/usr/local/sbin/box_gentoo_emerge.bash
Executable file
51
overlay/Gentoo/usr/local/sbin/box_gentoo_emerge.bash
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
ROLE=base
|
||||
LOG_DIR=/usr/local/var/logs/portage
|
||||
[ -d $LOG_DIR ] || mkdir -p $LOG_DIR
|
||||
|
||||
declare -a ARGS
|
||||
if [ "$#" -eq 1 ] ; then
|
||||
ARGS=( "$1" )
|
||||
LOG=$( basename $1 ).log
|
||||
elif [ "$#" -eq 0 ] ; then
|
||||
ARGS="@world"
|
||||
LOG=world.log
|
||||
elif false && [ -f world.lib ] ; then # ?
|
||||
ARGS="$( grep -v '^#' world.lib )"
|
||||
LOG=world.log
|
||||
else
|
||||
ARGS=("$@")
|
||||
LOG=world.log
|
||||
fi
|
||||
|
||||
if mount | grep -q ' on /mnt/tmp' ; then
|
||||
export TMPDIR=/mnt/tmp
|
||||
# else
|
||||
# echo "WARN: /mnt/tmp not mounted"
|
||||
fi
|
||||
|
||||
# --changed-deps --deep --update
|
||||
LARGS="-vb --changed-use --with-bdeps=y --changed-deps-report"
|
||||
LARGS="$LARGS --backtrack=30 --ignore-built-slot-operator-deps=y --keep-going"
|
||||
|
||||
# Skips the packages specified on the command-line that have already been installed.
|
||||
LARGS="$LARGS --noreplace"
|
||||
|
||||
# LARGS="$LARGS --exclude "
|
||||
LOG=$LOG_DIR/$LOG
|
||||
export PYTHONPATH=
|
||||
echo INFO: $LARGS $ARGS >> $LOG 2>&1
|
||||
nice python$BASE_PYTHON3_MINOR $( which emerge ) $LARGS $ARGS >> $LOG 2>&1
|
||||
[ $? -ne 0 ] && exit $?
|
||||
if grep ImportError $LOG ; then
|
||||
echo ERROR: ImportError $ARGS && exit 10
|
||||
elif grep ParseError $LOG ; then
|
||||
echo ERROR: ParseError $ARGS && exit 11
|
||||
elif grep 'Your current profile is invalid' $LOG ; then
|
||||
echo ERROR: Your current profile is invalid $ARGS && exit 12
|
||||
fi
|
||||
|
||||
exit 0
|
168
overlay/Gentoo/usr/local/sbin/gentoo_base_verify-sig.bash
Executable file
168
overlay/Gentoo/usr/local/sbin/gentoo_base_verify-sig.bash
Executable file
|
@ -0,0 +1,168 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
ROLE=base
|
||||
. /usr/local/bin/usr_local_tput.bash
|
||||
|
||||
PYVER=3
|
||||
PYTHON_MINOR=$( python$PYVER --version 2>&1| sed -e 's@^.* @@' -e 's@\.[0-9]*$@@' )
|
||||
|
||||
[ -d /etc/portage ] || exit 0
|
||||
|
||||
usage () { echo "USAGE: $prog [command args] -" $* ; exit 1 ; }
|
||||
error () { retval=$1 ; shift; ERROR "$prog" $* ; exit $retval ; }
|
||||
warn () { : ; }
|
||||
info () { : ; }
|
||||
debug () { : ; }
|
||||
|
||||
# must be run as root
|
||||
[ "$( id -u )" -ne "0" ] && error 1 "must be run as root"
|
||||
|
||||
[ -f /etc/portage/package.use/2021-00_verify-sig.txt ] || \
|
||||
touch /etc/portage/package.use/2021-00_verify-sig.txt || exit 2
|
||||
|
||||
equery h -F '$cp:$slot' verify-sig | \
|
||||
sed -e 's/:0.*//' | while read b ; do \
|
||||
grep -q "^$b " /etc/portage/package.use/2021-00_verify-sig.txt && continue
|
||||
eix -r "^$b$" | grep -q Installed && \
|
||||
echo '#' $b verify-sig>>/etc/portage/package.use/2021-00_verify-sig.txt || \
|
||||
echo '##' $b verify-sig>>/etc/portage/package.use/2021-00_verify-sig.txt
|
||||
done
|
||||
|
||||
[ -f /usr/lib/python$PYTHON_MINOR/site-packages/portage/eclass_cache.py.diff ] || \
|
||||
cat > /usr/lib/python$PYTHON_MINOR/site-packages/portage/eclass_cache.py.diff << EOF
|
||||
*** eclass_cache.py.dst 2021-06-13 21:26:05.000000000 +0000
|
||||
--- eclass_cache.py 2021-06-24 10:45:12.422857990 +0000
|
||||
***************
|
||||
*** 166,175 ****
|
||||
--- 166,176 ----
|
||||
return d
|
||||
|
||||
def get_eclass_data(self, inherits):
|
||||
ec_dict = {}
|
||||
for x in inherits:
|
||||
+ if x not in self.eclasses: continue
|
||||
ec_dict[x] = self.eclasses[x]
|
||||
|
||||
return ec_dict
|
||||
|
||||
@property
|
||||
EOF
|
||||
[ -f /usr/lib/python$PYTHON_MINOR/site-packages/portage/eclass_cache.py.dst ] || \
|
||||
patch -b -z .dst /usr/lib/python$PYTHON_MINOR/site-packages/portage/eclass_cache.py \
|
||||
< /usr/lib/python$PYTHON_MINOR/site-packages/portage/eclass_cache.py.diff
|
||||
|
||||
[ -f /usr/portage/eclass/verify-sig.eclass.diff ] || \
|
||||
cat > /usr/portage/eclass/verify-sig.eclass.diff << EOF
|
||||
*** /usr/portage/eclass/verify-sig.eclass.dst 2021-07-29 06:09:55.000000000 +0000
|
||||
--- /usr/portage/eclass/verify-sig.eclass 2021-08-18 19:13:29.502980940 +0000
|
||||
***************
|
||||
*** 86,95 ****
|
||||
--- 86,99 ----
|
||||
[[ -n ${key} ]] ||
|
||||
die "${FUNCNAME}: no key passed and VERIFY_SIG_OPENPGP_KEY_PATH unset"
|
||||
|
||||
local extra_args=()
|
||||
[[ ${VERIFY_SIG_OPENPGP_KEY_REFRESH} == yes ]] || extra_args+=( -R )
|
||||
+ # gemato -R, --no-refresh-keys
|
||||
+ # Disable refreshing OpenPGP key (prevents network
|
||||
+ # access, applicable when using -K only)
|
||||
+ [ -z "$http_proxy" ] || extra_args+=( --proxy $http_proxy )
|
||||
[[ -n ${VERIFY_SIG_OPENPGP_KEYSERVER+1} ]] && extra_args+=(
|
||||
--keyserver "${VERIFY_SIG_OPENPGP_KEYSERVER}"
|
||||
)
|
||||
|
||||
# GPG upstream knows better than to follow the spec, so we can't
|
||||
***************
|
||||
*** 98,110 ****
|
||||
addpredict /run/user
|
||||
|
||||
local filename=${file##*/}
|
||||
[[ ${file} == - ]] && filename='(stdin)'
|
||||
einfo "Verifying ${filename} ..."
|
||||
! gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify "${sig}" "${file}" ||
|
||||
! die "PGP signature verification failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: verify-sig_verify_message
|
||||
# @USAGE: <file> <output-file> [<key-file>]
|
||||
# @DESCRIPTION:
|
||||
--- 102,121 ----
|
||||
addpredict /run/user
|
||||
|
||||
local filename=${file##*/}
|
||||
[[ ${file} == - ]] && filename='(stdin)'
|
||||
einfo "Verifying ${filename} ..."
|
||||
! einfo gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify --disable-dirmngr \
|
||||
! "${sig}" "${file}"
|
||||
! # --keyserver-options http-proxy=http://localhost:3128
|
||||
! einfo `env |sort`
|
||||
! # env - is necessary andx sufficient
|
||||
! env - gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify --disable-dirmngr \
|
||||
! "${sig}" "${file}" || \
|
||||
! die "PGP signature verification failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: verify-sig_verify_message
|
||||
# @USAGE: <file> <output-file> [<key-file>]
|
||||
# @DESCRIPTION:
|
||||
***************
|
||||
*** 122,131 ****
|
||||
--- 133,143 ----
|
||||
[[ -n ${key} ]] ||
|
||||
die "${FUNCNAME}: no key passed and VERIFY_SIG_OPENPGP_KEY_PATH unset"
|
||||
|
||||
local extra_args=()
|
||||
[[ ${VERIFY_SIG_OPENPGP_KEY_REFRESH} == yes ]] || extra_args+=( -R )
|
||||
+ [ -z "$http_proxy" ] || extra_args+=( --proxy $http_proxy )
|
||||
[[ -n ${VERIFY_SIG_OPENPGP_KEYSERVER+1} ]] && extra_args+=(
|
||||
--keyserver "${VERIFY_SIG_OPENPGP_KEYSERVER}"
|
||||
)
|
||||
|
||||
# GPG upstream knows better than to follow the spec, so we can't
|
||||
***************
|
||||
*** 134,146 ****
|
||||
addpredict /run/user
|
||||
|
||||
local filename=${file##*/}
|
||||
[[ ${file} == - ]] && filename='(stdin)'
|
||||
einfo "Verifying ${filename} ..."
|
||||
! gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify --output="${output_file}" "${file}" ||
|
||||
! die "PGP signature verification failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: verify-sig_verify_signed_checksums
|
||||
# @USAGE: <checksum-file> <algo> <files> [<key-file>]
|
||||
# @DESCRIPTION:
|
||||
--- 146,165 ----
|
||||
addpredict /run/user
|
||||
|
||||
local filename=${file##*/}
|
||||
[[ ${file} == - ]] && filename='(stdin)'
|
||||
einfo "Verifying ${filename} ..."
|
||||
! einfo gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify --disable-dirmngr --output="${output_file}" \
|
||||
! "${file}"
|
||||
! # --keyserver-options http-proxy=http://localhost:3128
|
||||
! einfo `env |sort`
|
||||
! # env - is necessary and sufficient
|
||||
! env - gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
|
||||
! gpg --verify --disable-dirmngr --output="${output_file}" \
|
||||
! "${file}" || \
|
||||
! die "PGP signature verification failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: verify-sig_verify_signed_checksums
|
||||
# @USAGE: <checksum-file> <algo> <files> [<key-file>]
|
||||
# @DESCRIPTION:
|
||||
EOF
|
||||
|
||||
[ -f /usr/portage/eclass/verify-sig.eclass.dst ] || \
|
||||
patch -b -z .dst /usr/portage/eclass/verify-sig.eclass \
|
||||
< /usr/portage/eclass/verify-sig.eclass.diff || exit 3
|
||||
|
13
overlay/Gentoo/usr/local/sbin/gentoo_bootstrap_sudo.bash
Executable file
13
overlay/Gentoo/usr/local/sbin/gentoo_bootstrap_sudo.bash
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
||||
ROLE=base
|
||||
root=$1
|
||||
if [ ! -f $root/usr/bin/sudo ] && [ -d $root/etc/portage/ ] ; then
|
||||
[ -d $root/usr/portage/distfiles/ ] || \
|
||||
mkdir -p $root/usr/portage/distfiles
|
||||
[ -f $root/usr/portage/distfiles/sudo-$SUDO_VER.tar.gz ] || \
|
||||
cp -p /usr/portage/distfiles/sudo-$SUDO_VER.tar.gz $root/usr/portage/distfiles/
|
||||
# env ROOT=$root emerge -vbp app-admin/sudo 2>&1| tee -a $root/root/sudo.log
|
||||
chroot $root emerge -vbp app-admin/sudo 2>&1| tee -a $root/root/sudo.log
|
||||
fi
|
||||
|
39
overlay/Gentoo/usr/local/sbin/gentoo_check_manifest.bash
Executable file
39
overlay/Gentoo/usr/local/sbin/gentoo_check_manifest.bash
Executable file
|
@ -0,0 +1,39 @@
|
|||
# This is recent - Pentoo not Funtoo
|
||||
# -*-mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
BASE_PORTDIR=/usr/portage
|
||||
|
||||
keyf=/usr/share/openpgp-keys/gentoo-release.asc
|
||||
[ -f $keyf ] || exit 1
|
||||
|
||||
gpg2 --disable-dirmngr --list-keys --with-sig-check --keyring $keyf >/tmp/G$$.log # 2>&1 || exit 1
|
||||
# gpg: 1 bad signature on Clipos
|
||||
# gpg: 1 bad signature on Pentoo19
|
||||
if grep 'bad signature' /tmp/G$$.log ; then
|
||||
echo ERROR: bad signature /tmp/G$$.log # exit 2
|
||||
# sig-3 BB572E0E2D182910 2009-08-25 Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>
|
||||
gpg2 --disable-dirmngr --batch --delete-key BB572E0E2D182910
|
||||
fi
|
||||
|
||||
# numbers 1-3 for certificate check level (see --ask-cert-level)
|
||||
grep '^sig-[0-9]' /tmp/G$$.log && { echo WARN: bad signature ; exit 3 ;}
|
||||
# gpg: 104 signatures not checked due to missing keys
|
||||
|
||||
[ -f $BASE_PORTDIR/Manifest ] || exit 0
|
||||
# on stderr!
|
||||
gpg2 --verify --keyring $keyf $BASE_PORTDIR/Manifest >/tmp/K$$.log 2>&1 || exit 3
|
||||
# DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D
|
||||
# grep 'This key has expired' /tmp/K$$.log && exit 3
|
||||
grep 'using RSA key' /tmp/K$$.log || exit 4
|
||||
grep 'Primary key fingerprint:' /tmp/K$$.log | sed -e 's/.*: //' -e 's/ //g' > /tmp/K$$.key || exit 5
|
||||
|
||||
if route | grep -q ^default ; then
|
||||
. /root/bin/tor.sh
|
||||
wget -O /tmp/K$$.html https://www.gentoo.org/downloads/signatures/ || exit 0
|
||||
grep "`cat /tmp/K$$.key`" /tmp/K$$.html || {
|
||||
echo ERROR: failed 'Primary key fingerprint:' "`cat /tmp/K$$.key`"
|
||||
exit 5
|
||||
}
|
||||
fi
|
||||
|
||||
exit 0
|
120
overlay/Gentoo/usr/local/sbin/gentoo_chroot_pentoo.bash
Executable file
120
overlay/Gentoo/usr/local/sbin/gentoo_chroot_pentoo.bash
Executable file
|
@ -0,0 +1,120 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
||||
|
||||
ROLE=testforge
|
||||
# export PATH=$PATH:/usr/local/bin
|
||||
MOUNTS="mnt/i mnt/j mnt/o"
|
||||
|
||||
. /usr/local/bin/usr_local_tput.bash
|
||||
error () { retval=$1 ; shift; ERROR "$0" $* ; exit $retval ; }
|
||||
info () { INFO " $0 " $* ; }
|
||||
|
||||
# must be run as root
|
||||
[ "`id -u`" -ne "0" ] && error 1 "must be run as root"
|
||||
|
||||
if [ "$#" -eq "0" ] ; then
|
||||
error 2 "give an absolute directory name as argument"
|
||||
fi
|
||||
LARGS=""
|
||||
CMD=""
|
||||
while true; do
|
||||
case "$1" in
|
||||
'-'*)
|
||||
LARGS="$LARGS $1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
root=$1
|
||||
shift
|
||||
if [ ! -d "$root" ] ; then
|
||||
error 3 "absolute directory name for chroot not found - $root"
|
||||
fi
|
||||
|
||||
# unix partition
|
||||
[ -d $root/lost+found ] || exit 4
|
||||
# linux partition
|
||||
[ -e $root/usr/src/ ] || exit 5
|
||||
cd $root || exit 6
|
||||
|
||||
if [ ! -d boot ] ; then
|
||||
error 7 "missing boot/"
|
||||
fi
|
||||
for file in tmp usr/tmp var/tmp ; do
|
||||
[ -d $file ] && continue
|
||||
mkdir $file || error 8 " missing directory $file"
|
||||
chmod 1777 $file
|
||||
done
|
||||
# df /var/tmp | grep -q sd.12 || mount /var/tmp
|
||||
|
||||
for file in proc sys dev dev/pts dev/shm usr ; do
|
||||
[ -d $file ] && continue
|
||||
mkdir $file || exit 9
|
||||
chmod 755 $file
|
||||
done
|
||||
|
||||
# Think -R is causing problems
|
||||
[ -e proc/self ] || mount -t proc none proc || error 10
|
||||
# this was rbind
|
||||
[ -e sys/kernel ] || mount -o bind /sys sys || error 12
|
||||
[ -e dev/null ] || mount -o bind /dev dev || error 11
|
||||
[ -e /dev/pts/0 ] || \
|
||||
mount -t devpts -o rw,relatime,mode=600 devpts dev/pts \
|
||||
|| error 12
|
||||
#? try mount| while read a on what type [ tmpfs cgroup binfmt_misc? ] without rbind
|
||||
mount| while read what foo on bar type rest ; do
|
||||
# cgroup devpts devtmpfs ecryptfs ext2 fuseblk proc rpc_pipefs sysfs tmpfs vfat
|
||||
# leave real disks for $MOUNTS
|
||||
[ $type = 'fuse' -o $type = 'ext2' -o $type = 'ext4' -o $type = 'vfat' -o ] && continue
|
||||
# have done these
|
||||
[ $type = 'proc' -o $type = 'sys' -o $type = 'dev' -o $type = 'devpts' -o ] && continue
|
||||
DBUG "Dunno $what $on $type"
|
||||
done
|
||||
# check for /dev/loop devices - up to 255 on android
|
||||
[ -e /dev/loop1 ] || \
|
||||
( cd /dev && \
|
||||
for i in 0 1 2 3 4 5 6 7 ; do
|
||||
[ -e loop$i ] && continue
|
||||
mknod loop$i b 7 $i
|
||||
chmod 660 loop$i
|
||||
chgrp disk loop$i
|
||||
done )
|
||||
|
||||
for elt in $MOUNTS ; do
|
||||
[ -d $elt ] || { mkdir $elt ; chmod 755 $elt ; }
|
||||
grep -q /$elt /proc/mounts || continue
|
||||
[ -d $elt/tmp ] && continue
|
||||
grep -q $root/$elt /proc/mounts && continue
|
||||
mount --bind /$elt $root/$elt
|
||||
done
|
||||
|
||||
# You'll also want to copy over resolv.conf in order to have proper DNS name
|
||||
# resolution from inside the chroot:
|
||||
# but in chroot, you'll need to change this to your connected IP address.
|
||||
cp -L /etc/resolv.conf etc || exit 16
|
||||
|
||||
for file in .bashrc .profile .jedrc ; do
|
||||
[ -f root/$file ] || \
|
||||
cp -p /root/$file root/$file
|
||||
done
|
||||
|
||||
|
||||
EARGS="CHROOT=1 LANG=en_US.UTF-8 LC_COLLATE=C"
|
||||
EELTS="$EELTS TERM DISPLAY HOME USER LOGNAME USERNAME PATH"
|
||||
EELTS="$EELTS http_proxy https_proxy socks_proxy no_proxy"
|
||||
for elt in $EELTS ; do
|
||||
EARGS="$EARGS `env|grep ^${elt}=`"
|
||||
done
|
||||
|
||||
# was /bin/bash -l
|
||||
[ "$#" -eq 0 ] && set -- /bin/sh -i
|
||||
|
||||
# Now you can chroot into your new system. Use env before chroot to ensure that no
|
||||
# environment variables from the installation media are used by your new system:
|
||||
#? PATH=$PATH
|
||||
echo chroot $LARGS $root /usr/bin/env -i $EARGS "$@"
|
||||
chroot $LARGS $root /usr/bin/env -i $EARGS "$@"
|
45
overlay/Gentoo/usr/local/sbin/gentoo_clean_portage_packages.bash
Executable file
45
overlay/Gentoo/usr/local/sbin/gentoo_clean_portage_packages.bash
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
||||
|
||||
# shopt -s nullglob
|
||||
|
||||
[ -f /etc/conf.d/hostname ] && . /etc/conf.d/hostname
|
||||
|
||||
if [ $# -eq 1 ] ; then
|
||||
TO=$1
|
||||
elif [ -n "$hostname" -a "$hostname" = "pentoo" ] ; then
|
||||
TO=/mnt/o/Cache/linuxPen19/var/cache/portage/packages
|
||||
elif [ -f /etc/dracut.conf.d/funtoo.conf ] ; then
|
||||
TO=/mnt/o/Cache/linuxFun64/var/cache/portage/packages
|
||||
elif [ -f /etc/dracut.conf.d/clipos.conf ] ; then
|
||||
TO=/mnt/o/Cache/linuxClipos/var/cache/portage/packages
|
||||
else
|
||||
exit 3
|
||||
fi
|
||||
|
||||
[ -n "$TO" ] || { echo ERROR: empty TO ; exit 4 ; }
|
||||
[ -d $TO ] || { echo ERROR: mkdir -p $TO ; exit 5 ; }
|
||||
|
||||
pushd $TO
|
||||
# -o -name \*.xpak
|
||||
find *-* virtual pentoo -type f -name \*tbz2 | grep -v '_sources\|_download_' | while read file ; do
|
||||
dir=`dirname $file`
|
||||
base=`basename $file`
|
||||
subdir=`sed -e 's/-[0-9].*//' <<< $base`
|
||||
xdir=$dir/$subdir
|
||||
[ -d $xdir ] || continue
|
||||
xpak=`sed -e 's/.tbz2/-?.xpak/' <<< $base`
|
||||
ls $file $xdir/$xpak 2>/dev/null && rm -f $xdir/$xpak
|
||||
done
|
||||
popd
|
||||
|
||||
cd $OUT
|
||||
rm -rf sys-firmware/intel-microcode* \
|
||||
sys-kernel/linux-firmware/* qpkg.*
|
||||
|
||||
find -L *-*/ -type l -delete 2>&1| \
|
||||
grep 'Too many levels'| \
|
||||
sed -e 's/find: .//' -e 's/xpak.:.*/xpak/'| \
|
||||
xargs rm -f
|
||||
|
||||
exit 0
|
8
overlay/Gentoo/usr/local/sbin/gentoo_eix-test-obsolete.bash
Executable file
8
overlay/Gentoo/usr/local/sbin/gentoo_eix-test-obsolete.bash
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
# https://forums.gentoo.org/viewtopic-t-1044220-start-0.html
|
||||
|
||||
ROLE=base
|
||||
|
||||
eix-test-obsolete -H brief | grep -v -e "^No " -e "^Skipping " -e "^$"
|
||||
exit 0
|
109
overlay/Gentoo/usr/local/sbin/gentoo_etc_portage.bash
Executable file
109
overlay/Gentoo/usr/local/sbin/gentoo_etc_portage.bash
Executable file
|
@ -0,0 +1,109 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
PREFIX=/var/local
|
||||
ROLE=base
|
||||
. /usr/local/etc/testforge/testforge.bash || exit 1
|
||||
. /usr/local/bin/usr_local_base.bash || exit 2
|
||||
USAGE="$0 role-directory"
|
||||
#echo 1
|
||||
[ $# -ge 1 ] || { ERROR $USAGE ; exit 3 ; }
|
||||
|
||||
[ -n "$TESTFORGE_ANSIBLE_SRC" ] || TESTFORGE_ANSIBLE_SRC=/g/TestForge/src/ansible
|
||||
base=`cat /etc/hostname`
|
||||
json="$TESTFORGE_ANSIBLE_SRC"/tmp/Hosts/$base.json
|
||||
if [ -d "$TESTFORGE_ANSIBLE_SRC" ] ; then
|
||||
if [ ! -s $json ] || [ "$TESTFORGE_ANSIBLE_SRC"/hosts.yml -nt $json ] ; then
|
||||
/usr/local/sbin/gentoo_hosts_json.bash || exit 4$?
|
||||
fi
|
||||
fi
|
||||
|
||||
BOX_OS_FLAVOR=`/usr/local/sbin/gentoo_hosts_json.bash` || exit 4$?
|
||||
|
||||
# "BOX_PYTHON3_MINOR": "3.10"
|
||||
PYTHON3_VER=`grep BOX_PYTHON3_MINOR <$json|sed -e 's/.*\.//' -e 's/,//' -e 's/"//'`
|
||||
|
||||
TASKS="Gentoo/$BOX_OS_FLAVOR"
|
||||
YAML_HEAD="# -*- mode: yaml; tab-width: 0; coding: utf-8-unix -*-
|
||||
# This is an automatically generated file: do not edit
|
||||
|
||||
---
|
||||
|
||||
"""
|
||||
TEXT_HEAD="# -*- mode: text; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
"""
|
||||
|
||||
for dir in $* ; do
|
||||
[ -d $dir ] || { ERROR $dir ; exit 5 ; }
|
||||
[ -d $dir/vars ] || { WARN not a roles directory $dir/vars ; }
|
||||
YAML_BODY="- name: \"\\1\"\n blockinfile:\n dest: \\1\n create: true\n marker: \"# {mark} Ansible Managed Block $dir \\2\"\n block: |"
|
||||
for port in use mask unmask license accept_keywords ; do
|
||||
# DBUG $dir $port
|
||||
cp /dev/null $dir/vars/$port.txt
|
||||
grep '^ *- .*/' $dir/vars/Gentoo2.yml \
|
||||
| sed -e 's@^ *- @@' -e 's@ .*@@' \
|
||||
| uniq \
|
||||
| while read elt ; do
|
||||
base=`basename $elt`
|
||||
# override with $dir/tasks/$TASKS/portage.yml
|
||||
file=$dir/tasks/$TASKS/portage.yml
|
||||
[ -f $file ] && \
|
||||
grep -Hq "^ *[=>]*$elt" $file && \
|
||||
DBUG $port - "^ *[=>]*$elt" is already in $file && \
|
||||
continue
|
||||
file=$dir/vars/$port.txt
|
||||
[ -f $file ] && \
|
||||
grep -Hq "^ *[=>]*$elt" $file && \
|
||||
DBUG "^ *[=>]*$elt" is already in $file
|
||||
# && continue
|
||||
grep "^[=<>]*$elt" /etc/portage/package.$port/2*txt \
|
||||
| sed -e 's@^@# @' -e 's@.txt:@.txt '$base'\n@' \
|
||||
| sed -e 's@^\([^#][^ ]*\)@ \1%@' -e 's@^#@\n#@' \
|
||||
>> $dir/vars/$port.txt || exit 6
|
||||
#? grep "^#.*required by $elt" /etc/portage/package.$port/2*txt
|
||||
|
||||
done
|
||||
#echo 2
|
||||
if [ ! -s $dir/vars/$port.txt ] ; then
|
||||
rm -f $dir/vars/$port.txt $dir/tasks/$TASKS/$port.yml
|
||||
continue
|
||||
fi
|
||||
|
||||
INFO $port lines `wc -l $dir/vars/$port.txt`
|
||||
[ -d $dir/tasks/$TASKS ] || { ERROR no dir $dir/tasks/$TASKS ; continue ; }
|
||||
#echo 3
|
||||
to_yaml=$dir/tasks/$TASKS/$port.yml.new
|
||||
# overwrite if its there as .new
|
||||
echo "$YAML_HEAD" > $to_yaml
|
||||
# sed -e "s/\"\n block: |/ $base\0/"
|
||||
sed -e 's@^# \([^ ]*\) \([^ /]*\)$@'"$YAML_BODY"'@' $dir/vars/$port.txt \
|
||||
>> $to_yaml || exit 7
|
||||
# | sed -e "s/BLOCK $dir/BLOCK $dir $base/"
|
||||
if [ "$port" = "use" -o "$port" = "license" ] ; then
|
||||
sed -e 's@^ [=<>][=<>]*\([^:<>=]*\)-[0-9][-0-9.]*%@ \1@' -i $to_yaml || exit 8
|
||||
sed -e 's@^ [>=][>=]*\([^%]*\)%@ \1@' -i $to_yaml || exit 9
|
||||
elif [ "$port" = "mask" -o "$port" = "unmask" -o "$port" = "accept_keywords" ] ; then
|
||||
sed -e 's@^ \([^:]*\)/\([^%]*\)%@ \1/\2@' -i $to_yaml || exit 10
|
||||
fi
|
||||
sed -e 's@^ \([^:\n]*\)/\([^%\n]*\)%@ \1/\2@' -i $to_yaml || exit 11
|
||||
echo >> $to_yaml
|
||||
#echo 5
|
||||
grep % $to_yaml && ERROR "% in $to_yaml" && exit 12
|
||||
grep -q "^- [importinclude]*_tasks:.*$port.yml" $dir/tasks/$TASKS/main.yml || { \
|
||||
echo "- include_tasks: $TASKS/$port.yml" >> $dir/tasks/$TASKS/main.yml
|
||||
WARN "ADDED $port.yml to $dir/tasks/$TASKS/main.yml"
|
||||
}
|
||||
if [ ! -f $dir/tasks/$TASKS/$port.yml ] ; then
|
||||
mv $to_yaml $dir/tasks/$TASKS/$port.yml
|
||||
INFO created $dir/tasks/$TASKS/$port.yml
|
||||
elif diff -qw $to_yaml $dir/tasks/$TASKS/$port.yml ; then
|
||||
rm -f $to_yaml
|
||||
# DBUG unchanged $to_yaml
|
||||
else
|
||||
: diff is verbose
|
||||
fi
|
||||
done | sed -e 's/ and / /' -e 's/ differ$//' -e 's/^Files/mv/'
|
||||
done
|
||||
exit 0
|
119
overlay/Gentoo/usr/local/sbin/gentoo_funtoo_world.bash
Executable file
119
overlay/Gentoo/usr/local/sbin/gentoo_funtoo_world.bash
Executable file
|
@ -0,0 +1,119 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
if [ "$#" -ne 0 ] ; then
|
||||
ARGS=$*
|
||||
LARGS=""
|
||||
else
|
||||
ARGS="@world"
|
||||
# --changed-deps --deep
|
||||
LARGS="-vb --update"
|
||||
fi
|
||||
|
||||
|
||||
LARGS="$LARGS --changed-use --with-bdeps=y --changed-deps-report -k"
|
||||
LARGS="$LARGS --backtrack=30 --ignore-built-slot-operator-deps=y --keep-going"
|
||||
|
||||
# Skips the packages specified on the command-line that have already been installed.
|
||||
LARGS="$LARGS --noreplace"
|
||||
|
||||
# dangerous
|
||||
LARGS="$LARGS --exclude baselayout"
|
||||
|
||||
# gone
|
||||
LARGS="$LARGS --exclude sci-chemistry/PyMca"
|
||||
LARGS="$LARGS --exclude dev-python/PyQt4"
|
||||
LARGS="$LARGS --exclude dev-python/pyqwt"
|
||||
|
||||
# I wont do this routinely
|
||||
#?LARGS="$LARGS --exclude app-office/libreoffice"
|
||||
#?LARGS="$LARGS --exclude app-office/libreoffice-bin"
|
||||
|
||||
# /usr/local
|
||||
LARGS="$LARGS --exclude seamonkey"
|
||||
LARGS="$LARGS --exclude firefox"
|
||||
LARGS="$LARGS --exclude thunderbird"
|
||||
|
||||
LARGS="$LARGS --exclude gentoo-sources"
|
||||
|
||||
#? LARGS="$LARGS --exclude net-analyzer/openvas*"
|
||||
#LARGS="$LARGS --exclude "
|
||||
|
||||
#LARGS="$LARGS --exclude sys-libs/zlib"
|
||||
LARGS="$LARGS --exclude dev-util/android-sdk-update-manager"
|
||||
LARGS="$LARGS --exclude dev-util/android-ndk"
|
||||
|
||||
LARGS="$LARGS --exclude sys-kernel/clipos-kernel"
|
||||
|
||||
# always problems with icu
|
||||
LARGS="$LARGS --exclude dev-libs/icu"
|
||||
|
||||
#emerge: there are no ebuilds to satisfy ">=dev-libs/nsgenbind-0.7".
|
||||
LARGS="$LARGS --exclude www-client/netsurf"
|
||||
# emerge: there are no ebuilds to satisfy ">=dev-python/attrs-19.1.0[python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-)]".
|
||||
#LARGS="$LARGS --exclude www-client/qutebrowser"
|
||||
|
||||
LARGS="$LARGS --exclude dev-ruby/builder:3.1"
|
||||
|
||||
# required by dev-python/pyqtgraph-0.10.0-r1::python-modules-kit
|
||||
# required by @selected
|
||||
# required by @world (argument)
|
||||
# >=dev-python/PyQt5-5.10.1-r1 -opengl
|
||||
LARGS="$LARGS --exclude dev-python/pyqtgraph"
|
||||
LARGS="$LARGS --exclude net-print/hplip"
|
||||
|
||||
LARGS="$LARGS --exclude pentoo/pentoo-scanner"
|
||||
#LARGS="$LARGS --exclude net-analyzer/wpscan"
|
||||
#LARGS="$LARGS --exclude dev-ruby/cms_scanner"
|
||||
|
||||
LARGS="$LARGS --exclude net-wireless/gnuradio" # [python_single_target_python2_7,qt5]
|
||||
LARGS="$LARGS --exclude net-wireless/gr-iio"
|
||||
LARGS="$LARGS --exclude net-wireless/gr-iqbal"
|
||||
LARGS="$LARGS --exclude net-wireless/gr-osmosdr" # [iqbalance]
|
||||
LARGS="$LARGS --exclude pentoo/pentoo-radio"
|
||||
LARGS="$LARGS --exclude gnuradio"
|
||||
|
||||
# LARGS="$LARGS --exclude "
|
||||
|
||||
# morons
|
||||
#(dependency required by "dev-ruby/activesupport-4.2.11.1-r1::pentoo[ruby_targets_ruby26,-test]" [ebuild])
|
||||
#(dependency required by "dev-ruby/activemodel-4.2.11.1::pentoo[ruby_targets_ruby26]" [ebuild])
|
||||
#(dependency required by "dev-ruby/metasploit-model-2.0.4::pentoo[ruby_targets_ruby26]" [ebuild])
|
||||
#(dependency required by "net-analyzer/metasploit-4.17.21-r8::pentoo[ruby_targets_ruby25]" [ebuild])
|
||||
#
|
||||
#(dependency required by "dev-ruby/metasploit-concern-2.0.5::pentoo[ruby_targets_ruby26]" [ebuild])
|
||||
#(dependency required by "dev-ruby/metasploit-credential-2.0.14::pentoo[ruby_targets_ruby25]" [ebuild])
|
||||
#(dependency required by "net-analyzer/metasploit-4.17.21-r8::pentoo[ruby_targets_ruby25]" [ebuild])
|
||||
LARGS="$LARGS --exclude net-analyzer/metasploit"
|
||||
|
||||
# pentoo-rce
|
||||
#?LARGS="$LARGS --exclude dev-util/redasm --exclude pentoo-rce"
|
||||
|
||||
#(dependency required by "dev-ml/ocaml-gettext-0.3.7::gentoo" [ebuild])
|
||||
#(dependency required by "app-emulation/libguestfs-1.38.6::gentoo" [ebuild])
|
||||
LARGS="$LARGS --exclude dev-ml/ocaml-gettext --exclude app-emulation/libguestfs"
|
||||
|
||||
# broken
|
||||
#LARGS="$LARGS --exclude net-libs/libtorrent-rasterbar"
|
||||
#LARGS="$LARGS --exclude net-p2p/qbittorrent"
|
||||
# 9.0.1 even though it did work before
|
||||
LARGS="$LARGS --exclude sys-devel/llvm"
|
||||
# 6.1.6 even though app-emulation/virtualbox worked
|
||||
# cc1: error: incompatible gcc/plugin versions
|
||||
# cc1: error: fail to initialize plugin ./scripts/gcc-plugins/randomize_layout_plugin.so
|
||||
LARGS="$LARGS --exclude app-emulation/virtualbox-modules"
|
||||
# Unpacking NVIDIA-Linux-x86_64-440.82.run to /mnt/linuxBack52/mnt/tmp/Pentoo19/portage/x11-drivers/nvidia-drivers-440.82-r3/work
|
||||
#tar: Archive is compressed. Use -J option
|
||||
LARGS="$LARGS --exclude x11-drivers/nvidia-drivers"
|
||||
|
||||
#(dependency required by "dev-qt/qtx11extras-5.14.2::gentoo" [ebuild])
|
||||
#(dependency required by "app-emulation/virtualbox-6.1.6::gentoo[-headless,qt5]" [installed])
|
||||
#(dependency required by "app-emulation/libvirt-6.1.0-r1::gentoo[virtualbox]" [ebuild])
|
||||
#(dependency required by "app-emulation/qt-virt-manager-9999::testforge" [ebuild])
|
||||
LARGS="$LARGS --exclude dev-qt/qtx11extras --exclude app-emulation/virtualbox --exclude app-emulation/libvirt --exclude app-emulation/qt-virt-manager"
|
||||
|
||||
echo INFO: nice python3 emerge $LARGS $ARGS |tee -a world.log
|
||||
nice python3 `which emerge` $LARGS $ARGS >> world.log 2>&1
|
||||
# grep ' U ' world.log |grep -v =|sed -e 's@^.* \] @@' -e 's@-[0-9].*@@'
|
||||
# cat /var/lib/portage/world>world.elts;grep '^L.*exclude' world.sh|sed -e 's/.*exclude//' -e 's/"$//' -e 's/[*:].*$//' -e 's@/@\\\\/@' |sort -u |while read elt;do [ -z "$elt" ] && continue ; sed -e "/$elt/d" -i world.elts ;done
|
||||
|
32
overlay/Gentoo/usr/local/sbin/gentoo_gemato.bash
Executable file
32
overlay/Gentoo/usr/local/sbin/gentoo_gemato.bash
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
# Gentoo only
|
||||
|
||||
ROLE=base
|
||||
PY_MINOR=3.8
|
||||
|
||||
if [ $# -gt 0 -a $1 = --help ] ; then
|
||||
/usr/lib/python-exec/python${PY_MINOR}/gemato "$@"
|
||||
exit $?
|
||||
fi
|
||||
. /usr/local/bin/proxy_export.bash >/dev/null
|
||||
|
||||
declare -a G
|
||||
if [ $1 = gpg-wrap ] ; then
|
||||
G=(${*:1:1} -W ${*:2})
|
||||
# need --
|
||||
[[ $G =~ '--' ]] && G+=('--')
|
||||
[ -f /etc/gnupg/gpgconf.conf ] && G+=(--options /etc/gnupg/gpgconf.conf)
|
||||
else
|
||||
G=(${*:1:1} ${*:2})
|
||||
fi
|
||||
|
||||
# The --proxy code is for requests and is wrong: $http_proxy or $https_proxy
|
||||
#? [ -z "$https_proxy" ] || G=(${G:1:1} --proxy $https_proxy ${G:2})
|
||||
|
||||
echo INFO: /usr/lib/python-exec/python${PY_MINOR}/gemato ${G[@]} >> /tmp/G$$.log 2>&1
|
||||
/usr/lib/python-exec/python${PY_MINOR}/gemato "${G[@]}" >> /tmp/G$$.log 2>&1
|
||||
ret=$?
|
||||
DBUG "$ret" >> /tmp/G$$.log 2>&1
|
||||
cat /tmp/G$$.log
|
||||
exit 0
|
25
overlay/Gentoo/usr/local/sbin/gentoo_hosts_json.bash
Executable file
25
overlay/Gentoo/usr/local/sbin/gentoo_hosts_json.bash
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
PREFIX=/var/local
|
||||
ROLE=base
|
||||
. /usr/local/etc/testforge/testforge.bash || exit 1
|
||||
. /usr/local/bin/usr_local_base.bash || exit 2
|
||||
|
||||
[ -n "$TESTFORGE_ANSIBLE_SRC" ] || TESTFORGE_ANSIBLE_SRC=/g/TestForge/src/ansible
|
||||
if [ -d "$TESTFORGE_ANSIBLE_SRC" ] ; then
|
||||
base=`cat /etc/hostname`
|
||||
json="$TESTFORGE_ANSIBLE_SRC"/tmp/Hosts/$base.json
|
||||
if [ ! -s $json ] || [ "$TESTFORGE_ANSIBLE_SRC"/hosts.yml -nt $json ] ; then
|
||||
ansible-inventory --playbook-dir $TESTFORGE_ANSIBLE_SRC -i $TESTFORGE_ANSIBLE_SRC/hosts.yml \
|
||||
--host=$base > $json || exit 1$?
|
||||
fi
|
||||
eval export BOX_OS_FLAVOR=`jq .BOX_OS_FLAVOR < $json`
|
||||
DBUG BOX_OS_FLAVOR=$BOX_OS_FLAVOR
|
||||
fi # 2>/dev/null
|
||||
[ -z "$BOX_OS_FLAVOR" ] && ERROR BOX_OS_FLAVOR not set && exit 1
|
||||
[ "$BOX_OS_FLAVOR" = Ubuntu16 ] && ERROR BOX_OS_FLAVOR = Ubuntu16 && exit 2
|
||||
[ "$BOX_OS_FLAVOR" = Devuan4 ] && ERROR BOX_OS_FLAVOR = Devuan4 && exit 2
|
||||
echo $BOX_OS_FLAVOR
|
||||
exit 0
|
27
overlay/Gentoo/usr/local/sbin/gentoo_hosts_update_pyver.bash
Executable file
27
overlay/Gentoo/usr/local/sbin/gentoo_hosts_update_pyver.bash
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
PREFIX=/var/local
|
||||
ROLE=base
|
||||
. /usr/local/etc/testforge/testforge.bash || exit 1
|
||||
. /usr/local/bin/usr_local_base.bash || exit 2
|
||||
|
||||
USAGE="$0 file"
|
||||
#echo 1
|
||||
[ $# -ge 1 ] || { ERROR $prog "#=$#" ; exit 3 ; }
|
||||
|
||||
BOX_OS_FLAVOR=`/usr/local/sbin/gentoo_hosts_json.bash` || exit 4$?
|
||||
|
||||
# "BOX_PYTHON3_MINOR": "3.10"
|
||||
PYTHON3_VER=`grep BOX_PYTHON3_MINOR <$json|sed -e 's/.*\.//' -e 's/,//' -e 's/"//'`
|
||||
|
||||
# failsafe
|
||||
# /mnt/o/data/TestForge/src/ansible/roles/base/overlay/Gentoo/usr/local/sbin/gentoo_etc_portage.bash
|
||||
for file in $* ; do
|
||||
[ -f $file ] || { WARN $file is not a file ; continue ; }
|
||||
sed -i $file \
|
||||
-e "s/python_single_target_python3_[0-9]*/python_single_target_python3_$PYTHON3_VER/" \
|
||||
-e "s/python_targets_python3_[0-9]*/python_targets_python3_$PYTHON3_VER/"
|
||||
done
|
||||
|
43
overlay/Gentoo/usr/local/sbin/gentoo_link_portage_packages.bash
Executable file
43
overlay/Gentoo/usr/local/sbin/gentoo_link_portage_packages.bash
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/bash
|
||||
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
||||
|
||||
prog=$( basename $0 .bash )
|
||||
. /usr/local/bin/usr_local_tput.bash
|
||||
ROLE=testforge
|
||||
|
||||
shopt -s nullglob || exit 1
|
||||
|
||||
. /usr/local/bin/usr_local_tput.bash
|
||||
[ -f /etc/conf.d/hostname ] && . /etc/conf.d/hostname
|
||||
|
||||
if [ -n "$hostname" -a "$hostname" = "pentoo" ] ; then
|
||||
TO=/mnt/o/Cache/linuxPen19/var/cache/portage/packages
|
||||
elif [ -f /etc/dracut.conf.d/funtoo.conf ] ; then
|
||||
TO=/mnt/o/Cache/linuxFun64/var/cache/portage/packages
|
||||
elif [ -f /etc/dracut.conf.d/clipos.conf ] ; then
|
||||
TO=/mnt/o/Cache/linuxClipos/var/cache/portage/packages
|
||||
else
|
||||
exit 3
|
||||
fi
|
||||
|
||||
[ -n "$TO" ] || { echo ERROR: empty TO ; exit 4 ; }
|
||||
[ -d $TO ] || { echo ERROR: mkdir -p $TO ; exit 5 ; }
|
||||
|
||||
[ "$#" -eq 0 ] && set -- /usr/portage/packages
|
||||
|
||||
for root in $* ; do
|
||||
cd $root || exit 2$?
|
||||
INFO $root
|
||||
find -L $root -type l -delete &
|
||||
|
||||
pushd $TO
|
||||
# -o -name \*.xpak
|
||||
find *-* virtual pentoo -type f -name \*tbz2 | grep -v '_sources\|_download_' | while read file ; do
|
||||
[ -h $root/$file ] && [ -f $file ] && continue
|
||||
dir=`dirname $root/$file`
|
||||
[ -d $dir ] || mkdir $dir
|
||||
ln -s $TO/$file $root/$file
|
||||
done
|
||||
popd
|
||||
done
|
||||
exit 0
|
45
overlay/Gentoo/usr/local/sbin/gentoo_link_to_cache.bash
Executable file
45
overlay/Gentoo/usr/local/sbin/gentoo_link_to_cache.bash
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
# -*-mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
ROLE=testforge
|
||||
TXT=/usr/local/sbin/gentoo_link_to_cache.txt
|
||||
|
||||
# replace /usr/net/Http/Makefile
|
||||
[ "$#" -gt 0 ] && cd $1 || cd /usr/net/Http
|
||||
[ -z "$DISTFILES" ] && DISTFILES=../../portage/distfiles
|
||||
|
||||
find -L $DISTFILES/ -type l -delete
|
||||
|
||||
find */ prdownloads.sourceforge.net/*/ github.com/*/ -type f -o -type l -name \*.\* | \
|
||||
grep -v ' \|\.[a-z]\|/archive/\|/tarball/' \
|
||||
| grep -v 'htm$\|html$\|txt$\|Makefile$\|\.py$\|~$' \
|
||||
| while read file ; do
|
||||
base=`basename $file`
|
||||
[ -h ${DISTFILES}/"$base" ] && continue
|
||||
from=$(readlink ../../net/Http/"$file")
|
||||
[ -z "$from" ] && from=../../net/Http/"$file"
|
||||
ln -s $from ${DISTFILES}/"$base"
|
||||
done
|
||||
|
||||
# golang/net/archive/8d16fa6dc9a8.tar.gz
|
||||
# burpsuite_community_v2020.9.1.jar portswigger.net/burp/releases/download@product=community&version=2020.9.1
|
||||
# burpsuite_community_v2020.4.jar mirror.leaseweb.com/gentoo/distfiles/0f/burpsuite_community_v2020.4.jar
|
||||
# burpsuite_community_v2020.4.jar portswigger.net/burp/releases/download@product=community&version=2020.4
|
||||
# burpsuite_community_v2020.4.1.jar portswigger.net/burp/releases/download@product=community&version=2020.4.1
|
||||
|
||||
grep -v '^#' $TXT | while read base file ; do
|
||||
if [ -z "$base" ] ; then
|
||||
continue
|
||||
fi
|
||||
if [ -z "$file" ] ; then
|
||||
echo ERROR: empty target for $base && continue
|
||||
fi
|
||||
|
||||
rm -f "${DISTFILES}/$base"
|
||||
ln -s ../../net/Http/"$file" ${DISTFILES}/"$base"
|
||||
[ -e /i/net/Http/distfiles.gentoo.org/distfiles/"$base" ] || \
|
||||
ln -s /i/net/Http/"$file" /i/net/Http/distfiles.gentoo.org/distfiles/"$base"
|
||||
base=""
|
||||
done
|
||||
exit 0
|
||||
# RfCatDonsCCBootloader-1.9.2.hex atlas0fd00m/rfcat/releases/download/v1.9.2/RfCatDonsCCBootloader.hex
|
18
overlay/Gentoo/usr/local/sbin/gentoo_lis_to_urls.bash
Executable file
18
overlay/Gentoo/usr/local/sbin/gentoo_lis_to_urls.bash
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
# -*-mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
# filter
|
||||
|
||||
CACHE=/mnt/i/net/Http
|
||||
grep ^http:// | \
|
||||
sed -e 's@ftp://[^ ]*@@g' | \
|
||||
while read line ; do
|
||||
for url in $line ; do
|
||||
base=`basename "$url"`
|
||||
[ -e /usr/portage/distfiles/$base ] && break
|
||||
pre=`sed -e "s@http://@${CACHE}@" <<< $url`
|
||||
[ -e $pre ] && break
|
||||
echo $line
|
||||
break
|
||||
done
|
||||
done
|
||||
exit 0
|
9
overlay/Gentoo/usr/local/sbin/gentoo_qcheck_missing.bash
Executable file
9
overlay/Gentoo/usr/local/sbin/gentoo_qcheck_missing.bash
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
# https://forums.gentoo.org/viewtopic-t-1044220-start-0.html
|
||||
qcheck -C \
|
||||
| grep -v -e '.*\.pyo$' -e '.*\.pyc$' \
|
||||
-e '.*/examples/.*' -e '^.*/doc/.*/[^/.]*$' \
|
||||
-e '^/usr/lib/debug/.*' -e '.*\.debug' \
|
||||
-e '^/usr/.*compiled' -e '^/usr/.*\.cache' \
|
||||
| grep -B 1 -e '^ MD5-DIGEST:' -e '^ AFK:' -e '^ MTIME:'
|
15
overlay/Gentoo/usr/local/sbin/gentoo_rebuild_missing.bash
Executable file
15
overlay/Gentoo/usr/local/sbin/gentoo_rebuild_missing.bash
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||||
|
||||
ROLE=base
|
||||
|
||||
# https://www.commandlinefu.com/commands/view/5988/re-emerge-all-ebuilds-with-missing-files-gentoo-linux
|
||||
# Re-emerge all ebuilds with missing files (Gentoo Linux)
|
||||
|
||||
qlist --installed --nocolor | uniq | while read cp; do
|
||||
qlist --exact $cp | grep -v '/usr/share/bash-completion\|/doc/' | while read file; do
|
||||
test -e "$file" || { echo $cp; echo "$cp: missing $file" 1>&2; break; };
|
||||
done;
|
||||
done
|
||||
|
||||
exit 0
|
24
overlay/Gentoo/usr/local/sbin/gentoo_wget_urls.bash
Executable file
24
overlay/Gentoo/usr/local/sbin/gentoo_wget_urls.bash
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
# -*-mode: sh; tab-width: 8; coding: utf-8-unix -*-
|
||||
# filter - arguments are to wget - quoted?
|
||||
|
||||
ROOTDIR=/mnt/i
|
||||
if [ "$#" -eq 0 ] ; then
|
||||
WARGS="-xc -P $ROOTDIR/net/Http --tries=1"
|
||||
else
|
||||
WARGS="$@"
|
||||
fi
|
||||
grep ^http | \
|
||||
sed -e 's@^\(https://distfiles.gentoo.org/distfiles/[a-f0-9][a-f0-9]/[^ ]*\) \(https://[^ ]*\) @\2 \1@' | \
|
||||
sed -e 's@ftp://[^ ]*@@' -e 's@^https://distfiles.gentoo.org/distfiles/[^ ]* https://pypi.python.org/@https://pypi.python.org/@' -e 's/http:/https:/' \
|
||||
-e 's@https*://mirror.leaseweb.com/gentoo/@https://gentoo.osuosl.org@g' \
|
||||
-e 's@https*://distfiles.gentoo.org@https://gentoo.osuosl.org@g' | \
|
||||
while read urls ; do
|
||||
url=`sed -e 's@ .*@@' <<< $urls`
|
||||
base=`basename "$url"`
|
||||
[ -e /usr/portage/distfiles/$base ] && echo distfiles/$base && continue
|
||||
for url in $urls ; do
|
||||
wget --restrict-file-names=windows --no-verbose $WARGS $url || continue
|
||||
break
|
||||
done
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue