Date: Thu, 02 Aug 2018 06:15:58 +0000 From: bugzilla-noreply@freebsd.org To: perl@FreeBSD.org Subject: maintainer-approval requested: [Bug 230287] Mk/Uses/perl5.mk: Check existence of directory before "find" command usage for this directory : [Attachment 195755] Proposed patch (since 473539 revision) Message-ID: <bug-230287-14331-VYusPOHbZD@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-230287-14331@https.bugs.freebsd.org/bugzilla/> References: <bug-230287-14331@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
lightside <lightside@gmx.com> has asked freebsd-perl mailing list <perl@FreeBSD.org> for maintainer-approval: Bug 230287: Mk/Uses/perl5.mk: Check existence of directory before "find" command usage for this directory https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230287 Attachment 195755: Proposed patch (since 473539 revision) https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D195755&action=3Dedit --- Description --- 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= tens ions/.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 -delete || : -->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=3D4735 39#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@
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-230287-14331-VYusPOHbZD>