Index: lang/rust/Makefile =================================================================== --- lang/rust/Makefile +++ lang/rust/Makefile @@ -44,9 +44,6 @@ CONFLICTS_INSTALL?= rust-nightly -PLIST_FILES= lib/rustlib/components \ - lib/rustlib/rust-installer-version - OPTIONS_DEFINE= DOCS GDB SOURCES WASM GDB_DESC= Install ports gdb (necessary for debugging rust programs) SOURCES_DESC= Install source files @@ -197,48 +194,26 @@ ${SETENV} ${MAKE_ENV} DESTDIR=${STAGEDIR} ${PYTHON_CMD} \ x.py install --config=config.toml --jobs=${MAKE_JOBS_NUMBER} -# In post-install, we use the manifests generated during Rust install -# to in turn generate the PLIST. We do that, instead of the regular +# In post-install, we autogenerate the plist file. +# We do that, instead of the regular # `pkg-plist`, because several libraries have a computed filename based # on the absolute path of the source files. As it is user-specific, we # can't know their filename in advance. # -# Both rustc and Cargo components install the same README.md and LICENSE -# files. The install process backs up the first copy to install the -# second. Thus here, we need to remove those backups. We also need to -# dedup the entries in the generated PLIST, because both components' -# manifests list them. -# # We fix manpage entries in the generated manifests because Rust # installs them uncompressed but the Ports framework compresses them. post-install: - for f in ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-*; do \ - ${REINPLACE_CMD} -i '' -E \ - -e 's,:${STAGEDIR},:,' \ - -e 's,(share/man/man[1-9]/.*\.[0-9]),\1.gz,' \ - "$$f"; \ - ${ECHO_CMD} "$${f#${STAGEDIR}}" >> ${TMPPLIST}; \ - ${AWK} '\ - /^file:/ { \ - file=$$0; \ - sub(/^file:/, "", file); \ - print file; \ - } \ - /^dir:/ { \ - dir=$$0; \ - sub(/^dir:/, "", dir); \ - system("find ${STAGEDIR}" dir " -type f | ${SED} -E -e \"s,${STAGEDIR},,\""); \ - }' \ - "$$f" >> ${TMPPLIST}; \ - done - ${RM} -r ${STAGEDIR}${PREFIX}/share/doc/rust/*.old - ${SORT} -u < ${TMPPLIST} > ${TMPPLIST}.uniq - ${MV} ${TMPPLIST}.uniq ${TMPPLIST} - @${RM} \ - ${STAGEDIR}${PREFIX}/lib/rustlib/install.log \ - ${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh + ${RM} -r ${STAGEDIR}${PREFIX}${DOCSDIR}/*.old \ + ${STAGEDIR}${PREFIX}${DOCSDIR}/html/.lock \ + ${STAGEDIR}${PREFIX}${DOCSDIR}/html/.stamp \ + ${STAGEDIR}${PREFIX}/lib/rustlib/install.log \ + ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-* \ + ${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh @${FIND} ${STAGEDIR}${PREFIX}/bin -exec ${FILE} -i {} + | ${AWK} -F: \ '/executable|sharedlib/ { print $$1 }' | ${XARGS} ${STRIP_CMD} + @${FIND} ${STAGEDIR}${PREFIX} -not -type d | ${SORT} | \ + ${REINPLACE_CMD} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} + ${REINPLACE_CMD} -i '' -E 's,(share/man/man[1-9]/.*\.[0-9]),\1.gz,' ${TMPPLIST} post-install-SOURCES-on: # Silence stage-qa warnings by sanitizing permissions on sources