Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/libbpf/files/, dev-libs/libbpf/
Date: Tue, 12 Mar 2019 00:27:42
Message-Id: 1552350343.ae04e432802ec32e6d759582ce04116630fb92fe.chutzpah@gentoo
1 commit: ae04e432802ec32e6d759582ce04116630fb92fe
2 Author: Patrick McLean <patrick.mclean <AT> sony <DOT> com>
3 AuthorDate: Tue Mar 12 00:25:43 2019 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 12 00:25:43 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae04e432
7
8 dev-libs/libbpf: New package
9
10 Copyright: Sony Interactive Entertainment Inc.
11 Package-Manager: Portage-2.3.62, Repoman-2.3.12
12 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
13
14 dev-libs/libbpf/Manifest | 1 +
15 dev-libs/libbpf/files/libbpf-makefile.patch | 24 +++++++++++
16 dev-libs/libbpf/libbpf-0.20190311.ebuild | 67 +++++++++++++++++++++++++++++
17 dev-libs/libbpf/metadata.xml | 10 +++++
18 4 files changed, 102 insertions(+)
19
20 diff --git a/dev-libs/libbpf/Manifest b/dev-libs/libbpf/Manifest
21 new file mode 100644
22 index 00000000000..27e7e9bf4c9
23 --- /dev/null
24 +++ b/dev-libs/libbpf/Manifest
25 @@ -0,0 +1 @@
26 +DIST libbpf-0.20190311.tar.gz 110782 BLAKE2B b660b2677abd3068aa37f390e817c755ee06cf683e357cad6a9537d8e509d53f24ac66e472148f5b66cbcdca7849db10fc34ff8e6f85bd54a0570a52846ff933 SHA512 dbac8efce3b4c6d4faf40b22de6f71bee630fc8b71aa96e13692ffff0474ed7aa5f66a3c1f5871ec1c27dc71b87bec3ce5138096590fb9238d4d696a722f358d
27
28 diff --git a/dev-libs/libbpf/files/libbpf-makefile.patch b/dev-libs/libbpf/files/libbpf-makefile.patch
29 new file mode 100644
30 index 00000000000..a98cbb8762b
31 --- /dev/null
32 +++ b/dev-libs/libbpf/files/libbpf-makefile.patch
33 @@ -0,0 +1,24 @@
34 +diff --git a/Makefile b/Makefile
35 +index 7ea1ff1..75ca998 100644
36 +--- a/Makefile
37 ++++ b/Makefile
38 +@@ -22,7 +22,9 @@ OBJDIR ?= .
39 + OBJS := $(addprefix $(OBJDIR)/,bpf.o btf.o libbpf.o libbpf_errno.o netlink.o \
40 + nlattr.o str_error.o libbpf_probes.o bpf_prog_linfo.o xsk.o)
41 +
42 +-LIBS := $(OBJDIR)/libbpf.a
43 ++ifdef BUILD_STATIC
44 ++ LIBS := $(OBJDIR)/libbpf.a
45 ++endif
46 + ifdef BUILD_SHARED
47 + LIBS += $(OBJDIR)/libbpf.so
48 + endif
49 +@@ -52,7 +54,7 @@ $(OBJDIR)/libbpf.a: $(OBJS)
50 + $(AR) rcs $@ $^
51 +
52 + $(OBJDIR)/libbpf.so: $(OBJS)
53 +- $(CC) -shared $(LDFLAGS) $^ -o $@
54 ++ $(CC) -shared $(LDFLAGS) $^ -Wl,-soname,libbpf.so -o $@
55 +
56 + $(OBJDIR)/%.o: %.c
57 + $(CC) $(ALL_CFLAGS) -c $< -o $@
58
59 diff --git a/dev-libs/libbpf/libbpf-0.20190311.ebuild b/dev-libs/libbpf/libbpf-0.20190311.ebuild
60 new file mode 100644
61 index 00000000000..fdbc1a51645
62 --- /dev/null
63 +++ b/dev-libs/libbpf/libbpf-0.20190311.ebuild
64 @@ -0,0 +1,67 @@
65 +# Copyright 2019 Sony Interactive Entertainment Inc.
66 +# Distributed under the terms of the GNU General Public License v2
67 +
68 +EAPI=7
69 +
70 +inherit toolchain-funcs
71 +
72 +EGIT_COMMIT="cb658e9724e3c34973eee913b1ff0cb9c50b8e53"
73 +
74 +HOMEPAGE="https://github.com/libbpf/libbpf"
75 +DESCRIPTION="Stand-alone build of libbpf from the Linux kernel"
76 +SRC_URI="https://github.com/${PN}/${PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
77 +
78 +LICENSE="GPL-2 LGPL-2.1 BSD-2"
79 +SLOT="0/${PV}"
80 +KEYWORDS="~amd64 ~x86"
81 +IUSE="static-libs"
82 +
83 +COMMON_DEPEND="virtual/libelf"
84 +DEPEND="${COMMON_DEPEND}
85 + sys-kernel/linux-headers"
86 +RDEPEND="${COMMON_DEPEND}"
87 +
88 +S="${WORKDIR}/${PN}-${EGIT_COMMIT}/src"
89 +
90 +PATCHES=(
91 + "${FILESDIR}/libbpf-makefile.patch"
92 +)
93 +
94 +src_prepare() {
95 + # upstream doesn't provide a pkgconfig file, so
96 + # let's make one
97 + printf 'prefix=/usr\nexec_prefix=${prefix}\nlibdir=%s\n' \
98 + "/usr/$(get_libdir)" \
99 + > ${PN}.pc
100 + printf 'includedir=${prefix}/include\n\n' \
101 + >> ${PN}.pc
102 +
103 + printf 'Name: %s\nDescription: %s\nVersion: %s\nLibs: -lbpf %s\n' \
104 + "${PN}" \
105 + "${DESCRIPTION}" \
106 + "${PV}" \
107 + "$($(tc-getPKG_CONFIG) --libs libelf)" \
108 + >> ${PN}.pc
109 +
110 + default
111 +}
112 +
113 +src_compile() {
114 + emake \
115 + BUILD_SHARED=y \
116 + LIBSUBDIR="$(get_libdir)" \
117 + $(usex static-libs 'BUILD_STATIC=y' '' '' '') \
118 + CC="$(tc-getCC)"
119 +}
120 +
121 +src_install() {
122 + emake \
123 + BUILD_SHARED=y \
124 + LIBSUBDIR="$(get_libdir)" \
125 + DESTDIR="${D}" \
126 + $(usex static-libs 'BUILD_STATIC=y' '' '' '') \
127 + install
128 +
129 + insinto /usr/$(get_libdir)/pkgconfig
130 + doins ${PN}.pc
131 +}
132
133 diff --git a/dev-libs/libbpf/metadata.xml b/dev-libs/libbpf/metadata.xml
134 new file mode 100644
135 index 00000000000..401d77a76ee
136 --- /dev/null
137 +++ b/dev-libs/libbpf/metadata.xml
138 @@ -0,0 +1,10 @@
139 +<?xml version="1.0" encoding="UTF-8"?>
140 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
141 +<pkgmetadata>
142 + <maintainer type="person">
143 + <email>chutzpah@g.o</email>
144 + </maintainer>
145 + <upstream>
146 + <remote-id type="github">libbpf/libbpf</remote-id>
147 + </upstream>
148 +</pkgmetadata>