Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added foreman-bootloaders-redhat-201705231433 #1656

Merged
merged 1 commit into from
Jun 19, 2017

Conversation

lzap
Copy link
Member

@lzap lzap commented May 29, 2017

This adds shim, grub and grub2 bootloaders of multiple architectures
(supported by RHEL) into a package. The ultimate goal is to allow our
users to install it and use it without pain of getting them extracted
from DVD installation ISOs or RPM packages or building their own
versions. Long term, we can also ship PXELinux once syslinux team does
new release (EFI was not yet released).

Please read the upstream site for more info:

https://github.com/theforeman/foreman-bootloaders

A change in Foreman has been recently merged which follows the new
naming pattern this package brings:

theforeman/foreman#4552

This package will be followed by "fedora" version which carries most recent
builds of these packages. I also plan to do changes in the installer to
leverage this package rather than copying or building Grub2 from scratch.
Package for Debian systems will be available for review shortly.

For plugin updates, please indicate which repos this should be built into:

  • Nightly
  • 1.15

@lzap
Copy link
Member Author

lzap commented May 29, 2017

Hmmm I need to find out how do I add a URL to annex:

[lzap@lzapx foreman-packaging]$ ./setup_sources.sh foreman-bootloaders-redhat
addurl foreman-bootloaders-redhat/foreman-bootloaders-redhat-201705231433.tar.bz2 
  while adding a new url to an already annexed file, failed to verify url exists: foreman-bootloaders-redhat-201705231433.tar.bz2
failed
git-annex: addurl: 1 failed

@lzap
Copy link
Member Author

lzap commented May 29, 2017

Ok had Source0 in non-URL format, that's why it failed.

@lzap
Copy link
Member Author

lzap commented May 29, 2017

Hmmm but it does exist:

12:18:27 + git-annex init
12:18:27 init  fatal: ref HEAD is not a symbolic ref
12:18:27 ok
12:18:27 (Recording state in git...)
12:18:27 + ./setup_sources.sh foreman-bootloaders-redhat
12:18:27 addurl foreman-bootloaders-redhat/foreman-bootloaders-redhat-201705231433.tar.bz2 
12:18:28   failed to verify url exists: http://github.com/theforeman/foreman-bootloaders/releases/download/201705231433/foreman-bootloaders-redhat-201705231433.tar.bz2
12:18:28 failed
12:18:28 git-annex: addurl: 1 failed

@lzap
Copy link
Member Author

lzap commented May 29, 2017

I think this has something to do with github HEAD request, when I try this against Apache2 httpd it works just ok locally.

[lzap@lzapx foreman-packaging]$ curl -I https://github.com/theforeman/foreman-bootloaders/releases/download/201705231433/foreman-bootloaders-redhat-201705231433.tar.bz2
HTTP/1.1 302 Found
Server: GitHub.com
Date: Mon, 29 May 2017 12:43:49 GMT
Content-Type: text/html; charset=utf-8
Status: 302 Found
Cache-Control: no-cache
Vary: X-PJAX
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/77895899/924f92ca-422c-11e7-9b38-b6ec646bcb17?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170529%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170529T124349Z&X-Amz-Expires=300&X-Amz-Signature=b3834d5be448f6f5be2385d1092012760df2e6f0a2f99d0dfb457f84b601f9ff&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dforeman-bootloaders-redhat-201705231433.tar.bz2&response-content-type=application%2Foctet-stream
X-UA-Compatible: IE=Edge,chrome=1
Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Fri, 29 May 2037 12:43:49 -0000; secure; HttpOnly
Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiMjg3NTRhZThkYmRlZThiYWViZmRmMWNmNTA3MmIzZGEiLCJzcHlfcmVwbyI6InRoZWZvcmVtYW4vZm9yZW1hbi1ib290bG9hZGVycyIsInNweV9yZXBvX2F0IjoxNDk2MDYxODI5fQ%3D%3D--5d6b8710cb7f873f0af09f5509ab0f955231241b; path=/; secure; HttpOnly
X-Request-Id: 0b1607d95e7b4cb1ec8392fba0040f9b
X-Runtime: 0.032996
Content-Security-Policy: default-src 'none'; base-uri 'self'; block-all-mixed-content; child-src render.githubusercontent.com; connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; img-src 'self' data: assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; media-src 'none'; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Public-Key-Pins: max-age=5184000; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho="; pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4="; pin-sha256="iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0="; pin-sha256="LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A="; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
Vary: Accept-Encoding
X-Served-By: 29885c8097c6d503a86029451b2e021c
X-GitHub-Request-Id: BBC6:2051:19162BC:2707F9A:592C1784

