Merge ~paelzer/ubuntu/+source/ipxe:merge-ipxe-groovy-36a4c85-5 into ubuntu/+source/ipxe:debian/sid

Proposed by Christian Ehrhardt 
Status: Merged
Approved by: Christian Ehrhardt 
Approved revision: 1c10dbf0f174c2d1b64bbbcf753617f124c076ca
Merge reported by: Christian Ehrhardt 
Merged at revision: 1c10dbf0f174c2d1b64bbbcf753617f124c076ca
Proposed branch: ~paelzer/ubuntu/+source/ipxe:merge-ipxe-groovy-36a4c85-5
Merge into: ubuntu/+source/ipxe:debian/sid
Diff against target: 1711 lines (+1299/-148)
13 files modified
debian/changelog (+443/-0)
debian/control (+15/-2)
debian/copyright (+560/-136)
debian/grub-ipxe.install (+3/-0)
debian/grub-ipxe.postinst (+1/-1)
debian/grub-ipxe.postrm (+3/-3)
debian/ipxe.install (+0/-3)
debian/patches/0005-strip-802.1Q-VLAN-0-priority-tags.patch (+121/-0)
debian/patches/handle-dhcp-nack.patch (+43/-0)
debian/patches/series (+2/-0)
debian/rules (+27/-1)
debian/tree/ipxe/etc/grub.d/20_ipxe (+15/-2)
debian/util/check-rom-sizes (+66/-0)
Reviewer Review Type Date Requested Status
Andreas Hasenack Approve
Canonical Server Pending
git-ubuntu developers Pending
Review via email: mp+386372@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Download full text (3.8 KiB)

PPA: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/4116/+packages

