Monday, June 05, 2023

Re: [update] mail/aerc 0.14.0 -> 0.15.2

> I guess this is fine since it is an executable and not a module. I'm
> usure if this warrants the addition of the python module to the port.
> It should be needed (so that python is added as RDEP), but on the
> other hand this filter not enable by default.

I haven't looked in to the manpages in a while but I'm under the
impression that we cannot mix and match MODGO variables with MODPY
variables. Perhaps this isn't the case anymore? Should it ever become an
problem, one solution would be to split the port.

> > I can't recall if this was the case previously, but I would assume
> > so. After all, this is a golang port so those variables are never set. I am
> > sending this mail from aerc which has been running 0.15.2 for a week and I
> > haven't really encountered any issues.
> >
> >
> > Thoughts? @op is the maintainer so he will will have the final say.
>
> It's missing a bdep on converters/base64, but does it really build it
> for you? I get an error from the 'link' go internal program about a
> wrong usage; doesn't tell me why though. That's why after a bit I
> stopped trying.
>
> I looked again today and after a lot of headscratching, with the help
> of ktrace, I see why it fails to build. Upstream' makefile has this
> gem:
>
> GO_LDFLAGS+=-X main.Flags=$$(echo -- $(GOFLAGS) | base64 | tr -d '\n')
>
> Base64 splits every 72 characters using \r\n, tr deletes \n and the
> shell seems to do word splitting on the carriage return.

Strange, it did build for me and I recompiled it a couple of times just to be
sure before I mailed the diff. But it complained about base64 along with the
usage of deprecated notmuch functions, but from what I remember these has been
here all along. The base64 warning is something that could be fixed but
the deprecated notmuch functions sounds like it is suited to upstream.


``
# github.com/zenhack/go.notmuch
cgo-gcc-prolog:347:11
: warning: 'notmuch_database_open' is deprecated: function deprecated as of libnotmuch 5.4 [-Wdeprecated-declarations]
/usr/local/include/notmuch.h:334:1: note: 'notmuch_database_open' has been explicitly marked deprecated here
/usr/local/include/notmuch.h:69:21: note: expanded from macro 'NOTMUCH_DEPRECATED'
git.sr.ht/~rjarry/aerc/worker/notmuch/lib
``

And here's the that base64 warning,
``
===> Building for aerc-0.15.2
cd /usr/ports/pobj/aerc-0.15.2/git.sr.ht/~rjarry/aerc@v0.0.0-20230511091235-f1772c92f92e && /usr/bin/env -i GO386=softfloat GOCACHE="/usr/ports/pobj/aerc-0.15.2/go-cache" TMPDIR="/usr/ports/pobj/aerc-0.15.2/build-amd64" GOPROXY=file:///usr/ports/pobj/aerc-0.15.2/go_modules GO111MODULE=on GOPATH="/usr/ports/pobj/aerc-0.15.2/go:/usr/local/go-pkg" PORTSDIR="/usr/ports" LIBTOOL="/usr/bin/libtool" PATH='/usr/ports/pobj/aerc-0.15.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin' PREFIX='/usr/local' LOCALBASE='/usr/local' X11BASE='/usr/X11R6' CFLAGS='-O2 -pipe -I/usr/local/include' TRUEPREFIX='/usr/local' DESTDIR='' HOME='/aerc-0.15.2_writes_to_HOME' PICFLAG="-fpic" BINGRP=bin BINOWN=root BINMODE=755 NONBINMODE=644 DIRMODE=755 INSTALL_COPY=-c INSTALL_STRIP= MANGRP=bin MANOWN=root MANMODE=644 BSD_INSTALL_PROGRAM="/usr/ports/pobj/aerc-0.15.2/bin/install -c -m 755" BSD_INSTALL_SCRIPT="/usr/ports/pobj/aerc-0.15.2/bin/install -c -m 755" BSD_INSTALL_DATA="/usr/ports/pobj/aerc-0.15.2/bin/install -c -m 644" BSD_INSTALL_MAN="/usr/ports/pobj/aerc-0.15.2/bin/install -c -m 644" BSD_INSTALL_PROGRAM_DIR="/usr/ports/pobj/aerc-0.15.2/bin/install -d -m 755" BSD_INSTALL_SCRIPT_DIR="/usr/ports/pobj/aerc-0.15.2/bin/install -d -m 755" BSD_INSTALL_DATA_DIR="/usr/ports/pobj/aerc-0.15.2/bin/install -d -m 755" BSD_INSTALL_MAN_DIR="/usr/ports/pobj/aerc-0.15.2/bin/install -d -m 755" gmake CC="cc" CGO_CFLAGS="-O2 -pipe -I/usr/local/include " CGO_LDFLAGS=" -L/usr/local/lib" GOFLAGS="-tags=notmuch -modcacherw -trimpath -v -buildvcs=false -p=1" PREFIX=/usr/local VERSION=0.15.2 LIBTOOL="/usr/bin/libtool" SHARED_LIBS_LOG=/usr/ports/pobj/aerc-0.15.2/build-amd64/shared_libs.log
go build -trimpath -tags=notmuch -modcacherw -trimpath -v -buildvcs=false -p=1 -ldflags "-X main.Version=0.15.2 -X main.Flags=$(echo -- -tags=notmuch -modcacherw -trimpath -v -buildvcs=false -p=1 | base64 | tr -d '\n') -X git.sr.ht/~rjarry/aerc/config.shareDir=/usr/local/share/aerc -X git.sr.ht/~rjarry/aerc/config.libexecDir=/usr/local/libexec/aerc" -o aerc
/bin/sh: base64: not found
``

