/[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 3406 - (show annotations) (download)
Tue Feb 4 08:19:14 2014 UTC (10 years, 2 months ago) by neoclust
File size: 19263 byte(s)
Remove freeze to start mga5
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 ],
175 'posts' => [
176 'genhdlist2',
177 'clean_rpmsrate',
178 'mirror',
179 ],
180 }
181
182 # the list of checks, actions, posts for stable distros in youri-upload
183 $std_youri_upload_targets = {
184 'checks' => [
185 'version',
186 'tag',
187 'acl',
188 'rpmlint',
189 'recency',
190 ],
191 'actions' => [
192 'sign',
193 'install',
194 'link',
195 'archive',
196 'mail',
197 ],
198 'posts' => [
199 'genhdlist2',
200 'clean_rpmsrate',
201 'mirror',
202 ],
203 }
204
205 # the list of checks, actions, posts for infra distros in youri-upload
206 $infra_youri_upload_targets = {
207 'checks' => [
208 'version',
209 'tag',
210 'acl',
211 'rpmlint',
212 'recency',
213 ],
214 'actions' => [
215 'sign',
216 'install',
217 'link',
218 'archive',
219 ],
220 'posts' => [
221 'genhdlist2',
222 ],
223 }
224
225 # the list of checks, actions, posts for cauldron in youri-todo
226 $cauldron_youri_todo_targets = {
227 'checks' => [
228 'source',
229 'deps',
230 'version',
231 'tag',
232 'acl',
233 'host',
234 'rpmlint',
235 'recency',
236 'queue_recency',
237 ],
238 'actions' => [
239 'send',
240 'rpminfo',
241 ],
242 }
243
244 # the list of checks, actions, posts for stable distros in youri-todo
245 $std_youri_todo_targets = {
246 'checks' => [
247 'source',
248 'version',
249 'tag',
250 'acl',
251 'host',
252 'rpmlint',
253 'recency',
254 'queue_recency',
255 ],
256 'actions' => [
257 'send',
258 'rpminfo',
259 'ulri',
260 ],
261 }
262
263 # the list of checks, actions, posts for infra distros in youri-todo
264 $infra_youri_todo_targets = {
265 'checks' => [
266 'source',
267 'version',
268 'tag',
269 'acl',
270 'rpmlint',
271 'recency',
272 'queue_recency',
273 ],
274 'actions' => [
275 'send',
276 'rpminfo',
277 'ulri',
278 ],
279 }
280
281 # rpmlint check options for mageia <= 2
282 $mga2_rpmlint = {
283 'config' => '/usr/share/rpmlint/config.mga2',
284 'path' => '/usr/bin/mga2-rpmlint',
285 'results' => [
286 'buildprereq-use',
287 'no-description-tag',
288 'no-summary-tag',
289 'non-standard-group',
290 'non-xdg-migrated-menu',
291 'percent-in-conflicts',
292 'percent-in-dependency',
293 'percent-in-obsoletes',
294 'percent-in-provides',
295 'summary-ended-with-dot',
296 'unexpanded-macro',
297 'unknown-lsb-keyword',
298 'malformed-line-in-lsb-comment-block',
299 'empty-%postun',
300 'empty-%post',
301 'invalid-desktopfile',
302 'standard-dir-owned-by-package',
303 'use-tmp-in-%postun',
304 'bogus-variable-use-in-%posttrans',
305 'dir-or-file-in-usr-local',
306 'dir-or-file-in-tmp',
307 'dir-or-file-in-mnt',
308 'dir-or-file-in-opt',
309 'dir-or-file-in-home',
310 'dir-or-file-in-var-local',
311 ],
312 }
313
314 # rpmlint check options for Mageia 3
315 $mga3_rpmlint = {
316 'config' => '/usr/share/rpmlint/config',
317 'path' => '/usr/bin/rpmlint',
318 'results' => [
319 'buildprereq-use',
320 'no-description-tag',
321 'no-summary-tag',
322 'non-standard-group',
323 'non-xdg-migrated-menu',
324 'percent-in-conflicts',
325 'percent-in-dependency',
326 'percent-in-obsoletes',
327 'percent-in-provides',
328 'summary-ended-with-dot',
329 'unexpanded-macro',
330 'unknown-lsb-keyword',
331 'malformed-line-in-lsb-comment-block',
332 'empty-%postun',
333 'empty-%post',
334 'invalid-desktopfile',
335 'standard-dir-owned-by-package',
336 'use-tmp-in-%postun',
337 'bogus-variable-use-in-%posttrans',
338 'dir-or-file-in-usr-local',
339 'dir-or-file-in-tmp',
340 'dir-or-file-in-mnt',
341 'dir-or-file-in-opt',
342 'dir-or-file-in-home',
343 'dir-or-file-in-var-local',
344 'tmpfiles-conf-in-etc',
345 'non-ghost-in-run',
346 'non-ghost-in-var-run',
347 'non-ghost-in-var-lock',
348 'systemd-unit-in-etc',
349 'udev-rule-in-etc',
350 ],
351 }
352
353 # rpmlint check options for Mageia 4
354 $mga4_rpmlint = {
355 'config' => '/usr/share/rpmlint/config',
356 'path' => '/usr/bin/rpmlint',
357 'results' => [
358 'buildprereq-use',
359 'no-description-tag',
360 'no-summary-tag',
361 'non-standard-group',
362 'non-xdg-migrated-menu',
363 'percent-in-conflicts',
364 'percent-in-dependency',
365 'percent-in-obsoletes',
366 'percent-in-provides',
367 'summary-ended-with-dot',
368 'unexpanded-macro',
369 'unknown-lsb-keyword',
370 'malformed-line-in-lsb-comment-block',
371 'empty-%postun',
372 'empty-%post',
373 'invalid-desktopfile',
374 'standard-dir-owned-by-package',
375 'use-tmp-in-%postun',
376 'bogus-variable-use-in-%posttrans',
377 'dir-or-file-in-usr-local',
378 'dir-or-file-in-tmp',
379 'dir-or-file-in-mnt',
380 'dir-or-file-in-opt',
381 'dir-or-file-in-home',
382 'dir-or-file-in-var-local',
383 'tmpfiles-conf-in-etc',
384 'non-ghost-in-run',
385 'non-ghost-in-var-run',
386 'non-ghost-in-var-lock',
387 'systemd-unit-in-etc',
388 'udev-rule-in-etc',
389 ],
390 }
391
392 # rpmlint check options for cauldron
393 $cauldron_rpmlint = {
394 'config' => '/usr/share/rpmlint/config',
395 'path' => '/usr/bin/rpmlint',
396 'results' => [
397 'buildprereq-use',
398 'no-description-tag',
399 'no-summary-tag',
400 'non-standard-group',
401 'non-xdg-migrated-menu',
402 'percent-in-conflicts',
403 'percent-in-dependency',
404 'percent-in-obsoletes',
405 'percent-in-provides',
406 'summary-ended-with-dot',
407 'unexpanded-macro',
408 'unknown-lsb-keyword',
409 'malformed-line-in-lsb-comment-block',
410 'empty-%postun',
411 'empty-%post',
412 'invalid-desktopfile',
413 'standard-dir-owned-by-package',
414 'use-tmp-in-%postun',
415 'bogus-variable-use-in-%posttrans',
416 'dir-or-file-in-usr-local',
417 'dir-or-file-in-tmp',
418 'dir-or-file-in-mnt',
419 'dir-or-file-in-opt',
420 'dir-or-file-in-home',
421 'dir-or-file-in-var-local',
422 'tmpfiles-conf-in-etc',
423 'non-ghost-in-run',
424 'non-ghost-in-var-run',
425 'non-ghost-in-var-lock',
426 'systemd-unit-in-etc',
427 'udev-rule-in-etc',
428 ],
429 }
430
431 # list of users allowed to submit packages when cauldron is frozen
432 $cauldron_authorized_users = str_join(group_members('mga-release_managers'), '|')
433 $cauldron_version_check = {
434 'authorized_sections' => '^[a-z]+/updates_testing$',
435 'authorized_packages' => 'drak|^(urpmi|perl-URPM|perl-(Gtk3|Glib(-Object-Introspection)?)|mgaonline|net_monitor)$',
436 'authorized_arches' => 'none',
437 'authorized_users' => "^${cauldron_authorized_users}\$",
438 #'mode' => 'normal',
439 #'mode' => 'version_freeze',
440 'mode' => 'normal',
441 }
442
443 # for EOL distributions
444 $frozen_version_check = {
445 'authorized_packages' => 'none_package_authorized',
446 'authorized_sections' => 'none_section_authorized',
447 'authorized_arches' => 'none',
448 'mode' => 'freeze',
449 }
450
451 # for supported stable distributions
452 $std_version_check = {
453 'authorized_packages' => 'none_package_authorized',
454 'authorized_sections' => '^(core|nonfree|tainted)/(updates_testing|backports_testing)$',
455 'authorized_arches' => 'none',
456 'mode' => 'freeze',
457 }
458
459 $infra_authorized_users = str_join(group_members('mga-sysadmin'), '|')
460 $infra_version_check = {
461 'authorized_users' => "^${infra_authorized_users}\$",
462 'mode' => 'freeze',
463 }
464
465 class { 'buildsystem::var::distros':
466 default_distro => 'cauldron',
467 distros => {
468 'cauldron' => {
469 'arch' => $std_arch,
470 'no_media_cfg_update' => true,
471 'medias' => $std_medias,
472 'base_media' => $std_base_media,
473 'branch' => 'Devel',
474 'version' => '5',
475 'submit_allowed' => "${svn_root_packages}/cauldron",
476 'macros' => $std_macros,
477 'repo_allow_from' => $repo_allow_from,
478 'youri' => {
479 'upload' => {
480 'targets' => $cauldron_youri_upload_targets,
481 'checks' => {
482 'rpmlint' => $cauldron_rpmlint,
483 },
484 },
485 'todo' => {
486 'targets' => $cauldron_youri_todo_targets,
487 'checks' => {
488 'rpmlint' => $cauldron_rpmlint,
489 'version' => $cauldron_version_check,
490 },
491 },
492 },
493 },
494
495 '1' => {
496 'arch' => $std_arch,
497 'no_media_cfg_update' => true,
498 'medias' => $std_medias,
499 'base_media' => $std_base_media,
500 'branch' => 'Official',
501 'version' => '1',
502 'submit_allowed' => "${svn_root_packages}/updates/1",
503 'macros' => $std_macros,
504 'repo_allow_from' => $repo_allow_from,
505 'youri' => {
506 'upload' => {
507 'targets' => $std_youri_upload_targets,
508 'checks' => {
509 'rpmlint' => $mga2_rpmlint,
510 },
511 },
512 'todo' => {
513 'targets' => $std_youri_todo_targets,
514 'checks' => {
515 'rpmlint' => $mga2_rpmlint,
516 'version' => $frozen_version_check,
517 },
518 },
519 },
520 },
521
522 '2' => {
523 'arch' => $std_arch,
524 'no_media_cfg_update' => true,
525 'medias' => $std_medias,
526 'base_media' => $std_base_media,
527 'branch' => 'Official',
528 'version' => '2',
529 'submit_allowed' => "${svn_root_packages}/updates/2",
530 'macros' => $std_macros,
531 'repo_allow_from' => $repo_allow_from,
532 'youri' => {
533 'upload' => {
534 'targets' => $std_youri_upload_targets,
535 'checks' => {
536 'rpmlint' => $mga2_rpmlint,
537 },
538 },
539 'todo' => {
540 'targets' => $std_youri_todo_targets,
541 'checks' => {
542 'rpmlint' => $mga2_rpmlint,
543 'version' => $frozen_version_check,
544 },
545 },
546 },
547 },
548
549 '3' => {
550 'arch' => $std_arch,
551 'no_media_cfg_update' => true,
552 'medias' => $std_medias,
553 'base_media' => $std_base_media,
554 'branch' => 'Official',
555 'version' => '3',
556 'submit_allowed' => "${svn_root_packages}/updates/3",
557 'backports_allowed' => "${svn_root_packages}/backports/3",
558 'macros' => $std_macros,
559 'repo_allow_from' => $repo_allow_from,
560 'youri' => {
561 'upload' => {
562 'targets' => $std_youri_upload_targets,
563 'checks' => {
564 'rpmlint' => $mga3_rpmlint,
565 },
566 },
567 'todo' => {
568 'targets' => $std_youri_todo_targets,
569 'checks' => {
570 'rpmlint' => $mga3_rpmlint,
571 'version' => $std_version_check,
572 },
573 },
574 },
575 },
576
577 '4' => {
578 'arch' => $std_arch,
579 'no_media_cfg_update' => true,
580 'medias' => $std_medias,
581 'base_media' => $std_base_media,
582 'branch' => 'Official',
583 'version' => '4',
584 'submit_allowed' => "${svn_root_packages}/updates/4",
585 'backports_allowed' => "${svn_root_packages}/backports/4",
586 'macros' => $std_macros,
587 'repo_allow_from' => $repo_allow_from,
588 'youri' => {
589 'upload' => {
590 'targets' => $std_youri_upload_targets,
591 'checks' => {
592 'rpmlint' => $mga4_rpmlint,
593 },
594 },
595 'todo' => {
596 'targets' => $std_youri_todo_targets,
597 'checks' => {
598 'rpmlint' => $mga4_rpmlint,
599 'version' => $std_version_check,
600 },
601 },
602 },
603 },
604
605
606 'infra_1' => {
607 'arch' => $std_arch,
608 'medias' => $infra_medias,
609 'base_media' => [ '1/core/release', '1/core/updates', 'infra/updates' ],
610 'branch' => 'Official',
611 'version' => '1',
612 'submit_allowed' => $svn_root_packages,
613 'macros' => $std_macros,
614 'based_on' => {
615 '1' => {
616 'core' => [ 'release', 'updates' ],
617 },
618 },
619 'youri' => {
620 'upload' => {
621 'targets' => $infra_youri_upload_targets,
622 'checks' => {
623 'rpmlint' => $mga2_rpmlint,
624 },
625 },
626 'todo' => {
627 'targets' => $infra_youri_todo_targets,
628 'checks' => {
629 'rpmlint' => $mga2_rpmlint,
630 'version' => $infra_version_check,
631 },
632 },
633 },
634 'no_mirror' => true,
635 },
636
637 'infra_2' => {
638 'arch' => $std_arch,
639 'medias' => $infra_medias,
640 'base_media' => [ '2/core/release', '2/core/updates', 'infra/updates' ],
641 'branch' => 'Official',
642 'version' => '2',
643 'submit_allowed' => $svn_root_packages,
644 'macros' => $std_macros,
645 'based_on' => {
646 '2' => {
647 'core' => [ 'release', 'updates' ],
648 },
649 },
650 'youri' => {
651 'upload' => {
652 'targets' => $infra_youri_upload_targets,
653 'checks' => {
654 'rpmlint' => $mga2_rpmlint,
655 },
656 },
657 'todo' => {
658 'targets' => $infra_youri_todo_targets,
659 'checks' => {
660 'rpmlint' => $mga2_rpmlint,
661 'version' => $infra_version_check,
662 },
663 },
664 },
665 'no_mirror' => true,
666 },
667 }
668 }
669 $checks_tag_options = {
670 'tags' => {
671 'release' => inline_template("<%= std_macros['distsuffix'] %>\\d+"),
672 'distribution' => inline_template("^<%= std_macros['distribution'] %>"),
673 'vendor' => inline_template("^<%= std_macros['vendor'] %>$"),
674 },
675 }
676 class { 'buildsystem::var::youri':
677 packages_archivedir => "${buildsystem::var::scheduler::homedir}/old",
678 youri_conf => {
679 'upload' => {
680 'checks' => {
681 'tag' => {
682 'options' => $checks_tag_options,
683 },
684 'rpmlint' => {
685 'options' => {
686 'results' => [
687 'buildprereq-use',
688 'no-description-tag',
689 'no-summary-tag',
690 'non-standard-group',
691 'non-xdg-migrated-menu',
692 'percent-in-conflicts',
693 'percent-in-dependency',
694 'percent-in-obsoletes',
695 'percent-in-provides',
696 'summary-ended-with-dot',
697 'unexpanded-macro',
698 'unknown-lsb-keyword',
699 'malformed-line-in-lsb-comment-block',
700 'empty-%postun',
701 'empty-%post',
702 'invalid-desktopfile',
703 'standard-dir-owned-by-package',
704 'use-tmp-in-%postun',
705 'bogus-variable-use-in-%posttrans',
706 'dir-or-file-in-usr-local',
707 'dir-or-file-in-tmp',
708 'dir-or-file-in-mnt',
709 'dir-or-file-in-opt',
710 'dir-or-file-in-home',
711 'dir-or-file-in-var-local',
712 ],
713 },
714 },
715 },
716 'actions' => {
717 'mail' => {
718 'options' => {
719 'to' => "changelog@ml.${::domain}",
720 'reply_to' => "mageia-dev@${::domain}",
721 'from' => "buildsystem-daemon@${::domain}",
722 'prefix' => 'RPM',
723 },
724 },
725 },
726 },
727 'todo' => {
728 'checks' => {
729 'tag' => {
730 'options' => $checks_tag_options,
731 },
732 },
733 },
734 }
735 }
736 }

  ViewVC Help
Powered by ViewVC 1.1.30