aboutsummaryrefslogtreecommitdiff
path: root/sbosrcarch.conf
diff options
context:
space:
mode:
Diffstat (limited to 'sbosrcarch.conf')
-rw-r--r--sbosrcarch.conf275
1 files changed, 275 insertions, 0 deletions
diff --git a/sbosrcarch.conf b/sbosrcarch.conf
new file mode 100644
index 0000000..d8454c2
--- /dev/null
+++ b/sbosrcarch.conf
@@ -0,0 +1,275 @@
+#!/usr/bin/perl
+
+## Config file for sbosrcarch. The #! line above is just for syntax
+# highlighting while editing this file, it's not a standalone perl
+# script.
+
+# This file is usually called either sbosrcarch.conf or .sbosrcarch.conf,
+# and located in current directory, $HOME, /etc/sbosrcarch, or /etc. You
+# can also use 'sbosrcarch -c config-file'.
+
+# This file is parsed by perl, so it needs to be valid perl code. If in
+# doubt, try 'perl -c sbosrcarch.conf' to check the syntax.
+
+# Options documented as 'required' have no default values. sbosrcarch
+# will abort, if any of them are missing from the config file. Other
+# options will default to the documented default values.
+
+# Rest of file is config values and (hopefully) explanatory comments.
+
+## $sbogiturl (string, required)
+# slackbuilds.org's master git URL (used with 'git clone').
+# Unlikely that this will ever need to be changed.
+$sbogiturl = "git://slackbuilds.org/slackbuilds.git";
+
+## $sbogitdir (string, filesystem path, required)
+
+# Location of local copy of SBo git clone. 'sbosrcarch create' will create
+# this via 'git clone' if it doesn't already exist. Should stay on master
+# branch. This script will take care of pulling from SBo git, so this
+# dir shouldn't be your working repo that you use for any other purpose.
+# This can be located anywhere. It's slightly more efficient to locate
+# it on the same filesystem as $archivedir, but not critically so.
+
+$sbogitdir = "/home/urchlay/sbo-master/";
+#$sbogitdir = "/tmp/sbo-master/";
+
+# Branch to use, normally master (only change for testing purposes).
+#$sbogitbranch = "master"; $ TODO: implement
+
+## $archivedir (string, filesystem path, required)
+# Location of archive (which you will serve by e.g. apache).
+# This must be located on the same filesystem as $sbogitdir unless
+# $symlinks is set to 1.
+
+$archivedir = "/home/urchlay/sboarchive";
+
+## $maxfilemegs (positive real number, optional, default 10)
+# Max file size, in megabytes (real ones, 2**10). Doesn't have to be an
+# integer. Set to 0 for "no limit". Files larger than this (according to
+# HTTP HEAD or FTP SIZE) won't be downloaded. If you increase this, re-run
+# 'sbosrcarch create' after editing this config. If you decrease it,
+# run 'sbosrcarch trim' to get rid of files that are now over the limit.
+
+#$maxfilemegs = 0.1;
+$maxfilemegs = 1;
+
+## $symlinks (boolean, 0 or 1, optional, default 0)
+# 0 = use hard links for by-md5 tree, 1 = symlinks.
+
+# Which should you use? Well, if other people are going to rsync your
+# repo, hardlinks are more expensive (see the -a and -H options in the
+# rsync man page). If disk space is at a premium, symlinks eat a tiny
+# bit more space (but I mean *tiny*)... and you'll have to make sure
+# your web server follows symlinks if you use them.
+
+# If you change this for an existing archive, run 'sbosrcarch purge --rebuild'
+# to re-create the by-md5 tree with the new link type, otherwise you'll
+# end up with a mix of hard and soft links (no harm done, but it's ugly).
+
+$symlinks = 0;
+
+## %user_agent_overrides (hash, optional, keys = regexes, values = strings)
+# Most download sites work better if the HTTP user agent header is
+# set to a normal browser (see $wgetrc_contents above). But some sites
+# "helpfully" redirect to an HTML page if using a browser, so list them
+# here.
+
+%user_agent_overrides = (
+ qr/(?:sourceforge|sf)\.net/ => 'wget',
+ qr/www\.dropbox\.com/ => 'Wget/1.14 (linux-gnu)',
+);
+
+## @retry_head_urls (array, optional, elements = regexes)
+# A few "cloud" type services (notably github) fail to deliver a
+# Content-Length in the initial attempt to get the file size. The
+# next time the request is tried, the Content-Length is usually there.
+# So we retry these requests, for sites known to do this.
+@retry_head_urls = (
+ qr/github\.com/
+);
+
+## $use_curl (boolean, 0 or 1, optional, default 1)
+# 1 = use curl for HTTP and HTTPS downloads. 0 = use wget.
+# curl seems a bit more reliable than wget, but the wget code in
+# sboarchive is better-tested. This option doesn't affect FTP downloads;
+# they're always done with perl's Net::FTP module.
+# At some point in the future, the wget code is likely to go away (when
+# the script author gets familiar enough with curl).
+
+# One major difference here: when using curl, sbosrcarch never does an
+# actual HEAD request (instead, it uses "curl --head -X GET" to send a
+# GET request, but exit curl immediately after the headers are retrieved).
+# The wget code first sends a HEAD, then (if it fails) a GET... but there's
+# no way to tell wget to stop after the headers, so it downloads a chunk
+# of the file even if we decide it's too large.
+
+# If the above is TL;DR for you, just stick with the default.
+
+$use_curl = 1;
+
+##### curl options (only used if $use_curl is true)
+
+## $curl (string, optional, default "curl")
+# Path to curl binary. Absolute paths will be used as-is, otherwise $PATH
+# will be searched.
+
+$curl = "curl";
+
+# $curlopts (string, required if $use_curl is true, no default)
+# Options to pass to curl. Recommended set is:
+# -K/dev/null - makes curl ignore any ~/.curlrc
+# --insecure - allows downloading when SSL cert can't be validated
+# -L - follow HTTP redirects
+# -sS - silent operation, except actual error messages
+# --connect-timeout 60 - means what it says
+# Depending on whether curl is being used to determine file size or
+# actually download a file, other options will be added to these (but
+# nothing you should have to mess with).
+
+$curlopts = "-K/dev/null --insecure -L -sS --connect-timeout 60";
+
+##### wget options (only used if $use_curl is false)
+
+## $wget (string, optional, default "wget")
+# Path to wget binary. Absolute paths will be used as-is, otherwise $PATH
+# will be searched.
+$wget = "wget";
+
+## $wgetargs (string, optional, default "")
+# Extra arguments to pass to wget. We're already creating a config file
+# and using it in place of .wgetrc and /etc/wgetrc, you don't need to
+# list --config here.
+
+$wgetargs = "";
+
+# If your wget is older than version 1.14 or so, sbosrcarch will complain
+# that it doesn't support the --config option. In that case, the
+# $wgetrc_contents below won't be used. You can either copy $wgetrc_contents
+# to ~/.wgetrc, or use $wgetargs to set the config options on the command
+# line. Something like this:
+
+# $wgetargs =
+# "--timeout=30 ".
+# "--user-agent='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' ".
+# "--no-check-certificate ".
+# "--no-content-disposition";
+
+# Unfortunately there's not a --no-robots option. Upgrading wget is a
+# better solution, and you can compile it with e.g. --prefix=/home/you/wget.new,
+# and set $wget = "/home/you/wget.new/bin/wget" above.
+
+## $wgetrc_contents (string, optional, see "man wget" and/or the comments in
+# /etc/wgetrc for more information).
+
+# We don't trust the system-wide or user wgetrc, so we provide our own.
+
+# The check_certificate = off might be controversial. My take on it is
+# that it's better to download the file even if the server has a crappy
+# self-signed certificate, or one from a brand-new CA that wget doesn't
+# know about yet. These are just publically-available static files,
+# they'd just as well be served with plain HTTP. Feel free to change it
+# if you disagree.
+
+# For user_agent, I picked an ancient version of Firefox. Probably no
+# need to change it, but see user_agent_overrides below.
+
+# content_disposition needs to stay off. Don't change it. If you do, don't
+# complain when things break.
+
+# Might want to add this here:
+#timeout = 30
+
+$wgetrc_contents = <<EOF;
+timeout = 30
+robots = off
+user_agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
+check_certificate = off
+content_disposition = off
+EOF
+
+## whitelist (optional, array of strings, default is empty)
+
+# The whitelist is a list of categories or category/prgnam that you
+# want to always mirror, regardless of file size limits. If you're a
+# SBo maintainer, you might want to list your own builds (and their
+# dependencies) here.
+
+# Example: if you maintain the system/foo and system/bar builds at SBo:
+# @whitelist = qw(
+# system/foo
+# system/bar
+# );
+
+@whitelist = qw(
+);
+
+## blacklist (optional, array of strings, default is empty)
+
+# The blacklist is a list of categories or category/prgnam that you want
+# to NEVER mirror.
+
+# Example: if you think games are frivolous, you can do this:
+# @blacklist = qw(
+# games
+# );
+
+# This config file ships with development/jdk in @blacklist because
+# it's impossible to download the jdk source anyway (you need cookies
+# and javascript, and have to agree to the license terms interactively).
+# Removing it will just result in sbosrcarch downloading an HTML page
+# and deleting it because the md5sum doesn't match the actual source.
+# The others listed here are similar (registration required, etc),
+# or else the download links are unversioned tarballs that change
+# regularly.
+
+@blacklist = qw(
+ academic/finchtv
+ development/J-Link
+ development/amd-app-sdk
+ development/jdk
+ development/smartsvn
+ graphics/paraview
+ graphics/vuescan
+ multimedia/google-talkplugin
+ office/treesheets
+);
+
+# For the whitelist and blacklist, place one category/prgnam or category
+# per line, between the 'qw(' and ');'. Don't use trailing slashes for
+# categories (see examples).
+
+# The whitelist and blacklist are only applied to 'create' and
+# 'update' modes. The other modes (add, rm, purge, trim) don't use
+# them... though check mode will report if blacklisted files are found
+# (but won't rm them).
+
+# In create and update, for each build, the whitelist and blacklist are
+# both checked. If a category is listed in one list, but a build inside
+# the category is listed in the other, the build is more specific than
+# the category so it "wins". Listing the same build or category in both
+# lists is the same as not listing it in either (except that a warning
+# will be printed).
+
+# full category list, for easy copy/pasting into black/whitelist
+#academic
+#accessibility
+#audio
+#business
+#desktop
+#development
+#games
+#gis
+#graphics
+#ham
+#haskell
+#libraries
+#misc
+#multimedia
+#network
+#office
+#perl
+#python
+#ruby
+#system
+