From 776229ddcc44edf0805895cd667d02b727bd6317 Mon Sep 17 00:00:00 2001 From: CyberLeo Date: Sat, 1 Jan 2011 13:39:28 -0600 Subject: [PATCH] Split this up later --- .../Mk_bsd.local.mk-strip-perl5-python.patch | 41 +++++++++++ .../Mk_bsd.local.mk-strip-perl5-python.patch | 43 ++++++++++++ patch/deprecated/devel_glib20_Makefile.patch | 14 ++++ patch/deprecated/refactor | 1 + patch/deprecated/www_squid_Makefile.patch | 12 ++++ ports/Makefile.local | 1 + ports/misc-cdn/Makefile | 12 ++++ ports/misc-cdn/crc32sum/Makefile | 28 ++++++++ ports/misc-cdn/crc32sum/distinfo | 3 + ports/misc-cdn/crc32sum/pkg-descr | 5 ++ ports/misc-cdn/flag/Makefile | 41 +++++++++++ ports/misc-cdn/flag/distinfo | 3 + ports/misc-cdn/flag/pkg-descr | 5 ++ ports/misc-cdn/freebsd-rc/Makefile | 33 +++++++++ ports/misc-cdn/freebsd-rc/distinfo | 3 + ports/misc-cdn/freebsd-rc/pkg-descr | 5 ++ ports/misc-cdn/shlib/Makefile | 41 +++++++++++ ports/misc-cdn/shlib/distinfo | 3 + ports/misc-cdn/shlib/pkg-descr | 5 ++ .../rsync/files/net_rsync_server_pause.patch | 25 +++++++ update | 70 +++++++++++++++++++ 21 files changed, 394 insertions(+) create mode 100644 patch/Mk_bsd.local.mk-strip-perl5-python.patch create mode 100644 patch/deprecated/Mk_bsd.local.mk-strip-perl5-python.patch create mode 100755 patch/deprecated/devel_glib20_Makefile.patch create mode 100755 patch/deprecated/refactor create mode 100755 patch/deprecated/www_squid_Makefile.patch create mode 100644 ports/Makefile.local create mode 100644 ports/misc-cdn/Makefile create mode 100644 ports/misc-cdn/crc32sum/Makefile create mode 100644 ports/misc-cdn/crc32sum/distinfo create mode 100644 ports/misc-cdn/crc32sum/pkg-descr create mode 100644 ports/misc-cdn/flag/Makefile create mode 100644 ports/misc-cdn/flag/distinfo create mode 100644 ports/misc-cdn/flag/pkg-descr create mode 100644 ports/misc-cdn/freebsd-rc/Makefile create mode 100644 ports/misc-cdn/freebsd-rc/distinfo create mode 100644 ports/misc-cdn/freebsd-rc/pkg-descr create mode 100644 ports/misc-cdn/shlib/Makefile create mode 100644 ports/misc-cdn/shlib/distinfo create mode 100644 ports/misc-cdn/shlib/pkg-descr create mode 100644 ports/net/rsync/files/net_rsync_server_pause.patch create mode 100755 update diff --git a/patch/Mk_bsd.local.mk-strip-perl5-python.patch b/patch/Mk_bsd.local.mk-strip-perl5-python.patch new file mode 100644 index 0000000..c46d949 --- /dev/null +++ b/patch/Mk_bsd.local.mk-strip-perl5-python.patch @@ -0,0 +1,41 @@ +--- Mk/bsd.local.mk.orig 2006-12-10 12:15:33.000000000 -0600 ++++ Mk/bsd.local.mk 2010-08-29 02:57:11.000000000 -0500 +@@ -12,6 +12,38 @@ + + Local_Pre_Include= bsd.local.mk + ++.if defined(STRIP_PERL5) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)+noperl ++. undef USE_PERL5 ++. undef USE_PERL5_BUILD ++. undef USE_PERL5_RUN ++.elif defined(STRIP_PERL5_BUILD) ++ USE_PERL5_RUN := ${USE_PERL5} ++. undef USE_PERL5 ++. undef USE_PERL5_BUILD ++.elif defined(STRIP_PERL5_RUN) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)+noperl ++ USE_PERL5_BUILD := ${USE_PERL5} ++. undef USE_PERL5 ++. undef USE_PERL5_RUN ++.endif ++ ++.if defined(STRIP_PYTHON) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)+nopython ++. undef USE_PYTHON ++. undef USE_PYTHON_BUILD ++. undef USE_PYTHON_RUN ++.elif defined(STRIP_PYTHON_BUILD) ++ USE_PYTHON_RUN := ${USE_PYTHON} ++. undef USE_PYTHON ++. undef USE_PYTHON_BUILD ++.elif defined(STRIP_PYTHON_RUN) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)+nopython ++ USE_PYTHON_BUILD := ${USE_PYTHON} ++. undef USE_PYTHON ++. undef USE_PYTHON_RUN ++.endif ++ + # + # Here is where any code that needs to run at bsd.port.pre.mk inclusion + # time should live. diff --git a/patch/deprecated/Mk_bsd.local.mk-strip-perl5-python.patch b/patch/deprecated/Mk_bsd.local.mk-strip-perl5-python.patch new file mode 100644 index 0000000..d21163b --- /dev/null +++ b/patch/deprecated/Mk_bsd.local.mk-strip-perl5-python.patch @@ -0,0 +1,43 @@ +--- Mk/bsd.local.mk.orig 2006-12-10 12:15:33.000000000 -0600 ++++ Mk/bsd.local.mk 2010-08-29 02:57:11.000000000 -0500 +@@ -12,6 +12,40 @@ + + Local_Pre_Include= bsd.local.mk + ++.if defined(STRIP_PERL5) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-perl ++. undef USE_PERL5 ++. undef USE_PERL5_BUILD ++. undef USE_PERL5_RUN ++.elif defined(STRIP_PERL5_BUILD) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-perl-bld ++ USE_PERL5_RUN := ${USE_PERL5} ++. undef USE_PERL5 ++. undef USE_PERL5_BUILD ++.elif defined(STRIP_PERL5_RUN) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-perl-run ++ USE_PERL5_BUILD := ${USE_PERL5} ++. undef USE_PERL5 ++. undef USE_PERL5_RUN ++.endif ++ ++.if defined(STRIP_PYTHON) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-python ++. undef USE_PYTHON ++. undef USE_PYTHON_BUILD ++. undef USE_PYTHON_RUN ++.elif defined(STRIP_PYTHON_BUILD) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-python-bld ++ USE_PYTHON_RUN := ${USE_PYTHON} ++. undef USE_PYTHON ++. undef USE_PYTHON_BUILD ++.elif defined(STRIP_PYTHON_RUN) ++ PKGNAMESUFFIX := $(PKGNAMESUFFIX)-no-python-run ++ USE_PYTHON_BUILD := ${USE_PYTHON} ++. undef USE_PYTHON ++. undef USE_PYTHON_RUN ++.endif ++ + # + # Here is where any code that needs to run at bsd.port.pre.mk inclusion + # time should live. diff --git a/patch/deprecated/devel_glib20_Makefile.patch b/patch/deprecated/devel_glib20_Makefile.patch new file mode 100755 index 0000000..cde3a4a --- /dev/null +++ b/patch/deprecated/devel_glib20_Makefile.patch @@ -0,0 +1,14 @@ +diff -ur ports/devel/glib20/Makefile ports/devel/glib20/Makefile +--- ports/devel/glib20/Makefile 2010-03-06 21:13:22.000000000 -0600 ++++ ports/devel/glib20/Makefile 2010-01-23 15:08:01.000000000 -0600 +@@ -37,8 +37,8 @@ + USE_GNOME= gnomehack pkgconfig ltverhack + USE_GMAKE= yes + MAKE_JOBS_SAFE= yes +-USE_PYTHON= yes +-USE_PERL5= yes ++#USE_PYTHON= yes ++#USE_PERL5= yes + CONFIGURE_ARGS= --enable-static --with-libiconv=gnu \ + --disable-gtk-doc --with-html-dir=${PREFIX}/share/doc \ + --disable-man --without-xml-catalog \ diff --git a/patch/deprecated/refactor b/patch/deprecated/refactor new file mode 100755 index 0000000..e38f625 --- /dev/null +++ b/patch/deprecated/refactor @@ -0,0 +1 @@ +Make a slave port that inherits from the master port, then nops out python/perl diff --git a/patch/deprecated/www_squid_Makefile.patch b/patch/deprecated/www_squid_Makefile.patch new file mode 100755 index 0000000..2cfd7c6 --- /dev/null +++ b/patch/deprecated/www_squid_Makefile.patch @@ -0,0 +1,12 @@ +diff -ur ports/www/squid/Makefile ports/www/squid/Makefile +--- ports/www/squid/Makefile 2010-03-06 21:13:36.000000000 -0600 ++++ ports/www/squid/Makefile 2010-02-20 07:01:49.000000000 -0600 +@@ -118,7 +118,7 @@ + CONFLICTS= squid-2.[^7]* squid-3.* cacheboy-[0-9]* lusca-head-[0-9]* + GNU_CONFIGURE= yes + USE_BZIP2= yes +-USE_PERL5= yes ++USE_PERL5_BUILD=yes + USE_RC_SUBR= squid + + SQUID_UID?= squid diff --git a/ports/Makefile.local b/ports/Makefile.local new file mode 100644 index 0000000..a689957 --- /dev/null +++ b/ports/Makefile.local @@ -0,0 +1 @@ +SUBDIRS += misc-cdn diff --git a/ports/misc-cdn/Makefile b/ports/misc-cdn/Makefile new file mode 100644 index 0000000..2c7d170 --- /dev/null +++ b/ports/misc-cdn/Makefile @@ -0,0 +1,12 @@ +# $FreeBSD: ports/misc-cdn/Makefile,v 1.0 2010/03/06 00:00:00 CyberLeo Exp $ +# + + COMMENT = Miscellaneous utilities developed by and for CyberLeo.Net + + SUBDIR += crc32sum + SUBDIR += flag + SUBDIR += freebsd-rc + SUBDIR += shlib + +.include + diff --git a/ports/misc-cdn/crc32sum/Makefile b/ports/misc-cdn/crc32sum/Makefile new file mode 100644 index 0000000..3f76060 --- /dev/null +++ b/ports/misc-cdn/crc32sum/Makefile @@ -0,0 +1,28 @@ +# New ports collection makefile for: crc32sum +# Date created: 20 Feb 2010 +# Whom: CyberLeo +# +# $FreeBSD$ +# +VALID_CATEGORIES += misc-cdn + +PORTNAME= crc32sum +PORTVERSION= 1.0.1 +CATEGORIES= misc-cdn +MASTER_SITES= http://git.cyberleo.net/releases/${PORTNAME}/ +DISTFILES= ${PORTNAME}-${PORTVERSION}.tgz + +MAINTAINER= cyberleo@cyberleo.net +COMMENT= Compute the crc32 checksum of an input file or stdin + +PLIST_FILES= bin/crc32sum + +MAN1= crc32sum.1 + +.include + +do-install: + ${INSTALL_SCRIPT} ${WRKSRC}/crc32sum ${PREFIX}/bin/crc32sum + ${INSTALL_MAN} ${WRKSRC}/crc32sum.1 ${MAN1PREFIX}/man/man1 + +.include diff --git a/ports/misc-cdn/crc32sum/distinfo b/ports/misc-cdn/crc32sum/distinfo new file mode 100644 index 0000000..ca4fd9d --- /dev/null +++ b/ports/misc-cdn/crc32sum/distinfo @@ -0,0 +1,3 @@ +MD5 (crc32sum-1.0.1.tgz) = eb0525bc8c4294f15dbfc0a19cfb47dd +SHA256 (crc32sum-1.0.1.tgz) = d20a7be06f3f2022da9d81ca4a65e6be3d88c110287ea1792954b8d431c63c8b +SIZE(crc32sum-1.0.1.tgz) = 1886 diff --git a/ports/misc-cdn/crc32sum/pkg-descr b/ports/misc-cdn/crc32sum/pkg-descr new file mode 100644 index 0000000..3298eed --- /dev/null +++ b/ports/misc-cdn/crc32sum/pkg-descr @@ -0,0 +1,5 @@ +crc32sum + +Compute the crc32 polynomial of provided files or stdin + +WWW: http://git.cyberleo.net/crc32sum.git diff --git a/ports/misc-cdn/flag/Makefile b/ports/misc-cdn/flag/Makefile new file mode 100644 index 0000000..951f5b5 --- /dev/null +++ b/ports/misc-cdn/flag/Makefile @@ -0,0 +1,41 @@ +# New ports collection makefile for: flag +# Date created: 20 February 2010 +# Whom: CyberLeo + +.if defined(WITH_BASH) +PLIST_FILES+= share/flag/bash_prompt.sh +PLIST_DIRS+= share/flag +.endif + +do-install: + ${INSTALL_SCRIPT} ${WRKSRC}/flag ${PREFIX}/bin/flag + ${INSTALL_SCRIPT} ${WRKSRC}/update-issue ${PREFIX}/etc/rc.d/update-issue +.if defined(WITH_BASH) + ${MKDIR} ${PREFIX}/share/flag + ${INSTALL_DATA} ${WRKSRC}/bash_prompt.sh ${PREFIX}/share/flag +.endif + +.include diff --git a/ports/misc-cdn/flag/distinfo b/ports/misc-cdn/flag/distinfo new file mode 100644 index 0000000..82a5355 --- /dev/null +++ b/ports/misc-cdn/flag/distinfo @@ -0,0 +1,3 @@ +MD5 (flag-1.0.1.tgz) = 3afc06a02b68dcc1c33ba435fd399643 +SHA256 (flag-1.0.1.tgz) = 6a88aca83a6b86a4ef9a4ae7474b674dd170f296c5daa97039e2e65292499a6e +SIZE(flag-1.0.1.tgz) = 2341 diff --git a/ports/misc-cdn/flag/pkg-descr b/ports/misc-cdn/flag/pkg-descr new file mode 100644 index 0000000..c52acd8 --- /dev/null +++ b/ports/misc-cdn/flag/pkg-descr @@ -0,0 +1,5 @@ +flag + +Produces a neat little ansi colour 'flag' based off a hash of the machine's hostname (or settable via ~/.flag or /etc/flag) which can uniquely visually identify a machine, at a glance. Useful for placing into /etc/issue or your bash prompt, so that you don't send stupid commands to the wrong machine. + +WWW: http://git.cyberleo.net/flag.git diff --git a/ports/misc-cdn/freebsd-rc/Makefile b/ports/misc-cdn/freebsd-rc/Makefile new file mode 100644 index 0000000..21605b8 --- /dev/null +++ b/ports/misc-cdn/freebsd-rc/Makefile @@ -0,0 +1,33 @@ +# New ports collection makefile for: freebsd-rc +# Date created: 20 Feb 2010 +# Whom: CyberLeo +# +# $FreeBSD$ +# +VALID_CATEGORIES += misc-cdn + +PORTNAME= freebsd-rc +PORTVERSION= 1.0.3 +PORTREVISION= 1 +CATEGORIES= misc-cdn +MASTER_SITES= http://git.cyberleo.net/releases/freebsd-rc/ +DISTFILES= ${PORTNAME}-${PORTVERSION}.tgz + +MAINTAINER= cyberleo@cyberleo.net +COMMENT= A handy wrapper to FreeBSD's rcscripts + +NO_BUILD= yes + +PLIST_FILES= bin/rc + +RUN_DEPENDS= ${LOCALBASE}/lib/sh/env.sh:${PORTSDIR}/misc-cdn/shlib + +MAN8= rc.8 + +.include + +do-install: + ${INSTALL_SCRIPT} ${WRKSRC}/rc ${PREFIX}/bin + ${INSTALL_MAN} ${WRKSRC}/rc.8 ${MAN8PREFIX}/man/man8 + +.include diff --git a/ports/misc-cdn/freebsd-rc/distinfo b/ports/misc-cdn/freebsd-rc/distinfo new file mode 100644 index 0000000..2d9aec5 --- /dev/null +++ b/ports/misc-cdn/freebsd-rc/distinfo @@ -0,0 +1,3 @@ +MD5 (freebsd-rc-1.0.3.tgz) = 6af8e98df66bca4692e0c845376b0131 +SHA256 (freebsd-rc-1.0.3.tgz) = 65a708bd2215396e585a22298bb89c18afb2e8e906ba43cd07719d5755eb97b9 +SIZE(freebsd-rc-1.0.3.tgz) = 1081 diff --git a/ports/misc-cdn/freebsd-rc/pkg-descr b/ports/misc-cdn/freebsd-rc/pkg-descr new file mode 100644 index 0000000..6503409 --- /dev/null +++ b/ports/misc-cdn/freebsd-rc/pkg-descr @@ -0,0 +1,5 @@ +freebsd-rc + +A handy wrapper to FreeBSD's rcscripts + +WWW: http://git.cyberleo.net/freebsd-rc.git diff --git a/ports/misc-cdn/shlib/Makefile b/ports/misc-cdn/shlib/Makefile new file mode 100644 index 0000000..6d7b43e --- /dev/null +++ b/ports/misc-cdn/shlib/Makefile @@ -0,0 +1,41 @@ +# New ports collection makefile for: shlib +# Date created: 20 Feb 2010 +# Whom: CyberLeo +# +# $FreeBSD$ +# +VALID_CATEGORIES += misc-cdn + +PORTNAME= shlib +PORTVERSION= 1.0.1 +CATEGORIES= misc +MASTER_SITES= http://git.cyberleo.net/releases/${PORTNAME}/ +DISTFILES= ${PORTNAME}-${PORTVERSION}.tgz + +MAINTAINER= cyberleo@cyberleo.net +COMMENT= a series of modular convenience functions for bourne shell scripting + +NO_BUILD= yes + +PLIST_FILES= lib/sh/env.sh \ + lib/sh/ansi.sh \ + lib/sh/ask.sh \ + lib/sh/file.sh \ + lib/sh/log.sh \ + lib/sh/progress.sh \ + lib/sh/reexec.sh \ + lib/sh/root.sh \ + lib/sh/skel.sh \ + share/examples/shlib/example.sh + +PLIST_DIRS= lib/sh \ + share/examples/shlib + +.include + +do-install: + ( cd ${WRKSRC}/lib && ${COPYTREE_BIN} sh ${PREFIX}/lib ) + ${MKDIR} ${EXAMPLESDIR} + ${INSTALL_SCRIPT} ${WRKSRC}/example.sh ${PREFIX}/share/examples/shlib/example.sh + +.include diff --git a/ports/misc-cdn/shlib/distinfo b/ports/misc-cdn/shlib/distinfo new file mode 100644 index 0000000..705ad87 --- /dev/null +++ b/ports/misc-cdn/shlib/distinfo @@ -0,0 +1,3 @@ +MD5 (shlib-1.0.1.tgz) = 76ee424bb98f1c7eb731b692704d7b6d +SHA256 (shlib-1.0.1.tgz) = 7283f7123b222c61155a36f4a9ca3afd8163cc1942786caf80e8a7c2c41c6b19 +SIZE (shlib-1.0.1.tgz) = 2412 diff --git a/ports/misc-cdn/shlib/pkg-descr b/ports/misc-cdn/shlib/pkg-descr new file mode 100644 index 0000000..6752e73 --- /dev/null +++ b/ports/misc-cdn/shlib/pkg-descr @@ -0,0 +1,5 @@ +shlib + +A collection of bourne shell functions, with an easy loader, for use in shell scripting. + +WWW: http://git.cyberleo.net/shlib.git diff --git a/ports/net/rsync/files/net_rsync_server_pause.patch b/ports/net/rsync/files/net_rsync_server_pause.patch new file mode 100644 index 0000000..3b8f13d --- /dev/null +++ b/ports/net/rsync/files/net_rsync_server_pause.patch @@ -0,0 +1,25 @@ +--- rsync.h.orig 2009-12-23 19:36:27.000000000 +0000 ++++ rsync.h 2010-03-20 14:16:40.000000000 +0000 +@@ -24,6 +24,8 @@ + #define BLOCK_SIZE 700 + #define RSYNC_RSH_ENV "RSYNC_RSH" + #define RSYNC_RSH_IO_ENV "RSYNC_RSH_IO" ++/* CyberLeo: Envvar to set pause length for rsync --server */ ++#define RSYNC_SERVER_PAUSE_ENV "RSYNC_SERVER_PAUSE" + + #define RSYNC_NAME "rsync" + /* RSYNCD_SYSCONF is now set in config.h */ +--- main.c.orig 2009-12-19 21:39:49.000000000 +0000 ++++ main.c 2010-03-20 14:54:40.000000000 +0000 +@@ -957,6 +957,11 @@ + set_nonblocking(f_in); + set_nonblocking(f_out); + ++ /* CyberLeo: Sleep here for RSYNC_SERVER_PAUSE_ENV seconds */ ++ const char *rsync_server_pause = getenv(RSYNC_SERVER_PAUSE_ENV); ++ if (rsync_server_pause) ++ sleep(atoi(rsync_server_pause)); ++ + io_set_sock_fds(f_in, f_out); + setup_protocol(f_out, f_in); + diff --git a/update b/update new file mode 100755 index 0000000..7d9d736 --- /dev/null +++ b/update @@ -0,0 +1,70 @@ +#!/bin/sh + +# Run as root +[ "$(id -u)" -eq 0 ] || exec sudo "${0}" "${@}" +cd "$(dirname "${0}")" + +meh() { printf " \033[1;32m*\033[0m %s\n" "${*}"; } +omg() { printf " \033[1;33m*\033[0m %s\n" "${*}"; } +wtf() { printf " \033[1;31m*\033[0m %s\n" "${*}"; kill $$; exit 1; } + +sync="rsync://paka/freebsd-ports" + +ports=alba/ports +upstream=alba/srcs/freebsd/ports/upstream +prepare=alba/srcs/freebsd/ports/prepare + +today="$(date +%Y-%m-%d)" +ports_origin="$(zfs get -H -o value origin "${ports}")" +ports_origin="${ports_origin%%@*}" +ports_fs="$(zfs get -H -o value mountpoint "${ports}")" +upstream_fs="$(zfs get -H -o value mountpoint "${upstream}")" + +# Make sure the ports tree is a descendent of the ports upstream +[ "${ports_origin}" = "${upstream}" ] || wtf "Target ${ports} is not a child of ${upstream} + (is ${ports_origin})" + +# Compute the next available snapshot +last_snapshot="$(zfs list -rHt snapshot -o name "${upstream}" | grep "@${today}_" | sort | tail -n 1 | sed -e 's/^.*_\([0-9]\{2\}\)$/\1/')" +if [ "${last_snapshot}" ] +then + snapshot="$(printf "${today}_%02u" "$(( ${last_snapshot} + 1 ))")" + echo "${today}_${last_snapshot} -> ${snapshot}" +else + snapshot="${today}_00" + echo "None -> ${snapshot}" +fi + +# Bail out if anything is / +[ -z "${ports_fs}" -o -z "${upstream_fs}" ] && wtf "Writing to /? Are you nuts?" + +meh "Update" +rsync --archive --compress --delete --hard-links --sparse --stats --verbose "${sync}/" "${upstream_fs}/" || wtf "update failed" + +meh "Snapshot" +zfs snapshot "${upstream}@${snapshot}" || wtf "snapshot failed" + +meh "Clone" +zfs clone "${upstream}@${snapshot}" "${prepare}" || wtf "clone failed" + +# Resolve filesystem mountpoints, now that everything should exist +prepare_fs="$(zfs get -H -o value mountpoint "${prepare}")" + +meh "Overlay" +( cd ports; find * | cpio -p "${prepare_fs}" ) || wtf "overlay failed" + +meh "Patch" +for patch in patch/*.patch +do + meh "... ${patch}" + ( cd "${prepare_fs}"; patch -p0 ) < "${patch}" || wtf "patch failed" +done + +meh "Install" +zfs rename "${ports}" "${ports}-bak" || wtf "backup rename failed" +zfs rename "${prepare}" "${ports}" || wtf "rename prepare -> ports failed" +zfs inherit mountpoint "${ports}-bak" || wtf "inherit failed" +zfs set mountpoint="${ports_fs}" "${ports}" || wtf "mountpoint failed" +zfs destroy "${ports}-bak" || wtf "destroy failed" + +meh "All done" -- 2.42.0