>
> Can you try with this patch instead? I only use aerc to get an
> immediate notification when I receive an email (the window goes
> urgent) and otherwise only use mblaze, so my testing is minimal.

I see. Your patch fails at the linking stage when converts/base64 is
installed. if I pkg_delete that and remove it from the dependencies list
it compiles fine.

Otherwise I get this:

``
cgo-gcc-prolog:347:11: warning: 'notmuch_database_open' is deprecated: function deprecated as of libnotmuch 5.4 [-Wdeprecated-declarations]
/usr/local/include/notmuch.h:334:1: note: 'notmuch_database_open' has been explicitly marked deprecated here
/usr/local/include/notmuch.h:69:21: note: expanded from macro 'NOTMUCH_DEPRECATED'
git.sr.ht/~rjarry/aerc/worker/notmuch/lib
git.sr.ht/~rjarry/aerc/worker/notmuch
git.sr.ht/~rjarry/aerc/worker
git.sr.ht/~rjarry/aerc/widgets
os/user

github.com/riywo/loginshell
github.com/emersion/go-smtp
git.sr.ht/~rjarry/aerc/lib/ipc
github.com/xo/terminfo
# git.sr.ht/~rjarry/aerc
usage: link [options] main.o
-B note
add an ELF NT_GNU_BUILD_ID note when using ELF
-E entry
set entry symbol name
-H type
set header type
-I linker
use linker as ELF dynamic linker
-L directory
add specified directory to library path
-R quantum
set address rounding quantum (default -1)
-T address
set text segment address (default -1)
-V print version and exit
-X definition
add string value definition of the form importpath.name=value
-a no-op (deprecated)
-asan
enable ASan interface
-aslr
enable ASLR for buildmode=c-shared on windows (default true)
-benchmark string
set to 'mem' or 'cpu' to enable phase benchmarking
-benchmarkprofile base
emit phase profiles to base_phase.{cpu,mem}prof
-buildid id
record id as Go toolchain build id
-buildmode mode
set build mode
-c dump call graph
-capturehostobjs string
capture host object files loaded during internal linking to specified dir
-compressdwarf
compress DWARF if possible (default true)
-cpuprofile file
write cpu profile to file
-d disable dynamic executable
-debugnosplit
dump nosplit call graph
-debugtextsize int
debug text section max size
-debugtramp int
debug trampolines
-dumpdep
dump symbol dependency graph
-extar string
archive program for buildmode=c-archive
-extld linker
use linker when linking in external mode
-extldflags flags
pass flags to external linker
-f ignore version mismatch
-g disable go package data checks
-h halt on error
-importcfg file
read import configuration from file
-installsuffix suffix
set package directory suffix
-k symbol
set field tracking symbol
-libgcc string
compiler support lib for internal linking; use "none" to disable
-linkmode mode
set link mode
-linkshared
link against installed Go shared libraries
-memprofile file
write memory profile to file
-memprofilerate rate
set runtime.MemProfileRate to rate
-msan
enable MSan interface
-n dump symbol table
-o file
write output to file
-pluginpath string
full path name for plugin
-r path
set the ELF dynamic linker search path to dir1:dir2:...
-race
enable race detector
-s disable symbol table
-strictdups int
sanity check duplicate symbol contents during object file reading (1=warn 2=err).
-tmpdir directory
use directory for temporary files
-v print link trace
-w disable DWARF generation
gmake: *** [Makefile:44: aerc] Error 1
*** Error 2 in . (Makefile:51 'do-build')
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2957 '/usr/ports/pobj/aerc-0.15.2/build-amd64/.build_done': @cd /usr/ports/mystuf...)
*** Error 2 in /usr/ports/mystuff/mail/aerc (/usr/ports/infrastructure/mk/bsd.port.mk:2601 'all': @lock=aerc-0.15.2; export _LOCKS_HELD=" a...)
``

> By the way, since you seem to actively use it, would you mind to take
> maintainership? I'll still be around for reviewing diffs and help,
> but would be better to have a maintainer that actually uses it.

Yes why not, I use aerc as my mail client so that works for me.


Best Regards,

Thim Cederlund

No comments:

Post a Comment