falkorlib 0.8.9 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +57 -117
  3. data/README.md +1 -1
  4. data/binscripts/bootstrap.sh +8 -10
  5. data/falkorlib.gemspec +12 -12
  6. data/lib/falkorlib/bootstrap/base.rb +29 -25
  7. data/lib/falkorlib/bootstrap/latex.rb +7 -2
  8. data/lib/falkorlib/bootstrap/vagrant.rb +17 -10
  9. data/lib/falkorlib/common.rb +3 -3
  10. data/lib/falkorlib/config.rb +3 -3
  11. data/lib/falkorlib/gem_tasks.rb +1 -1
  12. data/lib/falkorlib/git_tasks.rb +1 -1
  13. data/lib/falkorlib/puppet_tasks.rb +1 -1
  14. data/lib/falkorlib/version.rb +2 -1
  15. data/spec/falkorlib/bootstrap_latex_spec.rb +6 -5
  16. data/spec/falkorlib/git_spec.rb +2 -2
  17. data/spec/falkorlib/gitflow_spec.rb +5 -4
  18. data/templates/latex/article/_related_works.tex.erb +1 -1
  19. data/templates/latex/article/biblio.bib.erb +12 -1
  20. data/templates/latex/article-acm/main.tex.erb +47 -65
  21. data/templates/latex/article-ieee/main.tex.erb +42 -410
  22. data/templates/latex/article-llncs/main.tex.erb +30 -18
  23. data/templates/latex/beamer/.Makefile.local +1 -0
  24. data/templates/latex/beamer/_content.md.erb +1 -1
  25. data/templates/latex/beamer/main.tex.erb +24 -11
  26. data/templates/latex/images/logo_ANSSI.png +0 -0
  27. data/templates/latex/images/logo_RF.png +0 -0
  28. data/templates/latex/llncs/llncs.cls +49 -39
  29. data/templates/latex/llncs/{splncs03.bst → splncs04.bst} +40 -11
  30. data/templates/vagrant/.gitignore +14 -0
  31. data/templates/vagrant/Vagrantfile.erb +53 -15
  32. data/templates/vagrant/vagrant/config.yaml.sample +9 -6
  33. data/templates/vagrant/vagrant/scripts/bootstrap.sh +32 -14
  34. metadata +81 -77
  35. data/templates/latex/images/logo_UL.pdf +0 -0
  36. data/templates/latex/images/logo_ULHPC.pdf +0 -0
Binary file
@@ -1,4 +1,4 @@
1
- % LLNCS DOCUMENT CLASS -- version 2.20 (24-JUN-2015)
1
+ % LLNCS DOCUMENT CLASS -- version 2.21 (12-Jan-2022)
2
2
  % Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
3
3
  %
4
4
  %%
@@ -19,7 +19,7 @@
19
19
  %% Right brace \} Tilde \~}
20
20
  %%
21
21
  \NeedsTeXFormat{LaTeX2e}[1995/12/01]
22
- \ProvidesClass{llncs}[2015/06/24 v2.20
22
+ \ProvidesClass{llncs}[2022/01/12 v2.21
23
23
  ^^J LaTeX document class for Lecture Notes in Computer Science]
24
24
  % Options
25
25
  \let\if@envcntreset\iffalse
@@ -77,40 +77,40 @@
77
77
  \fi}
78
78
  %
