summaryrefslogtreecommitdiff
blob: d65321b4789919decf8304b443437dd64c1b3465 (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/dev-util/cvsup/cvsup-16.1h.ebuild,v 1.3 2003/07/17 23:23:15 vapier Exp $

S=${WORKDIR}
MY_P="${P/-/-snap-}"
EZM3="ezm3-1.1"
EZM3_TARGET="LINUXLIBC6"
EZM3_INSTALL="${S}/${EZM3}-install"	#// anywhere or having a trailing / makes the compile dies

DESCRIPTION="a faster alternative to cvs"
SRC_URI="ftp://ftp3.freebsd.org/pub/FreeBSD/development/CVSup/sources/${MY_P}.tar.gz
	ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/ezm3/${EZM3}-src.tar.bz2
	ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/ezm3/${EZM3}-${EZM3_TARGET}-boot.tar.bz2"
HOMEPAGE="http://www.cvsup.org/"

SLOT="0"
LICENSE="BSD"
KEYWORDS="x86 ~ppc"
DEPEND="virtual/glibc
	dev-util/yacc
	ppc? ( dev-lang/cm3 )"
RDEPEND="virtual/glibc"

seduse() {
	[ -z "`use ${1}`" ] && echo "${2}" || echo ":"
}

src_unpack() {
	unpack ${A}
	[ ${ARCH} == "ppc" ] && epatch ${FILESDIR}/${PV}-ppc.patch
}

src_compile() {
	if [ ${ARCH} != "ppc" ] ; then
	########################
	### BEGIN EZM3 SETUP ###
	########################

	# when you do make, ezm3 builds & installs at the same time so we control
	# where it is going to install the compiler and stuff (to not violate sandbox)
	cd ${S}/${EZM3}/m3config/src
	cp ${EZM3_TARGET} ${EZM3_TARGET}.old
	sed -e "s:/usr/local:${EZM3_INSTALL}:" \
		${EZM3_TARGET}.old > ${EZM3_TARGET}
	echo "M3CC_MAKE = [\"make\", \"BISON=yacc\"]" >> ${EZM3_TARGET}

	# now we disable X and OpenGL if the user doesnt have them in their USE var
	cp COMMON COMMON.old
	sed -e "s:/usr/local:${EZM3_INSTALL}:" \
	 -e "s:touch:ranlib:" \
	 -e "s:`seduse X 'import_X11():import_X11() is\nend\nproc dont_import_X11()'`:" \
	 -e "s:`seduse opengl 'import_OpenGL():import_OpenGL() is\nend\nproc dont_import_OpenGL()'`:" \
		COMMON.old > COMMON

	# finally we compile the m3 compiler
	# we clear the CFLAGS because:
	#	(1) higher optimizations cause issues
	#	(2) it doesnt matter ... we arent installing the compiler ...
	# we clea the P because:
	#	newer build system uses this variable and having it breaks it
	cd ${S}/${EZM3}
	env -u CFLAGS -u P make || die "ezm3 compile failed"
	fi

	#########################
	### BEGIN CVSUP SETUP ###
	#########################

	# first we disable the gui (if no X) and enable static (if static is in USE)
	cd ${S}/${MY_P}
	local mym3flags; mym3flags=""
	use static	&&	mym3flags="${mym3flags} -DSTATIC"
	use X		||	mym3flags="${mym3flags} -DNOGUI"
	[ "${mym3flags:0:1}" == " " ] && mym3flags="${mym3flags:1}"
	cp Makefile Makefile.old
	sed -e "s:/usr/local:${D}/usr:" \
	 -e "s:^M3FLAGS=:M3FLAGS=${mym3flags}:" \
		Makefile.old > Makefile

	# then we fix the /usr/local/etc/cvsup paths in all the files
	for f in `grep /usr/local/etc * -Rl` ; do
		cp ${f} ${f}.old
		sed -e "s:/usr/local/etc:/etc:" ${f}.old > ${f}
	done

	# then we compile cvsup
	env PATH="${S}/${EZM3}-install/bin:${PATH}" make || die "cvsup compile failed"

	# now we do up the html pages ...
	cd ${S}/${MY_P}/doc
	make || die "html pages failed to compile !?"
	for f in `ls *.html` ; do
		cp ${f} ${f}.old
		sed -e "s:images/::" ${f}.old > ${f}
	done
	mv ${S}/${MY_P}/doc/images/* ${S}/${MY_P}/doc/
}

src_install() {
	S="${S}/${MY_P}"

	for f in `find ${S} -perm +1 -type f | grep -v doc` ; do
		dobin ${f}
	done

	doman ${S}/client/${EZM3_TARGET}/cvsup.1
	doman ${S}/cvpasswd/${EZM3_TARGET}/cvpasswd.1
	doman ${S}/server/${EZM3_TARGET}/cvsupd.8

	dohtml ${S}/doc/*.{html,gif}

	dodoc ${S}/{Acknowledgments,Announce,Blurb,ChangeLog,License,Install}

	dodir /etc/cvsup
	insinto /etc/cvsup
	doins ${FILESDIR}/gentoo.sup
	doins ${FILESDIR}/gentoo_mirror.sup

	exeinto /etc/init.d
	newexe ${FILESDIR}/cvsupd.rc cvsupd
	insinto /etc/conf.d
	newins ${FILESDIR}/cvsupd.confd cvsupd

	dodir /var/cvsup
}