summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rw-r--r--mk/extract/bsd.extract-vars.mk5
-rwxr-xr-xmk/extract/extract13
-rw-r--r--mk/extract/extract.mk4
-rw-r--r--mk/tools/defaults.mk3
-rw-r--r--mk/tools/replace.mk12
5 files changed, 31 insertions, 6 deletions
diff --git a/mk/extract/bsd.extract-vars.mk b/mk/extract/bsd.extract-vars.mk
index 99e14473f7a..2181d97dcff 100644
--- a/mk/extract/bsd.extract-vars.mk
+++ b/mk/extract/bsd.extract-vars.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.extract-vars.mk,v 1.20 2020/03/20 17:16:34 rillig Exp $
+# $NetBSD: bsd.extract-vars.mk,v 1.21 2022/01/06 10:19:11 schmonz Exp $
#
# This file configures how a package extracts its distfiles after
# downloading them.
@@ -107,4 +107,7 @@ USE_TOOLS+= gem
.if !empty(EXTRACT_ONLY:M*.7z)
USE_TOOLS+= 7za
.endif
+.if !empty(EXTRACT_ONLY:M*.zst)
+USE_TOOLS+= zstd
+.endif
diff --git a/mk/extract/extract b/mk/extract/extract
index 77e9e31e755..98f3954a26c 100755
--- a/mk/extract/extract
+++ b/mk/extract/extract
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $NetBSD: extract,v 1.19 2019/08/02 11:48:17 nia Exp $
+# $NetBSD: extract,v 1.20 2022/01/06 10:19:11 schmonz Exp $
#
# Copyright (c) 2006 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -84,6 +84,7 @@
# EXTRACT_OPTS_RPM
# EXTRACT_OPTS_TAR
# EXTRACT_OPTS_ZIP
+# EXTRACT_OPTS_ZSTD
# EXTRACT_OPTS_ZOO
# These variables set additional arguments passed to the
# underlying extraction tool to unpack their respective
@@ -114,6 +115,7 @@ set -u # treat undefined variables as errors
: ${UNZOO:=unzoo}
: ${P7ZA:="7za x"}
: ${P7ZA_SO:="7za x -so"}
+: ${ZSTD:="zstd"}
: ${TMPDIR:=/tmp}
@@ -202,7 +204,7 @@ esac
# Derive the format of the archive based on the file extension.
case "$distfile" in
-*.tar.gz|*.tgz|*-tar.gz|*_tar.gz|*.tar.bz2|*.txz|*.tbz|*.tbz2|*.tar.lz|*.tar.lzma|*.tar.xz|*.tar.Z|*.tar.z|*.tar|*.tar.bz|*.tar.7z|*.crate)
+*.tar.gz|*.tgz|*-tar.gz|*_tar.gz|*.tar.bz2|*.txz|*.tbz|*.tbz2|*.tar.lz|*.tar.lzma|*.tar.xz|*.tar.Z|*.tar.z|*.tar|*.tar.bz|*.tar.7z|*.tar.zst|*.crate)
_format=tar ;;
*.cpio|*.cpio.gz|*.cpio.bz2)
_format=cpio ;;
@@ -218,6 +220,7 @@ case "$distfile" in
*.bin|*.sh) _format=jre-bin ;;
*.gem) _format=gem ;;
*.7z) _format=7z ;;
+*.zst) _format=zstd ;;
*) _format=none ;;
esac
${TEST} -n "$format" || format="$_format"
@@ -345,6 +348,12 @@ gem)
${P7ZA} "$distfile"
;;
+zst)
+ ${ECHO} 1>&2 "$self: SCHMONZ: looks like $format is .zst"
+ : ${EXTRACT_OPTS_ZSTD=}
+ ${ZSTD} -d ${EXTRACT_OPTS_ZSTD} "$distfile" ${1+"$@"}
+ ;;
+
none)
# By default, copy the distfile over to the current working directory.
${CP} "$distfile" .
diff --git a/mk/extract/extract.mk b/mk/extract/extract.mk
index f263efb2ff7..74f669814f6 100644
--- a/mk/extract/extract.mk
+++ b/mk/extract/extract.mk
@@ -1,4 +1,4 @@
-# $NetBSD: extract.mk,v 1.42 2021/03/30 16:47:03 ryoon Exp $
+# $NetBSD: extract.mk,v 1.43 2022/01/06 10:19:11 schmonz Exp $
#
# The following variables may be set by the package Makefile and
# specify how extraction happens:
@@ -166,6 +166,7 @@ _EXTRACT_ENV+= ${EXTRACT_OPTS_RAR:D EXTRACT_OPTS_RAR=${EXTRACT_OPTS_RAR:Q}}
_EXTRACT_ENV+= ${EXTRACT_OPTS_RPM:D EXTRACT_OPTS_LHA=${EXTRACT_OPTS_RPM:Q}}
_EXTRACT_ENV+= ${EXTRACT_OPTS_TAR:D EXTRACT_OPTS_TAR=${EXTRACT_OPTS_TAR:Q}}
_EXTRACT_ENV+= ${EXTRACT_OPTS_ZIP:D EXTRACT_OPTS_ZIP=${EXTRACT_OPTS_ZIP:Q}}
+_EXTRACT_ENV+= ${EXTRACT_OPTS_ZSTD:D EXTRACT_OPTS_ZSTD=${EXTRACT_OPTS_ZSTD:Q}}
_EXTRACT_ENV+= ${EXTRACT_OPTS_ZOO:D EXTRACT_OPTS_ZOO=${EXTRACT_OPTS_ZOO:Q}}
_EXTRACT_ENV+= ${TOOLS_CMDLINE_BZCAT:D BZCAT=${TOOLS_CMDLINE_BZCAT:Q}}
_EXTRACT_ENV+= ${TOOLS_CAT:D CAT=${TOOLS_CAT:Q}}
@@ -185,6 +186,7 @@ _EXTRACT_ENV+= ${TOOLS_UNZIP_CMD:D UNZIP_CMD=${TOOLS_UNZIP_CMD:Q}}
_EXTRACT_ENV+= ${TOOLS_UNZOO:D UNZOO=${TOOLS_UNZOO:Q}}
_EXTRACT_ENV+= ${TOOLS_XZCAT:D XZCAT=${TOOLS_XZCAT:Q}}
_EXTRACT_ENV+= ${TOOLS_7ZA:D P7ZA=${TOOLS_7ZA:Q}}
+_EXTRACT_ENV+= ${TOOLS_ZSTD:D ZSTD=${TOOLS_ZSTD:Q}}
_EXTRACT_ENV+= ${EXTRACT_ENV}
.if !empty(EXTRACT_USING:Mbsdtar)
diff --git a/mk/tools/defaults.mk b/mk/tools/defaults.mk
index ab9e1136a18..201aa8fe38e 100644
--- a/mk/tools/defaults.mk
+++ b/mk/tools/defaults.mk
@@ -1,4 +1,4 @@
-# $NetBSD: defaults.mk,v 1.62 2018/08/22 20:48:37 maya Exp $
+# $NetBSD: defaults.mk,v 1.63 2022/01/06 10:19:11 schmonz Exp $
#
# Copyright (c) 2005 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -143,6 +143,7 @@ _TOOLS_VARNAME.xmkmf= XMKMF_CMD
_TOOLS_VARNAME.xz= XZ
_TOOLS_VARNAME.xzcat= XZCAT
_TOOLS_VARNAME.yacc= YACC
+_TOOLS_VARNAME.zstd= ZSTD
######################################################################
diff --git a/mk/tools/replace.mk b/mk/tools/replace.mk
index 51f3e12697d..5c2ab7c61c2 100644
--- a/mk/tools/replace.mk
+++ b/mk/tools/replace.mk
@@ -1,4 +1,4 @@
-# $NetBSD: replace.mk,v 1.292 2021/07/19 09:55:04 triaxx Exp $
+# $NetBSD: replace.mk,v 1.293 2022/01/06 10:19:11 schmonz Exp $
#
# Copyright (c) 2005 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -203,6 +203,16 @@ _TOOLS_USE_PKGSRC.${_t_}?= yes
# command, e.g., TOOLS_TBL, TOOLS_YACC, etc., provided that "TOOL" has
# been associated with <tool>.
#
+.if !defined(TOOLS_IGNORE.zstd) && !empty(_USE_TOOLS:Mzstd)
+. if !empty(PKGPATH:Marchivers/zstd)
+MAKEFLAGS+= TOOLS_IGNORE.zstd=
+. elif !empty(_TOOLS_USE_PKGSRC.zstd:M[yY][eE][sS])
+TOOLS_DEPENDS.zstd?= zstd>=1.5.0:../../archivers/zstd
+TOOLS_CREATE+= zstd
+TOOLS_PATH.zstd= ${LOCALBASE}/bin/zstd
+. endif
+.endif
+
.if !defined(TOOLS_IGNORE.7za) && !empty(_USE_TOOLS:M7za)
. if !empty(PKGPATH:Marchivers/p7zip)
MAKEFLAGS+= TOOLS_IGNORE.7za=