Browse Source

Simplebuild RC4

First public RC
pull/9/head s3_rc4
Gorgone 6 years ago
committed by GitHub
parent
commit
732125b4a2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 266
      s3
  2. 795
      support/configs/Makefile.master
  3. 1
      support/configs/compiler_option
  4. 3
      support/configs/compiler_option.txt
  5. 752
      support/configs/config.sh.master
  6. 1
      support/configs/max_cpus
  7. 5
      support/configs/max_cpus.txt
  8. 8
      support/configs/simplebuild.config
  9. 16
      support/configs/upx.txt
  10. 1
      support/configs/upx_option
  11. 39
      support/functions/_ansi
  12. 54
      support/functions/_arrays
  13. 203
      support/functions/_cmd_build
  14. 93
      support/functions/_compress
  15. 117
      support/functions/_gui_build
  16. 55
      support/functions/_help
  17. 29
      support/functions/_logos
  18. 547
      support/functions/_misc
  19. 102
      support/functions/_patch
  20. 104
      support/functions/_profiles
  21. 193
      support/functions/_subversion
  22. 122
      support/functions/_sys_check
  23. 285
      support/functions/_toolchain
  24. 51
      support/functions/_translation
  25. 55
      support/functions/_uploadcam
  26. 137
      support/os/debian_ubuntu.install
  27. 126
      support/os/manjaro.install
  28. 182
      support/os/redhat_centos_fedora.install
  29. 154
      support/os/suse.install
  30. 5
      support/profiles/best.box.profile
  31. BIN
      support/stapi/liboscam_stapi.a
  32. BIN
      support/stapi/liboscam_stapi5_OPENBOX.a
  33. BIN
      support/stapi/liboscam_stapi5_UFS916.a
  34. BIN
      support/stapi/liboscam_stapi5_UFS916_0.03.a
  35. 19
      support/toolchains.cfg/arm_s3_ssl098
  36. 19
      support/toolchains.cfg/arm_s3_ssl100
  37. 19
      support/toolchains.cfg/arm_s3_ssl102
  38. 20
      support/toolchains.cfg/mipsel_s3_ssl098
  39. 20
      support/toolchains.cfg/mipsel_s3_ssl100
  40. 20
      support/toolchains.cfg/mipsel_s3_ssl102
  41. 12
      support/toolchains.cfg/native
  42. 20
      support/toolchains.cfg/openpli40
  43. 20
      support/toolchains.cfg/openwrt1505cc
  44. 18
      support/toolchains.cfg/osmio4k
  45. 18
      support/toolchains.cfg/solo4k
  46. 113
      support/translation/de
  47. 100
      support/translation/en
  48. 158
      support/translation/fr
  49. 149
      support/translation/it
  50. 114
      support/translation/nl
  51. 115
      support/translation/pl
  52. 150
      support/translation/pt
  53. 115
      support/translation/tr

266
s3

@ -0,0 +1,266 @@
#!/bin/bash
#VERSIONCOUNTER 20190205
SIMPLEVERSION="3.0 RC4";OIFS=$IFS;
export NCURSES_NO_UTF8_ACS=1;
#set dir_vars
workdir="$(pwd)";
svndir="$workdir/oscam-svn";
sdir="$workdir/support";
osdir="$sdir/os";
ldir="$sdir/logs";
adir="$sdir/archive";
configdir="$sdir/configs";
pdir="$sdir/patches";
profdir="$sdir/profiles";
bdir="$sdir/binaries";
dldir="$sdir/downloads";
fdir="$sdir/functions";
menudir="$sdir/menu_save";
bsvn="$sdir/backup_svn";
tcdir="$sdir/toolchains";
tdir="$sdir/translation";
tccfgdir="$sdir/toolchains.cfg";
bindir="$sdir/upx";PATH="$bindir:$PATH";
# create folders
mkdir -p support/{archive,binaries,configs,downloads,functions,logs,os,patches,profiles,toolchains,toolchains.cfg,translation,backup_svn,menu_save,upx} 2>/dev/null;
mkdir -p "$tcdir/native/bin" 2>/dev/null;
# create links
[ ! -L "$workdir/logs" ] && ln -sf "$ldir" "$workdir/logs" 2>/dev/null;
[ ! -L "$workdir/archive" ] && ln -sf "$adir" "$workdir/archive" 2>/dev/null;
[ ! -L "$workdir/patches" ] && ln -sf "$pdir" "$workdir/patches" 2>/dev/null;
[ ! -L "$workdir/binaries" ] && ln -sf "$bdir" "$workdir/binaries" 2>/dev/null;
#set arrays
unset INTERNAL_MODULES; unset ENABLED_MODULES; unset SHORT_MODULENAMES; unset INST_TCLIST;
unset DISABLED_MODULES; unset AVAI_TCLIST; unset ALL_MODULES_LONG; unset MISS_TCLIST;
unset SHORT_PROTOCOLS; unset SHORT_READERS; unset SHORT_CARD_READERS; unset SHORT_ADDONS;
unset SSH_CONF_CONTENT; unset USE_vars; unset USE_vars_disable;
declare -A USE_vars;
declare -A USE_vars_disable;
USE_vars[USE_TARGZ]=;
USE_vars[USE_PATCH]=;
USE_vars[USE_STAPI]=;
USE_vars[USE_STAPI5]=;
USE_vars[USE_CONFDIR]=;
USE_vars[USE_COMPRESS]=;
declare -A s3cfg_vars;
s3cfg_vars[USE_TARGZ]=0;
s3cfg_vars[DIRECTMENU]=0;
s3cfg_vars[USE_VERBOSE]=0;
s3cfg_vars[USE_COMPRESS]=0;
s3cfg_vars[S3_UPDATE_CHECK]=1;
s3cfg_vars[SAVE_LISTSMARGO]=1;
s3cfg_vars[NO_SVN_AUTOUPDATE]=0;
s3cfg_vars[delete_oscamdebugbinary]=1;
declare -a ENABLED_MODULES; declare -a DISABLED_MODULES; declare -a SHORT_MODULENAMES;
declare -a ALL_MODULES_LONG; declare -a AVAI_TCLIST; declare -a INST_TCLIST;
declare -a MISS_TCLIST; declare -a SHORT_ADDONS; declare -a SHORT_PROTOCOLS;
declare -a SHORT_READERS; declare -a SHORT_CARD_READERS; declare -A INTERNAL_MODULES;
#filled arrays
config_cases=( all addons protocols readers card_readers );
s3opts=( help cedit clean tccheck tcrepair upload lang_select loadonly checkout ssh_profiles syscheck sysinfo svnup menu get_patch tedit svnpatch profiles svnrestore ); # extendable with plugins
CUSTOM_CONFDIR="not_set";
#internal vars
OPENBOX=0;UFS916003=0;_verbose="";
_t1e="VG9vbGNoYWluLQ==";
_u1e="aHR0cDovL3N0cmVhbWJvYXJkLnR2L3diYjIvdHV0LXBpY3MvdG9vbGNoYWlucw==";
cposx=0;cposy=0;off="_off";on="_on";pf="empty";file_exist="0";run="0";
s3cfg="$configdir/simplebuild.config";loadprofile="no";menucall="no";
# Compiler settings
cc_warn="-W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition";
cc_opts="-ggdb -pipe -ffunction-sections -fdata-sections";
#default url
trunkurl="http://www.streamboard.tv/svn/oscam/trunk";[ -f "$workdir/oscamsource.url" ] && source "$workdir/oscamsource.url";
#trunkurl="http://www.streamboard.tv/svn/oscam-addons/modern";[ -f "$workdir/oscamsource.url" ] && source "$workdir/oscamsource.url";
#load translationlist
cd "$tdir";langsupport=(*);
#load functions and plugins
if [ -d "$fdir" ];then
cd "$fdir";
x=(*);
for i in "${x[@]}";do
source "$i";
plugin=$(awk '/^#simplebuild_plugin/ {printf $2}' $i);
[ ! -z "$plugin" ] && s3opts+=($plugin);
done;
else
echo "fail functions";
fi;
#begin
initializeANSI; #load colors
#check system
syscheck;[ ! "$sanity" == "1" ] && echo "sanity fail" && sleep 5 && bye;
#initialize simplebuild
_create_native_profile; # put native datas to toolchains and configs
auto_langset; # echo "info $txt_load_ok";
_get_config_con "$1"; # echo $addons;exit;
_create_module_arrays; # fill module arrays
_fill_tc_array; # get # AVAI_TCLIST # INST_TCLIST # MISS_TCLIST
read_s3cfg; # read simplebuild config
_set_dialog_types; # fill $gui vars
_systype; # check used uname
if [ ! -n "$1" ];then
[ "${s3cfg_vars[DIRECTMENU]}" == "1" ] && _dialog_checkout && exit;
_help;
exit;
else
for e in "${s3opts[@]}";do
if [ "$e" == "$1" ];then
case $e in
svnrestore|\
checkout|\
upload_cam) if [ ! -n "$2" ];then
eval "$e";
else
eval "$e" "$2";
fi;
exit;;
menu) if [ ! -n "$2" ];then
_dialog_checkout;
else
_dialog_checkout "$2";
fi;;
loadonly) if [ ! -n "$2" ];then
_nl;
clear;
s3logo;
echo -e "$r_l\n $txt_error: toolchain $txt_parameter $txt_missing\n""$w_l";
_help_toolchain;
sleep 2;
exit;
else
for t in "${AVAI_TCLIST[@]}";do
_tmp="$2";
[ "$t" == "$2" ] && _load_toolchain "$2" && break;
done;
if [ -f "$tc_dl" ];then
echo -e "$p_l\n\n toolchain for $_tmp loaded\n";
else
_nl;
clear;
s3logo;
echo -e "$r_l toolchain missing/error\n";
fi;
exit;
fi;;
tccheck) if [ ! -n "$2" ];then
_nl;
clear;
s3logo;
echo -e "$r_l\n $txt_error: toolchain $txt_parameter $txt_missing\n""$w_l";
_help_toolchain;echo -e "$W";
sleep 2;
exit;
else
for t in "${AVAI_TCLIST[@]}";do
[ "$t" == "$2" ] && _toolchain_check "$2" && break;
done;
_nl;
clear;
s3logo;
echo -e "$r_l\n toolchain missing/error\n$w_l";
_help_toolchain;echo -e "$W";
sleep 2;
exit;
fi;;
tcrepair) if [ ! -n "$2" ];then
_nl;
clear;
s3logo;
echo -e "$r_l\n $txt_error: toolchain $txt_parameter $txt_missing\n""$w_l";
_help_toolchain;echo -e "$W";
sleep 2;
exit;
else
_nl;clear;_toolchain_repair "$2";sleep 2;exit;
fi;;
upload) if [ ! -n "$2" ];then
_nl;
clear;
s3logo;
echo -e "$r_l\n $txt_error: $txt_parameter $txt_missing""$w_l";
menucall="yes";
ssh_profiles;
else
upload_cam "$2";
fi;
exit;;
tedit) if [ -n "$2" ];then
for telement in ${INST_TCLIST[@]};do
if [ "$telement" == "$2" ];then
tedit $2;
exit;
fi;
done;
clear;
s3logo;
echo -e $w_l"\n $2 toolchain not installed\n"$W;
fi;
exit;;
help) _help;
exit;;
*) eval "$e" "$2";
exit;;
esac;
fi;
done;
for t in "${AVAI_TCLIST[@]}";do
if [ "$t" == "$1" ];then
if [ "${2:0:3}" == "-p=" ] || [ "${2:0:3}" == "-P=" ];then
if [ -f "$profdir/${2#*=}" ];then
pf=$(cat "$profdir/${2#*=}");
pf_name="${2#*=}";
fi;
fi;
[ "$pf" == "empty" ] && c_m_d="$*" || c_m_d="all_off $pf $*"; # set only active module with profiles
for cmd in $c_m_d;do
if [ "${cmd:0:3}" == "-c=" ] || [ "${cmd:0:3}" == "-C=" ];then
CUSTOM_CONFDIR="${cmd#*=}";
fi;
for cc in "${config_cases[@]}";
do
[ "$cmd" == "$cc$on" ] && all_cc+=($cc$on) && break;
[ "$cmd" == "$cc$off" ] && all_cc+=($cc$off) && break;
done;
for sm in "${SHORT_MODULENAMES[@]}";
do
[ "$cmd" == "$sm" ] && all_cc+=($(get_module_name "$sm")$on) && break;
[ "$cmd" == "$sm$off" ] && all_cc+=($(get_module_name "$sm")$off) && break;
done;
for uvar in "${!USE_vars[@]}";
do
[ "$cmd" == "$uvar" ] && USE_vars[$uvar]="$uvar=1" && break;
[ "$cmd" == "$uvar$off" ] && USE_vars_disable[$uvar]="$uvar=1" && break;
done;
case $cmd in
OPENBOX) OPENBOX=1;;
UFS916003) UFS916003=1;;
USE_VERBOSE) s3cfg_vars[USE_VERBOSE]=1;;
esac;
done;
_pre_build "$t";
exit;
fi;
done;
_help;
fi;
exit;

795
support/configs/Makefile.master

