summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'seggetd/seggetd.conf')
-rw-r--r--seggetd/seggetd.conf463
1 files changed, 463 insertions, 0 deletions
diff --git a/seggetd/seggetd.conf b/seggetd/seggetd.conf
new file mode 100644
index 0000000..219530e
--- /dev/null
+++ b/seggetd/seggetd.conf
@@ -0,0 +1,463 @@
+[folders]
+# By default segget daemon will use the following folders for its files:
+# /etc/seggetd - for config files for seggetd, tuiclient and request tool
+# /etc/init.d/seggetd - init file for segget daemon
+# /usr/bin - binary files: seggetd, tuiclient, request
+# /usr/share/seggetd/scripts - for user-side python script files
+# /usr/share/seggetd/webui - for webui files
+# /tmp/seggetd/pkg.list - to save distfile list generated by portage and parse it
+# by request tool to segget daemon
+# /tmp/seggetd/segments - to store segments
+# /usr/portage/distfiles - to store ready to use distfiles
+# /var/log/seggetd - to store log files
+
+# DISTFILES_DIR
+# Define a dir to store distfiles
+# Default:
+# distfiles_dir=/usr/portage/distfiles
+distfiles_dir=/usr/portage/distfiles
+
+# SEGMENTS_DIR
+# Define a dir to store distfiles' segments
+# Default:
+# segments_dir=/tmp/seggetd/segments
+segments_dir=/tmp/seggetd/segments
+
+[portage]
+# SYNOPSIS: fetch_only=0 | 1
+# NOT IMPLEMENTED YET: fetch_only=0
+
+[distfiles]
+# MAX_CONNECTION_NUM_PER_DISTFILE
+# Each distfile can have up to max_connection_num_per_distfile simultaneous
+# connections.
+# Minimum value: 1
+# Maximum value: 20
+# Default:
+# max_connection_num_per_distfile=3
+max_connection_num_per_distfile=3
+
+[segments]
+# MAX_SEGMENT_SIZE
+# Define maximum segment size in bytes.
+# Minimum value: 10000
+# Maximum value: 10000000
+# Default:
+# max_segment_size=500000
+max_segment_size=500000
+
+# SYNOPSIS: resume_on=0 | 1
+# - If resume_on set to 1:
+# Before starting downloading a segment segget checks whether this segment is
+# already downloaded, checks segments size and if size mathces considers this
+# segment to be downloaded and skips downloading process.
+# - If resume_on set to 0:
+# Segget always starts new fetch for a segment regardless of the fact whether it
+# is downloaded or not.
+# Default:
+# resume_on=1
+resume_on=1
+
+# MAX_TRIES
+# If segment download was unsuccessful, new attempts are made. When attempts
+# number reaches max_tries, segment gets FAILED status and error logged to error_log
+# Minimum value: 1
+# Maximum value: -1 (for no limit)
+# Default:
+# max_tries=10
+max_tries=10
+
+[connections]
+# MAX_CONNECTIONS
+# Define maximum number of connections
+# Minimum value: 1
+# Maximum value: 20
+# Default:
+# max_connections=10
+max_connections=10
+
+# CURRENT_SPEED_TIME_INTERVAL_MSECS
+# segget transfers may have bursty nature of their traffic. Therefore, while
+# measuring current speed, segget actually calculates average speed during
+# current_speed_time_interval_msecs time interval, defined in milliseconds.
+# Minimum value: 100
+# Maximum value: 60000
+# Default:
+# current_speed_time_interval_msecs=1000
+current_speed_time_interval_msecs=1000
+
+[mirrors]
+# MAX_CONNECTIONS_NUM_PER_MIRROR
+# Define how many simultaneous downloads from one mirror segget is allowed to
+# have. While choosing a mirror segget will skip mirrors with
+# max_connections_num_per_mirror active downloads.
+# Minimum value: 1
+# Maximum value: 10
+# Default:
+# max_connections_num_per_mirror=1
+max_connections_num_per_mirror=1
+
+# SYNOPSIS: collect_benchmark_stats_on=0 | 1
+# - If set to 1, stats on mirrors performance will be collected.
+# default:
+# collect_benchmark_stats_on=1 (Note: at the moment can NOT be changed)
+collect_benchmark_stats_on=1
+
+# SYNOPSIS: use_benchmark_stats=0 | 1
+# If use_benchmark_stats=1 statistics on mirrors is used to rate them
+# and therefore improve performance.
+# Each time connection from a particular mirror closes mirror->dld_time,
+# and mirror->dld_size get increased (in case of unsuccessful connection
+# only time gets increased), so avg speed for a mirror can be
+# calculated:
+#
+# mirror->avg_speed=mirror->dld_size/mirror->dld_time. (1)
+#
+# When new segment is going to be started segget goes through the list of
+# the mirrors distfile/segment has, and asks each mirror for self_rating:
+#
+# "ulong self_rating=mirror->mirror_on_the_wall();".
+#
+# This way segget chooses a mirror with the best self_rating. To calculate
+# self_rating mirrors use the following formula:
+#
+# self_rating=dld_time/dld_size*honesty. (2)
+#
+# So mirrors actually say how bad they are.
+# Even mirrors can have critical times, so to give mirrors another chance
+# honesty was added to the formula (2). honesty can get values in
+# interval (0,1]. Each time connection from a mirror opens or closes mirror
+# sets its honesty=1. If mirror was asked for self_evaluation with
+# mirror->mirror_on_the_wall(), but wasn't chosen its honesty decreases
+# somewhat (see [mirror].benchmark_oblivion option), so next time it will
+# lie little bit more about how bad it's.
+# Default:
+# use_benchmark_results=1
+# ***Note: at the moment use_benchmark_results can NOT be set to 0
+use_benchmark_stats=1
+
+# BENCHMARK_OBLIVION
+# benchmark_oblivion option allows to adjust how fast segget "forgets"
+# benchmarking statistics on mirrors performance.
+# Each time mirror->mirror_on_the_wall() called, mirror decreases its
+# honesty (to have more chances next time) using the following formula:
+#
+# honesty=honesty*100/(100+settings.benchmark_oblivion) (3)
+#
+# Therefore, setting benchmark_oblivion=100 will make mirror look twice
+# less bad next time mirror->mirror_on_the_wall() called.
+# Minimum value: 0 (Beware: setting to 0, will can exclude unlucky mirrors)
+# Maximum value: 1000
+# Default:
+# benchmark_oblivion=5
+benchmark_oblivion=5
+
+[provide_mirror_to_others]
+# PROVIDE_MIRROR_DIR
+# Define a dir for making symlinks to downloaded distfiles. This dir can be
+# used to provide local mirror for other hosts (with help of Apache, vsftp, etc).
+# If set to none, segget will not make symlinks.
+# Default:
+# provide_mirror_dir=none
+provide_mirror_dir=none
+
+# SYNOPSIS: PROVIDE_MIRROR_FILES_RESTRICT_LIST_ON= 0 | 1
+# If PROVIDE_MIRROR_DIR=none this option will be ignored.
+# - If set to 1, segget will compare distfile name with the list of forbiden
+# patterns from the restricted.conf file. If distfile name contains any of the
+# patterns, no symlink will be provided to this distfile.
+# Default:
+# provide_mirror_files_restrict_list_on=0
+provide_mirror_files_restrict_list_on=0
+
+# PROVIDE_MIRROR_TO_OTHERS_URL
+# Specify url to the provided mirror.
+# This option is used to generate rss feed.
+# By default UI_IP is used for this.
+# Default:
+# provide_mirror_to_others_url=ui_ip
+provide_mirror_to_others_url=ui_ip
+
+[provide_proxy_fetcher_to_others]
+# PROVIDE_PROXY_FETCHER_IP
+# Define an ip address segget will use to provide access for tuiclients.
+# The parameter should be a string holding your host dotted IP address.
+# Default:
+# provide_proxy_fetcher_ip=none
+provide_proxy_fetcher_ip=127.0.0.1
+
+# PROVIDE_PROXY_FETCHER_PORT
+# Define a port segget will use to provide access for tuiclients.
+# The parameter should be an integer.
+# Minimum value: 1
+# Maximum value: 65535
+# Default:
+# provide_proxy_fetcher_port=3131
+provide_proxy_fetcher_port=3130
+
+[networks]
+# NETWORK0_PRIORITY
+# Define priority as a value in range from lowest 0 to highest 10.
+# Segget tries to use networks with higher priority levels first, and in case of
+# failure will switch to networks with lower priority levels.
+# Segget will NOT use network if its priority level set to 0. Therefore at least
+# one network must have priority level higher than 0.
+# Networks with local mirrors usually would have higher priority than that of
+# networks with remote mirrors.
+# Segget can have up to 10 networks (from network0 to network9).
+# Settings for each network should be defined in network#.conf file, where
+# instead of # should be network number. For network0 it's network0.conf
+# Default:
+# network0_priority=10
+# network1_priority=0
+# network2_priority=0
+# network3_priority=0
+# network4_priority=0
+# network5_priority=0
+# network6_priority=0
+# network7_priority=0
+# network8_priority=0
+# network9_priority=0
+network0_priority=10
+network1_priority=0
+network2_priority=0
+network3_priority=0
+network4_priority=0
+network5_priority=0
+network6_priority=0
+network7_priority=0
+network8_priority=0
+network9_priority=0
+
+[user-data]
+# USER_AGENT
+# Set the User-Agent: header in the http request sent to the remote server.
+# This can be used to fool servers or scripts.
+# Default:
+# user_agent=segget
+user_agent=segget
+
+# Specify the user and password for authentication on a ftp servers.
+# NOT IMPLEMENTED YET: ftp-user=anonymous
+# NOT IMPLEMENTED YET: ftp-password=me@mail.ru
+
+[ui_server]
+# tuiclient monitors segget's activity by establishing tcp connection
+# with segget daemon (ui_server part of it).
+# Same ip and port are used for WebUI which can be accessed from web
+# browser via http://ui_ip:ui_port/
+
+# UI_IP
+# Define an ip address segget will use to provide access for tuiclients.
+# The parameter should be a string holding your host dotted IP address.
+# Default:
+# ui_ip=127.0.0.1
+ui_ip=127.0.0.1
+
+# UI_PORT
+# Define a port segget will use to provide access for tuiclients.
+# The parameter should be an integer.
+# Minimum value: 1
+# Maximum value: 65535
+# Default:
+# ui_port=9999
+ui_port=9999
+
+# UI_WEB_UI_DIR
+# Define a dir where segget stores webui files
+# Default:
+# ui_web_ui_dir=/usr/share/seggetd/webui
+ui_web_ui_dir=/usr/share/seggetd/webui
+
+[rss]
+# RSS feed provides information on the files added (symlinked)
+# to PROVIDE_MIRROR_DIR and can be accessed from feedreader
+# via http://ui_ip:ui_port/rss.xml
+
+# RSS_TITLE
+# Specify a title for the RSS feed
+# Default:
+# rss_title=Seggetd feed
+rss_title=Seggetd feed
+
+# RSS_DESCRIPTION
+# Specify description for the RSS feed
+# Default:
+# rss_description=Files downloaded by seggetd and provided in the local mirror
+rss_description=Files downloaded by seggetd and provided in the local mirror
+
+[request_server]
+# request application adds distfiles to segget daemon queue by establishing tcp connection
+# with segget daemon (request_server part of it).
+
+# REQUEST_IP
+# Define an ip address segget will use to provide access for tuiclients.
+# The parameter should be a string holding your host dotted IP address.
+# Default:
+# request_ip=127.0.0.1
+request_ip=127.0.0.1
+
+# REQUEST_PORT
+# Define a port segget will use to provide access for tuiclients.
+# The parameter should be an integer.
+# Minimum value: 1
+# Maximum value: 65535
+# Default:
+# request_port=10000
+request_port=10000
+
+[scripting_and_scheduling]
+# Segget provides Python scripting functionalyty to support scheduling.
+# Each time segget tries to start a new connection certain network it calls
+# a python script (client.py) to accept or reject this connection and
+# if necessary adjusts its settings.
+
+# PYTHON_PATH
+# Define path to python
+# Default:
+# python_path=/usr/bin/python
+python_path=/usr/bin/python
+
+# SCRIPTS_DIR
+# Define a path to the dir with python scripts. Before establishing connection for
+# a particular segment via network# segget checks SCRIPTS_DIR.
+# If SCRIPTS_DIR contains net#.py file, segget will launch schedule() function
+# from this file to apply settings for connetion and accept or reject this
+# segment for the moment. net#.py file is a python script file
+# with a user-writen schedule() function.
+# It's necessary to import functions before using get("variable"),
+# set("variable",value), accept_segment() and reject_segment() in schedule().
+# get() function can obtain values for the following variables:
+# connection.num, connection.url, connection.max_speed_limit,
+# network.num, network.mode, network.active_connections_count,
+# distfile.name, distfile.size, distfile.dld_segments_count,
+# distfile.segments_count, distfile.active_connections_count,
+# segment.num, segment.try_num, segment.size, segment.range
+# set() function can change connection.max_speed_limit, see example:
+# -----------------EXAMPLE STARTS-----------------
+# from functions import *
+# import time;
+# def schedule():
+# localtime = time.localtime(time.time());
+# hour=localtime[3];
+# # disable downloading distfiles that have size more than 5 000 000 bytes
+# # from 8-00 to 22-00.
+# if hour>8 and hour<22 and (get("distfile.size"))>5000000:
+# print "reject because distfile is too big"
+# reject_segment()
+# # set speed limit 50 000 cps for distfiles larger than 1 000 000 bytes
+# if get("distfile.size")>1000000:
+# print "limit connection speed"
+# set(connection.max_speed_limit, 50000)
+# accept_segment()
+# -----------------EXAMPLE ENDS-----------------
+# From example above localtime returns following tuple:
+# Index Attributes Values
+# 0 tm_year e.i.: 2008
+# 1 tm_mon 1 to 12
+# 2 tm_mday 1 to 31
+# 3 tm_hour 0 to 23
+# 4 tm_min 0 to 59
+# 5 tm_sec 0 to 61 (60 or 61 are leap-seconds)
+# 6 tm_wday 0 to 6 (0 is Monday)
+# 7 tm_yday 1 to 366 (Julian day)
+# 8 tm_isdst -1, 0, 1, -1 means library determines DST
+# Therefore localtime[3] provides hours.
+# Segment will be accecpted by default if it was neither accepted nor rejected
+# during the schedule() function.
+# sagget saves logs of resulting stdout and stderr in the log folder
+# separatly for each network. Hence, if there's an error in net3.py file python
+# error message would be saved to net3_script_stderr.log. Results of print would
+# be saved in net3_script_stdout.log.
+# Default:
+# scripts_dir=/usr/share/seggetd/scripts
+scripts_dir=/usr/share/seggetd/scripts
+
+# SCRIPT_SOCKET_PATH
+# Segget uses AF_UNIX domain sockets for communication with python.
+# Specify path for the socket on your filesystem.
+# NOTE !: Default value can NOT be changed yet (option under development).
+# Default:
+# script_socket_path=/tmp/seggetd/script_socket
+script_socket_path=/tmp/seggetd/script_socket
+
+[logs]
+# LOGS_DIR
+# Define a dir to store log files.
+# Default:
+# logs_dir=/var/log/seggetd
+logs_dir=/var/log/seggetd
+
+# GENERAL_LOG_FILE
+# Define a file name to store general log.
+# Set to none to disable loggin.
+# Default:
+# general_log_file=segget.log
+general_log_file=segget.log
+
+# GENERAL_LOG_TIME_FORMAT
+# Set time format for general log as a string containing any combination of
+# regular characters and special format specifiers. These format specifiers are
+# replaced by the function to the corresponding values to represent the time
+# specified in timeptr. They all begin with a percentage (%) sign, and are:
+# %a Abbreviated weekday name [For example: Thu]
+# %A Full weekday name [For example: Thursday]
+# %b Abbreviated month name [For example: Aug]
+# %B Full month name [For example: August]
+# %c Date and time representation [For example: Thu Aug 23 14:55:02 2001]
+# %d Day of the month (01-31) [For example: 23]
+# %H Hour in 24h format (00-23) [For example: 14]
+# %I Hour in 12h format (01-12) [For example: 02]
+# %j Day of the year (001-366) [For example: 235]
+# %m Month as a decimal number (01-12) [For example: 08]
+# %M Minute (00-59) [For example: 55]
+# %p AM or PM designation [For example: PM]
+# %S Second (00-61) [For example: 02]
+# %U Week number with the first Sunday
+# as the first day of week one (00-53) [For example: 33]
+# %w Weekday as a decimal number with
+# Sunday as 0 (0-6) [For example: 4]
+# %W Week number with the first Monday as
+# the first day of week one (00-53) [For example: 34]
+# %x Date representation [For example: 08/23/01]
+# %X Time representation [For example: 14:55:02]
+# %y Year, last two digits (00-99) [For example: 01]
+# %Y Year [For example: 2001]
+# %Z Timezone name or abbreviation [For example: CDT]
+# %% A % sign [For example: %]
+#
+# For instace general_log_time_format=Time: %m/%d %X
+#
+# Default:
+# general_log_time_format=%m/%d %X
+general_log_time_format=%m/%d %X
+
+# ERROR_LOG_FILE
+# Define a file name to store error log.
+# Set to none to disable loggin.
+# Default:
+# error_log_file=segget.log
+error_log_file=error.log
+
+# ERROR_LOG_TIME_FORMAT
+# Set time format for error log as a string containing any combination of
+# regular characters and special format specifiers. See GENERAL_LOG_TIME_FORMAT
+# for details on format specifiers.
+# Default:
+# error_log_time_format=%m/%d %X
+error_log_time_format=%m/%d %X
+
+# DEBUG_LOG_FILE
+# Define a file name to store debug log.
+# Set to none to disable loggin.
+# Default:
+# debug_log_file=segget.log
+debug_log_file=debug.log
+
+# DEBUG_LOG_TIME_FORMAT
+# Set time format for debug log as a string containing any combination of
+# regular characters and special format specifiers. See GENERAL_LOG_TIME_FORMAT
+# for details on format specifiers.
+# Default:
+# debug_log_time_format=%m/%d %X
+debug_log_time_format=%m/%d %X \ No newline at end of file