summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--etc/README.md5
-rw-r--r--etc/build.msgs.en3
-rw-r--r--etc/pkgtool.msgs.en1
-rw-r--r--etc/pkgtool.usage5
-rw-r--r--groups.d/231.native_packages_etc.d/shared_mime_info.package2
-rw-r--r--groups.d/251.native_packages_lib.d/libass.package5
-rw-r--r--groups.d/251.native_packages_lib.d/libassuan.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libidn.package4
-rw-r--r--groups.d/251.native_packages_lib.d/libidn2.package8
-rw-r--r--groups.d/261.native_packages_x11.d/Xrender.package (renamed from groups.d/261.native_packages_x11.d/xrender.package)2
-rw-r--r--groups.d/261.native_packages_x11.d/freetype.package6
-rw-r--r--groups.d/261.native_packages_x11.d/freetype_pre.package10
-rw-r--r--groups.d/261.native_packages_x11.d/libICE.package (renamed from groups.d/261.native_packages_x11.d/libice.package)2
-rw-r--r--groups.d/261.native_packages_x11.d/libSM.package (renamed from groups.d/261.native_packages_x11.d/libsm.package)2
-rw-r--r--groups.d/261.native_packages_x11.d/xcb.package15
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_proto.package7
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util_image.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util_wm.package8
-rwxr-xr-xpkgtool.sh37
-rw-r--r--subr.ex/ex_init.subr2
-rw-r--r--subr.ex/ex_pkg.subr125
-rw-r--r--subr.ex/ex_pkg_dispatch.subr24
-rw-r--r--subr.rtl/rtl_list.subr48
24 files changed, 228 insertions, 118 deletions
diff --git a/etc/README.md b/etc/README.md
index 38206285..5d16ed47 100644
--- a/etc/README.md
+++ b/etc/README.md
@@ -962,7 +962,7 @@ usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[
## 4.6. ``pkgtool.sh``
```
-usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-R|-t]
+usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-t]
[--theme theme] [-v]
[<variable name>=<variable override>[ ..]] name[,name..]
@@ -976,8 +976,7 @@ usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <d
Specify "" or '' as <dname> to default to the defaults in
${HOME}/pkgtool.vars, if present.
-p <log_fname> Profile last build.
- -r List reverse dependencies of single named package.
- -R List recursive reverse dependencies of single named package.
+ -r List recursive reverse dependencies of single named package.
-t Produce tarball of package build root directory and build log
file for the purpose of distribution given build failure.
-v Increase verbosity.
diff --git a/etc/build.msgs.en b/etc/build.msgs.en
index ddacb97b..30545eb2 100644
--- a/etc/build.msgs.en
+++ b/etc/build.msgs.en
@@ -12,7 +12,8 @@ MSG_build_killed_pids="1;Killed PID(s): %s";
MSG_build_reset_pkg_state="1;Reset package state for: %s";
MSG_build_resolved_deps="1;Resolved \`%s' dependencies.";
MSG_build_resolving_deps="1;Resolving \`%s' dependencies...";
-MSG_build_unknown_dep="2;Error: dependency \`%s' of \`%s' unknown.";
+MSG_build_unknown_dep="2;Warning: dependency \`%s' of \`%s' unknown.";
+MSG_build_unknown_deps="0;Warning: packages with unknown dependencies.";
MSG_group_begin="4;[%3d%% ] [%03d/%03d] Starting \`%s' build group...";
MSG_group_finish="4;[%3d%% ] [%03d/%03d] Finished \`%s' build group.";
diff --git a/etc/pkgtool.msgs.en b/etc/pkgtool.msgs.en
index 1fe000f0..05331ab6 100644
--- a/etc/pkgtool.msgs.en
+++ b/etc/pkgtool.msgs.en
@@ -24,7 +24,6 @@ MSG_mirror_pkg_skip_no_urls="1;Package \`%s' has neither archive nor Git URL(s),
MSG_rdepends_pkg_deps_rev_none="1;Package \`%s' has no reverse dependencies.";
MSG_rdepends_pkgs_deps_rev_disabled="2;Reverse dependencies of \`%s' (disabled packages:) %s";
-MSG_rdepends_pkgs_deps_rev="2;Reverse dependencies of \`%s': %s";
MSG_rdepends_pkgs_deps_rev_recurse="2;Recursive reverse dependencies of \`%s': %s";
MSG_tarball_created="2;Created compressed tarball of \`%s' and \`%s_stderrout.log'.";
diff --git a/etc/pkgtool.usage b/etc/pkgtool.usage
index 7fc7e77b..a07f8e47 100644
--- a/etc/pkgtool.usage
+++ b/etc/pkgtool.usage
@@ -1,4 +1,4 @@
-usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-R|-t]
+usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-t]
[--theme theme] [-v]
[<variable name>=<variable override>[ ..]] name[,name..]
@@ -12,8 +12,7 @@
Specify "" or '' as <dname> to default to the defaults in
${HOME}/pkgtool.vars, if present.
-p <log_fname> Profile last build.
- -r List reverse dependencies of single named package.
- -R List recursive reverse dependencies of single named package.
+ -r List recursive reverse dependencies of single named package.
-t Produce tarball of package build root directory and build log
file for the purpose of distribution given build failure.
-v Increase verbosity.
diff --git a/groups.d/231.native_packages_etc.d/shared_mime_info.package b/groups.d/231.native_packages_etc.d/shared_mime_info.package
index 04242ea7..b123d91c 100644
--- a/groups.d/231.native_packages_etc.d/shared_mime_info.package
+++ b/groups.d/231.native_packages_etc.d/shared_mime_info.package
@@ -5,6 +5,6 @@
: ${PKG_SHARED_MIME_INFO_CONFIGURE_ARGS_EXTRA:=--disable-update-mimedb};
: ${PKG_SHARED_MIME_INFO_MAKEFLAGS_PARALLELISE:="-j1"};
-ex_pkg_register "shared" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+ex_pkg_register "shared_mime_info" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libass.package b/groups.d/251.native_packages_lib.d/libass.package
index 7e888002..1c85c986 100644
--- a/groups.d/251.native_packages_lib.d/libass.package
+++ b/groups.d/251.native_packages_lib.d/libass.package
@@ -3,11 +3,6 @@
: ${PKG_LIBASS_VERSION:=0.17.1};
: ${PKG_LIBASS_URL:=https://github.com/libass/libass/releases/download/${PKG_LIBASS_VERSION}/libass-${PKG_LIBASS_VERSION}.tar.xz};
: ${PKG_LIBASS_CONFIGURE_ARGS_EXTRA:="--disable-asm"};
-: ${PKG_LIBASSUAN_DEPENDS:="libgpg_error"};
-: ${PKG_LIBASSUAN_SHA256SUM:=8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4};
-: ${PKG_LIBASSUAN_VERSION:=2.5.5};
-: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2};
-: ${PKG_LIBASSUAN_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
ex_pkg_register "libass" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
diff --git a/groups.d/251.native_packages_lib.d/libassuan.package b/groups.d/251.native_packages_lib.d/libassuan.package
new file mode 100644
index 00000000..1872a149
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libassuan.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBASSUAN_DEPENDS:="libgpg_error"};
+: ${PKG_LIBASSUAN_SHA256SUM:=8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4};
+: ${PKG_LIBASSUAN_VERSION:=2.5.5};
+: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2};
+: ${PKG_LIBASSUAN_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
+
+ex_pkg_register "libassuan" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libidn.package b/groups.d/251.native_packages_lib.d/libidn.package
index dcfddf78..6cf084e3 100644
--- a/groups.d/251.native_packages_lib.d/libidn.package
+++ b/groups.d/251.native_packages_lib.d/libidn.package
@@ -3,10 +3,6 @@
: ${PKG_LIBIDN_VERSION:=1.42};
: ${PKG_LIBIDN_URL:=https://ftp.gnu.org/gnu/libidn/libidn-${PKG_LIBIDN_VERSION}.tar.gz};
: ${PKG_LIBIDN_CONFIGURE_ARGS_EXTRA:="--disable-java --disable-csharp --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf"};
-: ${PKG_LIBIDN2_DEPENDS:="libunistring libiconv"};
-: ${PKG_LIBIDN2_SHA256SUM:=93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f};
-: ${PKG_LIBIDN2_VERSION:=2.3.4};
-: ${PKG_LIBIDN2_URL:=https://ftp.gnu.org/gnu/libidn/libidn2-${PKG_LIBIDN2_VERSION}.tar.gz};
ex_pkg_register "libidn" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
diff --git a/groups.d/251.native_packages_lib.d/libidn2.package b/groups.d/251.native_packages_lib.d/libidn2.package
new file mode 100644
index 00000000..e17f8411
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libidn2.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBIDN2_DEPENDS:="libunistring libiconv"};
+: ${PKG_LIBIDN2_SHA256SUM:=93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f};
+: ${PKG_LIBIDN2_VERSION:=2.3.4};
+: ${PKG_LIBIDN2_URL:=https://ftp.gnu.org/gnu/libidn/libidn2-${PKG_LIBIDN2_VERSION}.tar.gz};
+
+ex_pkg_register "libidn2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xrender.package b/groups.d/261.native_packages_x11.d/Xrender.package
index 585d6015..6ed27851 100644
--- a/groups.d/261.native_packages_x11.d/xrender.package
+++ b/groups.d/261.native_packages_x11.d/Xrender.package
@@ -3,6 +3,6 @@
: ${PKG_XRENDER_VERSION:=0.9.10};
: ${PKG_XRENDER_URL:=https://www.x.org/releases/individual/lib/libXrender-${PKG_XRENDER_VERSION}.tar.bz2};
-ex_pkg_register "xrender" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+ex_pkg_register "Xrender" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/freetype.package b/groups.d/261.native_packages_x11.d/freetype.package
index e826bf3f..4f42ad0a 100644
--- a/groups.d/261.native_packages_x11.d/freetype.package
+++ b/groups.d/261.native_packages_x11.d/freetype.package
@@ -3,12 +3,6 @@
: ${PKG_FREETYPE_VERSION:=2.11.1};
: ${PKG_FREETYPE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_VERSION}.tar.xz};
: ${PKG_FREETYPE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=yes --with-png=yes --with-zlib=yes"};
-: ${PKG_FREETYPE_PRE_DEPENDS:="bzip2 libpng libz"};
-: ${PKG_FREETYPE_PRE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
-: ${PKG_FREETYPE_PRE_VERSION:=2.11.1};
-: ${PKG_FREETYPE_PRE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_PRE_VERSION}.tar.xz};
-: ${PKG_FREETYPE_PRE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=no --with-png=yes --with-zlib=yes"};
-: ${PKG_FREETYPE_PRE_RPM_DISABLE:=1};
ex_pkg_register "freetype" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
diff --git a/groups.d/261.native_packages_x11.d/freetype_pre.package b/groups.d/261.native_packages_x11.d/freetype_pre.package
new file mode 100644
index 00000000..8c650556
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/freetype_pre.package
@@ -0,0 +1,10 @@
+: ${PKG_FREETYPE_PRE_DEPENDS:="bzip2 libpng libz"};
+: ${PKG_FREETYPE_PRE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
+: ${PKG_FREETYPE_PRE_VERSION:=2.11.1};
+: ${PKG_FREETYPE_PRE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_PRE_VERSION}.tar.xz};
+: ${PKG_FREETYPE_PRE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=no --with-png=yes --with-zlib=yes"};
+: ${PKG_FREETYPE_PRE_RPM_DISABLE:=1};
+
+ex_pkg_register "freetype_pre" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libice.package b/groups.d/261.native_packages_x11.d/libICE.package
index 75e5484a..fd17e503 100644
--- a/groups.d/261.native_packages_x11.d/libice.package
+++ b/groups.d/261.native_packages_x11.d/libICE.package
@@ -4,6 +4,6 @@
: ${PKG_LIBICE_URL:=https://www.x.org/releases/individual/lib/libICE-${PKG_LIBICE_VERSION}.tar.xz};
: ${PKG_LIBICE_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
-ex_pkg_register "libice" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+ex_pkg_register "libICE" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libsm.package b/groups.d/261.native_packages_x11.d/libSM.package
index 269eb51d..9b16489d 100644
--- a/groups.d/261.native_packages_x11.d/libsm.package
+++ b/groups.d/261.native_packages_x11.d/libSM.package
@@ -4,6 +4,6 @@
: ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.xz};
: ${PKG_LIBSM_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
-ex_pkg_register "libsm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+ex_pkg_register "libSM" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb.package b/groups.d/261.native_packages_x11.d/xcb.package
index 4feb38f7..0e166daa 100644
--- a/groups.d/261.native_packages_x11.d/xcb.package
+++ b/groups.d/261.native_packages_x11.d/xcb.package
@@ -6,21 +6,6 @@
: ${PKG_XCB_CONFIG_CACHE_EXTRA:="ac_cv_search_sendmsg=no"};
: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:="--disable-randr PYTHON=${PREFIX}/bin/python3"};
: ${PKG_XCB_ENV_VARS_EXTRA:="XCBPROTO_XCBPYTHONDIR=${PREFIX_NATIVE}/lib/python2.7/site-packages:XCBPROTO_XCBINCLUDEDIR=${PREFIX_NATIVE}/share/xcb"};
-: ${PKG_XCB_PROTO_SHA256SUM:=a75a1848ad2a89a82d841a51be56ce988ff3c63a8d6bf4383ae3219d8d915119};
-: ${PKG_XCB_PROTO_VERSION:=1.16.0};
-: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/proto/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.xz};
-: ${PKG_XCB_UTIL_DEPENDS:="xcb"};
-: ${PKG_XCB_UTIL_SHA256SUM:=5abe3bbbd8e54f0fa3ec945291b7e8fa8cfd3cccc43718f8758430f94126e512};
-: ${PKG_XCB_UTIL_VERSION:=0.4.1};
-: ${PKG_XCB_UTIL_URL:=https://x.org/releases/individual/xcb/xcb-util-${PKG_XCB_UTIL_VERSION}.tar.xz};
-: ${PKG_XCB_UTIL_IMAGE_DEPENDS:="xcb xcb_util"};
-: ${PKG_XCB_UTIL_IMAGE_SHA256SUM:=ccad8ee5dadb1271fd4727ad14d9bd77a64e505608766c4e98267d9aede40d3d};
-: ${PKG_XCB_UTIL_IMAGE_VERSION:=0.4.1};
-: ${PKG_XCB_UTIL_IMAGE_URL:=https://x.org/releases/individual/xcb/xcb-util-image-${PKG_XCB_UTIL_IMAGE_VERSION}.tar.xz};
-: ${PKG_XCB_UTIL_WM_DEPENDS:="xcb"};
-: ${PKG_XCB_UTIL_WM_SHA256SUM:=62c34e21d06264687faea7edbf63632c9f04d55e72114aa4a57bb95e4f888a0b};
-: ${PKG_XCB_UTIL_WM_VERSION:=0.4.2};
-: ${PKG_XCB_UTIL_WM_URL:=https://x.org/releases/individual/xcb/xcb-util-wm-${PKG_XCB_UTIL_WM_VERSION}.tar.xz};
ex_pkg_register "xcb" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
diff --git a/groups.d/261.native_packages_x11.d/xcb_proto.package b/groups.d/261.native_packages_x11.d/xcb_proto.package
new file mode 100644
index 00000000..8717d5b6
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_proto.package
@@ -0,0 +1,7 @@
+: ${PKG_XCB_PROTO_SHA256SUM:=a75a1848ad2a89a82d841a51be56ce988ff3c63a8d6bf4383ae3219d8d915119};
+: ${PKG_XCB_PROTO_VERSION:=1.16.0};
+: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/proto/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_proto" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util.package b/groups.d/261.native_packages_x11.d/xcb_util.package
new file mode 100644
index 00000000..b16d0d72
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_DEPENDS:="xcb"};
+: ${PKG_XCB_UTIL_SHA256SUM:=5abe3bbbd8e54f0fa3ec945291b7e8fa8cfd3cccc43718f8758430f94126e512};
+: ${PKG_XCB_UTIL_VERSION:=0.4.1};
+: ${PKG_XCB_UTIL_URL:=https://x.org/releases/individual/xcb/xcb-util-${PKG_XCB_UTIL_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util_image.package b/groups.d/261.native_packages_x11.d/xcb_util_image.package
new file mode 100644
index 00000000..83536d61
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util_image.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_IMAGE_DEPENDS:="xcb xcb_util"};
+: ${PKG_XCB_UTIL_IMAGE_SHA256SUM:=ccad8ee5dadb1271fd4727ad14d9bd77a64e505608766c4e98267d9aede40d3d};
+: ${PKG_XCB_UTIL_IMAGE_VERSION:=0.4.1};
+: ${PKG_XCB_UTIL_IMAGE_URL:=https://x.org/releases/individual/xcb/xcb-util-image-${PKG_XCB_UTIL_IMAGE_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util_image" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util_wm.package b/groups.d/261.native_packages_x11.d/xcb_util_wm.package
new file mode 100644
index 00000000..b2c9aecf
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util_wm.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_WM_DEPENDS:="xcb"};
+: ${PKG_XCB_UTIL_WM_SHA256SUM:=62c34e21d06264687faea7edbf63632c9f04d55e72114aa4a57bb95e4f888a0b};
+: ${PKG_XCB_UTIL_WM_VERSION:=0.4.2};
+: ${PKG_XCB_UTIL_WM_URL:=https://x.org/releases/individual/xcb/xcb-util-wm-${PKG_XCB_UTIL_WM_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util_wm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/pkgtool.sh b/pkgtool.sh
index 4f04e48c..d4a67ab2 100755
--- a/pkgtool.sh
+++ b/pkgtool.sh
@@ -56,24 +56,22 @@ pkgtoolp_init_args() {
+ ${ARG_MIRROR:-0}
+ ${ARG_PROFILE:-0}
+ ${ARG_RDEPENDS:-0}
- + ${ARG_RDEPENDS_FULL:-0}
+ ${ARG_TARBALL:-0}))" -gt 1 ];
then
cat etc/pkgtool.usage;
_ppia_rc=1;
- rtl_setrstatus "${_ppia_rstatus}" 'only one of -e, -f, -i, -m and/or -M, -p, -r, -R, -s, or -t must be specified.';
+ rtl_setrstatus "${_ppia_rstatus}" 'only one of -e, -f, -i, -m and/or -M, -p, -r, -s, or -t must be specified.';
elif [ "$((${ARG_INFO:-0}
+ ${ARG_EDIT:-0}
+ ${ARG_FILES:-0}
+ ${ARG_MIRROR:-0}
+ ${ARG_PROFILE:-0}
+ ${ARG_RDEPENDS:-0}
- + ${ARG_RDEPENDS_FULL:-0}
+ ${ARG_TARBALL:-0}))" -eq 0 ];
then
cat etc/pkgtool.usage;
_ppia_rc=1;
- rtl_setrstatus "${_ppia_rstatus}" 'one of -e, -f, -i, -m and/or -M, -p, -r, -R, -s, or -t must be specified.';
+ rtl_setrstatus "${_ppia_rstatus}" 'one of -e, -f, -i, -m and/or -M, -p, -r, -s, or -t must be specified.';
else
_ppia_rc=0;
export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
@@ -93,8 +91,8 @@ pkgtoolp_init_getopts_fn() {
: ${ARCH:="nt64"};
: ${BUILD_KIND:="debug"};
- ARG_INFO=0; ARG_EDIT=0; ARG_MIRROR=0; ARG_RDEPENDS=0;
- ARG_RDEPENDS_FULL=0; ARG_TARBALL=0; ARG_VERBOSE=0;
+ ARG_INFO=0; ARG_EDIT=0; ARG_MIRROR=0;
+ ARG_RDEPENDS=0; ARG_TARBALL=0; ARG_VERBOSE=0;
;;
longopt)
@@ -148,7 +146,6 @@ pkgtoolp_init_getopts_fn() {
fi;
_ppigf_shiftfl=2; ;;
r) ARG_RDEPENDS=1; _ppigf_shiftfl=1; ;;
- R) ARG_RDEPENDS_FULL=1; _ppigf_shiftfl=1; ;;
t) ARG_TARBALL=1; _ppigf_shiftfl=1; ;;
v) ARG_VERBOSE=1; _ppigf_shiftfl=1; ;;
*) cat etc/pkgtool.usage; exit 1; ;;
@@ -619,9 +616,9 @@ pkgtoolp_profile() {
return "${_ppp_rc}";
};
# }}}
-# {{{ pkgtoolp_rdepends($_rstatus, $_pkg_name, $_full_rdependsfl)
+# {{{ pkgtoolp_rdepends($_rstatus, $_pkg_name)
pkgtoolp_rdepends() {
- local _ppr_rstatus="${1}" _ppr_pkg_name="${2}" _ppr_full_rdependsfl="${3}" \
+ local _ppr_rstatus="${1}" _ppr_pkg_name="${2}" \
_ppr_depends="" _ppr_group_name="" _ppr_groups="" _ppr_groups_noauto="" \
_ppr_pkg_depends="" _ppr_pkg_disabled="" _ppr_pkg_finished="" \
_ppr_pkg_name_rdepend="" _ppr_pkg_names="" _ppr_pkg_rdepends="" \
@@ -640,7 +637,8 @@ pkgtoolp_rdepends() {
\$_ppr_pkg_disabled \$_ppr_pkg_finished \
\$_ppr_pkg_rdepends_direct \
"${_ppr_group_name}" "${_ppr_pkg_names}" \
- "${_ppr_pkg_name}" 1 "${BUILD_WORKDIR}";
+ "${_ppr_pkg_name}" 1 "${BUILD_WORKDIR}" \
+ "norecurse";
then
_ppr_rc=1;
rtl_setrstatus "${_ppr_rstatus}" 'Error: failed to unfold reverse dependency-expanded package name list for \`'"${_ppr_pkg_name}'"'.';
@@ -654,23 +652,19 @@ pkgtoolp_rdepends() {
${_ppr_pkg_finished} \
${_ppr_pkg_rdepends_direct});
do
- rtl_lconcat \$_ppr_pkg_rdepends "${_ppr_pkg_name_rdepend}";
-
- if [ "${_ppr_full_rdependsfl}" -eq 1 ]; then
- rtl_get_var_unsafe \$_ppr_depends -u "PKG_"${_ppr_pkg_name}"_DEPENDS";
+ if rtl_get_var_unsafe \$_ppr_depends -u "PKG_"${_ppr_pkg_name_rdepend}"_DEPENDS"\
+ && [ "${_ppr_depends:+1}" = 1 ]; then
if rtl_lunfold_dependsV 'PKG_${_rld_name}_DEPENDS' \$_ppr_pkg_depends ${_ppr_depends}\
+ && rtl_lfilter \$_ppr_pkg_depends "${_ppr_pkg_name}"\
&& [ "${_ppr_pkg_depends:+1}" = 1 ]; then
- rtl_lconcat \$_ppr_pkg_rdepends "${_ppr_pkg_depends}";
+ rtl_lconcat \$_ppr_pkg_rdepends "$(rtl_uniq "$(rtl_lsortV ${_ppr_pkg_depends})")";
fi;
fi;
+ rtl_lconcat \$_ppr_pkg_rdepends "${_ppr_pkg_name_rdepend}";
done;
if [ "${_ppr_pkg_rdepends:+1}" = 1 ]; then
- if [ "${_ppr_full_rdependsfl}" -eq 1 ]; then
- rtl_log_msgV "info" "${MSG_rdepends_pkgs_deps_rev_recurse}" "${_ppr_pkg_name}" "${_ppr_pkg_rdepends}";
- else
- rtl_log_msgV "info" "${MSG_rdepends_pkgs_deps_rev}" "${_ppr_pkg_name}" "${_ppr_pkg_rdepends}";
- fi;
+ rtl_log_msgV "info" "${MSG_rdepends_pkgs_deps_rev_recurse}" "${_ppr_pkg_name}" "${_ppr_pkg_rdepends}";
fi;
if [ "${_ppr_pkg_disabled:+1}" = 1 ]; then
@@ -746,8 +740,7 @@ pkgtool() {
"${ARG_INFO:-0}") pkgtoolp_info \$_status "${PKGTOOL_PKG_NAME}"; ;;
"${ARG_MIRROR:-0}") pkgtoolp_mirror \$_status "${ARG_MIRROR_DNAME}" "${ARG_MIRROR_DNAME_GIT}"; ;;
"${ARG_PROFILE:-0}") pkgtoolp_profile \$_status "${ARG_PROFILE_LOG_FNAME}"; ;;
- "${ARG_RDEPENDS:-0}") pkgtoolp_rdepends \$_status "${PKGTOOL_PKG_NAME}" 0; ;;
- "${ARG_RDEPENDS_FULL:-0}") pkgtoolp_rdepends \$_status "${PKGTOOL_PKG_NAME}" 1; ;;
+ "${ARG_RDEPENDS:-0}") pkgtoolp_rdepends \$_status "${PKGTOOL_PKG_NAME}"; ;;
"${ARG_TARBALL:-0}") pkgtoolp_tarball \$_status "${PKGTOOL_PKG_NAME}"; ;;
esac; _rc="${?}";
fi;
diff --git a/subr.ex/ex_init.subr b/subr.ex/ex_init.subr
index e9b4d3f4..5dc4f857 100644
--- a/subr.ex/ex_init.subr
+++ b/subr.ex/ex_init.subr
@@ -321,7 +321,7 @@ ex_init_files() {
#
# ex_init_logging() - initialise build logging
# @_rstatus: out reference to variable of status string on failure
-# @_rverbose_tags: in reference toout variable of -V argument value
+# @_rverbose_tags: in reference to out variable of -V argument value
# @_verbose: -[vV] argument value
#
# Returns: zero (0) on success, non-zero (>0) on failure
diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr
index 2e86c319..0458ed6d 100644
--- a/subr.ex/ex_pkg.subr
+++ b/subr.ex/ex_pkg.subr
@@ -3,7 +3,6 @@
# set +o errexit -o noglob -o nounset is assumed.
#
-
#
# ex_pkg_check_depends() - check single named package for unsatisfied dependencies
# @_checkfl: enable (1) or inhibit (0) dependency expansion
@@ -14,25 +13,15 @@
# @_workdir: pathname to build-specific temporary directory
#
# Returns: zero (0) given no outstanding dependencies, non-zero (>0) otherwise
-# Side effects: ${PKG_${_PKG_NAME}_DEPENDS_FULL} may be mutated
#
ex_pkg_check_depends() {
local _epcd_checkfl="${1}" _epcd_rpkg_disabled="${2}" _epcd_rpkg_finished="${3#\$}" \
_epcd_pkg_name="${4}" _epcd_rpkg_names="${5#\$}" _epcd_workdir="${6}" \
_epcd_dependfl=0 _epcd_depends="" _epcd_pkg_name_depend="";
- if [ "${_epcd_checkfl}" -eq 1 ]; then
- if ! rtl_get_var_unsafe \$_epcd_depends -u "PKG_"${_epcd_pkg_name}"_DEPENDS_FULL"\
- || [ "${_epcd_depends:+1}" != 1 ];
- then
- if rtl_get_var_unsafe \$_epcd_depends -u "PKG_"${_epcd_pkg_name}"_DEPENDS";
- then
- eval PKG_"${_epcd_pkg_name}"_DEPENDS_FULL='$(rtl_uniq ${_epcd_depends})';
- else
- return 0;
- fi;
- fi;
-
+ if [ "${_epcd_checkfl}" -eq 1 ]\
+ && rtl_get_var_unsafe \$_epcd_depends -u "PKG_"${_epcd_pkg_name}"_DEPENDS"\
+ && [ "${_epcd_depends:+1}" = 1 ]; then
for _epcd_pkg_name_depend in ${_epcd_depends}; do
if ! rtl_lmatch "${_epcd_rpkg_disabled}" "${_epcd_pkg_name_depend}"\
&& ! ex_pkg_state_test2 "${_epcd_workdir}" "${_epcd_pkg_name_depend}" finish;
@@ -50,6 +39,34 @@ ex_pkg_check_depends() {
};
#
+# ex_pkg_check_depends_unknown() - check single named package for unknown dependencies
+# @_pkg_name: single package name
+# @_rpkg_names_set: in reference to variable of set of package names
+# @_rpkg_unknown: out reference to variable of list of finished packages
+#
+# Returns: zero (0) given no unknown dependencies, non-zero (>0) otherwise
+#
+ex_pkg_check_depends_unknown() {
+ local _epcdu_pkg_name="${1}" _epcdu_rpkg_names_set="${2#\$}" \
+ _epcdu_rpkg_unknown="${3#\$}" \
+ _epcdu_defined=0 _epcdu_depends="" _epcdu_pkg_name_depend="" \
+ _epcdu_rc=0;
+
+ if rtl_get_var_unsafe \$_epcdu_depends -u "PKG_"${_epcdu_pkg_name}"_DEPENDS"\
+ && [ "${_epcdu_depends:+1}" = 1 ]; then
+ for _epcdu_pkg_name_depend in ${_epcdu_depends}; do
+ if ! rtl_get_var_unsafe \$_epcdu_defined "${_epcdu_rpkg_names_set}_${_epcdu_pkg_name_depend}"\
+ || [ "${_epcdu_defined:-0}" -eq 0 ]; then
+ rtl_lconcat "${_epcdu_rpkg_unknown}" "${_epcdu_pkg_name_depend}";
+ _epcdu_rc=1;
+ fi;
+ done;
+ fi;
+
+ return "${_epcdu_rc}";
+};
+
+#
# ex_pkg_copy_group_vars() - copy build group variables into build group
# @_group_name_src: single source build group name
# @_group_name_dst: single destination build group name
@@ -365,8 +382,8 @@ ex_pkg_register_group() {
#
# ex_pkg_unfold_depends() - unfold list of package names into dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_rdisabled: in reference toout variable of disabled packages
-# @_rfinished: in reference toout variable of finished packages
+# @_rdisabled: in reference to out variable of disabled packages
+# @_rfinished: in reference to out variable of finished packages
# @_rnames: out reference to variable of package names
# @_checkfl: enable (1) or inhibit (0) dependency expansion
# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
@@ -383,8 +400,9 @@ ex_pkg_unfold_depends() {
_epud_checkfl="${4}" _epud_forcefl="${5}" _epud_group_name="${6}" \
_epud_pkg_names="${7}" _epud_restart="${8}" _epud_test_finished="${9}" \
_epud_workdir="${10}" \
- _epud_pkg_disabled="" _epud_pkg_force="" _epud_pkg_name="" \
- _epud_pkg_names_new="" _epud_restartfl=0;
+ _epud_depends="" _epud_pkg_disabled="" _epud_pkg_force="" _epud_pkg_name="" \
+ _epud_pkg_name_depend="" _epud_pkg_names_new="" _epud_pkg_names_set="" \
+ _epud_pkg_unknown="" _epud_restartfl=0 _epud_unknown_depends=0;
if [ "${_epud_restart:+1}" = 1 ]\
&& ! rtl_lmatch \$_epud_restart "ALL LAST"; then
@@ -396,7 +414,19 @@ ex_pkg_unfold_depends() {
_epud_pkg_names="$(rtl_uniq ${_epud_pkg_names})";
fi;
+ rtl_llift_set \$_epud_pkg_names \$_epud_pkg_names_set;
for _epud_pkg_name in ${_epud_pkg_names}; do
+ if rtl_get_var_unsafe \$_epud_depends -u "PKG_"${_epud_pkg_name}"_DEPENDS"\
+ && [ "${_epud_depends:+1}" = 1 ]; then
+ _epud_pkg_unknown="";
+ if ! ex_pkg_check_depends_unknown "${_epud_pkg_name}" \$_epud_pkg_names_set \$_epud_pkg_unknown; then
+ for _epud_pkg_name_depend in ${_epud_pkg_unknown}; do
+ rtl_log_msgV "warning" "${MSG_build_unknown_dep}" "${_epud_pkg_name_depend}" "${_epud_pkg_name}";
+ done;
+ _epud_unknown_depends=1;
+ fi;
+ fi;
+
if [ "${_epud_restart}" = "ALL" ]\
|| rtl_lmatch \$_epud_restart "${_epud_pkg_name}"; then
_epud_restartfl=1;
@@ -422,6 +452,11 @@ ex_pkg_unfold_depends() {
rtl_lconcat \$_epud_pkg_names_new "${_epud_pkg_name}";
fi;
done;
+ rtl_llift_unset \$_epud_pkg_names_set;
+
+ if [ "${_epud_unknown_depends}" -eq 1 ]; then
+ rtl_log_msgV "warning" "${MSG_build_unknown_deps}";
+ fi;
eval ${_epud_rdisabled}='$(rtl_uniq2 "${_epud_rdisabled}")';
eval ${_epud_rfinished}='$(rtl_uniq2 "${_epud_rfinished}")';
@@ -432,24 +467,25 @@ ex_pkg_unfold_depends() {
#
# ex_pkg_unfold_rdepends() - unfold list of package names into reverse dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_rdisabled: in reference toout variable of disabled packages
-# @_rfinished: in reference toout variable of finished packages
+# @_rdisabled: in reference to out variable of disabled packages
+# @_rfinished: in reference to out variable of finished packages
# @_rnames: out reference to variable of package names
# @_group_name: build group name
# @_pkg_names: list of package names
# @_restart: optional whitespace-separated list of package names to rebuild
# @_test_finished: only exclude disabled packages (0,) split finished packages
# @_workdir: pathname to build-specific temporary directory
+# @_recursefl: resolve recursively ("recurse") or non-recursively ("norecurse")
#
# Returns: zero (0) on success, non-zero (>0) on failure.
#
ex_pkg_unfold_rdepends() {
local _epur_rdisabled="${1#\$}" _epur_rfinished="${2#\$}" _epur_rnames="${3#\$}" \
_epur_group_name="${4}" _epur_pkg_names="${5}" _epur_restart="${6}" \
- _epur_test_finished="${7}" _epur_workdir="${8}" \
+ _epur_test_finished="${7}" _epur_workdir="${8}" _epur_recursefl="${9}" \
_epur_depends="" _epur_disabled=0 _epur_force=0 _epur_pkg_depends="" \
_epur_pkg_name="" _epur_pkg_names_new="" _epur_pkg_name_depend="" \
- _epur_pkg_rdepends="";
+ _epur_pkg_name_rdepend="" _epur_pkg_rdepends="";
for _epur_pkg_name_depend in ${_epur_restart}; do
for _epur_pkg_name in ${_epur_pkg_names}; do
@@ -461,25 +497,32 @@ ex_pkg_unfold_rdepends() {
&& [ "${_epur_pkg_depends:+1}" = 1 ]\
&& rtl_lmatch \$_epur_pkg_depends "${_epur_pkg_name_depend}";
then
- if rtl_get_var_unsafe \$_epur_disabled -u "PKG_${_epur_pkg_name}_DISABLED"\
- && [ "${_epur_disabled}" = 1 ];
- then
- rtl_lconcat "${_epur_rdisabled}" "${_epur_pkg_name}";
-
- elif [ "${_epur_test_finished}" -eq 1 ]\
- && ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name}" finish\
- && rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
- && [ "${_epur_force}" != 1 ];
- then
- rtl_lconcat "${_epur_rfinished}" "${_epur_pkg_name}";
-
- elif [ "${_epur_test_finished:-1}" -eq 0 ]\
- || ! ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name}" finish\
- || ( rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
- && [ "${_epur_force}" = 1 ] );
- then
- rtl_lconcat \$_epur_pkg_names_new "${_epur_pkg_name}";
- fi;
+ case "${_epur_recursefl}" in
+ recurse) _epur_pkg_rdepends="${_epur_pkg_name} ${_epur_pkg_depends}"; ;;
+ norecurse) _epur_pkg_rdepends="${_epur_pkg_name}"; ;;
+ esac;
+
+ for _epur_pkg_name_rdepend in ${_epur_pkg_rdepends}; do
+ if rtl_get_var_unsafe \$_epur_disabled -u "PKG_${_epur_pkg_name_rdepend}_DISABLED"\
+ && [ "${_epur_disabled}" = 1 ];
+ then
+ rtl_lconcat "${_epur_rdisabled}" "${_epur_pkg_name_rdepend}";
+
+ elif [ "${_epur_test_finished}" -eq 1 ]\
+ && ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name_rdepend}" finish\
+ && rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
+ && [ "${_epur_force}" != 1 ];
+ then
+ rtl_lconcat "${_epur_rfinished}" "${_epur_pkg_name_rdepend}";
+
+ elif [ "${_epur_test_finished:-1}" -eq 0 ]\
+ || ! ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name_rdepend}" finish\
+ || ( rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
+ && [ "${_epur_force}" = 1 ] );
+ then
+ rtl_lconcat \$_epur_pkg_names_new "${_epur_pkg_name_rdepend}";
+ fi;
+ done;
fi;
done;
done;
diff --git a/subr.ex/ex_pkg_dispatch.subr b/subr.ex/ex_pkg_dispatch.subr
index 83f36656..19818e97 100644
--- a/subr.ex/ex_pkg_dispatch.subr
+++ b/subr.ex/ex_pkg_dispatch.subr
@@ -64,7 +64,7 @@ exp_pkg_dispatch_expand_packages() {
"${_epdep_rdisabled}" "${_epdep_rfinished}" \
"${_epdep_rnames}" "${_epdep_group_name}" \
"${_epdep_pkg_names}" "${_epdep_restart}" 1 \
- "${_epdep_workdir}";
+ "${_epdep_workdir}" "recurse";
fi;
fi;
@@ -77,16 +77,16 @@ exp_pkg_dispatch_expand_packages() {
#
# exp_pkg_dispatch_group() - dispatch a single build group
-# @_rdispatch_count: in reference toout variable of dispatcher count
-# @_rdispatch_count_cur: in reference toout variable of current dispatcher count
+# @_rdispatch_count: in reference to out variable of dispatcher count
+# @_rdispatch_count_cur: in reference to out variable of current dispatcher count
# @_dispatch_count_max: maximum dispatcher count
# @_dispatch_group_cur: current group
# @_dispatch_group_max: maximum group
-# @_rdispatch_njobs: in reference toout variable of dispatcher count
-# @_rdispatch_wait: in reference toout variable of package names in a wait state
+# @_rdispatch_njobs: in reference to out variable of dispatcher count
+# @_rdispatch_wait: in reference to out variable of package names in a wait state
# @_rpkg_disabled: in reference to variable of list of disabled packages
-# @_rpkg_finished: in reference toout variable of list of finished packages
-# @_rpkg_names: in reference toout variable of list of package names
+# @_rpkg_finished: in reference to out variable of list of finished packages
+# @_rpkg_names: in reference to out variable of list of package names
# @_build_steps_default: list of default build steps
# @_build_vars_default: list of default build variables
# @_checkfl: enable (1) or inhibit (0) dependency expansion
@@ -213,16 +213,16 @@ exp_pkg_dispatch_group() {
#
# exp_pkg_dispatch_packages() - dispatch set of packages
-# @_rdispatch_count: in reference toout variable of dispatcher count
+# @_rdispatch_count: in reference to out variable of dispatcher count
# @_dispatch_count_cur: current dispatcher count
# @_dispatch_count_max: maximum dispatcher count
# @_dispatch_group_cur: current group
# @_dispatch_group_max: maximum group
-# @_rdispatch_njobs: in reference toout variable of dispatcher count
-# @_rdispatch_wait: in reference toout variable of package names in a wait state
+# @_rdispatch_njobs: in reference to out variable of dispatcher count
+# @_rdispatch_wait: in reference to out variable of package names in a wait state
# @_rpkg_disabled: in reference to variable of list of disabled packages
-# @_rpkg_finished: in reference toout variable of list of finished packages
-# @_rpkg_names: in reference toout variable of list of package names
+# @_rpkg_finished: in reference to out variable of list of finished packages
+# @_rpkg_names: in reference to out variable of list of package names
# @_build_steps_default: list of default build steps
# @_build_vars_default: list of default build variables
# @_checkfl: enable (1) or inhibit (0) dependency expansion
diff --git a/subr.rtl/rtl_list.subr b/subr.rtl/rtl_list.subr
index 36bc77e9..0ec53661 100644
--- a/subr.rtl/rtl_list.subr
+++ b/subr.rtl/rtl_list.subr
@@ -222,6 +222,54 @@ rtl_llift2() {
};
#
+# rtl_llift_set() - convert list w/ separator to set
+# @_rlist: in reference to list
+# @_rset_new: out reference to new set
+# @_sep: single non-zero, possibly multi-character, separator
+#
+# Notate bene: all list items in @_rlist must form valid shell parameter name substrings;
+# no list item must be named "__000000__"
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_llift_set() {
+ local _rls3_rlist="${1#\$}" _rls3_rset_new="${2#\$}" _rls3_sep="${3:-}" \
+ _rls3_litem="";
+
+ if [ "${_rls3_sep:+1}" = 1 ]; then
+ local IFS="${_rls3_sep}";
+ else
+ local _rls3_sep=" " IFS="${RTL_IFS_ORIG}";
+ fi;
+
+ eval set -- '${'"${_rls3_rlist}"'}';
+ eval "${_rls3_rset_new}___000000__=\${${_rls3_rlist}}";
+ for _rls3_litem in "${@}"; do
+ eval "${_rls3_rset_new}_${_rls3_litem}=1";
+ done;
+ return 0;
+};
+
+#
+# rtl_llift_unset() - unset set previously created w/ rtl_llift_set()
+# @_rset: in reference to set
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_llift_unset() {
+ local _rlu_rset="${1#\$}" \
+ _rlu_index="" _rlu_item="";
+
+ if rtl_get_var_unsafe \$_rlu_index "${_rlu_rset}___000000__"; then
+ for _rlu_item in ${_rlu_index}; do
+ unset "${_rlu_rset}_${_rlu_item}";
+ done;
+ unset "${_rlu_rset}___000000__";
+ fi;
+
+ return 0;
+};
+
+#
# rtl_lmatch() - check if item(s) in list
# @_rlist: in reference to list
# @_item: item(s) to search for