79
79
  \def\switcht@albion{%
80
- \def\abstractname{Abstract.}%
81
- \def\ackname{Acknowledgement.}%
82
- \def\andname{and}%
83
- \def\lastandname{\unskip, and}%
84
- \def\appendixname{Appendix}%
85
- \def\chaptername{Chapter}%
86
- \def\claimname{Claim}%
87
- \def\conjecturename{Conjecture}%
88
- \def\contentsname{Table of Contents}%
89
- \def\corollaryname{Corollary}%
90
- \def\definitionname{Definition}%
91
- \def\examplename{Example}%
92
- \def\exercisename{Exercise}%
93
- \def\figurename{Fig.}%
94
- \def\keywordname{{\bf Keywords:}}%
95
- \def\indexname{Index}%
96
- \def\lemmaname{Lemma}%
97
- \def\contriblistname{List of Contributors}%
98
- \def\listfigurename{List of Figures}%
99
- \def\listtablename{List of Tables}%
100
- \def\mailname{{\it Correspondence to\/}:}%
101
- \def\noteaddname{Note added in proof}%
102
- \def\notename{Note}%
103
- \def\partname{Part}%
104
- \def\problemname{Problem}%
105
- \def\proofname{Proof}%
106
- \def\propertyname{Property}%
107
- \def\propositionname{Proposition}%
108
- \def\questionname{Question}%
109
- \def\remarkname{Remark}%
110
- \def\seename{see}%
111
- \def\solutionname{Solution}%
112
- \def\subclassname{{\it Subject Classifications\/}:}%
113
- \def\tablename{Table}%
80
+ \def\abstractname{Abstract.}
81
+ \def\ackname{Acknowledgement.}
82
+ \def\andname{and}
83
+ \def\lastandname{\unskip, and}
84
+ \def\appendixname{Appendix}
85
+ \def\chaptername{Chapter}
86
+ \def\claimname{Claim}
87
+ \def\conjecturename{Conjecture}
88
+ \def\contentsname{Table of Contents}
89
+ \def\corollaryname{Corollary}
90
+ \def\definitionname{Definition}
91
+ \def\examplename{Example}
92
+ \def\exercisename{Exercise}
93
+ \def\figurename{Fig.}
94
+ \def\keywordname{{\bf Keywords:}}
95
+ \def\indexname{Index}
96
+ \def\lemmaname{Lemma}
97
+ \def\contriblistname{List of Contributors}
98
+ \def\listfigurename{List of Figures}
99
+ \def\listtablename{List of Tables}
100
+ \def\mailname{{\it Correspondence to\/}:}
101
+ \def\noteaddname{Note added in proof}
102
+ \def\notename{Note}
103
+ \def\partname{Part}
104
+ \def\problemname{Problem}
105
+ \def\proofname{Proof}
106
+ \def\propertyname{Property}
107
+ \def\propositionname{Proposition}
108
+ \def\questionname{Question}
109
+ \def\remarkname{Remark}
110
+ \def\seename{see}
111
+ \def\solutionname{Solution}
112
+ \def\subclassname{{\it Subject Classifications\/}:}
113
+ \def\tablename{Table}
114
114
  \def\theoremname{Theorem}}
115
115
  \switcht@albion
116
116
  % Names of theorem like environments are already defined
@@ -875,8 +875,10 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
875
875
  \or \ddagger\ddagger \else\@ctrerr\fi}}
876
876
 
877
877
  \def\inst#1{\unskip$^{#1}$}
878
+ \def\orcidID#1{\unskip$^{[#1]}$} % added MR 2018-03-10
878
879
  \def\fnmsep{\unskip$^,$}
879
880
  \def\email#1{{\tt#1}}
881
+
880
882
  \AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
881
883
  \@ifpackageloaded{babel}{%
882
884
  \@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
@@ -884,8 +886,12 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
884
886
  \@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
885
887
  \@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}%
886
888
  }{\switcht@@therlang}%
