ood_packaging 0.0.1.r2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'erb'
4
+
5
+ # Shared utility functions
6
+ module OodPackaging::Utils
7
+ def proj_root
8
+ File.expand_path(File.join(File.dirname(__FILE__), '../..'))
9
+ end
10
+
11
+ def tar
12
+ @tar ||= begin
13
+ `which gtar 1>/dev/null 2>&1`
14
+ $CHILD_STATUS.success? ? 'gtar' : 'tar'
15
+ end
16
+ end
17
+
18
+ def sed
19
+ @sed ||= begin
20
+ `which gsed 1>/dev/null 2>&1`
21
+ $CHILD_STATUS.success? ? 'gsed' : 'sed'
22
+ end
23
+ end
24
+
25
+ def podman_runtime?
26
+ @podman_runtime ||= ENV['CONTAINER_RT'] == 'podman' || ENV['container'] == 'podman'
27
+ end
28
+
29
+ def docker_runtime?
30
+ !podman_runtime?
31
+ end
32
+
33
+ def container_runtime
34
+ podman_runtime? ? 'podman' : 'docker'
35
+ end
36
+
37
+ def rt_specific_flags
38
+ if podman_runtime?
39
+ # SELinux doesn't like it if you're mounting from $HOME
40
+ [
41
+ '--security-opt', 'label=disable'
42
+ ]
43
+ else
44
+ ['--privileged', '--tty']
45
+ end
46
+ end
47
+
48
+ def template_file(filename)
49
+ cwd = File.expand_path(__dir__).to_s
50
+ src = File.join(cwd, filename)
51
+ dest = File.join(cwd, filename.gsub('.erb', ''))
52
+ content = ERB.new(File.read(src), trim_mode: '-').result(binding)
53
+ File.open(dest, 'w') { |f| f.write(content) }
54
+ dest
55
+ end
56
+
57
+ def ondemand_repo_version
58
+ '2.0'
59
+ end
60
+
61
+ def ruby_version
62
+ '2.7'
63
+ end
64
+
65
+ def scl_ruby
66
+ "rh-ruby#{ruby_version.tr('.', '')}"
67
+ end
68
+
69
+ def nodejs_version
70
+ '12'
71
+ end
72
+
73
+ def ctr_scripts_dir
74
+ '/ondemand-packaging'
75
+ end
76
+
77
+ def ctr_gems_dir
78
+ File.join(ctr_scripts_dir, 'gems')
79
+ end
80
+
81
+ def gpg_private_key
82
+ File.join(ctr_scripts_dir, 'ondemand.sec')
83
+ end
84
+
85
+ def gpg_passphrase
86
+ File.join(ctr_scripts_dir, '.gpgpass')
87
+ end
88
+
89
+ def ctr_user
90
+ 'ood'
91
+ end
92
+
93
+ def ctr_home
94
+ File.join('/home', ctr_user)
95
+ end
96
+
97
+ def ctr_rpmmacros
98
+ File.join(ctr_home, '.rpmmacros')
99
+ end
100
+
101
+ def ctr_gpg_dir
102
+ File.join(ctr_home, '.gnupg')
103
+ end
104
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Version code for OodPackaging
4
+ module OodPackaging
5
+ VERSION = '0.0.1.r2.0'
6
+ PACKAGE_VERSION = {
7
+ 'ondemand-release' => {
8
+ '(ubuntu|debian)' => '2.0.0',
9
+ 'default' => '2.0'
10
+ },
11
+ 'ondemand-release-latest' => {
12
+ '(ubuntu|debian)' => '1',
13
+ 'default' => '1-7'
14
+ },
15
+ 'ondemand-runtime' => '2.0-2',
16
+ 'passenger' => '6.0.14',
17
+ 'cjose' => '0.6.1',
18
+ 'mod_auth_openidc' => '2.4.5',
19
+ 'sqlite' => '3.26.0-4',
20
+ 'ondemand_exporter' => '0.9.0',
21
+ 'ondemand-compute' => {
22
+ '(ubuntu|debian)' => '2.0',
23
+ 'default' => '2.0'
24
+ },
25
+ 'python-websockify' => '0.8.0',
26
+ 'turbovnc' => '2.2.5'
27
+ }.freeze
28
+
29
+ def self.package_version(package, dist)
30
+ return PACKAGE_VERSION[package] if PACKAGE_VERSION[package].is_a?(String)
31
+
32
+ PACKAGE_VERSION[package].each_pair do |k, v|
33
+ return v if dist =~ /#{k}/
34
+ end
35
+ PACKAGE_VERSION[package]['default']
36
+ end
37
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OodPackaging
4
+ require 'ood_packaging/build'
5
+ require 'ood_packaging/build_box'
6
+ require 'ood_packaging/options'
7
+ require 'ood_packaging/package'
8
+ require 'ood_packaging/string_ext'
9
+ require 'ood_packaging/utils'
10
+ require 'ood_packaging/version'
11
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ood_packaging
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.r2.0
5
+ platform: ruby
6
+ authors:
7
+ - Trey Dockendorf
8
+ - Jeff Ohrstrom
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2022-07-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 13.0.1
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 13.0.1
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rubocop
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rubocop-rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ description: Open OnDemand packaging library provides Rake tasks like package:rpm
71
+ and pacakge:deb
72
+ email:
73
+ - tdockendorf@osc.edu
74
+ - johrstrom@osc.edu
75
+ executables:
76
+ - ood_packaging
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - bin/ood_packaging
81
+ - lib/ood_packaging.rb
82
+ - lib/ood_packaging/build.rb
83
+ - lib/ood_packaging/build_box.rb
84
+ - lib/ood_packaging/build_box/docker-image/Dockerfile.erb
85
+ - lib/ood_packaging/build_box/docker-image/RPM-GPG-KEY-ondemand
86
+ - lib/ood_packaging/build_box/docker-image/Rakefile
87
+ - lib/ood_packaging/build_box/docker-image/inituidgid.sh.erb
88
+ - lib/ood_packaging/build_box/docker-image/install.sh.erb
89
+ - lib/ood_packaging/build_box/docker-image/setuser.rb
90
+ - lib/ood_packaging/options.rb
91
+ - lib/ood_packaging/package.rb
92
+ - lib/ood_packaging/rake_task.rb
93
+ - lib/ood_packaging/string_ext.rb
94
+ - lib/ood_packaging/tasks.rb
95
+ - lib/ood_packaging/utils.rb
96
+ - lib/ood_packaging/version.rb
97
+ homepage: https://github.com/OSC/ondemand-packaging
98
+ licenses:
99
+ - MIT
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 2.2.0
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">"
113
+ - !ruby/object:Gem::Version
114
+ version: 1.3.1
115
+ requirements: []
116
+ rubygems_version: 3.2.33
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: Open OnDemand packaging library
120
+ test_files: []