summaryrefslogtreecommitdiff
blob: 010d93ca6414aa7c9c4fa5e38a7238765b6d31f5 (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
86
87
88
89
90
91
92
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit flag-o-matic

MY_P=rpm-${PV}
DESCRIPTION="Stand-alone debugedit from RPM"
HOMEPAGE="http://www.rpm.org
	https://github.com/rpm-software-management/rpm"
SRC_URI="http://ftp.rpm.org/releases/rpm-$(ver_cut 1-2).x/${MY_P}.tar.bz2"

LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
KEYWORDS="amd64 ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
IUSE=""

RDEPEND="
	sys-libs/zlib:=
	>=dev-libs/popt-1.7
	dev-libs/elfutils
	dev-libs/nss
"
DEPEND="${RDEPEND}
	virtual/pkgconfig
"

S=${WORKDIR}/${MY_P}

src_prepare() {
	# do not reorder sections, ever; otherwise it breaks gcc
	# https://bugs.gentoo.org/666954
	eapply "${FILESDIR}"/debugedit-4.14.2-no-reorder.patch
	eapply_user

	# cheat it into believing we're bundling db
	mkdir -p db/dist || die
	touch db/dist/configure || die
	chmod +x db/dist/configure || die
	echo 'install:' > db3/Makefile || die

	# TODO: why do we need to do this?
	mkdir rpm || die
	find -name '*.h' -exec cp {} rpm/ ';' || die
}

src_configure() {
	append-cppflags -I"${EPREFIX}/usr/include/nss" -I"${EPREFIX}/usr/include/nspr"
	local myconf=(
		# force linking to static librpmio
		--disable-shared

		# disable linking compression libraries
		ac_cv_header_bzlib_h=no
		ac_cv_header_lzma_h=no
		--disable-zstd

		# fake some libraries we don't use
		ac_cv_header_magic_h=yes
		ac_cv_lib_magic_magic_open=yes

		# use nss as crypto provider
		--with-crypto=nss

		# disable other stuff irrelevant to debugedit
		--disable-nls
		--disable-python
		--without-acl
		--without-archive
		--without-cap
		--without-external-db
		--without-hackingdocs
		--without-lua
		--without-selinux
	)
	econf "${myconf[@]}"
}

src_compile() {
	emake -C misc
	emake -C rpmio
	emake debugedit
}

src_test() {
	:
}

src_install() {
	dobin debugedit
}