summaryrefslogtreecommitdiffstats
path: root/meta-signing-key/recipes-devtools/sbsigntool/sbsigntool_git.bb
blob: c9cc61513b4395dfefd8acbfd3ea76c2caa230ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
SUMMARY = "Utilities for signing UEFI binaries for use with secure boot"

LICENSE = "GPLv3"

LIC_FILES_CHKSUM = "\
    file://LICENSE.GPLv3;md5=9eef91148a9b14ec7f9df333daebc746 \
    file://COPYING;md5=a7710ac18adec371b84a9594ed04fd20 \
"

DEPENDS += "binutils openssl gnu-efi gnu-efi-native"
DEPENDS += "binutils-native help2man-native coreutils-native openssl-native util-linux-native"

SRC_URI = " \
    git://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git;protocol=https;name=sbsigntools \
    git://github.com/rustyrussell/ccan.git;protocol=https;destsuffix=git/lib/ccan.git;name=ccan \
    file://0001-configure-Dont-t-check-for-gnu-efi.patch \
    file://0002-docs-Don-t-build-man-pages.patch \
    file://0003-sbsign-add-x-option-to-avoid-overwrite-existing-sign.patch \
"
SRCREV_sbsigntools  ?= "f12484869c9590682ac3253d583bf59b890bb826"
SRCREV_ccan         ?= "b1f28e17227f2320d07fe052a8a48942fe17caa5"
SRCREV_FORMAT       =  "sbsigntools_ccan"

PV = "0.9.2-git${SRCPV}"

S = "${WORKDIR}/git"

inherit autotools-brokensep pkgconfig native

def efi_arch(d):
    import re
    arch = d.getVar("TARGET_ARCH")
    if re.match("i[3456789]86", arch):
        return "ia32"
    return arch

# Avoids build breaks when using no-static-libs.inc
#DISABLE_STATIC_class-target = ""

#EXTRA_OECONF_remove_class-target += "\
#    --with-libtool-sysroot \
#"

CFLAGS += "-Wno-error=maybe-uninitialized"

HOST_EXTRACFLAGS += "\
    INCLUDES+='-I${S}/lib/ccan.git/ \
              -I${STAGING_INCDIR_NATIVE}/efi \
              -I${STAGING_INCDIR_NATIVE} \
"

EXTRA_OEMAKE += "\
    INCLUDES='-I${S}/lib/ccan.git' \
    EFI_CPPFLAGS='-I${STAGING_INCDIR} -I${STAGING_INCDIR}/efi \
                  -I${STAGING_INCDIR}/efi/${@efi_arch(d)}' \
"

do_configure_prepend() {
    cd ${S}

    if [ ! -e lib/ccan ]; then

        # Use empty SCOREDIR because 'make scores' is not run.
        # The default setting depends on (non-whitelisted) host tools.
        sed -i -e 's#^\(SCOREDIR=\).*#\1#' lib/ccan.git/Makefile

        TMPDIR=lib lib/ccan.git/tools/create-ccan-tree \
            --build-type=automake lib/ccan \
            talloc read_write_all build_assert array_size endian
    fi

    # Create generatable docs from git
    (
    echo "Authors of sbsigntool:"
    echo
    git log --format='%an' | sort -u | sed 's,^,\t,'
    ) > AUTHORS

    # Generate simple ChangeLog
    git log --date=short --format='%ad %t %an <%ae>%n%n  * %s%n' > ChangeLog
    
    cd ${B}
}

BBCLASSEXTEND = "native nativesdk"