ports/190066: [patch] lang/ruby19 (and lang/ruby20, lang/ruby21) fix
Alex Stangl
alex at stangl.us
Wed May 21 13:00:01 UTC 2014
>Number: 190066
>Category: ports
>Synopsis: [patch] lang/ruby19 (and lang/ruby20, lang/ruby21) fix
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed May 21 13:00:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator: Alex Stangl
>Release: FreeBSD 9.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD scout.stangl.us 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243826: Tue Dec 4 06:55:39 UTC 2012 root at obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Makefile was missing ${STAGEDIR} for source of find commands for ${RUBY_RIDIR}.
This would manifest as a problem in one of two ways:
1. If actual ${RUBY_RIDIR} contained leftover directories and files, a bunch
of error messages like this would be emitted:
pkg-static: Plist error, directory listed as a file: /usr/local/share/ri/1.9/system/ACL/ACLList
pkg-static: Plist error, directory listed as a file: /usr/local/share/ri/1.9/system/ACL/ACL
2. If actual ${RUBY_RIDIR} non-existent or empty, then find command would not
actually do anything, i.e., not add anything to the ${TMPPLIST}, since it's
operating out of the real ${RUBY_RIDIR} rather than the staging directory version.
This in turn makes scenario #1 likely to happen since a deinstall won't clean up these files.
I also cleaned up a few of the many warnings emitted. The created.rid files were reported as
orphaned. I believe these should either be deleted from the stage directory before packaging,
or else included as part of the plist. I opted for the latter, as it seems like these files
are harmless and probably actually desired, especially in ${RUBY_SITERIDIR}, if I understand
the purpose of these files correctly.
Although these fixes are shown for lang/ruby19 Makefile, it appears lang/ruby20
and lang/ruby21 need the same fixes.
>How-To-Repeat:
Problem can be demonstrated by trying to package the port when the ${RUBY_RIDIR} has contents
leftover from a previous install.
>Fix:
Index: Makefile
===================================================================
--- Makefile (revision 354748)
+++ Makefile (working copy)
@@ -40,7 +40,7 @@
WRKSRC= ${WRKDIR}/${PORTNAME}-${RUBY_DISTVERSION}
RUBY_VER= 1.9
-USE_BZIP2= yes
+USES= tar:bzip2
USE_RUBY= yes
RUBY_NO_BUILD_DEPENDS= yes
RUBY_NO_RUN_DEPENDS= yes
@@ -207,12 +207,13 @@
#
# Add generated RI files to pkg-plist
#
- @${FIND} -ds ${RUBY_RIDIR}/ ! -type d ! -name created.rid | \
+ @${FIND} -ds ${STAGEDIR}${RUBY_RIDIR}/ ! -type d | \
${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
- @${FIND} -ds ${RUBY_RIDIR}/ -type d -mindepth 1 | \
+ @${FIND} -ds ${STAGEDIR}${RUBY_RIDIR}/ -type d -mindepth 1 | \
${SED} -E -e 's,^${STAGEDIR}${PREFIX}/, at dirrm ,' >> ${TMPPLIST}
+ @${FIND} -ds ${STAGEDIR}${RUBY_SITERIDIR}/ ! -type d | \
+ ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
-
#
# Add generated doxygen files to pkg-plist
#
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list