Date: Thu, 02 Aug 2018 06:15:58 +0000 From: bugzilla-noreply@freebsd.org To: x11@FreeBSD.org Subject: [Bug 230287] Mk/Uses/perl5.mk: Check existence of directory before "find" command usage for this directory Message-ID: <bug-230287-7141@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230287 Bug ID: 230287 Summary: Mk/Uses/perl5.mk: Check existence of directory before "find" command usage for this directory Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Keywords: patch Severity: Affects Only Me Priority: --- Component: Individual Port(s) Assignee: ports-bugs@FreeBSD.org Reporter: lightside@gmx.com CC: mat@FreeBSD.org, perl@FreeBSD.org, vd@FreeBSD.org, x11@FreeBSD.org CC: vd@FreeBSD.org, x11@FreeBSD.org Attachment #195755 maintainer-approval?(perl@FreeBSD.org) Flags: CC: perl@FreeBSD.org Created attachment 195755 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D195755&action= =3Dedit Proposed patch (since 473539 revision) Hello. I noticed, that some ports, which have USES+=3Dperl5 (and USE_PERL5=3Dbuild= ), started to report about non existing "<..>/work/stage/usr/local/lib/perl5/site_perl" directory, when using some "find" command. For example, x11-servers/xorg-server port: -8<-- # cd /usr/ports/x11-servers/xorg-server # make stage <..> find: /usr/ports/x11-servers/xorg-server/work/stage/usr/local/lib/perl5/site_perl= : No such file or directory install -s -m 0644 /usr/ports/x11-servers/xorg-server/work/xorg-server-1.18.4/hw/xfree86/dixmo= ds/.libs/libglx.so /usr/ports/x11-servers/xorg-server/work/stage/usr/local/lib/xorg/modules/ex= tensions/.xorg/ <..> # make clean =3D=3D=3D> Cleaning for xorg-server-1.18.4_9,1 -->8- ftp/wget port: -8<-- # cd /usr/ports/ftp/wget # make stage <..> Making install in testenv find: /usr/ports/wget/work/stage/usr/local/lib/perl5/site_perl: No such fil= e or directory =3D=3D=3D=3D> Compressing man pages (compress-man) <..> # make clean =3D=3D=3D> Cleaning for wget-1.19.5 -->8- I found, that this is because of ports r473539 changes, which added removal= of README.pod files, if they exists in "${STAGEDIR}${PREFIX}/${SITE_PERL_REL}" directory. I propose to add some check for "${STAGEDIR}${PREFIX}/${SITE_PERL_REL}" directory before find command usage for this directory: -8<-- @[ -d "${STAGEDIR}${PREFIX}/${SITE_PERL_REL}" ] && \ ${FIND} ${STAGEDIR}${PREFIX}/${SITE_PERL_REL} -name README.pod -del= ete || : -->8- Similar to what was used for "${STAGEDIR}${SITE_MAN3}" directory: https://svnweb.freebsd.org/ports/head/Mk/Uses/perl5.mk?view=3Dmarkup&pathre= v=3D473539#l306 -8<-- @[ -d "${STAGEDIR}${SITE_MAN3}" ] && \ ${FIND} ${STAGEDIR}${SITE_MAN3} -name '*::README.3' -delete || : -->8- How to check: % [ -d "/usr/ports" ] && echo exists || echo not exists exists % find /usr/ports -maxdepth 1 -name Makefile /usr/ports/Makefile % cd /usr/ports && find * -maxdepth 0 -name Makefile Makefile % [ -d "/usr/ports/nonexistent" ] && echo exists || echo not exists not exists % find /usr/ports/nonexistent -maxdepth 1 -name Makefile find: /usr/ports/nonexistent: No such file or directory % [ -d "/usr/ports/nonexistent" ] && find /usr/ports/nonexistent -maxdepth 1 -name Makefile Also possible to redirect message about non-existing directory to /dev/null: % sh -c "find /usr/ports/nonexistent -maxdepth 1 -name Makefile 2>/dev/null" % sh -c "cd /usr/ports/nonexistent 2>/dev/null && find * -maxdepth 0 -name Makefile" CC: mat@ --=20 You are receiving this mail because: You are on the CC list for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-230287-7141>