Skip to content

Commit aa095d6

Browse files
committed
Add gnu-efi as a submodule
1 parent b4978f6 commit aa095d6

4 files changed

Lines changed: 123 additions & 22 deletions

File tree

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "gnu-efi"]
2+
path = gnu-efi
3+
url = https://github.com/rhboot/gnu-efi
4+
branch = shim-15.6

Makefile

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ VERSION = 1
22
ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
33
DATADIR := /usr/share
44
LIBDIR := /usr/lib64
5-
GNUEFIDIR ?= $(LIBDIR)/gnuefi/
5+
GNUEFIDIR ?= gnu-efi/
66
CC = gcc
77
CFLAGS ?= -O0 -g3
88
BUILDFLAGS := $(CFLAGS) -fPIC -Werror -Wall -Wextra -fshort-wchar \
99
-fno-merge-constants -ffreestanding \
1010
-fno-stack-protector -fno-stack-check --std=gnu11 -DCONFIG_$(ARCH) \
11-
-I/usr/include/efi/ -I/usr/include/efi/$(ARCH)/ \
12-
-I/usr/include/efi/protocol
11+
-I$(GNUEFIDIR)/inc \
12+
-I$(GNUEFIDIR)/inc/$(ARCH) \
13+
-I$(GNUEFIDIR)/inc/protocol
1314
CCLDFLAGS ?= -nostdlib -fPIC -Wl,--warn-common \
1415
-Wl,--no-undefined -Wl,--fatal-warnings \
1516
-Wl,-shared -Wl,-Bsymbolic -L$(LIBDIR) -L$(GNUEFIDIR) \
@@ -83,36 +84,29 @@ endif
8384
%.so : %.o
8485
$(CC) $(CCLDFLAGS) $(SOFLAGS) -o $@ $^ $(SOLIBS) \
8586
$(shell $(CC) -print-libgcc-file-name) \
86-
-T $(GNUEFIDIR)/elf_$(ARCH)_efi.lds
87+
-T $(GNUEFIDIR)/gnuefi/elf_$(ARCH)_efi.lds
8788

8889
%.o : %.c
8990
$(CC) $(BUILDFLAGS) -c -o $@ $^
9091

9192
clean :
9293
@rm -vf *.o *.so *.efi
9394

95+
update :
96+
git submodule update --init --recursive
97+
9498
install :
9599
install -D -d -m 0755 $(INSTALLROOT)/$(DATADIR)/certmule-$(VERSION)
96100
install -m 0644 certmule.efi $(INSTALLROOT)/$(DATADIR)/certmule-$(VERSION)/certmule.efi
97101

98102
GITTAG = $(VERSION)
99103

100104
test-archive:
101-
@rm -rf /tmp/certmule-$(VERSION) /tmp/certmule-$(VERSION)-tmp
102-
@mkdir -p /tmp/certmule-$(VERSION)-tmp
103-
@git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/certmule-$(VERSION)-tmp/ ; tar x )
104-
@git diff | ( cd /tmp/certmule-$(VERSION)-tmp/ ; patch -s -p1 -b -z .gitdiff )
105-
@mv /tmp/certmule-$(VERSION)-tmp/ /tmp/certmule-$(VERSION)/
106-
@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/certmule-$(VERSION).tar.bz2 certmule-$(VERSION)
107-
@rm -rf /tmp/certmule-$(VERSION)
108-
@echo "The archive is in certmule-$(VERSION).tar.bz2"
109-
110-
archive:
111-
git tag $(GITTAG) refs/heads/master
112-
@rm -rf /tmp/certmule-$(VERSION) /tmp/certmule-$(VERSION)-tmp
113-
@mkdir -p /tmp/certmule-$(VERSION)-tmp
114-
@git archive --format=tar $(GITTAG) | ( cd /tmp/certmule-$(VERSION)-tmp/ ; tar x )
115-
@mv /tmp/certmule-$(VERSION)-tmp/ /tmp/certmule-$(VERSION)/
116-
@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/certmule-$(VERSION).tar.bz2 certmule-$(VERSION)
117-
@rm -rf /tmp/certmule-$(VERSION)
118-
@echo "The archive is in certmule-$(VERSION).tar.bz2"
105+
@./make-archive $(if $(call get-config,certmule.origin),--origin "$(call get-config,certmule.origin)") --test "$(VERSION)"
106+
107+
tag:
108+
git tag --sign $(GITTAG) refs/heads/main
109+
git tag -f latest-release $(GITTAG)
110+
111+
archive: tag
112+
@./make-archive $(if $(call get-config,certmule.origin),--origin "$(call get-config,certmule.origin)") --release "$(VERSION)" "$(GITTAG)" "certmule-$(GITTAG)"

