@@ -15,8 +15,8 @@ def build
15
15
prepare
16
16
generate_deb_src_files
17
17
create_container
18
- # run_pbuilder
19
- # copy_build_from_container
18
+ run_pbuilder
19
+ copy_build_from_container
20
20
cleanup
21
21
end
22
22
@@ -45,7 +45,7 @@ def create_container
45
45
46
46
create_opts = " -v #{ @pgpm_dir } :/root/pgpm"
47
47
create_opts += ":z" if selinux_enabled?
48
- create_opts += " --privileged"
48
+ create_opts += " --privileged --annotation run.oci.keep_original_groups=1 "
49
49
create_opts += " --name #{ @container_name } #{ @image_name } "
50
50
51
51
puts " Creating and starting container #{ @container_name } "
@@ -55,18 +55,31 @@ def create_container
55
55
56
56
def generate_deb_src_files
57
57
puts "Generating debian files..."
58
- Dir . mkdir "#{ @pgpm_dir } /debian"
58
+ Dir . mkdir "#{ @pgpm_dir } /source/ debian"
59
59
[ :changelog , :control , :copyright , :files , :rules ] . each do |f |
60
- puts " -> #{ @pgpm_dir } /debian/#{ f } "
61
- File . write "#{ @pgpm_dir } /debian/#{ f } " , @spec . generate ( f )
60
+ puts " -> #{ @pgpm_dir } /source/ debian/#{ f } "
61
+ File . write "#{ @pgpm_dir } /source/ debian/#{ f } " , @spec . generate ( f )
62
62
end
63
- File . chmod 0740 , "#{ @pgpm_dir } /debian/rules" # rules file must be executable
63
+ File . chmod 0740 , "#{ @pgpm_dir } /source/ debian/rules" # rules file must be executable
64
64
end
65
65
66
66
def run_pbuilder
67
+ puts "Building a .deb package with pbuilder..."
68
+ cmd_pref = "podman exec -w /root/pgpm/source #{ @container_name } "
69
+ system ( "#{ cmd_pref } dpkg-buildpackage --build=source" )
70
+ exit ( 1 ) if $?. to_i > 0
71
+ dsc_fn = "#{ @spec . package . name } -#{ @spec . package . version . to_s } _0-1.dsc"
72
+ system ( "#{ cmd_pref } fakeroot pbuilder build ../#{ dsc_fn } " )
73
+ exit ( 1 ) if $?. to_i > 0
67
74
end
68
75
69
76
def copy_build_from_container
77
+ puts "Moving .deb file from podman container into current directory..."
78
+ cmd_pref = "podman exec #{ @container_name } "
79
+ arch = "amd64"
80
+ deb_fn = "#{ @spec . full_pkg_name } .deb"
81
+ system ( "#{ cmd_pref } mv /var/cache/pbuilder/result/#{ deb_fn } /root/pgpm/out/" )
82
+ FileUtils . mv ( "#{ @pgpm_dir } /out/#{ deb_fn } " , Dir . pwd )
70
83
end
71
84
72
85
def run_container_command ( cmd )
0 commit comments