summaryrefslogtreecommitdiff
blob: f60a609779c2c65b60a045b4acd9c928a6d46eb6 (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="6"

PYTHON_COMPAT=( python2_7 )

inherit autotools

DESCRIPTION="Archlinux's binary package manager"
HOMEPAGE="https://archlinux.org/pacman/"

PATCHES=()

if [[ ${PV} == "9999" ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://git.archlinux.org/pacman.git"
else
	SRC_URI="https://sources.archlinux.org/other/pacman/${P}.tar.gz"
	# Do *not* re-add ~x86!
	# https://www.archlinux.org/news/phasing-out-i686-support/
	KEYWORDS="~amd64"

	PATCHES+=( "${FILESDIR}"/${PN}-5.0.2-CVE-2016-5434.patch )
fi

LICENSE="GPL-2"
SLOT="0/10"

IUSE="curl debug doc +gpg test"
COMMON_DEPEND="app-arch/libarchive:=[lzma]
	gpg? ( >=app-crypt/gpgme-1.4.0:= )
	dev-libs/openssl:0=
	curl? ( net-misc/curl )
	virtual/libiconv
	virtual/libintl"
RDEPEND="${COMMON_DEPEND}"

DEPEND="${COMMON_DEPEND}
	app-text/asciidoc
	doc? ( app-doc/doxygen )
	test? ( sys-apps/fakeroot
	sys-apps/fakechroot )"

# workaround until tests are fixed/sorted out
RESTRICT="test"

src_prepare() {
	# Remove a line that adds "-Werror" in ./configure when
	# "--enable-debug" is passed:
	sed -i -e '/-Werror/d' configure.ac || die

	default
	eautoreconf
}

src_configure() {
	local myeconfargs=(
		--localstatedir=/var
		--disable-git-version
		--with-openssl
		# Help protect user from shooting his/her Gentoo installation
		# in its foot.
		--with-root-dir="${EPREFIX}/var/chroot/archlinux"
		$(use_enable debug)
		# full doc with doxygen
		$(use_enable doc doxygen)
		$(use_with curl libcurl)
		$(use_with gpg gpgme)
	)
	econf "${myeconfargs[@]}"
}

src_compile() {
	default

	emake -C contrib
}

src_install() {
	dodir /etc/pacman.d/
	# contributed parts, i.e. not pacman itself, but useful helpers and some templates and basic docs
	dobin "${S}"/contrib/{bacman,checkupdates,pac{cache,diff,list,log-pkglist,scripts,search},rankmirrors,updpkgsums}
	newdoc "${S}"/contrib/README contrib-README
	dodoc "${S}"/contrib/PKGBUILD.vim
	# create /var/chroot/archlinux
	# see bug #631754
	dodir /var/chroot/archlinux

	default
	# avoid creating stuff inside /var/cache/
	# see bug #633742 for more information
	rm -r "${D}"/var/cache/pacman
}

pkg_postinst() {
	einfo ""
	einfo "The default root dir was set to ${EPREFIX}/var/chroot/archlinux"
	einfo "to avoid breaking Gentoo systems due to oscitancy."
	einfo "If you prefer another directory, take a look at"
	einfo "pacman’s parameter -r|--root)."
	einfo ""
	einfo "You will need to setup at least one mirror in /etc/pacman.d/mirrorlist."
	einfo "Please generate it manually according to the Archlinux documentation:"
	einfo "https://wiki.archlinux.org/index.php/Mirror"
	einfo ""
	ewarn "Archlinux is dropping support for x86 (i686 called there) entirely"
	ewarn "in Nov 2017. Please keep this in mind when setting up new systems."
	ewarn "For more details see"
	ewarn "https://www.archlinux.org/news/phasing-out-i686-support"
	einfo ""
}