[lzap@lzapx foreman-packaging]$ curl -I https://lzap.fedorapeople.org/temp/foreman-bootloaders/foreman-bootloaders-fedora-201705231433.tar.bz2
HTTP/1.1 200 OK
Date: Mon, 29 May 2017 12:44:04 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload
Last-Modified: Tue, 23 May 2017 12:33:36 GMT
ETag: "28ef38-55030324b4800"
Accept-Ranges: bytes
Content-Length: 2682680
X-GitProject: (null)
AppTime: D=135
AppServer: people02.fedoraproject.org
Content-Type: application/x-bzip2

@lzap
Copy link
Member Author

lzap commented May 29, 2017

Changing distribution URL to http://downloads.theforeman.org/foreman-bootloaders/ instead of github.

Copy link
Member

@dLobatog dLobatog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lzap , this is an useful addition, it takes time to find these bootloaders if you don't know where to look for them. Let me know what you think about the comments inline

%define _binaries_in_noarch_packages_terminate_build 0

Name: foreman-bootloaders-redhat
Version: 201705231433
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not version 1?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is standard fedora packaging versioning scheme for "from SCM" aka "snapshot" which is I believe better than just number:

https://fedoraproject.org/wiki/Packaging:Versioning

Source0: http://downloads.theforeman.org/foreman-bootloaders/%{name}-%{version}.tar.bz2
BuildArch: noarch

Requires: /var/lib/tftpboot
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TFTP proxy does not need this directory, in fact my TFTP server path is /var/lib/tftproot. Would it be possible to get the directory from /etc/foreman-proxy/settings.d/tftp.yml ? There's an option tftproot in that file that specifies which directory the proxy will use.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What system are you on? For both RHEL and Fedora it's really tftpboot:

[lzap@lzapx ~]$ LC_ALL=C yum whatprovides /var/lib/tftproot
Last metadata expiration check: 1:55:32 ago on Tue May 30 12:09:43 2017.
Error: No Matches found
[lzap@lzapx ~]$ LC_ALL=C yum whatprovides /var/lib/tftpboot
Last metadata expiration check: 1:55:36 ago on Tue May 30 12:09:43 2017.
tftp-server-5.2-18.fc25.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
Repo        : @System

Copy link
Member

@dLobatog dLobatog May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on Fedora, but I changed it manually long ago to tftproot - my point is that it's configurable by the proxy, so the package should read that configuration instead of extracting in the default location

Copy link
Member Author

@lzap lzap May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To expand on this, both Fedora and RHEL are really /var/lib/tftpboot. That's also what we use in our installer (see tftp/manifests/params.pp). Also in the proxy it's the same default value:

config/settings.d/tftp.yml.example
5:#:tftproot: /var/lib/tftpboot

I think you have it wrong, unless you use Debian/Ubuntu where this path is different I believe @mmoll ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not a matter of right or wrong, it's completely configurable on the proxy and xinetd, the point is that the package should respect the existing configuration (otherwise it'd just not work, like on my installation). The default is the same in all operating systems AFAIK. Here are my config files:

https://gist.github.com/dLobatog/bd32aba094a91bf8b914a7f148d5db82

%{_sharedstatedir}/tftpboot/grub2/grubppc64le.elf
%{_sharedstatedir}/tftpboot/grub2/shimaa64.efi
%{_sharedstatedir}/tftpboot/grub2/shimia32-redhat.efi
%{_sharedstatedir}/tftpboot/grub2/grubppc64.efi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is 0b in the tgz, why is it necessary?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is supposed to be symlink to *elf files (two of them) to workaround this problem: http://projects.theforeman.org/issues/16706 I will verify if these are really symlinks and fix this if not.

