Prepare to support multiple-action notification
[opensuse:build-service.git] / src / backend / BSConfig.pm.template
1 #
2 # Copyright (c) 2006, 2007 Michael Schroeder, Novell Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 2 as
6 # published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program (see the file COPYING); if not, write to the
15 # Free Software Foundation, Inc.,
16 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 #
18 ################################################################
19 #
20 # Build Service Configuration
21 #
22
23 package BSConfig;
24
25 use Net::Domain;
26
27 my $hostname = Net::Domain::hostfqdn() || 'localhost';
28
29 our $obsname = $hostname; # unique identifier for this Build Service instance
30 # Change also the SLP reg files in /etc/slp.reg.d/ when you touch hostname or port
31 our $srcserver = "http://$hostname:5352";
32 our $reposerver = "http://$hostname:5252";
33 our $serviceserver = "http://$hostname:5152";
34 our $servicedir = "/usr/lib/obs/service/";
35 #our $serviceroot = "/opt/obs/MyServiceSystem";
36
37 #our $gpg_standard_key = "/etc/obs-default-gpg.asc";
38 # public download service:
39 our $repodownload = "http://$hostname/repositories";
40 # optional notification service:
41 #our $hermesserver = "http://$hostname/hermes";
42 #our $hermesnamespace = "OBS";
43 #
44 # Notification Plugin
45 #our $notification_plugin = "notify_hermes";
46 # Does the notify plugin supports multiple actions?
47 # Hermes doesn't, BOSS does.
48 #our $multiaction_notify_support = 0
49
50 # For the workers only, it is possible to define multiple repository servers here.
51 # But only one source server is possible yet.
52 our @reposervers = ("http://$hostname:5252");
53
54 # proxy support:
55 #our $proxy = "http(s)://<user:pass>\@<host>:<port>";
56
57 # Package defaults
58 our $bsdir = '/srv/obs';
59 our $bsuser = 'obsrun';
60 our $bsgroup = 'obsrun';
61 #our $bsquotafile = '/srv/obs/quota.xml';
62
63 # To enable package downloading from backend on demand
64 our $enable_download_on_demand = 1;
65
66 # Package rc script / backend communication + log files
67 our $rundir = "$bsdir/run";
68 our $logdir = "$bsdir/log";
69
70 # optional for non-acl systems, should be set for access control
71 # 0: trees are shared between projects (built-in default)
72 # 1: trees are not shared (only usable for new installations)
73 # 2: new trees are not shared, in case of a missing tree the shared
74 #    location is also tried (package default)
75 our $nosharedtrees = 2;
76
77 # optional: limit visibility of projects for some architectures
78 #our $limit_projects = {
79 # "ppc" => [ "openSUSE:Factory", "FATE" ],
80 # "ppc64" => [ "openSUSE:Factory", "FATE" ],
81 #};
82
83 # optional: allow seperation of releasnumber syncing per architecture
84 # one counter pool for all ppc architectures, one for i586/x86_64,
85 # arm archs are seperated and one for the rest in this example
86 our $relsync_pool = {
87  "local" => "local",
88  "i586" => "i586",
89  "x86_64" => "i586",
90  "ppc" => "ppc",
91  "ppc64" => "ppc",
92  "mips" => "mips",
93  "mips64" => "mips",
94  "mipsel" => "mipsel",
95  "mips64el" => "mipsel",
96  "armv4l"  => "armv4l",
97  "armv5el" => "armv5el",
98  "armv6el" => "armv6el",
99  "armv7el" => "armv7el",
100  "armv8el" => "armv8el",
101  "sparcv9" => "sparcv9",
102  "sparc64" => "sparcv9",
103 };
104
105 # This is for prefer a project in scheduler, if it has high or medium
106 # prio events, but was not processed after $timeout minutes.
107 #our %max_project_timeout = (
108 # "openSUSE:Factory/standard" => { timeout => "30", last => "0" },
109 #);
110
111 # Build priority, dispatcher prefers or deprefers jobs according to this:
112 #our $dispatch_prio = [
113 # '!^home:resourcewaster',   # de-prefer jobs (take it only, when no other jobs)
114 # '^openSUSE:Factory',       # prefer (if there is a job for this project, take it)
115 #];
116
117 #No extra stage server sync
118 #our $stageserver = 'rsync://127.0.0.1/put-repos-main';
119 #our $stageserver_sync = 'rsync://127.0.0.1/trigger-repos-sync';
120
121 #No public download server
122 #our $repodownload = 'http://software.opensuse.org/download/repositories';
123
124 #No package signing server
125 #our $sign = '/usr/bin/sign';
126 #Extend sign call with project name as argument "--project $NAME"
127 #our $sign_project = 1;
128 #Global sign key 
129 #our $keyfile = '/srv/obs/openSUSE-Build-Service.asc';
130 #Create a key by default for new projects, if top level have not one
131 #our $forceprojectkeys = 1;
132
133
134 # Special rules to assign some packages to special hosts
135 # These are
136 #our $powerhosts = [
137 #  'build30', 'build31', 'build32', 'build33', 'build34', 'build35', 'build36', 'build37',
138 #];
139 #
140 #our $powerpkgs = [
141 #  'autoconf',
142 #];
143
144
145 # Use a special local arch for product building
146 # our $localarch = "x86_64";
147
148 # config options for the bs_worker
149 #
150 # run a script to check if the worker is good enough for the job
151 #our workerhostcheck = 'my_check_script';
152
153 # Allow to build as root, exceptions per package
154 # the keys are actually anchored regexes
155 # our $norootexceptions = { "my_project/my_package" => 1, "openSUSE:Factory.*/installation-images" => 1 };
156
157 # host specific configs
158 my $hostconfig = "bsconfig." . Net::Domain::hostname();
159 if(-r $hostconfig) {
160   print "reading $hostconfig...\n";
161   require $hostconfig;
162 }
163
164 1;