/[adm]/puppet/deployment/mga_buildsystem/manifests/config.pp
ViewVC logotype

Contents of /puppet/deployment/mga_buildsystem/manifests/config.pp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3445 - (show annotations) (download)
Fri Apr 18 20:03:10 2014 UTC (5 years, 2 months ago) by pterjan
File size: 19355 byte(s)
Enable autorebuild (configured for very few packages)
1 class mga_buildsystem::config {
2 class { 'buildsystem::var::signbot':
3 keyid => '80420F66',
4 keyemail => "packages@${::domain}",
5 keyname => 'Mageia Packages',
6 }
7
8 class { 'buildsystem::var::groups':
9 packagers => 'mga-packagers',
10 packagers_committers => 'mga-packagers-committers',
11 }
12
13 class { 'buildsystem::var::webstatus' :
14 package_commit_url => 'http://svnweb.mageia.org/packages?view=revision&revision=%d',
15 theme_name => 'mageia',
16 }
17
18 class { 'buildsystem::var::scheduler' :
19 admin_mail => 'sysadmin@group.mageia.org',
20 build_nodes => {
21 'i586' => [ 'jonund0', 'ecosse0', 'jonund1', 'ecosse1', ],
22 'x86_64' => [ 'ecosse0', 'jonund0', 'ecosse1', 'jonund1', ],
23 },
24 build_nodes_aliases => {
25 'jonund0' => "jonund.${::domain}",
26 'jonund1' => "jonund.${::domain}",
27 'ecosse0' => "ecosse.${::domain}",
28 'ecosse1' => "ecosse.${::domain}",
29 'rabbit0' => "rabbit.${::domain}",
30 'rabbit1' => "rabbit.${::domain}",
31 'sucuk0' => "sucuk.${::domain}",
32 'sucuk1' => "sucuk.${::domain}",
33 },
34 build_src_node => "valstar",
35 }
36 include buildsystem::var::repository
37 class { 'buildsystem::var::binrepo':
38 uploadmail_from => "root@${::domain}",
39 uploadmail_to => "packages-commits@ml.${::domain}",
40 }
41
42 $svn_hostname = "svn.$::domain"
43 $svn_root_packages = "svn://${svn_hostname}/svn/packages"
44 $svn_root_packages_ssh = "svn+ssh://${svn_hostname}/svn/packages"
45 class { 'buildsystem::var::mgarepo':
46 submit_host => "pkgsubmit.${::domain}",
47 svn_hostname => $svn_hostname,
48 svn_root_packages => $svn_root_packages,
49 svn_root_packages_ssh => $svn_root_packages_ssh,
50 oldurl => "${svn_root_packages_ssh}/misc",
51 conf => {
52 'global' => {
53 'ldap-server' => "ldap.${::domain}",
54 'ldap-base' => "ou=People,${::dc_suffix}",
55 'ldap-filterformat' => '(&(objectClass=inetOrgPerson)(uid=$username))',
56 'ldap-resultformat' => '$cn <$mail>',
57 }
58 }
59 }
60
61 $std_arch = ['i586', 'x86_64']
62 $std_repos = {
63 'release' => {
64 'media_type' => [ 'release' ],
65 'requires' => [],
66 'order' => 0,
67 },
68 'updates' => {
69 'media_type' => [ 'updates' ],
70 'updates_for' => 'release',
71 'requires' => [ 'release' ],
72 'order' => 1,
73 },
74 'updates_testing' => {
75 'media_type' => [ 'testing' ],
76 'noauto' => '1',
77 'requires' => [ 'updates' ],
78 'order' => 2,
79 },
80 'backports' => {
81 'media_type' => [ 'backports' ],
82 'noauto' => '1',
83 'requires' => [ 'updates' ],
84 'order' => 3,
85 },
86 'backports_testing' => {
87 'media_type' => [ 'testing' ],
88 'noauto' => '1',
89 'requires' => [ 'backports' ],
90 'order' => 4,
91 },
92 }
93 $std_medias = {
94 'core' => {
95 'repos' => $std_repos,
96 'media_type' => [ 'official', 'free' ],
97 'order' => 0,
98 },
99 'nonfree' => {
100 'repos' => $std_repos,
101 'media_type' => [ 'official' ],
102 'noauto' => '1',
103 'requires' => [ 'core' ],
104 'order' => 1,
105 },
106 'tainted' => {
107 'repos' => $std_repos,
108 'media_type' => [ 'official' ],
109 'noauto' => '1',
110 'requires' => [ 'core' ],
111 'order' => 2,
112 },
113 }
114 $std_base_media = [ 'core/release', 'core/updates' ]
115 $infra_medias = {
116 'infra' => {
117 'repos' => {
118 'updates' => {
119 'media_type' => [ 'updates' ],
120 'requires' => [ 'release' ],
121 'order' => 0,
122 },
123 },
124 'media_type' => [ 'infra' ],
125 'requires' => [ 'core' ],
126 'order' => 0,
127 },
128 }
129 $std_macros = {
130 'distsuffix' => '.mga',
131 'distribution' => 'Mageia',
132 'vendor' => 'Mageia.Org',
133 '_real_vendor' => 'mageia',
134 }
135 $repo_allow_from = [
136 $::nodes_ipaddr[valstar][ipv6],
137 $::nodes_ipaddr[valstar][ipv4],
138 $::nodes_ipaddr[ecosse][ipv6],
139 $::nodes_ipaddr[ecosse][ipv4],
140 $::nodes_ipaddr[jonund][ipv6],
141 $::nodes_ipaddr[jonund][ipv4],
142 ".${::domain}",
143 '10.42.0',
144 $::nodes_ipaddr[rabbit][ipv4],
145 $::nodes_ipaddr[rabbit][ipv6],
146 ]
147
148 # the list of checks, actions, posts for cauldron in youri-upload
149 $cauldron_youri_upload_targets = {
150 'checks' => [
151 'version',
152 'tag',
153 'acl',
154 'rpmlint',
155 'recency',
156 ],
157 'actions' => [
158 'markrelease',
159 'sign',
160 'install',
161 'link',
162 'unpack_release_notes',
163 'unpack_gfxboot_theme',
164 'unpack_meta_task',
165 'unpack_installer_images',
166 'unpack_installer_images_nonfree',
167 'unpack_installer_stage2',
168 'unpack_installer_advertising',
169 'unpack_installer_rescue',
170 'unpack_syslinux',
171 'archive',
172 'mail',
173 'maintdb',
174 'rebuild',
175 ],
176 'posts' => [
177 'genhdlist2',
178 'clean_rpmsrate',
179 'mirror',
180 ],
181 }
182
183 # the list of checks, actions, posts for stable distros in youri-upload
184 $std_youri_upload_targets = {
185 'checks' => [
186 'version',
187 'tag',
188 'acl',
189 'rpmlint',
190 'recency',
191 ],
192 'actions' => [
193 'sign',
194 'install',
195 'link',
196 'archive',
197 'mail',
198 ],
199 'posts' => [
200 'genhdlist2',
201 'clean_rpmsrate',
202 'mirror',
203 ],
204 }
205
206 # the list of checks, actions, posts for infra distros in youri-upload
207 $infra_youri_upload_targets = {
208 'checks' => [
209 'version',
210 'tag',
211 'acl',
212 'rpmlint',
213 'recency',
214 ],
215 'actions' => [
216 'sign',
217 'install',
218 'link',
219 'archive',
220 ],
221 'posts' => [
222 'genhdlist2',
223 ],
224 }
225
226 # the list of checks, actions, posts for cauldron in youri-todo
227 $cauldron_youri_todo_targets = {
228 'checks' => [
229 'source',
230 'deps',
231 'version',
232 'tag',
233 'acl',
234 'host',
235 'rpmlint',
236 'recency',
237 'queue_recency',
238 ],
239 'actions' => [
240 'send',
241 'dependencies',
242 'rpminfo',
243 'ulri',
244 ],
245 }
246
247 # the list of checks, actions, posts for stable distros in youri-todo
248 $std_youri_todo_targets = {
249 'checks' => [
250 'source',
251 'version',
252 'tag',
253 'acl',
254 'host',
255 'rpmlint',
256 'recency',
257 'queue_recency',
258 ],
259 'actions' => [
260 'send',
261 'dependencies',
262 'rpminfo',
263 'ulri',
264 ],
265 }
266
267 # the list of checks, actions, posts for infra distros in youri-todo
268 $infra_youri_todo_targets = {
269 'checks' => [
270 'source',
271 'version',
272 'tag',
273 'acl',
274 'rpmlint',
275 'recency',
276 'queue_recency',
277 ],
278 'actions' => [
279 'send',
280 'dependencies',
281 'rpminfo',
282 'ulri',
283 ],
284 }
285
286 # rpmlint check options for mageia <= 2
287 $mga2_rpmlint = {
288 'config' => '/usr/share/rpmlint/config.mga2',
289 'path' => '/usr/bin/mga2-rpmlint',
290 'results' => [
291 'buildprereq-use',
292 'no-description-tag',
293 'no-summary-tag',
294 'non-standard-group',
295 'non-xdg-migrated-menu',
296 'percent-in-conflicts',
297 'percent-in-dependency',
298 'percent-in-obsoletes',
299 'percent-in-provides',
300 'summary-ended-with-dot',
301 'unexpanded-macro',
302 'unknown-lsb-keyword',
303 'malformed-line-in-lsb-comment-block',
304 'empty-%postun',
305 'empty-%post',
306 'invalid-desktopfile',
307 'standard-dir-owned-by-package',
308 'use-tmp-in-%postun',
309 'bogus-variable-use-in-%posttrans',
310 'dir-or-file-in-usr-local',
311 'dir-or-file-in-tmp',
312 'dir-or-file-in-mnt',
313 'dir-or-file-in-opt',
314 'dir-or-file-in-home',
315 'dir-or-file-in-var-local',
316 ],
317 }
318
319 # rpmlint check options for Mageia 3
320 $mga3_rpmlint = {
321 'config' => '/usr/share/rpmlint/config',
322 'path' => '/usr/bin/rpmlint',
323 'results' => [
324 'buildprereq-use',
325 'no-description-tag',
326 'no-summary-tag',
327 'non-standard-group',
328 'non-xdg-migrated-menu',
329 'percent-in-conflicts',
330 'percent-in-dependency',
331 'percent-in-obsoletes',
332 'percent-in-provides',
333 'summary-ended-with-dot',
334 'unexpanded-macro',
335 'unknown-lsb-keyword',
336 'malformed-line-in-lsb-comment-block',
337 'empty-%postun',
338 'empty-%post',
339 'invalid-desktopfile',
340 'standard-dir-owned-by-package',
341 'use-tmp-in-%postun',
342 'bogus-variable-use-in-%posttrans',
343 'dir-or-file-in-usr-local',
344 'dir-or-file-in-tmp',
345 'dir-or-file-in-mnt',
346 'dir-or-file-in-opt',
347 'dir-or-file-in-home',
348 'dir-or-file-in-var-local',
349 'tmpfiles-conf-in-etc',
350 'non-ghost-in-run',
351 'non-ghost-in-var-run',
352 'non-ghost-in-var-lock',
353 'systemd-unit-in-etc',
354 'udev-rule-in-etc',
355 ],
356 }
357
358 # rpmlint check options for Mageia 4
359 $mga4_rpmlint = {
360 'config' => '/usr/share/rpmlint/config',
361 'path' => '/usr/bin/rpmlint',
362 'results' => [
363 'buildprereq-use',
364 'no-description-tag',
365 'no-summary-tag',
366 'non-standard-group',
367 'non-xdg-migrated-menu',
368 'percent-in-conflicts',
369 'percent-in-dependency',
370 'percent-in-obsoletes',
371 'percent-in-provides',
372 'summary-ended-with-dot',
373 'unexpanded-macro',
374 'unknown-lsb-keyword',
375 'malformed-line-in-lsb-comment-block',
376 'empty-%postun',
377 'empty-%post',
378 'invalid-desktopfile',
379 'standard-dir-owned-by-package',
380 'use-tmp-in-%postun',
381 'bogus-variable-use-in-%posttrans',
382 'dir-or-file-in-usr-local',
383 'dir-or-file-in-tmp',
384 'dir-or-file-in-mnt',
385 'dir-or-file-in-opt',
386 'dir-or-file-in-home',
387 'dir-or-file-in-var-local',
388 'tmpfiles-conf-in-etc',
389 'non-ghost-in-run',
390 'non-ghost-in-var-run',
391 'non-ghost-in-var-lock',
392 'systemd-unit-in-etc',
393 'udev-rule-in-etc',
394 ],
395 }
396
397 # rpmlint check options for cauldron
398 $cauldron_rpmlint = {
399 'config' => '/usr/share/rpmlint/config',
400 'path' => '/usr/bin/rpmlint',
401 'results' => [
402 'buildprereq-use',
403 'no-description-tag',
404 'no-summary-tag',
405 'non-standard-group',
406 'non-xdg-migrated-menu',
407 'percent-in-conflicts',
408 'percent-in-dependency',
409 'percent-in-obsoletes',
410 'percent-in-provides',
411 'summary-ended-with-dot',
412 'unexpanded-macro',
413 'unknown-lsb-keyword',
414 'malformed-line-in-lsb-comment-block',
415 'empty-%postun',
416 'empty-%post',
417 'invalid-desktopfile',
418 'standard-dir-owned-by-package',
419 'use-tmp-in-%postun',
420 'bogus-variable-use-in-%posttrans',
421 'dir-or-file-in-usr-local',
422 'dir-or-file-in-tmp',
423 'dir-or-file-in-mnt',
424 'dir-or-file-in-opt',
425 'dir-or-file-in-home',
426 'dir-or-file-in-var-local',
427 'tmpfiles-conf-in-etc',
428 'non-ghost-in-run',
429 'non-ghost-in-var-run',
430 'non-ghost-in-var-lock',
431 'systemd-unit-in-etc',
432 'udev-rule-in-etc',
433 ],
434 }
435
436 # list of users allowed to submit packages when cauldron is frozen
437 $cauldron_authorized_users = str_join(group_members('mga-release_managers'), '|')
438 $cauldron_version_check = {
439 'authorized_sections' => '^[a-z]+/updates_testing$',
440 'authorized_packages' => 'drak|^(urpmi|perl-URPM|perl-(Gtk3|Glib(-Object-Introspection)?)|mgaonline|net_monitor)$',
441 'authorized_arches' => 'none',
442 'authorized_users' => "^${cauldron_authorized_users}\$",
443 #'mode' => 'normal',
444 #'mode' => 'version_freeze',
445 'mode' => 'normal',
446 }
447
448 # for EOL distributions
449 $frozen_version_check = {
450 'authorized_packages' => 'none_package_authorized',
451 'authorized_sections' => 'none_section_authorized',
452 'authorized_arches' => 'none',
453 'mode' => 'freeze',
454 }
455
456 # for supported stable distributions
457 $std_version_check = {
458 'authorized_packages' => 'none_package_authorized',
459 'authorized_sections' => '^(core|nonfree|tainted)/(updates_testing|backports_testing)$',
460 'authorized_arches' => 'none',
461 'mode' => 'freeze',
462 }
463
464 $infra_authorized_users = str_join(group_members('mga-sysadmin'), '|')
465 $infra_version_check = {
466 'authorized_users' => "^${infra_authorized_users}\$",
467 'mode' => 'freeze',
468 }
469
470 class { 'buildsystem::var::distros':
471 default_distro => 'cauldron',
472 distros => {
473 'cauldron' => {
474 'arch' => $std_arch,
475 'no_media_cfg_update' => true,
476 'medias' => $std_medias,
477 'base_media' => $std_base_media,
478 'branch' => 'Devel',
479 'version' => '5',
480 'submit_allowed' => "${svn_root_packages}/cauldron",
481 'macros' => $std_macros,
482 'repo_allow_from' => $repo_allow_from,
483 'youri' => {
484 'upload' => {
485 'targets' => $cauldron_youri_upload_targets,
486 'checks' => {
487 'rpmlint' => $cauldron_rpmlint,
488 },
489 },
490 'todo' => {
491 'targets' => $cauldron_youri_todo_targets,
492 'checks' => {
493 'rpmlint' => $cauldron_rpmlint,
494 'version' => $cauldron_version_check,
495 },
496 },
497 },
498 },
499
500 '1' => {
501 'arch' => $std_arch,
502 'no_media_cfg_update' => true,
503 'medias' => $std_medias,
504 'base_media' => $std_base_media,
505 'branch' => 'Official',
506 'version' => '1',
507 'submit_allowed' => "${svn_root_packages}/updates/1",
508 'macros' => $std_macros,
509 'repo_allow_from' => $repo_allow_from,
510 'youri' => {
511 'upload' => {
512 'targets' => $std_youri_upload_targets,
513 'checks' => {
514 'rpmlint' => $mga2_rpmlint,
515 },
516 },
517 'todo' => {
518 'targets' => $std_youri_todo_targets,
519 'checks' => {
520 'rpmlint' => $mga2_rpmlint,
521 'version' => $frozen_version_check,
522 },
523 },
524 },
525 },
526
527 '2' => {
528 'arch' => $std_arch,
529 'no_media_cfg_update' => true,
530 'medias' => $std_medias,
531 'base_media' => $std_base_media,
532 'branch' => 'Official',
533 'version' => '2',
534 'submit_allowed' => "${svn_root_packages}/updates/2",
535 'macros' => $std_macros,
536 'repo_allow_from' => $repo_allow_from,
537 'youri' => {
538 'upload' => {
539 'targets' => $std_youri_upload_targets,
540 'checks' => {
541 'rpmlint' => $mga2_rpmlint,
542 },
543 },
544 'todo' => {
545 'targets' => $std_youri_todo_targets,
546 'checks' => {
547 'rpmlint' => $mga2_rpmlint,
548 'version' => $frozen_version_check,
549 },
550 },
551 },
552 },
553
554 '3' => {
555 'arch' => $std_arch,
556 'no_media_cfg_update' => true,
557 'medias' => $std_medias,
558 'base_media' => $std_base_media,
559 'branch' => 'Official',
560 'version' => '3',
561 'submit_allowed' => "${svn_root_packages}/updates/3",
562 'backports_allowed' => "${svn_root_packages}/backports/3",
563 'macros' => $std_macros,
564 'repo_allow_from' => $repo_allow_from,
565 'youri' => {
566 'upload' => {
567 'targets' => $std_youri_upload_targets,
568 'checks' => {
569 'rpmlint' => $mga3_rpmlint,
570 },
571 },
572 'todo' => {
573 'targets' => $std_youri_todo_targets,
574 'checks' => {
575 'rpmlint' => $mga3_rpmlint,
576 'version' => $std_version_check,
577 },
578 },
579 },
580 },
581
582 '4' => {
583 'arch' => $std_arch,
584 'no_media_cfg_update' => true,
585 'medias' => $std_medias,
586 'base_media' => $std_base_media,
587 'branch' => 'Official',
588 'version' => '4',
589 'submit_allowed' => "${svn_root_packages}/updates/4",
590 'backports_allowed' => "${svn_root_packages}/backports/4",
591 'macros' => $std_macros,
592 'repo_allow_from' => $repo_allow_from,
593 'youri' => {
594 'upload' => {
595 'targets' => $std_youri_upload_targets,
596 'checks' => {
597 'rpmlint' => $mga4_rpmlint,
598 },
599 },
600 'todo' => {
601 'targets' => $std_youri_todo_targets,
602 'checks' => {
603 'rpmlint' => $mga4_rpmlint,
604 'version' => $std_version_check,
605 },
606 },
607 },
608 },
609
610
611 'infra_1' => {
612 'arch' => $std_arch,
613 'medias' => $infra_medias,
614 'base_media' => [ '1/core/release', '1/core/updates', 'infra/updates' ],
615 'branch' => 'Official',
616 'version' => '1',
617 'submit_allowed' => $svn_root_packages,
618 'macros' => $std_macros,
619 'based_on' => {
620 '1' => {
621 'core' => [ 'release', 'updates' ],
622 },
623 },
624 'youri' => {
625 'upload' => {
626 'targets' => $infra_youri_upload_targets,
627 'checks' => {
628 'rpmlint' => $mga2_rpmlint,
629 },
630 },
631 'todo' => {
632 'targets' => $infra_youri_todo_targets,
633 'checks' => {
634 'rpmlint' => $mga2_rpmlint,
635 'version' => $infra_version_check,
636 },
637 },
638 },
639 'no_mirror' => true,
640 },
641
642 'infra_2' => {
643 'arch' => $std_arch,
644 'medias' => $infra_medias,
645 'base_media' => [ '2/core/release', '2/core/updates', 'infra/updates' ],
646 'branch' => 'Official',
647 'version' => '2',
648 'submit_allowed' => $svn_root_packages,
649 'macros' => $std_macros,
650 'based_on' => {
651 '2' => {
652 'core' => [ 'release', 'updates' ],
653 },
654 },
655 'youri' => {
656 'upload' => {
657 'targets' => $infra_youri_upload_targets,
658 'checks' => {
659 'rpmlint' => $mga2_rpmlint,
660 },
661 },
662 'todo' => {
663 'targets' => $infra_youri_todo_targets,
664 'checks' => {
665 'rpmlint' => $mga2_rpmlint,
666 'version' => $infra_version_check,
667 },
668 },
669 },
670 'no_mirror' => true,
671 },
672 }
673 }
674 $checks_tag_options = {
675 'tags' => {
676 'release' => inline_template("<%= std_macros['distsuffix'] %>\\d+"),
677 'distribution' => inline_template("^<%= std_macros['distribution'] %>"),
678 'vendor' => inline_template("^<%= std_macros['vendor'] %>$"),
679 },
680 }
681 class { 'buildsystem::var::youri':
682 packages_archivedir => "${buildsystem::var::scheduler::homedir}/old",
683 youri_conf => {
684 'upload' => {
685 'checks' => {
686 'tag' => {
687 'options' => $checks_tag_options,
688 },
689 'rpmlint' => {
690 'options' => {
691 'results' => [
692 'buildprereq-use',
693 'no-description-tag',
694 'no-summary-tag',
695 'non-standard-group',
696 'non-xdg-migrated-menu',
697 'percent-in-conflicts',
698 'percent-in-dependency',
699 'percent-in-obsoletes',
700 'percent-in-provides',
701 'summary-ended-with-dot',
702 'unexpanded-macro',
703 'unknown-lsb-keyword',
704 'malformed-line-in-lsb-comment-block',
705 'empty-%postun',
706 'empty-%post',
707 'invalid-desktopfile',
708 'standard-dir-owned-by-package',
709 'use-tmp-in-%postun',
710 'bogus-variable-use-in-%posttrans',
711 'dir-or-file-in-usr-local',
712 'dir-or-file-in-tmp',
713 'dir-or-file-in-mnt',
714 'dir-or-file-in-opt',
715 'dir-or-file-in-home',
716 'dir-or-file-in-var-local',
717 ],
718 },
719 },
720 },
721 'actions' => {
722 'mail' => {
723 'options' => {
724 'to' => "changelog@ml.${::domain}",
725 'reply_to' => "mageia-dev@${::domain}",
726 'from' => "buildsystem-daemon@${::domain}",
727 'prefix' => 'RPM',
728 },
729 },
730 },
731 },
732 'todo' => {
733 'checks' => {
734 'tag' => {
735 'options' => $checks_tag_options,
736 },
737 },
738 },
739 }
740 }
741 }

  ViewVC Help
Powered by ViewVC 1.1.26