From: Nicolas Bock <nicolasbock@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] New package neomutt
Date: Mon, 18 Sep 2017 06:02:00 -0600 [thread overview]
Message-ID: <20170918115843.lugsc7dtrjrn72by@rubberducky> (raw)
In-Reply-To: <1502350830.1554.1.camel@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 7790 bytes --]
On Thu, Aug 10, 2017 at 09:40:30AM +0200, Michał Górny wrote:
>On czw, 2017-08-10 at 06:58 +0200, Nicolas Bock wrote:
>> On Mon, Jul 31, 2017 at 09:11:19AM +0200, Nicolas Bock wrote:
>>> Hi,
>>>
>>> I would like to add neomutt to the tree. This new package is meant as
>>> an alternative and not a replacement of the existing mutt package.
>>
>> Thanks for all of the great suggestions and feedback!
>>
>> This is round two. I have update the ebuild with all your
>> suggestions. I have also added support for eselecting between mutt
>> and neomutt. Before the eselect ebuild can land though, we need to
>> rename the mutt binary so that the managed link can be called
>> mutt.
>
>What for? How many people are exactly in the dire need of having both
>installed simultaneously and switching between them? If you really can't
>learn to type the new command, add IUSE=symlink blocking original mutt
>and be done with it. Don't add more unowned files to /usr by another
>poorly written eselect module.
I changed the ebuild such that it can be installed together with
mutt without having to use symlinks or eselet.
>> # Copyright 1999-2017 Gentoo Foundation
>> # Distributed under the terms of the GNU General Public License v2
>>
>> EAPI=6
>>
>> inherit autotools eutils flag-o-matic
>>
>> if [[ ${PV} == 99999999 ]] ; then
>> # live ebuild
>> inherit git-r3
>> EGIT_REPO_URI="https://github.com/neomutt/neomutt.git"
>> EGIT_CHECKOUT_DIR="${WORKDIR}/neomutt-${P}"
>> KEYWORDS=""
>
>This is going to confuse the hell out of ekeyword.
I split the ebuild into two so that this conditional is unnecessary.
>> else
>> SRC_URI="https://github.com/${PN}/${PN}/archive/${P}.tar.gz"
>> KEYWORDS="~amd64 ~x86"
>> fi
>>
>> DESCRIPTION="Teaching an Old Dog New Tricks"
>
>This doesn't tell anybody who doesn't know mutt what this is.
Fixed, I reverted that change.
>> HOMEPAGE="https://www.neomutt.org/"
>>
>> LICENSE="GPL-2"
>> SLOT="0"
>> IUSE="berkdb crypt debug doc gdbm gnutls gpg idn kerberos libressl mbox
>> nls notmuch qdbm sasl selinux slang smime ssl tokyocabinet kyotocabinet
>> lmdb"
>
>Sort lexically.
Fixed.
>>
>> CDEPEND="
>> app-eselect/eselect-mutt
>> app-misc/mime-types
>> nls? ( virtual/libintl )
>> tokyocabinet? ( dev-db/tokyocabinet )
>> qdbm? ( dev-db/qdbm )
>> gdbm? ( sys-libs/gdbm )
>> berkdb? ( >=sys-libs/db-4:= )
>> kyotocabinet? ( dev-db/kyotocabinet )
>> lmdb? ( dev-db/lmdb )
>> gnutls? ( >=net-libs/gnutls-1.0.17 )
>> !gnutls? (
>> ssl? (
>> !libressl? ( >=dev-libs/openssl-0.9.6:0 )
>> libressl? ( dev-libs/libressl )
>> )
>> )
>
>This is not a correct use of 'ssl' flag:
>
> global:ssl: Add support for Secure Socket Layer connections
>
>It's supposed to go top-level, above any implementation flags.
>
>> sasl? ( >=dev-libs/cyrus-sasl-2 )
>> kerberos? ( virtual/krb5 )
>> idn? ( net-dns/libidn )
>> gpg? ( >=app-crypt/gpgme-0.9.0 )
>> smime? (
>> !libressl? ( >=dev-libs/openssl-0.9.6:0 )
>> libressl? ( dev-libs/libressl )
>
>What is the point of preferring gnutls when USE=smime pulls openssl
>anyway?
>
>> )
>> notmuch? ( net-mail/notmuch )
>> slang? ( sys-libs/slang )
>> !slang? ( >=sys-libs/ncurses-5.2:0 )
>
>Why not = slotop? ncurses definitely changed ABI in the past. It's
>something you are supposed to use when needed, not when repoman
>complains about it and you didn't accidentally workaround the check.
The current version of ncurses works, so I removed the version on it. I
also sorted the dependencies.
>Sorting this would also help reviews.
>
>> "
>> DEPEND="${CDEPEND}
>> net-mail/mailbase
>> doc? (
>> dev-libs/libxml2
>> dev-libs/libxslt
>> app-text/docbook-xsl-stylesheets
>> || ( www-client/lynx www-client/w3m www-client/elinks )
>> )"
>> RDEPEND="${CDEPEND}
>> selinux? ( sec-policy/selinux-mutt )
>> "
>>
>> S="${WORKDIR}/${PN}-${P}"
>>
>> src_prepare() {
>> eapply "${FILESDIR}/0001-Rename-mutt-to-neomutt.patch"
>> eapply_user
>> AT_M4DIR="m4" eautoreconf
>> }
>>
>> src_configure() {
>> local myconf=(
>> "$(use_enable crypt pgp)"
>> "$(use_enable debug)"
>> "$(use_enable doc)"
>> "$(use_enable gpg gpgme)"
>> "$(use_enable nls)"
>> "$(use_enable smime)"
>> "$(use_enable notmuch)"
>> "$(use_with idn)"
>> "$(use_with kerberos gss)"
>> "$(use_with sasl)"
>> "$(use_with tokyocabinet)"
>> "$(use_with kyotocabinet)"
>> "$(use_with qdbm)"
>> "$(use_with gdbm)"
>> "$(use_with berkdb bdb)"
>> "$(use_with lmdb)"
>> "--with-$(use slang && echo slang || echo curses)=${EPREFIX}/usr"
>
>usex
Fixed
>> "--sysconfdir=${EPREFIX}/etc/${PN}"
>
>I'd really prefer if you didn't abuse PN to construct paths, and make me
>wonder if upstream really wants 'neomutt' or 'mutt' here.
Up until now upstream was using `mutt` but there is work in progress to
rename it to `neomutt`. I think that there is a legitimate use case for
installing `mutt` and `neomutt` at the same time.
>> "--with-docdir=${EPREFIX}/usr/share/doc/${PN}-${PVR}"
>
>PF?
Fixed.
>> )
>>
>> if [[ ${CHOST} == *-solaris* ]] ; then
>> # arrows in index view do not show when using wchar_t
>> myconf+=( "--without-wc-funcs" )
>> fi
>
>Are you sure that this still applies?
No, and as I don't have access to such a machine I can't test it.
>>
>> # there's no need for gnutls, ssl or sasl without socket support
>
>What is this comment supposed to mean? Looks like copy-paste without
>even reading it.
This was a copy-and-paste leftover. I have removed it. I don't know what
it's supposed to mean either.
>> if use gnutls; then
>> myconf+=( "--with-gnutls" )
>> elif use ssl; then
>> myconf+=( "--with-ssl" )
>> fi
>>
>> if use mbox; then
>> myconf+=( "--with-mailpath=${EPREFIX}/var/spool/mail" )
>> else
>> myconf+=( "--with-homespool=Maildir" )
>> fi
>
>Would configuring both paths do any harm? Maybe it'd make easier for
>user to switch without having to rebuild it.
Good point. I have removed the conditional. I also removed the default
configuration files.
>>
>> econf "${myconf[@]}"
>> }
>>
>> src_install() {
>> emake DESTDIR="${D}" install
>> if use mbox; then
>> insinto /etc/${PN}
>
>You can move the insinto above the 'if'.
I have removed this part.
>> newins "${FILESDIR}"/Muttrc.mbox Muttrc
>> else
>> insinto /etc/${PN}
>> doins "${FILESDIR}"/Muttrc
>> fi
>>
>> # A newer file is provided by app-misc/mime-types. So we link it.
>> rm "${ED}"/etc/${PN}/mime.types || die
>> dosym /etc/mime.types /etc/${PN}/mime.types
>
>Don't use absolute symlinks.
Fixed.
>>
>> # A man-page is always handy, so fake one
>> if use !doc; then
>> emake -C doc DESTDIR="${D}" muttrc.man
>
>Is DESTDIR really necessary here?
No, fixed.
>> # make the fake slightly better, bug #413405
>> sed -e 's#@docdir@/manual.txt#http://www.mutt.org/doc/manual/#' \
>> -e 's#in @docdir@,#at http://www.mutt.org/,#' \
>
>You sure you want to link to the original mutt.org?
True, I changed the link to point to neomutt.
>> -e "s#@sysconfdir@#${EPREFIX}/etc/${PN}#" \
>> -e "s#@bindir@#${EPREFIX}/usr/bin#" \
>> doc/mutt.man > neomutt.1 || die
>> cp doc/muttrc.man neomuttrc.5 || die
>> doman neomutt.1 neomuttrc.5
>> else
>> # nuke manpages that should be provided by an MTA, bug #177605
>> rm "${ED}"/usr/share/man/man5/{mbox,mmdf}.5 \
>> || ewarn "failed to remove files, please file a bug"
>
>die.
Fixed.
>> fi
>>
>> dodoc COPYRIGHT ChangeLog* OPS* README*
>> }
--
Nicolas Bock <nicolasbock@gentoo.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 981 bytes --]
next prev parent reply other threads:[~2017-09-18 12:02 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-31 7:11 [gentoo-dev] New package neomutt Nicolas Bock
2017-07-31 7:23 ` Nicolas Bock
2017-07-31 8:34 ` Patrice Clement
2017-08-10 4:37 ` Nicolas Bock
2017-07-31 12:15 ` Floyd Anderson
2017-08-10 4:34 ` Nicolas Bock
2017-07-31 7:44 ` Michał Górny
2017-07-31 7:59 ` Nicolas Bock
2017-07-31 9:55 ` Matthew Thode
2017-07-31 10:52 ` Fabian Groffen
2017-08-05 20:13 ` Matthew Marchese
2017-08-10 4:58 ` Nicolas Bock
2017-08-10 7:40 ` Michał Górny
2017-08-10 7:54 ` Fabian Groffen
2017-08-10 8:10 ` Michał Górny
2017-08-10 9:35 ` Nicolas Bock
2017-08-10 12:13 ` Marc Schiffbauer
2017-08-10 12:16 ` Fabian Groffen
2017-08-10 14:09 ` Michał Górny
2017-08-10 14:32 ` Fabian Groffen
2017-08-10 13:59 ` Michał Górny
2017-08-17 5:07 ` Daniel Campbell
2017-08-17 7:48 ` Michał Górny
2017-08-18 1:01 ` Daniel Campbell
2017-09-18 12:02 ` Nicolas Bock [this message]
2017-08-10 18:25 ` William Hubbs
2017-09-18 12:08 ` Nicolas Bock
2017-10-03 12:36 ` Nicolas Bock
2017-10-03 20:09 ` Marty E. Plummer
2017-10-03 20:33 ` Nicolas Bock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170918115843.lugsc7dtrjrn72by@rubberducky \
--to=nicolasbock@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox