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_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_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_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))
|
||||
|
|
@ -101,6 +102,7 @@ include $(JWBDIR)/make/upload-rules.mk
|
|||
PKG_SH = $(PKG_SH_EXE) \
|
||||
-N $(PKG_PROJECT) -P $(PROJECT) \
|
||||
-R "$(PKG_REQUIRES_RUN)" -D "$(PKG_REQUIRES_DEVEL)" \
|
||||
-E "$(PKG_RECOMMENDS_RUN)" \
|
||||
-X "$(PKG_CONFLICTS_RUN)" -Y "$(PKG_CONFLICTS_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) \
|
||||
|
|
@ -298,6 +300,7 @@ pkg-requires:
|
|||
@echo "PKG_REQUIRES_BUILD = $(PKG_REQUIRES_BUILD)"
|
||||
@echo "PKG_REQUIRES_RUN = $(PKG_REQUIRES_RUN)"
|
||||
@echo "PKG_REQUIRES_DEVEL = $(PKG_REQUIRES_DEVEL)"
|
||||
@echo "PKG_RECOMMENDS_RUN = $(PKG_RECOMMENDS_RUN)"
|
||||
@echo "PKG_CONFLICTS_RUN = $(PKG_CONFLICTS_RUN)"
|
||||
@echo "PKG_CONFLICTS_DEVEL = $(PKG_CONFLICTS_DEVEL)"
|
||||
@echo "PKG_PROVIDES_RUN = $(PKG_PROVIDES_RUN)"
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ cfg_value global.subpackages | grep -q run && _cat <<- EOT
|
|||
|Package: \$NAME-run
|
||||
|Architecture: any
|
||||
|Depends: \`format_depends "\${shlibs:Depends}, \${misc:Depends}, \$REQUIRES_RUN"\`
|
||||
|EOF
|
||||
|[ -n "\$RECOMMENDS_RUN" ] && echo "Recommends: \`format_depends "\$RECOMMENDS_RUN"\`"
|
||||
|cat << EOF
|
||||
|# untested:
|
||||
|Conflicts: \`format_depends "\$CONFLICTS_RUN"\`
|
||||
|Description: `cfg_value summary`
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ for p in $subpackages; do
|
|||
|echo "Summary: `cfg_value summary`"
|
||||
|echo "Group: `cfg_value global.group`"
|
||||
|[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P"
|
||||
|[ "\$RECOMMENDS_$P" ] && echo "Recommends: \$RECOMMENDS_$P"
|
||||
|[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P"
|
||||
|[ "\$PROVIDES_$P" ] && echo "Provides: \$PROVIDES_$P"
|
||||
|echo ""
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
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
|
||||
}
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ append()
|
|||
#set -x
|
||||
|
||||
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
|
||||
echo checking "$1=$2" >&2
|
||||
|
|
@ -42,6 +42,10 @@ case $1 in
|
|||
append REQUIRES_RUN "$2"
|
||||
shift
|
||||
;;
|
||||
-E)
|
||||
append RECOMMENDS_RUN "$2"
|
||||
shift
|
||||
;;
|
||||
-X)
|
||||
append CONFLICTS_RUN "$2"
|
||||
shift
|
||||
|
|
@ -117,6 +121,7 @@ CONFLICTS="$CONFLICTS_RUN $CONFLICTS_DEVEL"
|
|||
|
||||
export \
|
||||
REQUIRES REQUIRES_RUN REQUIRES_DEVEL \
|
||||
RECOMMENDS_RUN \
|
||||
CONFLICTS CONFLICTS_RUN CONFLICTS_DEVEL \
|
||||
PROVIDES PROVIDES_RUN PROVIDES_DEVEL \
|
||||
TOPDIR \
|
||||
|
|
|
|||
|
|
@ -444,6 +444,7 @@ build_pkg()
|
|||
local distribution=`get_os`
|
||||
|
||||
local rpm_requires_run="$PKG_REQUIRES_RUN"
|
||||
local rpm_recommends_run="$PKG_RECOMMENDS_RUN"
|
||||
local rpm_requires_devel="$PKG_REQUIRES_DEVEL"
|
||||
local rpm_conflicts_run="$PKG_CONFLICTS_RUN"
|
||||
local rpm_conflicts_devel="$PKG_CONFLICTS_DEVEL"
|
||||
|
|
@ -503,6 +504,7 @@ build_pkg()
|
|||
-S $tar_archive \
|
||||
-N $PKG_PROJECT \
|
||||
-R "$rpm_requires_run" \
|
||||
-E "$rpm_recommends_run" \
|
||||
-X "$rpm_conflicts_run" \
|
||||
-D "$rpm_requires_devel" \
|
||||
-Y "$rpm_conflicts_devel" \
|
||||
|
|
@ -1138,6 +1140,7 @@ DIST_INST_DIR=dist/src
|
|||
DIST_PCKG_DIR=dist/pckg
|
||||
PKG_PROJECT="$PROJECT"
|
||||
PKG_REQUIRES_RUN=""
|
||||
PKG_RECOMMENDS_RUN=""
|
||||
PKG_REQUIRES_DEVEL=""
|
||||
PKG_ARCH=$HOSTTYPE
|
||||
PKG_FORMAT=rpm
|
||||
|
|
@ -1173,6 +1176,10 @@ while [ ${1:0:1} = - ]; do
|
|||
eval PKG_REQUIRES_RUN=\"$2\"
|
||||
shift
|
||||
;;
|
||||
-E)
|
||||
eval PKG_RECOMMENDS_RUN=\"$2\"
|
||||
shift
|
||||
;;
|
||||
-X)
|
||||
eval PKG_CONFLICTS_RUN=\"$2\"
|
||||
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-provides Print packages and capabilities provided by a given
|
||||
package
|
||||
pkg-recommends Print recommended packages
|
||||
pkg-requires Print packages required for a given package
|
||||
proj-dir Print directory of a given package
|
||||
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
|
||||
|
||||
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:
|
||||
flavours Dependency flavours (run, build, devel, release),
|
||||
separated by comma or whitespace
|
||||
|
|
|
|||
Loading…
Reference in a new issue