FYI I've had some debug enabled to ensure the non EFI roms kept https enabled:
70398 grep -H __feature_https src/bin-i386-pcbios/*.tmp.map src/bin-x86_64-efi/*drv*.map || /bin/true
70399 src/bin-i386-pcbios/808610d3.rom.tmp.map: 0x0000000000027b10 __feature_https
70400 src/bin-i386-pcbios/808610d3.rom.tmp.map:00027b10 g O .textdata»00000004 .hidden __feature_https
70401 src/bin-i386-pcbios/82540em.rom.tmp.map: 0x0000000000027b10 __feature_https
70402 src/bin-i386-pcbios/82540em.rom.tmp.map:00027b10 g O .textdata»·00000004 .hidden __feature_https
70403 src/bin-i386-pcbios/eepro100.rom.tmp.map: 0x00000000000277fc __feature_https
70404 src/bin-i386-pcbios/eepro100.rom.tmp.map:000277fc g O .textdata»00000004 .hidden __feature_https
70405 src/bin-i386-pcbios/ipxe.lkrn.tmp.map: 0x00000000000bdfe0 __feature_https
70406 src/bin-i386-pcbios/ipxe.lkrn.tmp.map:000bdfe0 g O .textdata»···00000004 .hidden __feature_https
70407 src/bin-i386-pcbios/ipxe.pxe.tmp.map: 0x00000000000be100 __feature_https
70408 src/bin-i386-pcbios/ipxe.pxe.tmp.map:000be100 g O .textdata»00000004 .hidden __feature_https
70409 src/bin-i386-pcbios/ns8390.rom.tmp.map: 0x0000000000027330 __feature_https
70410 src/bin-i386-pcbios/ns8390.rom.tmp.map:00027330 g O .textdata»··00000004 .hidden __feature_https
70411 src/bin-i386-pcbios/pcnet32.rom.tmp.map: 0x0000000000027490 __feature_https
70412 src/bin-i386-pcbios/pcnet32.rom.tmp.map:00027490 g O .textdata»·00000004 .hidden __feature_https
70413 src/bin-i386-pcbios/rtl8139.rom.tmp.map: 0x0000000000027c50 __feature_https
70414 src/bin-i386-pcbios/rtl8139.rom.tmp.map:00027c50 g O .textdata»·00000004 .hidden __feature_https
70415 src/bin-i386-pcbios/undionly.kkpxe.tmp.map: 0x0000000000027190 __feature_https
70416 src/bin-i386-pcbios/undionly.kkpxe.tmp.map:00027190 g O .textdata»··00000004 .hidden __feature_https
70417 src/bin-i386-pcbios/undionly.kpxe.tmp.map: 0x0000000000027190 __feature_https
70418 src/bin-i386-pcbios/undionly.kpxe.tmp.map:00027190 g O .textdata»···00000004 .hidden __feature_https
70419 src/bin-i386-pcbios/virtio-net.rom.tmp.map: 0x0000000000027bd0 __feature_https
70420 src/bin-i386-pcbios/virtio-net.rom.tmp.map:00027bd0 g O .textdata»··00000004 .hidden __feature_https
70421 src/bin-i386-pcbios/vmxnet3.rom.tmp.map: 0x0000000000026f10 __feature_https
70422 src/bin-i386-pcbios/vmxnet3.rom.tmp.map:00026f10 g O .textdata»·00000004 .hidden __feature_https
70423 dh override_dh_auto_build

That is exactly as intended in the bug.

The rest is a merge that is somewhat complex due to us being ahead for 2 years and thereby gathering a bunch of Delta. A lot can be dropped now - it just is a long squashing session from split to logical.

To help understan...

Read more...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Note: It might be very useful to push this to groovy soon (as part of the merge) and continue the SRU after it has stayed there for a while without negative reports (maybe after my PTO, where I also can better fix up any mess that I might cause).

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

FYI: I checked one more thing with the maintainer - https://bugs.launchpad.net/ipxe/+bug/1882671/comments/22
 about the toggling of config=QEMU

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Ok, will do this in several steps.

First bit:

This commit is missing the mention of d/control:
commit f52d57afafbd9d2de5905263d701f87b374194dc
Author: Christian Ehrhardt <email address hidden>
Date: Tue Aug 29 15:11:37 2017 +0200

    d/util/check-rom-sizes, d/rules: check sizes of generated roms (LP: #1713490)

    Signed-off-by: Christian Ehrhardt <email address hidden>

diff --git a/debian/control b/debian/control
index d9b6e476..c85178bf 100644
--- a/debian/control
+++ b/debian/control
@@ -33,6 +33,7 @@ Package: ipxe-qemu
 Architecture: all
 Multi-Arch: foreign
 Depends: ${misc:Depends}
+Breaks: qemu-system-x86 (<< 1:2.11+dfsg-1ubuntu1~)
 Description: PXE boot firmware - ROM images for qemu
  iPXE is network boot firmware. It supports a variety of network cards,
  including some wireless cards, and variety of network protocols (traditional
....

From an older d/changelog, it's this probably: "- d/control: break older qemu versions to ensure the new sized roms"

Do we still need this breaks, btw?

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Since this is a complicated merge, I'm going through the logical in more detail. I think you missed a consolidation step (on purpose perhaps?) as there are commits adding patches and later one removing them:

2ae0e4801eadae1d064ef1c50cfc608ec200caea
DROP (Debian): drop patches no more needed with 20180124.fbe8c52d
This drops:
0002-Don-t-use-libiberty.patch
0004-fix_no-pie_option.patch
0006-build-Fix-.ids.o-creation-for-drivers-not-in-the-all.patch
0007-build-Remove-nested-my-declaration.patch

Which are indeed not in pkg/ubuntu/devel at the moment. But they were added by these commits also inside the logical chunk:
60ca2e05 0002-Don-t-use-libiberty.patch
d4ca5cdc 0004-fix_no-pie_option.patch
c9ce6c19 0006 and 0007 patches

So, since the logical (and I'm talking about lp1884758/old/debian..lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3) adds them and removes them later on, couldn't these just be removed from logical entirely, and not just "scheduled" for removal when you apply this on top of new/debian?

review: Needs Information
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

If yes, with less commits, this would make the merge simpler, and the range-diff output also simples.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Basic regression tests look good (the one error is known until qemu 5.5 lands)

prep (x86_64) : Pass 25 F/S/N 0/0/0 - RC 0 (18 min 68875 lin)
migrate (x86_64) : Pass 575 F/S/N 1/0/0 - RC 1 (167 min 442854 lin)
cross (x86_64) : Pass 52 F/S/N 0/1/3 - RC 0 (105 min 93386 lin)
misc (x86_64) : Pass 146 F/S/N 0/0/0 - RC 0 (71 min 82562 lin)

560bc9a... by Christian Ehrhardt 

d/util/check-rom-sizes, d/rules: check sizes of generated roms (LP: #1713490)

Signed-off-by: Christian Ehrhardt <email address hidden>

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The non mentioning of d/control in f52d57afafbd9d2de5905263d701f87b374194dc is a good catch.
In fact the CL is right about what "should happen". This is a delta that can be dropped after Focal.
I've modified the commit and adapted the changelog.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

pushed the updated branch

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

@andreas about the addition&removal of patches like 0002-Don-t-use-libiberty.patch
This was due to the "going ahead of Debian". In fact at some point we reverted to go onto an earlier version, this made these patches "again being required" and later on when moving forward got removed again.

This wasn't exactly the same as when we usually add/remove patches. And I thought the history is more readable the way I presented them.

If you want I can squash them away.
I have made the former logical tag -v6 and pushed a new logical tag.

P.S. That is the reason there are multiple logical..-v* tags in case you ever wonder how I came from split to the final --logical (to be able to trace the steps).

This squashed the following commits into a no-op:
  d4ca5cdc4 DROP (upsteram): - d/p/0004-fix_no-pie_option.patch: correct -no-pie option to build without pie
  60ca2e055 DROP (Debian) - This brings back debian/patches/0002-Don-t-use-libiberty.patch as needed on the older source.
  c9ce6c192 DROP (upstream): fix FTBFS with newer perl versions
  2ae0e4801 DROP (Debian): drop patches no more needed with 20180124.fbe8c52d

The updated lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3 should match what you have expected.

To ssh://git.launchpad.net/~paelzer/ubuntu/+source/ipxe
 * [new tag] lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3-v6 -> lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3-v6
 + 6ced0f108...a0fbb52a7 lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3 -> lp1884758/logical/1.0.0+git-20190109.133f4c4-0ubuntu3 (forced update)

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The discussion on the HTTPS/config enabling/disabling clarified that we don't need to change the config=qemu behavior on legacy roms.

I adapted the changelog and the former
commit 8227ee968a9480153c0419fc15a92dc716826712
Author: Christian Ehrhardt <email address hidden>
Date: Wed Jun 24 13:24:30 2020 +0200

    - d/rules: only enable https on non EFI roms and CONFIG=qemu only on EFI
      roms. This lets EFI handle https itself and avoids breakage in TPL
      manipulations (LP: #1882671)

I force pushed the branch to reflect this

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Thanks for -v6, it made the range-diff easier to read and follow. I saw the version revert, and patches coming back, and later being dropped, and I think it's a perfectly valid case for removing the commits, as consolidating the logical is one of the objectives of that step. I understand that it's quite the squashing, and might make a reviewer wonder about what happened. When I do something like that, I usually mention it in detail in the MP. It's just a matter of preference, and I used your -v6 tag for this review.

Continuing...

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Having checked out the merge branch, with all our changes on top of new/debian, I see that the enable-https patch, from this commit (first one on top of new/debian):

commit 2fa82ccd07a6f1360bc357cf1a45490e347c35c0
Author: Christian Ehrhardt <email address hidden>
Date: Thu Aug 17 08:28:19 2017 +0200

    - d/p/enable-https.patch: Enable HTTPS support.

Is being removed in this commit:
commit 50a9def24c715aa5e44800c2068e43511d14238f
Author: Christian Ehrhardt <email address hidden>
Date: Wed Jun 24 13:24:30 2020 +0200

    - d/rules: only enable https on non EFI roms. This lets EFI handle https
      itself and avoids breakage in TPL manipulations (LP: #1882671)

Two things:

a) the 50a9def24c715aa5e44800c2068e43511d14238f commit is not mentioning that the enable-https.patch patch is being removed

b) d/changelog still lists the enable-https.patch patch as being part of the delta:
  * Merge with Debian unstable (LP: #1884758). Remaining changes:
    - d/p/enable-https.patch: Enable HTTPS support.

1c10dbf... by Christian Ehrhardt 

changelog: mention that d/p/enable-https.patch was replaced

Signed-off-by: Christian Ehrhardt <email address hidden>

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks, I amended the change-log to properly mention it being dropped including the reason.
And I reworded the commit that removes it to mention as well.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Ok, very big changes, I'm afraid that's all I can check, that the delta was carried with the changes you said you did, and nothing else stands out to me. Thanks for tackling this, should be less hard the next time!

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

"should be less hard the next time"
- Absolutely-

Thanks for suffering with me :-)

To ssh://git.launchpad.net/~usd-import-team/ubuntu/+source/ipxe
 * [new tag] upload/1.0.0+git-20190125.36a4c85-5ubuntu1 -> upload/1.0.0+git-20190125.36a4c85-5ubuntu1

Uploading to ubuntu (via ftp to upload.ubuntu.com):
  Uploading ipxe_1.0.0+git-20190125.36a4c85-5ubuntu1.dsc: done.
  Uploading ipxe_1.0.0+git-20190125.36a4c85.orig.tar.xz: done.
  Uploading ipxe_1.0.0+git-20190125.36a4c85-5ubuntu1.debian.tar.xz: done.
  Uploading ipxe_1.0.0+git-20190125.36a4c85-5ubuntu1_source.buildinfo: done.
  Uploading ipxe_1.0.0+git-20190125.36a4c85-5ubuntu1_source.changes: done.
Successfully uploaded packages.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

merged

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 43e7fe9..dc0899c 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,62 @@
6+ipxe (1.0.0+git-20190125.36a4c85-5ubuntu1) groovy; urgency=medium
7+
8+ * Merge with Debian unstable (LP: #1884758). Remaining changes:
9+ - Split grub integration from ipxe->grub-ipxe.
10+ - d/control: add package and adapt dependencies
11+ - d/[grub-]ipxe.install: move some files to grub-ipxe
12+ - rename d/ipxe.post* to d/grub-ipxe-post*
13+ [updated to match 1.0.0+git-20190125.36a4c85-5]
14+ - d/util/check-rom-sizes, d/rules: check sizes of generated roms to avoid
15+ accidentally breaking KVM live migration on updates/fixes.
16+ [updated for new and dropped rom file names]
17+ - debian/copyright: update copyright information to satisfy lintian
18+ dep5 checks (LP: 1747071)
19+ - Build ROMs for QEMU with CONFIG=qemu (LP: 1789319)
20+ [updated to match 1.0.0+git-20190125.36a4c85-5 and be more verbose]
21+ - debian/patches/handle-dhcp-nack.patch: Handle DHCP NAK and send a
22+ re-discover. (LP 1707999)
23+ - d/p/0005-strip-802.1Q-VLAN-0-priority-tags.patch: Strip 802.1Q VLAN 0
24+ priority tags; Fixes PXE when VLAN tag is 0. (LP: 1805920)
25+ - d/tree/ipxe/etc/grub.d/20_ipxe: Make grub-ipxe work under UEFI
26+ (LP: 1811496)
27+ - Use ipxe.efi under UEFI
28+ - Save default entry when iPXE is selected
29+ - d/tree/ipxe/etc/grub.d/20_ipxe: Identify ipxe grub menu entry in
30+ an easier way (LP: 1858374)
31+ * Dropped changes
32+ - new upstream release 20190109.133f4c4 [superseded by new upstream]
33+ - new upstream release 20180124.fbe8c52d [superseded by new upstream]
34+ - Revert to the former git snapshot 20150424.a25a16d
35+ [superseded by new upstream]
36+ - This brings back debian/patches/0002-Don-t-use-libiberty.patch as needed
37+ on the older source.
38+ - Adapt d/p/0001-rom-change-banner-timeout.diff.patch to former state to
39+ match old source.
40+ - drop d/p/util-elf2efi-GNU_SOURCE.patch as it was not needed on old
41+ source
42+ - Fix FTBFS with newer perl versions [upstream]
43+ - d/p/0004-fix_no-pie_option.patch: correct -no-pie option
44+ to build without pie
45+ [ still carried before ]
46+ - Install ne.rom as pxe-ne2k_isa.rom
47+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
48+ - d/ipxe-qemu.links: compat link for ne.rom
49+ [ no more needed, was an old xen hvmloader bug ]
50+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu
51+ to /usr/lib/ipxe/qemu.
52+ [ no more needed, transition from trusty ]
53+ - add new rom for vmxnet3 (LP 1737211) [in Debian now]
54+ - Add e1000e firmware for qemu. (closes 884240) [in Debian now]
55+ - d/control: ipxe-qemu breaks qemu-system-x86 <2.11 [no more needed]
56+ - d/p/enable-https.patch: Enable HTTPS support.
57+ [resolved per rom type in d/rules now]
58+ * Added changes
59+ - d/rules: only enable https on non EFI roms. This lets EFI handle https
60+ itself and avoids breakage in TPL manipulations (LP: #1882671)
61+ - d/util/check-rom-sizes: fix if size does exactly match
62+
63+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 23 Jun 2020 16:23:52 +0200
64+
65 ipxe (1.0.0+git-20190125.36a4c85-5) unstable; urgency=medium
66
67 * Cleanup src/bin correctly. (closes: #952275)
68@@ -32,6 +91,179 @@ ipxe (1.0.0+git-20190125.36a4c85-1) unstable; urgency=medium
69
70 -- Bastian Blank <waldi@debian.org> Sat, 09 Feb 2019 17:41:37 +0100
71
72+ipxe (1.0.0+git-20190109.133f4c4-0ubuntu3) focal; urgency=medium
73+
74+ [Alkis Georgopoulos]
75+ * d/tree/ipxe/etc/grub.d/20_ipxe: Make grub-ipxe work under UEFI
76+ (LP: #1811496)
77+ - Use ipxe.efi under UEFI
78+ - Save default entry when iPXE is selected
79+ [Sharon Dagan]
80+ - d/tree/ipxe/etc/grub.d/20_ipxe: Identify ipxe grub menu entry in
81+ an easier way (LP: #1858374)
82+
83+ -- Rafael David Tinoco <rafaeldtinoco@ubuntu.com> Mon, 06 Jan 2020 18:59:25 +0000
84+
85+ipxe (1.0.0+git-20190109.133f4c4-0ubuntu2) disco; urgency=medium
86+
87+ * Add e1000e firmware for qemu. (closes: #884240)
88+ - d/ipxe-qemu.install: install new rom
89+ - d/util/check-rom-sizes: check new rom
90+
91+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 19 Feb 2019 17:17:04 +0100
92+
93+ipxe (1.0.0+git-20190109.133f4c4-0ubuntu1) disco; urgency=medium
94+
95+ * Merge new upstream release 1.0.0+git-20190109.133f4c4
96+ Remaining Changes:
97+ - d/p/enable-https.patch: Enable HTTPS support.
98+ - Split grub integration from ipxe->grub-ipxe.
99+ - d/control: add package and adapt dependencies
100+ - d/[grub-]ipxe.install: move some files to grub-ipxe
101+ - rename d/ipxe.post* to d/grub-ipxe-post*
102+ - Install ne.rom as pxe-ne2k_isa.rom
103+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
104+ - d/ipxe-qemu.links: compat link for ne.rom
105+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu
106+ to /usr/lib/ipxe/qemu.
107+ - d/util/check-rom-sizes, d/rules: check sizes of generated roms to avoid
108+ accidentially breaking KVM live migration on updates/fixes.
109+ - handling of efi rom size changes in Bionic (LP 1713490)
110+ - d/util/check-rom-sizes: bump efi rom sizes
111+ - d/control: break older qemu versions to ensure the new sized roms
112+ are only associated with new qemu versions.
113+ - debian/patches/handle-dhcp-nack.patch: Handle DHCP NAK and send a
114+ re-discover. (LP 1707999)
115+ - updated debian/patches/util-elf2efi-GNU_SOURCE.patch to match latest
116+ upstream.
117+ - add new rom for vmxnet3 (LP 1737211)
118+ - d/ipxe-qemu.install: install new rom
119+ are only associated with new qemu versions.
120+ - Build ROMs for QEMU with CONFIG=qemu (LP: 1789319)
121+ - d/p/0005-strip-802.1Q-VLAN-0-priority-tags.patch: Strip 802.1Q VLAN 0
122+ priority tags; Fixes PXE when VLAN tag is 0. (LP: 1805920)
123+ - debian/copyright: update copyright information to satisfy lintian
124+ dep5 checks (LP: 1747071)
125+ * Dropped changes (upstream):
126+ - debian/patches/fix-elf2efi-plt-relocation.diff: Cherry-pick fix from
127+ ipxe devel mailing list to handle R_X86_64_PLT32 relocations.
128+
129+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 09 Jan 2019 11:09:29 +0100
130+
131+ipxe (1.0.0+git-20180124.fbe8c52d-0ubuntu5) disco; urgency=medium
132+
133+ * d/p/0005-strip-802.1Q-VLAN-0-priority-tags.patch: Strip 802.1Q VLAN 0
134+ priority tags; Fixes PXE when VLAN tag is 0. (LP: #1805920)
135+
136+ -- Andres Rodriguez <andreserl@ubuntu.com> Mon, 10 Dec 2018 16:26:42 -0500
137+
138+ipxe (1.0.0+git-20180124.fbe8c52d-0ubuntu4) cosmic; urgency=medium
139+
140+ * Build ROMs for QEMU with CONFIG=qemu (LP: #1789319)
141+
142+ -- Julian Andres Klode <juliank@ubuntu.com> Mon, 10 Sep 2018 14:56:17 +0200
143+
144+ipxe (1.0.0+git-20180124.fbe8c52d-0ubuntu3) cosmic; urgency=medium
145+
146+ * debian/patches/fix-elf2efi-plt-relocation.diff: Cherry-pick fix from
147+ ipxe devel mailing list to handle R_X86_64_PLT32 relocations.
148+
149+ -- Julian Andres Klode <juliank@ubuntu.com> Mon, 10 Sep 2018 14:27:35 +0200
150+
151+ipxe (1.0.0+git-20180124.fbe8c52d-0ubuntu2) bionic; urgency=medium
152+
153+ * debian/copyright: update copyright information to satisfy lintian
154+ dep5 checks (LP: #1747071)
155+ * d/p/enable-https.patch: adding proper dep3 header
156+
157+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Mon, 05 Feb 2018 15:09:28 +0100
158+
159+ipxe (1.0.0+git-20180124.fbe8c52d-0ubuntu1) bionic; urgency=medium
160+
161+ * Merge new upstream release 20180124.fbe8c52d with last "new"
162+ Ubuntu packaging 1.0.0+git-20161027.b991c67-1ubuntu1 and the
163+ fixes since 1.0.0+git-20161027.b991c67+really20150424.a25a16d-1ubuntu1
164+ Remaining Changes:
165+ - d/p/enable-https.patch: Enable HTTPS support.
166+ - Split grub integration from ipxe->grub-ipxe.
167+ - d/control: add package and adapt dependencies
168+ - d/[grub-]ipxe.install: move some files to grub-ipxe
169+ - rename d/ipxe.post* to d/grub-ipxe-post*
170+ - Install ne.rom as pxe-ne2k_isa.rom
171+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
172+ - d/ipxe-qemu.links: compat link for ne.rom
173+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu
174+ to /usr/lib/ipxe/qemu.
175+ - d/util/check-rom-sizes, d/rules: check sizes of generated roms to avoid
176+ accidentially breaking KVM live migration on updates/fixes.
177+ - debian/patches/handle-dhcp-nack.patch: Handle DHCP NAK and send a
178+ re-discover. (LP 1707999)
179+ * Dropped changes (upstream):
180+ - d/p/0004-fix_no-pie_option.patch: correct -no-pie option
181+ to build without pie
182+ * Added Changes:
183+ - updated debian/patches/util-elf2efi-GNU_SOURCE.patch to match latest
184+ upstream.
185+ - add new rom for vmxnet3 (LP: #1737211)
186+ - d/ipxe-qemu.install: install new rom
187+ - d/util/check-rom-sizes: check new rom as well
188+ - handling of efi rom size changes (LP: #1713490)
189+ - d/util/check-rom-sizes: bump efi rom sizes
190+ - d/control: break older qemu versions to ensure the new sized roms
191+ are only associated with new qemu versions.
192+ - d/util/check-rom-sizes: update description
193+
194+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 24 Jan 2018 15:00:36 +0100
195+
196+ipxe (1.0.0+git-20161027.b991c67+really20150424.a25a16d-1ubuntu2) artful; urgency=medium
197+
198+ * debian/patches/handle-dhcp-nack.patch: Handle DHCP NAK and send a
199+ re-discover. (LP: #1707999)
200+
201+ -- Andres Rodriguez <andreserl@ubuntu.com> Thu, 12 Oct 2017 16:25:52 -0400
202+
203+ipxe (1.0.0+git-20161027.b991c67+really20150424.a25a16d-1ubuntu1) artful; urgency=medium
204+
205+ * Revert to the former git snapshot 20150424.a25a16d to fix changed
206+ rom sizes that break cross release migrations (LP: #1713490).
207+ This makes it effectively identical to 1.0.0+git-20150424.a25a16d-1ubuntu2
208+ in regard to the upstream source, but keeps the changes to debian/*.
209+ On next merge we need to either ensure that rom sizes don't change, or
210+ that we can encapsulate that in qemu so that on forward migration it is
211+ taken care off.
212+ - This brings back debian/patches/0002-Don-t-use-libiberty.patch as needed
213+ on the older source.
214+ - Adapt d/p/0001-rom-change-banner-timeout.diff.patch to former state to
215+ match old source.
216+ - drop d/p/util-elf2efi-GNU_SOURCE.patch as it was not needed on old
217+ source
218+ * Fix FTBFS with newer perl versions (were dropped due to the revert above
219+ but is needed to build in artful)
220+ - d/p/0006-build-Fix-.ids.o-creation-for-drivers-not-in-the-all.patch
221+ - d/p/0007-build-Remove-nested-my-declaration.patch
222+ * d/util/check-rom-sizes, d/rules: check sizes of generated roms to avoid
223+ accidentially breaking KVM live migration on updates/fixes.
224+
225+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 29 Aug 2017 10:37:57 +0200
226+
227+ipxe (1.0.0+git-20161027.b991c67-1ubuntu1) artful; urgency=medium
228+
229+ * Merge from Debian stable. Remaining changes:
230+ - d/p/enable-https.patch: Enable HTTPS support.
231+ - Split grub integration from ipxe->grub-ipxe.
232+ - d/control: add package and adapt dependencies
233+ - d/[grub-]ipxe.install: move some files to grub-ipxe
234+ - rename d/ipxe.post* to d/grub-ipxe-post*
235+ - Install ne.rom as pxe-ne2k_isa.rom
236+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
237+ - d/ipxe-qemu.links: compat link for ne.rom
238+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu
239+ to /usr/lib/ipxe/qemu.
240+ - d/p/0004-fix_no-pie_option.patch: correct -no-pie option
241+ to build without pie
242+
243+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 17 Aug 2017 08:40:41 +0200
244+
245 ipxe (1.0.0+git-20161027.b991c67-1) unstable; urgency=medium
246
247 * New snapshot. (closes: #799216)
248@@ -39,6 +271,24 @@ ipxe (1.0.0+git-20161027.b991c67-1) unstable; urgency=medium
249
250 -- Bastian Blank <waldi@debian.org> Sun, 13 Nov 2016 13:35:11 +0100
251
252+ipxe (1.0.0+git-20150424.a25a16d-1ubuntu2) yakkety; urgency=medium
253+
254+ * debian/patches/0004-fix_no-pie_option.patch: correct -no-pie
255+ option to build without pie
256+
257+ -- Steve Beattie <sbeattie@ubuntu.com> Thu, 28 Apr 2016 23:55:40 -0700
258+
259+ipxe (1.0.0+git-20150424.a25a16d-1ubuntu1) xenial; urgency=medium
260+
261+ * Merge from Debian unstable. Remaining changes:
262+ - d/p/enable-https.patch: Enable HTTPS support.
263+ - d/control,grub-ipxe*: Split grub integration from ipxe->grub-ipxe.
264+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu to
265+ /usr/lib/ipxe/qemu.
266+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
267+
268+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 08 Feb 2016 20:35:02 -0800
269+
270 ipxe (1.0.0+git-20150424.a25a16d-1) unstable; urgency=medium
271
272 * New snapshot.
273@@ -53,6 +303,35 @@ ipxe (1.0.0+git-20150424.a25a16d-1) unstable; urgency=medium
274
275 -- Bastian Blank <waldi@debian.org> Wed, 29 Apr 2015 21:00:55 +0200
276
277+ipxe (1.0.0+git-20141004.86285d1-1ubuntu3) vivid; urgency=medium
278+
279+ * ipxe.install: remove one more line which was supposed to be split out
280+ into grub-ipxe.install.
281+
282+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 09 Feb 2015 11:01:16 -0600
283+
284+ipxe (1.0.0+git-20141004.86285d1-1ubuntu2) vivid; urgency=medium
285+
286+ * ipxe.install: remove /boot/ipxe.efi and ipxe.lkrn which are split out
287+ into grub-ipxe.install. (LP: #1418751)
288+
289+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 09 Feb 2015 10:51:22 -0600
290+
291+ipxe (1.0.0+git-20141004.86285d1-1ubuntu1) vivid; urgency=medium
292+
293+ * Merge from Debian unstable. (LP: #1409057) Remaining changes:
294+ - d/p/enable-https.patch: Enable HTTPS support.
295+ - d/control,grub-ipxe*: Split grub integration from ipxe->grub-ipxe.
296+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu to
297+ /usr/lib/ipxe/qemu.
298+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
299+ * Dropped changes, alternative fix in Debian:
300+ - d/control: Add libiberty-dev to BD's to fix FTBFS.
301+ - drop isolinux from build-deps and patch to augment ISOLINUX_BIN
302+ - Drop transitional kvm-ipxe package since we are past 14.04
303+
304+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 12 Jan 2015 10:32:26 -0600
305+
306 ipxe (1.0.0+git-20141004.86285d1-1) unstable; urgency=medium
307
308 * New snapshot.
309@@ -67,12 +346,50 @@ ipxe (1.0.0+git-20131111.c3d1e78-2.1) unstable; urgency=medium
310
311 -- Juli?n Moreno Pati?o <julian@debian.org> Wed, 10 Sep 2014 11:06:28 -0500
312
313+ipxe (1.0.0+git-20131111.c3d1e78-2ubuntu2) utopic; urgency=medium
314+
315+ * Fix FTBFS in utopic due to movement of isolinux.bin:
316+ - add isolinux to build-deps
317+ - add /usr/lib/ISOLINUX/isolinux.bin to ISOLINUX_BIN in
318+ src/arch/i386/Makefile
319+
320+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 12 Aug 2014 12:56:06 -0500
321+
322+ipxe (1.0.0+git-20131111.c3d1e78-2ubuntu1) trusty; urgency=low
323+
324+ * Merge from Debian unstable. Remaining changes:
325+ - d/p/enable-https.patch: Enable HTTPS support.
326+ - d/control,grub-ipxe*: Split grub integration from ipxe->grub-ipxe.
327+ - d/control: Transition kvm-ipxe->ipxe-qemu for LTS->LTS upgrade.
328+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu to
329+ /usr/lib/ipxe/qemu.
330+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
331+ * Dropped changes, alternative fix in Debian:
332+ - d/control: Add libiberty-dev to BD's to fix FTBFS.
333+
334+ -- James Page <james.page@ubuntu.com> Mon, 06 Jan 2014 09:55:25 +0000
335+
336 ipxe (1.0.0+git-20131111.c3d1e78-2) unstable; urgency=medium
337
338 * Don't use libiberty. (closes: #730910)
339
340 -- Bastian Blank <waldi@debian.org> Sun, 22 Dec 2013 20:05:03 +0100
341
342+ipxe (1.0.0+git-20131111.c3d1e78-1ubuntu1) trusty; urgency=low
343+
344+ * Merge from Debian unstable, remaining changes:
345+ - d/p/enable-https.patch: Enable HTTPS support.
346+ - d/control,grub-ipxe*: Split grub integration from ipxe->grub-ipxe.
347+ - d/control: Transition kvm-ipxe->ipxe-qemu for LTS->LTS upgrade.
348+ - d/ipxe-qemu.links: Add compat links from /usr/share/qemu to
349+ /usr/lib/ipxe/qemu.
350+ - d/ipxe-qemu.install: Install ne.rom as pxe-ne2k_isa.rom.
351+ * All other changes dropped in preference to upstream Debian
352+ packaging.
353+ * d/control: Add libiberty-dev to BD's to fix FTBFS.
354+
355+ -- James Page <james.page@ubuntu.com> Tue, 26 Nov 2013 17:50:47 +0000
356+
357 ipxe (1.0.0+git-20131111.c3d1e78-1) unstable; urgency=low
358
359 * New snapshot.
360@@ -91,6 +408,21 @@ ipxe (1.0.0+git-20131111.c3d1e78-1) unstable; urgency=low
361
362 -- Bastian Blank <waldi@debian.org> Thu, 21 Nov 2013 18:26:32 +0100
363
364+ipxe (1.0.0+git-20130710.936134e-0ubuntu1) saucy; urgency=low
365+
366+ * New upstream snapshot:
367+ - d/p/fix-bp-bug.patch: Dropped; included in snapshot.
368+ - d/p/baseroms-target.diff: Dropped; no longer required.
369+ - Refreshed all other patches.
370+ * d/rules: Use date for snapshot prefix instead of increment.
371+ * d/p/qemu-target-fix-names.diff: Consolidated into qemu-target.diff.
372+ * d/p/*: Tidied redundant patches.
373+ * d/control,rules: Move roms for use with qemu-kvm to ipxe-qemu, update
374+ kvm-ipxe to be transitional.
375+ * d/control: Drop Depends from grub-ipxe to ipxe as its not required.
376+
377+ -- James Page <james.page@ubuntu.com> Wed, 10 Jul 2013 12:23:26 +0100
378+
379 ipxe (1.0.0+git-20120202.f6840ba-3) unstable; urgency=low
380
381 * Fix to break qemu-system instead of qemu. (closes: #658982)
382@@ -119,6 +451,116 @@ ipxe (1.0.0+git-20120202.f6840ba-1) unstable; urgency=low
383
384 -- Bastian Blank <waldi@debian.org> Thu, 02 Feb 2012 12:40:26 +0100
385
386+ipxe (1.0.0+git-4.d6b0b76-0ubuntu3) saucy; urgency=low
387+
388+ * debian/patches/fix-bp-bug.patch: fixes FTBFS (LP: #1194914)
389+
390+ -- Yolanda Robla <yolanda.robla@canonical.com> Thu, 27 Jun 2013 11:22:43 +0200
391+
392+ipxe (1.0.0+git-4.d6b0b76-0ubuntu2) raring; urgency=low
393+
394+ * d/control: Add ipxe-qemu virtual package for use with qemu.
395+
396+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 20 Nov 2012 16:08:21 -0600
397+
398+ipxe (1.0.0+git-4.d6b0b76-0ubuntu1) raring; urgency=low
399+
400+ * New upstream snapshot:
401+ - d/p/iscsi*.patch: Dropped - included in snapshot.
402+ - Refreshed all other patches.
403+ * d/p/enable-https.patch: Enable HTTPS support (LP: #1025239).
404+
405+ -- James Page <james.page@ubuntu.com> Wed, 14 Nov 2012 15:47:31 +0000
406+
407+ipxe (1.0.0+git-3.55f6c88-0ubuntu5) quantal; urgency=low
408+
409+ * Fix input/output errors when using ipxe to boot from iSCSI storage
410+ (LP: #1045923).
411+ - d/p/iscsi-{report-reponse,send-padding-inline}.patch: Cherry picked
412+ patches from upstream VCS which resolve two issues with iSCSI protocol
413+ handling.
414+
415+ -- James Page <james.page@ubuntu.com> Thu, 06 Sep 2012 21:46:54 +0100
416+
417+ipxe (1.0.0+git-3.55f6c88-0ubuntu4) quantal; urgency=low
418+
419+ * debian/ipxe.install: add ipxe.dsk and ipxe.usb (LP: #1014005)
420+
421+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 21 Aug 2012 14:48:44 -0500
422+
423+ipxe (1.0.0+git-3.55f6c88-0ubuntu3) quantal; urgency=low
424+
425+ [ Serge Hallyn ]
426+ * debian/patches/rom-set-banner-timeout-0.diff: set rom banner timeout
427+ to 0. (LP: #921230)
428+
429+ [ Stefan Bader ]
430+ * Modify the ROM names in of the allqemu target to use 8086100e instead
431+ of e1000_82540 and ne instead of ne2k_isa (LP: #948323)
432+
433+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 28 May 2012 11:57:48 -0500
434+
435+ipxe (1.0.0+git-3.55f6c88-0ubuntu2) quantal; urgency=low
436+
437+ * debian/grub.d/25_ipxe: removed the space after "Found iPXE image"
438+ to match other grub-update script fragments (LP: #990378).
439+ * debian/control: fixed some Lintian warnings.
440+ - TODO: lots of missing Copyright information.
441+
442+ -- Martin-Éric Racine <q-funk@ubuntu.com> Sat, 28 Apr 2012 11:41:28 +0300
443+
444+ipxe (1.0.0+git-3.55f6c88-0ubuntu1) precise; urgency=low
445+
446+ [ Marc Cluet ]
447+ * New upstream snapshot.
448+ * Added rules for automatic git branch refresh.
449+ * Changed rom target from allbaseroms to allroms.
450+ - recommended behaviour by upstream, building all full roms is neither
451+ recommended nor a desired user experience
452+ * Added new target allqemu for qemu package.
453+ - created new build target to build full rom drivers just for qemu
454+ package purposes
455+ * Cleaned lintian errors from debian package
456+ - Removed brace extension in ipxe.install
457+ - Updated standards to 3.9.2
458+ - Fixed copyright file not machine readable
459+
460+ [ James Page ]
461+ * Updated get-orig-source target to generate git snapshots inline
462+ with upstream version numbering being used by this package.
463+
464+ -- Marc Cluet <marc.cluet@ubuntu.com> Fri, 10 Feb 2012 16:21:23 +0000
465+
466+ipxe (1.0.0+git-2.149b50-1ubuntu4) precise; urgency=low
467+
468+ * Add missing Breaks/Replaces for kvm-ipxe split in
469+ 1.0.0+git-2.149b50-1ubuntu3 (LP: #905099).
470+
471+ -- Robie Basak <robie.basak@ubuntu.com> Fri, 16 Dec 2011 10:43:54 +0000
472+
473+ipxe (1.0.0+git-2.149b50-1ubuntu3) precise; urgency=low
474+
475+ * add new binary package, kvm-ipxe. The roms needed by kvm-ipxe are now only
476+ provided by it, so
477+ - make ipxe depend on kvm-ipxe.
478+ - ipxe.links: reverse the links
479+
480+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Fri, 25 Nov 2011 12:58:48 -0600
481+
482+ipxe (1.0.0+git-2.149b50-1ubuntu2) precise; urgency=low
483+
484+ * Provide a new binary package, grub-ipxe - for ipxe usage via grub.
485+ - LP: #814038, Closes #626238
486+
487+ -- Ben Howard <ben.howard@canonical.com> Thu, 25 Aug 2011 11:03:52 -0600
488+
489+ipxe (1.0.0+git-2.149b50-1ubuntu1) oneiric; urgency=low
490+
491+ * Link Roms into /usr/share/qemu for consumption by
492+ qemu-kvm.
493+
494+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Thu, 18 Aug 2011 13:34:38 -0500
495+
496 ipxe (1.0.0+git-2.149b50-1) unstable; urgency=low
497
498 * New snapshot.
499@@ -139,3 +581,4 @@ ipxe (1.0.0+git-1.293e34-1) unstable; urgency=low
500 - Remove linda infiniband driver.
501
502 -- Bastian Blank <waldi@debian.org> Sun, 03 Apr 2011 11:32:56 +0200
503+
504diff --git a/debian/control b/debian/control
505index 5b99994..fea0238 100644
506--- a/debian/control
507+++ b/debian/control
508@@ -1,7 +1,8 @@
509 Source: ipxe
510 Section: admin
511 Priority: optional
512-Maintainer: Bastian Blank <waldi@debian.org>
513+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
514+XSBC-Original-Maintainer: Bastian Blank <waldi@debian.org>
515 Build-Depends:
516 debhelper-compat (= 12),
517 dpkg-source-gitarchive,
518@@ -16,7 +17,7 @@ Vcs-Browser: https://salsa.debian.org/waldi/ipxe
519 Package: ipxe
520 Architecture: all
521 Multi-Arch: foreign
522-Depends: ${misc:Depends}
523+Depends: ipxe-qemu, grub-ipxe, ${misc:Depends}
524 Description: PXE boot firmware
525 iPXE is network boot firmware. It supports a variety of network cards,
526 including some wireless cards, and variety of network protocols (traditional
527@@ -44,3 +45,15 @@ Description: PXE boot firmware - ROM images for qemu
528 .
529 This package provides boot code for the qemu emulated network cards in
530 as boot ROMs.
531+
532+Package: grub-ipxe
533+Architecture: all
534+Suggests: grub-pc (>= 1.96)
535+Depends: ${misc:Depends}
536+Description: Network booting from GRUB using iPXE
537+ iPXE is network boot firmware. It supports a variety of network cards,
538+ including some wireless cards, and variety of network protocols (traditional
539+ DHCP, BOOTP and TFTP and also HTTP, iSCSI, SAN via FCoE and Infiniband). It
540+ supports scripting.
541+ .
542+ This package adds a menu entry to grub2 for network booting using iPXE.
543diff --git a/debian/copyright b/debian/copyright
544index 3593fa7..2b11fb4 100644
545--- a/debian/copyright
546+++ b/debian/copyright
547@@ -3,85 +3,501 @@ Upstream-Name: ipxe
548 Source: git://git.ipxe.org/ipxe.git
549
550 Files: *
551-License: GPL-2+
552+Copyright: *No copyright*
553+License: GPL-2+ or UBDL
554
555-Files:
556- src/arch/i386/prefix/dskprefix.S
557- src/core/pcmcia.c
558- src/core/string.c
559- src/core/stringextra.c
560- src/drivers/infiniband/*_PRM.h
561- src/drivers/infiniband/qib_*_regs.h
562- src/drivers/net/cs89x0.*
563- src/drivers/net/e1000/*
564- src/drivers/net/e1000e/*
565- src/drivers/net/hfa384x.h
566- src/drivers/net/igb/*
567- src/drivers/net/igbvf/*
568- src/drivers/net/myri10ge*
569+Files: src/drivers/net/hfa384x.h
570 src/drivers/net/p80211hdr.h
571- src/drivers/net/phantom/nxhal_nic_interface.h
572- src/drivers/net/rtl818x/*
573- src/drivers/net/skge.*
574- src/drivers/net/sky2.*
575- src/drivers/net/tg3.*
576- src/drivers/net/vxge/*
577 src/drivers/net/wlan_compat.h
578- src/include/i82365.h
579- src/include/ipxe/list.h
580- src/include/ipxe/pci.h
581- src/include/ipxe/pci_ids.h
582- src/include/mii.h
583- src/include/stddef.h
584- src/include/string.h
585+Copyright: 1999, AbsoluteValue Systems, Inc.
586+License: GPL-2
587+
588+Files: src/arch/x86/prefix/dskprefix.S
589+Copyright: 1991-1992, Linus Torvalds
590+License: GPL-2
591+
592+Files: src/core/stringextra.c
593+Copyright: 1991-1992, Linus Torvalds
594+ 2004, Tobias Lorenz
595+License: GPL-2
596+
597+Files: src/drivers/infiniband/MT25218_PRM.h
598+ src/drivers/infiniband/MT25408_PRM.h
599+Copyright: 2004, Mellanox Technologies Ltd.
600+License: GPL-2
601+
602+Files: src/drivers/infiniband/qib_7220_regs.h
603+ src/drivers/infiniband/qib_7322_regs.h
604+Copyright: 2008-2009, QLogic Corporation.
605+License: GPL-2
606+
607+Files: src/arch/x86/core/basemem_packet.c
608+ src/arch/x86/core/cachedhcp.c
609+ src/arch/x86/core/rdtsc_timer.c
610+ src/arch/x86/core/runtime.c
611+ src/arch/x86/drivers/net/undi.c
612+ src/arch/x86/drivers/net/undiload.c
613+ src/arch/x86/drivers/net/undinet.c
614+ src/arch/x86/drivers/net/undionly.c
615+ src/arch/x86/drivers/net/undipreload.c
616+ src/arch/x86/drivers/net/undirom.c
617+ src/arch/x86/interface/pcbios/basemem.c
618+ src/arch/x86/interface/pcbios/bios_console.c
619+ src/arch/x86/interface/pcbios/e820mangler.S
620+ src/arch/x86/interface/pcbios/fakee820.c
621+ src/arch/x86/interface/pcbios/hidemem.c
622+ src/arch/x86/interface/pcbios/memmap.c
623+ src/arch/x86/interface/pcbios/pnpbios.c
624+ src/arch/x86/hci/commands/pxe_cmd.c
625+ src/arch/x86/image/bootsector.c
626+ src/arch/x86/image/bzimage.c
627+ src/arch/x86/image/elfboot.c
628+ src/arch/x86/image/initrd.c
629+ src/arch/x86/image/multiboot.c
630+ src/arch/x86/image/pxe_image.c
631+ src/arch/x86/image/sdi.c
632+ src/arch/x86/interface/pcbios/bios_reboot.c
633+ src/arch/x86/interface/pcbios/bios_smbios.c
634+ src/arch/x86/interface/pcbios/bios_timer.c
635+ src/arch/x86/interface/pcbios/int13.c
636+ src/arch/x86/interface/pcbios/memtop_umalloc.c
637+ src/arch/x86/interface/pcbios/pcibios.c
638+ src/arch/x86/interface/pcbios/rtc_entropy.c
639+ src/arch/x86/interface/pcbios/rtc_time.c
640+ src/arch/x86/interface/pcbios/vesafb.c
641+ src/arch/x86/interface/pxe/pxe_call.c
642+ src/arch/x86/interface/pxe/pxe_entry.S
643+ src/arch/x86/interface/pxe/pxe_file.c
644+ src/arch/x86/interface/pxe/pxe_loader.c
645+ src/arch/x86/interface/pxe/pxe_preboot.c
646+ src/arch/x86/interface/pxe/pxe_tftp.c
647+ src/arch/x86/interface/pxe/pxe_udp.c
648+ src/arch/x86/interface/pxe/pxe_undi.c
649+ src/arch/x86/interface/vmware/guestinfo.c
650+ src/arch/x86/interface/vmware/guestrpc.c
651+ src/arch/x86/interface/vmware/vmconsole.c
652+ src/arch/x86/interface/vmware/vmware.c
653+ src/arch/x86/prefix/exeprefix.S
654+ src/arch/x86/prefix/isaromprefix.S
655+ src/arch/x86/prefix/libprefix.S
656+ src/arch/x86/prefix/mromprefix.S
657+ src/arch/x86/prefix/pciromprefix.S
658+ src/arch/x86/prefix/unlzma.S
659+ src/arch/x86/transitions/liba20.S
660+ src/arch/x86/transitions/librm_test.c
661+ src/arch/x86/core/cpuid.c
662+ src/arch/x86/core/cpuid_settings.c
663+ src/arch/x86/core/debugcon.c
664+ src/arch/x86/core/pcidirect.c
665+ src/arch/x86/core/pic8259.c
666+ src/arch/x86/core/pit8254.c
667+ src/arch/x86/core/vram_settings.c
668+ src/arch/x86/core/x86_bigint.c
669+ src/arch/x86/core/x86_io.c
670+ src/arch/x86/core/x86_string.c
671+ src/arch/x86/core/x86_tcpip.c
672+ src/arch/x86/drivers/hyperv/hyperv.c
673+ src/arch/x86/drivers/xen/hvm.c
674+ src/arch/x86/hci/commands/cpuid_cmd.c
675+ src/arch/x86/include/bits/string.h
676+ src/arch/x86/interface/efi/efix86_nap.c
677+ src/interface/efi/efi_entropy.c
678+ src/interface/efi/efiprefix.c
679+ src/interface/efi/efidrvprefix.c
680+ src/core/acpi.c
681+ src/core/ansicol.c
682+ src/core/ansicoldef.c
683+ src/core/ansiesc.c
684+ src/core/assert.c
685+ src/core/base16.c
686+ src/core/base64.c
687+ src/core/basename.c
688+ src/core/bitmap.c
689+ src/core/blockdev.c
690+ src/core/cpio.c
691+ src/core/ctype.c
692+ src/core/cwuri.c
693+ src/core/debug.c
694+ src/core/debug_md5.c
695+ src/core/device.c
696+ src/core/downloader.c
697+ src/core/edd.c
698+ src/core/exec.c
699+ src/core/fbcon.c
700+ src/core/getkey.c
701+ src/core/getopt.c
702+ src/core/image.c
703+ src/core/init.c
704+ src/core/interface.c
705+ src/core/iobuf.c
706+ src/core/isqrt.c
707+ src/core/job.c
708+ src/core/linebuf.c
709+ src/core/lineconsole.c
710+ src/core/list.c
711+ src/core/log.c
712+ src/core/malloc.c
713+ src/core/memmap_settings.c
714+ src/core/menu.c
715+ src/core/monojob.c
716+ src/core/null_reboot.c
717+ src/core/null_sanboot.c
718+ src/core/null_time.c
719+ src/core/nvo.c
720+ src/core/open.c
721+ src/core/params.c
722+ src/core/parseopt.c
723+ src/core/pending.c
724+ src/core/pinger.c
725+ src/core/pixbuf.c
726+ src/core/posix_io.c
727+ src/core/process.c
728+ src/core/profile.c
729+ src/core/refcnt.c
730+ src/core/resolv.c
731+ src/core/settings.c
732+ src/core/string.c
733+ src/core/time.c
734+ src/core/timer.c
735+ src/core/uri.c
736+ src/core/uuid.c
737+ src/core/version.c
738+ src/core/vsprintf.c
739+ src/core/wchar.c
740+ src/core/xfer.c
741+ src/core/xferbuf.c
742+ src/crypto/asn1.c
743+ src/crypto/bigint.c
744+ src/crypto/cbc.c
745+ src/crypto/certstore.c
746+ src/crypto/chap.c
747+ src/crypto/cms.c
748+ src/crypto/crypto_null.c
749+ src/crypto/deflate.c
750+ src/crypto/drbg.c
751+ src/crypto/entropy.c
752+ src/crypto/hash_df.c
753+ src/crypto/hmac.c
754+ src/crypto/hmac_drbg.c
755+ src/crypto/md5.c
756+ src/crypto/null_entropy.c
757+ src/crypto/ocsp.c
758+ src/crypto/privkey.c
759+ src/crypto/random_nz.c
760+ src/crypto/rbg.c
761+ src/crypto/rootcert.c
762+ src/crypto/rsa.c
763+ src/crypto/sha1.c
764+ src/crypto/sha224.c
765+ src/crypto/sha256.c
766+ src/crypto/sha384.c
767+ src/crypto/sha512.c
768+ src/crypto/sha512_224.c
769+ src/crypto/sha512_256.c
770+ src/crypto/x509.c
771+ src/drivers/bitbash/bitbash.c
772+ src/drivers/bitbash/i2c_bit.c
773+ src/drivers/bitbash/spi_bit.c
774+ src/drivers/block/ata.c
775+ src/drivers/block/scsi.c
776+ src/drivers/bus/cdc.c
777+ src/drivers/bus/pci.c
778+ src/drivers/bus/pci_settings.c
779+ src/drivers/bus/pcibackup.c
780+ src/drivers/bus/pcivpd.c
781+ src/drivers/bus/usb.c
782+ src/drivers/infiniband/mlx_bitops.h
783+ src/drivers/infiniband/qib7322.c
784+ src/drivers/infiniband/qib7322.h
785+ src/drivers/infiniband/qib_genbits.pl
786+ src/drivers/net/dm96xx.c
787+ src/drivers/net/ecm.c
788+ src/drivers/net/efi/nii.c
789+ src/drivers/net/efi/snp.c
790+ src/drivers/net/efi/snpnet.c
791+ src/drivers/net/efi/snponly.c
792+ src/drivers/net/intel.c
793+ src/drivers/net/intelx.c
794+ src/drivers/net/ipoib.c
795+ src/drivers/net/mii.c
796+ src/drivers/net/myson.c
797+ src/drivers/net/natsemi.c
798+ src/drivers/net/ncm.c
799+ src/drivers/net/netfront.c
800+ src/drivers/net/netvsc.c
801+ src/drivers/net/phantom/nx_bitops.h
802+ src/drivers/net/realtek.c
803+ src/drivers/net/skeleton.c
804+ src/drivers/net/smsc75xx.c
805+ src/drivers/net/vmxnet3.c
806+ src/drivers/net/vmxnet3.h
807+ src/drivers/nvs/nvs.c
808+ src/drivers/nvs/nvsvpd.c
809+ src/drivers/nvs/spi.c
810+ src/drivers/nvs/threewire.c
811+ src/drivers/usb/ehci.c
812+ src/drivers/usb/usbhub.c
813+ src/drivers/usb/usbnet.c
814+ src/drivers/usb/xhci.c
815+ src/hci/commands/autoboot_cmd.c
816+ src/hci/commands/config_cmd.c
817+ src/hci/commands/console_cmd.c
818+ src/hci/commands/dhcp_cmd.c
819+ src/hci/commands/fcmgmt_cmd.c
820+ src/hci/commands/ifmgmt_cmd.c
821+ src/hci/commands/image_cmd.c
822+ src/hci/commands/image_trust_cmd.c
823+ src/hci/commands/ipstat_cmd.c
824+ src/hci/commands/login_cmd.c
825+ src/hci/commands/lotest_cmd.c
826+ src/hci/commands/menu_cmd.c
827+ src/hci/commands/neighbour_cmd.c
828+ src/hci/commands/nvo_cmd.c
829+ src/hci/commands/param_cmd.c
830+ src/hci/commands/pci_cmd.c
831+ src/hci/commands/ping_cmd.c
832+ src/hci/commands/profstat_cmd.c
833+ src/hci/commands/reboot_cmd.c
834+ src/hci/commands/route_cmd.c
835+ src/hci/commands/sanboot_cmd.c
836+ src/hci/commands/sync_cmd.c
837+ src/hci/commands/vlan_cmd.c
838+ src/hci/editstring.c
839+ src/hci/jumpscroll.c
840+ src/hci/mucurses/widgets/editbox.c
841+ src/hci/readline.c
842+ src/hci/shell.c
843+ src/hci/tui/login_ui.c
844+ src/hci/tui/menu_ui.c
845+ src/hci/tui/settings_ui.c
846+ src/image/efi_image.c
847+ src/image/elf.c
848+ src/image/png.c
849+ src/image/pnm.c
850+ src/image/script.c
851+ src/image/segment.c
852+ src/include/errno.h
853+ src/include/hci/ifmgmt_cmd.h
854+ src/include/ipxe/bitops.h
855+ src/include/ipxe/fip.h
856+ src/interface/bofm/bofm.c
857+ src/interface/efi/efi_autoboot.c
858+ src/interface/efi/efi_bofm.c
859+ src/interface/efi/efi_console.c
860+ src/interface/efi/efi_debug.c
861+ src/interface/efi/efi_driver.c
862+ src/interface/efi/efi_file.c
863+ src/interface/efi/efi_guid.c
864+ src/interface/efi/efi_hii.c
865+ src/interface/efi/efi_init.c
866+ src/interface/efi/efi_pci.c
867+ src/interface/efi/efi_reboot.c
868+ src/interface/efi/efi_smbios.c
869+ src/interface/efi/efi_snp.c
870+ src/interface/efi/efi_snp_hii.c
871+ src/interface/efi/efi_strings.c
872+ src/interface/efi/efi_time.c
873+ src/interface/efi/efi_timer.c
874+ src/interface/efi/efi_uaccess.c
875+ src/interface/efi/efi_umalloc.c
876+ src/interface/efi/efi_utils.c
877+ src/interface/efi/efi_wrap.c
878+ src/interface/hyperv/vmbus.c
879+ src/interface/linux/linux_entropy.c
880+ src/interface/linux/linux_pci.c
881+ src/interface/linux/linux_smbios.c
882+ src/interface/linux/linux_time.c
883+ src/interface/smbios/smbios.c
884+ src/interface/smbios/smbios_settings.c
885+ src/interface/xen/xenbus.c
886+ src/interface/xen/xenstore.c
887+ src/net/aoe.c
888+ src/net/arp.c
889+ src/net/dhcpopts.c
890+ src/net/dhcppkt.c
891+ src/net/eth_slow.c
892+ src/net/ethernet.c
893+ src/net/fakedhcp.c
894+ src/net/fc.c
895+ src/net/fcels.c
896+ src/net/fcns.c
897+ src/net/fcoe.c
898+ src/net/fcp.c
899+ src/net/fragment.c
900+ src/net/icmp.c
901+ src/net/icmpv4.c
902+ src/net/icmpv6.c
903+ src/net/infiniband.c
904+ src/net/infiniband/ib_cm.c
905+ src/net/infiniband/ib_mcast.c
906+ src/net/infiniband/ib_mi.c
907+ src/net/infiniband/ib_packet.c
908+ src/net/infiniband/ib_pathrec.c
909+ src/net/infiniband/ib_sma.c
910+ src/net/infiniband/ib_smc.c
911+ src/net/iobpad.c
912+ src/net/ipv6.c
913+ src/net/ndp.c
914+ src/net/neighbour.c
915+ src/net/netdev_settings.c
916+ src/net/netdevice.c
917+ src/net/nullnet.c
918+ src/net/pccrc.c
919+ src/net/ping.c
920+ src/net/rarp.c
921+ src/net/retry.c
922+ src/net/rndis.c
923+ src/net/socket.c
924+ src/net/tcp/ftp.c
925+ src/net/tcp/http.c
926+ src/net/tcp/httpcore.c
927+ src/net/tcp/https.c
928+ src/net/tcp/iscsi.c
929+ src/net/tcp/syslogs.c
930+ src/net/tls.c
931+ src/net/udp/dhcp.c
932+ src/net/udp/dhcpv6.c
933+ src/net/udp/slam.c
934+ src/net/udp/syslog.c
935+ src/net/udp/tftp.c
936+ src/net/validator.c
937+ src/net/vlan.c
938+ src/tests/base16_test.c
939+ src/tests/base64_test.c
940+ src/tests/bigint_test.c
941+ src/tests/bofm_test.c
942+ src/tests/byteswap_test.c
943+ src/tests/cms_test.c
944+ src/tests/crc32_test.c
945+ src/tests/deflate_test.c
946+ src/tests/digest_test.c
947+ src/tests/dns_test.c
948+ src/tests/entropy_sample.c
949+ src/tests/hash_df_test.c
950+ src/tests/hmac_drbg_test.c
951+ src/tests/ipv4_test.c
952+ src/tests/ipv6_test.c
953+ src/tests/list_test.c
954+ src/tests/math_test.c
955+ src/tests/md5_test.c
956+ src/tests/memcpy_test.c
957+ src/tests/memset_test.c
958+ src/tests/ocsp_test.c
959+ src/tests/pccrc_test.c
960+ src/tests/pixbuf_test.c
961+ src/tests/png_test.c
962+ src/tests/pnm_test.c
963+ src/tests/profile_test.c
964+ src/tests/rsa_test.c
965+ src/tests/setjmp_test.c
966+ src/tests/settings_test.c
967+ src/tests/sha1_test.c
968+ src/tests/sha256_test.c
969+ src/tests/sha512_test.c
970+ src/tests/string_test.c
971+ src/tests/tcpip_test.c
972+ src/tests/test.c
973+ src/tests/tests.c
974+ src/tests/time_test.c
975+ src/tests/uri_test.c
976+ src/tests/vsprintf_test.c
977+ src/tests/x509_test.c
978+ src/usr/autoboot.c
979+ src/usr/dhcpmgmt.c
980+ src/usr/fcmgmt.c
981+ src/usr/ifmgmt.c
982+ src/usr/imgmgmt.c
983+ src/usr/imgtrust.c
984+ src/usr/ipstat.c
985+ src/usr/lotest.c
986+ src/usr/neighmgmt.c
987+ src/usr/pingmgmt.c
988+ src/usr/profstat.c
989+ src/usr/prompt.c
990+ src/usr/pxemenu.c
991+ src/usr/route.c
992+ src/usr/route_ipv4.c
993+ src/usr/route_ipv6.c
994+ src/usr/sync.c
995+ src/util/Option/ROM.pm
996+ src/util/disrom.pl
997+ src/util/efifatbin.c
998+ src/util/efirom.c
999+ src/util/einfo.c
1000+ src/util/elf2efi.c
1001+ src/util/fixrom.pl
1002+ src/util/fnrec.pl
1003+ src/util/genkeymap.pl
1004+ src/util/licence.pl
1005+ src/util/mergerom.pl
1006+Copyright: 2004-2015, Michael Brown <mbrown@fensystems.co.uk>
1007+License: GPL-2+
1008+
1009+Files: src/drivers/net/cs89x0.*
1010+Copyright: Copyright, 1988-2008, Russell Nelson, Crynwr Software
1011 License: GPL-2
1012
1013 Files:
1014- src/crypto/axtls/aes.c
1015- src/crypto/axtls/bigint.h
1016- src/crypto/axtls/crypto.h
1017-License: LGPL-2+
1018+ src/drivers/net/igbvf/*
1019+Copyright: 1999, - 2008, Intel Corporation
1020+License: GPL-2
1021+
1022+Files: src/drivers/net/igbvf/igbvf_main.c
1023+Copyright: 2009, Intel Corporation
1024+ 2010, Eric Keller <ekeller@princeton.edu>
1025+ 2010, Red Hat Inc
1026+License: GPL-2
1027
1028 Files:
1029- src/crypto/axtls/bigint.c
1030- src/crypto/axtls/bigint_impl.h
1031- src/crypto/axtls/rsa.c
1032- src/crypto/axtls/sha1.c
1033-License: LGPL-2.1+
1034+ src/drivers/net/myri10ge*
1035+Copyright: 2005-2010, Myricom, Inc
1036+License: GPL-2
1037
1038 Files:
1039- src/drivers/net/ath5k/*
1040-Copyright:
1041- 2004-2009 Reyk Floeter <reyk@openbsd.org>
1042- 2006-2009 Nick Kossifidis <mickflemm@gmail.com>
1043- 2007-2008 Jiri Slaby <jirislaby@gmail.com>
1044- 2007-2008 Luis Rodriguez <mcgrof@winlab.rutgers.edu>
1045- 2007-2008 Matthew W. S. Bell <mentor@madwifi.org>
1046- 2007-2008 Michael Taylor <mike.taylor@apprion.com>
1047- 2007-2008 Pavel Roskin <proski@gnu.org>
1048- 2008-2009 Felix Fietkau <nbd@openwrt.org>
1049- 2009 Nick Kossifidis <mickflemm@gmail.com>
1050-License:
1051- Permission to use, copy, modify, and distribute this software for any
1052- purpose with or without fee is hereby granted, provided that the above
1053- copyright notice and this permission notice appear in all copies.
1054- .
1055- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1056- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1057- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1058- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1059- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1060- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1061- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1062+ src/drivers/net/rtl818x/rtl8180_grf5101.c
1063+ src/drivers/net/rtl818x/rtl8180_max2820.c
1064+ src/drivers/net/rtl818x/rtl8180_sa2400.c
1065+ src/drivers/net/rtl818x/rtl8185_rtl8225.c
1066+ src/drivers/net/rtl818x/rtl818x.c
1067+ src/drivers/net/rtl818x/rtl818x.h
1068+Copyright: 2004-2007, Andrea Merello <andreamrl@tiscali.it>
1069+ 2005-2007, Andrea Merello <andreamrl@tiscali.it>, et al
1070+License: GPL-2
1071+
1072+Files: src/drivers/net/skge.c
1073+ src/drivers/net/sky2.c
1074+Copyright: 2004-2005, Stephen Hemminger <shemminger@osdl.org>
1075+License: GPL-2
1076+
1077+Files: src/drivers/net/tg3/*
1078+Copyright: 2001-2003, Jeff Garzik (jgarzik@pobox.com)
1079+ 2001-2004, David S. Miller (davem@redhat.com)
1080+ 2004, Sun Microsystems Inc
1081+ 2000-2011, Broadcom Corporation
1082+License: GPL-2
1083+
1084+Files: src/drivers/net/vxge/*
1085+Copyright: 2002-2010, Neterion Inc
1086+License: GPL-2
1087+
1088+Files: src/include/i82365.h
1089+Copyright: 1999, David A. Hinds.
1090+License: GPL-2
1091+
1092+Files: src/include/mii.h
1093+Copyright: 1996, 1999, 2001, David S. Miller (davem@redhat.com)
1094+License: GPL-2
1095
1096 Files:
1097 src/drivers/bus/mca.c
1098 src/drivers/net/3c509.c
1099 src/drivers/net/3c529.c
1100+Copyright: *No copyright*
1101+License: BSD-2-clause
1102+
1103+Files:
1104 src/drivers/net/ns8390.h
1105- src/include/ipxe/ib_cmrc.h
1106- src/include/ipxe/ib_srp.h
1107- src/include/ipxe/srp.h
1108+Copyright: Martin Renters
1109 License: BSD-2-clause
1110
1111 Files: src/drivers/net/3c509.h
1112@@ -99,12 +515,7 @@ Copyright:
1113 1994 Herb Peyerl <hpeyerl@novatel.ca>
1114 1995 Serge Babkin
1115 2000 Shusuke Nisiyama <shu@athena.qe.eng.hokudai.ac.jp>
1116-License:
1117- This software may be used, modified, copied, distributed, and sold, in
1118- both source and binary form provided that the above copyright and these
1119- terms are retained. Under no circumstances are the authors responsible for
1120- the proper functioning of this software, nor do the authors assume any
1121- responsibility for damages incurred with its use.
1122+License: BSD-2-clause
1123
1124 Files: src/drivers/net/3c595.h
1125 Copyright:
1126@@ -116,39 +527,7 @@ Copyright:
1127 1999 LightSys Technology Services, Inc.
1128 1999 Steve Smith
1129 2009 Thomas Miletich
1130-License:
1131- This program may be re-distributed in source or binary form, modified,
1132- sold, or copied for any purpose, provided that the above copyright message
1133- and this text are included with all source copies or derivative works, and
1134- provided that the above copyright message and this text are included in the
1135- documentation of any binary-only distributions. This program is distributed
1136- WITHOUT ANY WARRANTY, without even the warranty of FITNESS FOR A PARTICULAR
1137- PURPOSE or MERCHANTABILITY. Please read the associated documentation
1138-
1139-Files: src/include/ipxe/ibft.h
1140-Copyright:
1141- 2007 Fen Systems Ltd
1142- 2004,2007 IBM Corporation
1143-License:
1144- Permission is hereby granted, free of charge, to any person
1145- obtaining a copy of this software and associated documentation
1146- files (the "Software"), to deal in the Software without
1147- restriction, including without limitation the rights to use, copy,
1148- modify, merge, publish, distribute, sublicense, and/or sell copies
1149- of the Software, and to permit persons to whom the Software is
1150- furnished to do so, subject to the following conditions:
1151- .
1152- The above copyright notice and this permission notice shall be
1153- included in all copies or substantial portions of the Software.
1154- .
1155- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1156- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1157- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1158- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
1159- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
1160- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1161- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1162- SOFTWARE.
1163+License: BSD-2-clause
1164
1165 Files:
1166 src/net/infiniband/ib_cmrc.c
1167@@ -157,9 +536,9 @@ Copyright: 2009 Fen Systems Ltd <mbrown@fensystems.co.uk>
1168 License: BSD-2-clause
1169
1170 Files:
1171- src/drivers/net/ath5k/ath5k.c
1172- src/drivers/net/ath5k/ath5k_rfkill.c
1173- src/drivers/net/ath5k/base.h
1174+ src/drivers/net/ath/ath5k/ath5k.c
1175+ src/drivers/net/ath/ath5k/ath5k_rfkill.c
1176+ src/drivers/net/ath/ath5k/base.h
1177 Copyright:
1178 2002-2007 Sam Leffler, Errno Consulting
1179 2004-2005 Atheros Communications, Inc.
1180@@ -167,16 +546,34 @@ Copyright:
1181 2007 Jiri Slaby <jirislaby@gmail.com>
1182 2007 Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
1183 2009 Tobias Doerffel <tobias.doerffel@gmail.com>
1184+ 2002-2007 Sam Leffler, Errno Consulting
1185 License: BSD-3-clause
1186
1187+Files:
1188+ src/include/ipxe/ib_cmrc.h
1189+ src/include/ipxe/ib_srp.h
1190+ src/include/ipxe/srp.h
1191+Copyright: *No copyright*
1192+License: BSD-2-clause
1193+
1194 Files: src/include/ipxe/efi/*
1195-Copyright:
1196+Copyright:
1197 2006-2010 Intel Corporation
1198 2008-2009 Apple
1199 License: BSD-3-clause
1200
1201-Files: src/include/ipxe/efi/efi_*
1202-License: GPL-2+
1203+
1204+Files: src/include/ipxe/ibft.h
1205+Copyright:
1206+ 2007 Fen Systems Ltd
1207+ 2004,2007 IBM Corporation
1208+License: BSD-2-clause
1209+
1210+Files:
1211+ src/include/ipxe/list.h
1212+ src/include/ipxe/pci.h
1213+Copyright: *No copyright*
1214+License: GPL-2 or UBDL
1215
1216 Files: debian/*
1217 Copyright: 2011 Bastian Blank <waldi@debian.org>
1218@@ -215,34 +612,6 @@ License: GPL-2+
1219 On Debian systems, the complete text of the GNU General
1220 Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
1221
1222-License: LGPL-2+
1223- This package is free software; you can redistribute it and/or
1224- modify it under the terms of the GNU Lesser General Public
1225- License as published by the Free Software Foundation; either
1226- version 2 of the License, or (at your option) any later version.
1227- .
1228- This package is distributed in the hope that it will be useful,
1229- but WITHOUT ANY WARRANTY; without even the implied warranty of
1230- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1231- Lesser General Public License for more details.
1232- .
1233- You should have received a copy of the GNU General Public License
1234- along with this program. If not, see <http://www.gnu.org/licenses/>.
1235-
1236-License: LGPL-2.1+
1237- This package is free software; you can redistribute it and/or
1238- modify it under the terms of the GNU Lesser General Public
1239- License as published by the Free Software Foundation; either
1240- version 2.1 of the License, or (at your option) any later version.
1241- .
1242- This package is distributed in the hope that it will be useful,
1243- but WITHOUT ANY WARRANTY; without even the implied warranty of
1244- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1245- Lesser General Public License for more details.
1246- .
1247- You should have received a copy of the GNU General Public License
1248- along with this program. If not, see <http://www.gnu.org/licenses/>.
1249-
1250 License: BSD-2-clause
1251 Redistribution and use in source and binary forms, with or without
1252 modification, are permitted provided that the following conditions are met:
1253@@ -287,3 +656,58 @@ License: BSD-3-clause
1254 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1255 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1256 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1257+
1258+License: UBDL
1259+ The GNU General Public License provides a legal guarantee that
1260+ software covered by it remains free (in the sense of freedom, not
1261+ price). It achieves this guarantee by imposing obligations on anyone
1262+ who chooses to distribute the software.
1263+ .
1264+ Some of these obligations may be seen as unnecessarily burdensome. In
1265+ particular, when the source code for the software is already publicly
1266+ and freely available, there is minimal value in imposing upon each
1267+ distributor the obligation to provide the complete source code (or an
1268+ equivalent written offer to provide the complete source code).
1269+ .
1270+ This Licence allows for the distribution of unmodified binaries built
1271+ from publicly available source code, without imposing the obligations
1272+ of the GNU General Public License upon anyone who chooses to
1273+ distribute only the unmodified binaries built from that source code.
1274+ .
1275+ The extra permissions granted by this Licence apply only to unmodified
1276+ binaries built from source code which has already been made available
1277+ to the public in accordance with the terms of the GNU General Public
1278+ Licence. Nothing in this Licence allows for the creation of
1279+ closed-source modified versions of the Program. Any modified versions
1280+ of the Program are subject to the usual terms and conditions of the
1281+ GNU General Public License.
1282+ .
1283+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1284+ .
1285+ This Licence applies to any Program or other work which contains a
1286+ notice placed by the copyright holder saying it may be distributed
1287+ under the terms of this Unmodified Binary Distribution Licence. All
1288+ terms used in the text of this Licence are to be interpreted as they
1289+ are used in version 2 of the GNU General Public License as published
1290+ by the Free Software Foundation.
1291+ .
1292+ If you have made this Program available to the public in both source
1293+ code and executable form in accordance with the terms of the GNU
1294+ General Public License as published by the Free Software Foundation;
1295+ either version 2 of the License, or (at your option) any later
1296+ version, then you are hereby granted an additional permission to use,
1297+ copy, and distribute the unmodified executable form of this Program
1298+ (the "Unmodified Binary") without restriction, including the right to
1299+ permit persons to whom the Unmodified Binary is furnished to do
1300+ likewise, subject to the following conditions:
1301+ .
1302+ - when started running, the Program must display an announcement which
1303+ includes the details of your existing publication of the Program
1304+ made in accordance with the terms of the GNU General Public License.
1305+ For example, the Program could display the URL of the publicly
1306+ available source code from which the Unmodified Binary was built.
1307+ .
1308+ - when exercising your right to grant permissions under this Licence,
1309+ you do not need to refer directly to the text of this Licence, but
1310+ you may not grant permissions beyond those granted to you by this
1311+ Licence.
1312diff --git a/debian/grub-ipxe.install b/debian/grub-ipxe.install
1313new file mode 100644
1314index 0000000..7284a31
1315--- /dev/null
1316+++ b/debian/grub-ipxe.install
1317@@ -0,0 +1,3 @@
1318+debian/tree/ipxe/* .
1319+src/bin-i386-pcbios/ipxe.lkrn boot
1320+src/bin-x86_64-efi/ipxe.efi boot
1321diff --git a/debian/ipxe.postinst b/debian/grub-ipxe.postinst
1322similarity index 88%
1323rename from debian/ipxe.postinst
1324rename to debian/grub-ipxe.postinst
1325index 8594fe7..e77364b 100644
1326--- a/debian/ipxe.postinst
1327+++ b/debian/grub-ipxe.postinst
1328@@ -1,4 +1,4 @@
1329-#!/bin/bash
1330+#!/bin/sh
1331
1332 set -e
1333
1334diff --git a/debian/ipxe.postrm b/debian/grub-ipxe.postrm
1335similarity index 88%
1336rename from debian/ipxe.postrm
1337rename to debian/grub-ipxe.postrm
1338index af8b09b..11d9924 100644
1339--- a/debian/ipxe.postrm
1340+++ b/debian/grub-ipxe.postrm
1341@@ -1,4 +1,4 @@
1342-#!/bin/bash
1343+#!/bin/sh
1344
1345 set -e
1346
1347@@ -7,7 +7,7 @@ case "$1" in
1348 command -v update-grub > /dev/null && update-grub || :
1349 ;;
1350 esac
1351-
1352+
1353 #DEBHELPER#
1354-
1355+
1356 exit 0
1357diff --git a/debian/ipxe.install b/debian/ipxe.install
1358index dcb07fb..6a55ef7 100644
1359--- a/debian/ipxe.install
1360+++ b/debian/ipxe.install
1361@@ -1,8 +1,5 @@
1362-debian/tree/ipxe/* .
1363 src/bin-combined/ipxe.iso usr/lib/ipxe
1364-src/bin-i386-pcbios/ipxe.lkrn boot
1365 src/bin-i386-pcbios/ipxe.pxe usr/lib/ipxe
1366 src/bin-i386-pcbios/undionly.kkpxe usr/lib/ipxe
1367 src/bin-i386-pcbios/undionly.kpxe usr/lib/ipxe
1368-src/bin-x86_64-efi/ipxe.efi boot
1369 src/bin-x86_64-efi/snponly.efi usr/lib/ipxe
1370diff --git a/debian/patches/0005-strip-802.1Q-VLAN-0-priority-tags.patch b/debian/patches/0005-strip-802.1Q-VLAN-0-priority-tags.patch
1371new file mode 100644
1372index 0000000..d78a563
1373--- /dev/null
1374+++ b/debian/patches/0005-strip-802.1Q-VLAN-0-priority-tags.patch
1375@@ -0,0 +1,121 @@
1376+From: Ladi Prosek <lprosek@redhat.com>
1377+Subject: Strip 802.1Q VLAN 0 priority tags
1378+ iPXE was unable to receive priority tagged packets specified in
1379+ the 802.1Q standard and supported by all major networking stacks.
1380+
1381+ This commit adds a new function net_pull_tags which is called by
1382+ all consumers of incoming packets after stripping their link-layer
1383+ headers.
1384+Origin: vendor, https://git.centos.org/blob/rpms!ipxe.git/c7/SOURCES!0009-Strip-802.1Q-VLAN-0-priority-tags.patch
1385+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1805920
1386+
1387+Index: ipxe-1.0.0+git-20180124.fbe8c52d/src/arch/x86/interface/pxe/pxe_undi.c
1388+===================================================================
1389+--- ipxe-1.0.0+git-20180124.fbe8c52d.orig/src/arch/x86/interface/pxe/pxe_undi.c 2018-11-30 22:42:34.000000000 -0500
1390++++ ipxe-1.0.0+git-20180124.fbe8c52d/src/arch/x86/interface/pxe/pxe_undi.c 2018-11-30 22:54:25.000000000 -0500
1391+@@ -976,6 +976,12 @@
1392+ }
1393+ ll_hlen = ( len - iob_len ( iobuf ) );
1394+
1395++ /* Strip link-layer-independent headers */
1396++ if ( ( rc = net_pull_tags ( iobuf, pxe_netdev, &net_proto ) ) != 0 ) {
1397++ /* Assume unknown net_proto */
1398++ net_proto = 0;
1399++ }
1400++
1401+ /* Determine network-layer protocol */
1402+ switch ( net_proto ) {
1403+ case htons ( ETH_P_IP ):
1404+Index: ipxe-1.0.0+git-20180124.fbe8c52d/src/include/ipxe/netdevice.h
1405+===================================================================
1406+--- ipxe-1.0.0+git-20180124.fbe8c52d.orig/src/include/ipxe/netdevice.h 2018-11-30 22:42:34.000000000 -0500
1407++++ ipxe-1.0.0+git-20180124.fbe8c52d/src/include/ipxe/netdevice.h 2018-11-30 22:54:25.000000000 -0500
1408+@@ -726,6 +726,8 @@
1409+ extern int net_rx ( struct io_buffer *iobuf, struct net_device *netdev,
1410+ uint16_t net_proto, const void *ll_dest,
1411+ const void *ll_source, unsigned int flags );
1412++extern int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev,
1413++ uint16_t *net_proto );
1414+ extern void net_poll ( void );
1415+ extern struct net_device_configurator *
1416+ find_netdev_configurator ( const char *name );
1417+Index: ipxe-1.0.0+git-20180124.fbe8c52d/src/interface/efi/efi_snp.c
1418+===================================================================
1419+--- ipxe-1.0.0+git-20180124.fbe8c52d.orig/src/interface/efi/efi_snp.c 2018-11-30 22:42:34.000000000 -0500
1420++++ ipxe-1.0.0+git-20180124.fbe8c52d/src/interface/efi/efi_snp.c 2018-11-30 22:54:25.000000000 -0500
1421+@@ -751,6 +751,13 @@
1422+ goto out_bad_ll_header;
1423+ }
1424+
1425++ /* Strip link-layer-independent headers */
1426++ if ( ( rc = net_pull_tags ( iobuf, snpdev->netdev, &iob_net_proto ) ) ) {
1427++ DBGC ( snpdev, "SNPDEV %p could not parse tags: %s\n",
1428++ snpdev, strerror ( rc ) );
1429++ goto out_bad_ll_header;
1430++ }
1431++
1432+ /* Return link-layer header parameters to caller, if required */
1433+ if ( ll_header_len )
1434+ *ll_header_len = ll_protocol->ll_header_len;
1435+Index: ipxe-1.0.0+git-20180124.fbe8c52d/src/net/netdevice.c
1436+===================================================================
1437+--- ipxe-1.0.0+git-20180124.fbe8c52d.orig/src/net/netdevice.c 2018-11-30 22:42:34.000000000 -0500
1438++++ ipxe-1.0.0+git-20180124.fbe8c52d/src/net/netdevice.c 2018-11-30 22:54:25.000000000 -0500
1439+@@ -1044,6 +1044,44 @@
1440+ }
1441+
1442+ /**
1443++ * Strip extra link-layer-independent tags from a received packet
1444++ *
1445++ * @v iobuf I/O buffer
1446++ * @v netdev Network device
1447++ * @v net_proto Network-layer protocol, in network-byte order
1448++ * @ret rc Return status code
1449++ *
1450++ * This function should be called after stripping link-layer headers but
1451++ * before inspecting the network-layer protocol.
1452++ */
1453++int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev,
1454++ uint16_t *net_proto ) {
1455++ struct vlan_header *vlanhdr;
1456++ uint16_t tag;
1457++
1458++ /* Strip 802.1Q VLAN 0 priority tags if present */
1459++ while ( *net_proto == htons ( ETH_P_8021Q ) ) {
1460++ if ( iob_len ( iobuf ) < sizeof ( *vlanhdr ) ) {
1461++ DBG ( "VLAN header too short at %zd bytes (min %zd bytes)\n",
1462++ iob_len ( iobuf ), sizeof ( *vlanhdr ) );
1463++ return -EINVAL;
1464++ }
1465++ vlanhdr = ( struct vlan_header * ) iobuf->data;
1466++ tag = VLAN_TAG ( ntohs ( vlanhdr->tci ) );
1467++
1468++ if ( tag == 0 && ! vlan_find ( netdev, tag ) ) {
1469++ /* VLAN 0, strip and continue */
1470++ *net_proto = vlanhdr->net_proto;
1471++ iob_pull ( iobuf, sizeof ( *vlanhdr ) );
1472++ } else {
1473++ /* Real VLAN tag, leave it alone */
1474++ break;
1475++ }
1476++ }
1477++ return 0;
1478++}
1479++
1480++/**
1481+ * Poll the network stack
1482+ *
1483+ * This polls all interfaces for received packets, and processes
1484+@@ -1093,6 +1131,12 @@
1485+ free_iob ( iobuf );
1486+ continue;
1487+ }
1488++
1489++ /* Remove link-layer-independent headers */
1490++ if ( ( rc = net_pull_tags ( iobuf, netdev, &net_proto ) ) ) {
1491++ free_iob ( iobuf );
1492++ continue;
1493++ }
1494+
1495+ /* Hand packet to network layer */
1496+ if ( ( rc = net_rx ( iob_disown ( iobuf ), netdev,
1497diff --git a/debian/patches/handle-dhcp-nack.patch b/debian/patches/handle-dhcp-nack.patch
1498new file mode 100644
1499index 0000000..65aa37e
1500--- /dev/null
1501+++ b/debian/patches/handle-dhcp-nack.patch
1502@@ -0,0 +1,43 @@
1503+Description: iPXE fails to handle DHCPNACK's
1504+ iPXE does not handle DHCPNACK's. If iPXE gets a DHCPNACK it will
1505+ not re-attempt to DHCPDISCOVER, which causes iPXE to fail to PXE
1506+ boot on situations where there are multiple DHCP servers are
1507+ offering an IP.
1508+Author: Blake Rouse <blake.rouse@canonical.com>
1509+Forwarded: https://github.com/ipxe/ipxe/pull/66
1510+Bug: https://bugs.launchpad.net/bugs/1707999
1511+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/ipxe/+bug/1707999
1512+
1513+Index: ipxe-1.0.0+git-20161027.b991c67+really20150424.a25a16d/src/net/udp/dhcp.c
1514+===================================================================
1515+--- ipxe-1.0.0+git-20161027.b991c67+really20150424.a25a16d.orig/src/net/udp/dhcp.c 2017-10-12 16:38:21.527631622 -0400
1516++++ ipxe-1.0.0+git-20161027.b991c67+really20150424.a25a16d/src/net/udp/dhcp.c 2017-10-12 16:38:21.523631288 -0400
1517+@@ -523,9 +523,18 @@
1518+ DBGC ( dhcp, " for %s", inet_ntoa ( ip ) );
1519+ DBGC ( dhcp, "\n" );
1520+
1521+- /* Filter out unacceptable responses */
1522++ /* Filter out invalid port */
1523+ if ( peer->sin_port != htons ( BOOTPS_PORT ) )
1524+ return;
1525++
1526++ /* Handle DHCPNAK */
1527++ if ( msgtype /* BOOTP */ && ( msgtype == DHCPNAK ) ) {
1528++ /* Go back to discover, again. */
1529++ dhcp_set_state ( dhcp, &dhcp_state_discover );
1530++ return;
1531++ }
1532++
1533++ /* Filter out unacceptable responses */
1534+ if ( msgtype /* BOOTP */ && ( msgtype != DHCPACK ) )
1535+ return;
1536+ if ( server_id.s_addr != dhcp->server.s_addr )
1537+@@ -907,7 +916,7 @@
1538+ /* Initialise DHCP packet structure */
1539+ memset ( dhcppkt, 0, sizeof ( *dhcppkt ) );
1540+ dhcppkt_init ( dhcppkt, data, max_len );
1541+-
1542++
1543+ /* Set DHCP_MESSAGE_TYPE option */
1544+ if ( ( rc = dhcppkt_store ( dhcppkt, DHCP_MESSAGE_TYPE,
1545+ &msgtype, sizeof ( msgtype ) ) ) != 0 )
1546diff --git a/debian/patches/series b/debian/patches/series
1547index 7bb8252..f422ac7 100644
1548--- a/debian/patches/series
1549+++ b/debian/patches/series
1550@@ -1 +1,3 @@
1551 debian-changes
1552+handle-dhcp-nack.patch
1553+0005-strip-802.1Q-VLAN-0-priority-tags.patch
1554diff --git a/debian/rules b/debian/rules
1555index fe43fdf..c2d4f10 100755
1556--- a/debian/rules
1557+++ b/debian/rules
1558@@ -16,12 +16,33 @@ VERSION := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p')
1559 override_dh_auto_configure:
1560 cp debian/config/* src/config/local
1561
1562+# qemu EFI roms shall be built with CONFIG=qemu
1563+# This will make it select src/config/qemu/* as config base
1564+# and set -DCONFIG=qemu -DLOCAL_CONFIG=qemu
1565+src/bin-i386-pcbios/%.rom src/bin-x86_64-efi/%.efirom: export CONFIG=qemu
1566+# qemu EFI roms are built without HTTPS, EFI does that on its own (and better)
1567+src/bin-x86_64-efi/%.efirom: export NOHTTPS=true
1568+
1569 src/bin-i386-pcbios/% src/bin-x86_64-efi/%:
1570+ # clean and reconfigure if either NOHTTPS or CONFIG=qemu switches
1571+ if [ "config:$(CONFIG)nohttps:$(NOHTTPS)" != "$(shell cat debian/last-used-config 2>/dev/null)" ]; then \
1572+ if [ "$(NOHTTPS)" = "true" ]; then \
1573+ cp -v debian/config/* src/config/local; \
1574+ else \
1575+ echo "#define DOWNLOAD_PROTO_HTTPS" >> src/config/local/general.h; \
1576+ fi; \
1577+ $(MAKE) -C src clean; \
1578+ echo -n "config:$(CONFIG)" > debian/last-used-config; \
1579+ echo -n "nohttps:$(NOHTTPS)" >> debian/last-used-config; \
1580+ fi;
1581 dh_auto_build --sourcedirectory=src -- V=1 NO_WERROR=1 VERSION="$(VERSION)" $(subst src/,,$@)
1582
1583 src/bin-combined/%.efirom: src/bin-i386-pcbios/%.rom src/bin-x86_64-efi/%.efirom
1584 @[ -d $(dir $@) ] || mkdir $(dir $@)
1585 src/util/catrom.pl $^ > $@
1586+ # efi roms are >256k since Bionic due to https + natural growth
1587+ # stay at 256k-512k after disabling https in efi via padding
1588+ src/util/padimg.pl --blksize=524288 --byte=0xff --verbose $@
1589
1590 src/bin-combined/%.iso: src/bin-i386-pcbios/%.lkrn src/bin-x86_64-efi/%.efi
1591 @[ -d $(dir $@) ] || mkdir $(dir $@)
1592@@ -29,10 +50,15 @@ src/bin-combined/%.iso: src/bin-i386-pcbios/%.lkrn src/bin-x86_64-efi/%.efi
1593
1594 override_dh_auto_build: $(shell grep -hoE 'src/bin(-[^/]*)?/\S+' debian/*.install)
1595
1596+override_dh_install:
1597+ dh_install
1598+ debian/util/check-rom-sizes
1599+
1600 override_dh_auto_clean:
1601 $(MAKE) -C src veryclean
1602+ rm -f debian/last-used-config
1603 rm -fr src/bin*
1604- rm -f src/config/local/*
1605+ rm -fr src/config/local/*
1606
1607 .NOTPARALLEL:
1608 .SECONDARY:
1609diff --git a/debian/tree/ipxe/etc/grub.d/20_ipxe b/debian/tree/ipxe/etc/grub.d/20_ipxe
1610index 8be37c8..fc77dfd 100755
1611--- a/debian/tree/ipxe/etc/grub.d/20_ipxe
1612+++ b/debian/tree/ipxe/etc/grub.d/20_ipxe
1613@@ -15,11 +15,24 @@ IPXE=/boot/ipxe.lkrn
1614
1615 if test -e "$IPXE" ; then
1616 IPXEPATH=$( make_system_path_relative_to_its_root "$IPXE" )
1617+ # Remove the .lkrn extension
1618+ IPXEPATH=${IPXEPATH%.lkrn}
1619 echo "Found iPXE image: $IPXE" >&2
1620 cat << EOF
1621-menuentry "Network boot (iPXE)" --users "" --class network {
1622+menuentry "Network boot (iPXE)" --users "" --class network --id ipxe {
1623 ${prepare_boot_cache}
1624- linux16 $IPXEPATH
1625+EOF
1626+ save_default_entry | grub_add_tab
1627+ cat << EOF
1628+ if [ "\$grub_platform" = "efi" ]; then
1629+ chainloader $IPXEPATH.efi
1630+ else
1631+ linux16 $IPXEPATH.lkrn
1632+ # If the user provided an iPXE script, load it
1633+ if [ -f $IPXEPATH.ipxe ]; then
1634+ initrd16 $IPXEPATH.ipxe
1635+ fi
1636+ fi
1637 }
1638 EOF
1639 fi
1640diff --git a/debian/util/check-rom-sizes b/debian/util/check-rom-sizes
1641new file mode 100755
1642index 0000000..cde9f94
1643--- /dev/null
1644+++ b/debian/util/check-rom-sizes
1645@@ -0,0 +1,66 @@
1646+#!/bin/bash
1647+#
1648+# Generate a isolinux/bios and efi ISO boot image
1649+
1650+set -e
1651+PATH=/usr/bin:/bin:/usr/sbin:/sbin
1652+
1653+dir="./debian/ipxe-qemu/usr/lib/ipxe/qemu/"
1654+rc=0
1655+
1656+declare -A roms
1657+# these are the current power-of-2 buckets of roms generated by ipxe
1658+# If any of these roms grows/shrinks out of its bucket a KVM
1659+# live migration between two systems with those different sizes will fail.
1660+# This check is intended to break builds on such a change to make it an opt-in
1661+# change by a developer (to change the sizes below AFTER he has taken care that
1662+# the qemu/libvirt on the migration paths will take care of it on migration).
1663+# Due to ipxe (currently) not being part of Ubuntu Cloud Archive all UCA have
1664+# the ipxe of the latest LTS. Which makes a certain qemu version (which defines
1665+# the machine type) ambiguous which ipxe roms it has.
1666+# Therefore such size breaking upgrades are only reasonably doable on LTS
1667+# releases where qemu can assume all former types are of the former size
1668+# and can handle all of these as one.
1669+roms["efi-e1000.rom"]="524288"
1670+roms["efi-e1000e.rom"]="524288"
1671+roms["efi-eepro100.rom"]="524288"
1672+roms["efi-ne2k_pci.rom"]="524288"
1673+roms["efi-pcnet.rom"]="524288"
1674+roms["efi-rtl8139.rom"]="524288"
1675+roms["efi-virtio.rom"]="524288"
1676+roms["efi-vmxnet3.rom"]="524288"
1677+roms["pxe-e1000.rom"]="131072"
1678+roms["pxe-e1000e.rom"]="131072"
1679+roms["pxe-eepro100.rom"]="131072"
1680+roms["pxe-ne2k_pci.rom"]="131072"
1681+roms["pxe-pcnet.rom"]="131072"
1682+roms["pxe-rtl8139.rom"]="131072"
1683+roms["pxe-virtio.rom"]="131072"
1684+roms["pxe-vmxnet3.rom"]="131072"
1685+
1686+echo "Generated roms:"
1687+ls -laF "${dir}"
1688+
1689+for rom in "${!roms[@]}"; do
1690+ size=$(stat --printf="%s" "${dir}/${rom}")
1691+ shiftsize="${size}"
1692+ bucket=1
1693+ while [ "${shiftsize}" -ne "1" ]; do
1694+ shiftsize=$((shiftsize>>1))
1695+ bucket=$((bucket<<1))
1696+ done
1697+ bucket=$((bucket<<1))
1698+ # being smaller could be ok, but check -eq to warn/break on unexpected size loss as well
1699+ if [ "${size}" -eq "${roms[$rom]}" ]; then
1700+ echo "OK: ${rom} is exactly ${size} bytes as expected"
1701+ else
1702+ if [ "${bucket}" -eq "${roms[$rom]}" ]; then
1703+ echo "OK: ${rom} is ${size} bytes and thereby in bucket ${bucket} which matches ${roms[$rom]}"
1704+ else
1705+ echo "ERROR: ${rom} is ${size} bytes and thereby in bucket ${bucket} which does not match ${roms[$rom]}"
1706+ rc=1
1707+ fi
1708+ fi
1709+done
1710+
1711+exit ${rc}

Subscribers

People subscribed via source and target branches