On Sat, Jul 07, 2018 at 12:40:47AM BST, Stuart Henderson wrote:
> On 2018/07/06 12:22, Raf Czlonka wrote:
> > Hi all,
> >
> > Given that abook is in ports, could we have support for it enabled
> > in lbdb, please?
> >
> > Regards,
> >
> > Raf
> >
> > Index: databases/lbdb/Makefile
> > ===================================================================
> > RCS file: /cvs/ports/databases/lbdb/Makefile,v
> > retrieving revision 1.19
> > diff -u -p -r1.19 Makefile
> > --- databases/lbdb/Makefile 29 Apr 2016 11:03:43 -0000 1.19
> > +++ databases/lbdb/Makefile 6 Jul 2018 11:19:35 -0000
> > @@ -36,7 +36,6 @@ CONFIGURE_STYLE = gnu
> >
> > CONFIGURE_ARGS += --libdir=${PREFIX}/lib/lbdb \
> > --with-libiconv-prefix=${LOCALBASE} \
> > - --without-abook \
> > --without-addr-email \
> > --without-niscat \
> > --without-gpg \
> >
>
> A bit more than that is needed, but it seems reasonable to add
> it, the extra dependency isn't too heavy.
Well, abook actually is not a dependency - it's only extra
functionality. If it isn't installed no harm done.
> Slight Makefile reordering while there. Does this work for you?
Yes and no - comments inline :^)
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/databases/lbdb/Makefile,v
> retrieving revision 1.19
> diff -u -p -r1.19 Makefile
> --- Makefile 29 Apr 2016 11:03:43 -0000 1.19
> +++ Makefile 6 Jul 2018 23:39:51 -0000
> @@ -4,6 +4,7 @@ COMMENT-main = "little brother's databa
> COMMENT-ldap = LDAP support for lbdb
>
> VERSION = 0.40
> +REVISION-main = 0
D'oh! ;^)
> DISTNAME = lbdb_${VERSION}
> PKGNAME-main = lbdb-${VERSION}
> @@ -18,25 +19,27 @@ MULTI_PACKAGES = -main -ldap
> # GPLv2+
> PERMIT_PACKAGE_CDROM = Yes
>
> +WANTLIB-main = c iconv
> +
> +MASTER_SITES = http://www.spinnaker.de/debian/
> +
> +BUILD_DEPENDS = ${RUN_DEPENDS-main}
> +LIB_DEPENDS-main = converters/libiconv
> +RUN_DEPENDS-main = mail/abook
There's not need for abook to be a run dependency - m_abook module
is only usable if it is both specified in METHODS *and* abook
executable present, ignored otherwise.
> RUN_DEPENDS-ldap = databases/p5-ldap \
> databases/lbdb
>
> -LIB_DEPENDS-main = converters/libiconv
> -WANTLIB-main = c iconv
> LIB_DEPENDS-ldap =
> WANTLIB-ldap =
>
> -MASTER_SITES = http://www.spinnaker.de/debian/
> -
> MAKE_ENV = install_prefix=${WRKINST}
>
> NO_TEST = Yes
> USE_GMAKE = Yes
> CONFIGURE_STYLE = gnu
>
> -CONFIGURE_ARGS += --libdir=${PREFIX}/lib/lbdb \
> +CONFIGURE_ARGS += --libdir=${PREFIX}/lib/lbdb \
> --with-libiconv-prefix=${LOCALBASE} \
> - --without-abook \
> --without-addr-email \
> --without-niscat \
> --without-gpg \
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/databases/lbdb/pkg/PLIST-main,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 PLIST-main
> --- pkg/PLIST-main 15 Jun 2008 07:22:57 -0000 1.1.1.1
> +++ pkg/PLIST-main 6 Jul 2018 23:39:51 -0000
> @@ -8,6 +8,7 @@ lib/lbdb/
> lib/lbdb/lbdb-munge
> lib/lbdb/lbdb_bbdb_query.el
> lib/lbdb/lbdb_lib
> +lib/lbdb/m_abook
Double-d'oh! :^P
> lib/lbdb/m_bbdb
> lib/lbdb/m_fido
> lib/lbdb/m_finger
Now, the main issue. The m_abook module doesn't work properly due
to tab escape sequences (\t) being used in sed regexes - something
sed(1) in base does not cope well with.
All that module does is running the below command:
abook --datafile $HOME/.abook/addressbook --mutt-query "$@" \
| sed -e '1d;s/\([^\t]*\t[^\t]*\).*/\1\tabook/'
but, due to the above, based sed(1) cuts the result short on 2nd
't' in the string, i.e.:
[email protected] Firstabook
or, if the string contains only one 't' or none at all:
[email protected] My Name tabook
It works fine with gsed, which was obviously used when that module
was written/tested, but then gsed would need to become a run
dependency - something I am not keen on.
The "easiest" thing to do, would be to patch /usr/local/lib/lbdb/m_abook
and use literal tabs:
- | sed -e '1d;s/\([^\t]*\t[^\t]*\).*/\1\tabook/'
+ | sed -e '1d;s/\([^ ]* [^ ]*\).*/\1 abook/'
After the above change, it all seems to be working fine.
Thanks for looking into it.
Raf