%{_sharedstatedir}/tftpboot/grub2/shimia32-redhat.efi
%{_sharedstatedir}/tftpboot/grub2/grubppc64.efi
%{_sharedstatedir}/tftpboot/grub2/shimx64.efi
%{_sharedstatedir}/tftpboot/grub2/grubppc64le.efi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is 0b in the tgz, why is it necessary?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.



%files
%{_sharedstatedir}/tftpboot/grub/grubx64.efi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick, comparing this to the tgz contents is difficult, if it was alphabetically ordered it would be easier

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not sort files in the resulting tar by name, but I added this good idea: theforeman/foreman-bootloaders@dbdf41f


%install
install -d -m0755 %{buildroot}%{_sharedstatedir}/tftpboot
cp -p -r grub grub2 %{buildroot}%{_sharedstatedir}/tftpboot
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-p will preserve ownership by root, is that necessary or foreman-proxy would be more appropriate?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is from Foreman installation:

[root@hp-dl2x170g6-01 ~]# ll /var/lib/tftpboot -d
drwxr-xr-x. 6 root root 135 May 29 12:38 /var/lib/tftpboot
[root@hp-dl2x170g6-01 ~]# ll /var/lib/tftpboot
total 136
drwxr-xr-x. 2 foreman-proxy root   166 May 29 12:10 boot
-rw-r--r--. 1 root          root 20832 May 29 12:38 chain.c32
-rw-r--r--. 1 root          root 26268 May 29 12:38 memdisk
-rw-r--r--. 1 root          root 55140 May 29 12:38 menu.c32
drwxr-xr-x. 2 foreman-proxy root     6 May 29 12:38 poap.cfg
-rw-r--r--. 1 root          root 26826 May 29 12:38 pxelinux.0
drwxr-xr-x. 2 foreman-proxy root   189 May 29 12:56 pxelinux.cfg
drwxr-xr-x. 2 foreman-proxy root     6 May 29 12:38 ztp.cfg

This is from Foreman 1.15 actually:

[root@zzzap ~]# ll /var/lib/tftpboot -d
drwxr-xr-x. 8 root root 177 30. kvě 16.09 /var/lib/tftpboot
[root@zzzap ~]# ll /var/lib/tftpboot
celkem 172
drwxr-xr-x. 2 foreman-proxy root     6 30. kvě 16.09 boot
drwxr-xr-x. 2 foreman-proxy root     6 30. kvě 16.09 grub
drwxr-xr-x. 2 foreman-proxy root    57 30. kvě 16.10 grub2
-rw-r--r--. 1 root          root 20704 30. kvě 16.03 chain.c32
-rw-r--r--. 1 root          root 33628 30. kvě 16.03 mboot.c32
-rw-r--r--. 1 root          root 26140 30. kvě 16.03 memdisk
-rw-r--r--. 1 root          root 55012 30. kvě 16.03 menu.c32
drwxr-xr-x. 2 foreman-proxy root     6 30. kvě 16.09 poap.cfg
drwxr-xr-x. 2 foreman-proxy root     6 30. kvě 16.09 pxelinux.cfg
-rw-r--r--. 1 root          root 26764 30. kvě 16.03 pxelinux.0
drwxr-xr-x. 2 foreman-proxy root     6 30. kvě 16.09 ztp.cfg

You are right, I need to make sure that both grub and grub2 dirs are owned by foreman-proxy with 7xx perms, I will explicitly change that. New dependency will be required there.

@lzap
Copy link
Member Author

lzap commented May 30, 2017

Ok pushed, reordered and added explicit owner, added require and buildrequire for foreman-proxy user.

@lzap
Copy link
Member Author

lzap commented May 31, 2017

Ok new version that installs into /usr/share/ and now we have extra tftpboot subpackage that hardlinks files into /var/lib/tftpboot. Installation, upgrade and removal works as expected (files are deleted from there). This should work smoothly with puppet.

[root@zzzap ~]# find /usr/share/foreman-bootloaders-redhat/ /var/lib/tftpboot/
/usr/share/foreman-bootloaders-redhat/
/usr/share/foreman-bootloaders-redhat/grub
/usr/share/foreman-bootloaders-redhat/grub/grubia32.efi
/usr/share/foreman-bootloaders-redhat/grub/grubx64.efi
/usr/share/foreman-bootloaders-redhat/grub2
/usr/share/foreman-bootloaders-redhat/grub2/grubaa64.efi
/usr/share/foreman-bootloaders-redhat/grub2/grubia32.efi
/usr/share/foreman-bootloaders-redhat/grub2/grubppc64.efi
/usr/share/foreman-bootloaders-redhat/grub2/grubppc64.elf
/usr/share/foreman-bootloaders-redhat/grub2/grubppc64le.efi
/usr/share/foreman-bootloaders-redhat/grub2/grubppc64le.elf
/usr/share/foreman-bootloaders-redhat/grub2/grubx64.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimaa64-redhat.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimaa64.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimia32-redhat.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimia32.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimx64-redhat.efi
/usr/share/foreman-bootloaders-redhat/grub2/shimx64.efi
/var/lib/tftpboot/
/var/lib/tftpboot/chain.c32
/var/lib/tftpboot/mboot.c32
/var/lib/tftpboot/menu.c32
/var/lib/tftpboot/memdisk
/var/lib/tftpboot/pxelinux.0
/var/lib/tftpboot/pxelinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default
/var/lib/tftpboot/grub2
/var/lib/tftpboot/grub2/grub.cfg
/var/lib/tftpboot/grub2/shim.efi
/var/lib/tftpboot/grub2/grubaa64.efi
/var/lib/tftpboot/grub2/grubia32.efi
/var/lib/tftpboot/grub2/grubppc64.efi
/var/lib/tftpboot/grub2/grubppc64.elf
/var/lib/tftpboot/grub2/grubppc64le.efi
/var/lib/tftpboot/grub2/grubppc64le.elf
/var/lib/tftpboot/grub2/grubx64.efi
/var/lib/tftpboot/grub2/shimaa64.efi
/var/lib/tftpboot/grub2/shimaa64-redhat.efi
/var/lib/tftpboot/grub2/shimia32.efi
/var/lib/tftpboot/grub2/shimia32-redhat.efi
/var/lib/tftpboot/grub2/shimx64.efi
/var/lib/tftpboot/grub2/shimx64-redhat.efi
/var/lib/tftpboot/boot
/var/lib/tftpboot/ztp.cfg
/var/lib/tftpboot/poap.cfg
/var/lib/tftpboot/cat.c32
/var/lib/tftpboot/cmd.c32
/var/lib/tftpboot/config.c32
/var/lib/tftpboot/cpuid.c32
/var/lib/tftpboot/cpuidtest.c32
/var/lib/tftpboot/disk.c32
/var/lib/tftpboot/dmitest.c32
/var/lib/tftpboot/elf.c32
/var/lib/tftpboot/ethersel.c32
/var/lib/tftpboot/gfxboot.c32
/var/lib/tftpboot/gpxecmd.c32
/var/lib/tftpboot/gpxelinux.0
/var/lib/tftpboot/hdt.c32
/var/lib/tftpboot/host.c32
/var/lib/tftpboot/ifcpu.c32
/var/lib/tftpboot/ifcpu64.c32
/var/lib/tftpboot/ifplop.c32
/var/lib/tftpboot/int18.com
/var/lib/tftpboot/kbdmap.c32
/var/lib/tftpboot/linux.c32
/var/lib/tftpboot/ls.c32
/var/lib/tftpboot/lua.c32
/var/lib/tftpboot/memdump.com
/var/lib/tftpboot/meminfo.c32
/var/lib/tftpboot/pcitest.c32
/var/lib/tftpboot/pmload.c32
/var/lib/tftpboot/poweroff.com
/var/lib/tftpboot/pwd.c32
/var/lib/tftpboot/pxechain.com
/var/lib/tftpboot/reboot.c32
/var/lib/tftpboot/rosh.c32
/var/lib/tftpboot/sanboot.c32
/var/lib/tftpboot/sdi.c32
/var/lib/tftpboot/sysdump.c32
/var/lib/tftpboot/ver.com
/var/lib/tftpboot/vesainfo.c32
/var/lib/tftpboot/vesamenu.c32
/var/lib/tftpboot/vpdtest.c32
/var/lib/tftpboot/whichsys.c32
/var/lib/tftpboot/zzjson.c32
/var/lib/tftpboot/grub
/var/lib/tftpboot/grub/grubia32.efi
/var/lib/tftpboot/grub/grubx64.efi

