Browse Source

s3.TUP Update library detection (v0.21.2)

- better library detection in cross toolchains by introducing the optional _checklib property to specify the concrete library filename
- fix config outdated message and update language files
- remove some tabs and whitespaces
pull/54/head
WXbet 4 years ago
parent
commit
57919ee811
  1. 4
      support/configs/plugin_update_toolchain.config.template
  2. 159
      support/functions/_plugin_update_toolchain
  3. 2
      support/translation/bg
  4. 2
      support/translation/de
  5. 2
      support/translation/en
  6. 2
      support/translation/es
  7. 2
      support/translation/fr
  8. 2
      support/translation/it
  9. 2
      support/translation/nl
  10. 2
      support/translation/pl
  11. 2
      support/translation/pt
  12. 2
      support/translation/tr

4
support/configs/plugin_update_toolchain.config.template

@ -1,6 +1,6 @@
# List of setup, build and config commands below. All commands are executed in the context of the current user. # List of setup, build and config commands below. All commands are executed in the context of the current user.
# Pay attention to the SEMICOLON at the end of EACH command and the correct quoting (' or ") for or to avoid expansion of variables. # Pay attention to the SEMICOLON at the end of EACH command and the correct quoting (' or ") for or to avoid expansion of variables.
S3TUP_CONFIG_VERSION="25"; S3TUP_CONFIG_VERSION="26";
# Tokens that are replaced automatically: # Tokens that are replaced automatically:
# @CTNGSOURCE@ crosstool-NG source folder; support/crosstool/crosstool-ng # @CTNGSOURCE@ crosstool-NG source folder; support/crosstool/crosstool-ng
@ -138,6 +138,7 @@ SSL_102_beta="0";
SSL_102_name="OpenSSL"; SSL_102_name="OpenSSL";
SSL_102_version="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .name' | sed -e 's#OpenSSL_##g; s#_#.#g; s#\"##g')"; SSL_102_version="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .name' | sed -e 's#OpenSSL_##g; s#_#.#g; s#\"##g')";
SSL_102_check="openssl.pc $(printf "$SSL_102_version" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')"; SSL_102_check="openssl.pc $(printf "$SSL_102_version" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')";
SSL_102_checklib="libcrypto.so.1.0.2";
SSL_102_url="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .tarball_url' | sed -e 's#\"##g')"; SSL_102_url="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .tarball_url' | sed -e 's#\"##g')";
SSL_102_tasks=('export TOOLCHAIN=@TOOLCHAIN@;'); SSL_102_tasks=('export TOOLCHAIN=@TOOLCHAIN@;');
SSL_102_tasks+=('export PATH="$TOOLCHAIN/bin:$PATH";'); SSL_102_tasks+=('export PATH="$TOOLCHAIN/bin:$PATH";');
@ -157,6 +158,7 @@ SSL_102B_name="OpenSSL";
SSL_102B_version="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .name' | sed -e 's#OpenSSL_##g; s#_#.#g; s#\"##g')"; SSL_102B_version="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .name' | sed -e 's#OpenSSL_##g; s#_#.#g; s#\"##g')";
SSL_102B_desc="OpenSSL $SSL_102B_version (1.0.0)"; SSL_102B_desc="OpenSSL $SSL_102B_version (1.0.0)";
SSL_102B_check="openssl.pc $(printf "$SSL_102_version" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')"; SSL_102B_check="openssl.pc $(printf "$SSL_102_version" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')";
SSL_102B_checklib="libcrypto.so.1.0.0";
SSL_102B_url="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .tarball_url' | sed -e 's#\"##g')"; SSL_102B_url="$(curl --silent "https://api.github.com/repos/openssl/openssl/tags?page=1&per_page=100" | jq '[.[] | select(.name|test("OpenSSL_1_0_2[a-z].*"))][0] | .tarball_url' | sed -e 's#\"##g')";
SSL_102B_tasks=('export TOOLCHAIN=@TOOLCHAIN@;'); SSL_102B_tasks=('export TOOLCHAIN=@TOOLCHAIN@;');
SSL_102B_tasks+=('export PATH="$TOOLCHAIN/bin:$PATH";'); SSL_102B_tasks+=('export PATH="$TOOLCHAIN/bin:$PATH";');

159
support/functions/_plugin_update_toolchain