887
- \providecommand{\keywords}[1]{\par\addvspace\baselineskip
889
+ \providecommand{\keywords}[1]{\def\and{{\textperiodcentered} }%
890
+ \par\addvspace\baselineskip
888
891
  \noindent\keywordname\enspace\ignorespaces#1}%
892
+ \@ifpackageloaded{hyperref}{%
893
+ \def\doi#1{\href{https://doi.org/\detokenize{#1}}{\url{https://doi.org/#1}}}}{
894
+ \def\doi#1{https://doi.org/\detokenize{#1}}}
889
895
  }
890
896
  \def\homedir{\~{ }}
891
897
 
@@ -946,6 +952,8 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
946
952
  %
947
953
  \if!\the\tocauthor!\relax
948
954
  {\def\and{\noexpand\protect\noexpand\and}%
955
+ \def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the TOC
956
+ \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the TOC
949
957
  \protected@xdef\toc@uthor{\@author}}%
950
958
  \else
951
959
  \def\\{\noexpand\protect\noexpand\newline}%
@@ -961,7 +969,9 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
961
969
  \else
962
970
  \edef\@author{\the\authorrunning}%
963
971
  \fi
964
- \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
972
+ \global\setbox\authrun=\hbox{\def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the runninghead
973
+ \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the runninghead
974
+ \small\unboldmath\@author\unskip}%
965
975
  \ifdim\wd\authrun>\instindent
966
976
  \typeout{Names of authors too long for running head. Please supply}%
967
977
  \typeout{a shorter form with \string\authorrunning\space prior to
@@ -1063,7 +1073,7 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
1063
1073
  \global\@namedef{end#1}{\@endtheorem}}}}
1064
1074
 
1065
1075
  \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
1066
- \refstepcounter{#1}\phantomsection
1076
+ \refstepcounter{#1}%
1067
1077
  \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
1068
1078
 
1069
1079
  \def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
@@ -1,4 +1,4 @@
1
- %% BibTeX bibliography style `splncs03'
1
+ %% BibTeX bibliography style `splncs04'
2
2
  %%
3
3
  %% BibTeX bibliography style for use with numbered references in
4
4
  %% Springer Verlag's "Lecture Notes in Computer Science" series.
@@ -31,6 +31,7 @@
31
31
  %% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle)
32
32
  %% - Removed a \newblock to avoid long spaces between title and "In: ..."
33
33
  %% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label
34
+ %% - Added doi
34
35
  %% ================================================================================================
35
36
  %% This was file `titto.bst',
36
37
  %% generated with the docstrip utility.
@@ -73,6 +74,7 @@ ENTRY
73
74
  author
74
75
  booktitle
75
76
  chapter
77
+ doi
76
78
  edition
77
79
  editor
78
80
  eid
@@ -243,8 +245,15 @@ FUNCTION {field.or.null}
243
245
  }
244
246
  FUNCTION {emphasize}
245
247
  { skip$ }
248
+
249
+ FUNCTION {embolden}
250
+ { duplicate$ empty$
251
+ { pop$ "" }
252
+ { "\textbf{" swap$ * "}" * }
253
+ if$
254
+ }
246
255
  FUNCTION {tie.or.space.prefix}
247
- { duplicate$ text.length$ #3 <
256
+ { duplicate$ text.length$ #5 <
248
257
  { "~" }
249
258
  { " " }
250
259
  if$
@@ -436,6 +445,14 @@ FUNCTION {format.url}
436
445
  if$
437
446
  }
438
447
 
448
+ FUNCTION {format.doi} % added in splncs04.bst
449
+ { doi empty$
450
+ { "" }
451
+ { after.block 'output.state :=
452
+ "\doi{" doi * "}" * }
453
+ if$
454
+ }
455
+
439
456
  INTEGERS { nameptr namesleft numnames }
440
457
 
441
458
 
@@ -768,17 +785,17 @@ FUNCTION {format.journal.eid}
768
785
  if$
769
786
  }
770
787
  FUNCTION {format.vol.num.pages} % this function is used only for journal entries
771
- { volume field.or.null
788
+ { volume field.or.null embolden
772
789
  duplicate$ empty$ 'skip$
773
790
  {
774
- % bbl.volume swap$ tie.or.space.prefix
775
- titto.bbl.volume swap$ titto.space.prefix
776
- % rationale for the change above: for journals you don't want "vol." label
777
- % hence it does not make sense to attach the journal number to the label when
778
- % it is short
791
+ % bbl.volume swap$ tie.or.space.prefix
792
+ titto.bbl.volume swap$ titto.space.prefix
793
+ % rationale for the change above: for journals you don't want "vol." label
794
+ % hence it does not make sense to attach the journal number to the label when
795
+ % it is short
779
796
  "volume" bibinfo.check
780
797
  * *
781
- }
798
+ }
782
799
  if$
783
800
  number "number" bibinfo.check duplicate$ empty$ 'skip$
784
801
  {
@@ -1006,6 +1023,7 @@ FUNCTION {article}
1006
1023
  }
1007
1024
  if$
1008
1025
  % new.block
1026
+ format.doi output
1009
1027
  format.url output
1010
1028
  % new.block
1011
1029
  format.note output
@@ -1042,6 +1060,7 @@ FUNCTION {book}
1042
1060
  format.edition output
1043
1061
  format.date "year" output.check
1044
1062
  % new.block
1063
+ format.doi output
1045
1064
  format.url output
1046
1065
  % new.block
1047
1066
  format.note output
@@ -1058,6 +1077,7 @@ FUNCTION {booklet}
1058
1077
  address "address" bibinfo.check output
1059
1078
  format.date output
1060
1079
  % new.block
1080
+ format.doi output
1061
1081
  format.url output
1062
1082
  % new.block
1063
1083
  format.note output
@@ -1098,6 +1118,7 @@ FUNCTION {inbook}
1098
1118
  format.edition output
1099
1119
  format.date "year" output.check
1100
1120
  % new.block
1121
+ format.doi output
1101
1122
  format.url output
1102
1123
  % new.block
1103
1124
  format.note output
@@ -1126,6 +1147,7 @@ FUNCTION {incollection}
1126
1147
  }
1127
1148
  if$
1128
1149
  % new.block
1150
+ format.doi output
1129
1151
  format.url output
1130
1152
  % new.block
1131
1153
  format.note output
@@ -1158,6 +1180,7 @@ FUNCTION {inproceedings}
1158
1180
  }
1159
1181
  if$
1160
1182
  % new.block
1183
+ format.doi output
1161
1184
  format.url output
1162
1185
  % new.block
1163
1186
  format.note output
@@ -1197,6 +1220,7 @@ FUNCTION {manual}
1197
1220
  format.edition output
1198
1221
  format.date output
1199
1222
  % new.block
1223
+ format.doi output
1200
1224
  format.url output
1201
1225
  % new.block
1202
1226
  format.note output
@@ -1216,6 +1240,7 @@ FUNCTION {mastersthesis}
1216
1240
  address "address" bibinfo.check output
1217
1241
  format.date "year" output.check
1218
1242
  % new.block
1243
+ format.doi output
1219
1244
  format.url output
1220
1245
  % new.block
1221
1246
  format.note output
@@ -1232,6 +1257,7 @@ FUNCTION {misc}
1232
1257
  howpublished "howpublished" bibinfo.check output
1233
1258
  format.date output
1234
1259
  % new.block
1260
+ format.doi output
1235
1261
  format.url output
1236
1262
  % new.block
1237
1263
  format.note output
@@ -1251,6 +1277,7 @@ FUNCTION {phdthesis}
1251
1277
  address "address" bibinfo.check output
1252
1278
  format.date "year" output.check
1253
1279
  % new.block
1280
+ format.doi output
1254
1281
  format.url output
1255
1282
  % new.block
1256
1283
  format.note output
@@ -1294,6 +1321,7 @@ FUNCTION {proceedings}
1294
1321
  if$
1295
1322
  format.date "year" output.check
1296
1323
  % new.block
1324
+ format.doi output
1297
1325
  format.url output
1298
1326
  % new.block
1299
1327
  format.note output
@@ -1313,6 +1341,7 @@ FUNCTION {techreport}
1313
1341
  address "address" bibinfo.check output
1314
1342
  format.date "year" output.check
1315
1343
  % new.block
1344
+ format.doi output
1316
1345
  format.url output
1317
1346
  % new.block
1318
1347
  format.note output
@@ -1503,6 +1532,8 @@ FUNCTION {begin.bib}
1503
1532
  write$ newline$
1504
1533
  "\providecommand{\urlprefix}{URL }"
1505
1534
  write$ newline$
1535
+ "\providecommand{\doi}[1]{https://doi.org/#1}"
1536
+ write$ newline$
1506
1537
  }
1507
1538
  EXECUTE {begin.bib}
1508
1539
  EXECUTE {init.state.consts}
@@ -1515,5 +1546,3 @@ EXECUTE {end.bib}
1515
1546
  %% End of customized bst file
1516
1547
  %%
1517
1548
  %% End of file `titto.bst'.
1518
-
1519
-
@@ -0,0 +1,14 @@
1
+ # Created by https://www.toptal.com/developers/gitignore/api/vagrant
2
+ # Edit at https://www.toptal.com/developers/gitignore?templates=vagrant
3
+
4
+ ### Vagrant ###
5
+ # General
6
+ .vagrant/
7
+
8
+ # Log files (if you are creating logs in debug mode, uncomment this)
9
+ # *.log
10
+
11
+ ### Vagrant Patch ###
12
+ *.box
13
+
14
+ # End of https://www.toptal.com/developers/gitignore/api/vagrant
@@ -1,6 +1,6 @@
1
1
  # -*- mode: ruby -*-
2
2
  # vi: set ft=ruby :
3
- # Time-stamp: <Mon 2020-04-20 15:32 svarrette>
3
+ # Time-stamp: <Mon 2023-12-04 17:12 svarrette>
4
4
  ###########################################################################################
5
5
  # __ __ _ __ _ _
6
6
  # \ \ / /_ _ __ _ _ __ __ _ _ __ | |_ / _(_) | ___
@@ -25,7 +25,7 @@ require 'erb'
25
25
  [ 'vagrant-hosts',
26
26
  'vagrant-vbguest',
27
27
  'vagrant-cachier',
28
- # 'vagrant-libvirt',
28
+ 'vagrant-libvirt',
29
29
  'deep_merge',
30
30
  'terminal-table' ].each do |plugin|
31
31
  abort "Install the '#{plugin}' plugin with 'vagrant plugin install #{plugin}'" unless Vagrant.has_plugin?("#{plugin}")
@@ -53,9 +53,10 @@ DEFAULT_SETTINGS = {
53
53
  # Default images settings
54
54
  :defaults => {
55
55
  :os => :<%= config[:os] %>,
56
+ :provider => :<%= config[:provider] %>,
56
57
  :ram => <%= config[:ram] %>,
57
58
  :vcpus => <%= config[:vcpus] %>,
58
- :vbguest_auto_update => true,
59
+ :vbguest_auto_update => false,
59
60
  :role => 'default',
60
61
  # :nodes => 1,
61
62
  },
@@ -66,10 +67,18 @@ DEFAULT_SETTINGS = {
66
67
  },
67
68
  # Default Boxes
68
69
  :boxes => {
69
- :centos8 => '<%= config[:boxes][:centos8] %>',
70
- :centos7 => '<%= config[:boxes][:centos7] %>',
71
- :debian8 => '<%= config[:boxes][:debian8] %>',
72
- :ubuntu14 => '<%= config[:boxes][:ubuntu14] %>'
70
+ :debian12 => '<%= config[:boxes][:debian12] %>',
71
+ :debian12_uefi => '<%= config[:boxes][:debian12_uefi] %>',
72
+ :almalinux9 => '<%= config[:boxes][:almalinux9] %>',
73
+ :almalinux8 => '<%= config[:boxes][:almalinux8] %>',
74
+ :almalinux8_uefi => '<%= config[:boxes][:almalinux8_uefi] %>',
75
+ :rockylinux8 => '<%= config[:boxes][:rockylinux8] %>',
76
+ :centosstream9 => '<%= config[:boxes][:centosstream9] %>',
77
+ :centosstream8 => '<%= config[:boxes][:centosstream8] %>',
78
+ :ubuntu22 => '<%= config[:boxes][:ubuntu22] %>',
79
+ :ubuntu20 => '<%= config[:boxes][:ubuntu20] %>',
80
+ :fedora38 => '<%= config[:boxes][:fedora38] %>',
81
+ :archlinux => '<%= config[:boxes][:archlinux] %>'
73
82
  },
74
83
  # virtual images to deploy
75
84
  # <name>:
@@ -126,18 +135,21 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
126
135
  # set auto_update to false, if you do NOT want to check the correct
127
136
  # additions version when booting these boxes
128
137
  config.vbguest.auto_update = defaults[:vbguest_auto_update]
138
+ config.vbguest.installer_options = { allow_kernel_upgrade: true }
139
+
129
140
  end
130
141
 
131
142
  # Shell provisioner, to bootstrap each box with the minimal settings/packages
132
143
  DEFAULT_PROVISIONING_SCRIPTS.each do |script|
133
144
  config.vm.provision "shell", path: "#{script}", keep_color: true
134
145
  end
135
- config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
146
+
147
+ # config.vm.synced_folder ".", "/vagrant", type: "virtualbox" # done by default
136
148
  ## Uncomment the below part if you want and additional shared directory
137
149
  # config.vm.synced_folder "vagrant/shared", "/shared", mount_options: ['dmode=777','fmode=777'],
138
150
  # type: "virtualbox" # Shared directory for users
139
151
  if Dir.exist?(File.join(TOP_PUPPETDIR, 'hieradata'))
140
- config.vm.synced_folder "#{puppet_dir}/hieradata", "/tmp/vagrant-puppet/hieradata", type: "virtualbox"
152
+ config.vm.synced_folder "#{puppet_dir}/hieradata", "/tmp/vagrant-puppet/hieradata" #, type: "virtualbox"
141
153
  end
142
154
 
143
155
  # network settings
@@ -161,12 +173,14 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
161
173
  boxname = defaults[:os].to_s.downcase.gsub(/([^\d]+)(\d+)/, '\\1-\\2')
162
174
  name = boxname if name == 'default'
163
175
  os = node[:os] ? node[:os].to_sym : defaults[:os].to_sym
176
+ provider = (os =~ /_uefi$/)? 'libvirt' : defaults[:provider]
177
+ provider = node[:provider] if node[:provider]
164
178
  ram = node[:ram] ? node[:ram] : defaults[:ram]
165
179
  vcpus = node[:vcpus] ? node[:vcpus] : defaults[:vcpus]
166
180
  role = node[:role] ? node[:role] : 'default'
167
181
  desc = node[:desc] ? node[:desc] : 'n/a'
168
182
  puppet_modules = node[:puppet_modules] ? node[:puppet_modules] : []
169
-
183
+ warn "provider: #{provider}"
170
184
  abort "Non-existing box OS '#{os}' for the VM '#{name}'" if settings[:boxes][os.to_sym].nil?
171
185
  abort "Empty IP address range" if ip_range.empty?
172
186
  ip = ip_range[ ip_index.to_i ].to_s
@@ -175,13 +189,36 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
175
189
  config.vm.define "#{name}" do |c|
176
190
  c.vm.box = settings[:boxes][os.to_sym]
177
191
  c.vm.hostname = "#{fqdn}"
178
- c.vm.network :private_network, :ip => ip
192
+ c.vm.network :private_network,
193
+ :ip => ip,
194
+ :libvirt__network_address => network[:range], # ip_range[0].to_s + '/24',
195
+ :libvirt__forward_mode => 'nat'
196
+
179
197
  c.vm.provision :hosts, :sync_hosts => true
198
+ # (eventually) Force default provider
199
+ c.vm.provider :"#{provider}" if provider != 'virtualbox'
180
200
 
181
- c.vm.provider "virtualbox" do |v|
201
+ # Custom VM configs for virtualbox provider
202
+ c.vm.provider 'virtualbox' do |v|
182
203
  v.customize [ 'modifyvm', :id, '--name', hostname, '--memory', ram.to_s ]
183
204
  v.customize [ 'modifyvm', :id, '--cpus', vcpus.to_s ] if vcpus.to_i > 1
184
205
  #v.customize [ 'setextradata', :id, 'VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root', '1']
206
+ v.customize ["modifyvm", :id, "--firmware", "efi"]
207
+ end
208
+ # Custom VM configs for libvirt provider
209
+ # see https://vagrant-libvirt.github.io/vagrant-libvirt/configuration.html
210
+ c.vm.provider :libvirt do |lv|
211
+ lv.uri = 'qemu:///system'
212
+ lv.host = hostname
213
+ lv.cpus = vcpus
214
+ lv.memory = ram
215
+ # lv.nested = true
216
+
217
+ # Emulated TPM
218
+ lv.tpm_model = "tpm-crb"
219
+ lv.tpm_type = "emulator"
220
+ lv.tpm_version = "2.0"
221
+
185
222
  end
186
223
 
187
224
  # role specialization
@@ -201,8 +238,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
201
238
  end
202
239
 
203
240
  # A role fact MUST be defined (default: 'default') as it is used in Hiera config
241
+ facts_dir = '/etc/facter/facts.d/'
204
242
  c.vm.provision "shell",
205
- inline: "echo '{ \"role\": \"#{role}\" }' > /opt/puppetlabs/facter/facts.d/custom.json",
243
+ inline: "mkdir -p #{facts_dir}; echo '{ \"role\": \"#{role}\" }' > #{facts_dir}/custom.json",
206
244
  keep_color: true
207
245
  ################ Puppet install ##############
208
246
  c.vm.provision "puppet" do |puppet|
@@ -222,14 +260,14 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
222
260
 
223
261
  __table[:rows] << [ name, fqdn, os.to_sym, "#{vcpus}/#{ram}", role, desc, ip]
224
262
 
225
- if settings[:vms].keys.last == name
263
+ #if settings[:vms].keys.last == name
226
264
  c.trigger.after :up do |trigger|
227
265
  trigger.info = (Terminal::Table.new __table).to_s
228
266
  trigger.warn = <<-EOF
229
267
  - Virtual Vagrant infrastructure successfully deployed!
230
268
  EOF
231
269
  end
232
- end
270
+ #end
233
271
 
234
272
  end # config.vm.define
235
273
  end # settings
@@ -1,5 +1,5 @@
1
1
  # -*- mode: yaml; -*-
2
- # Time-stamp: <Sat 2020-04-18 18:00 svarrette>
2
+ # Time-stamp: <Sat 2023-11-18 16:59 svarrette>
3
3
  ################################################################################
4
4
  # Complementary configuration for Vagrant
5
5
  # You can overwrite here the default settings defined in ../Vagrantfile and
@@ -11,15 +11,18 @@
11
11
  # Format:
12
12
  # :<os><version>: <username>/<box> # see https://vagrantcloud.com
13
13
  # :boxes:
14
- # :centos8: 'centos/8'
15
- # :centos7: 'centos/7'
16
- # :debian8: 'debian/contrib-jessie64'
17
- # :ubuntu14: 'ubuntu/trusty64'
14
+ # :debian12: 'debian/bookworm64'
15
+ # :rockylinux9: 'rockylinux/9'
16
+ # :rockylinux8: 'rockylinux/8'
17
+ # :ubuntu22: 'ubuntu/jammy64'
18
+ # :ubuntu20: 'ubuntu/focal64'
19
+ # :fedora38: 'generic/fedora38'
20
+ # :archlinux: 'archlinux/archlinux'
18
21
 
19
22
  #_________________
20
23
  # Default settings
21
24
  # :defaults:
22
- # :os: :centos7 # Default OS from the above box definition
25
+ # :os: :debian12 # Default OS from the above box definition
23
26
  # :ram: 512 # Default RAM
24
27
  # :vcpus: 1 # Default number of virtual CPUs
25
28
  # :vbguest_auto_update: 1 # check/update box guest additions
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env bash
2
- # Time-stamp: <Sun 2020-04-19 12:39 svarrette>
2
+ # Time-stamp: <Mon 2023-12-04 17:51 svarrette>
3
3
  ###########################################################################################
4
4
  # __ __ _ ____ _ _
5
5
  # \ \ / /_ _ __ _ _ __ __ _ _ __ | |_ | __ ) ___ ___ | |_ ___| |_ _ __ __ _ _ __
6
- # \ \ / / _` |/ _` | '__/ _` | '_ \| __| | _ \ / _ \ / _ \| __/ __| __| '__/ _` | '_ \
7
- # \ V / (_| | (_| | | | (_| | | | | |_ | |_) | (_) | (_) | |_\__ \ |_| | | (_| | |_) |
6
+ # \ \ / / _` |/ _` | '__/ _` | '_ \| __| | _ \ / _ \ / _ \| __/ __| __| '__/ _` | '_ \ .
7
+ # \ V / (_| | (_| | | | (_| | | | | |_ | |_) | (_) | (_) | |_\__ \ |_| | | (_| | |_) |
8
8
  # \_/ \__,_|\__, |_| \__,_|_| |_|\__| |____/ \___/ \___/ \__|___/\__|_| \__,_| .__/
9
9
  # |___/ |_|
10
- # Copyright (c) 2017-2020 Sebastien Varrette <sebastien.varrette@uni.lu>
10
+ # Copyright (c) 2017-2023 Sebastien Varrette
11
11
  ###########################################################################################
12
12
  # (prefered) way to see a Vagrant box configured.
13
13
  #
@@ -26,12 +26,12 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
26
26
  MOTD="/etc/motd"
27
27
  DOTFILES_DIR='/etc/dotfiles.d'
28
28
  DOTFILES_URL='https://github.com/ULHPC/dotfiles.git'
29
- EXTRA_PACKAGES=
29
+ EXTRA_PACKAGES='swtpm swtpm-tools'
30
30
 
31
31
  TITLE=$(hostname -s)
32
32
 
33
33
  # List of default packages to install
34
- COMMON_DEFAULT_PACKAGES="ruby wget figlet git screen bash-completion rsync vim htop net-tools mailx"
34
+ COMMON_DEFAULT_PACKAGES="ruby wget figlet git screen bash-completion rsync vim htop net-tools"
35
35
 
36
36
  ######
37
37
  # Print information in the following form: '[$2] $1' ($2=INFO if not submitted)
@@ -67,6 +67,15 @@ setup_redhat() {
67
67
  touch /etc/sysconfig/bash-prompt-screen
68
68
  chmod +x /etc/sysconfig/bash-prompt-screen
69
69
 
70
+ if [ -x "/usr/bin/crb" ]; then
71
+ info "Enable CodeReady Builder (CRB) repository"
72
+ /usr/bin/crb enable
73
+ fi
74
+
75
+ if ! grep -e "fastestmirror" /etc/dnf/dnf.conf; then
76
+ echo "fastestmirror=1" >> /etc/dnf/dnf.conf
77
+ fi
78
+
70
79
  info "Running yum update"
71
80
  yum update -y >/dev/null
72
81
 
@@ -81,17 +90,24 @@ setup_redhat() {
81
90
  os_version=$(rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release))
82
91
  info "Adding Puppet Labs repo and installing Puppet for RHEL/CentOS ${os_version}"
83
92
  # Get the major version
84
- yum install -y https://yum.puppetlabs.com/puppet-release-el-$(echo $os_version | cut -d '.' -f 1).noarch.rpm
93
+ yum install -y https://yum.puppetlabs.com/puppet7-release-el-$(echo $os_version | cut -d '.' -f 1).noarch.rpm
85
94
  yum install -y puppet
86
95
  }
87
96
 
88
97
  setup_apt() {
98
+ export DEBIAN_FRONTEND=noninteractive
99
+
89
100
  case $1 in
90
101
  3*) codename=cumulus ;;
91
102
  6) codename=squeeze ;;
92
103
  7) codename=wheezy ;;
93
104
  8) codename=jessie ;;
94
105
  9) codename=stretch ;;
106
+ 10) codename=buster ;;
107
+ 11) codename=bullseye ;;
108
+ 12) codename=bookworm ;;
109
+ 13) codename=trixie ;;
110
+ 14) codename=forky ;;
95
111
  12.04) codename=precise ;;
