net-dialup/mgetty: add support for /usr merge
authorAlexander Tsoy <alexander@tsoy.me>
Wed, 31 Jul 2019 22:01:02 +0000 (01:01 +0300)
committerJoonas Niilola <juippis@gentoo.org>
Thu, 1 Aug 2019 06:07:15 +0000 (09:07 +0300)
Closes: https://bugs.gentoo.org/690362
Package-Manager: Portage-2.3.66, Repoman-2.3.11
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Closes: https://github.com/gentoo/gentoo/pull/12493
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
net-dialup/mgetty/mgetty-1.2.1-r1.ebuild [new file with mode: 0644]

diff --git a/net-dialup/mgetty/mgetty-1.2.1-r1.ebuild b/net-dialup/mgetty/mgetty-1.2.1-r1.ebuild
new file mode 100644 (file)
index 0000000..a188806
--- /dev/null
@@ -0,0 +1,178 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit flag-o-matic toolchain-funcs user
+
+DESCRIPTION="fax and voice modem programs"
+HOMEPAGE="http://mgetty.greenie.net/"
+SRC_URI="ftp://mgetty.greenie.net/pub/mgetty/source/1.2/${P}.tar.gz"
+
+DEPEND="
+       dev-lang/perl
+       sys-apps/groff
+       sys-apps/texinfo
+       virtual/awk
+       fax? (
+               !net-misc/efax
+               !net-misc/hylafax
+       )
+"
+RDEPEND="${DEPEND}
+       fax? ( media-libs/netpbm app-text/ghostscript-gpl )
+"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="+fax fidonet split-usr"
+
+pkg_setup() {
+       enewgroup fax
+       enewuser fax -1 -1 /dev/null fax
+}
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.1.36-callback.patch
+       "${FILESDIR}"/${PN}-1.1.36-tmpfile.patch
+       "${FILESDIR}"/${PN}-1.1.37-qa-fixes.patch
+       "${FILESDIR}"/${PN}-1.2.1-Lucent.c.patch
+       "${FILESDIR}"/${PN}-1.2.1-gentoo.patch
+)
+
+src_prepare() {
+       default
+
+       chmod +x mkidirs || die
+
+       # don't install fax related files - bug #195467
+       use fax || eapply "${FILESDIR}/${PN}-1.1.37-nofax.patch"
+
+       sed -i -e 's:/usr/local/lib/mgetty+sendfax:/etc/mgetty+sendfax:' faxrunq.config || die 'changing mgetty config dir failed'
+       sed -i -e 's:/usr/local/bin/g3cat:/usr/bin/g3cat:' faxrunq.config fax/faxspool.rules || die 'changing g3cat path failed'
+
+       sed -e "/^doc-all:/s/mgetty.asc mgetty.info mgetty.dvi mgetty.ps/mgetty.info/" \
+               -i doc/Makefile || die 'first sed on doc/Makefile failed'
+
+       sed -i \
+               -e 's:^CC=:CC?=:g' \
+               -e 's:^CFLAGS=:CFLAGS?=:g' \
+               {,*/}Makefile || die
+       sed -i \
+               -e 's:^AR=:AR?=:g' \
+               -e 's:^CFLAGS=:CFLAGS+= -I..:g' \
+               -e 's:^RANLIB=:RANLIB?=:g' \
+               */Makefile || die
+}
+
+src_configure() {
+       tc-export AR CC RANLIB
+       use fidonet && append-cppflags "-DFIDO"
+       append-cppflags "-DAUTO_PPP"
+
+       sed -e 's:var/log/mgetty:var/log/mgetty/mgetty:' \
+               -e 's:var/log/sendfax:var/log/mgetty/sendfax:' \
+               -e 's:\/\* \(\#define CNDFILE "dialin.config"\) \*\/:\1:' \
+               -e 's:\(\#define FAX_NOTIFY_PROGRAM\).*:\1 "/etc/mgetty+sendfax/new_fax":' \
+               policy.h-dist > policy.h || die 'creating policy.h failed'
+
+       sed -i \
+               -e "s/\$(CFLAGS) -o newslock/${CFLAGS} ${LDFLAGS} -Wall -o newslock/" \
+               -e "s/\$(LDLAGS)/${LDFLAGS}/" \
+               {,fax/}Makefile || die
+}
+
+src_compile() {
+       local target
+       for target in mgetty sedscript all vgetty;do
+               VARTEXFONTS="${T}"/fonts emake prefix=/usr \
+                       CONFDIR=/etc/mgetty+sendfax \
+                       CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+                       LDFLAGS="${LDFLAGS}" \
+                       ${target}
+       done
+}
+
+src_install () {
+       # parallelization issue: vgetty-install target fails if install target
+       #                        isn't finished
+       local target
+       for target in install "vgetty-install install-callback"; do
+               emake prefix="${D}/usr" \
+                       INFODIR="${D}/usr/share/info" \
+                       CONFDIR="${D}/etc/mgetty+sendfax" \
+                       MAN1DIR="${D}/usr/share/man/man1" \
+                       MAN4DIR="${D}/usr/share/man/man4" \
+                       MAN5DIR="${D}/usr/share/man/man5" \
+                       MAN8DIR="${D}/usr/share/man/man8" \
+                       SBINDIR="${D}/usr/sbin" \
+                       BINDIR="${D}/usr/bin" \
+                       VOICE_DIR="${D}/var/spool/voice" \
+                       PHONE_GROUP=fax \
+                       PHONE_PERMS=755 \
+                       spool="${D}/var/spool" \
+                       ${target}
+       done
+
+       keepdir /var/log/mgetty
+
+       #Install mgetty into /sbin (#119078)
+       if use split-usr; then
+               dodir /sbin
+               mv "${D}"/usr/sbin/mgetty "${D}"/sbin || die
+               dosym ../../sbin/mgetty /usr/sbin/mgetty
+       fi
+
+       #Don't install ct (#106337)
+       rm "${D}"/usr/bin/ct || die "failed to remove useless ct program"
+
+       dodoc BUGS ChangeLog README.1st Recommend THANKS TODO \
+               doc/*.txt doc/modems.db
+       doinfo doc/mgetty.info
+
+       docinto vgetty
+       dodoc voice/{Readme,Announce,ChangeLog,Credits}
+
+       docinto vgetty/doc
+       dodoc voice/doc/*
+
+       if use fax; then
+               mv samples/new_fax.all samples_new_fax.all || die "move failed."
+               docinto samples
+               dodoc samples/*
+
+               docinto samples/new_fax
+               dodoc samples_new_fax.all/*
+       fi
+
+       if ! use fax; then
+               insinto /usr/share/${PN}/frontends
+               doins -r frontends/{voice,network}
+       else
+               insinto /usr/share/${PN}
+               doins -r frontends
+       fi
+       insinto /usr/share/${PN}
+       doins -r patches
+       insinto /usr/share/${PN}/voice
+       doins -r voice/{contrib,Perl,scripts}
+
+       diropts -m 0750 -o fax -g fax
+       dodir /var/spool/voice
+       keepdir /var/spool/voice/incoming
+       keepdir /var/spool/voice/messages
+       if use fax; then
+               dodir /var/spool/fax
+               dodir /var/spool/fax/outgoing
+               keepdir /var/spool/fax/outgoing/locks
+               keepdir /var/spool/fax/incoming
+       fi
+}
+
+pkg_postinst() {
+       elog "Users who wish to use the fax or voicemail capabilities must be members"
+       elog "of the group fax in order to access files"
+       elog
+       elog "If you want to grab voice messages from a remote location, you must save"
+       elog "the password in /var/spool/voice/.code file"
+}