diff options
-rw-r--r-- | .build.yml | 7 | ||||
-rw-r--r-- | .fossil-settings/ignore-glob | 1 | ||||
-rw-r--r-- | CHANGELOG.md | 122 | ||||
-rw-r--r-- | Makefile | 19 | ||||
-rw-r--r-- | README.md (renamed from README) | 24 | ||||
-rw-r--r-- | config.mk | 18 | ||||
-rwxr-xr-x | configure | 112 | ||||
-rwxr-xr-x | contrib/cpt-size | 2 | ||||
-rw-r--r-- | docs/Makefile | 10 | ||||
-rwxr-xr-x | tools/mkdist.sh | 3 |
10 files changed, 215 insertions, 103 deletions
@@ -9,15 +9,16 @@ packages: - texinfo - gzip tasks: - - build: | - cd cpt - make - install-pax: | git clone --quiet https://github.com/carbslinux/otools cd otools ./configure make pax sudo install -Dm755 pax /usr/bin/pax + - build: | + cd cpt + ./configure + make - test: | cd cpt curl -fsSL https://git.io/shellspec | sudo sh -s -- -y -p /usr diff --git a/.fossil-settings/ignore-glob b/.fossil-settings/ignore-glob index d4cc917..98cdf27 100644 --- a/.fossil-settings/ignore-glob +++ b/.fossil-settings/ignore-glob @@ -17,3 +17,4 @@ tests/etc/cpt-hook .shellspec-quick.log report coverage +config.mk diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ea1041..c90e9d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,15 @@ this project _somewhat_ adheres to [Semantic Versioning]. [Semantic Versioning]: https://semver.org/spec/v2.0.0.html -6.1.0 - 2021-07-22 +[Unreleased] +-------------------------------------------------------------------------------- + +### Changed +- `cpt-size` has been rewritten to support POSIX `du`, and to support packages + with a file count of over 50,000. + + +[6.1.0] - 2021-07-22 -------------------------------------------------------------------------------- ### IMPORTANT @@ -36,14 +44,14 @@ the next pull. The usage of the repository cache can be disabled by setting - Reworked the package repository backend. -6.0.4 - 2021-05-12 +[6.0.4] - 2021-05-12 -------------------------------------------------------------------------------- ### Fixed - Fixed the declaration place of the `$pid` variable -6.0.3 - 2021-05-10 +[6.0.3] - 2021-05-10 -------------------------------------------------------------------------------- ### Fixed @@ -51,21 +59,21 @@ the next pull. The usage of the repository cache can be disabled by setting - Fixed `cpt --help` output when inside a directory prefixed with `cpt-` -6.0.2 - 2021-04-05 +[6.0.2] - 2021-04-05 -------------------------------------------------------------------------------- ### Fixed - Fixed `make dist` target. -6.0.1 - 2021-04-05 +[6.0.1] - 2021-04-05 -------------------------------------------------------------------------------- ### Fixed - Fixed inconsistencies of the `Ctrl+C` interrupt behaviour -6.0.0 - 2021-04-03 +[6.0.0] - 2021-04-03 -------------------------------------------------------------------------------- ### Added @@ -95,7 +103,7 @@ the next pull. The usage of the repository cache can be disabled by setting [ssu]: https://github.com/illiliti/ssu -5.1.2 - 2021-01-04 +[5.1.2] - 2021-01-04 -------------------------------------------------------------------------------- ### Fixed @@ -104,7 +112,7 @@ the next pull. The usage of the repository cache can be disabled by setting file locations on the manifest as well. -5.1.1 - 2020-12-20 +[5.1.1] - 2020-12-20 -------------------------------------------------------------------------------- ### Fixed @@ -112,7 +120,7 @@ the next pull. The usage of the repository cache can be disabled by setting `$CPT_DEBUG` was set -5.1.0 - 2020-11-25 +[5.1.0] - 2020-11-25 -------------------------------------------------------------------------------- ### IMPORTANT @@ -134,7 +142,7 @@ the next pull. The usage of the repository cache can be disabled by setting defined. -5.0.0 - 2020-10-06 +[5.0.0] - 2020-10-06 -------------------------------------------------------------------------------- ### IMPORTANT @@ -162,7 +170,7 @@ the next pull. The usage of the repository cache can be disabled by setting done in a `test` script can be done from the build itself. -4.1.1 - 2020-09-25 +[4.1.1] - 2020-09-25 -------------------------------------------------------------------------------- ### Changed @@ -176,7 +184,7 @@ the next pull. The usage of the repository cache can be disabled by setting - Fixed the `as_root()` function when using `su`. -4.1.0 - 2020-09-11 +[4.1.0] - 2020-09-11 -------------------------------------------------------------------------------- ### Added @@ -186,14 +194,14 @@ the next pull. The usage of the repository cache can be disabled by setting - Fixed `as_root()` call on `cpt-chbuild`. -4.0.1 - 2020-09-10 +[4.0.1] - 2020-09-10 -------------------------------------------------------------------------------- ### Fixed - Fixed flags starting with `--no-` -4.0.0 - 2020-09-09 +[4.0.0] - 2020-09-09 -------------------------------------------------------------------------------- With this update, all the documentation was moved to the `docs` repository, @@ -221,14 +229,14 @@ which can be accessed from the following sources: - Fixed `getoptions` parsers while declaring initial variables. - Fixed build `cpt-stat` on the Makefile. -3.3.1 - 2020-08-31 +[3.3.1] - 2020-08-31 -------------------------------------------------------------------------------- ### Changed - Reverted `sh256()` to the previous way. -3.3.0 - 2020-08-31 +[3.3.0] - 2020-08-31 -------------------------------------------------------------------------------- ### Added @@ -243,7 +251,7 @@ which can be accessed from the following sources: - Made `cpt` checksum method compatible with the KISS Community repository. -3.2.0 - 2020-08-22 +[3.2.0] - 2020-08-22 -------------------------------------------------------------------------------- ### Added @@ -260,14 +268,14 @@ which can be accessed from the following sources: - `cpt` programs no longer exit if `$CPT_PATH` is unset. -3.1.1 - 2020-08-11 +[3.1.1] - 2020-08-11 -------------------------------------------------------------------------------- ### Changed - `as_root()` now sets package manager variables with env. -3.1.0 - 2020-08-07 +[3.1.0] - 2020-08-07 -------------------------------------------------------------------------------- ### Changed @@ -277,7 +285,7 @@ which can be accessed from the following sources: - Dropping libtool's `*.la` library files from packages. -3.0.0 - 2020-07-24 +[3.0.0] - 2020-07-24 -------------------------------------------------------------------------------- This is the 3.0.0 release. This will make `kiss` (now renamed as `cpt`) a @@ -315,7 +323,7 @@ comes with nice benefits such as: - Removed `kiss-outdated` and `kiss-which`. -2.3.0 - 2020-07-16 +[2.3.0] - 2020-07-16 -------------------------------------------------------------------------------- ### Added @@ -337,14 +345,14 @@ comes with nice benefits such as: package ownership. -2.2.1 - 2020-06-11 +[2.2.1] - 2020-06-11 -------------------------------------------------------------------------------- ### Fixed - Fixed directory checking on package removal -2.2.0 - 2020-06-10 +[2.2.0] - 2020-06-10 -------------------------------------------------------------------------------- ### Added @@ -364,7 +372,7 @@ comes with nice benefits such as: characters (such as `/usr/bin/[`) would result in a manifest deletion. -2.1.2 - 2020-06-03 +[2.1.2] - 2020-06-03 -------------------------------------------------------------------------------- ### Fixed @@ -372,7 +380,7 @@ comes with nice benefits such as: the `passwd` database. -2.1.1 - 2020-06-03 +[2.1.1] - 2020-06-03 -------------------------------------------------------------------------------- ### Fixed @@ -381,7 +389,7 @@ comes with nice benefits such as: - Fixed setting binary packages as dependencies. -2.1.0 - 2020-05-29 +[2.1.0] - 2020-05-29 -------------------------------------------------------------------------------- ### Added @@ -396,7 +404,7 @@ comes with nice benefits such as: - Removed strip messages -2.0.0 - 2020-05-28 +[2.0.0] - 2020-05-28 -------------------------------------------------------------------------------- ### Added @@ -420,7 +428,7 @@ comes with nice benefits such as: [kiss-extra]: https://github.com/carbslinux/kiss-extra -1.22.4 - 2020-05-26 +[1.22.4] - 2020-05-26 -------------------------------------------------------------------------------- **NOTE:** `1.22.x` is the last minor version before `2.0.0`, meaning I will not @@ -437,7 +445,7 @@ before release, as binary repositories will need user feedback. - Enabled the usage of glob characters for `kiss-bin`. -1.22.3 - 2020-05-18 +[1.22.3] - 2020-05-18 -------------------------------------------------------------------------------- ### SECURITY @@ -449,7 +457,7 @@ before release, as binary repositories will need user feedback. [related proof-of-concept]: https://github.com/kisslinux/kiss/pull/157#issuecomment-629880775 -1.22.2 - 2020-05-16 +[1.22.2] - 2020-05-16 -------------------------------------------------------------------------------- ### Fixed @@ -458,7 +466,7 @@ before release, as binary repositories will need user feedback. -1.22.1 - 2020-05-15 +[1.22.1] - 2020-05-15 -------------------------------------------------------------------------------- ### REMOVED @@ -484,7 +492,7 @@ before release, as binary repositories will need user feedback. [kiss-extra]: https://github.com/carbslinux/kiss-extra -1.22.0 - 2020-05-14 +[1.22.0] - 2020-05-14 -------------------------------------------------------------------------------- ### Added @@ -503,7 +511,7 @@ before release, as binary repositories will need user feedback. full file. -1.21.1 - 2020-05-14 +[1.21.1] - 2020-05-14 -------------------------------------------------------------------------------- ### Changed @@ -515,7 +523,7 @@ before release, as binary repositories will need user feedback. - Fixed a non-POSIX `find` call. Thanks to @illiliti. -1.21.0 - 2020-05-12 +[1.21.0] - 2020-05-12 -------------------------------------------------------------------------------- ### Added @@ -539,7 +547,7 @@ before release, as binary repositories will need user feedback. external utilities. -1.20.3 - 2020-05-09 +[1.20.3] - 2020-05-09 -------------------------------------------------------------------------------- ### Fixed @@ -547,14 +555,14 @@ before release, as binary repositories will need user feedback. moving to `/var/db/kiss/choices` would take the name of the preferred package. -1.20.2 - 2020-05-09 +[1.20.2] - 2020-05-09 -------------------------------------------------------------------------------- ### Fixed - Fixed an issue regarding manifest format when using pkg_swap (alternatives). -1.20.1 - 2020-05-08 +[1.20.1] - 2020-05-08 -------------------------------------------------------------------------------- ### Changed @@ -562,14 +570,14 @@ before release, as binary repositories will need user feedback. - Standardised `kiss-readlink` usage output. -1.20.0 - 2020-05-07 +[1.20.0] - 2020-05-07 -------------------------------------------------------------------------------- ### Added - `KISS_NOPROMPT` can be specified in order to skip prompts. -1.19.1 - 2020-05-07 +[1.19.1] - 2020-05-07 -------------------------------------------------------------------------------- ### Added @@ -585,7 +593,7 @@ before release, as binary repositories will need user feedback. globally. -1.19.0 - 2020-05-06 +[1.19.0] - 2020-05-06 -------------------------------------------------------------------------------- ### Added @@ -605,7 +613,7 @@ before release, as binary repositories will need user feedback. `kiss extensions`. -1.18.0 - 2020-05-04 +[1.18.0] - 2020-05-04 -------------------------------------------------------------------------------- ### Added @@ -623,7 +631,7 @@ before release, as binary repositories will need user feedback. - Dropped the usage of `readlink` in `kiss`. -1.17.0 - 2020-05-03 +[1.17.0] - 2020-05-03 -------------------------------------------------------------------------------- ### Added @@ -644,14 +652,14 @@ before release, as binary repositories will need user feedback. `ksh` compatibility. -1.16.3 - 2020-05-03 +[1.16.3] - 2020-05-03 -------------------------------------------------------------------------------- ### Fixed - Fixed etcsum location. -1.16.2 - 2020-05-03 +[1.16.2] - 2020-05-03 -------------------------------------------------------------------------------- ### Added @@ -668,14 +676,14 @@ before release, as binary repositories will need user feedback. system. -1.16.1 - 2020-05-01 +[1.16.1] - 2020-05-01 -------------------------------------------------------------------------------- ### Fixed - Fixed `ksh` Ctrl+C interrupt signals. -1.16.0 - 2020-05-01 +[1.16.0] - 2020-05-01 -------------------------------------------------------------------------------- ### Added @@ -691,7 +699,7 @@ before release, as binary repositories will need user feedback. `$KISS_ROOT` variable -1.15.0 - 2020-04-30 +[1.15.0] - 2020-04-30 -------------------------------------------------------------------------------- I have decided to revert to rsync installation method as it is faster and safer. @@ -707,14 +715,14 @@ at the trade-off. - `kiss` now accepts decompressed tar archives for package installation as well. -1.14.2/1.14.3 - 2020-04-27 +[1.14.2/1.14.3] - 2020-04-27 -------------------------------------------------------------------------------- ### Fixed - The new installation method now complies to the `$KISS_ROOT` value. -1.14.1 - 2020-04-27 +[1.14.1] - 2020-04-27 -------------------------------------------------------------------------------- ### Removed @@ -728,7 +736,7 @@ at the trade-off. - Whitespace cleanup. -1.14.0 - 2020-04-25 +[1.14.0] - 2020-04-25 -------------------------------------------------------------------------------- This release removes `rsync` from `kiss` and implements its own installation @@ -746,14 +754,14 @@ method. - usage of `old_ifs` -1.13.1 - 2020-04-19 +[1.13.1] - 2020-04-19 -------------------------------------------------------------------------------- ### Removed - Reverted and removed `kiss ss` changes. -1.13.0 - 2020-04-19 +[1.13.0] - 2020-04-19 -------------------------------------------------------------------------------- ### Added @@ -768,7 +776,7 @@ method. - Fixed a shellcheck error. -1.12.3 - 2020-04-17 +[1.12.3] - 2020-04-17 -------------------------------------------------------------------------------- ### Changed @@ -779,7 +787,7 @@ method. - `kiss-repodepends` now outputs the proper depends file. -1.12.2 - 2020-04-15 +[1.12.2] - 2020-04-15 -------------------------------------------------------------------------------- ### Added @@ -794,14 +802,14 @@ method. - `kiss-export` now honours your `KISS_COMPRESS` value -1.12.1 - 2020-04-12 +[1.12.1] - 2020-04-12 -------------------------------------------------------------------------------- ### Fixed - Fixed printing empty arguments in `kiss-outdated`. -1.12.0 - 2020-04-05 +[1.12.0] - 2020-04-05 -------------------------------------------------------------------------------- ### Added @@ -821,7 +829,7 @@ method. it could lead to wrong url generation. -1.9.0 - 1.11.2 - 2020-04-04 +[1.9.0 - 1.11.2] - 2020-04-04 -------------------------------------------------------------------------------- ### Added @@ -1,5 +1,5 @@ # Carbs Packaging Tools -include config.mk +-include config.mk INSTALL_SH = ./tools/install.sh CONTRIB = `find contrib -name 'cpt*' ! -name '*.*'` @@ -9,7 +9,8 @@ LIB = src/cpt-lib LIB_IN = ${LIB:=.in} all: src/cpt-lib - test "${DOCS}" != yes || ${MAKE} -C docs all + @if ! [ -e config.mk ]; then echo "Please run './configure'"; exit 1; fi + @test "${DOCS}" != yes || ${MAKE} -C docs all src/cpt-lib: src/cpt-lib.in sed -e "s|@VERSION@|${VERSION}|g" \ @@ -32,6 +33,10 @@ dist: docs/cpt.info install: all test "${DOCS}" != yes || ${MAKE} -C docs install + [ -f docs/cpt.info ] && \ + ${INSTALL_SH} -Dm644 docs/cpt.info ${DESTDIR}${INFODIR}/cpt.info + [ -f docs/cpt.txt ] && \ + ${INSTALL_SH} -Dm644 docs/cpt.txt ${DESTDIR}${DOCDIR}/cpt.txt ${INSTALL_SH} -Dm755 -t ${DESTDIR}${BINDIR} ${BIN} ${INSTALL_SH} -Dm644 -t ${DESTDIR}${MAN1} man/*.1 for man in ${CONTRIB}; do \ @@ -40,15 +45,19 @@ install: all done uninstall: - test "${DOCS}" != yes || ${MAKE} -C docs uninstall for bin in ${BIN}; do \ rm -f ${DESTDIR}${BINDIR}/$${bin##*/}; done for man in man/*.1; do rm -f ${DESTDIR}${MAN1}/$${man##*/}; done for man in ${CONTRIB}; do rm -f ${DESTDIR}${MAN1}/$${man##*/}.1; done + rm -rf ${DESTDIR}${DOCDIR} + rm -f ${DESTDIR}${INFODIR}/cpt.info clean: - test "${DOCS}" != yes || ${MAKE} -C docs clean + ${MAKE} -C docs clean rm -rf src/cpt-lib "cpt-${VERSION}.tar.xz" coverage report rm -f tests/etc/cpt-hook -.PHONY: all dist clean install uninstall shellspec shellcheck test +allclean: clean + rm -f config.mk + +.PHONY: all dist allclean clean install uninstall shellspec shellcheck test @@ -1,8 +1,15 @@ Carbs Packaging Tools ===================== -Package management toolset for Carbs Linux. Forked from KISS[1]. All usage -information can be obtained from the manual page. Refer to the ChangeLog[2] to + ##### #### ##### + # # # # # + # #### # + # # # # + ##### # # + + +Package management toolset for Carbs Linux. Forked from [KISS]. All usage +information can be obtained from the manual page. Refer to the [ChangeLog] to learn what's new. @@ -36,10 +43,11 @@ either passing `DOCS=no` to `make` or editing `config.mk` to disable it. Installation ------------ -In order to install CPT, you can run the following with `make`: +In order to install CPT, you can run the following: + ./configure make - make PREFIX=/usr install + make install Documentation @@ -47,12 +55,12 @@ Documentation The documentation for each tool along with some examples can be found on manpages installed with the package manager. User manual of CPT can be found -online[3], or installed as both plain-text and as info pages. Without any +[online], or installed as both plain-text and as info pages. Without any changes to the Makefile configuration those files can be found at: - /usr/local/share/docs/cpt/cpt.txt - /usr/local/share/info/cpt.info -[1]: https://github.com/kisslinux/kiss -[2]: https://fossil.carbslinux.org/cpt/log -[3]: https://carbslinux.org/docs/cpt +[KISS]: https://github.com/kisslinux/kiss +[ChangeLog]: https://fossil.carbslinux.org/cpt/doc/trunk/CHANGELOG.md +[online]: https://carbslinux.org/docs/cpt diff --git a/config.mk b/config.mk deleted file mode 100644 index 1bc27fe..0000000 --- a/config.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Carbs Packaging Tools -VERSION = dev - -# Installation paths -PREFIX = /usr/local -BINDIR = ${PREFIX}/bin -SHAREDIR = ${PREFIX}/share -INFODIR = ${SHAREDIR}/info -DOCDIR = ${SHAREDIR}/doc -CPTDOC = ${DOCDIR}/cpt -MANPREFIX = ${SHAREDIR}/man -MAN1 = ${MANPREFIX}/man1 - -EMACS = emacs -MAKEINFO = makeinfo - -# Comment or change if you don't want to build/install the documentation -DOCS = yes diff --git a/configure b/configure new file mode 100755 index 0000000..d57e48c --- /dev/null +++ b/configure @@ -0,0 +1,112 @@ +#!/bin/sh -e + +version=dev + +die() { + printf '%s: %s\n' "${0##*/}" "$*" >&2 + exit 1 +} + +out() { printf '%s\n' "$@" ;} + +_check() { + for arg; do + printf 'checking for %s... ' "$arg" + command -v "$arg" || { out no; die "'$arg' not found" ;} + done +} + +_check_multi() { + c=$1; shift + printf 'checking for %s... ' "$c" + for arg; do command -v "$arg" && return 0; done + out no; die "no $c was found" +} + +usage() { + out "usage: $0 [options]" \ + "Options:" \ + " --prefix=dir Set prefix directory" \ + " --bindir=dir User executables [PREFIX/bin]" \ + " --datarootdir=dir Data root directory [PREFIX/share]" \ + " --mandir=dir Manual pages [DATAROOTDIR/man]" \ + " --infodir=dir info documentation [DATAROOTDIR/info]" \ + " --docdir=dir Documentation directory [DATAROOTDIR/doc/cpt]" \ + " --with-docs=opt Whether to build the texinfo documentation [auto]" "" \ + " MAKEINFO Name of the 'makeinfo' executable" \ + " EMACS Name of the 'emacs' executable" "" \ + "Use these variables to override the behaviour of '$0'." + exit 1 +} + +prefix=/usr/local +# We don't want expansion +# shellcheck disable=2016 +{ +bindir='$(PREFIX)/bin' +datarootdir='$(PREFIX)/share' +mandir='$(DATAROOTDIR)/man' +infodir='$(DATAROOTDIR)/info' +docdir='$(DATAROOTDIR)/doc/cpt' +} +docs=auto + +for arg; do + case $arg in + -h|--help) usage ;; + --prefix=*) prefix=${arg#*=} ;; + --bindir=*) bindir=${arg#*=} ;; + --mandir=*) mandir=${arg#*=} ;; + --infodir=*) infodir=${arg#*=} ;; + --docdir=*) docdir=${arg#*=} ;; + --without-docs) docs=no ;; + --with-docs) docs=yes ;; + --with-docs=*) docs=${arg#*=} ;; + *-*) die "Unknown option: '$arg'" ;; + *=*) export "${arg:?}" ;; + *) die "Unknown argument: '$arg'" + esac +done + +trap 'rm -f config.mk' EXIT +trap 'rm -f config.mk; exit 1' INT + +: "${EMACS:=emacs}" "${MAKEINFO:=makeinfo}" + +out "starting configuration..." + +cat <<EOF > config.mk +PREFIX = $prefix +BINDIR = $bindir +DATAROOTDIR = $datarootdir +MANDIR = $mandir +INFODIR = $infodir +DOCDIR = $docdir +MAN1 = \$(MANDIR)/man1 + +VERSION = $version +EMACS = $EMACS +EOF + +case $docs in + auto|yes) + printf 'checking for makeinfo... ' + if makeinfo=$(command -v "$MAKEINFO"); then + out "$makeinfo" + docs=yes + out "MAKEINFO = $makeinfo" >>config.mk + else + out no + [ "$docs" = yes ] && die "'$MAKEINFO' not found" + docs=no + fi +esac +[ "$docs" = no ] && out "not building documentation" +out "DOCS = $docs" >>config.mk + +out "checking runtime dependencies" +_check pax rsync sed awk grep +_check_multi "sha256 provider" sha256sum sha256 openssl + +trap - EXIT INT +out "written config.mk" "Run 'make' to build cpt" diff --git a/contrib/cpt-size b/contrib/cpt-size index 0ece039..4b983a1 100755 --- a/contrib/cpt-size +++ b/contrib/cpt-size @@ -16,7 +16,7 @@ parser_definition() { disp :usage -h --help hidden:1 } -# shellcheck source=/bin/cpt-lib +# shellcheck source=../src/cpt-lib # shellcheck disable=1091 . cpt-lib diff --git a/docs/Makefile b/docs/Makefile index 344bd70..3a7dbf0 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,5 +1,5 @@ # Carbs Packaging Tools Documentation -include ../config.mk +-include ../config.mk INSTALL_SH = ../tools/install.sh all: cpt.txt cpt.texi cpt.info @@ -22,12 +22,4 @@ clean: all-clean: clean rm -f cpt.texi cpt.txt -install: all - ${INSTALL_SH} -Dm644 cpt.txt ${DESTDIR}${CPTDOC}/cpt.txt - ${INSTALL_SH} -Dm644 cpt.info ${DESTDIR}${INFODIR}/cpt.info - -uninstall: - rm -rf ${DESTDIR}${CPTDOC} - rm -f ${DESTDIR}${INFODIR}/cpt.info - .PHONY: all clean all-clean install uninstall diff --git a/tools/mkdist.sh b/tools/mkdist.sh index bcf1caf..98f985c 100755 --- a/tools/mkdist.sh +++ b/tools/mkdist.sh @@ -27,6 +27,5 @@ done cp docs/cpt.info "$basedir/docs/cpt.info" -tar cf "$basedir.tar" "$basedir" -xz -z "$basedir.tar" +pax -w "$basedir" | xz -zT 0 > "$basedir.tar.xz" rm -rf -- "$basedir" |