summaryrefslogtreecommitdiff
blob: d86e9810bae308cc951278c7451e6d835f08e4a8 (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-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="5"

MY_PV=${PV/_p/ga}
MY_P=${PN}-${MY_PV}
SUB_PV=${PV:0:3}

S=${WORKDIR}/${PN}-${SUB_PV}

# only the x3270 package installs fonts
FONT_PN="x3270"
FONT_S=${WORKDIR}/${FONT_PN}

inherit eutils font

DESCRIPTION="Complete 3270 access package"
HOMEPAGE="http://x3270.bgp.nu/"
SRC_URI="mirror://sourceforge/x3270/${MY_P}-src.tgz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~s390 ~sparc ~x86"
IUSE="cjk doc ncurses ssl tcl X"

RDEPEND="ssl? ( dev-libs/openssl:0= )
	X? (
		x11-libs/libX11
		x11-libs/libXaw
		x11-libs/libXmu
		x11-libs/libXt
	)
	ncurses? (
		sys-libs/ncurses:=
		sys-libs/readline:0=
	)
	tcl? ( dev-lang/tcl:0 )"
DEPEND="${RDEPEND}
	X? (
		x11-misc/xbitmaps
		x11-proto/xproto
		app-text/rman
		x11-apps/mkfontdir
		x11-apps/bdftopcf
	)"

suite3270_makelist() {
	echo pr3287 s3270 \
		$(usex ncurses c3270 '') \
		$(usex tcl tcl3270 '') \
		$(usex X x3270 '')
}

src_prepare() {
	# Some subdirs (like c3270/x3270/s3270) install the same set of data files
	# (they have the same contents).  Wrap that in a retry to avoid errors.
	cat <<-EOF > _install
	#!/bin/sh
	for n in {1..5}; do
		install "\$@" && exit
		echo "retrying ..."
	done
	EOF
	chmod a+rx _install
	sed -i \
		-e "s:@INSTALL@:${S}/_install:" \
		*/Makefile.in

	# https://sourceforge.net/p/x3270/bugs/13/
	sed -i \
		-e '/pr3287.man/s:$(INSTALL):@INSTALL_DATA@:' \
		pr3287/Makefile.in || die

	# https://sourceforge.net/p/x3270/bugs/12/
	if has_version '>=sys-libs/glibc-2.20' ; then
		sed -i \
			-e "s:-D_BSD_SOURCE:-D_DEFAULT_SOURCE:" \
			*/configure || die
	fi
}

src_configure() {
	econf \
		--cache-file="${S}"/config.cache \
		--enable-s3270 \
		--enable-pr3287 \
		$(use_enable ncurses c3270) \
		$(use_enable tcl tcl3270) \
		$(use_enable X x3270) \
		$(use_with X x) \
		$(use_with X fontdir "${FONTDIR}")
}

src_install() {
	use X && dodir "${FONTDIR}"
	emake DESTDIR="${D}" install{,.man}

	local p
	for p in $(suite3270_makelist) ; do
		cd "${S}/${p}"
		docinto ${p}
		dodoc README*
		use doc && dohtml html/*
	done

	use X && font_src_install
}

pkg_postinst() { use X && font_pkg_postinst ; }
pkg_postrm() { use X && font_pkg_postrm ; }