Copy link
Member

@dLobatog dLobatog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lzap Thanks for the update! I left a comment about the Requires, it should be on the tftpboot package.

Source0: http://downloads.theforeman.org/foreman-bootloaders/%{name}-%{version}.tar.bz2
BuildArch: noarch

Requires: /var/lib/tftpboot
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Requires should probably be moved now to the tftpboot package

@lzap
Copy link
Member Author

lzap commented Jun 4, 2017

Done, also few more changes to polish some warnings.

@dLobatog
Copy link
Member

dLobatog commented Jun 5, 2017

👍 from me, @ehelms , @domcleal @mmoll are the usual committers in here

@ehelms
Copy link
Member

ehelms commented Jun 5, 2017

I can get this added and built, I was a little curious about why the split out to the sub-package? Is it so you can use and install foreman-bootloaders-redhat on any ole system you want but for installation on a foreman proxy you instead want to install the foreman-bootloaders-redhat-tftpboot RPM?

@lzap
Copy link
Member Author

lzap commented Jun 6, 2017

@ehelms thanks for testing, the idea is to install just foreman-bootloaders-redhat and have the installer to copy the required files into TFTP root, but for smooth experience in 1.15 where it's too late for such an installer changes, we will ship a subpackage that will make copies of the files from /usr/share/ into the TFTP root folder, so users can simply install this and work is done.

Guys I need to get this in this week in order to match downstream deadlines, we've been working hard on this. If there are no other objections, let's merge this. Thanks!

@dLobatog
Copy link
Member

dLobatog commented Jun 6, 2017

@ehelms The point is that -redhat-tftpboot saves you the hassle of copying the files to the default location (/var/lib/tftpboot/). In most installations this package will work just fine. However if you have a custom directory for TFTP, say '/var/lib/pxestuff', the -redhat-tftpboot package wouldn't do anything.

It's a convenience we can do at the packaging level for users following the default directory for TFTP given that installer changes are a no-no at this point of 1.15.

@ehelms
Copy link
Member

ehelms commented Jun 13, 2017

[test]

@ehelms
Copy link
Member

ehelms commented Jun 14, 2017

@lzap instead of a new PR, can you update this one to update the comps so this gets included? as well as update the appropriate rel-eng/tito.props section for the tag(s) ?

@lzap
Copy link
Member Author

lzap commented Jun 19, 2017

Done, added to Foreman Core EL7/F24 comps and whitelists. This needs to be installed next to foreman-proxy package.

@lzap
Copy link
Member Author

lzap commented Jun 19, 2017

Was wondering if @mmoll can help me with Debian package, this is very relevant in Debian context. Having ability to install Red Hat patched Grub2 would be big plus as Debian does not carry MAC address based config search.

@ehelms ehelms merged commit 5c78e3f into theforeman:rpm/develop Jun 19, 2017
@lzap lzap deleted the rpm/develop-fbl1 branch June 19, 2017 20:37
@ekohl
Copy link
Member

ekohl commented Sep 6, 2017

This might be late to the party but why name it foreman-bootloaders-redhat? Do you intend to distribute foreman-bootloaders-debian in RPMs or foreman-bootloaders-redhat on Debian?

@lzap
Copy link
Member Author

lzap commented Sep 6, 2017

Well, I have no current plans to build Debian loaders, but this naming allows this. Yes.

@ekohl
Copy link
Member

ekohl commented Sep 6, 2017

So in short we should always install foreman-bootloaders-redhat even on Debian? I can assume that in the installer?

@lzap
Copy link
Member Author

lzap commented Sep 6, 2017

Yes that's the plan. Debian builds won't currently work due to missing patches, see

https://github.com/theforeman/foreman-bootloaders#ubuntu-and-debian-support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants