diff --git a/Mk/Uses/ruby.mk b/Mk/Uses/ruby.mk index d410418a784f..520ef2e23d4e 100644 --- a/Mk/Uses/ruby.mk +++ b/Mk/Uses/ruby.mk @@ -1,350 +1,350 @@ # Provide support for Ruby releated ports. # # Feature: ruby # Usage: USES=ruby[:args,..] # Valid ARGS: build, extconf, run, setup # ARGS description: # build Says that ruby is required only for build time. # extconf Says that the port uses extconf.rb to configure. # none Says that no dependency is added to the port. # Intended to be used with lang/ruby*. # run Says that ruby is required only for run time. # setup Says that the port uses setup.rb to configure and # build. # # [variables that a user may define] # # RUBY_VER - (See below) # RUBY_DEFAULT_VER - Set to (e.g.) "3.2" if you want to refer to "ruby32" # just as "ruby". # RUBY_ARCH - (See below) # # [variables that each port can define] # # RUBY - Set to full path of ruby. If you set this, the values # of the following variables are automatically obtained # from the ruby executable: RUBY_VER, RUBY_VERSION, # RUBY_ARCH, RUBY_LIBDIR, RUBY_ARCHLIBDIR, # RUBY_SITELIBDIR, and RUBY_SITEARCHLIBDIR. # RUBY_VER - Set to the alternative short version of ruby in the # form of `x.y' (see below for current value). # RUBY_EXTCONF - Set to the alternative name of extconf.rb # (default: extconf.rb). # RUBY_EXTCONF_SUBDIRS - Set to list of subdirectories, if multiple modules # are included. # RUBY_SETUP - Set to the alternative name of setup.rb # (default: setup.rb). # # [variables that each port should not (re)define] # # RUBY_PKGNAMEPREFIX - Common PKGNAMEPREFIX for ruby ports # (default: ruby${RUBY_SUFFIX}-) # RUBY_VERSION - Full version of ruby without preview/beta suffix in # the form of `x.y.z' (see below for current value). # RUBY_VERSION_CODE - Integer version of RUBY_VERSION in the form of # `xyz'. # RUBY_DISTVERSION - DISTVERSION for the standard ruby ports (ruby, # ruby-gdbm, etc.). # RUBY_PORTVERSION - PORTVERSION for the standard ruby ports (ruby, # ruby-gdbm, etc.). # RUBY_PORTREVISION - PORTREVISION for the standard ruby ports. # RUBY_PORTEPOCH - PORTEPOCH for the standard ruby ports. # RUBY_DISTNAME - DISTNAME for the standard ruby ports, i.e. the # basename of the ruby distribution tarball. # RUBY_PATCHFILES - PATCHFILES for the standard ruby ports, i.e. the # basename of the ruby distribution tarball. # RUBY_WRKSRC - WRKSRC for the ruby port. # MASTER_SITE_SUBDIR_RUBY - MASTER_SITE_SUBDIR for the ruby distfiles. # # RUBY_SHLIBVER - Major version of libruby (see below for current # value). # RUBY_ARCH - Set to target architecture name. # (e.g. i386-freebsd7) # RUBY_SUFFIX - Suffix for ruby binaries and directories # (${RUBY_VER:S/.//}). # RUBY_WITHOUT_SUFFIX - Always ${LOCALBASE}/bin/ruby. # RUBY_WITH_SUFFIX - Always ${RUBY_WITHOUT_SUFFIX}${RUBY_SUFFIX}. # # RUBY_MODNAME - Set to the module name (default: ${PORTNAME}). # # RUBY_BASE_PORT - Port path of base ruby without PORTSDIR, without # suffix except version. # RUBY_PORT - Port path of ruby without PORTSDIR. # # DEPEND_RUBY - BUILD_DEPENDS/RUN_DEPENDS entry for ruby. # # RUBY_LIBDIR - Installation path for architecture independent # libraries. # RUBY_ARCHLIBDIR - Installation path for architecture dependent # libraries. # RUBY_SITELIBDIR - Installation path for site architecture independent # libraries. # RUBY_SITEARCHLIBDIR - Installation path for site architecture dependent # libraries. # RUBY_DOCDIR - Installation path for documents. # RUBY_EXAMPLESDIR - Installation path for examples. # RUBY_RIDIR - Installation path for site architecture independent ri # documents. # RUBY_SITERIDIR - Installation path for site architecture dependent ri # documents. # RUBY_MODDOCDIR - Installation path for the module's documents. # RUBY_MODEXAMPLESDIR - Installation path for the module's examples. # # MAINTAINER: ruby@FreeBSD.org .if !defined(_INCLUDE_USES_RUBY_MK) _INCLUDE_USES_RUBY_MK= yes _valid_ARGS= build extconf none run setup # "USES=gem" implies "USES=ruby" . if defined(_INCLUDE_USES_GEM_MK) ruby_ARGS= . endif # Sanity check . for arg in ${ruby_ARGS} . if empty(_valid_ARGS:M${arg}) IGNORE= Incorrect 'USES+= ruby:${ruby_ARGS}' usage: argument [${arg}] is not recognized . endif . endfor . if defined(RUBY_DEFAULT_VER) WARNING+= "RUBY_DEFAULT_VER is defined, consider using DEFAULT_VERSIONS=ruby=${RUBY_DEFAULT_VER} instead" . endif RUBY_DEFAULT_VER?= ${RUBY_DEFAULT} RUBY_VER?= ${RUBY_DEFAULT_VER} . if defined(RUBY) . if !exists(${RUBY}) IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it does not seem to exist. Please specify an already installed ruby executable . endif _RUBY_TEST!= ${RUBY} -e 'begin; require "rbconfig"; puts "ok" ; rescue LoadError; puts "error"; end' . if !empty(_RUBY_TEST) && ${_RUBY_TEST} != "ok" IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it failed to include rbconfig. Please specify a properly installed ruby executable . endif _RUBY_CONFIG= ${RUBY} -r rbconfig -e 'C = RbConfig::CONFIG' -e RUBY_VERSION!= ${_RUBY_CONFIG} 'puts C["ruby_version"]' RUBY_SUFFIX?= # empty RUBY_ARCH!= ${_RUBY_CONFIG} 'puts C["target"]' _RUBY_SYSLIBDIR!= ${_RUBY_CONFIG} 'puts C["libdir"]' _RUBY_SITEDIR!= ${_RUBY_CONFIG} 'puts C["sitedir"]' _RUBY_VENDORDIR!= ${_RUBY_CONFIG} 'puts C["vendordir"]' . else RUBY?= ${LOCALBASE}/bin/ruby${RUBY_SUFFIX} . if defined(RUBY_VER) # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . if ${RUBY_VER} == 3.2 # # Ruby 3.2 # RUBY_DISTVERSION= 3.2.7 RUBY_PORTREVISION= 0 . elif ${RUBY_VER} == 3.3 # # Ruby 3.3 # -RUBY_DISTVERSION= 3.3.7 +RUBY_DISTVERSION= 3.3.8 RUBY_PORTREVISION= 0 # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . else # # Other versions # IGNORE= Only ruby 3.2 and 3.3 are supported _INVALID_RUBY_VER= 1 . endif RUBY_PORTEPOCH= 1 RUBY_VERSION= ${RUBY_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/} . endif # defined(RUBY_VER) . if !defined(_INVALID_RUBY_VER) RUBY32?= "@comment " RUBY33?= "@comment " . if defined(BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}) . if ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} == "yes" BROKEN= does not build with Ruby ${RUBY_VER} . else BROKEN= ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} . endif . endif RUBY_WRKSRC= ${WRKDIR}/ruby-${RUBY_DISTVERSION} RUBY_CONFIGURE_ARGS+= --with-rubyhdrdir="${PREFIX}/include/ruby-${RUBY_VER}/" \ --with-rubylibprefix="${PREFIX}/lib/ruby" \ --docdir="${RUBY_DOCDIR}" \ --with-soname=ruby${RUBY_SUFFIX} CONFIGURE_TARGET?= ${ARCH}-portbld-${OPSYS:tl}${OSREL:C/\..*//} RUBY_ARCH?= ${ARCH}-${OPSYS:tl}${OSREL:C/\..*//} _RUBY_SYSLIBDIR?= ${PREFIX}/lib _RUBY_SITEDIR?= ${_RUBY_SYSLIBDIR}/ruby/site_ruby _RUBY_VENDORDIR?= ${_RUBY_SYSLIBDIR}/ruby/vendor_ruby . endif . endif # defined(RUBY) . if !defined(_INVALID_RUBY_VER) RUBY_DEFAULT_SUFFIX?= ${RUBY_DEFAULT_VER:S/.//} RUBY_PORTVERSION?= ${RUBY_DISTVERSION:tl:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^a-z0-9+]+/./g} MASTER_SITE_SUBDIR_RUBY?= ${RUBY_VER} RUBY_DISTNAME?= ruby-${RUBY_DISTVERSION} RUBY_WRKSRC?= ${WRKDIR}/${RUBY_DISTNAME} RUBY_RELVERSION_CODE?= ${RUBY_RELVERSION:S/.//g} RUBY_VERSION_CODE?= ${RUBY_VERSION:S/.//g} RUBY_VER= ${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/} RUBY_SUFFIX= ${RUBY_VER:S/.//} RUBY_WITHOUT_SUFFIX?= ${LOCALBASE}/bin/ruby RUBY_WITH_SUFFIX?= ${RUBY_WITHOUT_SUFFIX}${RUBY_SUFFIX} RUBY_PKGNAMEPREFIX?= ruby${RUBY_SUFFIX}- RUBY_SHLIBVER?= ${RUBY_VER:S/.//} RUBY_CONFIGURE_ARGS+= --program-prefix="" . if ${RUBY_VER} != ${RUBY_DEFAULT_VER} DEPENDS_ARGS+= RUBY_VER=${RUBY_VER} . endif RUBY_CONFIGURE_ARGS+= --program-suffix="${RUBY_SUFFIX}" RUBY_MODNAME?= ${PORTNAME} # Ports RUBY_BASE_PORT?= lang/ruby${RUBY_VER:S/.//} RUBY_PORT?= ${RUBY_BASE_PORT} # Depends DEPEND_RUBY?= ${RUBY}:${RUBY_PORT} # Directories RUBY_LIBDIR?= ${_RUBY_SYSLIBDIR}/ruby/${RUBY_VER} RUBY_ARCHLIBDIR?= ${RUBY_LIBDIR}/${RUBY_ARCH} RUBY_SITELIBDIR?= ${_RUBY_SITEDIR}/${RUBY_VER} RUBY_SITEARCHLIBDIR?= ${RUBY_SITELIBDIR}/${RUBY_ARCH} RUBY_VENDORLIBDIR?= ${_RUBY_VENDORDIR}/${RUBY_VER} RUBY_VENDORARCHLIBDIR?= ${RUBY_VENDORLIBDIR}/${RUBY_ARCH} RUBY_DOCDIR?= ${PREFIX}/share/doc/ruby${RUBY_SUFFIX} RUBY_EXAMPLESDIR?= ${PREFIX}/share/examples/ruby${RUBY_SUFFIX} RUBY_RIDIR?= ${PREFIX}/share/ri/${RUBY_VER}/system RUBY_SITERIDIR?= ${PREFIX}/share/ri/${RUBY_VER}/site RUBY_MODDOCDIR?= ${RUBY_DOCDIR}/${RUBY_MODNAME} RUBY_MODEXAMPLESDIR?= ${RUBY_EXAMPLESDIR}/${RUBY_MODNAME} # PLIST PLIST_RUBY_DIRS= RUBY_LIBDIR="${RUBY_LIBDIR}" \ RUBY_ARCHLIBDIR="${RUBY_ARCHLIBDIR}" \ RUBY_SITELIBDIR="${RUBY_SITELIBDIR}" \ RUBY_SITEARCHLIBDIR="${RUBY_SITEARCHLIBDIR}" \ RUBY_VENDORLIBDIR="${RUBY_VENDORLIBDIR}" \ RUBY_VENDORARCHLIBDIR="${RUBY_VENDORARCHLIBDIR}" \ RUBY_MODDOCDIR="${RUBY_MODDOCDIR}" \ RUBY_MODEXAMPLESDIR="${RUBY_MODEXAMPLESDIR}" \ RUBY_DOCDIR="${RUBY_DOCDIR}" \ RUBY_EXAMPLESDIR="${RUBY_EXAMPLESDIR}" \ RUBY_RIDIR="${RUBY_RIDIR}" \ RUBY_SITERIDIR="${RUBY_SITERIDIR}" PLIST_SUB+= ${PLIST_RUBY_DIRS:C,DIR="(${LOCALBASE}|${PREFIX})/,DIR=",} \ RUBY_VERSION="${RUBY_VERSION}" \ RUBY_VER="${RUBY_VER}" \ RUBY_SHLIBVER="${RUBY_SHLIBVER}" \ RUBY_ARCH="${RUBY_ARCH}" \ RUBY_SUFFIX="${RUBY_SUFFIX}" \ RUBY_DEFAULT_SUFFIX="${RUBY_DEFAULT_SUFFIX}" . if ${PORT_OPTIONS:MDEBUG} RUBY_FLAGS+= -d . endif # # extconf.rb support # . if ${ruby_ARGS:Mextconf} RUBY_EXTCONF?= extconf.rb CONFIGURE_ARGS+= --with-opt-dir="${LOCALBASE}" CONFIGURE_ENV+= RB_USER_INSTALL=yes do-configure: ruby-extconf-configure ruby-extconf-configure: . if defined(RUBY_EXTCONF_SUBDIRS) . for d in ${RUBY_EXTCONF_SUBDIRS} @${ECHO_MSG} "===> Running ${RUBY_EXTCONF} in ${d} to configure" @cd ${CONFIGURE_WRKSRC}/${d}; \ ${SETENVI} ${WRK_ENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_EXTCONF} ${CONFIGURE_ARGS} . endfor . else @${ECHO_MSG} "===> Running ${RUBY_EXTCONF} to configure" @cd ${CONFIGURE_WRKSRC}; \ ${SETENVI} ${WRK_ENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_EXTCONF} ${CONFIGURE_ARGS} . endif . endif # # setup.rb support # . if ${ruby_ARGS:Msetup} RUBY_SETUP?= setup.rb do-configure: ruby-setup-configure ruby-setup-configure: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to configure" @cd ${BUILD_WRKSRC}; \ ${SETENVI} ${WRK_ENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} config ${CONFIGURE_ARGS} do-build: ruby-setup-build ruby-setup-build: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to build" @cd ${BUILD_WRKSRC}; \ ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} setup do-install: ruby-setup-install ruby-setup-install: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to install" @cd ${INSTALL_WRKSRC}; \ ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} install --prefix=${STAGEDIR} . endif . if !${ruby_ARGS:Mbuild} && !${ruby_ARGS:Mrun} && !${ruby_ARGS:Mnone} EXTRACT_DEPENDS+= ${DEPEND_RUBY} PATCH_DEPENDS+= ${DEPEND_RUBY} BUILD_DEPENDS+= ${DEPEND_RUBY} RUN_DEPENDS+= ${DEPEND_RUBY} . elif ${ruby_ARGS:Mbuild} EXTRACT_DEPENDS+= ${DEPEND_RUBY} PATCH_DEPENDS+= ${DEPEND_RUBY} BUILD_DEPENDS+= ${DEPEND_RUBY} . elif ${ruby_ARGS:Mrun} RUN_DEPENDS+= ${DEPEND_RUBY} . endif . endif # _INVALID_RUBY_VER .endif diff --git a/lang/ruby33/Makefile b/lang/ruby33/Makefile index eadc1fe629bd..bbc971a936ff 100644 --- a/lang/ruby33/Makefile +++ b/lang/ruby33/Makefile @@ -1,204 +1,204 @@ PORTNAME= ruby PORTVERSION= ${RUBY_DISTVERSION} PORTEPOCH= ${RUBY_PORTEPOCH} CATEGORIES= lang ruby MASTER_SITES= RUBY/${MASTER_SITE_SUBDIR_RUBY} DIST_SUBDIR= ruby MAINTAINER= ruby@FreeBSD.org COMMENT= Object-oriented interpreted scripting language WWW= https://www.ruby-lang.org/en/ LICENSE= BSD2CLAUSE RUBY LICENSE_COMB= dual LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/BSDL LICENSE_FILE_RUBY= ${WRKSRC}/COPYING # Using LIB_DEPENDS finds the libffi from gcc which causes problems BUILD_DEPENDS= libffi>=0:devel/libffi LIB_DEPENDS= libyaml.so:textproc/libyaml RUN_DEPENDS= libffi>=0:devel/libffi USES= autoreconf cpe localbase ruby:none ssl tar:xz CPE_VENDOR= ruby-lang CPE_UPDATE= p0 USE_LDCONFIG= yes CONFIGURE_ARGS= ${RUBY_CONFIGURE_ARGS} \ --disable-rpath \ --enable-install-static-library \ --enable-pthread \ --enable-shared \ --with-ruby-version=minor \ --with-sitedir="${PREFIX}/lib/ruby/site_ruby" \ --with-vendordir="${PREFIX}/lib/ruby/vendor_ruby" CONFIGURE_ENV= debugflags= GNU_CONFIGURE= yes # Keep this, else ruby will fail to load libraries dependent of libpthread. LIBS+= -lpthread # We get these from other ports EXTRACT_AFTER_ARGS= --exclude ${DISTNAME}/bin/gem \ --exclude ${DISTNAME}/ext/win32* \ --exclude ${DISTNAME}/lib/bundler* \ --exclude ${DISTNAME}/libexec/bundler \ --exclude ${DISTNAME}/man/erb.1 \ --exclude ${DISTNAME}/man/irb.1 \ --exclude ${DISTNAME}/man/ri.1 \ --no-same-owner --no-same-permissions -WRKSRC= ${RUBY_WRKSRC} +$RKSRC= ${RUBY_WRKSRC} RUBY_VER= 3.3 EXTDOCS= ripper/README stringio/README.md syslog/syslog.txt EXTSAMPLES= bigdecimal/sample/*.rb INSTALLED_MANUALS= ruby INSTALLED_SCRIPTS= ruby # Macros to change variables in rbconfig.rb # NOTE: The last argument RB_SET_CONF_VAR is a dummy argument. See bug 222872. RB_SET_CONF_VAR= ${SH} -c \ '${REINPLACE_CMD} -E -e "s,(CONFIG\[\"$$0\"\][[:space:]]*=[[:space:]]*)(\(?)(.*)(\)?),\1\2$$1\4," ${WRKSRC}/rbconfig.rb' \ RB_SET_CONF_VAR OPTIONS_DEFINE= CAPIDOCS DEBUG DOCS EXAMPLES GMP RDOC YJIT OPTIONS_DEFAULT=RDOC OPTIONS_SUB= yes CAPIDOCS_DESC= Build and install C API documents GMP_DESC= Use GMP to accelerate Bignum operations RDOC_DESC= Build and install Rdoc indexes YJIT_DESC= Enable YJIT (Yet Another Ruby JIT) CAPIDOCS_BUILD_DEPENDS= dot:graphics/graphviz \ doxygen>=1.8.13,2:devel/doxygen CAPIDOCS_CONFIGURE_ENABLE= install-capi GMP_CONFIGURE_WITH= gmp GMP_LIB_DEPENDS= libgmp.so:math/gmp RDOC_CONFIGURE_ENABLE= install-rdoc YJIT_BUILD_DEPENDS= ${RUST_DEFAULT}>=1.58.0:lang/${RUST_DEFAULT} YJIT_CONFIGURE_ENABLE= yjit .include # PORTREVISION/PORTEPOCH hack .if ${PORTREVISION} != 0 _SUF1= _${PORTREVISION} .endif .if ${PORTEPOCH} != 0 _SUF2= ,${PORTEPOCH} .endif #.if ${OPSYS} == "FreeBSD" #.if exists(/usr/sbin/dtrace) && (${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == powerpc64le || ${ARCH} == powerpc64 || ${ARCH} == powerpc) #CONFIGURE_ARGS+=--enable-dtrace #.else #CONFIGURE_ARGS+=--disable-dtrace #.endif #.endif # keep in sync with all platforms where libunwind is available .if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == armv7 || ${ARCH} == \ i386 || ${ARCH} == powerpc || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le LIB_DEPENDS+= libunwind.so:devel/libunwind .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 || ${ARCH} == powerpc CONFIGURE_ARGS+=--with-setjmp-type=_setjmp CONFIGURE_ENV+= ac_cv_func__setjmp=yes .endif .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} PLIST_SUB+= IF_DEFAULT="" .else PKGNAMESUFFIX= ${RUBY_SUFFIX} PLIST_SUB+= IF_DEFAULT="@comment " .endif post-extract-DOCS-on: ${MV} ${WRKSRC}/ChangeLog ${WRKSRC}/doc/ChangeLog post-build: # # Hack to allow modules to be installed into separate PREFIX and/or under user # privileges # @${RB_SET_CONF_VAR} "prefix" "ENV['PREFIX'] || \3" @${RB_SET_CONF_VAR} "INSTALL" "'/usr/bin/install -c'" @${RB_SET_CONF_VAR} "INSTALL_PROGRAM" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} ${STRIP} -m ${BINMODE}' : '${INSTALL_PROGRAM}'" @${RB_SET_CONF_VAR} "INSTALL_SCRIPT" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${BINMODE}' : '${INSTALL_SCRIPT}'" @${RB_SET_CONF_VAR} "INSTALL_DATA" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${SHAREMODE}' : '${INSTALL_DATA}'" post-build-CAPIDOCS-on: @${FIND} ${WRKSRC}/doc -type d -empty -delete pre-install: ${MKDIR} ${STAGEDIR}${RUBY_SITEARCHLIBDIR} ${MKDIR} ${STAGEDIR}${RUBY_VENDORARCHLIBDIR} pre-install-DOCS-on: ${MKDIR} ${STAGEDIR}${RUBY_DOCDIR} pre-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}${RUBY_EXAMPLESDIR} pre-install-RDOC-on: ${MKDIR} ${STAGEDIR}${RUBY_RIDIR} ${MKDIR} ${STAGEDIR}${RUBY_SITERIDIR} post-install: .if ${RUBY_VER} == ${RUBY_DEFAULT_VER} # # Link just installed "ruby" to "rubyXX", etc. # . for FILE in ${INSTALLED_SCRIPTS} ${LN} -fs ${FILE}${RUBY_SUFFIX} ${STAGEDIR}${PREFIX}/bin/${FILE} . endfor # # Link "ruby.1.gz" to "ruby31.1.gz", etc. # . for FILE in ${INSTALLED_MANUALS} ${LN} -fs ${FILE}${RUBY_SUFFIX}.1.gz ${STAGEDIR}${PREFIX}/share/man/man1/${FILE}.1.gz . endfor .endif post-install-CAPIDOCS-on: ${RM} ${WRKSRC}/doc/capi/.timestamp ${STAGEDIR}${PREFIX}/share/doc/ruby${RUBY_SUFFIX}/capi/.timestamp cd ${STAGEDIR}${PREFIX} && ${FIND} share/doc/ruby${RUBY_SUFFIX}/capi/ -type f >> ${TMPPLIST} post-install-DEBUG-off: # # XXX: hack to strip ruby binary. Ruby uses its own install script that seems # bogus to hack. # .if defined(STRIP) && ${STRIP} == -s ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/ruby${RUBY_SUFFIX} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libruby${RUBY_SHLIBVER}.so.${RUBY_SHLIBVER} ${FIND} ${STAGEDIR}${RUBY_ARCHLIBDIR} -type f -name '*\.so' -exec ${STRIP_CMD} {} \; .endif post-install-DOCS-on: # Create all dirs required (":u" isn't available in STABLE yet :-() ${MKDIR} ${EXTDOCS:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_DOCDIR}/|} .for FILE in ${EXTDOCS} ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \ ${STAGEDIR}${RUBY_DOCDIR}/${FILE:C|^([^/]+)/.*|\1|}/ .endfor @(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} \* ${STAGEDIR}${RUBY_DOCDIR}/) ${INSTALL_DATA} ${WRKSRC}/COPYING* ${WRKSRC}/LEGAL ${WRKSRC}/README* ${STAGEDIR}${RUBY_DOCDIR}/ post-install-EXAMPLES-on: # Create all dirs required (":u" isn't available in STABLE yet :-() ${MKDIR} ${EXTSAMPLES:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_EXAMPLESDIR}/|} .for FILE in ${EXTSAMPLES} ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \ ${STAGEDIR}${RUBY_EXAMPLESDIR}/${FILE:C|^([^/]+)/.*|\1|}/ .endfor (cd ${WRKSRC}/sample/ && ${COPYTREE_SHARE} . ${STAGEDIR}${RUBY_EXAMPLESDIR}/) do-test: cd ${WRKSRC} && ${MAKE_CMD} test .include diff --git a/lang/ruby33/distinfo b/lang/ruby33/distinfo index 2f6876aa847b..039e52ec4c3a 100644 --- a/lang/ruby33/distinfo +++ b/lang/ruby33/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1736940973 -SHA256 (ruby/ruby-3.3.7.tar.xz) = 5dbcbc605e0ed4b09c52703241577eb7edc3a2dc747e184c72b5285719b6ad72 -SIZE (ruby/ruby-3.3.7.tar.xz) = 16379504 +TIMESTAMP = 1744289452 +SHA256 (ruby/ruby-3.3.8.tar.xz) = 44ae70fee043da3ce48289b7a52618ebe32dc083253993d486211c7e445c8642 +SIZE (ruby/ruby-3.3.8.tar.xz) = 16435924 diff --git a/lang/ruby33/files/patch-tool_rbinstall.rb b/lang/ruby33/files/patch-tool_rbinstall.rb index 2c414079bb59..1d1bbb801ede 100644 --- a/lang/ruby33/files/patch-tool_rbinstall.rb +++ b/lang/ruby33/files/patch-tool_rbinstall.rb @@ -1,178 +1,178 @@ ---- tool/rbinstall.rb.orig 2024-07-08 23:28:22 UTC +--- tool/rbinstall.rb.orig 2025-04-09 09:23:04 UTC +++ tool/rbinstall.rb @@ -970,175 +970,6 @@ end # :startdoc: -install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do - install_default_gem('lib', srcdir, bindir) -end -install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do - install_default_gem('ext', srcdir, bindir) -end - -def load_gemspec(file, base = nil) - file = File.realpath(file) - code = File.read(file, encoding: "utf-8:-") -- code.gsub!(/(?:`git[^\`]*`|%x\[git[^\]]*\])\.split\([^\)]*\)/m) do +- code.gsub!(/(?:`git[^\`]*`|%x\[git[^\]]*\])\.split(\([^\)]*\))?/m) do - files = [] - if base - Dir.glob("**/*", File::FNM_DOTMATCH, base: base) do |n| - case File.basename(n); when ".", ".."; next; end - next if File.directory?(File.join(base, n)) - files << n.dump - end - end - "[" + files.join(", ") + "]" - end - spec = eval(code, binding, file) - unless Gem::Specification === spec - raise TypeError, "[#{file}] isn't a Gem::Specification (#{spec.class} instead)." - end - spec.loaded_from = base ? File.join(base, File.basename(file)) : file - spec.files.reject! {|n| n.end_with?(".gemspec") or n.start_with?(".git")} - spec.date = RUBY_RELEASE_DATE - - spec -end - -def install_default_gem(dir, srcdir, bindir) - gem_dir = Gem.default_dir - install_dir = with_destdir(gem_dir) - prepare "default gems from #{dir}", gem_dir - RbInstall.no_write do - makedirs(Gem.ensure_default_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)}) - end - - options = { - :install_dir => with_destdir(gem_dir), - :bin_dir => with_destdir(bindir), - :ignore_dependencies => true, - :dir_mode => $dir_mode, - :data_mode => $data_mode, - :prog_mode => $script_mode, - :wrappers => true, - :format_executable => true, - :install_as_default => true, - } - default_spec_dir = Gem.default_specifications_dir - - base = "#{srcdir}/#{dir}" - gems = Dir.glob("**/*.gemspec", base: base).map {|src| - spec = load_gemspec("#{base}/#{src}") - file_collector = RbInstall::Specs::FileCollector.for(srcdir, dir, src) - files = file_collector.collect - if files.empty? - next - end - spec.files = files - spec - } - gems.compact.sort_by(&:name).each do |gemspec| - old_gemspecs = Dir[File.join(with_destdir(default_spec_dir), "#{gemspec.name}-*.gemspec")] - if old_gemspecs.size > 0 - old_gemspecs.each {|spec| rm spec } - end - - full_name = "#{gemspec.name}-#{gemspec.version}" - - gemspec.loaded_from = File.join srcdir, gemspec.spec_name - - package = RbInstall::DirPackage.new gemspec, {gemspec.bindir => 'libexec'} - ins = RbInstall::UnpackedInstaller.new(package, options) - puts "#{INDENT}#{gemspec.name} #{gemspec.version}" - ins.install - end -end - -install?(:ext, :comm, :gem, :'bundled-gems') do - gem_dir = Gem.default_dir - install_dir = with_destdir(gem_dir) - prepare "bundled gems", gem_dir - RbInstall.no_write do - makedirs(Gem.ensure_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)}) - end - - installed_gems = {} - skipped = {} - options = { - :install_dir => install_dir, - :bin_dir => with_destdir(bindir), - :domain => :local, - :ignore_dependencies => true, - :dir_mode => $dir_mode, - :data_mode => $data_mode, - :prog_mode => $script_mode, - :wrappers => true, - :format_executable => true, - } - - extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir - specifications_dir = File.join(gem_dir, "specifications") - build_dir = Gem::StubSpecification.gemspec_stub("", ".bundle", ".bundle").extensions_dir - - # We are about to build extensions, and want to configure extensions with the - # newly installed ruby. - Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name))) - # Prevent fake.rb propagation. It conflicts with the natural mkmf configs of - # the newly installed ruby. - ENV.delete('RUBYOPT') - - File.foreach("#{srcdir}/gems/bundled_gems") do |name| - next if /^\s*(?:#|$)/ =~ name - next unless /^(\S+)\s+(\S+).*/ =~ name - gem = $1 - gem_name = "#$1-#$2" - # Try to find the original gemspec file - path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem}.gemspec" - unless File.exist?(path) - # Try to find the gemspec file for C ext gems - # ex .bundle/gems/debug-1.7.1/debug-1.7.1.gemspec - # This gemspec keep the original dependencies - path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem_name}.gemspec" - unless File.exist?(path) - # Try to find the gemspec file for gems that hasn't own gemspec - path = "#{srcdir}/.bundle/specifications/#{gem_name}.gemspec" - unless File.exist?(path) - skipped[gem_name] = "gemspec not found" - next - end - end - end - spec = load_gemspec(path, "#{srcdir}/.bundle/gems/#{gem_name}") - unless spec.platform == Gem::Platform::RUBY - skipped[gem_name] = "not ruby platform (#{spec.platform})" - next - end - unless spec.full_name == gem_name - skipped[gem_name] = "full name unmatch #{spec.full_name}" - next - end - spec.extension_dir = "#{extensions_dir}/#{spec.full_name}" - package = RbInstall::DirPackage.new spec - ins = RbInstall::UnpackedInstaller.new(package, options) - puts "#{INDENT}#{spec.name} #{spec.version}" - ins.install - install_recursive("#{build_dir}/#{gem_name}", "#{extensions_dir}/#{gem_name}") do |src, dest| - # puts "#{INDENT} #{dest[extensions_dir.size+gem_name.size+2..-1]}" - install src, dest, :mode => (File.executable?(src) ? $prog_mode : $data_mode) - end - installed_gems[spec.full_name] = true - end - installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))} - unless installed_gems.empty? - prepare "bundled gem cache", gem_dir+"/cache" - install installed_gems, gem_dir+"/cache" - end - unless gems.empty? - skipped.default = "not found in bundled_gems" - puts "skipped bundled gems:" - gems.each do |gem| - printf " %-32s%s\n", File.basename(gem), skipped[gem] - end - end -end - parse_args() include FileUtils