96
112
  14.04) codename=trusty ;;
97
113
  16.04) codename=xenial ;;
@@ -104,13 +120,12 @@ setup_apt() {
104
120
  info "Installing default packages"
105
121
  apt-get install -y ${COMMON_DEFAULT_PACKAGES} git-core ${EXTRA_PACKAGES} >/dev/null
106
122
 
107
- info "Installing Puppet and its dependencies"
108
- apt-get install puppet-agent -y >/dev/null
109
- apt-get install apt-transport-https -y >/dev/null
123
+ info "Set locale"
124
+ localectl set-locale LANG=en_US.UTF-8
125
+
126
+ info "Installing puppet"
127
+ apt-get install -y puppet >/dev/null
110
128
 
111
- info "installing Environment modules and LMod"
112
- apt-get install -y environment-modules lmod
113
- apt-get install -y build-essentials
114
129
  }
115
130
 
116
131
  setup_linux() {
@@ -144,7 +159,7 @@ setup_linux() {
144
159
  info "Detected Linux distro: ${distro} version ${majver} on arch ${ARCH}"
145
160
  case "$distro" in
146
161
  debian|ubuntu) setup_apt $majver ;;
147
- redhat|fedora|centos|scientific|amazon) setup_redhat $majver ;;
162
+ redhat|rocky|fedora|centos|almalinux|scientific|amazon) setup_redhat $majver ;;
148
163
  *) echo "Not supported distro: $distro"; exit 1;;
149
164
  esac
150
165
 
@@ -169,6 +184,9 @@ setup_dotfiles () {
169
184
  info "installing dotfiles for 'vagrant' user"
170
185
  sudo -u vagrant ${dotfile_install_cmd}
171
186
  fi
187
+ info "cleanup .inputrc"
188
+ rm -f /root/.inputrc
189
+ sudo -u vagrant rm -f ~vagrant/.inputrc
172
190
  }
173
191
 
174
192
  setup_motd() {