@ -3,7 +3,7 @@
#simplebuild_plugin tcupdate #simplebuild_plugin tcupdate
tcupdate(){ tcupdate(){
pversion="0.21.1"; pversion="0.21.2";
pname="s3.TUP"; pname="s3.TUP";
pdesc="Plugin $pname v$pversion"; pdesc="Plugin $pname v$pversion";
configname="$configdir/plugin_update_toolchain.config"; configname="$configdir/plugin_update_toolchain.config";
@ -74,7 +74,7 @@ tcupdate(){
[ "$FLAG" == "1" ] && return || bye; [ "$FLAG" == "1" ] && return || bye;
fi; fi;
#load config #load config
source "$configname"; source "$configname";
#check config #check config
@ -160,12 +160,12 @@ tcupdate(){
}; };
_integrate_libs(){ _integrate_libs(){
local tc="$1" libkeys="$2" menu_close props i icount; local tc="$1" libkeys="$2" menu_close props i icount;
#toolchain native not supported and exists check #toolchain native not supported and exists check
if ! _check_toolchain "$tc";then if ! _check_toolchain "$tc";then
_nl && sleep 2 && return; _nl && sleep 2 && return;
fi; fi;
#get toolchain properties #get toolchain properties
props=$(_get_toolchain_properties "$tc"); props=$(_get_toolchain_properties "$tc");
compilername=$(echo "$props" | awk -F';' '{print $1}' | xargs); compilername=$(echo "$props" | awk -F';' '{print $1}' | xargs);
@ -186,10 +186,10 @@ _integrate_libs(){
do do
#update current toolchain pkgconfig #update current toolchain pkgconfig
pkgconfigdir=$(_get_toolchain_pkgconfig "$prefixdir"); pkgconfigdir=$(_get_toolchain_pkgconfig "$prefixdir");
#get current toolchain libs #get current toolchain libs
tc_libs=$(_get_toolchain_libs "$pkgconfigdir"); #semicolon separeted "pkgname|version|key|compare|libname" tc_libs=$(_get_toolchain_libs "$pkgconfigdir"); #semicolon separeted "pkgname|version|key|compare|libname"
#LIBRARY UPDATE MENU #LIBRARY UPDATE MENU
unset MENU_OPTIONS;COUNT=0;unset libs;unset libversioncurrent;unset libversioncompare; unset MENU_OPTIONS;COUNT=0;unset libs;unset libversioncurrent;unset libversioncompare;
for libkey in "${LIBS[@]}" for libkey in "${LIBS[@]}"
@ -206,7 +206,7 @@ _integrate_libs(){
libcheck=$(echo "$libcheck" | awk '{printf $1}') libcheck=$(echo "$libcheck" | awk '{printf $1}')
liburl="$libkey"_url;liburl="${!liburl}"; liburl="$libkey"_url;liburl="${!liburl}";
libtasks="$libkey"_tasks[@];libtasks=("${!libtasks}"); libtasks="$libkey"_tasks[@];libtasks=("${!libtasks}");
# check match of existing lib # check match of existing lib
for l in $(echo "$tc_libs" | tr ";" "\n") #semicolon separeted "pkgname|version|key|compare|libname" for l in $(echo "$tc_libs" | tr ";" "\n") #semicolon separeted "pkgname|version|key|compare|libname"
do do
@ -248,7 +248,7 @@ _integrate_libs(){
#extract first command and option for Info Menu before modifying $opts #extract first command and option for Info Menu before modifying $opts
first=$(echo "$opts" | awk '{printf $1}'); first=$(echo "$opts" | awk '{printf $1}');
lkey=$(echo "$opts" | awk '{printf $2}'); lkey=$(echo "$opts" | awk '{printf $2}');
#sort opts descending to ensure LIB_USB is build before LIB_PCSC #sort opts descending to ensure LIB_USB is build before LIB_PCSC
opts=$(echo "$opts" | tr ' ' '\n' | sort -hr); opts=$(echo "$opts" | tr ' ' '\n' | sort -hr);
@ -287,7 +287,7 @@ _integrate_libs(){
[ "${#buildtasks[@]}" == "0" ] && echo -e "${r_l} ${txt_error}:${y_l} ${o} ${w_l}${txt_s3tup_msg_library_not_found}${rs_}"; [ "${#buildtasks[@]}" == "0" ] && echo -e "${r_l} ${txt_error}:${y_l} ${o} ${w_l}${txt_s3tup_msg_library_not_found}${rs_}";
sleep 2; sleep 2;
done; done;
[ -d "$tmpdir" ] && rm -r "$tmpdir";; [ -d "$tmpdir" ] && rm -r "$tmpdir";;
1) #Exit/Back 1) #Exit/Back
unset MENU_OPTIONS; unset MENU_OPTIONS;
@ -304,7 +304,7 @@ _integrate_libs(){
rm "$tempfile" 2>/dev/null; rm "$tempfile" 2>/dev/null;
fi;; fi;;
esac; esac;
#Exit loop if build library is forced #Exit loop if build library is forced
[ "${#libkeys}" -gt 0 ] && menu_close=1; [ "${#libkeys}" -gt 0 ] && menu_close=1;
done; done;
@ -383,10 +383,10 @@ _create_tc(){
key=$(echo "$l" | awk -F'|' '{print $3}' | xargs); key=$(echo "$l" | awk -F'|' '{print $3}' | xargs);
[ -n "$key" ] && libkeys+="${key},"; [ -n "$key" ] && libkeys+="${key},";
done; done;
libkeys="$(echo "${libkeys%?}" | xargs)"; libkeys="$(echo "${libkeys%?}" | xargs)";
fi; fi;
logfile="$ldir/$(date +%F.%H%M%S)_tup_crosstoolchain_"$tpl".log"; ((i++)); logfile="$ldir/$(date +%F.%H%M%S)_tup_crosstoolchain_"$tpl".log"; ((i++));
clear; clear;
@ -395,17 +395,17 @@ _create_tc(){
echo -e "$pdesc - ${txt_s3tup_msg_cross_toolchain_log} - $(date +"%F %T")"; echo -e "$pdesc - ${txt_s3tup_msg_cross_toolchain_log} - $(date +"%F %T")";
echo -e "${y_l}$sp\n${txt_b2} ($i/$icount): ${txt_s3tup_msg_cross_toolchain_commandlist} $tpl:\n$sp"; echo -e "${y_l}$sp\n${txt_b2} ($i/$icount): ${txt_s3tup_msg_cross_toolchain_commandlist} $tpl:\n$sp";
) | _log "$logfile"; ) | _log "$logfile";
#set ctsrcdir based on template type #set ctsrcdir based on template type
template_type="$(_get_template_type "$cttpldir/$tpl")"; template_type="$(_get_template_type "$cttpldir/$tpl")";
tpl_type="$(echo "$template_type" | awk -F';' '{print $1}' | xargs)"; tpl_type="$(echo "$template_type" | awk -F';' '{print $1}' | xargs)";
tpl_type_name="$(echo "$template_type" | awk -F';' '{print $2}' | xargs)"; tpl_type_name="$(echo "$template_type" | awk -F';' '{print $2}' | xargs)";
ctsrcdir="${tpl_type,,}srcdir";ctsrcdir="${!ctsrcdir}"; ctsrcdir="${tpl_type,,}srcdir";ctsrcdir="${!ctsrcdir}";
#copy template #copy template
echo "rm \"$ctsrcdir/.config\"* 2>/dev/null;cp -f \"$cttpldir/$tpl\" \"$ctsrcdir/.config\";" | _log "$logfile"; echo "rm \"$ctsrcdir/.config\"* 2>/dev/null;cp -f \"$cttpldir/$tpl\" \"$ctsrcdir/.config\";" | _log "$logfile";
rm "$ctsrcdir/.config"* 2>/dev/null;cp -f "$cttpldir/$tpl" "$ctsrcdir/.config"; rm "$ctsrcdir/.config"* 2>/dev/null;cp -f "$cttpldir/$tpl" "$ctsrcdir/.config";
#prepare template and build #prepare template and build
case "$tpl_type" in case "$tpl_type" in
"CTNG") #CT_LOCAL_TARBALLS_DIR aka cache folder for downloads "CTNG") #CT_LOCAL_TARBALLS_DIR aka cache folder for downloads
@ -433,10 +433,10 @@ _create_tc(){
echo -e "cd \"${ctsrcdir}\";\n$(_replace_tokens "$bcl")\n$sp${re_}" | _log "$logfile"; echo -e "cd \"${ctsrcdir}\";\n$(_replace_tokens "$bcl")\n$sp${re_}" | _log "$logfile";
sleep 2; sleep 2;
if [ "$CT_START_BUILD" -eq 1 ];then if [ "$CT_START_BUILD" -eq 1 ];then
cd "$ctsrcdir"; cd "$ctsrcdir";
#print out detected libs in current toolchain #print out detected libs in current toolchain
[ "${#libkeys}" -gt 0 -a "$LIBS_AUTO_INTEGRATE" -eq 1 ] && echo -e "${y_l}\n${txt_s3tup_msg_cross_toolchain_library_detection}\n${b_l}$(echo "$libkeys" | tr ',' '\n' | sort -hr)${re_}" | _log "$logfile"; [ "${#libkeys}" -gt 0 -a "$LIBS_AUTO_INTEGRATE" -eq 1 ] && echo -e "${y_l}\n${txt_s3tup_msg_cross_toolchain_library_detection}\n${b_l}$(echo "$libkeys" | tr ',' '\n' | sort -hr)${re_}" | _log "$logfile";
@ -464,7 +464,7 @@ _create_tc(){
buildtasks+=("echo "$echo_task";");buildtasks+=("$task"); buildtasks+=("echo "$echo_task";");buildtasks+=("$task");
done;; done;;
esac; esac;
#run build and save error #run build and save error
( eval "${buildtasks[@]}" ) 2>&1; ( eval "${buildtasks[@]}" ) 2>&1;
@ -473,7 +473,7 @@ _create_tc(){
"FNG") err=$(grep 'Error .*' "$logfile" | grep -vc '(ignored)');; "FNG") err=$(grep 'Error .*' "$logfile" | grep -vc '(ignored)');;
"ANDK") err=$?;; "ANDK") err=$?;;
esac; esac;
#save build.log in logs #save build.log in logs
[ "$tpl_type" == "CTNG" ] && cat "$ctsrcdir/build.log" >>"$logfile"; [ "$tpl_type" == "CTNG" ] && cat "$ctsrcdir/build.log" >>"$logfile";
( (
@ -491,11 +491,11 @@ _create_tc(){
btcdir=$(realpath "$btcbindir/../"); btcdir=$(realpath "$btcbindir/../");
target=$(basename "$btcdir"); target=$(basename "$btcdir");
use=""; use="";
#copy toolchain folder #copy toolchain folder
rm -rf "$tcdir/$tpl"; rm -rf "$tcdir/$tpl";
cp -rf "$btcdir" "$tcdir/$tpl"; cp -rf "$btcdir" "$tcdir/$tpl";
#compress log file #compress log file
cp -f "$logfile" "$tcdir/$tpl/freetz-ng.log"; cp -f "$logfile" "$tcdir/$tpl/freetz-ng.log";
bzip2 -zf9 "$tcdir/$tpl/freetz-ng.log";; bzip2 -zf9 "$tcdir/$tpl/freetz-ng.log";;
@ -503,24 +503,24 @@ _create_tc(){
target="$ANDK_HOST"; target="$ANDK_HOST";
sysroot="sysroot"; sysroot="sysroot";
use="LIB_RT= LIB_PTHREAD="; use="LIB_RT= LIB_PTHREAD=";
#compress log file #compress log file
cp -f "$logfile" "$tcdir/$tpl/android-ndk.log"; cp -f "$logfile" "$tcdir/$tpl/android-ndk.log";
bzip2 -zf9 "$tcdir/$tpl/android-ndk.log";; bzip2 -zf9 "$tcdir/$tpl/android-ndk.log";;
esac; esac;
#save config in target toolchain folder #save config in target toolchain folder
cp -f "$cttpldir/$tpl" "$tcdir/$tpl/.config"; cp -f "$cttpldir/$tpl" "$tcdir/$tpl/.config";
#auto integrate libs #auto integrate libs
if [ "${#libkeys}" -gt 0 -a "$LIBS_AUTO_INTEGRATE" -eq 1 ];then if [ "${#libkeys}" -gt 0 -a "$LIBS_AUTO_INTEGRATE" -eq 1 ];then
echo -e "${y_l}\n${txt_s3tup_msg_cross_toolchain_library_integration}\n${b_l}$(echo "$libkeys" | tr ',' '\n' | sort -hr)${re_}"; echo -e "${y_l}\n${txt_s3tup_msg_cross_toolchain_library_integration}\n${b_l}$(echo "$libkeys" | tr ',' '\n' | sort -hr)${re_}";
_integrate_libs "$tpl" "$libkeys" "$FLAG"; _integrate_libs "$tpl" "$libkeys" "$FLAG";
fi; fi;
#compress toolchain #compress toolchain
_compress "$dldir/$(decode "$_t1e")$tpl.tar.xz" "$tcdir/$tpl" | "$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ ${txt_s3tup_menu_compress_title} $tpl ${txt_to} $(decode "$_t1e")$tpl.tar.xz ]- " "$pb_" "$_lines" "$_cols"; _compress "$dldir/$(decode "$_t1e")$tpl.tar.xz" "$tcdir/$tpl" | "$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ ${txt_s3tup_menu_compress_title} $tpl ${txt_to} $(decode "$_t1e")$tpl.tar.xz ]- " "$pb_" "$_lines" "$_cols";
#create toolchain.cfg #create toolchain.cfg
props=$(_get_template_properties "$cttpldir/$tpl"); props=$(_get_template_properties "$cttpldir/$tpl");
desc=$(echo "$props" | awk -F'^' '{print $1}' | xargs); desc=$(echo "$props" | awk -F'^' '{print $1}' | xargs);
@ -554,7 +554,7 @@ _create_tc(){
#Exit loop if setup or build toolchain are forced #Exit loop if setup or build toolchain are forced
[ "${#2}" -gt 0 ] || [ "${#1}" -gt 0 ] && menu_close=1; [ "${#2}" -gt 0 ] || [ "${#1}" -gt 0 ] && menu_close=1;
done; done;
}; };
_migrations(){ _migrations(){
@ -618,11 +618,11 @@ _backup(){
dest=$2; dest=$2;
newtccfgfile="$tccfgdir/$dest"; newtccfgfile="$tccfgdir/$dest";
xzfile="$dldir/$(decode "$_t1e")$dest.tar.xz"; xzfile="$dldir/$(decode "$_t1e")$dest.tar.xz";
( (
#compress toolchain #compress toolchain
_compress "$xzfile" "$tcdir/$src" _compress "$xzfile" "$tcdir/$src"
#create toolchain.cfg #create toolchain.cfg
template_type="$(_get_template_type "$cttpldir/$src")"; template_type="$(_get_template_type "$cttpldir/$src")";
tpl_type="$(echo "$template_type" | awk -F';' '{print $1}' | xargs)"; tpl_type="$(echo "$template_type" | awk -F';' '{print $1}' | xargs)";
@ -637,10 +637,10 @@ _build_library(){
local desc="$1" libsrcdir="$2" lf="$3"; # Save the first 3 arguments in variables local desc="$1" libsrcdir="$2" lf="$3"; # Save the first 3 arguments in variables
shift 3; # Shift all 3 arguments to the left (original $1,$2,$3 gets lost) shift 3; # Shift all 3 arguments to the left (original $1,$2,$3 gets lost)
local tasks=("$@"); # Rebuild the array with rest of arguments local tasks=("$@"); # Rebuild the array with rest of arguments
( (
bcl=$(printf '%s\n' "${tasks[@]}"); bcl=$(printf '%s\n' "${tasks[@]}");
sp=$(printf '%*s' 80 | tr ' ' '=') sp=$(printf '%*s' 80 | tr ' ' '=')
( (
echo -e "$pdesc - ${txt_s3tup_msg_build_library_log} - $(date +"%F %T")"; echo -e "$pdesc - ${txt_s3tup_msg_build_library_log} - $(date +"%F %T")";
@ -650,7 +650,7 @@ _build_library(){
( eval "${tasks[@]}" ) 2>&1 ( eval "${tasks[@]}" ) 2>&1
) | _log "$lf" ) | _log "$lf"
) | "$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ ${txt_s3tup_menu_build_library_title} $desc ]- " "$pb_" "$_lines" "$_cols";sleep 2; ) | "$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ ${txt_s3tup_menu_build_library_title} $desc ]- " "$pb_" "$_lines" "$_cols";sleep 2;
#build error message #build error message
error_on_build=$(grep -cw1 Error "$lf"); error_on_build=$(grep -cw1 Error "$lf");
if [ "$error_on_build" -gt 0 ];then if [ "$error_on_build" -gt 0 ];then
@ -658,13 +658,13 @@ _build_library(){
_paktc_timer 10; _paktc_timer 10;
echo -e "${re_}${w_l}"; echo -e "${re_}${w_l}";
fi; fi;
}; };
_tpl_editor(){ _tpl_editor(){
tc="$2";tpl="$tc";unset TASKS;unset configtasks;local i=0; tc="$2";tpl="$tc";unset TASKS;unset configtasks;local i=0;
_check_crosstool_setup; _check_crosstool_setup;
props=$(_get_template_properties "$cttpldir/$tpl"); props=$(_get_template_properties "$cttpldir/$tpl");
desc=$(echo "$props" | awk -F'(' '{print $1}' | xargs); desc=$(echo "$props" | awk -F'(' '{print $1}' | xargs);
version=$(echo "$props" | awk -F'^' '{print $2}' | xargs);[ -z "$version" ] && version=0; version=$(echo "$props" | awk -F'^' '{print $2}' | xargs);[ -z "$version" ] && version=0;
@ -715,7 +715,7 @@ _ctng_setup(){
echo -e "$pdesc - ${txt_s3tup_msg_ctng_setup_log} - $(date +"%F %T")"; echo -e "$pdesc - ${txt_s3tup_msg_ctng_setup_log} - $(date +"%F %T")";
echo -e "$sp\n${txt_s3tup_msg_ctng_setup_commandlist} crosstool-NG:\n$sp\ncd "$ctngsrcdir"\n$(_replace_tokens "$bcl")\n$sp"; echo -e "$sp\n${txt_s3tup_msg_ctng_setup_commandlist} crosstool-NG:\n$sp\ncd "$ctngsrcdir"\n$(_replace_tokens "$bcl")\n$sp";
sleep 2; sleep 2;
if [ "$1" -eq 1 ];then if [ "$1" -eq 1 ];then
# setup crosstool wc # setup crosstool wc
echo "${txt_s3tup_msg_ctng_setup_cleanup} "$ctngsrcdir/"..." echo "${txt_s3tup_msg_ctng_setup_cleanup} "$ctngsrcdir/"..."
@ -744,7 +744,7 @@ _fng_setup(){
echo -e "$pdesc - ${txt_s3tup_msg_fng_setup_log} - $(date +"%F %T")"; echo -e "$pdesc - ${txt_s3tup_msg_fng_setup_log} - $(date +"%F %T")";
echo -e "$sp\n${txt_s3tup_msg_fng_setup_commandlist} Freetz-NG:\n$sp\ncd "$fngsrcdir"\n$(_replace_tokens "$bcl")\n$sp"; echo -e "$sp\n${txt_s3tup_msg_fng_setup_commandlist} Freetz-NG:\n$sp\ncd "$fngsrcdir"\n$(_replace_tokens "$bcl")\n$sp";
sleep 2; sleep 2;
if [ "$1" -eq 1 ];then if [ "$1" -eq 1 ];then
# setup freetz-ng wc # setup freetz-ng wc
echo "${txt_s3tup_msg_fng_setup_cleanup} "$fngsrcdir/"..." echo "${txt_s3tup_msg_fng_setup_cleanup} "$fngsrcdir/"..."
@ -816,20 +816,20 @@ _extract(){
local c e i; local c e i;
(($#)) || return; (($#)) || return;
edir="$2"; edir="$2";
[ -d "$edir" ] && rm -r "$edir"; [ -d "$edir" ] && rm -r "$edir";
mkdir --parents "$edir"; mkdir --parents "$edir";
for i; do for i; do
c=''; c='';
e=1; e=1;
if [[ ! -r $i ]];then if [[ ! -r $i ]];then
echo "$0: ${txt_s3tup_msg_extract_file_unreadable} \`$i'" >&2; echo "$0: ${txt_s3tup_msg_extract_file_unreadable} \`$i'" >&2;
continue; continue;
fi fi
case $i in case $i in
*.tgz|*.tlz|*.txz|*.tb2|*.tbz|*.tbz2|*.taz|*.tar|*.tar.Z|*.tar.bz|*.tar.bz2|*.tar.gz|*.tar.lzma|*.tar.xz) *.tgz|*.tlz|*.txz|*.tb2|*.tbz|*.tbz2|*.taz|*.tar|*.tar.Z|*.tar.bz|*.tar.bz2|*.tar.gz|*.tar.lzma|*.tar.xz)
c=(tar -xvf);; c=(tar -xvf);;
@ -846,10 +846,10 @@ _extract(){
esac esac
cd "$edir"; cd "$edir";
BEFORE=(.*/ */); BEFORE=(.*/ */);
command "${c[@]}" "$i" |"$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ $txt_extracting $i ]- " "$pb_" 20 74; command "${c[@]}" "$i" |"$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ $txt_extracting $i ]- " "$pb_" 20 74;
((e = e || $?)); ((e = e || $?));
AFTER=(.*/ */); AFTER=(.*/ */);
for (( j = 0; j < "${#BEFORE[@]}"; j++ )); do for (( j = 0; j < "${#BEFORE[@]}"; j++ )); do
[ "${BEFORE[j]}" == "${AFTER[j]}" ] || break; [ "${BEFORE[j]}" == "${AFTER[j]}" ] || break;
@ -889,10 +889,10 @@ _tidy_tasks(){
_get_toolchain_properties(){ _get_toolchain_properties(){
local tc="$1" props tc_type; local tc="$1" props tc_type;
unset _target; unset _target;
#load toolchain config #load toolchain config
[ -f "$tccfgdir/$tc" ] && source "$tccfgdir/$tc"; [ -f "$tccfgdir/$tc" ] && source "$tccfgdir/$tc";
#jump into toolchains bin folder #jump into toolchains bin folder
cd "$tcdir/$tc/bin" cd "$tcdir/$tc/bin"
@ -904,7 +904,7 @@ _get_toolchain_properties(){
includedir=$(realpath -s $(echo | "$compilername" -Wp,-v -xc - -fsyntax-only 2>&1 | grep include$ | tail -n 1 | xargs)) includedir=$(realpath -s $(echo | "$compilername" -Wp,-v -xc - -fsyntax-only 2>&1 | grep include$ | tail -n 1 | xargs))
sysrootdir="$("$compilername" -print-sysroot 2>/dev/null)";[ -z "$sysrootdir" ] && sysrootdir="$tcdir/$tc/$_sysroot"; sysrootdir="$("$compilername" -print-sysroot 2>/dev/null)";[ -z "$sysrootdir" ] && sysrootdir="$tcdir/$tc/$_sysroot";
sysrootdir="$(realpath -sm "$sysrootdir")"; sysrootdir="$(realpath -sm "$sysrootdir")";
if [ "${#sysrootdir}" -gt "${#tcdir}" ];then if [ "${#sysrootdir}" -gt "${#tcdir}" ];then
[ -d "$sysrootdir/include" ] && cd "$sysrootdir" [ -d "$sysrootdir/include" ] && cd "$sysrootdir"
[ -d "$sysrootdir/usr/include" ] && [ ! "$(realpath $(readlink -- "$PWD") 2>/dev/null)" == "$(realpath "$sysrootdir/usr")" ] && cd "$sysrootdir/usr" #Ignore symlinks to the same directory [ -d "$sysrootdir/usr/include" ] && [ ! "$(realpath $(readlink -- "$PWD") 2>/dev/null)" == "$(realpath "$sysrootdir/usr")" ] && cd "$sysrootdir/usr" #Ignore symlinks to the same directory
@ -912,14 +912,14 @@ _get_toolchain_properties(){
cd "$tcdir/$tc/$_sysroot" cd "$tcdir/$tc/$_sysroot"
fi; fi;
prefixdir="$PWD" prefixdir="$PWD"
pkgconfigdir="$(_get_toolchain_pkgconfig "$prefixdir")"; pkgconfigdir="$(_get_toolchain_pkgconfig "$prefixdir")";
#get specific properties from .config #get specific properties from .config
if [ -f "$tcdir/$tc/.config" ];then if [ -f "$tcdir/$tc/.config" ];then
cflags=$(_get_template_properties "$tcdir/$tc/.config" | awk -F'^' '{print $3}' | xargs); cflags=$(_get_template_properties "$tcdir/$tc/.config" | awk -F'^' '{print $3}' | xargs);
fi; fi;
#get android specific properties from .config #get android specific properties from .config
if [ -f "$tcdir/$tc/.config" -a "$tc_type" == "android-ndk" ];then if [ -f "$tcdir/$tc/.config" -a "$tc_type" == "android-ndk" ];then
arch=$(grep '^ANDK_ARCH=' "$tcdir/$tc/.config" | awk -F'"' '{print $2}' | xargs); arch=$(grep '^ANDK_ARCH=' "$tcdir/$tc/.config" | awk -F'"' '{print $2}' | xargs);
@ -929,7 +929,7 @@ _get_toolchain_properties(){
else else
arch=""; bitness=""; api=""; arch=""; bitness=""; api="";
fi; fi;
props="$compilername;$ranlibname;$includedir;$sysrootdir;$prefixdir;$pkgconfigdir;$hostname;$tc_type;$arch;$bitness;$api;$ssl_target;$cflags" props="$compilername;$ranlibname;$includedir;$sysrootdir;$prefixdir;$pkgconfigdir;$hostname;$tc_type;$arch;$bitness;$api;$ssl_target;$cflags"
echo "$props" | xargs; echo "$props" | xargs;
[ -n "$props" ] && exit 0 || exit 1; [ -n "$props" ] && exit 0 || exit 1;
@ -944,7 +944,7 @@ _get_toolchain_pkgconfig(){
_get_toolchain_libs(){ _get_toolchain_libs(){
local pkgconfigdir="$1" key libs; local pkgconfigdir="$1" key libs;
cd "$pkgconfigdir" cd "$pkgconfigdir"
#looking for existing libraries #looking for existing libraries
for pkg in *.pc for pkg in *.pc
do do
@ -952,26 +952,24 @@ _get_toolchain_libs(){
if [ ! -z "$pkg" -a ! -z "$name" -a ! -z "$version" ];then if [ ! -z "$pkg" -a ! -z "$name" -a ! -z "$version" ];then
#try match with library from config #try match with library from config
for l in "${LIBS[@]}" for key in "${LIBS[@]}"
do do
[ "${!l}" == "0" ] && continue; [ "${!key}" == "0" ] && continue;
libcheck="$l"_check;libcheck="${!libcheck}"; libcheck="$key"_check;libcheck="${!libcheck}";
libversion="$l"_version;libversion="${!libversion}"; libchecklib="$key"_checklib;libchecklib="${!libchecklib}";
libversion="$key"_version;libversion="${!libversion}";
libversioncompare=$(_compare_version $libversion $version); libversioncompare=$(_compare_version $libversion $version);
if [[ "$pkg $version" =~ ^${libcheck}.* ]];then #regex match, don't quote the right side if [[ "$pkg $version" =~ ^${libcheck}.* ]];then #regex match, don't quote the right side
key="$l"; if [ -n "$libchecklib" -a -f "$pkgconfigdir/../$libchecklib" -o -z "$libchecklib" ];then
compare="$libversioncompare"; libs+="$pkg\|$version\|$key\|$libversioncompare\|$name;";
break; break;
else fi;
unset key && unset compare;
fi; fi;
done; done;
[ -n "$key" ] && libs+="$pkg\|$version\|$key\|$compare\|$name;";
fi; fi;
done; done;
echo "${libs%?}" | xargs; echo "${libs%?}" | xargs;
[ -n "$libs" ] && exit 0 || exit 1; [ -n "$libs" ] && exit 0 || exit 1;
}; };
@ -1084,7 +1082,7 @@ _compare_version(){
min=$(printf "$1\n$2\n" | sort -V | head -n1); min=$(printf "$1\n$2\n" | sort -V | head -n1);
max=$(printf "$1\n$2\n" | sort -V | tail -n1); max=$(printf "$1\n$2\n" | sort -V | tail -n1);
[ $min == $max ] && printf '=' && return; [ $min == $max ] && printf '=' && return;
[ $1 == $max ] && printf '>' && return; [ $1 == $max ] && printf '>' && return;
[ $1 == $min ] && printf '<' && return; [ $1 == $min ] && printf '<' && return;
@ -1107,7 +1105,7 @@ fi;
[ "${#2}" -eq 0 ] && printf "\033[2K\r"; #remove characters from console [ "${#2}" -eq 0 ] && printf "\033[2K\r"; #remove characters from console
}; };
_check_toolchain(){ _check_toolchain(){
if [ -z "$1" ];then #toolchain parameter empty if [ -z "$1" ];then #toolchain parameter empty
echo -e "\n\n${r_l} ${txt_error}:${y_l} ${txt_s3tup_msg_check_toolchain_empty}${rs_}"; echo -e "\n\n${r_l} ${txt_error}:${y_l} ${txt_s3tup_msg_check_toolchain_empty}${rs_}";
return 1; return 1;
@ -1150,12 +1148,12 @@ _check_pkg(){
fi; fi;
}; };
_check_github_api_limits(){ _check_github_api_limits(){
limit=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.limit'); limit=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.limit');
remaining=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.remaining'); remaining=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.remaining');
reset=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.reset'); reset=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.reset');
reset_time=$(date -d @$reset); reset_time=$(date -d @$reset);
if [ "$remaining" -lt "$1" ];then if [ "$remaining" -lt "$1" ];then
echo -e "${y_l}INFO -> ${txt_s3tup_msg_github_api_limits_info1} ${g_l}${reset_time}${y_l}\n${txt_s3tup_msg_github_api_limits_info2}\n${re_}"; echo -e "${y_l}INFO -> ${txt_s3tup_msg_github_api_limits_info1} ${g_l}${reset_time}${y_l}\n${txt_s3tup_msg_github_api_limits_info2}\n${re_}";
return 0; return 0;
@ -1183,7 +1181,7 @@ _check_crosstool_setup(){
_fng_setup "$CT_START_BUILD"; _fng_setup "$CT_START_BUILD";
fi; fi;
fi; fi;
#Setup Android Native Development Kit automatically if not installed #Setup Android Native Development Kit automatically if not installed
if [ "$1" == "ANDK" ] || [ -z "$1" ];then if [ "$1" == "ANDK" ] || [ -z "$1" ];then
if [ ! -f "$andksrcdir/toolchains/llvm/prebuilt/linux-x86_64/AndroidVersion.txt" ];then if [ ! -f "$andksrcdir/toolchains/llvm/prebuilt/linux-x86_64/AndroidVersion.txt" ];then
@ -1199,15 +1197,16 @@ _check_config(){
[ -z "$S3TUP_CONFIG_VERSION" ] && S3TUP_CONFIG_VERSION=0; [ -z "$S3TUP_CONFIG_VERSION" ] && S3TUP_CONFIG_VERSION=0;
if [ $tpl_version -gt $S3TUP_CONFIG_VERSION ];then if [ $tpl_version -gt $S3TUP_CONFIG_VERSION ];then
clear; clear;
conf=" $(basename $configname) version: $S3TUP_CONFIG_VERSION\n$(basename $configtemplate) version: $tpl_version\n";
echo -e "${r_l}\nCHECK -> ${txt_s3tup_msg_check_config_info1}\n${y_l}${conf}\n${r_l}${txt_s3tup_msg_check_config_info2}\n${y_l}./s3 tcupdate --reset\n${re_}"; echo -e "${r_l}\nCHECK -> ${txt_s3tup_msg_check_config_info1}\n${y_l}${conf}\n${r_l}${txt_s3tup_msg_check_config_info2}\n${y_l}./s3 tcupdate --reset\n${re_}";
_paktc_timer 20; _paktc_timer 20;
return 1; return 1;
fi; fi;
}; };
_change_config(){ _change_config(){
nok=1; nok=1;
[[ ! $2 =~ "(" ]] && [[ ! $2 =~ ")" ]] && qte="\"" || qte=""; #no quotes if value contains parentheses [[ ! $2 =~ "(" ]] && [[ ! $2 =~ ")" ]] && qte="\"" || qte=""; #no quotes if value contains parentheses
if ! grep -Eq "^$1=.*" "$configname";then if ! grep -Eq "^$1=.*" "$configname";then
echo -e "${r_l}\nCHECK -> ${y_l}${1}${r_l} ${txt_s3tup_msg_change_config_error}\n${re_}"; echo -e "${r_l}\nCHECK -> ${y_l}${1}${r_l} ${txt_s3tup_msg_change_config_error}\n${re_}";
_paktc_timer 10; _paktc_timer 10;
@ -1239,7 +1238,7 @@ _create_config(){
#get list of library keys from config template file #get list of library keys from config template file
libs="$(awk -F'(' '/^LIBS=./{print $NF}' "$configname" | awk -F ')' '{printf $1}' | xargs)"; libs="$(awk -F'(' '/^LIBS=./{print $NF}' "$configname" | awk -F ')' '{printf $1}' | xargs)";
#update dynamic library properties in configfile #update dynamic library properties in configfile
props='version check url'; props='version check url';
for lib in $libs; for lib in $libs;
@ -1250,7 +1249,7 @@ _create_config(){
_change_config "$prop" "${!prop}" "1"; _change_config "$prop" "${!prop}" "1";
done; done;
done; done;
return 0; return 0;
}; };
_s3tup_update(){ _s3tup_update(){
@ -1261,17 +1260,17 @@ _s3tup_update(){
support/translation \ support/translation \
"; ";
echo -e "$pdesc - ${txt_s3tup_msg_update_log} - $(date +"%F %T")" > "$logfile"; echo -e "$pdesc - ${txt_s3tup_msg_update_log} - $(date +"%F %T")" > "$logfile";
( (
#break if simplebuild3 update is required #break if simplebuild3 update is required
[ "$s3_update_required" -eq 1 ] && printf "${r_l}\n${txt_s3tup_msg_update_s3update_required}${re_}" && return; [ "$s3_update_required" -eq 1 ] && printf "${r_l}\n${txt_s3tup_msg_update_s3update_required}${re_}" && return;
#get the working copy type and exit if unknown #get the working copy type and exit if unknown
cd "$workdir"; cd "$workdir";
[ "$(git status 2>/dev/null | wc -l)" -gt 0 ] && wctype="GIT" && git remote update >/dev/null; [ "$(git status 2>/dev/null | wc -l)" -gt 0 ] && wctype="GIT" && git remote update >/dev/null;
[ "$(svn info 2>/dev/null | wc -l)" -gt 0 ] && wctype="SVN"; [ "$(svn info 2>/dev/null | wc -l)" -gt 0 ] && wctype="SVN";
[ "${#wctype}" -eq 0 ] && printf "${r_l}\n${txt_s3tup_msg_update_directory_unversioned}${re_}" && return; [ "${#wctype}" -eq 0 ] && printf "${r_l}\n${txt_s3tup_msg_update_directory_unversioned}${re_}" && return;
#prepare commands for GIT and SVN and output some working copy properties #prepare commands for GIT and SVN and output some working copy properties
if [ "$wctype" == "GIT" ];then if [ "$wctype" == "GIT" ];then
repo="$(git config --get remote.origin.url)"; #get remote url of GIT working copy repo="$(git config --get remote.origin.url)"; #get remote url of GIT working copy
@ -1290,7 +1289,7 @@ _s3tup_update(){
for ff in $s3tup_ffs;do for ff in $s3tup_ffs;do
printf "${y_l}\n ${txt_checking}: ${b_l}${ff}${re_}"; printf "${y_l}\n ${txt_checking}: ${b_l}${ff}${re_}";
diff_count=$(eval "$diff_cmd" | wc -l); #get the number of diff lines diff_count=$(eval "$diff_cmd" | wc -l); #get the number of diff lines
if [ "$diff_count" -gt 0 ];then if [ "$diff_count" -gt 0 ];then
printf "${p_l} -> ${txt_s3tup_msg_update_pending}\n${re_}" && nl="\n"; printf "${p_l} -> ${txt_s3tup_msg_update_pending}\n${re_}" && nl="\n";
eval "$diff_cmd"; #output summarized diff of changes eval "$diff_cmd"; #output summarized diff of changes
@ -1306,7 +1305,7 @@ _s3tup_update(){
[ "$dc" -gt 0 ] && printf "${g_l}${nl}${txt_s3tup_msg_update_finished} ${p_l}${ver}${g_l}\n"; [ "$dc" -gt 0 ] && printf "${g_l}${nl}${txt_s3tup_msg_update_finished} ${p_l}${ver}${g_l}\n";
) | _log "$logfile"; ) | _log "$logfile";
return $dc; #return number of diff lines return $dc; #return number of diff lines
}; };
_log(){ _log(){
@ -1335,7 +1334,7 @@ stapi_allowed="1";' || andk_vars='_oscamconfdir_custom="";';
\\\n \\\n
$(echo "$6" | awk -F'[()]' '{print $1}' | xargs)\\\n $(echo "$6" | awk -F'[()]' '{print $1}' | xargs)\\\n
$(echo "$6" | awk -F'[()]' '{print $2}' | xargs)\\\n")"; $(echo "$6" | awk -F'[()]' '{print $2}' | xargs)\\\n")";
cd "$tccfgdir"; cd "$tccfgdir";
cat << EOF > $2 cat << EOF > $2
_toolchainname="$2"; _toolchainname="$2";

2
support/translation/bg

@ -186,7 +186,7 @@ txt_s3tup_msg_check_library_info3b="Компилатора не върна ди
txt_s3tup_msg_github_api_limits_info1="Вашия ${r_l}Github API лимит на обхвата е надхвърлен${y_l} и ще бъде ресетнат в следното време:" txt_s3tup_msg_github_api_limits_info1="Вашия ${r_l}Github API лимит на обхвата е надхвърлен${y_l} и ще бъде ресетнат в следното време:"
txt_s3tup_msg_github_api_limits_info2="Моля изчакайте докато ресетнете конфигурацията си. Последните версии и линковете за сваляне на библиотеките се определят динамично от Github API. Надхвърлянето на лимита за Github API ще се отрази в грешки в генерирането на конфигурационния файл. За ${b_l}unauthenticated requests${y_l}, рейт лимита позволява ${b_l}до 60 заявки на час${y_l}. Неидентифицираните заявки се асоциират с IP адреса на иницииращият, а не с потребителя правещ заявките." txt_s3tup_msg_github_api_limits_info2="Моля изчакайте докато ресетнете конфигурацията си. Последните версии и линковете за сваляне на библиотеките се определят динамично от Github API. Надхвърлянето на лимита за Github API ще се отрази в грешки в генерирането на конфигурационния файл. За ${b_l}unauthenticated requests${y_l}, рейт лимита позволява ${b_l}до 60 заявки на час${y_l}. Неидентифицираните заявки се асоциират с IP адреса на иницииращият, а не с потребителя правещ заявките."
txt_s3tup_msg_check_crosstool_setup_info="не е настроен коректно. Опит за поправка автоматично..." txt_s3tup_msg_check_crosstool_setup_info="не е настроен коректно. Опит за поправка автоматично..."
txt_s3tup_msg_check_config_info1="Изглежда конфиг фала Ви е остарял. Следните настройки липсват:" txt_s3tup_msg_check_config_info1="Изглежда конфиг фала Ви е остарял:"
txt_s3tup_msg_check_config_info2="Моля рестарт s3 както следва за пресъздаване на свеж конфиг файл:" txt_s3tup_msg_check_config_info2="Моля рестарт s3 както следва за пресъздаване на свеж конфиг файл:"
txt_s3tup_msg_change_config_error="променливата не съществува в конфигурационния файл!" txt_s3tup_msg_change_config_error="променливата не съществува в конфигурационния файл!"
txt_s3tup_msg_change_config_info="Променливата променена на:" txt_s3tup_msg_change_config_info="Променливата променена на:"

2
support/translation/de

@ -194,7 +194,7 @@ txt_s3tup_msg_check_library_info3b="Der Compiler gibt keine Include-Verzeichniss
txt_s3tup_msg_github_api_limits_info1="Ihr ${r_l}Github-API-Limit wurde überschritten${y_l} und wird zum folgenden Zeitpunkt zurückgesetzt:" txt_s3tup_msg_github_api_limits_info1="Ihr ${r_l}Github-API-Limit wurde überschritten${y_l} und wird zum folgenden Zeitpunkt zurückgesetzt:"
txt_s3tup_msg_github_api_limits_info2="Bitte warten Sie solange, bis Sie Ihre Konfigurationsdatei zurücksetzen. Die neuesten Versionen und Download-Links für die ${txt_lib} werden dynamisch über die Github-API ermittelt. Das Überschreiten des Limits der Github-API führt zu Fehlern beim Erstellen der Konfigurationsdatei. Für ${b_l}nicht authentifizierte Anfragen${y_l} beträgt das Limit ${b_l}bis zu 60 Anfragen pro Stunde${y_l}. Nicht authentifizierte Anfragen werden der ursprünglichen IP-Adresse zugeordnet und nicht dem anfragenden Benutzer." txt_s3tup_msg_github_api_limits_info2="Bitte warten Sie solange, bis Sie Ihre Konfigurationsdatei zurücksetzen. Die neuesten Versionen und Download-Links für die ${txt_lib} werden dynamisch über die Github-API ermittelt. Das Überschreiten des Limits der Github-API führt zu Fehlern beim Erstellen der Konfigurationsdatei. Für ${b_l}nicht authentifizierte Anfragen${y_l} beträgt das Limit ${b_l}bis zu 60 Anfragen pro Stunde${y_l}. Nicht authentifizierte Anfragen werden der ursprünglichen IP-Adresse zugeordnet und nicht dem anfragenden Benutzer."
txt_s3tup_msg_check_crosstool_setup_info="ist nicht richtig installiert. Es wird versucht, es automatisch zu korrigieren..." txt_s3tup_msg_check_crosstool_setup_info="ist nicht richtig installiert. Es wird versucht, es automatisch zu korrigieren..."
txt_s3tup_msg_check_config_info1="Die Konfigurationsdatei scheint veraltet zu sein. Folgende Einstellungen fehlen:" txt_s3tup_msg_check_config_info1="Die Konfigurationsdatei scheint veraltet zu sein:"
txt_s3tup_msg_check_config_info2="Bitte starten Sie s3 wie folgt, um eine aktualisierte Konfigurationsdatei zu erstellen:" txt_s3tup_msg_check_config_info2="Bitte starten Sie s3 wie folgt, um eine aktualisierte Konfigurationsdatei zu erstellen:"
txt_s3tup_msg_change_config_error="Variable wurde nicht in der Konfigurationsdatei gefunden!" txt_s3tup_msg_change_config_error="Variable wurde nicht in der Konfigurationsdatei gefunden!"
txt_s3tup_msg_change_config_info="Variable geändert in:" txt_s3tup_msg_change_config_info="Variable geändert in:"

2
support/translation/en

@ -185,7 +185,7 @@ txt_s3tup_msg_check_library_info3b="Compiler returns no include directories!"
txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:" txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:"
txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests." txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests."
txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..." txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..."
txt_s3tup_msg_check_config_info1="Your config file seems to be outdated. The following settings are missing:" txt_s3tup_msg_check_config_info1="Your config file seems to be outdated:"
txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:" txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:"
txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!" txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!"
txt_s3tup_msg_change_config_info="Variable changed to:" txt_s3tup_msg_change_config_info="Variable changed to:"

2
support/translation/es

@ -173,7 +173,7 @@ txt_s3tup_msg_check_library_info3b="El compilador no devuelve directorios de inc
txt_s3tup_msg_github_api_limits_info1="Tu limite de ${r_l}Github API ha sido excedido${y_l} y será restablecido en el siguiente momento:" txt_s3tup_msg_github_api_limits_info1="Tu limite de ${r_l}Github API ha sido excedido${y_l} y será restablecido en el siguiente momento:"
txt_s3tup_msg_github_api_limits_info2="Por favor, espera hasta que restablezcas tu archivo de configuración. Las versiones más recientes y los enlaces de descarga de las librerías se determinan dinámicamente a través de la API de Github. Si se supera el límite de la API de Github, se producirán fallos en la generación del archivo de configuración. Para las solicitudes no autenticadas ${b_l}${y_l}, el límite permite a ${b_l}hasta 60 solicitudes por hora${y_l}. Las solicitudes no autenticadas se asocian con la dirección IP de origen, y no con el usuario que hace la solicitud." txt_s3tup_msg_github_api_limits_info2="Por favor, espera hasta que restablezcas tu archivo de configuración. Las versiones más recientes y los enlaces de descarga de las librerías se determinan dinámicamente a través de la API de Github. Si se supera el límite de la API de Github, se producirán fallos en la generación del archivo de configuración. Para las solicitudes no autenticadas ${b_l}${y_l}, el límite permite a ${b_l}hasta 60 solicitudes por hora${y_l}. Las solicitudes no autenticadas se asocian con la dirección IP de origen, y no con el usuario que hace la solicitud."
txt_s3tup_msg_check_crosstool_setup_info="no está configurado correctamente. Intento de arreglarlo automáticamente..." txt_s3tup_msg_check_crosstool_setup_info="no está configurado correctamente. Intento de arreglarlo automáticamente..."
txt_s3tup_msg_check_config_info1="Tu archivo de config parece estar obsoleto. Faltan los siguientes ajustes:" txt_s3tup_msg_check_config_info1="Tu archivo de config parece estar obsoleto:"
txt_s3tup_msg_check_config_info2="Por favor, reinicia s3 de la siguiente manera para regenerar un archivo de config actualizado:" txt_s3tup_msg_check_config_info2="Por favor, reinicia s3 de la siguiente manera para regenerar un archivo de config actualizado:"
txt_s3tup_msg_change_config_error=":la variable no existe en el archivo de configuración!" txt_s3tup_msg_change_config_error=":la variable no existe en el archivo de configuración!"
txt_s3tup_msg_change_config_info="Variable modificada en:" txt_s3tup_msg_change_config_info="Variable modificada en:"

2
support/translation/fr

@ -225,7 +225,7 @@ txt_s3tup_msg_check_library_info3b="Compiler returns no include directories!"
txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:" txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:"
txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests." txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests."
txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..." txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..."
txt_s3tup_msg_check_config_info1="Your config file seems to be outdated. The following settings are missing:" txt_s3tup_msg_check_config_info1="Your config file seems to be outdated:"
txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:" txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:"
txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!" txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!"
txt_s3tup_msg_change_config_info="Variable changed to:" txt_s3tup_msg_change_config_info="Variable changed to:"

2
support/translation/it

@ -252,7 +252,7 @@ txt_s3tup_msg_check_library_info3b="Il compilatore non trova le cartelle di incl
txt_s3tup_msg_github_api_limits_info1="Il tuo ${r_l} limite di Github API è stato raggiunto {y_l} e sarà ripristinato in questo orario:" txt_s3tup_msg_github_api_limits_info1="Il tuo ${r_l} limite di Github API è stato raggiunto {y_l} e sarà ripristinato in questo orario:"
txt_s3tup_msg_github_api_limits_info2="Ti preghiamo di attendere prima di reimpostare il tuo file di configurazione. Le versioni più recenti e i link di download sono determinati dinamicamente tramite la Github API. Se si raggiunge il limite concesso di Github API si otterranno errori nel generare file di configurazione. Per le {b_l}richieste non autenticate${y_l}, il limite permette ${b_l}un massimo di 60 richieste ogni ora${y_l}. Le richieste non autenticate vengono associate all'IP di provenienza e non all'utente che effettua la richiesta." txt_s3tup_msg_github_api_limits_info2="Ti preghiamo di attendere prima di reimpostare il tuo file di configurazione. Le versioni più recenti e i link di download sono determinati dinamicamente tramite la Github API. Se si raggiunge il limite concesso di Github API si otterranno errori nel generare file di configurazione. Per le {b_l}richieste non autenticate${y_l}, il limite permette ${b_l}un massimo di 60 richieste ogni ora${y_l}. Le richieste non autenticate vengono associate all'IP di provenienza e non all'utente che effettua la richiesta."
txt_s3tup_msg_check_crosstool_setup_info="non è impostato correttamente. Provo a correggere automaticamente..." txt_s3tup_msg_check_crosstool_setup_info="non è impostato correttamente. Provo a correggere automaticamente..."
txt_s3tup_msg_check_config_info1="Il tuo file di configurazione sembra essere obsoleto. Mancano le seguenti impostazioni:" txt_s3tup_msg_check_config_info1="Il tuo file di configurazione sembra essere obsoleto:"
txt_s3tup_msg_check_config_info2="Riavvia s3 come mostrato qui in calce per generare un file config aggiornato:" txt_s3tup_msg_check_config_info2="Riavvia s3 come mostrato qui in calce per generare un file config aggiornato:"
txt_s3tup_msg_change_config_error="variablile non esiste nel file di configurazione!" txt_s3tup_msg_change_config_error="variablile non esiste nel file di configurazione!"
txt_s3tup_msg_change_config_info="Variabile modificata in:" txt_s3tup_msg_change_config_info="Variabile modificata in:"

2
support/translation/nl

@ -188,7 +188,7 @@ txt_s3tup_msg_check_library_info3b="Compiler returns no include directories!"
txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:" txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:"
txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests." txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests."
txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..." txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..."
txt_s3tup_msg_check_config_info1="Your config file seems to be outdated. The following settings are missing:" txt_s3tup_msg_check_config_info1="Your config file seems to be outdated:"
txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:" txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:"
txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!" txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!"
txt_s3tup_msg_change_config_info="Variable changed to:" txt_s3tup_msg_change_config_info="Variable changed to:"

2
support/translation/pl

@ -188,7 +188,7 @@ txt_s3tup_msg_check_library_info3b="Compiler returns no include directories!"
txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:" txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:"
txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests." txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests."
txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..." txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..."
txt_s3tup_msg_check_config_info1="Your config file seems to be outdated. The following settings are missing:" txt_s3tup_msg_check_config_info1="Your config file seems to be outdated:"
txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:" txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:"
txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!" txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!"
txt_s3tup_msg_change_config_info="Variable changed to:" txt_s3tup_msg_change_config_info="Variable changed to:"

2
support/translation/pt

@ -225,7 +225,7 @@ txt_s3tup_msg_check_library_info3b="Compiler returns no include directories!"
txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:" txt_s3tup_msg_github_api_limits_info1="Your ${r_l}Github API rate limit has been exceeded${y_l} and will be reset at the following time:"
txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests." txt_s3tup_msg_github_api_limits_info2="Please wait until you reset your configuration file. The most recent versions and download links for the libraries are determined dynamically via the Github API. Exceeding the rate limit of the Github API will result in failures on generationg the configuration file. For ${b_l}unauthenticated requests${y_l}, the rate limit allows ${b_l}up to 60 requests per hour${y_l}. Unauthenticated requests are associated with the originating IP address, and not the user making requests."
txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..." txt_s3tup_msg_check_crosstool_setup_info="is not setup correctly. Try to fix it automatically..."
txt_s3tup_msg_check_config_info1="Your config file seems to be outdated. The following settings are missing:" txt_s3tup_msg_check_config_info1="Your config file seems to be outdated:"
txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:" txt_s3tup_msg_check_config_info2="Please restart s3 as follows to recreate an updated config file:"
txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!" txt_s3tup_msg_change_config_error="variable does not exist in the configuration file!"
txt_s3tup_msg_change_config_info="Variable changed to:" txt_s3tup_msg_change_config_info="Variable changed to:"

2
support/translation/tr

@ -191,7 +191,7 @@ txt_s3tup_msg_check_library_info3b="include-dosyası hiç yok dosyayi geri veriy
txt_s3tup_msg_github_api_limits_info1="sizin ${r_l}Github-API-Limit aşırı doldu ${y_l} ve aşağıdaki zamanda sıfırlanacak:" txt_s3tup_msg_github_api_limits_info1="sizin ${r_l}Github-API-Limit aşırı doldu ${y_l} ve aşağıdaki zamanda sıfırlanacak:"
txt_s3tup_msg_github_api_limits_info2="Lütfen yapılandırma dosyanızı sıfırlayana kadar bekleyin. yeni download-link ve yeni versiyonlar ${txt_lib} Github API aracılığıyla dinamik olarak belirlenir. Github API sınırını aşmak, yapılandırma dosyasını oluştururken hatalara yol açar. bu ${b_l}kimliği doğrulanmamış istekler${y_l} bu mu sınır ${b_l}saatte 60 istek${y_l}. Değil Kimliği doğrulanmış İstekler orijinal olacak Talep eden kullanıcıya değil, atanan IP adresi." txt_s3tup_msg_github_api_limits_info2="Lütfen yapılandırma dosyanızı sıfırlayana kadar bekleyin. yeni download-link ve yeni versiyonlar ${txt_lib} Github API aracılığıyla dinamik olarak belirlenir. Github API sınırını aşmak, yapılandırma dosyasını oluştururken hatalara yol açar. bu ${b_l}kimliği doğrulanmamış istekler${y_l} bu mu sınır ${b_l}saatte 60 istek${y_l}. Değil Kimliği doğrulanmış İstekler orijinal olacak Talep eden kullanıcıya değil, atanan IP adresi."
txt_s3tup_msg_check_crosstool_setup_info="doğru yüklenmemiş. Otomatik olarak düzeltilmeye çalışıldı..." txt_s3tup_msg_check_crosstool_setup_info="doğru yüklenmemiş. Otomatik olarak düzeltilmeye çalışıldı..."
txt_s3tup_msg_check_config_info1="Yapılandırma dosyası güncel değil. Aşağıdaki ayarlar eksik:" txt_s3tup_msg_check_config_info1="Yapılandırma dosyası güncel değil:"
txt_s3tup_msg_check_config_info2="lütfen başlat s3 güncellenmiş almak için aşağıdaki gibi yapılandırma dosyası oluştur:" txt_s3tup_msg_check_config_info2="lütfen başlat s3 güncellenmiş almak için aşağıdaki gibi yapılandırma dosyası oluştur:"
txt_s3tup_msg_change_config_error="Variable yapılandırma dosyasında bulunamadı!" txt_s3tup_msg_change_config_error="Variable yapılandırma dosyasında bulunamadı!"
txt_s3tup_msg_change_config_info="Variable değişti:" txt_s3tup_msg_change_config_info="Variable değişti:"

Loading…
Cancel
Save