@ -0,0 +1,795 @@
SHELL = /bin/sh
.SUFFIXES:
.SUFFIXES: .o .c
.PHONY: all tests help README.build README.config simple default debug config menuconfig allyesconfig allnoconfig defconfig clean distclean
VER := $(shell ./config.sh --oscam-version)
SVN_REV := $(shell ./config.sh --oscam-revision)
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
# This let's us use uname_S tests to detect cygwin
ifneq (,$(findstring CYGWIN,$(uname_S)))
uname_S := Cygwin
endif
LINKER_VER_OPT:=-Wl,--version
# Find OSX SDK
ifeq ($(uname_S),Darwin)
# Setting OSX_VER allows you to choose prefered version if you have
# two SDKs installed. For example if you have 10.6 and 10.5 installed
# you can choose 10.5 by using 'make USE_PCSC=1 OSX_VER=10.5'
# './config.sh --detect-osx-sdk-version' returns the newest SDK if
# SDK_VER is not set.
OSX_SDK := $(shell ./config.sh --detect-osx-sdk-version $(OSX_VER))
LINKER_VER_OPT:=-Wl,-v
endif
ifeq "$(shell ./config.sh --enabled WITH_SSL)" "Y"
override USE_SSL=1
override USE_LIBCRYPTO=1
endif
ifdef USE_SSL
override USE_LIBCRYPTO=1
endif
CONF_DIR = /usr/local/etc
LIB_PTHREAD = -lpthread
LIB_DL = -ldl
LIB_RT :=
ifeq ($(uname_S),Linux)
ifeq "$(shell ./config.sh --enabled CLOCKFIX)" "Y"
LIB_RT := -lrt
endif
endif
ifeq ($(uname_S),FreeBSD)
LIB_DL :=
endif
override STD_LIBS := -lm $(LIB_PTHREAD) $(LIB_DL) $(LIB_RT)
override STD_DEFS := -D'CS_SVN_VERSION="$(SVN_REV)"'
override STD_DEFS += -D'CS_CONFDIR="$(CONF_DIR)"'
# Compiler warnings
CC_WARN = -W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition
# Compiler optimizations
CC_OPTS = -O2 -ggdb -pipe -ffunction-sections -fdata-sections
CC = $(CROSS_DIR)$(CROSS)gcc
STRIP = $(CROSS_DIR)$(CROSS)strip
LDFLAGS = -Wl,--gc-sections
# The linker for powerpc have bug that prevents --gc-sections from working
# Check for the linker version and if it matches disable --gc-sections
# For more information about the bug see:
# http://cygwin.com/ml/binutils/2005-01/msg00103.html
# The LD output is saved into variable and then processed, because if
# the output is piped directly into another command LD creates 4 files
# in your /tmp directory and doesn't delete them.
LINKER_VER := $(shell set -e; VER="`$(CC) $(LINKER_VER_OPT) 2>&1`"; echo $$VER | head -1 | cut -d' ' -f5)
# dm500 toolchain
ifeq "$(LINKER_VER)" "20040727"
LDFLAGS :=
endif
# dm600/7000/7020 toolchain
ifeq "$(LINKER_VER)" "20041121"
LDFLAGS :=
endif
# The OS X linker do not support --gc-sections
ifeq ($(uname_S),Darwin)
LDFLAGS :=
endif
# The compiler knows for what target it compiles, so use this information
TARGET := $(shell $(CC) -dumpmachine 2>/dev/null)
# Process USE_ variables
DEFAULT_STAPI_LIB = -L./stapi -loscam_stapi
DEFAULT_STAPI5_LIB = -L./stapi -loscam_stapi5
DEFAULT_COOLAPI_LIB = -lnxp -lrt
DEFAULT_COOLAPI2_LIB = -llnxUKAL -llnxcssUsr -llnxscsUsr -llnxnotifyqUsr -llnxplatUsr -lrt
DEFAULT_SU980_LIB = -lentropic -lrt
DEFAULT_AZBOX_LIB = -Lextapi/openxcas -lOpenXCASAPI
DEFAULT_LIBCRYPTO_LIB = -lcrypto
DEFAULT_SSL_LIB = -lssl
ifeq ($(uname_S),Linux)
DEFAULT_LIBUSB_LIB = -lusb-1.0 -lrt
else
DEFAULT_LIBUSB_LIB = -lusb-1.0
endif
# Since FreeBSD 8 (released in 2010) they are using their own
# libusb that is API compatible to libusb but with different soname
ifeq ($(uname_S),FreeBSD)
DEFAULT_LIBUSB_LIB = -lusb
endif
ifeq ($(uname_S),Darwin)
DEFAULT_LIBUSB_FLAGS = -I/opt/local/include
DEFAULT_LIBUSB_LIB = -L/opt/local/lib -lusb-1.0
DEFAULT_PCSC_FLAGS = -isysroot $(OSX_SDK)
DEFAULT_PCSC_LIB = -isysroot $(OSX_SDK) -framework IOKit -framework CoreFoundation -framework PCSC
else
# Get the compiler's last include PATHs. Basicaly it is /usr/include
# but in case of cross compilation it might be something else.
#
# Since using -Iinc_path instructs the compiler to use inc_path
# (without add the toolchain system root) we need to have this hack
# to get the "real" last include path. Why we needs this?
# Well, the PCSC headers are broken and rely on having the directory
# that they are installed it to be in the include PATH.
#
# We can't just use -I/usr/include/PCSC because it won't work in
# case of cross compilation.
TOOLCHAIN_INC_DIR := $(strip $(shell echo | $(CC) -Wp,-v -xc - -fsyntax-only 2>&1 | grep include$ | tail -n 1))
DEFAULT_PCSC_FLAGS = -I$(TOOLCHAIN_INC_DIR)/PCSC -I$(TOOLCHAIN_INC_DIR)/../local/include/PCSC
DEFAULT_PCSC_LIB = -lpcsclite
endif
ifeq ($(uname_S),Cygwin)
DEFAULT_PCSC_LIB += -lwinscard
endif
DEFAULT_UTF8_FLAGS = -DWITH_UTF8
# Function to initialize USE related variables
# Usage: $(eval $(call prepare_use_flags,FLAG_NAME,PLUS_TARGET_TEXT))
define prepare_use_flags
override DEFAULT_$(1)_FLAGS:=$$(strip -DWITH_$(1)=1 $$(DEFAULT_$(1)_FLAGS))
ifdef USE_$(1)
$(1)_FLAGS:=$$(DEFAULT_$(1)_FLAGS)
$(1)_CFLAGS:=$$($(1)_FLAGS)
$(1)_LDFLAGS:=$$($(1)_FLAGS)
$(1)_LIB:=$$(DEFAULT_$(1)_LIB)
ifneq "$(2)" ""
override PLUS_TARGET:=$$(PLUS_TARGET)-$(2)
endif
override USE_CFLAGS+=$$($(1)_CFLAGS)
override USE_LDFLAGS+=$$($(1)_LDFLAGS)
override USE_LIBS+=$$($(1)_LIB)
override USE_FLAGS+=$$(if $$(USE_$(1)),USE_$(1))
endif
endef
# Initialize USE variables
$(eval $(call prepare_use_flags,STAPI,stapi))
$(eval $(call prepare_use_flags,STAPI5,stapi5))
$(eval $(call prepare_use_flags,COOLAPI,coolapi))
$(eval $(call prepare_use_flags,COOLAPI2,coolapi2))
$(eval $(call prepare_use_flags,SU980,su980))
$(eval $(call prepare_use_flags,AZBOX,azbox))
$(eval $(call prepare_use_flags,MCA,mca))
$(eval $(call prepare_use_flags,SSL,ssl))
$(eval $(call prepare_use_flags,LIBCRYPTO,))
$(eval $(call prepare_use_flags,LIBUSB,libusb))
$(eval $(call prepare_use_flags,PCSC,pcsc))
$(eval $(call prepare_use_flags,UTF8))
# Add PLUS_TARGET and EXTRA_TARGET to TARGET
ifdef NO_PLUS_TARGET
override TARGET := $(TARGET)$(EXTRA_TARGET)
else
override TARGET := $(TARGET)$(PLUS_TARGET)$(EXTRA_TARGET)
endif
EXTRA_CFLAGS = $(EXTRA_FLAGS)
EXTRA_LDFLAGS = $(EXTRA_FLAGS)
# Add USE_xxx, EXTRA_xxx and STD_xxx vars
override CC_WARN += $(EXTRA_CC_WARN)
override CC_OPTS += $(EXTRA_CC_OPTS)
override CFLAGS += $(USE_CFLAGS) $(EXTRA_CFLAGS)
override LDFLAGS += $(USE_LDFLAGS) $(EXTRA_LDFLAGS)
override LIBS += $(USE_LIBS) $(EXTRA_LIBS) $(STD_LIBS)
override STD_DEFS += -D'CS_TARGET="$(TARGET)"'
# Setup quiet build
Q =
SAY = @true
ifndef V
Q = @
NP = --no-print-directory
SAY = @echo
endif
BINDIR := Distribution
override BUILD_DIR := build
OBJDIR := $(BUILD_DIR)/$(TARGET)
# Include config.mak which contains variables for all enabled modules
# These variables will be used to select only needed files for compilation
-include $(OBJDIR)/config.mak
OSCAM_BIN := $(BINDIR)/oscam-$(VER)$(SVN_REV)-$(subst cygwin,cygwin.exe,$(TARGET))
TESTS_BIN := tests.bin
LIST_SMARGO_BIN := $(BINDIR)/list_smargo-$(VER)$(SVN_REV)-$(subst cygwin,cygwin.exe,$(TARGET))
# Build list_smargo-.... only when WITH_LIBUSB build is requested.
ifndef USE_LIBUSB
override LIST_SMARGO_BIN =
endif
SRC-$(CONFIG_LIB_AES) += cscrypt/aes.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_add.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_asm.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_ctx.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_div.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_exp.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_lib.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_mul.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_print.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_shift.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_sqr.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_word.c
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/mem.c
SRC-$(CONFIG_LIB_DES) += cscrypt/des.c
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_cbc.c
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_ecb.c
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_skey.c
SRC-y += cscrypt/md5.c
SRC-$(CONFIG_LIB_RC6) += cscrypt/rc6.c
SRC-$(CONFIG_LIB_SHA1) += cscrypt/sha1.c
SRC-$(CONFIG_LIB_MDC2) += cscrypt/mdc2.c
SRC-$(CONFIG_LIB_FAST_AES) += cscrypt/fast_aes.c
SRC-$(CONFIG_LIB_SHA256) += cscrypt/sha256.c
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/atr.c
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/icc_async.c
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/io_serial.c
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/protocol_t0.c
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/protocol_t1.c
SRC-$(CONFIG_CARDREADER_INTERNAL_AZBOX) += csctapi/ifd_azbox.c
SRC-$(CONFIG_CARDREADER_INTERNAL_COOLAPI) += csctapi/ifd_cool.c
SRC-$(CONFIG_CARDREADER_INTERNAL_COOLAPI2) += csctapi/ifd_cool.c
SRC-$(CONFIG_CARDREADER_DB2COM) += csctapi/ifd_db2com.c
SRC-$(CONFIG_CARDREADER_MP35) += csctapi/ifd_mp35.c
SRC-$(CONFIG_CARDREADER_PCSC) += csctapi/ifd_pcsc.c
SRC-$(CONFIG_CARDREADER_PHOENIX) += csctapi/ifd_phoenix.c
SRC-$(CONFIG_CARDREADER_DRECAS) += csctapi/ifd_drecas.c
SRC-$(CONFIG_CARDREADER_SC8IN1) += csctapi/ifd_sc8in1.c
SRC-$(CONFIG_CARDREADER_INTERNAL_SCI) += csctapi/ifd_sci.c
SRC-$(CONFIG_CARDREADER_SMARGO) += csctapi/ifd_smargo.c
SRC-$(CONFIG_CARDREADER_SMART) += csctapi/ifd_smartreader.c
SRC-$(CONFIG_CARDREADER_STINGER) += csctapi/ifd_stinger.c
SRC-$(CONFIG_CARDREADER_STAPI) += csctapi/ifd_stapi.c
SRC-$(CONFIG_CARDREADER_STAPI5) += csctapi/ifd_stapi.c
SRC-$(CONFIG_LIB_MINILZO) += minilzo/minilzo.c
SRC-$(CONFIG_CS_ANTICASC) += module-anticasc.c
SRC-$(CONFIG_CS_CACHEEX) += module-cacheex.c
SRC-$(CONFIG_MODULE_CAMD33) += module-camd33.c
SRC-$(CONFIG_CS_CACHEEX) += module-camd35-cacheex.c
SRC-$(sort $(CONFIG_MODULE_CAMD35) $(CONFIG_MODULE_CAMD35_TCP)) += module-camd35.c
SRC-$(CONFIG_CS_CACHEEX) += module-cccam-cacheex.c
SRC-$(CONFIG_MODULE_CCCAM) += module-cccam.c
SRC-$(CONFIG_MODULE_CCCSHARE) += module-cccshare.c
SRC-$(CONFIG_MODULE_CONSTCW) += module-constcw.c
SRC-$(CONFIG_CS_CACHEEX) += module-csp.c
SRC-$(CONFIG_CW_CYCLE_CHECK) += module-cw-cycle-check.c
SRC-$(CONFIG_WITH_AZBOX) += module-dvbapi-azbox.c
SRC-$(CONFIG_WITH_MCA) += module-dvbapi-mca.c
### SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi.c
### experimental reversed API
SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi-legacy.c
SRC-$(CONFIG_WITH_COOLAPI2) += module-dvbapi-coolapi.c
SRC-$(CONFIG_WITH_SU980) += module-dvbapi-coolapi.c
SRC-$(CONFIG_WITH_STAPI) += module-dvbapi-stapi.c
SRC-$(CONFIG_WITH_STAPI5) += module-dvbapi-stapi5.c
SRC-$(CONFIG_HAVE_DVBAPI) += module-dvbapi-chancache.c
SRC-$(CONFIG_HAVE_DVBAPI) += module-dvbapi.c
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-helper.c
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-sms.c
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-remm.c
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-cards.c
SRC-$(CONFIG_MODULE_GBOX) += module-gbox.c
SRC-$(CONFIG_IRDETO_GUESSING) += module-ird-guess.c
SRC-$(CONFIG_LCDSUPPORT) += module-lcd.c
SRC-$(CONFIG_LEDSUPPORT) += module-led.c
SRC-$(CONFIG_MODULE_MONITOR) += module-monitor.c
SRC-$(CONFIG_MODULE_NEWCAMD) += module-newcamd.c
SRC-$(CONFIG_MODULE_NEWCAMD) += module-newcamd-des.c
SRC-$(CONFIG_MODULE_PANDORA) += module-pandora.c
SRC-$(CONFIG_MODULE_GHTTP) += module-ghttp.c
SRC-$(CONFIG_MODULE_RADEGAST) += module-radegast.c
SRC-$(CONFIG_MODULE_SCAM) += module-scam.c
SRC-$(CONFIG_MODULE_SERIAL) += module-serial.c
SRC-$(CONFIG_WITH_LB) += module-stat.c
SRC-$(CONFIG_WEBIF) += module-webif-lib.c
SRC-$(CONFIG_WEBIF) += module-webif-tpl.c
SRC-$(CONFIG_WEBIF) += module-webif.c
SRC-$(CONFIG_WEBIF) += webif/pages.c
SRC-$(CONFIG_WITH_CARDREADER) += reader-common.c
SRC-$(CONFIG_READER_BULCRYPT) += reader-bulcrypt.c
SRC-$(CONFIG_READER_CONAX) += reader-conax.c
SRC-$(CONFIG_READER_CRYPTOWORKS) += reader-cryptoworks.c
SRC-$(CONFIG_READER_DGCRYPT) += reader-dgcrypt.c
SRC-$(CONFIG_READER_DRE) += reader-dre.c
SRC-$(CONFIG_READER_DRE) += reader-dre-cas.c
SRC-$(CONFIG_READER_DRE) += reader-dre-common.c
SRC-$(CONFIG_READER_DRE) += reader-dre-st20.c
SRC-$(CONFIG_READER_GRIFFIN) += reader-griffin.c
SRC-$(CONFIG_READER_IRDETO) += reader-irdeto.c
SRC-$(CONFIG_READER_NAGRA_COMMON) += reader-nagra-common.c
SRC-$(CONFIG_READER_NAGRA) += reader-nagra.c
SRC-$(CONFIG_READER_NAGRA_MERLIN) += reader-nagracak7.c
SRC-$(CONFIG_READER_SECA) += reader-seca.c
SRC-$(CONFIG_READER_TONGFANG) += reader-tongfang.c
SRC-$(CONFIG_READER_VIACCESS) += reader-viaccess.c
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard-common.c
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard1.c
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard12.c
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard2.c
SRC-y += oscam-aes.c
SRC-y += oscam-array.c
SRC-y += oscam-hashtable.c
SRC-y += oscam-cache.c
SRC-y += oscam-chk.c
SRC-y += oscam-client.c
SRC-y += oscam-conf.c
SRC-y += oscam-conf-chk.c
SRC-y += oscam-conf-mk.c
SRC-y += oscam-config-account.c
SRC-y += oscam-config-global.c
SRC-y += oscam-config-reader.c
SRC-y += oscam-config.c
SRC-y += oscam-ecm.c
SRC-y += oscam-emm.c
SRC-y += oscam-emm-cache.c
SRC-y += oscam-failban.c
SRC-y += oscam-files.c
SRC-y += oscam-garbage.c
SRC-y += oscam-lock.c
SRC-y += oscam-log.c
SRC-y += oscam-log-reader.c
SRC-y += oscam-net.c
SRC-y += oscam-llist.c
SRC-y += oscam-reader.c
SRC-y += oscam-simples.c
SRC-y += oscam-string.c
SRC-y += oscam-time.c
SRC-y += oscam-work.c
SRC-y += oscam.c
# config.c is automatically generated by config.sh in OBJDIR
SRC-y += config.c
ifdef BUILD_TESTS
SRC-y += tests.c
override STD_DEFS += -DBUILD_TESTS=1
endif
SRC := $(SRC-y)
OBJ := $(addprefix $(OBJDIR)/,$(subst .c,.o,$(SRC)))
SRC := $(subst config.c,$(OBJDIR)/config.c,$(SRC))
# The default build target rebuilds the config.mak if needed and then
# starts the compilation.
all:
@./config.sh --use-flags "$(USE_FLAGS)" --objdir "$(OBJDIR)" --make-config.mak
@-mkdir -p $(OBJDIR)/cscrypt $(OBJDIR)/csctapi $(OBJDIR)/minilzo $(OBJDIR)/webif
@-printf "\
+-------------------------------------------------------------------------------\n\
| OSCam ver: $(VER) rev: $(SVN_REV) target: $(TARGET)\n\
| Tools:\n\
| CROSS = $(CROSS_DIR)$(CROSS)\n\
| CC = $(CC)\n\
| Settings:\n\
| CONF_DIR = $(CONF_DIR)\n\
| CC_OPTS = $(strip $(CC_OPTS))\n\
| CC_WARN = $(strip $(CC_WARN))\n\
| CFLAGS = $(strip $(CFLAGS))\n\
| LDFLAGS = $(strip $(LDFLAGS))\n\
| LIBS = $(strip $(LIBS))\n\
| UseFlags = $(addsuffix =1,$(USE_FLAGS))\n\
| Config:\n\
| Addons : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled addons)\n\
| Protocols: $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled protocols | sed -e 's|MODULE_||g')\n\
| Readers : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled readers | sed -e 's|READER_||g')\n\
| CardRdrs : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled card_readers | sed -e 's|CARDREADER_||g')\n\
| Compiler : $(shell $(CC) --version 2>/dev/null | head -n 1)\n\
| Config : $(OBJDIR)/config.mak\n\
| Binary : $(OSCAM_BIN)\n\
+-------------------------------------------------------------------------------\n"
ifeq "$(shell ./config.sh --enabled WEBIF)" "Y"
@$(MAKE) --no-print-directory --quiet -C webif
endif
@$(MAKE) --no-print-directory $(OSCAM_BIN) $(LIST_SMARGO_BIN)
$(OSCAM_BIN).debug: $(OBJ)
$(SAY) "LINK $@"
$(Q)$(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $@
$(OSCAM_BIN): $(OSCAM_BIN).debug
$(SAY) "STRIP $@"
$(Q)cp $(OSCAM_BIN).debug $(OSCAM_BIN)
$(Q)$(STRIP) $(OSCAM_BIN)
$(LIST_SMARGO_BIN): utils/list_smargo.c
$(SAY) "BUILD $@"
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) $(LDFLAGS) utils/list_smargo.c $(LIBS) -o $@
$(OBJDIR)/config.o: $(OBJDIR)/config.c
$(SAY) "CONF $<"
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) -c $< -o $@
$(OBJDIR)/%.o: %.c Makefile
@$(CC) -MP -MM -MT $@ -o $(subst .o,.d,$@) $<
$(SAY) "CC $<"
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) -c $< -o $@
-include $(subst .o,.d,$(OBJ))
tests:
@-$(MAKE) --no-print-directory BUILD_TESTS=1 OSCAM_BIN=$(TESTS_BIN)
@-touch oscam.c
# The above is really hideous hack :-) If we don't force oscam.c recompilation
# after we've build the tests binary, the next "normal" compilation would fail
# because there would be no run_tests() function. So the touch is there to
# ensure oscam.c would be recompiled.
config:
$(SHELL) ./config.sh --gui
menuconfig: config
allyesconfig:
@echo "Enabling all config options."
@-$(SHELL) ./config.sh --enable all
allnoconfig:
@echo "Disabling all config options."
@-$(SHELL) ./config.sh --disable all
defconfig:
@echo "Restoring default config."
@-$(SHELL) ./config.sh --restore
clean:
@-for FILE in $(BUILD_DIR)/* $(TESTS_BIN) $(TESTS_BIN).debug; do \
echo "RM $$FILE"; \
rm -rf $$FILE; \
done
@-rm -rf $(BUILD_DIR) lib
distclean: clean
@-for FILE in $(BINDIR)/list_smargo-* $(BINDIR)/oscam-$(VER)*; do \
echo "RM $$FILE"; \
rm -rf $$FILE; \
done
@-$(MAKE) --no-print-directory --quiet -C webif clean
README.build:
@echo "Extracting 'make help' into $@ file."
@-printf "\
** This file is generated from 'make help' output, do not edit it. **\n\
\n\
" > $@
@-$(MAKE) --no-print-directory help >> $@
@echo "Done."
README.config:
@echo "Extracting 'config.sh --help' into $@ file."
@-printf "\
** This file is generated from 'config.sh --help' output, do not edit it. **\n\
\n\
" > $@
@-./config.sh --help >> $@
@echo "Done."
help:
@-printf "\
OSCam build system documentation\n\
================================\n\
\n\
Build variables:\n\
The build variables are set on the make command line and control the build\n\
process. Setting the variables lets you enable additional features, request\n\
extra libraries and more. Currently recognized build variables are:\n\
\n\
CROSS=prefix - Set tools prefix. This variable is used when OScam is being\n\
cross compiled. For example if you want to cross compile\n\
for SH4 architecture you can run: 'make CROSS=sh4-linux-'\n\
If you don't have the directory where cross compilers are\n\
in your PATH you can run:\n\
'make CROSS=/opt/STM/STLinux-2.3/devkit/sh4/bin/sh4-linux-'\n\
\n\
CROSS_DIR=dir - Set tools directory. This variable is added in front of\n\
CROSS variable. CROSS_DIR is useful if you want to use\n\
predefined targets that are setting CROSS, but you don't have\n\
the cross compilers in your PATH. For example:\n\
'make sh4 CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/'\n\
'make dm500 CROSS_DIR=/opt/cross/dm500/cdk/bin/'\n\
\n\
CONF_DIR=/dir - Set OSCam config directory. For example to change config\n\
directory to /etc run: 'make CONF_DIR=/etc'\n\
The default config directory is: '$(CONF_DIR)'\n\
\n\
CC_OPTS=text - This variable holds compiler optimization parameters.\n\
Default CC_OPTS value is:\n\
'$(CC_OPTS)'\n\
To add text to this variable set EXTRA_CC_OPTS=text.\n\
\n\
CC_WARN=text - This variable holds compiler warning parameters.\n\
Default CC_WARN value is:\n\
'$(CC_WARN)'\n\
To add text to this variable set EXTRA_CC_WARN=text.\n\
\n\
V=1 - Request build process to print verbose messages. By\n\
default the only messages that are shown are simple info\n\
what is being compiled. To request verbose build run:\n\
'make V=1'\n\
\n\
Extra build variables:\n\
These variables add text to build variables. They are useful if you want\n\
to add additional options to already set variables without overwriting them\n\
Currently defined EXTRA_xxx variables are:\n\
\n\
EXTRA_CC_OPTS - Add text to CC_OPTS.\n\
Example: 'make EXTRA_CC_OPTS=-Os'\n\
\n\
EXTRA_CC_WARN - Add text to CC_WARN.\n\
Example: 'make EXTRA_CC_WARN=-Wshadow'\n\
\n\
EXTRA_TARGET - Add text to TARGET.\n\
Example: 'make EXTRA_TARGET=-private'\n\
\n\
EXTRA_CFLAGS - Add text to CFLAGS (affects compilation).\n\
Example: 'make EXTRA_CFLAGS=\"-DBLAH=1 -I/opt/local\"'\n\
\n\
EXTRA_LDFLAGS - Add text to LDFLAGS (affects linking).\n\
Example: 'make EXTRA_LDFLAGS=-Llibdir'\n\
\n\
EXTRA_FLAGS - Add text to both EXTRA_CFLAGS and EXTRA_LDFLAGS.\n\
Example: 'make EXTRA_FLAGS=-DBLAH=1'\n\
\n\
EXTRA_LIBS - Add text to LIBS (affects linking).\n\
Example: 'make EXTRA_LIBS=\"-L./stapi -loscam_stapi\"'\n\
\n\
Use flags:\n\
Use flags are used to request additional libraries or features to be used\n\
by OSCam. Currently defined USE_xxx flags are:\n\
\n\
USE_LIBUSB=1 - Request linking with libusb. The variables that control\n\
USE_LIBUSB=1 build are:\n\
LIBUSB_FLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
LIBUSB_CFLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
LIBUSB_LDFLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
LIBUSB_LIB='$(DEFAULT_LIBUSB_LIB)'\n\
Using USE_LIBUSB=1 adds to '-libusb' to PLUS_TARGET.\n\
To build with static libusb, set the variable LIBUSB_LIB\n\
to contain full path of libusb library. For example:\n\
make USE_LIBUSB=1 LIBUSB_LIB=/usr/lib/libusb-1.0.a\n\
\n\
USE_PCSC=1 - Request linking with PCSC. The variables that control\n\
USE_PCSC=1 build are:\n\
PCSC_FLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
PCSC_CFLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
PCSC_LDFLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
PCSC_LIB='$(DEFAULT_PCSC_LIB)'\n\
Using USE_PCSC=1 adds to '-pcsc' to PLUS_TARGET.\n\
To build with static PCSC, set the variable PCSC_LIB\n\
to contain full path of PCSC library. For example:\n\
make USE_PCSC=1 PCSC_LIB=/usr/local/lib/libpcsclite.a\n\
\n\
USE_STAPI=1 - Request linking with STAPI. The variables that control\n\
USE_STAPI=1 build are:\n\
STAPI_FLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
STAPI_CFLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
STAPI_LDFLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
STAPI_LIB='$(DEFAULT_STAPI_LIB)'\n\
Using USE_STAPI=1 adds to '-stapi' to PLUS_TARGET.\n\
In order for USE_STAPI to work you have to create stapi\n\
directory and put liboscam_stapi.a file in it.\n\
\n\
USE_STAPI5=1 - Request linking with STAPI5. The variables that control\n\
USE_STAPI5=1 build are:\n\
STAPI5_FLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
STAPI5_CFLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
STAPI5_LDFLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
STAPI5_LIB='$(DEFAULT_STAPI5_LIB)'\n\
Using USE_STAPI5=1 adds to '-stapi' to PLUS_TARGET.\n\
In order for USE_STAPI5 to work you have to create stapi\n\
directory and put liboscam_stapi5.a file in it.\n\
\n\
USE_COOLAPI=1 - Request support for Coolstream API (libnxp) aka NeutrinoHD\n\
box. The variables that control the build are:\n\
COOLAPI_FLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
COOLAPI_CFLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
COOLAPI_LDFLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
COOLAPI_LIB='$(DEFAULT_COOLAPI_LIB)'\n\
Using USE_COOLAPI=1 adds to '-coolapi' to PLUS_TARGET.\n\
In order for USE_COOLAPI to work you have to have libnxp.so\n\
library in your cross compilation toolchain.\n\
\n\
USE_COOLAPI2=1 - Request support for Coolstream API aka NeutrinoHD\n\
box. The variables that control the build are:\n\
COOLAPI_FLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
COOLAPI_CFLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
COOLAPI_LDFLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
COOLAPI_LIB='$(DEFAULT_COOLAPI2_LIB)'\n\
Using USE_COOLAPI2=1 adds to '-coolapi2' to PLUS_TARGET.\n\
In order for USE_COOLAPI2 to work you have to have liblnxUKAL.so,\n\
liblnxcssUsr.so, liblnxscsUsr.so, liblnxnotifyqUsr.so, liblnxplatUsr.so\n\
library in your cross compilation toolchain.\n\
\n\
USE_SU980=1 - Request support for SU980 API (libentropic) aka Enimga2 arm\n\
box. The variables that control the build are:\n\
COOLAPI_FLAGS='$(DEFAULT_SU980_FLAGS)'\n\
COOLAPI_CFLAGS='$(DEFAULT_SU980_FLAGS)'\n\
COOLAPI_LDFLAGS='$(DEFAULT_SU980_FLAGS)'\n\
COOLAPI_LIB='$(DEFAULT_SU980_LIB)'\n\
Using USE_SU980=1 adds to '-su980' to PLUS_TARGET.\n\
In order for USE_SU980 to work you have to have libentropic.a\n\
library in your cross compilation toolchain.\n\
\n\
USE_AZBOX=1 - Request support for AZBOX (openxcas)\n\
box. The variables that control the build are:\n\
AZBOX_FLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
AZBOX_CFLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
AZBOX_LDFLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
AZBOX_LIB='$(DEFAULT_AZBOX_LIB)'\n\
Using USE_AZBOX=1 adds to '-azbox' to PLUS_TARGET.\n\
extapi/openxcas/libOpenXCASAPI.a library that is shipped\n\
with OSCam is compiled for MIPSEL.\n\
\n\
USE_MCA=1 - Request support for Matrix Cam Air (MCA).\n\
The variables that control the build are:\n\
MCA_FLAGS='$(DEFAULT_MCA_FLAGS)'\n\
MCA_CFLAGS='$(DEFAULT_MCA_FLAGS)'\n\
MCA_LDFLAGS='$(DEFAULT_MCA_FLAGS)'\n\
Using USE_MCA=1 adds to '-mca' to PLUS_TARGET.\n\
\n\
USE_LIBCRYPTO=1 - Request linking with libcrypto instead of using OSCam\n\
internal crypto functions. USE_LIBCRYPTO is automatically\n\
enabled if the build is configured with SSL support. The\n\
variables that control USE_LIBCRYPTO=1 build are:\n\
LIBCRYPTO_FLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
LIBCRYPTO_CFLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
LIBCRYPTO_LDFLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
LIBCRYPTO_LIB='$(DEFAULT_LIBCRYPTO_LIB)'\n\
\n\
USE_SSL=1 - Request linking with libssl. USE_SSL is automatically\n\
enabled if the build is configured with SSL support. The\n\
variables that control USE_SSL=1 build are:\n\
SSL_FLAGS='$(DEFAULT_SSL_FLAGS)'\n\
SSL_CFLAGS='$(DEFAULT_SSL_FLAGS)'\n\
SSL_LDFLAGS='$(DEFAULT_SSL_FLAGS)'\n\
SSL_LIB='$(DEFAULT_SSL_LIB)'\n\
Using USE_SSL=1 adds to '-ssl' to PLUS_TARGET.\n\
\n\
USE_UTF8=1 - Request UTF-8 enabled webif by default.\n\
\n\
Automatically intialized variables:\n\
\n\
TARGET=text - This variable is auto detected by using the compiler's\n\
-dumpmachine output. To see the target on your machine run:\n\
'gcc -dumpmachine'\n\
\n\
PLUS_TARGET - This variable is added to TARGET and it is set depending\n\
on the chosen USE_xxx flags. To disable adding\n\
PLUS_TARGET to TARGET, set NO_PLUS_TARGET=1\n\
\n\
BINDIR - The directory where final oscam binary would be put. The\n\
default is: $(BINDIR)\n\
\n\
OSCAM_BIN=text - This variable controls how the oscam binary will be named.\n\
Default OSCAM_BIN value is:\n\
'BINDIR/oscam-VERSVN_REV-TARGET'\n\
Once the variables (BINDIR, VER, SVN_REV and TARGET) are\n\
replaced, the resulting filename can look like this:\n\
'Distribution/oscam-1.20-unstable_svn7404-i486-slackware-linux-static'\n\
For example you can run: 'make OSCAM_BIN=my-oscam'\n\
\n\
Binaries compiled and run during the OSCam build:\n\
\n\
OSCam builds webif/pages_gen binary that is run by the build system to\n\
generate file that holds web pages. To build this binary two variables\n\
are used:\n\
\n\
HOSTCC=gcc - The compiler used for building binaries that are run on\n\
the build machine (the host). Default: gcc\n\
To use clang for example run: make CC=clang HOSTCC=clang\n\
\n\
HOSTCFLAGS=xxx - The CFLAGS passed to HOSTCC. See webif/Makefile for the\n\
default host cflags.\n\
\n\
Config targets:\n\
make config - Start configuration utility.\n\
make allyesconfig - Enable all configuration options.\n\
make allnoconfig - Disable all configuration options.\n\
make defconfig - Restore default configuration options.\n\
\n\
Cleaning targets:\n\
make clean - Remove '$(BUILD_DIR)' directory which contains compiled\n\
object files.\n\
make distclean - Executes clean target and also removes binary files\n\
located in '$(BINDIR)' directory.\n\
\n\
Build system files:\n\
config.sh - OSCam configuration. Run 'config.sh --help' to see\n\
available parameters or 'make config' to start GUI\n\
configuratior.\n\
Makefile - Main build system file.\n\
Makefile.extra - Contains predefined targets. You can use this file\n\
as example on how to use the build system.\n\
Makefile.local - This file is included in Makefile and allows creation\n\
of local build system targets. See Makefile.extra for\n\
examples.\n\
\n\
Here are some of the interesting predefined targets in Makefile.extra.\n\
To use them run 'make target ...' where ... can be any extra flag. For\n\
example if you want to compile OSCam for Dreambox (DM500) but do not\n\
have the compilers in the path, you can run:\n\
make dm500 CROSS_DIR=/opt/cross/dm500/cdk/bin/\n\
\n\
Predefined targets in Makefile.extra:\n\
\n\
make libusb - Builds OSCam with libusb support\n\
make pcsc - Builds OSCam with PCSC support\n\
make pcsc-libusb - Builds OSCam with PCSC and libusb support\n\
make dm500 - Builds OSCam for Dreambox (DM500)\n\
make sh4 - Builds OSCam for SH4 boxes\n\
make azbox - Builds OSCam for AZBox STBs\n\
make mca - Builds OSCam for Matrix Cam Air (MCA)\n\
make coolstream - Builds OSCam for Coolstream HD1\n\
make coolstream2 - Builds OSCam for Coolstream HD2\n\
make dockstar - Builds OSCam for Dockstar\n\
make qboxhd - Builds OSCam for QBoxHD STBs\n\
make opensolaris - Builds OSCam for OpenSolaris\n\
make uclinux - Builds OSCam for m68k uClinux\n\
\n\
Predefined targets for static builds:\n\
make static - Builds OSCam statically\n\
make static-libusb - Builds OSCam with libusb linked statically\n\
make static-libcrypto - Builds OSCam with libcrypto linked statically\n\
make static-ssl - Builds OSCam with SSL support linked statically\n\
\n\
Developer targets:\n\
make tests - Builds '$(TESTS_BIN)' binary\n\
\n\
Examples:\n\
Build OSCam for SH4 (the compilers are in the path):\n\
make CROSS=sh4-linux-\n\n\
Build OSCam for SH4 (the compilers are in not in the path):\n\
make sh4 CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/\n\
make CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/ CROSS=sh4-linux-\n\
make CROSS=/opt/STM/STLinux-2.3/devkit/sh4/bin/sh4-linux-\n\n\
Build OSCam for SH4 with STAPI:\n\
make CROSS=sh4-linux- USE_STAPI=1\n\n\
Build OSCam for SH4 with STAPI and changed configuration directory:\n\
make CROSS=sh4-linux- USE_STAPI=1 CONF_DIR=/var/tuxbox/config\n\n\
Build OSCam for ARM with COOLAPI (coolstream aka NeutrinoHD):\n\
make CROSS=arm-cx2450x-linux-gnueabi- USE_COOLAPI=1\n\n\
Build OSCam for ARM with COOLAPI2 (coolstream aka NeutrinoHD):\n\
make CROSS=arm-pnx8400-linux-uclibcgnueabi- USE_COOLAPI2=1\n\n\
Build OSCam for MIPSEL with AZBOX support:\n\
make CROSS=mipsel-linux-uclibc- USE_AZBOX=1\n\n\
Build OSCam for ARM with MCA support:\n\
make CROSS=arm-none-linux-gnueabi- USE_MCA=1\n\n\
Build OSCam with libusb and PCSC:\n\
make USE_LIBUSB=1 USE_PCSC=1\n\n\
Build OSCam with static libusb:\n\
make USE_LIBUSB=1 LIBUSB_LIB=\"/usr/lib/libusb-1.0.a\"\n\n\
Build OSCam with static libcrypto:\n\
make USE_LIBCRYPTO=1 LIBCRYPTO_LIB=\"/usr/lib/libcrypto.a\"\n\n\
Build OSCam with static libssl and libcrypto:\n\
make USE_SSL=1 SSL_LIB=\"/usr/lib/libssl.a\" LIBCRYPTO_LIB=\"/usr/lib/libcrypto.a\"\n\n\
Build with verbose messages and size optimizations:\n\
make V=1 CC_OPTS=-Os\n\n\
Build and set oscam file name:\n\
make OSCAM_BIN=oscam\n\n\
Build and set oscam file name depending on revision:\n\
make OSCAM_BIN=oscam-\`./config.sh -r\`\n\n\
"
simple: all
default: all
debug: all
-include Makefile.extra
-include Makefile.local

1
support/configs/compiler_option

@ -0,0 +1 @@
-O1

3
support/configs/compiler_option.txt

@ -0,0 +1,3 @@
-O0 optimization for time
-O2 optimization (oscam default)
-Os optimization for code size

752
support/configs/config.sh.master

@ -0,0 +1,752 @@
#!/bin/sh
addons="WEBIF WEBIF_LIVELOG WEBIF_JQUERY TOUCH WITH_SSL HAVE_DVBAPI WITH_NEUTRINO READ_SDT_CHARSETS IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CS_CACHEEX CW_CYCLE_CHECK LCDSUPPORT LEDSUPPORT CLOCKFIX IPV6SUPPORT"
protocols="MODULE_CAMD33 MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_CCCSHARE MODULE_GBOX MODULE_RADEGAST MODULE_SCAM MODULE_SERIAL MODULE_CONSTCW MODULE_PANDORA MODULE_GHTTP"
readers="READER_NAGRA READER_NAGRA_MERLIN READER_IRDETO READER_CONAX READER_CRYPTOWORKS READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG READER_BULCRYPT READER_GRIFFIN READER_DGCRYPT"
card_readers="CARDREADER_PHOENIX CARDREADER_INTERNAL CARDREADER_SC8IN1 CARDREADER_MP35 CARDREADER_SMARGO CARDREADER_DB2COM CARDREADER_STAPI CARDREADER_STAPI5 CARDREADER_STINGER CARDREADER_DRECAS"
defconfig="
CONFIG_WEBIF=y
CONFIG_WEBIF_LIVELOG=y
CONFIG_WEBIF_JQUERY=y
CONFIG_TOUCH=y
# CONFIG_WITH_SSL=n
CONFIG_HAVE_DVBAPI=y
# CONFIG_WITH_NEUTRINO=n
CONFIG_READ_SDT_CHARSETS=y
CONFIG_IRDETO_GUESSING=y
CONFIG_CS_ANTICASC=y
CONFIG_WITH_DEBUG=y
CONFIG_MODULE_MONITOR=y
CONFIG_WITH_LB=y
CONFIG_CS_CACHEEX=y
CONFIG_CW_CYCLE_CHECK=y
# CONFIG_LCDSUPPORT=n
# CONFIG_LEDSUPPORT=n
CONFIG_CLOCKFIX=y
# CONFIG_IPV6SUPPORT=n
# CONFIG_MODULE_CAMD33=n
CONFIG_MODULE_CAMD35=y
CONFIG_MODULE_CAMD35_TCP=y
CONFIG_MODULE_NEWCAMD=y
CONFIG_MODULE_CCCAM=y
CONFIG_MODULE_CCCSHARE=y
CONFIG_MODULE_GBOX=y
CONFIG_MODULE_RADEGAST=y
CONFIG_MODULE_SERIAL=y
CONFIG_MODULE_CONSTCW=y
CONFIG_MODULE_PANDORA=y
CONFIG_MODULE_SCAM=y
CONFIG_MODULE_GHTTP=y
CONFIG_WITH_CARDREADER=y
CONFIG_READER_NAGRA_COMMON=y
CONFIG_READER_NAGRA=y
CONFIG_READER_NAGRA_MERLIN=y
CONFIG_READER_IRDETO=y
CONFIG_READER_CONAX=y
CONFIG_READER_CRYPTOWORKS=y
CONFIG_READER_SECA=y
CONFIG_READER_VIACCESS=y
CONFIG_READER_VIDEOGUARD=y
CONFIG_READER_DRE=y
CONFIG_READER_TONGFANG=y
CONFIG_READER_BULCRYPT=y
CONFIG_READER_GRIFFIN=y
CONFIG_READER_DGCRYPT=y
CARDREADER_PHOENIX=y
CARDREADER_DRECAS=y
CARDREADER_INTERNAL=y
CARDREADER_SC8IN1=y
CARDREADER_MP35=y
CARDREADER_SMARGO=y
CARDREADER_DB2COM=y
CARDREADER_STAPI=y
# CARDREADER_STAPI5=n
CARDREADER_STINGER=y
"
usage() {
echo \
"OSCam config
Usage: `basename $0` [parameters]
-g, --gui Start interactive configuration
-s, --show-enabled [param] Show enabled configuration options.
-Z, --show-disabled [param] Show disabled configuration options.
-S, --show-valid [param] Show valid configuration options.
Possible params: all, addons, protocols,
readers, card_readers
-l, --list-config List active configuration variables.
-e, --enabled [option] Check if certain option is enabled.
-d, --disabled [option] Check if certain option is disabled.
-E, --enable [option] Enable config option.
-D, --disable [option] Disable config option.
The following [option]s enable or disable multiple settings.
all - Everything.
addons - All addons.
protocols - All protocols.
readers - All readers.
card_readers - All card readers.
-R, --restore Restore default config.
-v, --oscam-version Display OSCam version.
-r, --oscam-revision Display OSCam SVN revision.
-O, --detect-osx-sdk-version Find where OS X SDK is located
-h, --help Display this help text.
Examples:
# Enable WEBIF and SSL
./config.sh --enable WEBIF WITH_SSL
# Disable WEBIF but enable WITH_SSL
./config.sh --disable WEBIF --enable WITH_SSL
# Restore defaults and disable WEBIF and READER_NAGRA
./config.sh --restore --disable WEBIF READER_NAGRA
# Use default config with only one enabled reader
./config.sh --restore --disable readers --enable READER_BULCRYPT
# Disable everything and enable webif one module and one card reader
./config.sh --disable all --enable WEBIF MODULE_NEWCAMD READER_BULCRYPT
# Disable all card readers except INTERNAL
./config.sh -D card_readers -E CARDREADER_INTERNAL
Available options:
addons: $addons
protocols: $protocols
readers: $readers
card_readers: $card_readers
"
}
# Output directory for config.mak set by --objdir parameter
OBJDIR=.
# Use flags set by --use-flags parameter
USE_FLAGS=
have_flag() {
for FLAG in $USE_FLAGS
do
[ "$FLAG" = "$1" ] && return 0
done
return 1
}
have_all_flags() {
for opt ; do
have_flag $opt || return 1
done
return 0
}
have_any_flags() {
for opt ; do
have_flag $opt && return 0
done
return 1
}
not_have_flag() {
for FLAG in $USE_FLAGS
do
[ "$FLAG" = "$1" ] && return 1
done
return 0
}
not_have_all_flags() {
for opt ; do
not_have_flag $opt || return 1
done
return 0
}
not_have_any_flags() {
for opt ; do
not_have_flag $opt && return 0
done
return 1
}
# Config functions
enabled() {
grep "^\#define $1 1$" config.h >/dev/null 2>/dev/null
return $?
}
disabled() {
grep "^\#define $1 1$" config.h >/dev/null 2>/dev/null
test $? = 0 && return 1
return 0
}
enabled_all() {
for opt ; do
enabled $opt || return 1
done
return 0
}
disabled_all() {
for opt ; do
disabled $opt || return 1
done
return 0
}
enabled_any() {
for opt ; do
enabled $opt && return 0
done
return 1
}
disabled_any() {
for opt ; do
disabled $opt && return 0
done
return 1
}
list_enabled() {
for OPT in $@
do
enabled $OPT && echo $OPT
done
}
list_disabled() {
for OPT in $@
do
disabled $OPT && echo $OPT
done
}
write_enabled() {
defined_file="webif/is_defined.txt"
pages_c="webif/pages.c"
rm -f $defined_file $pages_c 2>/dev/null
for OPT in $(get_opts) WITH_CARDREADER
do
enabled $OPT && printf "%s\n" $OPT >> $defined_file
done
}
valid_opt() {
[ "$1" = "WITH_CARDREADER" ] && return 0 # Special case
echo $addons $protocols $readers $card_readers | grep -w "$1" >/dev/null
return $?
}
enable_opt() {
valid_opt $1 && disabled $1 && {
sed -e "s|//#define $1 1$|#define $1 1|g" config.h > config.h.tmp && \
mv config.h.tmp config.h
echo "Enable $1"
}
}
enable_opts() {
for OPT in $@
do
enable_opt $OPT
done
}
disable_opt() {
valid_opt $1 && enabled $1 && {
sed -e "s|#define $1 1$|//#define $1 1|g" config.h > config.h.tmp && \
mv config.h.tmp config.h
echo "Disable $1"
}
}
disable_opts() {
for OPT in $@
do
disable_opt $OPT
done
}
get_opts() {
OPTS=""
case "$1" in
'addons') OPTS="$addons" ; ;;
'protocols') OPTS="$protocols" ; ;;
'readers') OPTS="$readers" ; ;;
'card_readers') OPTS="$card_readers" ; ;;
*) OPTS="$addons $protocols $readers $card_readers" ; ;;
esac
echo $OPTS
}
update_deps() {
# Calculate dependencies
enabled_any $(get_opts readers) $(get_opts card_readers) && enable_opt WITH_CARDREADER >/dev/null
disabled_all $(get_opts readers) $(get_opts card_readers) && disable_opt WITH_CARDREADER >/dev/null
disabled WEBIF && disable_opt WEBIF_LIVELOG >/dev/null
disabled WEBIF && disable_opt WEBIF_JQUERY >/dev/null
enabled MODULE_CCCSHARE && enable_opt MODULE_CCCAM >/dev/null
enabled_any CARDREADER_DB2COM CARDREADER_MP35 CARDREADER_SC8IN1 CARDREADER_STINGER && enable_opt CARDREADER_PHOENIX >/dev/null
}
list_config() {
update_deps
# Handle use flags
have_flag USE_STAPI && echo "CONFIG_WITH_STAPI=y" || echo "# CONFIG_WITH_STAPI=n"
have_flag USE_STAPI5 && echo "CONFIG_WITH_STAPI5=y" || echo "# CONFIG_WITH_STAPI5=n"
have_flag USE_COOLAPI && echo "CONFIG_WITH_COOLAPI=y" || echo "# CONFIG_WITH_COOLAPI=n"
have_flag USE_COOLAPI2 && echo "CONFIG_WITH_COOLAPI2=y" || echo "# CONFIG_WITH_COOLAPI2=n"
have_flag USE_SU980 && echo "CONFIG_WITH_SU980=y" || echo "# CONFIG_WITH_SU980=n"
have_flag USE_AZBOX && echo "CONFIG_WITH_AZBOX=y" || echo "# CONFIG_WITH_AZBOX=n"
have_flag USE_MCA && echo "CONFIG_WITH_MCA=y" || echo "# CONFIG_WITH_MCA=n"
have_flag USE_LIBCRYPTO && echo "CONFIG_WITH_LIBCRYPTO=y" || echo "# CONFIG_WITH_LIBCRYPTO=n"
for OPT in $addons $protocols WITH_CARDREADER $readers
do
enabled $OPT && echo "CONFIG_$OPT=y" || echo "# CONFIG_$OPT=n"
done
for OPT in $card_readers
do
if [ $OPT = CARDREADER_INTERNAL ]
then
# Internal card reader is actually three different readers depending on USE flags
enabled $OPT && have_flag USE_AZBOX && echo "CONFIG_${OPT}_AZBOX=y" || echo "# CONFIG_${OPT}_AZBOX=n"
enabled $OPT && have_any_flags USE_COOLAPI USE_SU980 && echo "CONFIG_${OPT}_COOLAPI=y" || echo "# CONFIG_${OPT}_COOLAPI=n"
enabled $OPT && have_flag USE_COOLAPI2 && echo "CONFIG_${OPT}_COOLAPI2=y" || echo "# CONFIG_${OPT}_COOLAPI2=n"
enabled $OPT && not_have_all_flags USE_AZBOX USE_COOLAPI USE_COOLAPI2 USE_SU980 && echo "CONFIG_${OPT}_SCI=y" || echo "# CONFIG_${OPT}_SCI=n"
continue
fi
if [ $OPT = CARDREADER_STAPI ]
then
# Enable CARDREADER_STAPI only if USE_STAPI is set
enabled $OPT && have_flag USE_STAPI && echo "CONFIG_$OPT=y" || echo "# CONFIG_$OPT=n"
continue
fi
if [ $OPT = CARDREADER_STAPI5 ]
then
# Enable CARDREADER_STAPI5 only if USE_STAPI5 is set
enabled $OPT && have_flag USE_STAPI5 && echo "CONFIG_$OPT=y" || echo "# CONFIG_$OPT=n"
continue
fi
enabled $OPT && echo "CONFIG_$OPT=y" || echo "# CONFIG_$OPT=n"
done
have_flag USE_LIBUSB && echo "CONFIG_CARDREADER_SMART=y" || echo "# CONFIG_CARDREADER_SMART=n"
have_flag USE_PCSC && echo "CONFIG_CARDREADER_PCSC=y" || echo "# CONFIG_CARDREADER_PCSC=n"
# Extra modules/libraries
enabled_any MODULE_GBOX WEBIF && echo "CONFIG_LIB_MINILZO=y" || echo "# CONFIG_LIB_MINILZO=n"
not_have_flag USE_LIBCRYPTO && echo "CONFIG_LIB_AES=y" || echo "# CONFIG_LIB_AES=n"
enabled MODULE_CCCAM && echo "CONFIG_LIB_RC6=y" || echo "# CONFIG_LIB_RC6=n"
not_have_flag USE_LIBCRYPTO && enabled MODULE_CCCAM && echo "CONFIG_LIB_SHA1=y" || echo "# CONFIG_LIB_SHA1=n"
enabled_any READER_DRE MODULE_SCAM READER_VIACCESS READER_NAGRA_MERLIN && echo "CONFIG_LIB_DES=y" || echo "# CONFIG_LIB_DES=n"
enabled_any MODULE_CCCAM READER_NAGRA READER_NAGRA_MERLIN READER_SECA && echo "CONFIG_LIB_IDEA=y" || echo "# CONFIG_LIB_IDEA=n"
not_have_flag USE_LIBCRYPTO && enabled_any READER_CONAX READER_CRYPTOWORKS READER_NAGRA READER_NAGRA_MERLIN && echo "CONFIG_LIB_BIGNUM=y" || echo "# CONFIG_LIB_BIGNUM=n"
enabled READER_NAGRA_MERLIN && echo "CONFIG_LIB_MDC2=y" || echo "# CONFIG_LIB_MDC2=n"
enabled READER_NAGRA_MERLIN && echo "CONFIG_LIB_FAST_AES=y" || echo "# CONFIG_LIB_FAST_AES=n"
enabled READER_NAGRA_MERLIN && echo "CONFIG_LIB_SHA256=y" || echo "# CONFIG_LIB_SHA256=n"
enabled_any READER_NAGRA READER_NAGRA_MERLIN && echo "CONFIG_READER_NAGRA_COMMON=y" || echo "# CONFIG_READER_NAGRA_COMMON=n"
}
make_config_c() {
OPENSSL=$(which openssl 2>/dev/null)
if [ "$OPENSSL" = "" ]
then
echo "// openssl not found!"
echo "const char *config_mak = \"CFG: openssl not found in PATH!\";"
else
echo "// This file is generated by ./config.sh --objdir $OBJDIR --make-config.mak"
echo "const char *config_mak ="
printf " \"\\\nCFG: strings FILE | sed -n 's/^CFG~//p' | openssl enc -d -base64 | gzip -d\\\n\"\n"
gzip -9 < $OBJDIR/config.mak | $OPENSSL enc -base64 | while read LINE
do
printf " \"CFG~%s\\\\n\"\n" "$LINE"
done
echo " ;"
fi
}
make_config_mak() {
TMPFILE=$(mktemp -t config.mak.XXXXXX) || exit 1
list_config > $TMPFILE
[ ! -d $OBJDIR ] && mkdir -p $OBJDIR 2>/dev/null
cmp $TMPFILE $OBJDIR/config.mak >/dev/null 2>/dev/null
if [ $? != 0 ]
then
cat $TMPFILE > $OBJDIR/config.mak
make_config_c > $OBJDIR/config.c
else
make_config_c > $TMPFILE
cmp $TMPFILE $OBJDIR/config.c >/dev/null 2>/dev/null
[ $? != 0 ] && cat $TMPFILE > $OBJDIR/config.c
fi
rm -rf $TMPFILE
}
check_test() {
if [ "$(cat $tempfileconfig | grep "^#define $1 1$")" != "" ]; then
echo "on"
else
echo "off"
fi
}
disable_all() {
for i in $1; do
sed -e "s/^#define ${i} 1$/\/\/#define ${i} 1/g" $tempfileconfig > ${tempfileconfig}.tmp && \
mv ${tempfileconfig}.tmp $tempfileconfig
done
}
enable_package() {
for i in $(cat $tempfile); do
strip=$(echo $i | sed "s/\"//g")
sed -e "s/\/\/#define ${strip} 1$/#define ${strip} 1/g" $tempfileconfig > ${tempfileconfig}.tmp && \
mv ${tempfileconfig}.tmp $tempfileconfig
done
}
print_components() {
clear
echo "You have selected the following components:"
echo
echo "Add-ons:"
for i in $addons; do
printf "\t%-20s: %s\n" $i $(check_test "$i")
done
echo
echo "Protocols:"
for i in $protocols; do
printf "\t%-20s: %s\n" $i $(check_test "$i")
done
echo
echo "Readers:"
for i in $readers; do
printf "\t%-20s: %s\n" $i $(check_test "$i")
done
echo
echo "Card readers:"
for i in $card_readers; do
printf "\t%-20s: %s\n" $i $(check_test "$i")
done
cp -f $tempfileconfig $configfile
}
menu_addons() {
${DIALOG} --checklist "\nChoose add-ons:\n " $height $width $listheight \
WEBIF "Web Interface" $(check_test "WEBIF") \
WEBIF_LIVELOG "LiveLog" $(check_test "WEBIF_LIVELOG") \
WEBIF_JQUERY "Jquery onboard (if disabled webload)" $(check_test "WEBIF_JQUERY") \
TOUCH "Touch Web Interface" $(check_test "TOUCH") \
WITH_SSL "OpenSSL support" $(check_test "WITH_SSL") \
HAVE_DVBAPI "DVB API" $(check_test "HAVE_DVBAPI") \
WITH_NEUTRINO "Neutrino support" $(check_test "WITH_NEUTRINO") \
READ_SDT_CHARSETS "DVB API read-sdt charsets" $(check_test "READ_SDT_CHARSETS") \
IRDETO_GUESSING "Irdeto guessing" $(check_test "IRDETO_GUESSING") \
CS_ANTICASC "Anti cascading" $(check_test "CS_ANTICASC") \
WITH_DEBUG "Debug messages" $(check_test "WITH_DEBUG") \
MODULE_MONITOR "Monitor" $(check_test "MODULE_MONITOR") \
WITH_LB "Loadbalancing" $(check_test "WITH_LB") \
CS_CACHEEX "Cache exchange" $(check_test "CS_CACHEEX") \
CW_CYCLE_CHECK "CW Cycle Check" $(check_test "CW_CYCLE_CHECK") \
LCDSUPPORT "LCD support" $(check_test "LCDSUPPORT") \
LEDSUPPORT "LED support" $(check_test "LEDSUPPORT") \
CLOCKFIX "Clockfix (disable on old systems!)" $(check_test "CLOCKFIX") \
IPV6SUPPORT "IPv6 support (experimental)" $(check_test "IPV6SUPPORT") \
2> ${tempfile}
opt=${?}
if [ $opt != 0 ]; then return; fi
disable_all "$addons"
enable_package
}
menu_protocols() {
${DIALOG} --checklist "\nChoose protocols:\n " $height $width $listheight \
MODULE_CAMD33 "camd 3.3" $(check_test "MODULE_CAMD33") \
MODULE_CAMD35 "camd 3.5 UDP" $(check_test "MODULE_CAMD35") \
MODULE_CAMD35_TCP "camd 3.5 TCP" $(check_test "MODULE_CAMD35_TCP") \
MODULE_NEWCAMD "newcamd" $(check_test "MODULE_NEWCAMD") \
MODULE_CCCAM "CCcam" $(check_test "MODULE_CCCAM") \
MODULE_CCCSHARE "CCcam share" $(check_test "MODULE_CCCSHARE") \
MODULE_GBOX "gbox" $(check_test "MODULE_GBOX") \
MODULE_RADEGAST "radegast" $(check_test "MODULE_RADEGAST") \
MODULE_SERIAL "Serial" $(check_test "MODULE_SERIAL") \
MODULE_CONSTCW "constant CW" $(check_test "MODULE_CONSTCW") \
MODULE_PANDORA "Pandora" $(check_test "MODULE_PANDORA") \
MODULE_GHTTP "Ghttp" $(check_test "MODULE_GHTTP") \
MODULE_SCAM "scam" $(check_test "MODULE_SCAM") \
2> ${tempfile}
opt=${?}
if [ $opt != 0 ]; then return; fi
disable_all "$protocols"
enable_package
}
menu_readers() {
${DIALOG} --checklist "\nChoose readers (CA systems):\n " $height $width $listheight \
READER_NAGRA "Nagravision" $(check_test "READER_NAGRA") \
READER_NAGRA_MERLIN "Nagra Merlin" $(check_test "READER_NAGRA_MERLIN") \
READER_IRDETO "Irdeto" $(check_test "READER_IRDETO") \
READER_CONAX "Conax" $(check_test "READER_CONAX") \
READER_CRYPTOWORKS "Cryptoworks" $(check_test "READER_CRYPTOWORKS") \
READER_SECA "Seca" $(check_test "READER_SECA") \
READER_VIACCESS "Viaccess" $(check_test "READER_VIACCESS") \
READER_VIDEOGUARD "NDS Videoguard" $(check_test "READER_VIDEOGUARD") \
READER_DRE "DRE Crypt" $(check_test "READER_DRE") \
READER_TONGFANG "Tongfang" $(check_test "READER_TONGFANG") \
READER_BULCRYPT "Bulcrypt" $(check_test "READER_BULCRYPT") \
READER_GRIFFIN "Griffin" $(check_test "READER_GRIFFIN") \
READER_DGCRYPT "DGCrypt" $(check_test "READER_DGCRYPT") \
2> ${tempfile}
opt=${?}
if [ $opt != 0 ]; then return; fi
disable_all "$readers"
enable_package
}
menu_card_readers() {
${DIALOG} --checklist "\nChoose card reader drivers:\n " $height $width $listheight \
CARDREADER_PHOENIX "Phoenix/mouse" $(check_test "CARDREADER_PHOENIX") \
CARDREADER_INTERNAL "Internal (Sci,Azbox,Cool)" $(check_test "CARDREADER_INTERNAL") \
CARDREADER_SC8IN1 "SC8in1" $(check_test "CARDREADER_SC8IN1") \
CARDREADER_MP35 "AD-Teknik MP 3.6/USB Phoenix" $(check_test "CARDREADER_MP35") \
CARDREADER_SMARGO "Argolis Smargo Smartreader" $(check_test "CARDREADER_SMARGO") \
CARDREADER_DB2COM "dbox2" $(check_test "CARDREADER_DB2COM") \
CARDREADER_STAPI "STAPI" $(check_test "CARDREADER_STAPI") \
CARDREADER_STAPI5 "STAPI5" $(check_test "CARDREADER_STAPI5") \
CARDREADER_STINGER "STINGER" $(check_test "CARDREADER_STINGER") \
CARDREADER_DRECAS "DRECAS" $(check_test "CARDREADER_DRECAS") \
2> ${tempfile}
opt=${?}
if [ $opt != 0 ]; then return; fi
disable_all "$card_readers"
enable_package
}
config_dialog() {
height=30
width=65
listheight=16
DIALOG=${DIALOG:-`which dialog`}
if [ -z "${DIALOG}" ]; then
echo "Please install dialog package." 1>&2
exit 1
fi
configfile=config.h
tempfile=$(mktemp -t oscam-config.dialog.XXXXXX) || exit 1
tempfileconfig=$(mktemp -t oscam-config.h.XXXXXX) || exit 1
trap 'rm -f $tempfile $tempfileconfig $tempfileconfig.bak 2>/dev/null' INT TERM EXIT
cp -f $configfile $tempfileconfig
while true; do
${DIALOG} --menu "\nSelect category:\n " $height $width $listheight \
Add-ons "Add-ons" \
Protocols "Network protocols" \
Readers "Readers (CA systems)" \
CardReaders "Card reader drivers" \
Save "Save" \
2> ${tempfile}
opt=${?}
if [ $opt != 0 ]; then clear; exit; fi
menuitem=$(cat $tempfile)
case $menuitem in
Add-ons) menu_addons ;;
Protocols) menu_protocols ;;
Readers) menu_readers ;;
CardReaders) menu_card_readers ;;
Save)
print_components
update_deps
write_enabled
exit 0
;;
esac
done
}
# Change working directory to the directory where the script is
cd $(dirname $0)
if [ $# = 0 ]
then
usage
exit 1
fi
while [ $# -gt 0 ]
do
case "$1" in
'-g'|'--gui'|'--config'|'--menuconfig')
config_dialog
break
;;
'-s'|'--show-enabled'|'--show')
shift
list_enabled $(get_opts $1)
# Take special care of USE_xxx flags
if [ "$1" = "card_readers" ]
then
have_flag USE_LIBUSB && echo "CARDREADER_SMART"
have_flag USE_PCSC && echo "CARDREADER_PCSC"
fi
break
;;
'-Z'|'--show-disabled')
shift
list_disabled $(get_opts $1)
break
;;
'-S'|'--show-valid')
shift
for OPT in $(get_opts $1)
do
echo $OPT
done
break
;;
'-E'|'--enable')
shift
while [ "$1" != "" ]
do
case "$1" in
-*)
update_deps
continue 2
;;
all|addons|protocols|readers|card_readers)
enable_opts $(get_opts $1)
;;
*)
enable_opt "$1"
;;
esac
shift
done
update_deps
write_enabled
;;
'-D'|'--disable')
shift
while [ "$1" != "" ]
do
case "$1" in
-*)
update_deps
continue 2
;;
all|addons|protocols|readers|card_readers)
disable_opts $(get_opts $1)
;;
*)
disable_opt "$1"
;;
esac
shift
done
update_deps
write_enabled
;;
'-R'|'--restore')
echo $defconfig | sed -e 's|# ||g' | xargs printf "%s\n" | grep "=y$" | sed -e 's|^CONFIG_||g;s|=.*||g' |
while read OPT
do
enable_opt "$OPT"
done
echo $defconfig | sed -e 's|# ||g' | xargs printf "%s\n" | grep "=n$" | sed -e 's|^CONFIG_||g;s|=.*||g' |
while read OPT
do
disable_opt "$OPT"
done
update_deps
write_enabled
;;
'-e'|'--enabled')
enabled $2 && echo "Y" && exit 0 || echo "N" && exit 1
break
;;
'-d'|'--disabled')
disabled $2 && echo "Y" && exit 0 || echo "N" && exit 1
break
;;
'-v'|'--oscam-version')
grep CS_VERSION globals.h | cut -d\" -f2
break
;;
'-r'|'--oscam-revision')
revision=`(svnversion -n . 2>/dev/null || printf 0) | sed 's/.*://; s/[^0-9]*$//; s/^$/0/'`
if [ "$revision" = "0" ]
then
which git > /dev/null 2>&1 && revision=`git log -10 --pretty=%B | grep git-svn-id | head -n 1 | sed -n -e 's/^.*trunk@\([0-9]*\) .*$/\1/p'`
fi
echo $revision
break
;;
'-O'|'--detect-osx-sdk-version')
shift
OSX_VER=${1:-10.10}
for DIR in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX{$OSX_VER,10.10,10.9,10.8,10.7}.sdk /Developer/SDKs/MacOSX{$OSX_VER,10.6,10.5}.sdk
do
if test -d $DIR
then
echo $DIR
exit 0
fi
done
echo Cant_find_OSX_SDK
break
;;
'-l'|'--list-config')
list_config
exit 0
;;
'-m'|'--make-config.mak')
make_config_mak
exit 0
;;
'--use-flags')
shift
USE_FLAGS=$1
;;
'--objdir')
shift
OBJDIR=$1
;;
'-h'|'--help')
usage
break
;;
*)
echo "[WARN] Unknown parameter: $1" >&2
;;
esac
# Some shells complain when there are no more parameters to shift
test $# -gt 0 && shift
done
exit 0

1
support/configs/max_cpus

@ -0,0 +1 @@
16

5
support/configs/max_cpus.txt

@ -0,0 +1,5 @@
put only the count of cpus u want to use in the file !!!
example:
for 3 of X cpus
echo 3 >max_cpus

8
support/configs/simplebuild.config

@ -0,0 +1,8 @@
DIRECTMENU=0
NO_SVN_AUTOUPDATE=1
SAVE_LISTSMARGO=0
S3_UPDATE_CHECK=0
USE_VERBOSE=0
USE_COMPRESS=0
USE_TARGZ=0
delete_oscamdebugbinary=1

16
support/configs/upx.txt

@ -0,0 +1,16 @@
-1
-2
-3
-4
-5
-6
-7
-8
-9
--best
--brute
--ultra-brute
-1 #very fast
--ultra-brute #very slow but very strong

1
support/configs/upx_option

@ -0,0 +1 @@
upx_c=-1

39
support/functions/_ansi

@ -0,0 +1,39 @@
#!/bin/bash
#usage:
#to use colors start with initializeANSI first
#example red color text
#echo -e $r_n"red text"$re_"normal text"
initializeANSI(){
nc='\033[0;'; #nc normal color
lc='\033[1;'; #lc light color
# normal
r_n=$nc'31m'; #red
g_n=$nc'32m'; #green
y_n=$nc'33m'; #yellow
b_n=$nc'34m'; #blue
p_n=$nc'35m'; #pink
c_n=$nc'36m'; #cyan
w_n=$nc'37m'; #white
#light
r_l=$lc'31m'; #red
g_l=$lc'32m'; #green
y_l=$lc'33m'; #yellow
b_l=$lc'34m'; #blue
p_l=$lc'35m'; #pink
c_l=$lc'36m'; #cyan
w_l=$lc'37m'; #white
#reset to normal
re_='\033[0m'; #resets all colors
re_f='\033[39m'; #resets only foreground color
re_b='\033[49m'; #resets only background color
#sed replace
W=$(echo -e '\033[0m'); #normal
Y=$(echo -e '\033[1;33m'); #yellow
R=$(echo -e '\033[1;31m'); #red
G=$(echo -e '\033[1;32m'); #green
P=$(echo -e '\033[1;35m'); #pink
C=$(echo -e '\033[1;36m'); #cyan
WH=$(echo -e '\033[1;37m'); #lightgray
};

54
support/functions/_arrays

@ -0,0 +1,54 @@
#!/bin/bash
_fill_tc_array(){
unset AVAI_TCLIST;
unset INST_TCLIST;
tcempty=0;
cd "$tccfgdir";
[ "$(ls -A "$tccfgdir")" ] && AVAI_TCLIST=(*) || echo "error fix it";
cd "$tcdir";
if [ "$(ls -A "$tcdir")" ];then
tmp_tclist=(*);
for t in "${tmp_tclist[@]}";do
for a in "${AVAI_TCLIST[@]}";do
[ "$t" == "$a" ] && INST_TCLIST+=($t);
done;
done;
else
tcempty=1;
fi;
if [ "$tcempty" == "1" ];then
MISS_TCLIST=$(echo ${AVAI_TCLIST[@]} |sort);
else
MISS_TCLIST=($(for el in $(diff_array AVAI_TCLIST[@] INST_TCLIST[@]);do echo "$el";done |sort));
fi;
};
_create_module_arrays(){
i=0;
for e in $(echo "$addons" | sed 's/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g';);do
SHORT_ADDONS+=($e);
SHORT_MODULENAMES+=($e);
done;
for e in ${protocols//MODULE_/};do
SHORT_PROTOCOLS+=($e);
SHORT_MODULENAMES+=($e);
done;
for e in ${readers//READER_/};do
SHORT_READERS+=($e);
SHORT_MODULENAMES+=($e);
done;
for e in ${card_readers//CARDREADER_/};do
SHORT_CARD_READERS+=($e);
SHORT_MODULENAMES+=($e);
done;
for e in $addons $protocols $readers $card_readers;do
ALL_MODULES_LONG+=($e);
done;
for e in "${SHORT_MODULENAMES[@]}";do
INTERNAL_MODULES["$e"]="${ALL_MODULES_LONG[i]}";
((i++));
done;
};
diff_array(){
awk 'BEGIN{RS=ORS=" "}{NR==FNR?a[$0]++:a[$0]--}END{for(k in a)if(a[k])print k}' <(echo -n "${!1}") <(echo -n "${!2}");
};

203
support/functions/_cmd_build

@ -0,0 +1,203 @@
#!/bin/bash
_cmd_build(){
[ ! -d "$svndir" ] || [ -f "$workdir/NEED-CHECKOUT" ] && checkout;
if [ "$_toolchainname" == "native" ];then
log_name="$(date +%F).$(date +%X).$(hostname).log";
else
log_name="$(date +%F).$(date +%X).$_toolchainname.log";
fi;
source "$tccfgdir/$_toolchainname";
_reset_config;
#_fix_config_h;
echo $WH;
ologo >"$ldir/$log_name";
#set build defaults
CROSS="$tcdir/$_toolchainname/bin/$_compiler";
[ -f "$configdir/compiler_option" ] && co=$(cat "$configdir/compiler_option") || co="-O2";
#toolchain defaults
for defa in $default_use;do
USE_vars[$defa]="$defa=1";
done;
#disable by cmd
for e in ${USE_vars[*]};do
for d in ${USE_vars_disable[*]};do
[ "$e" == "$d" ] && USE_vars[${e:0: -2}]=;
done;
done;
_nl;
cd "$svndir";
#make clean
make distclean > /dev/null 2>&1;
#do enable and disable modules
for am in "${all_cc[@]}";do
chose="false";
if [ "${am:${#am} - 3}" == "_on" ];then
e="${am:0: -3}";"$svndir/config.sh" -E "$e" |awk '{printf "\033[1;37m"} {printf " | %s : ", $1} {printf "\033[1;32m"} {printf "%s\n", $2}';
fi;
if [ "${am:${#am} - 4}" == "_off" ];then
d="${am:0: -4}";"$svndir/config.sh" -D "$d" |awk '{printf "\033[1;37m"} {printf " | %s : ", $1} {printf "\033[1;31m"} {printf "%s\n", $2}';
fi;
done;
#fix smargo case
if [ "$(./config.sh -e CARDREADER_SMARGO)" == "Y" ] || [ "${USE_vars[$e]}" == "USE_LIBUSB=1" ];then
silent=$(./config.sh -E CARDREADER_SMARGO);
check_smargo;
else
silent=$(./config.sh -D CARDREADER_SMARGO);
check_smargo;
fi;
#fill use variables and set name addons
USESTRING=;
_usb=;
_pcsc=;
_stapi=;
_stapi5=;
_do_patch="0";
for e in "${!USE_vars[@]}";do
for e1 in $_block;do
USE_vars[$e1]=;
done;
uv=${USE_vars[$e]};
if [ ! "$e" == "USE_CONFDIR" ];then
USESTRING="$uv $USESTRING";
if [ "${#USE_vars[$e]}" -gt "5" ];then
echo -e "$w_l | set : $c_l${USE_vars[$e]}";
fi;
fi;
case "$uv" in
"USE_LIBUSB=1")
_usb="-libusb";; # set libusb suffix to name
"USE_PCSC=1")
_pcsc_on;_pcsc="-pcsc";;# set pcsc suffix to name
"USE_PATCH=1")
_do_patch="1";; # enable patching
"USE_TARGZ=1")
s3cfg_vars[TARGZ]=1;; # overwrite global
"USE_COMPRESS=1")
s3cfg_vars[COMPRESS]=1;;# overwrite global
"USE_STAPI=1")
_stapi="-stapi";
STAPI_LIB="STAPI_LIB=$sdir/stapi/liboscam_stapi.a";
echo -e "$w_l | LIB : "$c_l"liboscam_stapi.a"$w_l;;
"USE_STAPI5=1")
_stapi5="-stapi5";
[ "$OPENBOX" == "1" ] && STAPI_LIB="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_OPENBOX.a" && echo -e "$w_l| LIB : "$c_l"liboscam_stapi5_OPENBOX.a"$w_l;
[ "$UFS916003" == "1" ] && STAPI_LIB="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916_0.03.a" && echo -e "$w_l| LIB : "$c_l"liboscam_stapi5_UFS916_0.03.a"$w_l;
[ "$UFS916003" == "0" ] && [ "$OPENBOX" == "0" ] && STAPI_LIB="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916.a" && echo -e "$w_l| LIB : "$c_l"liboscam_stapi5_UFS916.a"$w_l;;
esac;
done;
#change default oscam CONF_DIR
if [ ! "$_oscamconfdir_custom" == "not_set" ] && [ ${#_oscamconfdir_custom} -gt 3 ]; then
[ ! "$CUSTOM_CONFDIR" == "not_set" ] && _oscamconfdir_custom=$CUSTOM_CONFDIR;
CONFDIR="$_oscamconfdir_custom";
echo -e $w_l" | set : "$r_l"custom CONF_DIR=$CONFDIR"$w_l;
else
CONFDIR="$_oscamconfdir_default";
fi;
#patching
if [ "$_do_patch" == "1" ];then
if [ -f "$workdir/SVN-IS-PATCHED" ];then
quicksvnrestore $_toolchainname;
_apply_consolepatch;
else
_apply_consolepatch;
fi;
fi;
#echo if build with profile
[ ! "$pf" == "empty" ] && echo -e "$y_l | PROFILE : $pf_name";
#echo IF SVN is Patched
[ -f "$workdir/SVN-IS-PATCHED" ] && echo -e $w_l" ISPATCHED : "$P" YES";
#echo max cpu usage
if [ -f "$configdir/max_cpus" ];then
cpus="$(cat "$configdir/max_cpus")";
[ ! "$cpus" -gt "1" ] && cpus="1";
[ "$cpus" -gt "$(CPUS)" ] && cpus="$(CPUS)";
echo -en "$y_l\n | MAX_CPUS : $txt_use $cpus $txt_of $(CPUS) CPU(s)";
else
cpus="$(CPUS)";
fi;
[ "${s3cfg_vars[USE_VERBOSE]}" == "1" ] && _verbose="V=1";
#killstapi for nonsh4
if [ ! "$_toolchainname" == "sh4" ] || [ ! "$_toolchainname" == "sh_4" ];then
silent=$("$svndir/config.sh" --disable CARDREADER_STAPI CARDREADER_STAPI5);
fi;
#build
timer_start;
_generate_oscam_name "$_toolchainname";
_nl;
USESTRING=${USE_vars[@]};
make -j"$cpus" $_verbose \
"CONF_DIR=$CONFDIR" \
"OSCAM_BIN=$bdir/$oscam_name" \
"CC_OPTS=$co $cc_opts" \
"CC_WARN=$cc_warn" \
"CROSS=$CROSS" $STAPI_LIB $USESTRING 2>&1 \
|tee -a "$ldir/$log_name" \
|grep --line-buffered -v 'BFD' \
|grep --line-buffered '^CC\|^GEN\|UseFlags\| CONF_DIR =\|Binary\|LINK\|STRIP\|BUILD\|Addons\|Protocols\|Readers\|CardRdrs\|^/' \
|sed -e "s/^|/"$Y" |/g;s/^LINK/"$P" LINK ------->$W/g;s/^STRIP/"$P" STRIP ------>$W/g;s/^CC\|^BUILD/"$G" BUILD ------>$W/g;s/^GEN/"$C" GEN -------->/g;
s/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g;"
#calc buildtime
timer_stop;
timer_calc;
bt="[ $txt_buildtime $((Tcalc / 60)) min(s) $((Tcalc % 60)) secs ]";
#save list_smargo
cd "$svndir/Distribution";
lsmn="$(ls list_smargo* 2> /dev/null)";
if [ "${s3cfg_vars[SAVE_LISTSMARGO]}" == "1" ] && [ -f "$svndir/Distribution/$lsmn" ];then
if [ "$_toolchainname" == "native" ];then
echo -e "$g_n"" SAVE -------> $w_l$lsmn$g_l $txt_as$y_l oscam-svn$(REVISION)-$(hostname)-list_smargo";
mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$(hostname)-list_smargo";
tartmp="oscam-svn$(REVISION)-$(hostname)-list_smargo";
else
echo -e "$g_n"" SAVE -------> $w_l$lsmn$g_l $txt_as$y_l oscam-svn$(REVISION)-$_toolchainname-list_smargo";
mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$_toolchainname-list_smargo";
tartmp="oscam-svn$(REVISION)-$_toolchainname-list_smargo";
fi;
fi;
#remove debug binary
if [ "${s3cfg_vars[delete_oscamdebugbinary]}" == "1" ] && [ -f "$bdir/$oscam_name.debug" ];then
echo -e "$r_l"" REMOVE -----> $w_l$bdir/$oscam_name.debug";rm "$bdir/$oscam_name.debug";
fi;
#show build time
echo -e "$g_n""\n TIME -------> $bt\n$re_";
#compress cam
if [ "${s3cfg_vars[COMPRESS]}" == "1" ];then
echo -en "$w_l"" ENABLE -----> COMPRESSION:$y_l $txt_wait";
compress_cam "$oscam_name";
fi;
if [ "${s3cfg_vars[TARGZ]}" == "1" ];then
echo -en "$w_l"" ENABLE ----> TARGZ:$y_l $txt_wait\n";
tar_cam "$oscam_name" "$tartmp";
fi;
#link lastlog
ln -sf "$ldir/$log_name" "$workdir/lastbuild.log";
#build error message
error_on_build=$(grep -c1 error "$ldir/$log_name");
[ "$error_on_build" -gt "0" ] && echo -e "$r_l\terrors on build found$w_l";
echo -e "$re_";
exit;
};

93
support/functions/_compress

@ -0,0 +1,93 @@
#!/bin/bash
compress_cam(){
cd "$bdir";
upx_c="-1";
[ -f "$configdir/upx_option" ] && source "$configdir/upx_option";
erg=$(upx "$upx_c" "$1" |grep oscam |awk '{print $1" "$3" "$4 }');
e1="$(echo "$erg"| awk '{printf("%4.2f k\n", $1 /1024)}')";
e2="$(echo "$erg"| awk '{printf("%4.2fk\n", $2 /1024)}')";
e3="$(echo "$erg"| awk '{print $3}')";
echo -e "$w_l\n\n BEFORE -----> $txt_compress1\t= $g_n$e1$w_l\n AFTER ------> $txt_compress2\t= $g_l$e2$w_l\n RESULT -----> $txt_compress3\t= $c_n$e3$rs_\n";
};
compress_cam_gui(){
cd "$bdir";
upx_c="-1";
[ -f "$configdir/upx_option" ] && source "$configdir/upx_option";
erg=$(upx "$upx_c" "$1" |grep oscam |awk '{print $1" "$3" "$4 }');
e1="$(echo "$erg"| awk '{printf("%4.2f k\n", $1 /1024)}')";
e2="$(echo "$erg"| awk '{printf("%4.2fk\n", $2 /1024)}')";
e3="$(echo "$erg"| awk '{print $3}')";
echo -e "\n $txt_compress1\t= $e1\n $txt_compress2\t= $e2\n $txt_compress3\t= $e3";
};
tar_cam_gui(){
cd "$bdir";
erg=$(tar zcf $1.tar.gz $1 $2);
if [ -f "$1.tar.gz" ];then
echo -e "\n $1.tar.gz\n created";
if [ -f "$adir/$1.tar.gz" ];then
rm -rf "$adir/$1.tar.gz";
mv -f "$1.tar.gz" "$adir";
echo -e "\n $1.tar.gz\n moved to $workdir/archive\n";
else
mv -f "$1.tar.gz" "$adir";
echo -e "\n $1.tar.gz\n moved to $workdir/archive\n";
fi;
else
echo -e "\nerror\n no $1.tar.gz\n created";
fi;
};
tar_cam(){
cd "$bdir";
if [ -n $2 ];then
echo -en "$y_n\n TAR -------->$w_l $1$g_l $txt_as$w_l $1.tar.gz$rs_";
fi;
erg=$(tar zcf $1.tar.gz $1 $2);
if [ -f "$1.tar.gz" ];then
echo -e "$p_n$txt_done$rs_";
if [ -f "$adir/$1.tar.gz" ];then
rm -rf "$adir/$1.tar.gz";
mv -f "$1.tar.gz" "$adir";
echo -e "$c_l"" MOVE -------> $p_l$1.tar.gz $g_l$txt_to $y_n$workdir/archive\n$rs_";
else
mv -f "$1.tar.gz" "$adir";
echo -e "$c_l"" MOVE -------> $p_l$1.tar.gz $g_l$txt_to $y_n$workdir/archive\n$rs_";
fi;
else
echo -e "$r_l\nerror\n no $1.tar.gz\n created$rs_";
fi;
};
tarsvn(){
cd "$workdir";
if [ -f "$svndir/config.sh" ];then
cat "$svndir/config.sh" >"$configdir/config.sh.master";
[ -f "$svndir/Makefile" ]&& cat "$svndir/Makefile" >"$configdir/Makefile.master";
echo -en "$w_l SVN Backup :$c_l ";
tar -zcf "$bsvn/$("$svndir/config.sh" -r).tar.gz" oscam-svn;
fi;
cd "$bsvn";
ln -sf "$bsvn/$("$svndir/config.sh" -r).tar.gz" "last.tar.gz";
echo -e "done\n$re_";
};
untarsvn(){
cd "$workdir";
[ -d oscam-svn ] && rm -rf oscam-svn;
if [ -z "$1" ];then
[ -f "$bsvn/last.tar.gz" ] && tar -xf "$bsvn/last.tar.gz";
else
if [ -f "$bsvn/$1.tar.gz" ];then
tar -xf "$bsvn/$1.tar.gz";
cd $bsvn;
ln -sf "$bsvn/$("$svndir/config.sh" -r).tar.gz" "last.tar.gz";
else
if [ -f "$bsvn/last.tar.gz" ];then
tar -xf "$bsvn/last.tar.gz";
else
echo -en "$w_l SVN Backup :$r_l $txt_not_found";
sleep 3;
checkout;
fi;
fi;
fi;
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED";
};

117
support/functions/_gui_build

@ -0,0 +1,117 @@
#!/bin/bash
_gui_build(){
#init
oc_size=${#_oscamconfdir_custom};
[ "$oc_size" -gt "4" ] && _oscamconfdir_default="$_oscamconfdir_custom";
if [ "$_toolchainname" == "native" ];then
log_name="$(date +%F).$(date +%X).$(hostname).log";
else
log_name="$(date +%F).$(date +%X).$_toolchainname.log";
fi;
ologo >"$ldir/$log_name";
[ -f "$configdir/max_cpus" ] && cpus="$(cat "$configdir/max_cpus")" || cpus="$(CPUS)";
CROSS="$tcdir/$_toolchainname/bin/$_compiler";
[ -f "$configdir/compiler_option" ] && co=$(cat "$configdir/compiler_option") || co="-O2";
#make clean
cd "$svndir";
make distclean > /dev/null 2>&1;
USESTRING_='';
#do use_vars
for e2 in $USESTRING;do
[ "USE_$e2" == "USE_PATCH" ] && _apply_menupatch;is_blocked=0;
for e1 in $_block;do
if [ "$e1" == "USE_$e2" ];then
is_blocked=1;
[ "USE_$e2" == "USE_LIBUSB" ] && silent=$(./config.sh -D CARDREADER_SMARGO);
fi;
done;
[ "$is_blocked" == "0" ] && _us="USE_$e2 $_us";
done;
for e in $_us;do
if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ];then
USESTRING_="$e=1 $USESTRING_";
fi;
done;
if [ "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ];then
_pcsc="-pcsc" ;
else
_pcsc=;
fi;
if [ "${USE_vars[USE_LIBUSB]}" == "USE_LIBUSB=1" ];then
_usb="-libusb";
else
_usb=;
fi;
USESTRING_=${USE_vars[@]};
#todo add switch for verbose
_generate_oscam_name "$_toolchainname";
targztmp="$(mktemp)";
if [ ! "${USE_vars[USE_TARGZ]}" == "USE_TARGZ=1" ];then
s3cfg_vars[USE_TARGZ]=0;
fi;
check_smargo;
#build
_sz;
(ologo; _nl;
timer_start;
make -j"$cpus" \
"CONF_DIR=$_oscamconfdir_default" "OSCAM_BIN=$bdir/$oscam_name" "CC_OPTS=$co $cc_opts" "CC_WARN=$cc_warn" "CROSS=$CROSS" $stapivar $USESTRING_ 2>&1 \
|tee "$ldir/$log_name" \
|grep --line-buffered -v 'BFD' \
|grep --line-buffered '^CC\|^GEN\|UseFlags\| CONF_DIR =\|Binary\|LINK\|STRIP\|BUILD\|Addons\|Protocols\|Readers\|CardRdrs\|^/' \
|sed -u "s/^|/ |/g;s/^LINK/ LINK >/g;s/^STRIP/ STRIP >/g;s/^CC\|^BUILD/ BUILD >/g;s/^GEN/ GEN >/g;s/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g;"
timer_stop;
timer_calc;
#save list_smargo
cd "$svndir/Distribution";
lsmn="$(ls list_smargo* 2> /dev/null)";
if [ "${s3cfg_vars[SAVE_LISTSMARGO]}" == "1" ] && [ -f "$svndir/Distribution/$lsmn" ];then
if [ "$_toolchainname" == "native" ];then
echo -e "SAVE\t$lsmn $txt_as oscam-svn$(REVISION)-$(hostname)-list_smargo"| tee -a "$ldir/$log_name";
mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$(hostname)-list_smargo";
echo "oscam-svn$(REVISION)-$(hostname)-list_smargo" >"$targztmp";
else
echo -e "SAVE\t$lsmn $txt_as oscam-svn$(REVISION)-$_toolchainname-list_smargo"|tee -a "$ldir/$log_name";
mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$_toolchainname-list_smargo";
echo "oscam-svn$(REVISION)-$_toolchainname-list_smargo" >"$targztmp";
fi;
fi;
#show buildtime
echo -e "\n TIME\t[ $txt_buildtime $((Tcalc / 60)) min(s) $((Tcalc % 60)) secs ]"| tee -a "$ldir/$log_name";sleep 1;
#remove debug binary
if [ "${s3cfg_vars[delete_oscamdebugbinary]}" == "1" ] && [ -f "$bdir/$oscam_name.debug" ];then
rm "$bdir/$oscam_name.debug";
echo -e "\n $txt_delete $oscam_name.debug\n"|tee -a "$ldir/$log_name";
fi;) | "$gui" "$st_" --colors --title " -[ Build ]- " "$pb_" "$_lines" "$_cols";sleep 2;
#COMPRESS
if [ ! "$stapi_allowed" == "1" ];then
if [ "${s3cfg_vars[COMPRESS]}" == "1" ] || [ "${USE_vars[USE_COMPRESS]}" == "USE_COMPRESS=1" ];then
(compress_cam_gui "$oscam_name") |tee -a "$ldir/$log_name"| "$gui" "$st_" --title " -[ COMPRESS ]- " "$pb_" 7 50;
sleep 2;
fi;
fi;
#tar
if [ "${USE_vars[USE_TARGZ]}" == "USE_TARGZ=1" ];then
(tar_cam_gui "$oscam_name" "$(cat "$targztmp")") |tee -a "$ldir/$log_name"| "$gui" "$st_" --title " -[ TAR Binary ]- " "$pb_" 10 70;
sleep 2;
fi;
#link log
ln -sf "$ldir/$log_name" "$workdir/lastbuild.log";
[ -f "$targztmp" ] && rm -rf "$targztmp";
};

55
support/functions/_help

@ -0,0 +1,55 @@
#!/bin/bash
_help_toolchain(){
echo -e "$w_l toolchains :\n ------------$g_n";
helpline1 "${AVAI_TCLIST[@]}";
echo -e "\n";
};
helpline0(){
ll=0;
echo -en " ";
for s in "$@";do
ll=$((ll + (${#s} + 4)));
if [ "$ll" -lt "30" ];then
echo -en "$s(_off) ";
else
echo -en "$s(_off)\n ";
ll="";
fi;
done;
};
helpline1(){
ll=0;
echo -en " ";
for s in "$@";do
ll=$((ll + (${#s} + 4)));
if [ "$ll" -lt "45" ];then
echo -en "$s " ;
else
echo -en "$s\n " ;
ll="";
fi;
done;
};
_help(){ clear;s3logo;
echo -e " ----------------------------------";
echo -e " $txt_help1 $0 menu";
echo -e " $txt_help2";
echo -e " ----------------------------------";
echo -e "$w_l\n toolchains :\n ------------$g_n";
helpline1 "${AVAI_TCLIST[@]}";
echo -e "$w_l\n simplebuild options :\n ---------------------$c_n";
helpline1 "${s3opts[@]}";_wait;
echo -e "$w_l config_cases:\n --------$c_n";
helpline0 "${config_cases[@]}";
echo -e "$w_l\n\n addons :\n --------$p_l";
helpline0 "${SHORT_ADDONS[@]}";_wait;
echo -e "$w_l protocols :\n -----------$y_l";
helpline0 "${SHORT_PROTOCOLS[@]}";
echo -e "$w_l\n readers :\n ---------$r_l";
helpline0 "${SHORT_READERS[@]}";_wait;
echo -e "$w_l card_readers :\n --------------$b_l";
helpline0 "${SHORT_CARD_READERS[@]}";
echo -e "$w_l\n use_vars :\n --------$w_n";
helpline0 "${!USE_vars[@]}";_wait;
};

29
support/functions/_logos

@ -0,0 +1,29 @@
#!/bin/bash
ologo(){
echo -en "$w_h";
printf " %-s\n" " ___ ____ ___" " / _ \\/ ___| / __|__ _ _ __ ___" "| | | \\___ \\| | / _\` | '_ \` _ \ " "| |_| |___) | |_| (_| | | | | | |" " \\___/|____/ \\___\\__,_|_| |_| |_|" " ";
};
slogo(){
echo -en "$w_h";
printf " %-s\n" " _ _ _ " " ___| |_ _ __ ___ __ _ _ __ ___ | |__ ___ __ _ _ __ __| |" "/ __| __| '__/ _ \/ _\` | '_ \` _ \| '_ \ / _ \ / _\` | '__/ _\` |" "\__ \ |_| | | __/ (_| | | | | | | |_) | (_) | (_| | | | (_| |" "|___/\__|_| \___|\__,_|_| |_| |_|_.__/ \___/ \__,_|_| \__,_|" " ";
};
bye(){
clear;
echo -en "$re_$w_l";
printf "\n\t\t simplebuild made for";
echo -e "$c_l";
slogo;
echo -e "\e[8;50H \e[8;50f" && echo -en "$g_l\t\t\t\t\t\t by gorgone $re_";
echo -e "\n";
exit;
};
s3logo(){
echo -e $C"
_________________
/ _____/\\_____ \\ ===============
\_____ \\ _(__ < $w_l Version $SIMPLEVERSION$C
/ \\ / \\ ===============
/_______ //______ / $y_l by gorgone$p_l 2019$C
\\/ \/ ===============\n$W";
};

547
support/functions/_misc

@ -0,0 +1,547 @@
#!/bin/bash
CPUS(){ nproc;};
clean(){ _clean;};
_nl(){ echo -e "$rs_";};
_set_dialog_types(){
gui="$(which dialog)";
st_="--stdout";
ib_="--infobox";
ip_="--inputbox";
nc_="--no-cancel";
cl_="--checklist";
rl_="--radiolist";
bt_="--backtitle";
pb_="--progressbox";
title_="SIMPLEBUILD_V($SIMPLEVERSION)";};
cedit(){ s3cfg_menu;bye;};
counter(){ COUNT="$((COUNT+1))";};
timer_calc(){ Tcalc="$((Te-Ts))";};
timer_stop(){ Te="$(date +%s)";};
timer_start(){ Ts="$(date +%s)";};
decode(){ echo -en "$1" | base64 -d;};
get_module_name(){ echo "${INTERNAL_MODULES[$1]}";};
_fix_config_h(){ _=0;
#_pcsc_off;_stapi5_off;
};
_wait(){ echo -e "$w_l";read -n1 -r -p " $txt_help3" key;tput cuu1;echo ' ';}
_systype(){ systype="bad";case "$(uname -m)" in x86|x86_64|amd64|i686) systype="ok";;esac;};
_pcsc_on(){ sed -i 's@^//#define CARDREADER_PCSC 1@#define CARDREADER_PCSC 1@g' "$svndir/config.h";};
_pcsc_off(){ sed -i 's@^#define CARDREADER_PCSC 1@//#define CARDREADER_PCSC 1@g' "$svndir/config.h";};
_stapi5_on(){ sed -i 's@^//#define CARDREADER_STAPI5 1@#define CARDREADER_STAPI5 1@g' "$svndir/config.h";};
_stapi5_off(){ sed -i 's@^#define CARDREADER_STAPI5 1@//#define CARDREADER_STAPI5 1@g' "$svndir/config.h";};
_generate_oscam_name(){ cd "$svndir";_dvbapi=$(
[ "$(./config.sh --enabled HAVE_DVBAPI)" == Y ] && echo -n -dvbapi || echo ''; );_webif=$(
[ "$(./config.sh --enabled WEBIF)" == Y ] && echo -n -webif || echo ''; );_ssl=$(
[ "$(./config.sh --enabled WITH_SSL)" == Y ] && echo -n -ssl || echo ''; );_emu=$(
[ "$(./config.sh --enabled WITH_EMU)" == Y ] && echo -n -emu || echo ''; );_ipv6=$(
[ "$(./config.sh --enabled IPV6SUPPORT)" == Y ] && echo -n -ipv6 || echo ''; );
[ "${USE_vars[USE_COMPRESS]}" == "USE_COMPRESS=1" ] && _upx="-upx" || _upx='';
[ "$1" == "native" ] && _b_name="$(hostname)$_upx" || _b_name="$1";
oscam_name="oscam-svn$(REVISION)-$_b_name$_webif$_dvbapi$_ssl$_usb$_pcsc$_stapi$_stapi5$_emu$_ipv6$_upx";};
e_readers(){ silent=$("$svndir/config.sh" -s readers);echo ${silent//READER_/};};
e_protocols() { silent=$("$svndir/config.sh" -s protocols);echo ${silent//MODULE_/};};
e_card_readers(){ silent=$("$svndir/config.sh" -s card_readers);echo ${silent//CARDREADER_/};};
e_addons(){ "$svndir/config.sh" -s addons |sed 's/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g';};
sysinfo(){
echo -e "$g_l\nSYSTEM$w_l";
system_info=$(which lsb_release);
[ ${#system_info} -ge 11 ] && lsb_release -irc;
echo -e "Uptime:\t\t$(uptime -p)";
echo -e "$g_l\nMEMORY$w_l";
free -mht | awk '/Mem/{print "Memory:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"} /Swap/{print "Swap:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb" }';
[ -f /sys/dev/block ] && lsblk;
echo -e "$g_l\n CPU$w_l";
cpu_info=$(which lscpu);
[ ${#cpu_info} -ge 5 ] && lscpu | grep -iE 'model name|vendor id|Architecture|per socket|MHz';
echo -e "$g_l\nNetwork";
echo -e "$w_l""Hostname:\t$HOSTNAME";
ip -o addr | awk '/inet /{print "IP (" $2 "):\t" $4}';
route -n | awk '/^0.0.0.0/{ printf "Gateway:\t"$2"\n" }';
awk '/^nameserver/{ printf "Name Server:\t" $2 "\n"}' /etc/resolv.conf;
echo -e "$re_";
exit;
};
_pget(){
tc_dl="$dldir/$(decode "$_t1e""$_toolchainfilename")";
[ -f "$tc_dl" ] && rm -rf "$tc_dl";
#tput civis;
cd "$dldir";
zeile=$(expr 12+$zzusatz);
spalte=$(expr 17+$szusatz);
wget -N --progress=dot "$(decode "$_u1e")/$dln" 2>&1 |grep --line-buffered "%"|awk '{ printf "\033["'$zeile'";"'$spalte'"H\033[K%-4s ", $7;} {printf "'"$txt_wait >"'";} {printf " %-6s",$9;}';
echo -e "\033["$zeile";"$spalte"H\033[K100% done... "$W;
#tput cnorm;
};
_clean(){
[ -L "$workdir/lastbuild.log" ] && rm -rf "$workdir/lastbuild.log";
[ -L "$workdir/lastpatch.log" ] && rm -rf "$workdir/lastpatch.log";
clear;
echo -e "$w_l";
ologo;
for e in "$menudir" "$bdir" "$ldir" "$tcdir";do
echo -e " $r_l$txt_delete$w_l\t$e"| sed "s@$workdir@@g";
done;
rm -rf "$menudir" "$bdir" "$ldir" "$tcdir" 2>/dev/null;
for e in "$menudir" "$bdir" "$ldir" "$tcdir";do
echo -e " $g_l$txt_create$w_l\t$e"| sed "s@$workdir@@g";
done;
mkdir -p "$menudir" "$bdir" "$ldir" "$tcdir" 2>/dev/null;
sleep 2;
svnrestore;
_nl;
};
_sz(){
lmin=24;
lmax=40;
_lin=$(tput lines);
cmin=79;
cmax=200;
_col=$(tput cols);
if [ "$_lin" -gt "$lmin" ];then
if [ "$_lin" -lt "$lmax" ] || [ "$_lin" -eq "$lmax" ];then
_lines="$((_lin-6))";
fi;
if [ "$_lin" -gt "$lmax" ];then
_lines="$((lmax-6))";
fi;
fi;
if [ "$_col" -gt "$cmin" ];then
if [ "$_col" -lt "$cmax" ] || [ "$_col" -eq "$cmax" ];then
_cols="$((_col-6))";
fi;
if [ "$_col" -gt "$cmax" ];then
_cols="$((cmax-6))";
fi;
fi;
};
save_master(){
[ -f "$svndir/config.sh" ] && cat "$svndir/config.sh" >"$configdir/config.sh.master";
[ -f "$svndir/Makefile" ] && cat "$svndir/Makefile" >"$configdir/Makefile.master";
};
_pre_build(){
_oscamconfdir_default="";
_oscamconfdir_custom="";
source "$tccfgdir/$1";
clear;
_nl;
echo $WH;
ologo;
_tcfile="";
dln="$(decode "$_t1e")$(decode "$_toolchainfilename")";
tc_dl="$dldir/$dln";
if [ -f "$tcdir/$_toolchainname/bin/$_compiler""gcc" ];then
if [ "$run" == "0" ];then
echo -e "$w_l toolchain :$y_l $_toolchainname";
echo -e "$w_l status :$g_l compiler $txt_found ";
echo -e "$w_l compiler :$p_l $_compiler""gcc";
else
echo -e "$w_l toolchain :$y_l $_toolchainname ";
echo -e "$w_l recheck :$g_l ok $txt_now compiler $txt_found";
echo -e "$w_l compiler :$p_l $_compiler""gcc ";
fi;
else
[ "$run" == "1" ] && echo "$txt_error : build not possible" && exit;
_nl;
echo -e "$w_l toolchain :$y_l $_toolchainname ";
echo -e "$w_l status :$r_l compiler $txt_not_found";
echo -en "$w_l backupcheck : ";
if [ -f "$dldir/$dln" ];then
echo -e "$g_l$dln $txt_found";
echo -en "$w_l $txt_extracting :$y_l $txt_wait";
_console_extract_toolchain;
run=1;
else
echo -e "$r_l$dln $txt_not_found ";
echo -en "$w_l $txt_loading :$g_l";
zzusatz=1;szusatz=1;
_pget;
_nl;
echo -en "$w_l $txt_extracting :$y_l $txt_wait";
_console_extract_toolchain 1;
run=1;
fi;
_pre_build "$1";
fi;
_cmd_build "$_toolchainname";
};
_init_menu(){ IFS="#";COUNT=0;MENU_OPTIONS="BACK#$txt_back#";counter;};
_select_menu(){
revision_="$(REVISION)";
_menutext="Simplebuild V$SIMPLEVERSION by Gorgone";
smenu=$(
"$gui" "$st_" "$bt_" "$title_" "$nc_" --title "-[ $txt_start_menu ]-" --menu "\n $_menutext" 13 55 7 "Continue" "$txt_firstmenu_continue r$revision_" "CHANGE" "$txt_firstmenu_chose" "CEDIT" "$txt_firstmenu_cedit" "LANG" "$txt_firstmenu_lang" "EXIT" "$txt_firstmenu_exit");
[ $? = 255 ] && _select_menu;
case $smenu in
Continue)
if [ ! -f "$svndir/config.sh" ];then
"$gui" "$st_" "$bt_" "$title_" --infobox "\n $txt_no oscam-svn $txt_found" 5 35;
sleep 2;
_select_menu;
else
_toolchain_main_menu;
fi;;
CHANGE)
new_rev=$("$gui" "$st_" "$nc_" --cr-wrap "$ip_" "Revision: 7000+ \nRevision: 0 = $txt_latest" 9 35);
[[ $new_rev =~ ^-?[0-9]+$ ]] && [ ! "$new_rev" -le "7000" ] && _rev="$new_rev" || _rev=0;
_dialog_checkout1 "$_rev";
_select_menu;;
CEDIT)
s3cfg_menu;
_select_menu;;
LANG)
lang_select;
cd "$workdir";
./s3 menu;;
EXIT)
bye;;
esac;
exit;
};
_oscam_extra_menu(){
uv=;
check_smargo;
unset MENU_OPTIONS;
for e in "${!USE_vars[@]}";do
if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ] && [ ! "$e" == "USE_LIBUSB" ];then
if [ "${#USE_vars[$e]}" -gt "4" ];then
MENU_OPTIONS+=( "$e" "$e" on );
else
MENU_OPTIONS+=( "$e" "$e" off );
fi;
fi;
done;
oextra=$("$gui" "$st_" "$nc_" "$bt_" "$title_" --title "-[ Oscam EXTRA ]-" "$cl_" " OPTIONS " 19 40 12 ${MENU_OPTIONS[@]});
[ $? = 255 ] && _toolchain_extra_menu;
for e in "${!USE_vars[@]}";do
if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ] && [ ! "$e" == "USE_LIBUSB" ];then
ok=0;
for oex in $oextra;do
o=$(echo "$oex" | tr -d '"');
[ "$e" == "$o" ] && ok=1;
done;
if [ "$ok" == "1" ];then
USE_vars[$e]="$e=1";
else
USE_vars[$e]=;
fi;
fi;
done;
[ "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ] && _pcsc_on;
[ ! "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ] && _pcsc_off;
save_config;
_toolchain_config_menu;
};
_build_extra_menu(){
us=;
check_smargo;
unset MENU_OPTIONS;
for e in USE_COMPRESS USE_TARGZ USE_PATCH;do
[ "${#USE_vars[$e]}" -gt "4" ] && MENU_OPTIONS+=( "$e" "$e=1" on ) || MENU_OPTIONS+=( "$e" "$e=1" off );
done;
bextra=$("$gui" "$st_" "$nc_" "$bt_" "$title_" --title "-[ Build EXTRA ]-" "$cl_" " OPTIONS " 10 40 3 ${MENU_OPTIONS[@]});
[ $? = 255 ] && _build_extra_menu;
USE_vars[USE_COMPRESS]=;
USE_vars[USE_PATCH]=;
USE_vars[USE_TARGZ]=;
for bex in $bextra;do
b=$(echo "$bex" | tr -d '"');
USE_vars[$b]="$b=1";
done;
save_config;
_toolchain_config_menu;
};
_pre_main_menu(){
IFS="#";
COUNT=0;
MENU_OPTIONS="EXIT#$txt_menu_builder1#";
counter;
MENU_OPTIONS=${MENU_OPTIONS}"ADD#$txt_menu_builder2#";
counter;
if [ "$tcempty" == "0" ];then
MENU_OPTIONS="${MENU_OPTIONS}REMOVE#$txt_menu_builder3#";
counter;
fi;
MENU_OPTIONS="${MENU_OPTIONS}NATIVE#$txt_menu_builder4$native#";
counter;
_a=$(uname -m);
if [ "$systype" == "ok" ];then
if [ "$tcempty" == "0" ];then
for i in "${INST_TCLIST[@]}";do
source "$tccfgdir/$i";
MENU_OPTIONS="${MENU_OPTIONS}$_toolchainname#$_description#";
counter;
done;
fi;
fi;
out=$("$gui" --help-button --help-label INFO --title "-[ Toolchain Menu V$SIMPLEVERSION ]-" --menu "$txt_t_menu1$REVISION" "${COUNT+8}" 75 0 "${MENU_OPTIONS}");
IFS=$OIFS;
first=$(echo "$out" | awk '{printf $1}');
tc_info=$(echo "$out" | awk '{printf $2}');
if [ "$first" == "HELP" ];then
if [ -f "$tccfgdir/$(echo "$out" | awk '{printf $2}')" ];then
source "$tccfgdir/$tc_info";
echo -e "\n\n\tinfobox $_tc_info";
sleep 4;
fi;
fi;
if [ "$first" == "EXIT" ];then
bye;
else
toolchain_main_menu;
fi;
};
tedit(){
clear;
if [ -f "$tccfgdir/$1" ];then
source "$tccfgdir/$1";
echo -e $y_l;
slogo;
echo -e " $p_l change CONF_DIR for $c_l$_toolchainname$w_l\n";
echo -e $w_l" current =$c_l $_oscamconfdir_custom";
echo -e $w_l" default =$c_l $_oscamconfdir_default";
echo -en $w_l" Enter new =$w_l ";read name;
echo -e " now =$y_l CONF_DIR=$name\n$re_";
sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$name\"@ "$tccfgdir/$_toolchainname";
fi;
};
_gtedit(){
if [ -f "$tccfgdir/$_toolchainname" ];then
source "$tccfgdir/$_toolchainname";
input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " --inputbox "\n CONF_DIR=$_oscamconfdir_default 'default'\n [ESC] = default\n" 0 0 "$_oscamconfdir_custom");
retval=$?;
case $retval in
0)
confdir="$input";;
1)
confdir="$_oscamconfdir_custom";;
255)
confdir="$_oscamconfdir_default";;
esac;
sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$confdir\"@ "$tccfgdir/$_toolchainname";
source "$tccfgdir/$_toolchainname";
fi;
};
check_smargo(){
if [ -f "$svndir/config.sh" ];then
if [ "$("$svndir/config.sh" -e CARDREADER_SMARGO)" == "Y" ];then
USE_vars[USE_LIBUSB]="USE_LIBUSB=1";
else
USE_vars[USE_LIBUSB]=;
fi;
fi;
};
_reset_config(){
if [ -f "$svndir/config.sh" ];then
[ -f "$menudir/$_toolchainname.save" ] && rm -rf "$menudir/$_toolchainname.save";
if [ ! -f "$workdir/SVN-IS-PATCHED" ];then
reset_="$("$svndir/config.sh" -R)";
fi;
else
_select_menu;
fi;
};
_get_config_menu(){
tmp="$(mktemp)";
while read -r _l;do
c=$(echo "$_l" | tr -cd \" | wc -c);
_c=$((_c + c));
[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp";
[ ${_c} -eq 10 ] && break;
done <"$svndir/config.sh";
mk="$(grep '^ USE_' "$workdir/oscam-svn/Makefile" |sort -u|awk '{print $1}')";
for e in $mk;do
USE_vars[${e:0:-2}]=;
done;
check_smargo;
source "$tmp";
rm -rf "$tmp";
};
read_s3cfg(){
if [ -f "$s3cfg" ];then
while read l;do
s3cfg_vars[$(echo "$l"| awk -F'=' '{print $1}')]=$(echo "$l"| awk -F'=' '{print $2}');
done < "$s3cfg";
fi;
};
s3cfg_menu(){
unset CFG_MENU;
declare -a CFG_MENU;
old_IFS=$IFS;
COUNT=0;
found="";
for e in "${!s3cfg_vars[@]}";do
CFG_MENU+="$e#on/off#$([ "${s3cfg_vars[$e]}" -gt "0" ] && echo on || echo off)#";
counter;
done;
IFS="#";
erg=$("$gui" "$st_" "$bt_" "$title_" "$cl_" "enable/disable options" 16 45 10 ${CFG_MENU[@]});
IFS=$old_IFS;
for e1 in "${!s3cfg_vars[@]}";do
for e2 in $erg;do
found="0";
if [ "$e1" == "${e2//\'}" ];then
found="1";
break;
fi;
done;
if [ "$found" == "1" ];then
s3cfg_vars[$e1]=1;
else
s3cfg_vars[$e1]=0;
fi;
done;
write_s3cfg;
};
write_s3cfg(){
[ -f "$s3cfg" ] && rm -rf "$s3cfg";
for e in "${!s3cfg_vars[@]}";do
echo "$e=${s3cfg_vars[${e}]}" >>"$s3cfg";
done;
};
_stapi_select(){
if [ "$stapi_allowed" == "1" ];then
stapivar='';
addstapi=;
USESTRING=;
stapimode=$($gui $rl_ " SELECT STAPI MODE" 12 0 5 0 "STAPI_OFF" on 1 "USE_STAPI" off 2 "USE_STAPI5 UFS916" off 3 "USE_STAPI5 UFS916003" off 4 "USE_STAPI5 OPENBOX" off 3>&1 1>&2 2>&3);
usevars=$(echo $usevars | sed "s@USE_STAPI5@@" | xargs);
usevars=$(echo $usevars | sed "s@USE_STAPI@@" | xargs);
case $stapimode in
0)
stapivar=;;
1)
stapivar="STAPI_LIB=$sdir/stapi/liboscam_stapi.a";
addstapi="USE_STAPI";;
2)
stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916.a";
addstapi="USE_STAPI5";;
3)
stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916_0.03.a";
addstapi="USE_STAPI5";;
4)
stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_OPENBOX.a";
addstapi="USE_STAPI5";;
esac;
save_config;
else
"$gui" "$st_" --title "STAPI INFO" --msgbox "NOT for $_toolchainname" 0 0;
_toolchain_config_menu;
fi;
};
save_config(){
usevars=;
enabled=;
disabled=;
check_smargo;
enabled=($("$svndir/config.sh" -s));
disabled=($("$svndir/config.sh" -Z));
[ "$_toolchainname" == "sh4" ] && unset USE_vars[USE_COMPRESS];
[ "$_toolchainname" == "sh_4" ] && unset USE_vars[USE_COMPRESS];
unset USE_vars[USE_STAPI];
unset USE_vars[USE_STAPI5];
for e in ${USE_vars[*]};do
usevars="${e:0:-2} $usevars";
done;
[ -f "$menudir/$_toolchainname.save" ] && rm -rf "$menudir/$_toolchainname.save";
echo "enabled=\"${enabled[*]}\"" >"$menudir/$_toolchainname.save";
echo "disabled=\"${disabled[*]}\"">>"$menudir/$_toolchainname.save";
if [ "$stapi_allowed" == "1" ];then
if [ "${#stapivar}" -gt "15" ];then
echo "stapivar=\"$stapivar\"">>"$menudir/$_toolchainname.save";
echo "usevars=\"$usevars $addstapi\"" >>"$menudir/$_toolchainname.save";
else
echo "usevars=\"$usevars\"" >>"$menudir/$_toolchainname.save";
fi;
else
echo "usevars=\"$usevars\"" >>"$menudir/$_toolchainname.save";
fi;
};
load_config(){
_stapi=;
_stapi5=;
enabled=;
disabled=;
stapivar="";
USESTRING=;
usevars=;
unset USE_vars[USE_STAPI];
unset USE_vars[USE_STAPI5];
if [ -f "$menudir/$_toolchainname.save" ];then
source "$menudir/$_toolchainname.save";
ena=$("$svndir/config.sh" -E $enabled);
dis=$("$svndir/config.sh" -D $disabled);
for e in $usevars;do
USE_vars[$e]="$e=1";
[ "$e" == "USE_LIBUSB" ] && silent=$("$svndir/config.sh" --enable CARDREADER_SMARGO);
[ "$e" == "USE_PCSC" ] && sed -i 's@^//#define CARDREADER_PCSC 1@#define CARDREADER_PCSC 1@g' "$svndir/config.h";
done;
else
_reset_config;
[ "${s3cfg_vars[USE_TARGZ]}" == "1" ] && USE_vars[USE_TARGZ]="USE_TARGZ=1";
[ "${s3cfg_vars[USE_COMPRESS]}" == "1" ] && USE_vars[USE_COMPRESS]="USE_COMPRESS=1";
for e in $default_use;do
USE_vars[$e]="$e=1";
done;
fi;
check_smargo;
[ "$_toolchainname" == "sh4" ] && unset USE_vars[USE_COMPRESS];
[ "$_toolchainname" == "sh_4" ] && unset USE_vars[USE_COMPRESS];
USESTRING="$(echo "${USE_vars[@]}"| sed 's@USE_@@g'| sed 's@=1@@g'| tr -s ' ')";
};
_get_config_con(){
if [ ! "$1" == "checkout" ] && [ ! "$1" == "clean" ];then
tmp="$(mktemp)";
if [ -f "$svndir/config.sh" ];then
while read -r _l;do
c=$(echo "$_l" | tr -cd \" | wc -c);
_c=$((_c + c));
[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp";
[ ${_c} -eq 10 ] && break;
done <"$svndir/config.sh";
else
while read -r _l;do
c=$(echo "$_l" | tr -cd \" | wc -c);
_c=$((_c + c));
[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp";
[ ${_c} -eq 10 ] && break;
done <"$configdir/config.sh.master";
fi;
if [ -f "$workdir/oscam-svn/Makefile" ];then
str_="$(grep '^ USE_' "$workdir/oscam-svn/Makefile"| sort -u| awk '{print $1}')";
for e in $str_;do
es="${e:0:-2}";
USE_vars[$es]=;
done;
else
str_="$(grep '^ USE_' "$configdir/Makefile.master"| sort -u| awk '{print $1}')";
for e in $str_;do
es="${e:0:-2}";
USE_vars[$es]=;
done;
fi;
check_smargo;
source "$tmp";
rm -rf "$tmp" "$tmp1";
rm -rf "$tmp.load" "$tmp1.load";
fi;
};
_gtedit(){
if [ -f "$tccfgdir/$_toolchainname" ];then
source "$tccfgdir/$_toolchainname";
input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " --inputbox "\n CONF_DIR=$_oscamconfdir_default 'default'\n [ESC] = default\n" 0 0 "$_oscamconfdir_custom");
retval=$?;
case $retval in
0)
confdir="$input";;
1)
confdir="$_oscamconfdir_custom";;
255)
confdir="$_oscamconfdir_default";;
esac;
sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$confdir\"@ "$tccfgdir/$_toolchainname";
source "$tccfgdir/$_toolchainname";
fi;
};

102
support/functions/_patch

@ -0,0 +1,102 @@
#!/bin/bash
get_patch(){ _get_patch; };
_get_patch(){
cd $pdir;
[ -f patch.url ] && source patch.url;
clear;
echo -e $C;
ologo;
echo -e $WH;
[ -f $PATCHNAME ] && echo -e "$Y old patch found\n remove $P$PATCHNAME" && rm -f $PATCHNAME;
echo -e $W" load $PATCHNAME";
wget -q -O$PATCHNAME $PATCHURL;
[ -f $PATCHNAME ] && echo -e $G" ok$W new $PATCHNAME loadet\n" || echo -e $R" patch not found\n"$W;
};
_apply_menupatch(){
cd "$pdir";
pf=(*);
if [ ${#pf[@]} -gt 1 ];then
[ -f "$workdir/SVN-IS-PATCHED" ] && quicksvnrestore $_toolchainname 2>/dev/null;
if [ ! -f "$workdir/SVN-IS-PATCHED" ];then
(if [ "$(ls -A "$pdir"/*.patch 2>/dev/null)" ];then
cd "$pdir";
unset patchlist;patchlist=`ls *.patch | sort -st '/' -k1,1`;
for e in ${patchlist[@]};do
_w="ok";
cd "$svndir";
patchlog="$(mktemp)";
echo "PATCH : apply $e";
patch -f -p0 < "$pdir/$e" >>"$patchlog" 2>/dev/null;
hunks=$(grep -c1 '^Hunk' "$patchlog");
fails=$(grep -c1 'hunks FAILED' "$patchlog");
if [ "$hunks" -gt "0" ];then
echo "PATCH : $hunks x HUNK for $e";
_w="hunk";
fi;
if [ "$fails" -gt "0" ];then
echo "PATCH : $fails x FAILS for $e";
_w="fail";
fi;
done;
case $_w in
ok)
echo "PATCH : done all ok";
touch "$workdir/SVN-IS-PATCHED";;
hunk)
echo "PATCH : done with warnings save $e.log";
cat $patchlog >>"$ldir/$e.log";
ln -sf "$ldir/$e.log" "$workdir/lastpatch.log";
touch "$workdir/SVN-IS-PATCHED";;
fail)
echo "PATCH : break build save $e.log";
cat $patchlog >>"$ldir/$e.log";
ln -sf "$ldir/$e.log" "$workdir/lastpatch.log";
touch "$workdir/SVN-IS-PATCHED";;
esac;
rm -rf "$patchlog";
fi;)|"$gui" "$st_" "$bt_" "$title_" "$pb_" 12 62;sleep 2;
fi;
fi;
};
_apply_consolepatch(){
if [ ! -f "$workdir/SVN-IS-PATCHED" ];then
cd "$pdir";
if [ "$(ls -1 "$pdir"/*.patch 2>/dev/null | wc -l)" -gt "0" ];then
unset patchlist;patchlist=`ls *.patch | sort -st '/' -k1,1`;
for e in ${patchlist[@]};do
_w=0;cd "$svndir";
patchlog="$(mktemp)";
echo -e "$y_l| PATCH : apply $e";
patch -F 10 -f -p0 < "$pdir/$e" >>"$patchlog" 2>/dev/null;
hunks=$(grep -c1 "^Hunk" "$patchlog");
fails=$(grep -c1 "hunks FAILED" "$patchlog");
if [ "$hunks" -gt "0" ];then
echo -e "$y_l| PATCH :$w_l $hunks x HUNK for $e";
_w=1;
fi;
if [ "$fails" -gt "0" ];then
echo -e "$y_l| PATCH :$r_n FAIL (breaking Build) = $fails";
echo -en "$w_l| RESTORE :$c_w LAST SVN BACKUP in ";
for (( i=6; i>0; i--));do
sleep 1 & echo -en "$i\b";
wait;
done;
svnrestore lastsvn;
exit;
fi;
cat $patchlog >"$ldir/$e.log";
ln -sf "$ldir/$e.log" "$workdir/lastpatch.log";
rm -rf "$patchlog";
done;
if [ "$_w" -gt "0" ];then echo -e "$y_l| PATCH : done with warnings";
touch "$workdir/SVN-IS-PATCHED";
else
echo -e "$y_l| PATCH :$g_l done all ok$rs_";
touch "$workdir/SVN-IS-PATCHED";
fi;
else
echo -en "$y_l| PATCH : no patch found\n";
fi;
fi;
};

104
support/functions/_profiles

@ -0,0 +1,104 @@
#!/bin/bash
profiles(){
_list_profiles;
exit;
};
_list_profiles(){
cd "$profdir";
profiles=(*.profile);
if [ ${#profiles[@]} -gt 0 ];then
echo -e "$c_l";
clear;
slogo;
echo -e "$y_l\n $txt_profiles $txt_found $txt_for ( ./$(basename "$0") \"tcname\" -p=name.profile )";
echo -e "$w_l ======================================================\n";i=0;
for e in "${profiles[@]}";do
((i++));
echo -e "$w_l ($i) > $e";
done;
fi;
echo -e "\n$rs_";
};
_save_profile(){
if [ -f "$menudir/$_toolchainname.save" ];then
source "$menudir/$_toolchainname.save";
input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " $ip_ "\n SAVE PROFILE\n" 0 0 "$_toolchainname");
echo $enabled $usevars | sed -e 's/CARDREADER_//g;s/READER_//g;s/MODULE_//g;s/HAVE_//g;s/WEBIF_//g;s/WITH_//g;s/CS_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g;' >"$profdir/$input.profile";
fi;
};
_load_profile(){
if [ "$(ls -A "$profdir")" ];then
ok=0;
loadprofile="no";
USESTRING=;
_create_module_arrays;
unset selection;
declare -a SELECTION;
cd "$profdir";
p_files=(*.profile);
i=0;
for e in "${p_files[@]}";do
((i++));SELECTION+=($e '<');
done;
pselect=$("$gui" "$st_" "$bt_" "$title_" --no-cancel --title " -[ $txt_select_profile_title ]- " --menu "\n $txt_select_profile\n\n" 0 0 "$i" "${SELECTION[@]}");
[ $? = 255 ] && loadprofile="yes" && _toolchain_build_menu;
"$gui" "$st_" "$bt_" "$title_" --yesno "\n$txt_confirm_profile_select\n\n$pselect\n\n" 0 0;
response=$?;
case "$response" in
1)
loadprofile="yes";
_toolchain_build_menu;;
255)
loadprofile="yes";
_toolchain_build_menu;;
esac;
if [ -f "$profdir/$pselect" ];then
profile_vars=$(cat "$profdir/$pselect";);
reset_="$("$svndir/config.sh" -D all)";
for e in "${!USE_vars[@]}";do
USE_vars[$e]=;
done;
for e1 in $profile_vars;do
for e2 in "${!USE_vars[@]}";do
[ "$e1" == "$e2" ] && USE_vars[$e1]="$e1=1";
done;
for sm in "${SHORT_MODULENAMES[@]}";do
if [ "$e1" == "$sm" ];then
_em_="$_em_ $(get_module_name "$sm")";
fi;
done;
done;
_set_=$("$svndir/config.sh" -E $_em_);
USESTRING="$(echo "${USE_vars[@]}"| sed 's@USE_@@g' | sed 's@=1@@g'| tr -s ' ')";
loadprofile="yes";
fi;
else
$gui --msgbox "\n$txt_no_profile_found \n " 0 0;
fi;
loadprofile="no";
};
_create_native_profile(){
[ ! -d "$tcdir/native/bin" ] && mkdir -p "$tcdir/native/bin";
cd "$tcdir/native/bin";
g="$(which gcc)";
stripvar="$(which strip)";
compiler_link="$($g -dumpmachine)-gcc";
strip_link="$($g -dumpmachine)-strip";
[ ! -L "$compiler_link" ] && ln -sf "$g" "$compiler_link";
[ ! -L "$strip_link" ] && ln -sf "$stripvar" "$strip_link";
cd "$tccfgdir";
cat << EOF > native
_toolchainname="native";
default_use="USE_UTF8 USE_LIBCRYPTO";
_oscamconfdir_default="/usr/local/etc";
_oscamconfdir_custom="not_set";
_compiler="$($g -dumpmachine)-";
_tc_info="Native System Compiler \
$(gcc --version)";
_libsearchdir="/lib";
_menuname="native";
_sysroot="/";
EOF
cd "$workdir";
};

193
support/functions/_subversion

@ -0,0 +1,193 @@
#!/bin/bash
checkout(){
echo -en "$c_l";
fc1="$(mktemp)";
clear;
ologo;
i=0;
COUNT=0;
if [ -d "$svndir" ];then
rm -rf "$svndir";
echo -e "$p_l\n $txt_delete $txt_existing oscam-svn $re_\n";
else
echo -e "$p_l\n $txt_no oscam-svn $txt_found\n$re_";
fi;
echo -e "$w_l SVN TrunkURL : $g_l$trunkurl$re_";
[ ! -z "$1" ] && [ $(($1)) -gt 6999 ] && opt_="-r$1" && mac_="($txt_selected)" || opt_='';
echo -en "$w_l SVN FileCount : ";
svn info -R "$trunkurl" |grep '^URL' |uniq |wc -l >"$fc1";
n=$(cat "$fc1");
echo -e "$g_l""$txt_found $n";
echo -en "$w_l SVN checkout : ";
while read line filename;do
counter=$(( 100*(++i)/n));
tput cup 11 18;
[ "$counter" -lt "100" ] && echo -en "$g_l""$counter%$re_" || echo -en "$g_l""100%$re_";
done < <( svn co "$trunkurl" $opt_ "$svndir" |sed "s|$svndir/||g");
tput cup 11 18;
echo -en "$g_l""100%$re_";
if [ -f "$svndir/config.sh" ];then
tput cup 12 2;
echo -en "$w_l""SVN Revision : $y_l""$("$svndir/config.sh" -r) $b_l$mac_$re_\n$w_l SVN UserPath : $y_l""$svndir";
fi;
[ -f "$svndir/config.h" ]&& reset_="$("$svndir/config.sh" -R)";
_fix_config_h;
rm -rf "$fc1";
_nl;
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED";
tarsvn;
};
svnrestore(){
clear;
echo -en "$c_l";
ologo;
if [ "$1" == "list" ];then
cd "$bsvn";
bfiles="$(find . -type f |sed 's|./||' |sed 's|.tar.gz||')";
bcount=$(echo "$bfiles" |wc -w);
if [ "$bcount" -gt "0" ];then
echo -e "\n$c_l $bcount$w_l svn backups found\n ____________________$re_\n";
for b in $bfiles;do
echo -e "$c_l --> $w_l$b";
done;
_nl;
else
echo -e "\n$r_l $bcount$w_l svn backups found\n ____________________$re_\n";
fi;
exit;
fi;
if [ -d "$svndir" ];then
rm -rf "$svndir";
echo -e "$p_l\n $txt_delete $txt_existing oscam-svn $re_\n";
else
echo -e "$p_l\n $txt_no oscam-svn $txt_found\n$re_";
fi;
untarsvn $1;
[ -f "$svndir/config.h" ]&& echo -en "$w_l"" SVN Revision : $y_l""$("$svndir/config.sh" -r) restored\n\n$re_";
};
quicksvnrestore(){
untarsvn $1;
};
svnup(){
echo -en "$c_l";
clear;
ologo;
i=1;
if [ -d "$svndir" ];then
echo -en "$p_l\n $txt_update oscam-svn $re_\n";
else
checkout;
return;
fi;
echo -en "\n$w_l SVN TrunkURL : $g_l""$trunkurl""$re_";
svn co "$trunkurl" "$svndir" -q;
if [ -f "$svndir/config.sh" ];then
tput cup 10 2;
echo -e "$w_l""SVN Revision : ""$y_l$("$svndir/config.sh" -r) $b_l$mac_$re_\n$w_l SVN UserPath : $y_l""$svndir\n$re_";
fi;
if [ -f "$svndir/config.h" ];then
reset_="$("$svndir/config.sh" -R)";
_fix_config_h;
fi;
};
svnpatch(){
if [ ! -f "$workdir/SVN-IS-PATCHED" ];then
clear;
echo -e $C;
ologo;
unset patchlist;
cd "$pdir";
patchlist=(*.patch);
if [ "$(ls -A "$pdir"/*.patch 2>/dev/null)" ];then
touch "$workdir/SVN-IS-PATCHED";
for p in "${patchlist[@]}";do
echo -e $WH"\n\n -> $p <-\n"$W;
sleep 1;
patch -d$svndir/ -p0 < "$pdir/$p" |sed -e "s/^patching file/$G patching > $WH/g;s/^Hunk/$P Hunk > $Y/g;s/FAILED/$R FAILED/g; ;s/-- saving/$Y -- saving/g;";
done;
else
echo -e $WH" $txt_no patch $txt_found";
fi;
else
clear;
echo -e $C;
ologo;
echo -e $WH" already patched";
fi;
echo -e $W;
};
_dialog_checkout(){
upc="$(mktemp)";
(echo -en " $txt_verify_syscheck ";
[ "$sanity" == "1" ] && echo -e "ok" && sleep 1;
if [ "${s3cfg_vars[NO_SVN_AUTOUPDATE]}" == "0" ];then
echo -en " $txt_verify_svn ";
if [ -f "$svndir/config.sh" ];then
echo "ok";
sleep 1;
echo -en " $txt_update_svn $txt_wait\n";
cd "$svndir";
svn -q update;
echo 1 >"$upc";
sleep 1;
fi;
fi;) | "$gui" "$st_" "$bt_" "$title_" "$pb_" 5 52;
if [ "${s3cfg_vars[NO_SVN_AUTOUPDATE]}" == "0" ];then
upc1=$(cat "$upc" 2>/dev/null);
rm -f "$upc";
[ ! "$upc1" == "1" ] && _dialog_checkout1;
if [ -f "$svndir/config.sh" ];then
reset_="$("$svndir/config.sh" -R)";
_fix_config_h;
fi;
_get_config_menu;
fi;
if [ -n "$1" ];then
if [ -f "$tccfgdir/$1" ] && [ -f "$svndir/config.sh" ];then
source "$tccfgdir/$1";
if [ ! -f "$tcdir/$_toolchainname/bin/$_compiler""gcc" ];then
first="$1";
_toolchain_gui_install;
fi;
loadprofile="yes";
_toolchain_build_menu "$1";
else
_select_menu;
fi;
fi;
_select_menu;
};
_dialog_checkout1(){
rm -rf "$svndir" 2>/dev/null;
COUNT=0;
[ -z "$1" ] && rn=0 || rn="$1";
if [ "$rn" -ge "7000" ];then
_rev="-r $rn";
sc_text="Revision: $rn";
else
_rev='';
sc_text="$txt_latest";
fi;
(echo -en "$txt_prepare_svn $txt_wait";)| "$gui" "$st_" "$bt_" "$title_" "$pb_" 3 55;
nnn="$(svn info $_rev -R "$trunkurl" |grep "^URL: " |uniq |wc -l)";
"$gui" "$st_" "$bt_" "$title_" --title " -[ SVN Checkout $sc_text ]- " --gauge " $txt_wait" 6 75 < <(while read line filename;do ((++i));PCT=$(( 100*i/(nnn+1) ));
cat <<EOF
XXX
$PCT
$line
XXX
EOF
done < <(svn co "$trunkurl" "$svndir" $_rev| sed "s@$svndir@@g"| awk '{print $2}';
cd "$svndir";
if [ -f "$svndir/config.sh" ];then
reset_="$("$svndir/config.sh" -R)";
echo "Revision: $(REVISION) done...";
_fix_config_h;
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED";
_get_config_menu;
fi;));
};
REVISION(){
[ -d "$svndir" ] && cd "$svndir" && svnversion -n . 2>/dev/null| sed 's/[^0-9]//g' || echo " nosvn ";
};

122
support/functions/_sys_check

@ -0,0 +1,122 @@
#!/bin/bash
prerequisites(){
failed=0;
missing="(not found)";
[[ $1 ]] && output=": &&" || output="echo";
$output -e "$w_l\n CHECK for binaries\n ==================\n";
# check for a forgotten and unusable 'upx' and remove this crap
[ -x "$bindir"/upx ] && "$bindir"/upx -V &>/dev/null || rm -f "$bindir"/upx &>/dev/null;
for e in "${binvars[@]}";
do
if hash "$e" 2>/dev/null; then
$output -e "$w_l have\t$g_l$e\t\t$y_l$(which "$e")";
else
failed=1;
$output -e "$r_l need\t$w_l$e\t\t$r_l$missing";
fi;
done;
if hash upx 2>/dev/null; then
upxversion=($(upx -V | awk 'NR==1 { verok=$2>=3.91; printf "%.2f %i", $2, verok }'));
$output -n -e "$w_l version$g_l upx$y_l ${upxversion[0]}";
if [ ${upxversion[1]} == 1 ]; then
$output -e "$g_l ok";
else
$output -e "$r_l nok";
failed=1;
fi
fi
$output -e " \n $w_l CHECK for headers\n =================\n" ;
for e in "${headervars[@]}";
do
e1=$(find /usr/include/* | grep -m1 "$e");
if [ ${#e1} -gt 8 ]; then
$output -e "$w_l have\t$g_l$e$w_l$y_l\t$e1"
else
failed=1;
$output -e "$r_l need\t$w_l$e\t\t$r_l$missing";
fi;
done;
$output -e " \n $w_l CHECK for libraries\n ===================\n" ;
for e in "${libvars[@]}";
do
e1=$(find /usr/lib* 2>/dev/null | grep -m1 "$e");
if [ ${#e1} -gt 8 ]; then
$output -e "$w_l have\t$g_l$e$w_l$y_l\t$e1"
else
failed=1;
$output -e "$r_l need\t$w_l$e\t\t$r_l$missing";
fi;
done;
if [ "$(uname -m)" == "x86_64" ]; then
$output -e " \n $w_l CHECK for zlib32\n ================\n" ;
e="zlib32";
e1="/usr/lib/libz.so";
e2="/usr/lib32/libz.so.1";
if [ -f $e1 ]; then
$output -e "$w_l have\t$g_l$e$w_l$y_l\t$e1"
elif [ -f $e2 ]; then
$output -e "$w_l have\t$g_l$e$w_l$y_l\t$e2"
else
failed=1;
$output -e "$r_l need\t$w_l$e\t\t$r_l$missing";
fi
fi
return $failed;
}
# Parameters (all optional):
# $1: installer name (or "auto")
# $2: add architecture (not implemented yet)
#
# Example:
# syscheck debian_os
# call installer 'debian_os' (Do not care about the actual Linux distribution.)
syscheck(){
[[ $1 ]] && [ "$1" != "auto" ] && override="$1";
if [ -d "$osdir" ];then cd "$osdir";x=(*); for i in "${x[@]}";do source "$i"; done fi
binvars=( dialog grep gawk wget tar bzip2 svn xz upx patch gcc make scp sshpass openssl dos2unix );
headervars=( crypto.h libusb.h pcsclite.h pthread.h );
libvars=( libccidtwin.so );
sanity=1;
if ! prerequisites silent; then
echo -e "$w_l"; clear; ologo;
prerequisites;
sanity=0;
installer="unknown";
# Debian and Ubuntu
[ -f /etc/debian_version ] && installer="debian_os";
# CentOS and Redhat
[ -f /etc/redhat-release ] && installer="redhat_os";
# Manjaro (/etc/os-release)
[ -f /etc/manjaro-release ] && installer="manjaro_os";
# SuSE (/etc/SuSE-release is depreciated -> check for YaST2)
[ -d /etc/YaST2 ] && installer="suse_os";
# Optional override via parameter
[[ $override ]] && installer=$override;
echo -e "\n$w_l Selected installer: $installer";
if type -t "$installer" >/dev/null; then
$installer && prerequisites && sanity=1;
else
echo -e "\n$r_l Needs manual installation.";
fi
echo -e "$re_";
fi
return $sanity;
}

285
support/functions/_toolchain

@ -0,0 +1,285 @@
#!/bin/bash
_toolchain_build_menu(){
[ "$loadprofile" == "yes" ] && load_config;
selected=$(
"$gui" "$st_" "$bt_" "$title_" --no-cancel --title " -[ $txt_bmenu_title ]- " --menu "_________________________________________________________ \n $txt_bmenu_user = $(whoami)\n Toolchain = $_toolchainname\n $txt_bmenu_comp = $_compiler""gcc\n $txt_bmenu_debu = CPU-Threads($(CPUS)) SVN($(REVISION)) SCRIPT($SIMPLEVERSION)\n $txt_bmenu_use = $(echo $USESTRING| sed -e 's/^[ \t]*//')\n _________________________________________________________ \n" 22 65 10 BUILD "$txt_bmenu_build" CONFIGURE "$txt_bmenu_config" LOAD_PROFILE "$txt_bmenu_profile" SAVE_PROFILE "$txt_bmenus_profile" SHOW_BUILDLOG "$txt_bmenu_log" EDIT_CONF_DIR "Oscam config PATH" BACK "$txt_bmenu_back" EXIT "$txt_firstmenu_exit");
[ $? = 255 ] && _toolchain_build_menu;
case $selected in
BUILD)
_gui_build;;
CONFIGURE)
_toolchain_config_menu;;
EDIT_CONF_DIR)
_gtedit;
_toolchain_build_menu;;
SHOW_BUILDLOG)
_sz;
if [ -f "$workdir/lastbuild.log" ];then
"$gui" "$st_" "$bt_" "$title_" --textbox "$workdir/lastbuild.log" "$_lines" "$_cols";
fi;
_toolchain_build_menu;;
LOAD_PROFILE)
_load_profile;;
SAVE_PROFILE)
_save_profile;;
BACK)
_toolchain_main_menu;;
EXIT)
bye;
exit;;
esac;
_toolchain_build_menu;
};
_toolchain_config_menu(){
[ "$loadprofile" == "yes" ] && load_config;
selected=$(
"$gui" "$st_" "$bt_" "$title_" --no-cancel --title " -[ $txt_config_menu ]- " --menu " ADDONS :\n $(e_addons)\n\n PROTOCOLS :\n $(e_protocols)\n\n READERS :\n $(e_readers)\n\n CARD_READERS :\n $(e_card_readers)\n\n USE VARIABLES :\n $(echo $USESTRING| sed -e 's/^[ \t]*//')\n\n" 29 75 6 BACK "$txt_back_build" OSCAM_MODULE "$txt_module_configure" OSCAM_EXTRA "$txt_oscam_extra" BUILD_EXTRA "$txt_build_extra" SELECT_STAPI "select stapi" RESET "$txt_build_reset");
[ $? = 255 ] && _toolchain_config_menu;
case $selected in
BACK)
save_config;
_toolchain_build_menu;;
OSCAM_EXTRA)
_oscam_extra_menu;;
BUILD_EXTRA)
_build_extra_menu;;
OSCAM_MODULE)
eval "$svndir/config.sh -g" 2>/dev/null;
save_config;;
SELECT_STAPI)
_stapi_select;;
RESET)
_reset_config;
load_config;
_toolchain_config_menu;;
esac;
_toolchain_config_menu;
};
_toolchain_main_menu(){
_fill_tc_array;
IFS="#";
COUNT=0;
MENU_OPTIONS="BACK#$txt_back_main#";
counter;
if [ "$systype" == "ok" ];then
MENU_OPTIONS+="ADD#$txt_menu_builder2#";
counter;
[ "$tcempty" == "0" ] && MENU_OPTIONS+="REMOVE#$txt_menu_builder3#" && counter;
fi;
MENU_OPTIONS+="native#$txt_menu_builder4 $(hostname)-$(uname -m)#";
counter;
if [ "$systype" == "ok" ];then
if [ "$tcempty" == "0" ];then
for i in "${INST_TCLIST[@]}";do
if [ ! "$i" == "native" ];then
source "$tccfgdir/$i";
MENU_OPTIONS+="$_toolchainname#$_description#";
counter;
fi;
done;
fi;
fi;
MENU_OPTIONS+="EXIT#$txt_firstmenu_exit#";
counter;
out=$(
"$gui" "$st_" "$nc_" "$bt_" "$title_" --help-button --help-label INFO --title "-[ Toolchain $txt_menu ]-" --menu "$txt_main_revision$(REVISION)" "${COUNT+8}" 75 0 ${MENU_OPTIONS});
IFS=$OIFS;
first=$(echo "$out" | awk '{printf $1}');
tc_info=$(echo "$out" | awk '{printf $2}';);
case $first in
EXIT)
bye;;
BACK)
_select_menu;;
ADD)
_toolchain_add_menu;;
REMOVE)
_toolchain_remove_menu;;
HELP)
if [ -f "$tccfgdir/$tc_info" ];then
source "$tccfgdir/$tc_info";
"$gui" "$st_" "$nc_" "$bt_" "$title_" "$ib_" "$_tc_info" $((_tc_infolines + 5)) 65;
sleep 5;
fi;
_toolchain_main_menu;;
*)
[ -f "$tccfgdir/$first" ] && stapi_allowed="" && source "$tccfgdir/$first" || exit;
loadprofile="yes";
_toolchain_build_menu "$first";;
esac;
};
get_toolchain_config(){
get_toolchain_list;
for ((i=0;i<${#toolchain_list[@]};i++));do
[ "${toolchain_list[$i]}" == "$1" ] && source "$sdir/toolchain.cfgs/$1";
done;
};
_load_toolchain(){
[ ! -z "$1" ] && source "$tccfgdir/$1";
dln="$(decode "$_t1e")$(decode "$_toolchainfilename")";
tc_dl="$dldir/$dln";
[ -f "$dln" ] && rm -rf "$dln";
clear;
echo -e "$c_l";
ologo;
_nl;
echo -e "$p_l load only";
_nl;
echo -e "$w_l Toolchain :$y_l $dln";
echo -en "$w_l download :$g_l ";
_pget;
};
get_toolchain_list(){
[ -d "$sdir/toolchain.cfgs" ] && cd "$sdir/toolchain.cfgs" || echo "please fix $sdir/toolchain.cfgs";
toolchain_list=();
toolchain_list+=('native');
toolchain_list+=(*);
cd "$workdir";
};
_console_extract_toolchain(){
[ -d "$tcdir/$_toolchainname" ] && rm -rf "$tcdir/$_toolchainname";
mkdir "$tcdir/$_toolchainname";
cd "$tcdir/$_toolchainname";
xz -d "$tc_dl" -c | tar -x;
echo -en "$txt_done!$w_l";
};
_toolchain_check(){
clear;
echo -e "$w_l";
ologo;
headervars=( crypto.h pcsclite.h libusb.h pthread.h );
[ -f "$tccfgdir/$1" ] && source "$tccfgdir/$1";
if [ -d "$tcdir/$1/bin" ];then
cd "$tcdir/$1/bin";
else
echo -e "$r_l $txt_error:$y_l $1$w_l Toolchain $txt_n_installed""$rs_";
_nl;
exit;
fi;
compilername="$_compiler""gcc";
[ ${#_realcompiler} -gt 4 ] && compilername="$_realcompiler";
version=$("./$compilername" -dumpversion);
machine=$("./$compilername" -dumpmachine);
sr=$("./$compilername" -print-sysroot 2>/dev/null);
sysroot=${tcdir//"$1/bin"/};
[ -z "$sysroot" ] && sysroot="$r_l$txt_too_old";
echo -e "$w_l Compiler Info\n =============\n";
echo -e "$w_l Version :$y_l $version";
echo -e "$w_l Target :$y_l $machine";
echo -e "$w_l Sysroot :$y_l $sysroot";
for e in "${headervars[@]}";do
temp=$(find "$sr"/* |grep -m1 "$e");
[ ${#temp} -gt 8 ] && echo -e "$w_l Header :$y_l $e$g_l\t$txt_found" || echo -e "$w_l Header :$y_l $e$r_l\t($txt_not_found)";
done;
_nl;
exit;
};
_toolchain_repair(){
clear;
echo -e "$w_l\n";
s3logo;
cd $dldir;zzusatz=0;szusatz=0;
[ -f "$tccfgdir/$1" ] && source "$tccfgdir/$1";
fn=$(echo $_md5sum |awk '{ printf $2 }');
if [ -f $fn ];then
md5file=$(mktemp);
echo $_md5sum > $md5file;
answer=$(md5sum -c $md5file 2>&1);
if [ "$answer" == "$fn: OK" ];then
echo -en $w_l" Toolchain md5 check :$g_l";
echo -en $answer |awk '{{print " " $2;}}';
echo -en $w_l;tc_dl="$dldir/$fn";
echo -en $w_l" Toolchain repair :$g_l"
_console_extract_toolchain;
echo -e "\n"$W;
else
echo -en $w_l"\n Toolchain md5 check :$r_l";
echo -en $answer |awk '{{print " " $2;}}' |head -1;
echo -en $W;sleep 1;zzusatz=0;szusatz=8;
echo -en $w_l" Toolchain download :$g_l";
dln=$fn;_pget; sleep 1;
echo -en $w_l" Toolchain repair :$g_l";
_console_extract_toolchain;echo -e $W"\n";
exit;
fi
else
echo -e $w_l" Toolchain Filename :$y_l $fn";
echo -en $w_l" Toolchain download :$g_l ";
zzusatz=-1;szusatz=7;
dln=$fn;_pget; sleep 1;
echo -en $w_l" Toolchain repair :$g_l";
_console_extract_toolchain;echo -e $W"\n";
exit;
fi
};
_toolchain_add_menu(){
_fill_tc_array;
_init_menu;
for i in "${MISS_TCLIST[@]}";do
if [ ! "$i" == "native" ];then
source "$tccfgdir/$i";
MENU_OPTIONS+="$_toolchainname#$_description#";
counter;
fi;
done;
MENU_OPTIONS+="EXIT#$txt_menu_builder1#";
counter;
out=$(
"$gui" "$st_" "$nc_" "$bt_" "$title_" --help-button --help-label INFO --title "-[ $txt_add_menu ]-" --menu "$txt_main_revision$(REVISION)" "${COUNT+8}" 75 0 ${MENU_OPTIONS[@]});
IFS=$OIFS;
first=$(echo "$out" | awk '{printf $1}');
case $first in
EXIT)
bye;;
BACK)
_toolchain_main_menu;;
*)
_toolchain_gui_install;
_toolchain_main_menu;;
esac;
};
_toolchain_remove_menu(){
_fill_tc_array;
_init_menu;
if [ "$tcempty" == "0" ];then
for i in "${INST_TCLIST[@]}";do
if [ ! "$i" == "native" ];then
source "$tccfgdir/$i";
MENU_OPTIONS+="$_toolchainname#$_description#";
counter;
fi;
done;
fi;
MENU_OPTIONS+="EXIT#$txt_menu_builder1#";
counter;
out=$(
"$gui" "$st_" "$nc_" "$bt_" "$title_" --title "-[ $txt_remove_menu ]-" --menu "$txt_main_revision$(REVISION)" "${COUNT+8}" 75 0 ${MENU_OPTIONS});
IFS=$OIFS;
first=$(echo "$out" | awk '{printf $1}');
case $first in
EXIT)
bye;;
BACK)
_toolchain_main_menu;;
*)
[ -d "$tcdir/$first" ] && rm -rf "$tcdir/$first";
_toolchain_main_menu;;
esac;
};
_toolchain_gui_install(){
[ -d "$tcdir/$first" ] && rm -rf "$tcdir/$first" && echo "$txt_delete $tcdir/$first";
mkdir "$tcdir/$first";
cd "$tcdir/$first";
source "$tccfgdir/$first";
tcname="$(decode "$_t1e$_toolchainfilename")";
stcname="$(decode "$_toolchainfilename")";
if [ -f "$dldir/$tcname" ];then
(xz -d "$dldir/$tcname" -c| tar -xv) |"$gui" "$st_" --title " -[ $txt_extracting ]- " "$pb_" 20 74;
else
cd "$dldir";
wget "$(decode "$_u1e")/$tcname" 2>&1 | stdbuf -o0 awk '/[.] +[0-9][0-9]?[0-9]?%/ { print substr($0,63,3) }' | "$gui" "$st_" "$bt_" "$title_" --title " -[ download ]- " --gauge " $txt_loading $stcname $txt_wait" 6 74;
cd "$tcdir/$first";
(xz -d "$dldir/$tcname" -c |tar -xv) |"$gui" "$st_" --title " -[ $txt_extracting ]- " "$pb_" 20 74;
fi;
};

51
support/functions/_translation

@ -0,0 +1,51 @@
#!/bin/bash
auto_langset(){
langset="fail";
cd "$tdir";
langsupport=(*);
if [ -f "$configdir/force_lang" ];then
lng1=$(head -n 1 "$configdir/force_lang");
for lng in "${langsupport[@]}";do
if [ "$lng" == "$lng1" ];then
source "$tdir/$lng";
langset="ok";
return;
fi;
done;
fi;
for lng in "${langsupport[@]}";do
if [ "${LANG:0:2}" == "$lng" ];then
source "$tdir/$lng";
langset="ok";
return;
fi;
done;
if [ ! "$langset" == "ok" ];then
[ -f "$tdir/en" ] && source "$tdir/en";
fi;
};
lang_select(){
lng="none";
[ -f "$configdir/force_lang" ] && lng=$(head -n 1 "$configdir/force_lang");
unset MENU_OPTIONS;COUNT=0;
for e in "${langsupport[@]}";do
if [ "$lng" == "none" ];then
[ "${LANG:0:2}" == "$e" ] && _stat="on" || _stat="off";
else
[ "$lng" == "$e" ] && _stat="on" || _stat="off";
fi;
txt=$(head -3 "$tdir/$e" |tail -1);
MENU_OPTIONS+=($e $txt $_stat);counter;
done;
lng=$("$gui" "$st_" "$bt_" "$title_" --title "-[ lang set ...to edit... ]-" "$rl_" "...langset...to...edit..." "${COUNT+7}" 40 0 "${MENU_OPTIONS[@]}");
if [ ! "${LANG:0:2}" == "$lng" ];then
for lng1 in "${langsupport[@]}";do
if [ "$lng" == "$lng1" ];then
echo "$lng" >"$configdir/force_lang";
fi;
done;
else
[ -f "$configdir/force_lang" ] && rm -rf "$configdir/force_lang";
fi;
};

55
support/functions/_uploadcam

@ -0,0 +1,55 @@
#!/bin/bash
upload_cam(){
clear;
slogo;
FILENAME=$1;
if [ ! -f "$profdir/$FILENAME" ];then
echo -e "$r_l\n $txt_error $FILENAME $txt_upload_cam1 $re_";
exit;
else
echo -e "$w_l\n CONFIG : $g_l$FILENAME $txt_upload_cam2 $re_";
fi;
#load data from config
source "$profdir/$FILENAME";
#find newest build by date for toolchain
cd "$bdir";
buildcamname="$(find . -type f \( -iname "*$toolchain*" ! -iname "*list_smargo" \) -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" " |sed 's@./@@g')";
cd "$workdir";
#output date from cam
if [ -f "$bdir/$buildcamname" ];then
echo -e "$w_l CAMNAME : $y_l$buildcamname";
echo -en "$w_l FILEDATE: "$(
stat -c %y "$bdir/$buildcamname" |awk '{print $1" "; printf substr($2,1,8)}');
echo -e "$w_l";
else
echo -e "$r_l\n matching \$CAM not found in $bdir$re_";
exit;
fi;
echo -e "$p_l\n $txt_LOAD > $w_l$txt_to IP:$b_l$ip$w_l port:$b_l$port";
sshpass -p "$password" scp -P "$port" "$bdir/$buildcamname" "$loginname@$ip":/tmp;
#replace target cam
if [ "$replace_target" == "y" ];then
echo -en "$p_l REPLACE > $y_l$targetcam$re_";
sshpass -p "$password" ssh -p "$port" -o StrictHostKeyChecking=no "$loginname@$ip" \
"cd /tmp;if [ -f \"$buildcamname\" ];then if [ -f \"$targetcam\" ];then mv -f \"$buildcamname\" \"$targetcam\";fi;fi;exit;";
echo -e "$g_l$txt_done!$re_";
fi;
#stop target cam
if [ "$stop_target" == 'y' ];then
stop="killall -9 $(basename "$targetcam")";
fi;
#remote command (example restart cam)
if [ ! "$remote_command" == "none" ];then
echo -e "$w_l SSH COMMANDS $remote_command $y_l$txt_wait";
# do remote commands
sshpass -p "$password" ssh -p "$port" -o StrictHostKeyChecking=no "$loginname@$ip" "$remote_command;";
fi;
};

137
support/os/debian_ubuntu.install

@ -0,0 +1,137 @@
#!/bin/bash
debian_os(){
install_log="$ldir/os-install.log";
failed=0;
prefix="sudo";
packages="";
echo -n >"$install_log" &2>/dev/null;
echo -e "$w_l\n INSTALLATION\n ============\n";
debian_version=$(sed -n 's/^[^0-9]*\([0-9][0-9]*\).*$/\1/p' /etc/debian_version 2>/dev/null);
if [[ $debian_version ]]; then
[ "$debian_version" -lt 7 ] && { echo -e "$r_l This system is not supported anymore!\n"; return 1; }
[ "$debian_version" -gt 8 ] && echo -e "$r_l This installer is still in the testing stage!";
else
# all known Ubuntu systems have 'lsb_release'
! hash lsb_release 2>/dev/null && { echo -e "$r_l System not recognised -> Abort!\n"; return 1; }
ubuntu_version=$(lsb_release -rs | cut -f 1 -d '.');
[ "$ubuntu_version" -lt 12 ] && { echo -e "$r_l This system is not supported anymore!\n"; return 1; }
[ "$ubuntu_version" -gt 16 ] && echo -e "$r_l This installer is still in the testing stage!";
fi
# without sudo no user installation allowed
hash sudo 2>/dev/null || { [ "$(whoami)" != "root" ] && { echo -e "$r_l You need to be root for that!\n"; return 1; } }
# root needs no sudo
[ "$(whoami)" == "root" ] && prefix="";
for e in "${binvars[@]}";
do
if ! hash "$e" 2>/dev/null; then
inst="$e";
case $e in
svn)
inst="subversion";
;;
xz)
inst="xz-utils";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${headervars[@]}";
do
e1=$(find /usr/include/* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
crypto.h)
inst="libssl-dev";
;;
libusb.h)
inst="libusb-1.0.0-dev";
;;
pcsclite.h)
inst="libpcsclite-dev";
;;
pthread.h)
inst="libc-dev-bin";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${libvars[@]}";
do
e1=$(find /usr/lib* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
libccidtwin.so)
inst="libccid";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
if [ "$(uname -m)" == "x86_64" ] && [ ! -f /usr/lib32/libz.so.1 ]; then
if [ ! -f /usr/lib32/libz.so.1 ]; then
e="zlib32";
inst="lib32z1";
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi
fi
if [ ${#packages} -gt 0 ]; then
echo -n -e "$w_l update$g_l package list...";
echo "+++ $(date): apt-get -y update" >> "$install_log"
$prefix apt-get -y update >> "$install_log" 2>&1;
echo -e "$y_l done";
echo -n -e "$w_l install$g_l selected packages$y_l please wait...";
echo "+++ $(date): apt-get -y install$packages" >> "$install_log"
$prefix apt-get -y install $packages >> "$install_log" 2>&1 || failed=1;
if [ $failed == 0 ]; then
echo -e "$y_l done";
else
echo -e "$r_l failed!";
fi
fi
if hash upx 2>/dev/null; then
upxversion=($(upx -V | awk 'NR==1 { verok=$2>=3.91; printf "%.2f %i", $2, verok }'));
if [ ${upxversion[1]} == 0 ]; then
[ -f "$bindir/upx" ] && rm -f "$bindir/upx" &>/dev/null;
if [ "$(uname -m)" == "x86_64" ]; then
upxarch="upx-3.95-amd64_linux";
else
upxarch="upx-3.95-i386_linux";
fi
upxarchive=$upxarch".tar.bz2";
[ -f "$dldir/$upxarchive" ] && rm -f "$dldir/$upxarchive" &>/dev/null;
upxurl="http://upx.sourceforge.net/download/$upxarchive";
echo -e "$w_l get newer$g_l upx$y_l\tfrom: $upxurl";
echo "+++ $(date): wget $upxurl" >> "$install_log";
if wget --directory-prefix="$dldir" --append-output="$install_log" $upxurl; then
echo "+++ $(date): tar xjvf $upxarchive" >> "$install_log";
tar xjvf "$dldir"/$upxarchive --directory="$bindir" $upxarch/upx --strip-components=1 >> "$install_log" 2>&1 || failed=1;
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
else
failed=1;
fi
fi
fi
[ $failed == 1 ] && echo -e "\n$r_l Installation with errors - see: $install_log";
return $failed;
}

126
support/os/manjaro.install

@ -0,0 +1,126 @@
#!/bin/bash
manjaro_os(){
install_log="$ldir/os-install.log";
failed=0;
prefix="sudo";
packages="";
echo -n >"$install_log" &2>/dev/null;
echo -e "$w_l\n INSTALLATION\n ============\n";
source /etc/lsb-release
manjaro_version=$DISTRIB_RELEASE
# without sudo no user installation allowed
hash sudo 2>/dev/null || { [ "$(whoami)" != "root" ] && { echo -e "$r_l You need to be root for that!\n"; return 1; } }
# root needs no sudo
[ "$(whoami)" == "root" ] && prefix="";
for e in "${binvars[@]}";
do
if ! hash "$e" 2>/dev/null; then
inst="$e";
case $e in
svn)
inst="subversion";
;;
xz)
inst="xz-utils";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${headervars[@]}";
do
e1=$(find /usr/include/* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
crypto.h)
inst="libssl-dev";
;;
libusb.h)
inst="libusb-1.0.0-dev";
;;
pcsclite.h)
inst="pcsclite";
;;
pthread.h)
inst="libc-dev-bin";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${libvars[@]}";
do
e1=$(find /usr/lib* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
libccidtwin.so)
inst="ccid";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
if [ "$(uname -m)" == "x86_64" ] && [ ! -f /usr/lib32/libz.so.1 ]; then
if [ ! -f /usr/lib32/libz.so.1 ]; then
e="zlib32";
inst="lib32z1";
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi
fi
if [ ${#packages} -gt 0 ]; then
echo -n -e "$w_l update$g_l package list...";
echo "+++ $(date): pacman -Syu" >> "$install_log"
$prefix pacman -Syu >> "$install_log" 2>&1;
echo -e "$y_l done";
echo -n -e "$w_l install$g_l selected packages$y_l please wait...";
echo "+++ $(date): pacman -Sy install$packages" >> "$install_log"
$prefix pacman -S --noconfirm $packages >> "$install_log" 2>&1 || failed=1;
if [ $failed == 0 ]; then
echo -e "$y_l done";
else
echo -e "$r_l failed!";
fi
fi
if hash upx 2>/dev/null; then
upxversion=($(upx -V | awk 'NR==1 { verok=$2>=3.91; printf "%.2f %i", $2, verok }'));
if [ ${upxversion[1]} == 0 ]; then
[ -f "$bindir/upx" ] && rm -f "$bindir/upx" &>/dev/null;
if [ "$(uname -m)" == "x86_64" ]; then
upxarch="upx-3.95-amd64_linux";
else
upxarch="upx-3.95-i386_linux";
fi
upxarchive=$upxarch".tar.bz2";
[ -f "$dldir/$upxarchive" ] && rm -f "$dldir/$upxarchive" &>/dev/null;
upxurl="http://upx.sourceforge.net/download/$upxarchive";
echo -e "$w_l get newer$g_l upx$y_l\tfrom: $upxurl";
echo "+++ $(date): wget $upxurl" >> "$install_log";
if wget --directory-prefix="$dldir" --append-output="$install_log" $upxurl; then
echo "+++ $(date): tar xjvf $upxarchive" >> "$install_log";
tar xjvf "$dldir"/$upxarchive --directory="$bindir" $upxarch/upx --strip-components=1 >> "$install_log" 2>&1 || failed=1;
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
else
failed=1;
fi
fi
fi
[ $failed == 1 ] && echo -e "\n$r_l Installation with errors - see: $install_log";
return $failed;
}

182
support/os/redhat_centos_fedora.install

@ -0,0 +1,182 @@
#!/bin/bash
redhat_os(){
install_log="$ldir/os-install.log";
failed=0;
prefix="sudo";
packages="";
echo -n >"$install_log" &2>/dev/null;
echo -e "$w_l\n INSTALLATION\n ============\n";
rh_version=$(sed -n 's/^[^0-9]*\([0-9][0-9]*\).*$/\1/p' /etc/redhat-release 2>/dev/null);
! [[ $rh_version ]] && { echo -e "$r_l System not recognised -> Abort!\n"; return 1; }
sshpass_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/sshpass-1.05-1.el6.rf.x86_64.rpm";
sshpass86_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/i386/dag/RPMS/sshpass-1.05-1.el6.rf.i686.rpm";
installer="yum";
case $rh_version in
5)
echo -e "$r_l Five - Has a too old glibc!"; return 1;
sshpass_src="ftp://rpmfind.net/linux/epel/5/x86_64/sshpass-1.05-1.el5.x86_64.rpm";
sshpass86_src="ftp://rpmfind.net/linux/epel/5/i386/sshpass-1.05-1.el5.i386.rpm";
;;
[6-7])
# Redhat/CentOS 6+7 ok
;;
2[2-3])
# Fedora 22+23 ok
installer="dnf";
;;
24)
# Fedora 24 still beta
installer="dnf";
echo -e "$r_l This installer is still in the testing stage!";
;;
*)
echo "This version is not supported!" >"$install_log" 2>/dev/null;
echo -e "$r_l \"$(cat /etc/redhat-release)\" is not supported!";
return 1;
esac
# without sudo no user installation allowed
hash sudo 2>/dev/null || { [ "$(whoami)" != "root" ] && { echo -e "$r_l You need to be root for that!\n"; return 1; } }
# root needs no sudo
[ "$(whoami)" == "root" ] && prefix="";
# care about the repos on Redhat
if hash subscription-manager 2>/dev/null; then
$prefix subscription-manager status >/dev/null || { echo -e "$r_l You need an active subscription!\n"; return 1; }
echo -e "$w_l Retreiving repo list...";
if ! $prefix subscription-manager repos --list-enabled | grep -q "server-optional-rpms"; then
cmdline="subscription-manager repos --enable=rhel-$rh_version-server-optional-rpms";
echo -e "$w_l Add needed repo$g_l optional:$y_l $cmdline";
echo "+++ $(date): $cmdline" >> "$install_log";
$prefix $cmdline >> "$install_log" 2>&1 || failed=1;
fi
fi
for e in "${binvars[@]}";
do
if ! hash "$e" 2>/dev/null; then
inst="$e";
case $e in
svn)
inst="subversion";
;;
# the following guys have no official packages
sshpass)
continue;
;;
upx)
continue;
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${headervars[@]}";
do
e1=$(find /usr/include/* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
crypto.h)
inst="openssl-devel";
;;
libusb.h)
# no official package for older versions
[ "$rh_version" -lt 6 ] && continue;
# hopelully they stick to it from now :-)
inst="libusbx-devel";
[ "$rh_version" == 6 ] && inst="libusb1-devel";
;;
pcsclite.h)
inst="pcsc-lite-devel";
;;
pthread.h)
inst="glibc-headers";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${libvars[@]}";
do
e1=$(find /usr/lib* 2>/dev/null | grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
libccidtwin.so)
inst="ccid";
[ "$rh_version" -gt 6 ] && inst="pcsc-lite-ccid";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
if [ "$(uname -m)" == "x86_64" ] && [ ! -f /usr/lib/libz.so ]; then
if [ ! -f /usr/lib/libz.so ]; then
e="zlib32";
inst="zlib-devel.i686";
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi
fi
if [ ${#packages} -gt 0 ]; then
echo -n -e "$w_l update$g_l package list...";
echo "+++ $(date): $installer -y check-update" >> "$install_log"
$prefix $installer -y check-update >> "$install_log" 2>&1;
echo -e "$y_l done";
echo -n -e "$w_l install$g_l selected packages$y_l please wait...";
echo "+++ $(date): $installer -y install$packages" >> "$install_log"
$prefix $installer -y install $packages >> "$install_log" 2>&1 || failed=1;
if [ $failed == 0 ]; then
echo -e "$y_l done";
else
echo -e "$r_l failed!";
fi
fi
# additional rpm
if ! hash sshpass 2>/dev/null; then
[ "$(arch)" == "i686" ] && sshpass_src=$sshpass86_src;
echo -e "$w_l install$g_l sshpass$y_l\tfrom: $sshpass_src";
echo "+++ $(date): rpm -i $sshpass_src" >> "$install_log";
$prefix rpm -i $sshpass_src >> "$install_log" 2>&1 || failed=1;
fi
if ! hash upx 2>/dev/null; then
[ -f "$bindir"/upx ] && rm -f "$bindir"/upx &>/dev/null;
if [ "$(uname -m)" == "x86_64" ]; then
upxarch="upx-3.95-amd64_linux";
else
upxarch="upx-3.95-i386_linux";
fi
upxarchive=$upxarch".tar.bz2";
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
upxurl="http://upx.sourceforge.net/download/$upxarchive";
echo -e "$w_l get$g_l upx$y_l\tfrom: $upxurl";
echo "+++ $(date): wget $upxurl" >> "$install_log";
if wget --directory-prefix="$dldir" --append-output="$install_log" $upxurl; then
echo "+++ $(date): tar xjvf $upxarchive" >> "$install_log";
tar xjvf "$dldir"/$upxarchive --directory="$bindir" $upxarch/upx --strip-components=1 >> "$install_log" 2>&1 || failed=1;
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
else
failed=1;
fi
fi
[ $failed == 1 ] && echo -e "\n$r_l Installation with errors - see: $install_log";
return $failed;
}

154
support/os/suse.install

@ -0,0 +1,154 @@
#!/bin/bash
suse_os(){
install_log="$ldir/os-install.log";
failed=0;
prefix="sudo";
packages="";
echo -n >"$install_log" &2>/dev/null;
echo -e "$w_l\n INSTALLATION\n ============\n";
suse_version=$(grep VERSION= /etc/os-release 2>/dev/null | sed -n 's/^[^0-9]*\([0-9][0-9]*\).*$/\1/p');
sshpass_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/sshpass-1.05-1.el6.rf.x86_64.rpm";
sshpass86_src="ftp://rpmfind.net/linux/dag/redhat/el6/en/i386/dag/RPMS/sshpass-1.05-1.el6.rf.i686.rpm";
if [[ "$suse_version" ]]; then
[ "$suse_version" -lt 12 ] && { echo -e "$r_l This system is not supported anymore!\n"; return 1; }
[ "$suse_version" -gt 13 ] && [ "$suse_version" -lt 42 ] && echo -e "$r_l This installer is still in the testing stage!";
[ "$suse_version" -gt 42 ] && echo -e "$r_l This installer is still in the testing stage!";
else
echo -e "$r_l System not recognised -> Abort!\n"; return 1;
fi
# without sudo no user installation allowed
hash sudo 2>/dev/null || { [ "$(whoami)" != "root" ] && { echo -e "$r_l You need to be root for that!\n"; return 1; } }
# root needs no sudo
[ "$(whoami)" == "root" ] && prefix="";
# check for sufficient repositories - SLES & SLED need an additional "SUSE Linux Enterprise Software Development Kit"
if grep "Enterprise" /etc/os-release >/dev/null; then
echo -n -e "$w_l SUSE Linux Enterprise detected$g_l check for SDK repository...";
if ! zypper wp subversion >/dev/null; then
echo -e "$r_l\n You need to install \"SUSE Linux Enterprise Software Development Kit\" first!\n Get it from https://download.suse.com\n"; return 1;
fi
echo -e "$y_l ok";
fi
for e in "${binvars[@]}";
do
if ! hash "$e" 2>/dev/null; then
inst="$e";
case $e in
svn)
inst="subversion";
;;
xz)
inst="xz-utils";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${headervars[@]}";
do
e1=$(find /usr/include/* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
crypto.h)
inst="libopenssl-devel";
;;
libusb.h)
inst="libusb-1_0-devel";
;;
pcsclite.h)
inst="pcsc-lite-devel";
;;
pthread.h)
inst="glibc-devel";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
for e in "${libvars[@]}";
do
e1=$(find /usr/lib* |grep -m1 "$e");
if [ ! ${#e1} -gt 8 ]; then
case $e in
libccidtwin.so)
inst="pcsc-ccid";
;;
esac;
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi;
done;
if [ "$(uname -m)" == "x86_64" ] && [ ! -f /usr/lib/libz.so ]; then
if [ ! -f /usr/lib/libz.so ]; then
e="zlib32";
inst="zlib-devel-32bit glibc-32bit libz1-32bit";
echo -e "$w_l select $g_l$e$y_l\tfrom: $inst";
packages="$packages $inst";
fi
fi
if [ ${#packages} -gt 0 ]; then
echo -n -e "$w_l update$g_l package list...";
echo "+++ $(date): zypper --non-interactive refresh" >> "$install_log"
$prefix zypper --non-interactive refresh >> "$install_log" 2>&1;
echo -e "$y_l done";
echo -n -e "$w_l install$g_l selected packages$y_l please wait...";
echo "+++ $(date): zypper --non-interactive --ignore-unknown install$packages" >> "$install_log"
$prefix zypper --non-interactive --ignore-unknown install $packages >> "$install_log" 2>&1 || failed=1;
if [ $failed == 0 ]; then
echo -e "$y_l done";
else
echo -e "$r_l failed!";
fi
fi
# additional rpm
if ! hash sshpass 2>/dev/null; then
[ "$(arch)" == "i686" ] && sshpass_src=$sshpass86_src;
echo -e "$w_l install$g_l sshpass$y_l\tfrom: $sshpass_src";
echo "+++ $(date): rpm -i $sshpass_src" >> "$install_log";
$prefix rpm -i $sshpass_src >> "$install_log" 2>&1 || failed=1;
echo -e -n ;
fi
upxversion=(0 0);
hash upx 2>/dev/null && upxversion=($(upx -V | awk 'NR==1 { verok=$2>=3.91; printf "%.2f %i", $2, verok }'));
if [ ${upxversion[1]} == 0 ]; then
[ -f "$bindir"/upx ] && rm -f "$bindir"/upx &>/dev/null;
if [ "$(uname -m)" == "x86_64" ]; then
upxarch="upx-3.95-amd64_linux";
else
upxarch="upx-3.95-i386_linux";
fi
upxarchive=$upxarch".tar.bz2";
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
upxurl="http://upx.sourceforge.net/download/$upxarchive";
echo -e "$w_l get newer$g_l upx$y_l\tfrom: $upxurl";
echo "+++ $(date): wget $upxurl" >> "$install_log";
if wget --directory-prefix="$dldir" --append-output="$install_log" $upxurl; then
echo "+++ $(date): tar xjvf $upxarchive" >> "$install_log";
tar xjvf "$dldir"/$upxarchive --directory="$bindir" $upxarch/upx --strip-components=1 >> "$install_log" 2>&1 || failed=1;
[ -f "$dldir"/$upxarchive ] && rm -f "$dldir"/$upxarchive &>/dev/null;
else
failed=1;
fi
fi
[ $failed == 1 ] && echo -e "\n$r_l Installation with errors - see: $install_log";
return $failed;
}

5
support/profiles/best.box.profile

@ -0,0 +1,5 @@
readers_on
USE_UTF8
WEBIF DEBUG DVBAPI READ_SDT LIVELOG JQUERY LB CACHEEX IPV6
CCCAM CAMD35 CAMD35_TCP
INTERNAL PHOENIX STINGER SMARGO_off

BIN
support/stapi/liboscam_stapi.a

Binary file not shown.

BIN
support/stapi/liboscam_stapi5_OPENBOX.a

Binary file not shown.

BIN
support/stapi/liboscam_stapi5_UFS916.a

Binary file not shown.

BIN
support/stapi/liboscam_stapi5_UFS916_0.03.a

Binary file not shown.

19
support/toolchains.cfg/arm_s3_ssl098

@ -0,0 +1,19 @@
_toolchainname="arm_s3_ssl098"
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="Dreambox ARM"
_oscamconfdir_default="/var/keys"
_oscamconfdir_custom=""
_compiler="arm-simplebuild3-linux-gnueabi-"
_sysroot="arm-simplebuild3-linux-gnueabi/sysroot"
_libsearchdir="/usr/lib"
_toolchainfilename="YXJtX3MzX3NzbDA5OC50YXIueHo=";
_md5sum="02215a912feb4fc499572e5cd53567f2 Toolchain-arm_s3_ssl098.tar.xz"
_tc_info="\n
!!! GENERIC ARM Toolchain !!!\n
with OPENSSL 0.9.8zh \n
\n
\n
";
_tc_infolines="6"

19
support/toolchains.cfg/arm_s3_ssl100

@ -0,0 +1,19 @@
_toolchainname="arm_s3_ssl100"
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="Dreambox ARM"
_oscamconfdir_default="/var/keys"
_oscamconfdir_custom=""
_compiler="arm-simplebuild3-linux-gnueabi-"
_sysroot="arm-simplebuild3-linux-gnueabi/sysroot"
_libsearchdir="/usr/lib"
_toolchainfilename="YXJtX3MzX3NzbDEwMC50YXIueHo=";
_md5sum="0d040f672f57ae37672b6f94413a9d8e Toolchain-arm_s3_ssl100.tar.xz";
_tc_info="\n
!!! GENERIC ARM Toolchain !!!\n
with OPENSSL 1.0.0t \n
\n
\n
";
_tc_infolines="6"

19
support/toolchains.cfg/arm_s3_ssl102

@ -0,0 +1,19 @@
_toolchainname="arm_s3_ssl102"
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="Dreambox ARM"
_oscamconfdir_default="/var/keys"
_oscamconfdir_custom=""
_compiler="arm-simplebuild3-linux-gnueabi-"
_sysroot="arm-simplebuild3-linux-gnueabi/sysroot"
_libsearchdir="/usr/lib"
_toolchainfilename="YXJtX3MzX3NzbDEwMi50YXIueHo=";
_md5sum="515ed7582dc8e6044069d4ab34ee35da Toolchain-arm_s3_ssl102.tar.xz";
_tc_info="\n
!!! GENERIC ARM Toolchain !!!\n
with OPENSSL 1.0.2q \n
\n
\n
";
_tc_infolines="6"

20
support/toolchains.cfg/mipsel_s3_ssl098

@ -0,0 +1,20 @@
_toolchainname="mipsel_s3_ssl098";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="generic mipsel ssl 0.9.8";
_oscamconfdir_default="/var/keys";
_oscamconfdir_custom=""
_compiler="mipsel-simplebuild3-linux-gnu-";
_sysroot="/";
_libsearchdir="/lib";
_toolchainfilename="bWlwc2VsX3MzX3NzbDA5OC50YXIueHoK";
_md5sum="966c590d2178f6d401c93993eba4f7f9 Toolchain-mipsel_s3_ssl098.tar.xz";
_tc_info="\n
!!! generic mipsel ssl 0.9.8 !!!\n
this toolchain is compatible with\n
\n
Dreambox: dm500,dm800,500HD,800HD,800SE,7020HD,
7025,8000\n
VU+ : Zero,Solo²,SoloSE,SoloSE(V2),Duo,Duo²";
_tc_infolines="6";

20
support/toolchains.cfg/mipsel_s3_ssl100

@ -0,0 +1,20 @@
_toolchainname="mipsel_s3_ssl100";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="generic mipsel ssl 1.0.0";
_oscamconfdir_default="/var/keys";
_oscamconfdir_custom=""
_compiler="mipsel-simplebuild3-linux-gnu-";
_sysroot="/";
_libsearchdir="/lib";
_toolchainfilename="bWlwc2VsX3MzX3NzbDEwMC50YXIueHoK";
_md5sum="b1ff681eff62b0e639d37e001b97e1e0 Toolchain-mipsel_s3_ssl100.tar.xz";
_tc_info="\n
!!! generic mipsel ssl 1.0.0 !!!\n
this toolchain is compatible with\n
\n
Dreambox: dm500,dm800,500HD,800HD,800SE,7020HD,
7025,8000\n
VU+ : Zero,Solo²,SoloSE,SoloSE(V2),Duo,Duo²";
_tc_infolines="6";

20
support/toolchains.cfg/mipsel_s3_ssl102

@ -0,0 +1,20 @@
_toolchainname="mipsel_s3_ssl102";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="generic mipsel ssl 1.0.2";
_oscamconfdir_default="/var/keys";
_oscamconfdir_custom=""
_compiler="mipsel-simplebuild3-linux-gnu-";
_sysroot="/";
_libsearchdir="/lib";
_toolchainfilename="bWlwc2VsX3MzX3NzbDEwMi50YXIueHoK";
md5sum="985ba51ae41cacd008fb6c7490e2f287 Toolchain-mipsel_s3_ssl102.tar.xz"
_tc_info="\n
!!! generic mipsel ssl 1.0.2 !!!\n
this toolchain is compatible with\n
\n
Dreambox: dm500,dm800,500HD,800HD,800SE,7020HD,
7025,8000\n
VU+ : Zero,Solo²,SoloSE,SoloSE(V2),Duo,Duo²";
_tc_infolines="6";

12
support/toolchains.cfg/native

@ -0,0 +1,12 @@
_toolchainname="native";
default_use="USE_UTF8 USE_LIBCRYPTO";
_oscamconfdir_default="/usr/local/etc";
_oscamconfdir_custom="not_set";
_compiler="x86_64-linux-gnu-";
_tc_info="Native System Compiler gcc (Debian 8.2.0-16) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.";
_libsearchdir="/lib";
_menuname="native";
_sysroot="/";

20
support/toolchains.cfg/openpli40

@ -0,0 +1,20 @@
_toolchainname="openpli40"
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="Openpli Dreambox Vu+ and other"
_oscamconfdir_default="/usr/keys"
_oscamconfdir_custom=""
_compiler="mipsel-openpli40-linux-gnu-"
_sysroot="mipsel-openpli40-linux-gnu/sysroot"
_libsearchdir="/lib"
_toolchainfilename="T3BlblBMSV80LjAudGFyLnh6";
_tc_info="\n
!!! beware the box must have FPU !!!\n
this toolchain is compatible with\n
\n
Dreambox: 500HD,800HD,800SE,7020HD,7025,8000\n
VU+ : Zero,Solo²,SoloSE,SoloSE(V2),Duo,Duo²";
_tc_infolines="6"

20
support/toolchains.cfg/openwrt1505cc

@ -0,0 +1,20 @@
_toolchainname="openwrt1505cc";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="OpenWRT 15.05.1 Chaos Calmer"
_oscamconfdir_default="/etc/config/oscam"
_oscamconfdir_custom="/etc/config/oscam"
_stagingdir=1
_compiler="mips-openwrt-linux-uclibc-"
_sysroot=""
_libsearchdir="/lib"
_toolchainfilename="b3BlbndydDE1MDVjYy50YXIueHo=";
_block="USE_PCSC"
_tc_info="\n
!!! OpenWRT 15.05.1 Chaos Calmer !!!\n
this toolchain is compatible with\n
fill with info\n
\n
";
_tc_infolines="6"

18
support/toolchains.cfg/osmio4k

@ -0,0 +1,18 @@
_toolchainname="osmio4k";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="Edision OS MIO 4k aarch64";
_oscamconfdir_default="/var/keys/";
_oscamconfdir_custom=""
_compiler="aarch64-osmio4k-linux-gnu-";
_sysroot="aarch64-osmio4k-linux-gnu/sysroot/";
_libsearchdir="/lib";
_toolchainfilename="b3NtaW80ay50YXIueHoK";
_md5sum="41fbf9b4f91eb61cb926565da644b6ed Toolchain-osmio4k.tar.xz";
_tc_info="\n
!!! beware the box must have FPU !!!\n
this toolchain is compatible with\n
\n
Edsion : OS MIO 4K aarch64";
_tc_infolines="5"

18
support/toolchains.cfg/solo4k

@ -0,0 +1,18 @@
_toolchainname="solo4k";
default_use="USE_UTF8 USE_LIBCRYPTO";
_description="VU+ Solo4k";
_oscamconfdir_default="/var/tuxbox/config";
_oscamconfdir_custom=""
_compiler="arm-linux-gnueabihf-";
_sysroot="arm-linux-gnueabihf";
_libsearchdir="/lib";
_toolchainfilename="c29sbzRrLnRhci54ego=";
_tc_info="\n
!!! beware the box must have FPU !!!\n
this toolchain is compatible with\n
\n
VU+ : Solo4k";
_tc_infolines="5"

113
support/translation/de

@ -0,0 +1,113 @@
#!/bin/bash
#deutsch
txt_as='als';
txt_of='von';
txt_for='für';
txt_b2="baue";
txt_to="nach";
txt_now='nun';
txt_b1='bauen';
txt_menu='Menü';
txt_no='keinen';
txt_name='Name';
txt_use='benutze';
txt_back='zurück';
txt_done=' fertig';
txt_error='Fehler';
txt_missing='fehlt';
txt_sel='auswählen';
txt_delete='lösche';
txt_found='gefunden';
txt_create='erstelle';
txt_loading=' lade';
txt_profile='Profil';
txt_profiles='Profile';
txt_conf='Konfiguration';
txt_parameter='Parameter';
txt_extracting='entpacke';
txt_wait='bitte warten...';
txt_existing='vorhandenen';
txt_ssh_profiles='SSH $txt_profiles';
txt_not_found='nicht gefunden';
txt_n_installed='ist nicht installiert';
txt_start_menu='Hauptmenü';
txt_back_main="$txt_back zum $txt_start_menu";
txt_too_old='(zu alt wird nicht unterstützt)';
txt_selected='ausgewählten';
txt_update='aktualisiere';
txt_example_name='Beispiel: dm820.stube';
txt_save='speichern';
txt_filename='Dateiname';
txt_LOAD="UPLOAD";
txt_tc="Toolchain";
# menu txt
txt_remove_menu="$txt_tc entfernen";
txt_add_menu="$txt_tc hinzufügen";
txt_main_revision="\n Die aktuelle SVN REVISION ist : r";
txt_bmenu_title="Baumenü";
# help txt
txt_help1="beginnen mit"
txt_help2="Kommandozeilen Parameter sind"
txt_help3="Taste [ENTER] zum fortsetzen..."
# firstmenu ################################################
txt_firstmenu_continue="weiter mit lokalem SVN";
txt_firstmenu_chose="anderen SVN Stand (7000+) laden";
txt_firstmenu_cedit="$txt_conf""s Editor starten";
txt_firstmenu_lang="Systemsprache manuell $txt_sel";
txt_firstmenu_exit="simplebuild sofort beenden";
# _toolchain_config_menu ###################################
txt_config_menu="$txt_conf $txt_menu";
txt_back_build="$txt_back zum $txt_bmenu_title";
txt_module_configure="oscam Module $txt_sel";
txt_oscam_extra="oscam Extras USB/PCSC $txt_sel";
txt_build_extra="build Extras compress/patch $txt_sel";
txt_build_load="letzte $txt_conf laden";
txt_build_save="$txt_conf speichern";
txt_build_reset="$txt_conf $txt_back setzen";
txt_use_targz='erstelle tar Archiv nach dem Bauen';
txt_use_patch='patche oscam vor dem Bauen';
txt_use_compress='Binärkompression von oscam';
# _toolchain_build_menu ####################################
txt_bmenu_user="Benutzername ";
txt_bmenu_comp="Compiler ";
txt_bmenu_debu="Debug Info ";
txt_bmenu_use="USE_Variablen ";
txt_bmenu_build="oscam jetzt $txt_b1";
txt_bmenu_config="oscam/Build $txt_conf";
txt_bmenu_profile="vorhandenes $txt_profile laden";
txt_bmenus_profile="$txt_profile $txt_save";
txt_bmenu_log="zeige lastbuild.log";
txt_bmenu_back="$txt_back zur Toolchainauswahl";
txt_compress1="Dateigröße davor ";
txt_compress2="Dateigröße danach ";
txt_compress3="Dateigröße verkleinert auf";
# _toolchain_main_menu ####################################
txt_menu_builder1="Beende simplebuild";
txt_menu_builder2="einen neuen $txt_tc hinzufügen";
txt_menu_builder3="entferne einen installierten $txt_tc";
txt_menu_builder4="Nativ $txt_for";
txt_menu_back="Zurück zum $txt_tc $txt_menu";
# _dialog_checkout ########################################
txt_verify_syscheck='überprüfe System :';
txt_verify_svn='überprüfe existierenden SVN :';
txt_update_svn="$txt_update SVN :";
txt_prepare_svn="bereite SVN checkout vor :";
txt_latest="letzter Stand";
# _load_profile ###########################################
txt_select_profile_title="Verfügbare $txt_profiles";
txt_select_profile="bitte ein $txt_profile auswählen";
txt_confirm_profile_select="bitte bestätigen sie die Auswahl von:";
txt_no_profile_found="kein $txt_profile gefunden in\n\n$profdir";
# _upload_cam #############################################
txt_upload_cam1="ssh $txt_profile existiert nicht";
txt_upload_cam2="ssh $txt_profile gefunden";

100
support/translation/en

@ -0,0 +1,100 @@
#!/bin/bash
#english
txt_as='as';
txt_of='of';
txt_for='for';
txt_b2="build";
txt_to="to";
txt_now='now';
txt_b1='build';
txt_menu='menu';
txt_done=' done';
txt_no='no';
txt_use='use';
txt_back='back';
txt_error='error';
txt_loading=' load';
txt_sel='select';
txt_delete='delete';
txt_found='found';
txt_create='create';
txt_conf='configuration';
txt_extracting='extracting';
txt_wait='please wait...';
txt_existing='exists';
txt_profiles='profiles';
txt_not_found='not found';
txt_n_installed='is not installed';
txt_back_main="back to main menu";
txt_too_old='(too old or not supported)';
txt_selected='selected';
txt_update='now updating';
txt_tc="Toolchain";
# menu txt
txt_start_menu='Main menu';
txt_remove_menu='Remove toolchain';
txt_add_menu='Add toolchain';
txt_main_revision="\n the local SVN revision is : r";
# help txt
txt_help1="begin with"
txt_help2="commandline Parameters are"
txt_help3="[ENTER] to continue..."
# firstmenu ################################################
txt_firstmenu_continue="continue with local SVN";
txt_firstmenu_chose="load a different SVN (7000+)";
txt_firstmenu_cedit="start configuration editor";
txt_firstmenu_lang="manual system language selection";
txt_firstmenu_exit="close simplebuild now";
# _toolchain_config_menu ###################################
txt_config_menu="configuration menu";
txt_back_build="back to build menu";
txt_module_configure="select oscam modules ";
txt_oscam_extra="select oscam extras USB/PCSC";
txt_build_extra="select build extras compress/patch";
txt_build_load="load last configuration";
txt_build_save="save configuration";
txt_build_reset="reset configuration";
# _toolchain_build_menu#####################################
txt_bmenu_title="build menu";
txt_bmenu_user="username ";
txt_bmenu_comp="compiler ";
txt_bmenu_debu="debug info ";
txt_bmenu_use="USE_variables ";
txt_bmenu_build="build oscam now";
txt_bmenu_config="oscam/build configuration";
txt_bmenu_log="show lastbuild.log";
txt_bmenu_back="back to toolchain selection";
txt_compress1="filesize before ";
txt_compress2="filesize after ";
txt_compress3="filesize reduced to ";
# _toolchain_main_menu#####################################
txt_menu_builder1="close simplebuild";
txt_menu_builder2="add new toolchain";
txt_menu_builder3="remove installed toolchain";
txt_menu_builder4="build native for";
txt_menu_back="back to toolchain menu";
# _dialog_checkout
txt_verify_syscheck='check system :';
txt_verify_svn='check existing SVN :';
txt_update_svn="$txt_update SVN :";
txt_prepare_svn="prepare SVN checkout :";
txt_latest="latest SVN";
# _load_profile ###########################################
txt_select_profile_title="available profiles";
txt_select_profile="please select a profile";
txt_confirm_profile_select="please confirm the selection of:";
txt_no_profile_found="no profile found in\n\n$profdir";
# _upload_cam #############################################
txt_upload_cam1="ssh profile doesn't exist";
txt_upload_cam2="ssh profile found";

158
support/translation/fr

@ -0,0 +1,158 @@
#!/bin/bash
#francais
txt_create='crée dans';
txt_bmenu_user="Utilisateur ";
txt_bmenu_comp="Compilateur ";
txt_bmenu_debu="Info Debug ";
txt_bmenu_acti="Options Actives";
txt_wait="Veuillez patienter...";
txt_build="Compilation";
txt_to="à";
txt_lc="utiliser";
txt_lang_select="Change langue";
txt_force="Forcer une MAJ rapide";
txt_back="Retour au choix de la toolchain";
txt_end="Quitter Simplebuild";
txt_offline="Hors Ligne";
txt_error="Erreur";
txt_LOAD="UPLOAD";
txt_DOWNLOAD="Téléchargment en cours";
txt_REMOVE="Supprimer";
txt_found_in="trouvé dans";
txt_found_in_archiv="localisé dans archiv";
txt_buildtime="Temps de Compilation";
txt_nosvn="Pas de version SVN trouvée";
txt_with="avec";
txt_old="Ancien";
txt_no_stapi="pas de STAPI SH4 disponible !!!";
txt_rm="effacé";
txt_help1="démarrer avec";
txt_help2="les paramètres de lignes de commande possibles sont";
txt_help3="touche [ENTER] pour continuer..."
txt_compressor1="Choisissez le compresseur de binaires\n pour votre systeme de compilation";
txt_compressor2="résultat : ";
txt_compressor3="détecté";
txt_compressor4="non détecté";
txt_packok="est compressé dans archiv";
txt_packfail="n'a pu compresser";
txt_rcheckout="Structure SVN manquante ... Mise à jour, Veuillez Patienter !\n";
txt_extra1=" Choisissez les options :\n [*] = activer; [ ] = désactiver";
txt_extra2="Support des lecteurs USB";
txt_extra3="Support des lecteurs PCSC";
txt_extra4="Support de STAPI";
txt_extra5="Support de COOLAPI";
txt_extra6="Compiler les libs dans OScam";
txt_extra7="Compacter le binaire oscam en .tar.gz";
txt_extra8="Compresser le binaire oscam avec UPX";
txt_checksys1="\n vérification des fichiers\n -------------------------\n";
txt_checksys2="\n vérification des packages\n -------------------------\n";
txt_checksys3="est installé";
txt_checksys4="... nest pas installé";
txt_checksys5="installé ";
txt_checksys6="... nest pas installé";
txt_checksys7=" trouvé dans ";
txt_cfg_path1="valeur par défaut";
txt_cfg_path2="valeur actuelle";
txt_cfg_path3="répertoire de configuration";
txt_lib_path1="répertoire de librairies";
txt_custom_suffix="laissez vide pour utiliser les valeurs par défaut";
txt_online_update1="version locale";
txt_online_update2="version en ligne";
txt_online_update3="Voulez-vous mettre à jour SIMPLEBUILD ?";
txt_conf_update1="version locale";
txt_conf_update2="version en ligne";
txt_conf_update3="Voulez-vous mettre à jour le fichier de CONFIG ?";
txt_patch="utiliser patch";
txt_patch_off1="patche(s) trouvé(s) pour suppression\n------------------------------------";
txt_patch_off2="supprimer patch";
txt_patch_off3="supprimer";
txt_patch_off4="fichier de la source";
txt_patch_on1="patche(s) trouvé(s) pour application\n------------------------------------";
txt_patch_on2="appliquer patch";
txt_con_check1="Téléchargement manquant";
txt_con_check2="taille de toolchain incorrecte. Supprimez et recommencez !";
txt_con_check3="Téléchargement impossible";
txt_configure_title="[ CONFIGURATION ]";
txt_configure_menu0="Configuration";
txt_configure_menu1="Add-ons, Protocoles, Systèmes CA, Lecteurs de Cartes";
txt_configure_menu2="Autres Réglages (USB/PCSC/STAPI/COOL/PACK/PATCH/COMPRESS)";
txt_configure_menu3="Changer le répertoire de config par défaut";
txt_configure_menu4="Changer le répertoire des librairies par défaut";
txt_configure_menu5="Choisir le Compresseur Binaire";
txt_configure_menu6="Choisir un suffixe personnalisé pour le binaire OSCAM";
txt_configure_menu7="Retour au MENU DE COMPILATION";
txt_cmdline1="Checkout Revision";
txt_cmdline2="Checkout trunk";
txt_cmdline3="prise en compte du profil par défaut";
txt_cmdline4="prise en compte du profil custom";
txt_cmdline5="prise en compte du profil saved";
txt_cmdline6="profil custom absent\n profil par défaut pris en compte";
txt_cmdline7="profil saved absent\n profile par défaut pris en compte";
txt_cmd_build1="pas de SVN correct trouvé\n supprimez oscam-svn !!\n ----------------------";
txt_cmd_build2="SVN effacé\n redemarrez simplebuild !!\n --------------------------------------";
txt_cmd_build3="appliquer le(s) patche(s)\n -------------------------";
txt_cmd_build4="patches trouvé(s) pour être appliqué(s)";
txt_cmd_build5="appliquer le patch";
txt_cmd_build6="Nettoyer le SVN d'OSCam local";
txt_cmd_build7="Taille du binaire avant compression";
txt_cmd_build8="Taille du binaire après compression";
txt_cmd_build9="Taille du binaire réduite à";
txt_cmd_build10="supprimer les patches\n ---------------------";
txt_cmd_build11="patche(s) trouvé(s) pour être appliqués";
txt_cmd_build12="échec de compilation";
txt_cmd_build13="voir le fichier build.log";
txt_cmd_build14="supprimer patch";
txt_cmd_build_title="[ INFO Compression ]";
txt_b_menu_title="[ Options de compilation ]";
txt_b_menu_options1="pas d'options actives";
txt_b_menu1="[ MENU DE COMPILATION ]";
txt_b_menu2="Informations";
txt_b_menu3="Réglages Actuels";
txt_b_menu4="Configuration et Réglages d'OSCam";
txt_b_menu5="Compiler OSCam";
txt_b_menu6="Voir build.log";
txt_b_menu7="Voir la configuration d'OSCam";
txt_upload_cam1="le fichier de configuration n'existe pas";
txt_upload_cam2="le fichier de config existe";
txt_t_menu1="\n La révision actuelle d'OSCam SVN est : r";
txt_rem_chains1="Veuillez choisir la toolchain à supprimer";
txt_add_chains1="AJOUTER Toolchain";
txt_add_chains2="Veuillez choisir la toolchain à ajouter";
txt_menu_builder1="Quitter Simplebuild";
txt_menu_builder2="Nouvelle Toolchain";
txt_menu_builder3="Toolchain installées";
txt_menu_builder4="Native pour";
txt_menu_back="Retour à la sélection de Toolchain";
txt_cedit1="Supprimer le binaire de debug";
txt_cedit2="Verifier les Toolchains installées";
txt_cedit3="Activer le système de Patches Automatique";
txt_cedit4="Activer la vérification de Mises à jour";
txt_cedit5="Informations detaillées sur la compilation";
txt_revcheck1="VERIFICATION DE MISE A JOUR";
txt_revcheck2="Vérification de la version d'OSCam SVN en ligne\n\t\b";
txt_revcheck3="Révision disponible:";
txt_revcheck4="Entrer le numéro de Révision...";
txt_revcheck5="impossible. SVN hors ligne !";
txt_revcheck6="Vérification de la version d'OSCam SVN locale\n\t\b";
txt_revsel1="avec locale:";
txt_revsel2="Effacer la";
txt_revsel3="et tous les fichiers de configuration";
txt_revsel4="Editeur de configuration";
txt_revsel5="Programme";
txt_revsel6="Mettre à jour vers la dernière Révision";
txt_options1="Editer Options :";
txt_options2="activer";
txt_options3="activer";
txt_options4="OK rédemarre Simplebuild";
txt_options_title="Editeur de Configuration";
txt_disksvn="révision locale est maintenant "

149
support/translation/it

@ -0,0 +1,149 @@
#!/bin/bash
#italiano
txt_create='creato in';
txt_bmenu_user="Nome utente ";
txt_bmenu_comp="Compilatore ";
txt_bmenu_debu="Informazioni di Debug ";
txt_bmenu_acti="Caratteristiche attive";
txt_wait="attendere prego...";
txt_build="compilo";
txt_lc="utilizzare";
txt_to="verso";
txt_force="Checkout rapido";
txt_back="Torna al menu Toolchain";
txt_end="Termina Simplebuild";
txt_offline="offline";
txt_error="Errore";
txt_LOAD="CARICA";
txt_DOWNLOAD="Sto scaricando";
txt_REMOVE="RIMUOVI";
txt_found_in="trovato in";
txt_found_in_archiv="trovato in archivio";
txt_buildtime="tempo di compilazione";
txt_nosvn="nessuna svn trovata";
txt_with="con";
txt_old="vecchio";
txt_no_stapi="nessun sh4 STAPI presente!";
txt_rm="rimosso";
txt_help1="inizia con";
txt_help2="Le linee di comando sono";
txt_help3="Premi [ENTER] per continuare..."
txt_compressor1="scegli la COMPRESSIONE BINARIA\n per il tuo SISTEMA DI COMPILAZIONE";
txt_compressor2="Risultato : ";
txt_compressor3="trovato";
txt_compressor4="non trovato";
txt_packok="è compresso nell'arvhivio";
txt_packfail="errore durante la compressione";
txt_rcheckout=" manca SVN. Vengono cerati aggioranmenti. Attendere prego...\n";
txt_extra1=" Scegliere le caratteristiche :\n [*] = on; [ ] = off";
txt_extra2="supporto periferiche USB";
txt_extra3="supporto periferiche PCSC";
txt_extra4="utilizza la funzione STAPI";
txt_extra5="utilizza la funzione COOLAPI";
txt_extra6="includi le librerie in Oscam";
txt_extra7="comprimere Oscam come .tar.gz";
txt_extra8="Comprimere Oscam con UPX";
txt_checksys1="\n controllo file\n --------------\n";
txt_checksys2="\n controllo pacchetto\n -------------------\n";
txt_checksys3="è intallato";
txt_checksys4="... non è installato";
txt_checksys5="installato ";
txt_checksys6="... maca";
txt_checksys7=" trovato in ";
txt_cfg_path1="default è";
txt_cfg_path2="impostato è";
txt_cfg_path3="La CONF_DIR è impostata a";
txt_lib_path1="La LIB_DIR è impostata a";
txt_custom_suffix="lasciare vuoto per Standard";
txt_online_update1="versione locale";
txt_online_update2="versione online";
txt_online_update3="Volete cambiare alla versione attuale dello script SIMPLEBUILD";
txt_conf_update1="versione locale";
txt_conf_update2="versione online";
txt_conf_update3="Volete cambiare alla versione attuale del file CONFIG";
txt_patch="usare patch";
txt_patch_off1="Patch(e) trovati da eliminare\n-----------------------------";
txt_patch_off2="rimuovi Patch(s)";
txt_patch_off3="rimuovo";
txt_patch_off4="files dalla svn";
txt_patch_on1="Patch(s) da applicare trovati\n-----------------------------";
txt_patch_on2="Patch(s) applicare";
txt_con_check1="carico mancanti";
txt_con_check2="riconosciuta dimensione Toolchain errata! Rimuovo e ricarico.";
txt_con_check3="errore durante il caricamento";
txt_configure_title="[ CONFIGURAZIONE ]";
txt_configure_menu0="Configurare";
txt_configure_menu1="Moduli, Protocolli, Lettori, Carten e Driver per Reader";
txt_configure_menu2="Caratteristiche (USB/PCSC/PACK/PATCH/STAPI/COOLAPI/COMPRESS)";
txt_configure_menu3="Configurazioni standard- impostazione directory";
txt_configure_menu4="Librerie standard- impostazione directory";
txt_configure_menu6="eigene oscam Endung verwenden";
txt_configure_menu7="Salvare e tornare al menu di compilazione";
txt_cmdline1="Revisions Checkout";
txt_cmdline2="Trunk Checkout";
txt_cmdline3="utilizza il profilo standard";
txt_cmdline4="utilizza il profilo personalizzato";
txt_cmdline5="utilizza il profilo salvato";
txt_cmdline6="profilo personalizzato non trovato\n utilizzo profilo standard";
txt_cmdline7="profilo salvato non trovato\n utilizzo profilo standard";
txt_cmd_build1="nessuna SVN originale trovata\n rimuovi subito oscam-svn !!\n ---------------------------";
txt_cmd_build2="SVN rimossa\n Riavvia Simplebuild!\n --------------------";
txt_cmd_build3="applico Patch(s)\n ----------------";
txt_cmd_build4="trovato Patch(s) da rimuovere";
txt_cmd_build5="applicare Patch(s)";
txt_cmd_build6="pulire SVN";
txt_cmd_build7="Dimensione file prima ";
txt_cmd_build8="Dimensione file dopo ";
txt_cmd_build9="Dimensione file rimpicciolita di";
txt_cmd_build10="rimuovo Patch(s)\n ----------------";
txt_cmd_build11="trovato Patch(s) da rimuovere";
txt_cmd_build12="errore durante la compilazione";
txt_cmd_build13="leggere build.log"
txt_cmd_build14="rimuovo Patch(s)";
txt_cmd_build_title="[ INFO compressione ]";
txt_b_menu_title="[ Opzioni compilazione ]";
txt_b_menu_options1="nessuna caratteristica attiva"
txt_b_menu1="[ MENU COMPILAZIONE ]";
txt_b_menu2="Informazioni";
txt_b_menu3="impostazioni applicate";
txt_b_menu4="imposta OScam";
txt_b_menu5="Compilo Oscam";
txt_b_menu6="Mostra build.log";
txt_b_menu7="mostra la configurazione OScam";
txt_upload_cam1="manca il file config";
txt_upload_cam2="file config trovato";
txt_t_menu1="\n La versione SVN attuale è : r";
txt_rem_chains1="Selezione per favore il Toolchain da rimuovere";
txt_add_chains1="Aggiungi Toolchain";
txt_add_chains2="Selezionare per favore il Toolchain da aggiungere";
txt_menu_builder1="Termina Simplebuild";
txt_menu_builder2="Aggiungi un Toolchain";
txt_menu_builder3="Rimuovi un Toolchain installato";
txt_menu_builder4="Nativo per";
txt_menu_back="Torna al menu Toolchain";
txt_cedit1="Rimuovi il file .debug";
txt_cedit2="Controlla i Toolchains installati";
txt_cedit3="Attiva AUTO PATCH SYSTEM";
txt_cedit4="Attiva Update Check";
txt_cedit5="SCRIPT mit maximalen Infos beim bau";
txt_revcheck1="CONTROLLO_UPDATE";
txt_revcheck2="Controllo versione ONLINE di Oscam";
txt_revcheck3="Versione trovata:";
txt_revcheck4="Immettere il numero della SVN desiderata...";
txt_revcheck5="impossibile. SVN è offline!";
txt_revcheck6="Controllare la SVN locale";
txt_revsel1="Continua con SVN locale:";
txt_revsel2="SVN";
txt_revsel3="riscaricare e rimuovere le configurazioni";
txt_revsel4="Editore configurazioni";
txt_revsel5="Esci dal programma";
txt_revsel6="Aggiornare all'ultima versione";
txt_wrong1="buildcamname errato o non trovato";
txt_options1="Modifica opzioni:";
txt_options2="ativare";
txt_options3="Disattivare";
txt_options4="OK riavvia SIMPLEBUILD";
txt_options_title="Editore CONFIG";
txt_disksvn="revisione locale è ora "

114
support/translation/nl

@ -0,0 +1,114 @@
#!/bin/bash
#nederlands
txt_as='als';
txt_of='van';
txt_for='voor';
txt_b2="build";
txt_to="naar";
txt_now='nu';
txt_b1='compileren';
txt_menu='Menu';
txt_no='geen';
txt_name='Naam';
txt_use='gebruik';
txt_back='terug';
txt_done=' klaar';
txt_error='Fout';
txt_missing='ontbreekt';
txt_sel='selecteren';
txt_delete='verwijderen';
txt_found='gevonden';
txt_create='maak';
txt_loading=' laden';
txt_profile='profiel';
txt_profiles='Profielen';
txt_conf='Configuratie';
txt_parameter='Parameter';
txt_extracting='uitpakken';
txt_wait='momentje...';
txt_existing='bestaande';
txt_ssh_profiles='SSH $txt_profiles';
txt_not_found='niet gevonden';
txt_n_installed='is niet geïnstalleerd';
txt_start_menu='Hoofdmenu';
txt_back_main="$txt_back naar $txt_start_menu";
txt_too_old='(te oud of niet ondersteund)';
txt_selected='geselecteerd';
txt_update='nu bijwerken';
txt_example_name='Voorbeeld: dm820.slaapkmr';
txt_save='opslaan';
txt_filename='Bestandsnaam';
txt_LOAD="UPLOAD";
txt_tc="Toolchain";
# menu txt
txt_remove_menu='$txt_tc verwijderen';
txt_add_menu='$txt_tc toevoegen';
txt_main_revision="\n De actuele SVN versie is : r";
txt_bmenu_title="Buildmenü";
# help txt
txt_help1="begin met"
txt_help2="Opdrachtregel parameters zijn"
txt_help3="Druk op [ENTER] om door te gaan..."
# firstmenu ################################################
txt_firstmenu_continue="Doorgaan met lokale SVN";
txt_firstmenu_chose="Andere SVN versie (7000+) laden";
txt_firstmenu_cedit="$txt_conf""s Editor starten";
txt_firstmenu_lang="Taal handmatig $txt_sel";
txt_firstmenu_exit="Afsluiten";
# _toolchain_config_menu ###################################
txt_config_menu="$txt_conf $txt_menu";
txt_back_build="$txt_back naar $txt_bmenu_title";
txt_module_configure="Oscam module $txt_sel";
txt_oscam_extra="Oscam extra's USB/PCSC $txt_sel";
txt_build_extra="build Extra's Compress/Patch $txt_sel";
txt_build_load="Laatste $txt_conf laden";
txt_build_save="$txt_conf bewaren";
txt_build_reset="$txt_conf $txt_back zetten";
txt_use_targz='maak .tar bestand na het compileren';
txt_use_patch='patch oscam voor het compileren';
txt_use_compress='Binaire compressie van oscam';
# _toolchain_build_menu ####################################
txt_bmenu_user="Gebruikersnaam ";
txt_bmenu_comp="Compiler ";
txt_bmenu_debu="Debug info ";
txt_bmenu_use="GEBRUIK variabelen ";
txt_bmenu_build="OScam nu $txt_b1";
txt_bmenu_config="OScam/Build $txt_conf";
txt_bmenu_profile="beschikbare $txt_profile laden";
txt_bmenus_profile="$txt_profile $txt_save";
txt_bmenu_log="Toon lastbuild.log";
txt_bmenu_back="$txt_back naar $txt_tc selectie";
txt_compress1="Bestandgrootte eerst ";
txt_compress2="Bestandgrootte na ";
txt_compress3="Bestandgrootte verkleind tot ";
# _toolchain_main_menu#####################################
txt_menu_builder1="Simplebuild afsluiten";
txt_menu_builder2="Voeg nieuwe $txt_tc toe";
txt_menu_builder3="Verwijder geïnstalleerde $txt_tc";
txt_menu_builder4="Huidig system:";
txt_menu_back="Naar $txt_tc $txt_menu";
# _dialog_checkout
txt_verify_syscheck='Systeem controleren :';
txt_verify_svn='Huidige SVN controleren :';
txt_update_svn="SVN $txt_update :";
txt_prepare_svn="SVN controle voorbereiden :";
txt_latest="Nieuwste SVN";
# _load_profile ###########################################
txt_select_profile_title="Beschikbare $txt_profiles";
txt_select_profile="Kies een $txt_profile a.u.b.";
txt_confirm_profile_select="Bevestig a.u.b. de keuze van:";
txt_no_profile_found="geen $txt_profile gevonden in\n\n$profdir";
# _upload_cam #############################################
txt_upload_cam1="ssh $txt_profile bestaat niet";
txt_upload_cam2="ssh $txt_profiles gevonden";

115
support/translation/pl

@ -0,0 +1,115 @@
#!/bin/bash
#polski
txt_as='niż';
txt_of='z';
txt_for='dla';
txt_b2="buduję";
txt_to="do";
txt_now='teraz';
txt_b1='kompiluj';
txt_menu='menu';
txt_no='żaden';
txt_name='nazwa';
txt_use='użyj';
txt_back='powrót';
txt_done=' gotowe';
txt_error='błąd';
txt_missing='brak';
txt_sel='wybierz';
txt_delete='usuń';
txt_found='znaleziono';
txt_create='utwórz';
txt_loading='ładuj';
txt_profiles='profil';
txt_conf='kofiguracja';
txt_parameter='parametr';
txt_extracting='rozpakuj';
txt_wait='proszę czekać ...';
txt_existing='istniejący';
txt_ssh_profiles='SSH Profile';
txt_not_found='nie znaleziono';
txt_n_installed='nie jest zainstlowane';
txt_back_main="$txt_back do menu głównego";
txt_too_old='(zbyt stary nie jest obsługiwany)';
txt_selected='wybrane';
txt_update='aktualizacja';
txt_example_name='przykład: dm820.stube';
txt_save='zapisz';
txt_filename='nazwa pliku';
txt_LOAD="UPLOAD\przesłać";
# menu txt
txt_start_menu='menu główne';
txt_remove_menu='usuń Toolchain';
txt_add_menu='dodaj Toolchain';
txt_main_revision="\n aktualna SVN REVISION to : r";
# help txt
txt_help1="zaczać z"
txt_help2="wiersz poleceń to"
txt_help3="[ENTER] > dalej ..."
# firstmenu ################################################
txt_firstmenu_continue="dalej z lokalnym SVN";
txt_firstmenu_chose="załaduj inny SVN (od 7000)";
txt_firstmenu_cedit="$txt_conf"" - wystartuj edytor";
txt_firstmenu_lang="opcje językowe";
txt_firstmenu_exit="zakończ Simplebuild";
# _toolchain_config_menu ###################################
txt_config_menu="menu konfiguratora";
txt_back_build="$txt_back do menu kompilacji";
txt_module_configure="$txt_sel moduły Oscam";
txt_oscam_extra="$txt_sel kompilacyjne extra USB/PCSC ";
txt_build_extra="$txt_sel kompilacyjne extra Compress/Patch";
txt_build_load="z$txt_loading ostatnia $txt_conf";
txt_build_save="$txt_save $txt_conf ";
txt_build_reset="resetuj konfigurację ";
txt_use_targz='$txt_create plik.tar po kompilacji ';
txt_use_patch='użyj Patch przed kompilacją';
txt_use_compress='spakuj binarke oscam';
# _toolchain_build_menu ####################################
txt_bmenu_title="menu kompilacji";
txt_bmenu_user="nazwa usera ";
txt_bmenu_comp="Compiler ";
txt_bmenu_debu="Debug Info ";
txt_bmenu_use="variable ";
txt_bmenu_build="$txt_b1 OScam";
txt_bmenu_config="konfiguracja OScam/Build";
txt_bmenu_profile="załaduj $txt_existing profil";
txt_bmenus_profile="Profil $txt_save";
txt_bmenu_log="pokaż lastbuild.log";
txt_bmenu_back="$txt_back do wyboru Toolchain";
txt_compress1="wielkość pliku przed ";
txt_compress2="wielkość pliku po ";
txt_compress3="wielkość pliku zmniejszona do";
# _toolchain_main_menu ####################################
#txt_menu_title="menu toolchaini";
txt_menu_builder1="zakończ Simplebuild";
txt_menu_builder2="dodaj nowy Toolchain";
txt_menu_builder3="usuń zainstalowany Toolchain";
txt_menu_builder4="nativ dla";
txt_menu_back="powrót do menu toolchain";
# _dialog_checkout ########################################
txt_verify_syscheck='sprawdzanie systemu :';
txt_verify_svn='sprawdzanie istniejącego svn :';
txt_update_svn="$txt_update svn :";
txt_prepare_svn="przygotowanie svn checkout :";
txt_latest="ostatni aktualny";
# _load_profile ###########################################
txt_select_profile_title="dostępne profile";
txt_select_profile="wybierz profil";
txt_confirm_profile_select="potwierdzić wybór :";
txt_no_profile_found="nie znaleziono profilu w\n\n$profdir";
# _upload_cam #############################################
txt_upload_cam1="SSH profil nie istnieje";
txt_upload_cam2="SSH profil znaleziony";

150
support/translation/pt

@ -0,0 +1,150 @@
#!/bin/bash
#portugues-portugal
txt_create='criar em';
txt_bmenu_user="Utilizador ";
txt_bmenu_comp="Compilador ";
txt_bmenu_debu="Informacao do Debug ";
txt_bmenu_acti="Opcoes Ativadas";
txt_wait="Por favor Aguarde...";
txt_build="Compilacao";
txt_to="para";
txt_lc="utilizar";
txt_lang_select="Mudar de Lingua";
txt_force="Forcar um MAJ rapido";
txt_back="Voltar para o menu de escolhas da toolchain";
txt_end="Sair do Simplebuild";
txt_offline="Desligado";
txt_error="Erro";
txt_LOAD="Enviando";
txt_DOWNLOAD="Descarregando ...";
txt_REMOVE="Apagar";
txt_found_in="Encontrar em";
txt_found_in_archiv="Localizar no arquivo";
txt_buildtime="Tempo de Compilacao";
txt_nosvn="Nenhuma Versao SVN encontrada";
txt_with="com";
txt_old="Antigo";
txt_no_stapi="sem STAPI SH4 disponivel !!!";
txt_rm="apagado";
txt_help1="iniciar com";
txt_help2="os parametros das linhas de comando disponiveis sao";
txt_help3="prime [ENTER] para continuar..."
txt_compressor1="Escolhe o meio de compressao de binarios\n para o seu sistema de compilacao";
txt_compressor2="resultado : ";
txt_compressor3="detectado";
txt_compressor4="nao detectado";
txt_packok="esta compressado no arquivo";
txt_packfail="nao conseguiu compressar";
txt_rcheckout="Estructura do SVN nao encontrada ... A actualizar, Por Favor Aguarde !\n";
txt_extra1=" Escolha as opcoes :\n [*] = Activar; [ ] = Desactivar";
txt_extra2="Suporte dos leitores USB";
txt_extra3="Suporte dos leitores PCSC";
txt_extra4="Suporte do STAPI";
txt_extra5="Suporte do COOLAPI";
txt_extra6="Compilar as Librarias dentro do OScam";
txt_extra7="Compactar o binario do OScam em .tar.gz";
txt_extra8="Compressar o binario OScam com UPX";
txt_checksys1="\n Verificacao dos ficheiros \n -------------------------\n";
txt_checksys2="\n Verificacao dos pacotes\n -------------------------\n";
txt_checksys3="esta instalado";
txt_checksys4="... nao esta instalado";
txt_checksys5="instalado ";
txt_checksys6="... nao esta instalado";
txt_checksys7=" encotrado em ";
txt_cfg_path1="valor por defeito";
txt_cfg_path2="valor actual";
txt_cfg_path3="directorio de configuracoes";
txt_lib_path1="directorio de librarias";
txt_custom_suffix="deixar vazio para os valores por defeito";
txt_online_update1="versao local";
txt_online_update2="versao online";
txt_online_update3="Deseja actualizar o seu SIMPLEBUILD ?";
txt_conf_update1="versao local";
txt_conf_update2="versao online";
txt_conf_update3="Deseja actualizar o ficheiro CONFIG ?";
txt_patch="utilizar o patch";
txt_patch_off1="patch(s) encontrado(s) para supressao\n------------------------------------";
txt_patch_off2="apagar o patch";
txt_patch_off3="apagar";
txt_patch_off4="ficheiro da fonte";
txt_patch_on1="patch(s) encontrado(s) para aplicacao\n------------------------------------\n------------------------------------";
txt_patch_on2="aplicar patch";
txt_con_check1="Transferencia nao encontrada";
txt_con_check2="tamanho da toolchain incorrecto. Apague e comece de novo !";
txt_con_check3="Impossivel transferir";
txt_configure_title="[ CONFIGURACAO ]";
txt_configure_menu0="Configuracao";
txt_configure_menu1="Add-ons, Protocolos, Sistemas CA, Leitores de Cartoes";
txt_configure_menu2="Outros Parametros (USB/PCSC/STAPI/COOL/PACK/PATCH/COMPRESS)";
txt_configure_menu3="Mudar o directorio das configs por defeito";
txt_configure_menu4="Mudar o directorio das librarias por defeito";
txt_configure_menu5="Escolher o compressor do bianario";
txt_configure_menu6="Escolher um suffixo personalizado para o binario do OSCAM";
txt_configure_menu7="Voltar para o MENU DE COMPILACAO";
txt_cmdline1="Verificacao da Revision ";
txt_cmdline2="Verificacao do trunk";
txt_cmdline3="consideracao do perfil por defeito";
txt_cmdline4="consideracao do perfil modificado";
txt_cmdline5="consideracao do perfil guardado";
txt_cmdline6="perfil modificado ausente\n perfil por defeito tomado em conta (Selecionado)";
txt_cmdline7="perfil guardado ausente\n perfil por defeito tomado em conta (Selecionado) ";
txt_cmd_build1="nenhum SVN correcto encontrado\n apague oscam-svn !!\n ----------------------";
txt_cmd_build2="SVN apagado\n re-inicie o simplebuild !!\n --------------------------------------";
txt_cmd_build3="aplicar o(s) patch(s) \n -------------------------";
txt_cmd_build4="patch(s) encontrado(s) para serem aplicado(s)";
txt_cmd_build5="aplicar o patch";
txt_cmd_build6="Limpar SVN do OSCam local";
txt_cmd_build7="Tamanho do bianario antes da compressao";
txt_cmd_build8="Tamanho do bianario depois da compressao";
txt_cmd_build9="Tamanho do bianario reduzido a";
txt_cmd_build10="apagar patch\n ---------------------";
txt_cmd_build11="patch(s) encontrado(s) para serem aplicado(s)";
txt_cmd_build12="falha de compilacao";
txt_cmd_build13="visionar o ficheiro build.log";
txt_cmd_build14="apagar patch";
txt_cmd_build_title="[ INFO Compressao ]";
txt_b_menu_title="[ Opcoes de compilacao ]";
txt_b_menu_options1="nenhuma Opcao activa";
txt_b_menu1="[ MENU DE COMPILACAO ]";
txt_b_menu2="Informacoes";
txt_b_menu3="Configuracoes Actuais";
txt_b_menu4="Configuracoes et Parametros do OSCam";
txt_b_menu5="Compilar OSCam";
txt_b_menu6="Visionar build.log";
txt_b_menu7="Ver a configuracao do OSCam";
txt_upload_cam1="o ficheiro de configuracao nao existe";
txt_upload_cam2="o ficheiro config existe";
txt_t_menu1="\n A Revisao actual do OSCam SVN é : r";
txt_rem_chains1="Por favor escolhe a Toolchain a ser apagada";
txt_add_chains1="ADICIONAR Toolchain";
txt_add_chains2="Por favor escolhe a Toolchain a adicionar";
txt_menu_builder1="Sair do Simplebuild";
txt_menu_builder2="Nova Toolchain";
txt_menu_builder3="Toolchain Instaladas";
txt_menu_builder4="Nativo para";
txt_menu_back="Voltar á seleccao da(s) Toolchain(s)";
txt_cedit1="Apagar o binario de debug";
txt_cedit2="Verificar as Toolchain(s) instaladas";
txt_cedit3="Activar o sistema de Patch Automatico";
txt_cedit4="Activar a verificacao de Actualizacoes";
txt_cedit5="Informacoes detalhadas sobre a compilacao";
txt_revcheck1="VERIFICACAO DAS ATUALIZACOES";
txt_revcheck2="Verificacao da versao do OSCam SVN online\n\t\b";
txt_revcheck3="Revisao disponivel:";
txt_revcheck4="Insira o numero da Revisao...";
txt_revcheck5="impossivel. SVN offline !";
txt_revcheck6="Verificacao da versao do OSCam SVN local\n\t\b";
txt_revsel1="com local:";
txt_revsel2="Apagar a";
txt_revsel3="e todos os ficheiros de configuracao";
txt_revsel4="Editor de configuracao";
txt_revsel5="Programa";
txt_revsel6="Actualizar para a ultima Revisao";
txt_options1="Editar Opcoes :";
txt_options2="activar";
txt_options3="activar";
txt_options4="OK reinicie o Simplebuild";
txt_options_title="Editor de Configuracoes";
txt_disksvn="revisao local esta agora "

115
support/translation/tr

@ -0,0 +1,115 @@
#!/bin/bash
#turkish
txt_as='as';
txt_of='/';
txt_for='için';
txt_b2="yapı";
txt_to="after";
txt_now='şimdi';
txt_b1='build';
txt_menu='Menü';
txt_no='none';
txt_name='Ad';
txt_use='kullanım';
txt_back='geri dön';
txt_done='hazır';
txt_error='hata';
txt_missing='eksik';
txt_sel='seçmek';
txt_delete='sil';
txt_found='bulundu';
txt_create='oluştur';
txt_loading='load'; #7karakter
txt_profile='profil';
txt_profiles='Profiller';
txt_conf='yapılandırma';
txt_parameter='Parametre';
txt_extracting='ayıklanıyor'; #10karakter
txt_wait='lütfen bekleyin...';
txt_existing='var';
txt_ssh_profiles="SSH $txt_profiles";
txt_not_found='bulunamadı';
txt_n_installed='yüklü değil';
txt_start_menu='Ana menü';
txt_back_main="$txt_start_menu'ye geri dön";
txt_too_old='(çok eski desteklenmiyor)';
txt_selected='seçildi';
txt_update='güncelleniyor';
txt_example_name='Örnek:dm820.stube';
txt_save='kayıt';
txt_filename='dosya adı';
txt_LOAD="UPLOAD";
txt_tc="Toolchain";
# menu txt
txt_start_menu='Ana menü';
txt_remove_menu="$txt_tc kaldır";
txt_add_menu="$txt_tc ekle";
txt_main_revision="\n yerel SVN revizyonu : r";
# help txt
txt_help1="ile başla"
txt_help2="komut satırıyla başlayın Parametreler"
txt_help3="[ENTER] ile devam eder ..."
# firstmenu #################### ###########################
txt_firstmenu_continue="yerel SVN ile devam et";
txt_firstmenu_chose="Farklı bir SVN yükle (7000+)";
txt_firstmenu_cedit="yapılandırma düzenleyicisini başlat";
txt_firstmenu_lang="sistem dili seç";
txt_firstmenu_exit="Simplebuild'i kapat";
# _toolchain_config_menu #####################################
txt_config_menu="yapılandırma menüsü";
txt_back_build="menüye geri dön";
txt_module_configure="oscam modüllerini seç";
txt_oscam_extra="USB/PCSC ekstralarını seçin";
txt_build_extra="build ekstralar sıkıştır / yama seç";
txt_build_load="son yapılandırmayı yükle";
txt_build_save="konfigürasyonu kaydet";
txt_build_reset="yapılandırmayı sıfırla";
txt_use_targz='oscam derlemeden sonra file.tar.gz';
txt_use_patch="patch yamasını oscam'a ekle";
txt_use_compress="Oscam'den ikili sıkıştırma";
# _toolchain_build_menu ####################################
txt_bmenu_title="menü oluşturma";
txt_bmenu_user="kullanıcı adı ";
txt_bmenu_comp="derleyici ";
txt_bmenu_debu="hata ayıklama bilgisi";
txt_bmenu_use="USE_değişkenler ";
txt_bmenu_build="şimdi oscam oluştur";
txt_bmenu_config="oscam/build yapılandırma";
txt_bmenu_profile="mevcut $txt_profile ile yükle";
txt_bmenus_profile="$txt_profile $txt_save et";
txt_bmenu_log="göster lastbuild.log";
txt_bmenu_back="$txt_tc seçimine geri dön";
txt_compress1="önce dosya boyutu ";
txt_compress2="sonra dosya boyutu ";
txt_compress3="dosya boyutu azaldı ";
# _toolchain_main_menu ######################################
txt_menu_builder1="close simplebuild";
txt_menu_builder2="yeni $txt_tc ekle";
txt_menu_builder3="yüklü $txt_tc kaldır";
txt_menu_builder4="mevcut yerel yapı için oluştur";
txt_menu_back="$txt_tc menüsüne geri dön";
# _dialog_checkout
txt_verify_syscheck="sistemi kontrol et :";
txt_verify_svn="mevcut SVN'yi kontrol et :";
txt_update_svn="$txt_update SVN :";
txt_prepare_svn="SVN ödemesini hazırla :";
txt_latest="en son SVN";
# _load_profile ############################################
txt_select_profile_title="kullanılabilir profiller ";
txt_select_profile="lütfen bir profil seçin";
txt_confirm_profile_select="lütfen seçiminizi onaylayın:";
txt_no_profile_found="içinde profil bulunamadı\n\n$profdir";
# _upload_cam ###########################################
txt_upload_cam1="ssh profili mevcut değil ";
txt_upload_cam2="ssh profili bulundu";
Loading…
Cancel
Save