gnu-efi

Submodule gnu-efi added at 03670e1

make-archive

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/sh
2+
set -e
3+
4+
usage() {
5+
status="${1}"
6+
if [ "${status}" -eq 0 ] ; then
7+
out=/dev/stdout
8+
else
9+
out=/dev/stderr
10+
fi
11+
{
12+
echo "usage: make-archive [--origin ORIGIN] \\"
13+
echo " [--test VERSION [GNUEFI_GIT_TAG]"
14+
echo " |--release VERSION CERTMULE_GIT_TAG GNUEFI_GIT_TAG]"
15+
} >>"${out}"
16+
exit "${status}"
17+
}
18+
19+
main() {
20+
VERSION=""
21+
CERTMULE_GIT_TAG=""
22+
GNUEFI_GIT_TAG=""
23+
ORIGIN="origin"
24+
while [ $# -ne 0 ] ; do
25+
case "$1" in
26+
--help|--usage|-h|"-?")
27+
usage 0
28+
;;
29+
--origin)
30+
if [ $# -lt 2 ] ; then
31+
echo "error: missing origin" >>/dev/stderr
32+
usage 1
33+
fi
34+
ORIGIN="${2}"
35+
shift
36+
;;
37+
--test)
38+
if [ $# -lt 2 ] ; then
39+
echo "error: missing version" >>/dev/stderr
40+
usage 1
41+
fi
42+
VERSION="${2}"
43+
if [ $# -gt 2 ] ; then
44+
GNUEFI_GIT_TAG="${3}"
45+
shift
46+
fi
47+
shift
48+
;;
49+
--release)
50+
if [ $# -lt 2 ] ; then
51+
echo "error: missing version" >>/dev/stderr
52+
usage 1
53+
fi
54+
if [ $# -lt 3 ] ; then
55+
echo "error: missing certmule git tag" >>/dev/stderr
56+
usage 1
57+
fi
58+
if [ $# -lt 4 ] ; then
59+
echo "error: missing gnuefi git tag" >>/dev/stderr
60+
usage 1
61+
fi
62+
VERSION="${2}"
63+
CERTMULE_GIT_TAG="${3}"
64+
GNUEFI_GIT_TAG="${4}"
65+
shift
66+
shift
67+
shift
68+
;;
69+
*)
70+
echo unknown argument "\"$1\"" >>/dev/stderr
71+
usage 1
72+
;;
73+
esac
74+
shift
75+
done
76+
77+
ARCHIVE_DIR="$(mktemp -d)"
78+
rm -rf "${ARCHIVE_DIR}/certmule-${VERSION}" "${ARCHIVE_DIR}/certmule-${VERSION}"
79+
mkdir -p "${ARCHIVE_DIR}/certmule-${VERSION}/gnu-efi"
80+
cd gnu-efi || exit 1
81+
if [ "x" = "x${GNUEFI_GIT_TAG}" ] ; then
82+
git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/certmule-${VERSION}/gnu-efi" ; tar x )
83+
else
84+
git archive --format=tar "${ORIGIN}/${GNUEFI_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/certmule-${VERSION}/gnu-efi" ; tar x )
85+
fi
86+
cd ..
87+
if [ "x" = "x${CERTMULE_GIT_TAG}" ] ; then
88+
git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/certmule-${VERSION}" ; tar x )
89+
else
90+
# ORIGIN doesn't yet have this tag
91+
git archive --format=tar "${CERTMULE_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/certmule-${VERSION}" ; tar x )
92+
fi
93+
git log -1 --pretty=format:%H > "${ARCHIVE_DIR}/certmule-${VERSION}/commit"
94+
DIR="$PWD"
95+
cd "${ARCHIVE_DIR}"
96+
tar -c --bzip2 -f "${DIR}/certmule-${VERSION}.tar.bz2" "certmule-${VERSION}"
97+
rm -rf "${ARCHIVE_DIR}"
98+
echo "The archive is in certmule-${VERSION}.tar.bz2"
99+
exit 0
100+
}
101+
102+
main "${@}"

0 commit comments

Comments
 (0)