scripts / make: Add Recommends support #113
7 changed files with 81 additions and 2 deletions
|
|
@ -81,6 +81,7 @@ endif
|
||||||
PKG_REQUIRES_BUILD += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) build $(PROJECT))
|
PKG_REQUIRES_BUILD += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) build $(PROJECT))
|
||||||
PKG_REQUIRES_RUN += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
|
PKG_REQUIRES_RUN += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
|
||||||
PKG_REQUIRES_DEVEL += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) devel $(PROJECT))
|
PKG_REQUIRES_DEVEL += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) devel $(PROJECT))
|
||||||
|
PKG_RECOMMENDS_RUN += $(call proj_query, pkg-recommends $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT))
|
||||||
PKG_CONFLICTS_RUN += $(call proj_query, pkg-conflicts $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) run $(PROJECT))
|
PKG_CONFLICTS_RUN += $(call proj_query, pkg-conflicts $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) run $(PROJECT))
|
||||||
PKG_CONFLICTS_DEVEL += $(call proj_query, pkg-conflicts $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) devel $(PROJECT))
|
PKG_CONFLICTS_DEVEL += $(call proj_query, pkg-conflicts $(PROJ_QUERY_PKG_CONFLICTS_EXTRA_ARGS) devel $(PROJECT))
|
||||||
PKG_PROVIDES_RUN += $(call proj_query, pkg-provides $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) run $(PROJECT))
|
PKG_PROVIDES_RUN += $(call proj_query, pkg-provides $(PROJ_QUERY_PKG_PROVIDES_EXTRA_ARGS) run $(PROJECT))
|
||||||
|
|
@ -101,6 +102,7 @@ include $(JWBDIR)/make/upload-rules.mk
|
||||||
PKG_SH = $(PKG_SH_EXE) \
|
PKG_SH = $(PKG_SH_EXE) \
|
||||||
-N $(PKG_PROJECT) -P $(PROJECT) \
|
-N $(PKG_PROJECT) -P $(PROJECT) \
|
||||||
-R "$(PKG_REQUIRES_RUN)" -D "$(PKG_REQUIRES_DEVEL)" \
|
-R "$(PKG_REQUIRES_RUN)" -D "$(PKG_REQUIRES_DEVEL)" \
|
||||||
|
-E "$(PKG_RECOMMENDS_RUN)" \
|
||||||
-X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_DEVEL)" \
|
-X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_DEVEL)" \
|
||||||
--provides-run "$(PKG_PROVIDES_RUN)" --provides-devel "$(PKG_PROVIDES_DEVEL)" \
|
--provides-run "$(PKG_PROVIDES_RUN)" --provides-devel "$(PKG_PROVIDES_DEVEL)" \
|
||||||
-m $(JWB_SCRIPT_DIR) -a $(PKG_ARCH) -p $(DIST_PCKG_DIR) -F $(PKG_FORMAT) \
|
-m $(JWB_SCRIPT_DIR) -a $(PKG_ARCH) -p $(DIST_PCKG_DIR) -F $(PKG_FORMAT) \
|
||||||
|
|
@ -298,6 +300,7 @@ pkg-requires:
|
||||||
@echo "PKG_REQUIRES_BUILD = $(PKG_REQUIRES_BUILD)"
|
@echo "PKG_REQUIRES_BUILD = $(PKG_REQUIRES_BUILD)"
|
||||||
@echo "PKG_REQUIRES_RUN = $(PKG_REQUIRES_RUN)"
|
@echo "PKG_REQUIRES_RUN = $(PKG_REQUIRES_RUN)"
|
||||||
@echo "PKG_REQUIRES_DEVEL = $(PKG_REQUIRES_DEVEL)"
|
@echo "PKG_REQUIRES_DEVEL = $(PKG_REQUIRES_DEVEL)"
|
||||||
|
@echo "PKG_RECOMMENDS_RUN = $(PKG_RECOMMENDS_RUN)"
|
||||||
@echo "PKG_CONFLICTS_RUN = $(PKG_CONFLICTS_RUN)"
|
@echo "PKG_CONFLICTS_RUN = $(PKG_CONFLICTS_RUN)"
|
||||||
@echo "PKG_CONFLICTS_DEVEL = $(PKG_CONFLICTS_DEVEL)"
|
@echo "PKG_CONFLICTS_DEVEL = $(PKG_CONFLICTS_DEVEL)"
|
||||||
@echo "PKG_PROVIDES_RUN = $(PKG_PROVIDES_RUN)"
|
@echo "PKG_PROVIDES_RUN = $(PKG_PROVIDES_RUN)"
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,9 @@ cfg_value global.subpackages | grep -q run && _cat <<- EOT
|
||||||
|Package: \$NAME-run
|
|Package: \$NAME-run
|
||||||
|Architecture: any
|
|Architecture: any
|
||||||
|Depends: \`format_depends "\${shlibs:Depends}, \${misc:Depends}, \$REQUIRES_RUN"\`
|
|Depends: \`format_depends "\${shlibs:Depends}, \${misc:Depends}, \$REQUIRES_RUN"\`
|
||||||
|
|EOF
|
||||||
|
|[ -n "\$RECOMMENDS_RUN" ] && echo "Recommends: \`format_depends "\$RECOMMENDS_RUN"\`"
|
||||||
|
|cat << EOF
|
||||||
|# untested:
|
|# untested:
|
||||||
|Conflicts: \`format_depends "\$CONFLICTS_RUN"\`
|
|Conflicts: \`format_depends "\$CONFLICTS_RUN"\`
|
||||||
|Description: `cfg_value summary`
|
|Description: `cfg_value summary`
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,7 @@ for p in $subpackages; do
|
||||||
|echo "Summary: `cfg_value summary`"
|
|echo "Summary: `cfg_value summary`"
|
||||||
|echo "Group: `cfg_value global.group`"
|
|echo "Group: `cfg_value global.group`"
|
||||||
|[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P"
|
|[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P"
|
||||||
|
|[ "\$RECOMMENDS_$P" ] && echo "Recommends: \$RECOMMENDS_$P"
|
||||||
|[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P"
|
|[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P"
|
||||||
|[ "\$PROVIDES_$P" ] && echo "Provides: \$PROVIDES_$P"
|
|[ "\$PROVIDES_$P" ] && echo "Provides: \$PROVIDES_$P"
|
||||||
|echo ""
|
|echo ""
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
echo usage: $MYNAME /path/to/mkspec.sh -h [-N name] [-T topdir] [-V version] [-S source] [-R requires] [-P project] >&2
|
echo usage: $MYNAME /path/to/mkspec.sh -h [-N name] [-T topdir] [-V version] [-S source] [-R requires] [-E recommends] [-P project] >&2
|
||||||
[ "$1" ] && exit $1
|
[ "$1" ] && exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ append()
|
||||||
#set -x
|
#set -x
|
||||||
|
|
||||||
MYNAME=`basename $0`
|
MYNAME=`basename $0`
|
||||||
eval set -- `getopt -l "provides-run:" -l "provides-devel:" -o "P:T:V:S:N:hR:D:X:Y:d:" -- "$@"`
|
eval set -- `getopt -l "provides-run:" -l "provides-devel:" -o "P:T:V:S:N:hR:D:X:Y:E:d:" -- "$@"`
|
||||||
|
|
||||||
while [ "$1" != -- ]; do
|
while [ "$1" != -- ]; do
|
||||||
echo checking "$1=$2" >&2
|
echo checking "$1=$2" >&2
|
||||||
|
|
@ -42,6 +42,10 @@ case $1 in
|
||||||
append REQUIRES_RUN "$2"
|
append REQUIRES_RUN "$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-E)
|
||||||
|
append RECOMMENDS_RUN "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-X)
|
-X)
|
||||||
append CONFLICTS_RUN "$2"
|
append CONFLICTS_RUN "$2"
|
||||||
shift
|
shift
|
||||||
|
|
@ -117,6 +121,7 @@ CONFLICTS="$CONFLICTS_RUN $CONFLICTS_DEVEL"
|
||||||
|
|
||||||
export \
|
export \
|
||||||
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
||||||
|
RECOMMENDS_RUN \
|
||||||
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
||||||
PROVIDES PROVIDES_RUN PROVIDES_DEVEL \
|
PROVIDES PROVIDES_RUN PROVIDES_DEVEL \
|
||||||
TOPDIR \
|
TOPDIR \
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,7 @@ build_pkg()
|
||||||
local distribution=`get_os`
|
local distribution=`get_os`
|
||||||
|
|
||||||
local rpm_requires_run="$PKG_REQUIRES_RUN"
|
local rpm_requires_run="$PKG_REQUIRES_RUN"
|
||||||
|
local rpm_recommends_run="$PKG_RECOMMENDS_RUN"
|
||||||
local rpm_requires_devel="$PKG_REQUIRES_DEVEL"
|
local rpm_requires_devel="$PKG_REQUIRES_DEVEL"
|
||||||
local rpm_conflicts_run="$PKG_CONFLICTS_RUN"
|
local rpm_conflicts_run="$PKG_CONFLICTS_RUN"
|
||||||
local rpm_conflicts_devel="$PKG_CONFLICTS_DEVEL"
|
local rpm_conflicts_devel="$PKG_CONFLICTS_DEVEL"
|
||||||
|
|
@ -503,6 +504,7 @@ build_pkg()
|
||||||
-S $tar_archive \
|
-S $tar_archive \
|
||||||
-N $PKG_PROJECT \
|
-N $PKG_PROJECT \
|
||||||
-R "$rpm_requires_run" \
|
-R "$rpm_requires_run" \
|
||||||
|
-E "$rpm_recommends_run" \
|
||||||
-X "$rpm_conflicts_run" \
|
-X "$rpm_conflicts_run" \
|
||||||
-D "$rpm_requires_devel" \
|
-D "$rpm_requires_devel" \
|
||||||
-Y "$rpm_conflicts_devel" \
|
-Y "$rpm_conflicts_devel" \
|
||||||
|
|
@ -1138,6 +1140,7 @@ DIST_INST_DIR=dist/src
|
||||||
DIST_PCKG_DIR=dist/pckg
|
DIST_PCKG_DIR=dist/pckg
|
||||||
PKG_PROJECT="$PROJECT"
|
PKG_PROJECT="$PROJECT"
|
||||||
PKG_REQUIRES_RUN=""
|
PKG_REQUIRES_RUN=""
|
||||||
|
PKG_RECOMMENDS_RUN=""
|
||||||
PKG_REQUIRES_DEVEL=""
|
PKG_REQUIRES_DEVEL=""
|
||||||
PKG_ARCH=$HOSTTYPE
|
PKG_ARCH=$HOSTTYPE
|
||||||
PKG_FORMAT=rpm
|
PKG_FORMAT=rpm
|
||||||
|
|
@ -1173,6 +1176,10 @@ while [ ${1:0:1} = - ]; do
|
||||||
eval PKG_REQUIRES_RUN=\"$2\"
|
eval PKG_REQUIRES_RUN=\"$2\"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-E)
|
||||||
|
eval PKG_RECOMMENDS_RUN=\"$2\"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-X)
|
-X)
|
||||||
eval PKG_CONFLICTS_RUN=\"$2\"
|
eval PKG_CONFLICTS_RUN=\"$2\"
|
||||||
shift
|
shift
|
||||||
|
|
|
||||||
7
src/python/jw/pkg/cmds/projects/CmdPkgRecommends.py
Normal file
7
src/python/jw/pkg/cmds/projects/CmdPkgRecommends.py
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
from .BaseCmdPkgRelations import BaseCmdPkgRelations as Base
|
||||||
|
from .BaseCmdPkgRelations import Parent
|
||||||
|
|
||||||
|
class CmdPkgRecommends(Base): # export
|
||||||
|
|
||||||
|
def __init__(self, parent: Parent) -> None:
|
||||||
|
super().__init__(parent, 'recommends', help = 'Print recommended packages')
|
||||||
|
|
@ -246,6 +246,7 @@ Available subcommands of projects:
|
||||||
pkg-conflicts Print packages conflicting with a given package
|
pkg-conflicts Print packages conflicting with a given package
|
||||||
pkg-provides Print packages and capabilities provided by a given
|
pkg-provides Print packages and capabilities provided by a given
|
||||||
package
|
package
|
||||||
|
pkg-recommends Print recommended packages
|
||||||
pkg-requires Print packages required for a given package
|
pkg-requires Print packages required for a given package
|
||||||
proj-dir Print directory of a given package
|
proj-dir Print directory of a given package
|
||||||
pythonpath Generate PYTHONPATH for given modules
|
pythonpath Generate PYTHONPATH for given modules
|
||||||
|
|
@ -584,6 +585,58 @@ usage: jw-pkg.py projects pkg-provides [-h] [-S [SUBSECTIONS]]
|
||||||
|
|
||||||
Print packages and capabilities provided by a given package
|
Print packages and capabilities provided by a given package
|
||||||
|
|
||||||
|
positional arguments:
|
||||||
|
flavours Dependency flavours (run, build, devel, release),
|
||||||
|
separated by comma or whitespace
|
||||||
|
modules Modules (default: None)
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-S, --subsections [SUBSECTIONS]
|
||||||
|
Subsections to consider, separated by comma or
|
||||||
|
whitespace (default: None)
|
||||||
|
-d, --delimiter [DELIMITER]
|
||||||
|
Output words delimiter (default: , )
|
||||||
|
-p, --no-subpackages Cut -run and -devel from package names (default:
|
||||||
|
False)
|
||||||
|
--dont-strip-revision
|
||||||
|
Always treat VERSION macro as VERSION-REVISION
|
||||||
|
(default: False)
|
||||||
|
--expand-semver-revision-range
|
||||||
|
Always treat =VERSION macro as >= VERSION-0 and <
|
||||||
|
(VERSION+1)-0 (default: False)
|
||||||
|
--syntax {semver,debian,names-only}
|
||||||
|
Output syntax (default: semver)
|
||||||
|
--recursive Find dependencies recursively (default: False)
|
||||||
|
--dont-expand-version-macros
|
||||||
|
Don't expand VERSION and REVISION macros (default:
|
||||||
|
False)
|
||||||
|
--ignore [IGNORE] Packages that should be ignored together with their
|
||||||
|
dependencies (default: )
|
||||||
|
--skip-excluded Don't consider or output modules matching the os
|
||||||
|
cascade in their [build].exclude config (default:
|
||||||
|
False)
|
||||||
|
--hide-self Don't include projects listed in <modules> in the
|
||||||
|
output (default: False)
|
||||||
|
--hide-jw-pkg Don't include packages from requires.jw in the output
|
||||||
|
(default: False)
|
||||||
|
--quote Put double quotes around each listed dependency
|
||||||
|
(default: False)
|
||||||
|
============= Running: jw-pkg.py -t ../../../.. --log-level info projects pkg-recommends --help
|
||||||
|
usage: jw-pkg.py projects pkg-recommends [-h] [-S [SUBSECTIONS]]
|
||||||
|
[-d [DELIMITER]] [-p]
|
||||||
|
[--dont-strip-revision]
|
||||||
|
[--expand-semver-revision-range]
|
||||||
|
[--syntax {semver,debian,names-only}]
|
||||||
|
[--recursive]
|
||||||
|
[--dont-expand-version-macros]
|
||||||
|
[--ignore [IGNORE]] [--skip-excluded]
|
||||||
|
[--hide-self] [--hide-jw-pkg]
|
||||||
|
[--quote]
|
||||||
|
flavours [modules ...]
|
||||||
|
|
||||||
|
Print recommended packages
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
flavours Dependency flavours (run, build, devel, release),
|
flavours Dependency flavours (run, build, devel, release),
|
||||||
separated by comma or whitespace
|
separated by comma or whitespace
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue