Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clean build fails in 'perl/annotator' : "No rule to make target 'all'" #4800

Open
pgnd opened this issue Jan 26, 2024 · 1 comment
Open

clean build fails in 'perl/annotator' : "No rule to make target 'all'" #4800

pgnd opened this issue Jan 26, 2024 · 1 comment

Comments

@pgnd
Copy link

pgnd commented Jan 26, 2024

clean configure succeeds, with no fatal errors,

cd /builddir/cyrus-imapd
git clean -xfd
git reset --hard
git pull
git checkout master
autoreconf -vif

export CLD2_CFLAGS="-I/usr/include/cld2"
export CLD2_LIBS="-L/usr/lib64 -lcld2"
./configure \
 --with-extraident="Fedora" \
 --with-cyrus-user=cyrus \
  --disable-coverage \
  --disable-cyrusdb-benchmarks \
  --disable-dependency-tracking \
  --disable-maintainer-mode \
  --disable-silent-rules \
 --prefix=/usr/local/cyrus-imapd-pgnd \
 --enable-shared --disable-static \
 --enable-autocreate \
 --enable-backup \
 --enable-calalarmd \
 --enable-murder \
 --enable-nntp \
 --disable-objectstore \
  --without-caringo \
  --without-openio \
 --enable-pcre2 --disable-pcre \
 --enable-sieve \
 --enable-idled \
 --enable-jmap \
  --enable-http \
  --enable-xapian \
 --enable-replication \
 --disable-srs \
 --disable-unit-tests \
 --with-brotli \
 --with-clamav \
 --with-cld2 \
 --with-gnu-ld \
 --without-guesstz \
 --with-krbimpl=mit \
 --without-ldap \
 --without-libwrap \
 --with-nghttp2 \
 --with-openssl \
 --with-perl \
 --without-sphinx-build \
 --with-sqlite \
  --without-mysql \
  --without-pgsql \
  --with-syslogfacility=MAIL \
 --with-wslay \
 --with-zstd

	...
	configure: creating ./config.status
	config.status: creating perl/sieve/managesieve/MANIFEST
	config.status: creating perl/imap/MANIFEST
	config.status: creating perl/annotator/MANIFEST
	config.status: creating libcyrus_imap.pc
	config.status: creating libcyrus_min.pc
	config.status: creating libcyrus.pc
	config.status: creating libcyrus_sieve.pc
	config.status: creating Makefile
	config.status: creating perl/annotator/Makefile.PL
	config.status: creating perl/imap/Makefile.PL
	config.status: creating perl/sieve/managesieve/Makefile.PL
	config.status: creating config.h
	config.status: executing depfiles commands
	config.status: executing libtool commands
	config.status: executing perl/annotator/Makefile commands
	Checking if your kit is complete...
	Looks good
	Only one of PREFIX or INSTALL_BASE can be given.  Not both.
	Can't open Makefile: No such file or directory.
	config.status: executing perl/imap/Makefile commands
	Checking if your kit is complete...
	Looks good
	Only one of PREFIX or INSTALL_BASE can be given.  Not both.
	Can't open Makefile: No such file or directory.
	config.status: executing perl/sieve/managesieve/Makefile commands
	Checking if your kit is complete...
	Looks good
	Only one of PREFIX or INSTALL_BASE can be given.  Not both.
	Can't open Makefile: No such file or directory.

	Cyrus Server configured components

	   gssapi:             yes
	   autocreate:         yes
	   idled:              yes
	   httpd:              yes
	   kerberos V4:        no
	   murder:             yes
	   nntpd:              yes
	   replication:        yes
	   sieve:              yes
	   srs:                no
	   calalarmd:          yes
	   jmap:               yes
	   objectstore:        no
	   backup:             yes
	   com_err:

	External dependencies:
	   ldap:               no
	   openssl:            yes
	   zlib:               yes
	   jansson:            yes
	   pcre:               no
	   pcre2:              yes
	   clamav:             yes
	   -----------------------
	   caringo:            no
	   openio:             no
	   -----------------------
	   nghttp2:            yes
	   wslay:              yes
	   brotli:             yes
	   zstd:               yes
	   xml2:               yes
	   ical:               yes
	   icalvcard:          no
	   shapelib:           yes
	   icu4c:              yes
	   chardet:            yes
	   cld2:               yes
	   guesstz:            no

	Database support:
	   mysql:              no
	   postgresql:         no
	   sqlite:             yes
	   zeroskip:           no

	Search engine:
	   squat:              yes
	   xapian:             yes
	   xapian_cjk_tokens:  ngrams

	iCalendar features:
	   ctrl:               yes

	Documentation dependencies:
	   sphinx-build:
	   Pod::POM::View::Restructured:  yes
	   GitPython:          yes

	Installation directories:
	   prefix:             /usr/local/cyrus-imapd-pgnd
	   sysconfdir:         /etc

	Build info:
	   shared:             yes
	   static:             no
	   cflags:
	   cxxflags:
	   libs:                -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv -lresolv  -lresolv   -lpcre2-8 -lpcre2-posix -lz -lxml2 -lical -licalss -licalvcal  -lsqlite3
	   ldflags:
	   libm:               -lm
	   unit tests (cunit): no
	   xxd:                /usr/bin/xxd

working on a build, of master, in a fedora 39 mock chroot

build fails, with not much detail @ V=1,

make V=1 -j1
	...
	touch man/mupdate.8
	touch man/cyradm.8
	touch man/sievec.8
	touch man/sieved.8
	make[2]: Leaving directory '/builddir/cyrus-imapd'
	Making all in perl/annotator
	make[2]: Entering directory '/builddir/cyrus-imapd/perl/annotator'
	make[2]: *** No rule to make target 'all'.  Stop.
	make[2]: Leaving directory '/builddir/cyrus-imapd/perl/annotator'
	make[1]: *** [Makefile:7697: all-recursive] Error 1
	make[1]: Leaving directory '/builddir/cyrus-imapd'
	make: *** [Makefile:3407: all] Error 2
@pgnd
Copy link
Author

pgnd commented Jan 26, 2024

'solved'. not cleanly, tho ...
i'll comment here fyi.

the hint's in "Only one of PREFIX or INSTALL_BASE can be given. Not both."

i'm rpmbuild-ing in a Fedora chroot.
cyrus-imap's required perl mod prereq for documentation,

Pod::POM::View::Restructured

is unpackaged by the distro.
so I install in the build env with

cpanm Pod::POM::View::Restructured

which works fine locally, where I have root.
in Fedora's online COPR builder, I don't.
so I setup perl local::lib pointing to a user-accessible path.
works fine, but leaves

printenv | grep PERL_MM_OPT
  PERL_MM_OPT=INSTALL_BASE=...

INSTALL_BASE and PREFIX are mutually exclusive when perl make building. a bit more reading @

https://git.vger.kernel.narkive.com/FweDSShR/patch-perl-makefile-unset-install-base-when-making-perl-mak

in this use case / build env, unset before configure + make solves it:

	cpanm Pod::POM::View::Restructured
+	unset PERL_MM_OPT
	./configure ...
	make

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant