Makefile.in misses a ${DESTDIR} prefix for several installation rules as dependency or (better) these rules need to be .PHONY. version bump of package may miss files on bump or reinstallation. e.g. vpi_user.h -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h Makefile.in:354: $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h"
(In reply to Felix Neumärker from comment #0) > Makefile.in misses a ${DESTDIR} prefix for several installation rules as > dependency or (better) these rules need to be .PHONY. > > version bump of package may miss files on bump or reinstallation. > > e.g. vpi_user.h > > -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 > ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h > > Makefile.in:354: > $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h > $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h" Can you provide more detailed information about this bug? I've test this package on a clean environment again, the result is: >> >>> Completed installing sci-electronics/iverilog-10.3 into /var/tmp/portage/sci-electronics/iverilog-10.3/image >> * Final size of build directory: 40992 KiB (40.0 MiB) >> * Final size of installed tree: 7668 KiB ( 7.4 MiB) >> strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version >> /usr/lib64/libvpi.a >> /usr/lib64/ivl/v2005_math.vpi >> /usr/lib64/ivl/system.vpi >> /usr/lib64/ivl/vhdlpp >> /usr/lib64/ivl/vhdl_sys.vpi >> /usr/lib64/ivl/ivlpp >> /usr/lib64/ivl/va_math.vpi >> /usr/lib64/ivl/ivl >> /usr/lib64/ivl/vpi_debug.vpi >> /usr/lib64/libveriuser.a >> /usr/lib64/ivl/null.tgt >> /usr/bin/vvp >> /usr/lib64/ivl/stub.tgt >> /usr/lib64/ivl/vvp.tgt >> /usr/lib64/ivl/cadpli.vpl >> /usr/lib64/ivl/vhdl.tgt >> /usr/lib64/ivl/v2009.vpi >> /usr/lib64/ivl/vlog95.tgt >> /usr/lib64/ivl/pcb.tgt >> /usr/lib64/ivl/blif.tgt >> /usr/lib64/ivl/sizer.tgt >> /usr/bin/iverilog >> >>> Installing (1 of 1) sci-electronics/iverilog-10.3::gentoo >> Unable to unshare: EPERM >> Unable to unshare: EPERM >> >>> Recording sci-electronics/iverilog in "world" favorites file... >> * Messages for package sci-electronics/iverilog-10.3: >> * This package has a configure.in file which has long been deprecated. Please >> * update it to use configure.ac instead as newer versions of autotools will die >> * when it finds this file. See https://bugs.gentoo.org/426262 for details. >> >>> Auto-cleaning packages... >> >>> No outdated packages were found on your system. >> * GNU info directory index is up-to-date. And it was success installed. e.g. vpi_user.h, I've checked this file, it was installed to: /usr/include/iverilog/vpi_user.h other similar header files are at: /usr/include/iverilog/_pli_types.h /usr/include/iverilog/sv_vpi_user.h /usr/include/iverilog/acc_user.h /usr/include/iverilog/ivl_target.h /usr/include/iverilog/veriuser.h It doesn't miss the file you mentioned both new installation and re-installation. Do you have environment information, install log and steps to reproduce?
(In reply to Felix Neumärker from comment #0) > Makefile.in misses a ${DESTDIR} prefix for several installation rules as > dependency or (better) these rules need to be .PHONY. > > version bump of package may miss files on bump or reinstallation. > > e.g. vpi_user.h > > -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 > ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h > > Makefile.in:354: > $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h > $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h" The ${DESTDIR} variables are already defined during installation, e.g/., in iverilog-10.3.ebuild, it runs below command to install: emake installdirs DESTDIR="${D}" default The DESTDIR already pre-defined by DESTDIR="${D}" in both ``emake installdirs`` and ``default`` command. For EAPIs 4 and later, the default src_install function is the following [1]: ``` src_install() { if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]] ; then emake DESTDIR="${D}" install fi if ! declare -p DOCS >/dev/null 2>&1 ; then local d for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS \ FAQ CREDITS CHANGELOG ; do [[ -s "${d}" ]] && dodoc "${d}" done elif declare -p DOCS | grep -q "^declare -a " ; then dodoc "${DOCS[@]}" else dodoc ${DOCS} fi } ``` - [1] https://devmanual.gentoo.org/ebuild-writing/functions/src_install/index.html
This is a makefile related bug - not in the ebuild, but it should be somehow fixed by the ebuild (patch) and brought upstream. Clarification: Unpackaging the tarball will have the following date-time stamp: -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h Rule in Makefile Makefile.in:354: $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h" --> So if the header-file in your system exists ($(includedir)/vpi_user.h) is newer then 15. Aug 17:31, then it will not be install to "$(DESTDIR)". So every 2nd install works fine for me. ---- Step to reproduce: $ emerge -avO1 iverilog $ equery f iverilog |grep vpi_user $ emerge -avO1 iverilog $ equery f iverilog |grep vpi_user
(In reply to Felix Neumärker from comment #3) > This is a makefile related bug - not in the ebuild, but it should be somehow > fixed by the ebuild (patch) and brought upstream. > > Clarification: > Unpackaging the tarball will have the following date-time stamp: > > -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 > ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h > > > Rule in Makefile > Makefile.in:354: > $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h > $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h" > > --> So if the header-file in your system exists ($(includedir)/vpi_user.h) > is newer then 15. Aug 17:31, then it will not be install to "$(DESTDIR)". > > So every 2nd install works fine for me. > ---- > Step to reproduce: > > $ emerge -avO1 iverilog > $ equery f iverilog |grep vpi_user > $ emerge -avO1 iverilog > $ equery f iverilog |grep vpi_user Thank you! I understand this bug and have reproduced it.
(In reply to Felix Neumärker from comment #3) > This is a makefile related bug - not in the ebuild, but it should be somehow > fixed by the ebuild (patch) and brought upstream. > > Clarification: > Unpackaging the tarball will have the following date-time stamp: > > -rw-r--r-- 1 portage portage 22K 15. Aug 17:31 > ${PORTAGE_TMPDIR}/sci-electronics/iverilog-10.3/work/iverilog-10_3/vpi_user.h > > > Rule in Makefile > Makefile.in:354: > $(includedir)/vpi_user.h: $(srcdir)/vpi_user.h > $(INSTALL_DATA) $(srcdir)/vpi_user.h "$(DESTDIR)$(includedir)/vpi_user.h" > > --> So if the header-file in your system exists ($(includedir)/vpi_user.h) > is newer then 15. Aug 17:31, then it will not be install to "$(DESTDIR)". > > So every 2nd install works fine for me. > ---- > Step to reproduce: > > $ emerge -avO1 iverilog > $ equery f iverilog |grep vpi_user > $ emerge -avO1 iverilog > $ equery f iverilog |grep vpi_user Pull request have been sent to upstream https://github.com/steveicarus/iverilog/pull/300 Workaround have been sent to gentoo github https://github.com/gentoo/gentoo/pull/14375 https://github.com/gentoo/gentoo/pull/14376
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=560664303060100467ca053a94decb296da113d8 commit 560664303060100467ca053a94decb296da113d8 Author: Huang Rui <vowstar@gmail.com> AuthorDate: 2020-01-29 16:23:37 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2020-01-30 06:33:05 +0000 sci-electronics/iverilog: fix install bug of 10.3 The upstream's Makefile used a very unusual installation method. It may cause overwrite installation bug. Closes: https://bugs.gentoo.org/705412 Package-Manager: Portage-2.3.85, Repoman-2.3.20 Signed-off-by: Huang Rui <vowstar@gmail.com> Signed-off-by: Joonas Niilola <juippis@gentoo.org> .../files/iverilog-10.3-file-missing.patch | 191 +++++++++++++++++++++ sci-electronics/iverilog/iverilog-10.3.ebuild | 4 + 2 files changed, 195 insertions(+)