aboutsummaryrefslogtreecommitdiff
blob: 9e2c18b540e209feb50a758107049ba411f09fcb (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
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

src_prepare() {
	default

	# Disable DSS support
	echo "#define DROPBEAR_DSS 0" >> localoptions.h || die "Failed to disable DSS support"

	# Enable AES GCM support
	echo "#define DROPBEAR_ENABLE_GCM_MODE 1" >> localoptions.h || die "Failed to enable AES GCM support"
}

src_configure() {
	local myconf=(
		--enable-static
		--disable-pam
		--disable-syslog
		--with-zlib="${BROOT}/usr"
	)

	gkconf "${myconf[@]}"
}

src_compile() {
	local MYMAKEOPTS=( "V=1" )
	MYMAKEOPTS+=( "MULTI=1" )
	MYMAKEOPTS+=( "PROGRAMS='dbclient dropbear dropbearkey dropbearconvert scp'" )
	gkmake "${MYMAKEOPTS[@]}"
}

src_install() {
	local mydir=
	for mydir in \
		etc/dropbear \
		usr/bin \
		usr/sbin \
		root/.ssh \
		var/log \
		var/run \
	; do
		mkdir -p "${D}"/${mydir} || die "Failed to create '${D}/${mydir}'!"
	done

	cp -a dropbearmulti "${D}"/usr/bin/ \
		|| die "Failed to copy '${S}/dropbearmulti' to '${D}/usr/bin/'!"

	"${STRIP}" --strip-all "${D}"/usr/bin/dropbearmulti \
		|| die "Failed to strip '${D}/usr/bin/dropbearmulti'!"

	ln -s dropbearmulti "${D}"/usr/bin/dbclient \
		|| die "Failed to symlink '${D}/usr/bin/dbclient' to '${D}/usr/bin/dropbearmulti'!"

	ln -s ../bin/dropbearmulti "${D}"/usr/sbin/dropbear \
		|| die "Failed to symlink '${D}/usr/sbin/dropbear' to '${D}/usr/bin/dropbearmulti'!"

	ln -s dropbearmulti "${D}"/usr/bin/dropbearconvert \
		|| die "Failed to symlink '${D}/usr/bin/dropbearconvert' to '${D}/usr/bin/dropbearmulti'!"

	ln -s dropbearmulti "${D}"/usr/bin/dropbearkey \
		|| die "Failed to symlink '${D}/usr/bin/dropbearkey' to '${D}/usr/bin/dropbearmulti'!"

	ln -s dropbearmulti "${D}"/usr/bin/scp \
		|| die "Failed to symlink '${D}/usr/bin/scp' to '${D}/usr/bin/dropbearmulti'!"

	chmod 0700 "${D}"/root/.ssh \
		|| die "Failed to chmod of '${D}/root/.ssh'!"

	mkfifo "${D}"/etc/dropbear/fifo_root \
		|| die "Failed to create '${D}/etc/dropbear/fifo_root'!"

	mkfifo "${D}"/etc/dropbear/fifo_swap \
		|| die "Failed to create '${D}/etc/dropbear/fifo_swap'!"
}