public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
* [cygport - the Cygwin packaging tool] branch master, updated. 0.35.2
@ 2022-07-03 12:13 Jon TURNEY
0 siblings, 0 replies; only message in thread
From: Jon TURNEY @ 2022-07-03 12:13 UTC (permalink / raw)
To: cygwin-apps-cvs
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=096f27644bd3b28f29d7522e816bebd327cf24cb
commit 096f27644bd3b28f29d7522e816bebd327cf24cb
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat Jun 18 13:04:29 2022 +0100
Bump version to 0.35.2
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=c12a43648cf4496ddeaa328749a7cb8403b926a5
commit c12a43648cf4496ddeaa328749a7cb8403b926a5
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Jun 7 16:04:37 2022 +0100
Define the variable ARCHES with the supported arches for this cygport
This allows tools inspecting the cygport to distinguish between "we are
building for x86_64 because that's the host arch" and "we are building
for x86_64 because that's the only architecture this cygport permits".
Clarify the documentation for ARCH.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=62fda21bc87f83d9ad2d1fd728cdd8a42d7f753e
commit 62fda21bc87f83d9ad2d1fd728cdd8a42d7f753e
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Jun 7 15:23:46 2022 +0100
Define the variable INHERITED with the names of all inherited cygclasses
This means we don't have to parse the cygport file to determine what it
inherits.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=9a94db7dd9f07f1ff7caffb16793c0c3ccb97dde
commit 9a94db7dd9f07f1ff7caffb16793c0c3ccb97dde
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Jun 7 15:09:11 2022 +0100
Fix 'cygport vars UNDEFINED'
Make 'cygport vars' silently output nothing for an undefined variables
(source-ing that lack of output reproduces the undefined state of the
variable), rather than stopping with an error.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=bca14b1530201397e5bb2acf6a35bd79ed9607cc
commit bca14b1530201397e5bb2acf6a35bd79ed9607cc
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat May 28 15:59:26 2022 +0100
python-wheel: Make a python3-name virtual package
When making python3x-name package (where 3.x is the current default
python version), also make a python3-name virtual package, which causes
python3x-name to be installed.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=5ca2c856b6eb95aca021966023c46e7fa6beeef9
commit 5ca2c856b6eb95aca021966023c46e7fa6beeef9
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 27 14:46:39 2022 +0100
Fix dependency detection for python3 shebang
Automatic dependency detection can't turn a python3 shebang into a
dependency on python3, as /usr/bin/python3 is now an alternatives
symlink, which (i) cygcheck can't see through, and (ii) even if it
could, that wouldn't lead to the correct package ('python3x' rather than
'python3'). Instead, explicitly add the 'python3' dependency.
v2:
Avoid an extra space in requires: if expldeps is empty
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=e41a17d999be7b15c3e8626543344932956886d7
commit e41a17d999be7b15c3e8626543344932956886d7
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 27 15:04:16 2022 +0100
Add LICENSE variable
Pass it's value through to the source package hint.
Diff:
---
NEWS | 7 ++++++
bin/cygport.in | 11 +++++++++
cygclass/python-wheel.cygclass | 18 +++++++++++----
cygport.spec | 2 +-
data/sample.cygport | 2 +-
lib/compilers.cygpart | 15 ++++++++-----
lib/inheritance.cygpart | 1 +
lib/pkg_info.cygpart | 26 ++++++++++++++++++++--
lib/pkg_pkg.cygpart | 6 +++++
lib/src_postinst.cygpart | 11 +++++++--
lib/syntax.cygpart | 14 ++++++++++++
meson.build | 2 +-
testsuite/basic/info/foo.cygport | 1 +
testsuite/basic/info/info.out | 1 +
.../python3-clang/python3-clang-9.0.1-1.hint | 6 +++++
.../dist/lv2/lv2-devel/lv2-devel-1.12.0-1.hint | 2 +-
16 files changed, 107 insertions(+), 18 deletions(-)
diff --git a/NEWS b/NEWS
index 68e8525..354e7ce 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+0.35.2:
+ * New INHERITED and ARCHES variables.
+ * Fix 'cygport vars UNDEFINED'.
+ * python-wheel: Make a python3-name virtual package.
+ * Fix dependency detection for python3 shebang.
+ * New LICENSE variable.
+
0.35.1:
* Fixed regression causing missing test: label in srcpkg hint
diff --git a/bin/cygport.in b/bin/cygport.in
index e2d7fac..5f5c1c5 100755
--- a/bin/cygport.in
+++ b/bin/cygport.in
@@ -437,6 +437,17 @@ do
done
unset n VALUE ARCHES VAR
+# probe if the cygport sets ARCH - if it does, set ARCHES to that value,
+# otherwise set it to the default value "all".
+PROBE_ARCH=$(unset ARCH; source ${top}/${cygportfile}; echo "${ARCH}")
+if [ -z "${PROBE_ARCH}" ]
+then
+ declare -r ARCHES="all"
+else
+ declare -r ARCHES="${PROBE_ARCH}"
+fi
+unset PROBE_ARCH
+
### load .cygport
source ${top}/${cygportfile} || error "could not read ${cygportfile}"
###
diff --git a/cygclass/python-wheel.cygclass b/cygclass/python-wheel.cygclass
index 90b0faa..b6ed68b 100644
--- a/cygclass/python-wheel.cygclass
+++ b/cygclass/python-wheel.cygclass
@@ -86,8 +86,8 @@ inherit python.org
# are already available.
#****
-# when the default versions of Python change, this and the ENSUREPIP_OPTIONS
-# switches need to be updated accordingly
+# when the default versions of Python change, this, the python3 virtual package
+# target, and the ENSUREPIP_OPTIONS switches need to be updated accordingly
_tmp_wheel_v=
: ${PYTHON_WHEEL_VERSIONS:=default}
for ver in ${PYTHON_WHEEL_VERSIONS//:/ }
@@ -124,11 +124,21 @@ then
for ver in ${PYTHON_WHEEL_VERSIONS//:/ }
do
PKG_NAMES+=" python${ver/.}-${PYTHON_WHEEL_NAME}"
- # these were 2&3 at the time of the XY-version split,
+ # this was 2 at the time of the XY-version split,
# and MUST NOT be updated when defaults change
case ${ver} in
2.7) declare -g python27_${PYTHON_WHEEL_NAME//[-\.]/_}_OBSOLETES="python-${PYTHON_WHEEL_NAME} python2-${PYTHON_WHEEL_NAME}" ;;
- 3.6) declare -g python36_${PYTHON_WHEEL_NAME//[-\.]/_}_OBSOLETES="python3-${PYTHON_WHEEL_NAME}" ;;
+ # this is the default 3.x version
+ 3.9)
+ # If we are making a 3.x package (where x is the default),
+ # also make a python3-wheelname virtual package, which just
+ # requires python3x-wheelname
+ PKG_NAMES+=" python3-${PYTHON_WHEEL_NAME}"
+ declare -g python3_${PYTHON_WHEEL_NAME//[-\.]/_}_DESCRIPTION="The python3-${PYTHON_WHEEL_NAME} virtual package. Selecting this package for installation will cause the python${ver/.}-${PYTHON_WHEEL_NAME} package to be installed."
+ declare -g python3_${PYTHON_WHEEL_NAME//[-\.]/_}_CATEGORY="Python Virtual"
+ declare -g python3_${PYTHON_WHEEL_NAME//[-\.]/_}_REQUIRES="python${ver/.}-${PYTHON_WHEEL_NAME}"
+ declare -g python3_${PYTHON_WHEEL_NAME//[-\.]/_}_CONTENTS=""
+ ;;
esac
declare -g python${ver/.}_${PYTHON_WHEEL_NAME//[-\.]/_}_CONTENTS="usr/lib/python${ver}/site-packages/ usr/share/doc/python${ver/.}-${PYTHON_WHEEL_NAME}"
done
diff --git a/cygport.spec b/cygport.spec
index 13613aa..a033331 100644
--- a/cygport.spec
+++ b/cygport.spec
@@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: cygport
-Version: 0.35.1
+Version: 0.35.2
Release: 1%{?dist}
Summary: Cygwin package building tool
diff --git a/data/sample.cygport b/data/sample.cygport
index da5e627..ef223e7 100644
--- a/data/sample.cygport
+++ b/data/sample.cygport
@@ -1,7 +1,7 @@
inherit meson
NAME="cygport"
-VERSION=0.35.1
+VERSION=0.35.2
RELEASE=1
CATEGORY="Devel"
SUMMARY="Cygwin source packaging tool"
diff --git a/lib/compilers.cygpart b/lib/compilers.cygpart
index 129e115..f9b8c69 100644
--- a/lib/compilers.cygpart
+++ b/lib/compilers.cygpart
@@ -224,17 +224,20 @@ declare TOOLCHAIN_TARGET="";
#****d* Compiling/ARCH
# DESCRIPTION
-# The Cygwin architecture of the binaries being built (i686 or x86_64),
-# or "noarch" when using cross.cygclass.
+# The Cygwin architecture the binaries are being built for (i686 or x86_64),
+# or "noarch".
# NOTE
-# This variable should only be redefined in a .cygport in one of the
+# This variable should only be defined in a .cygport in one of the
# following cases:
# * the package has no Cygwin compiled code, e.g. it consists only of
-# data or scripts, in which case ARCH="noarch" may be defined;
+# data or scripts, in which case ARCH="noarch" should be defined;
# * the package only builds or works on one architecture due to portability
-# issues (e.g. ILP32 assumptions occasionaly found in older code), in which
+# issues (e.g. ILP32 assumptions occasionally found in older code), in which
# case ARCH should be defined to the working architecture, and cygport will
-# refuse to build this package for the other.
+# refuse to build this package for any other.
+#
+# This variable is automatically set to "noarch" by certain cygclasses
+# e.g. cross.cygclass.
#****
declare ARCH=${CHOST%%-*};
diff --git a/lib/inheritance.cygpart b/lib/inheritance.cygpart
index 4e484a0..6d4359a 100644
--- a/lib/inheritance.cygpart
+++ b/lib/inheritance.cygpart
@@ -42,6 +42,7 @@ inherit() {
if ! defined _${classname//[-\.]/_}_CYGCLASS_
then
export _${classname//[-\.]/_}_CYGCLASS_=1
+ INHERITED="${class} ${INHERITED}"
source ${_privclassdir}/${classname}.cygclass || error "inherit ${classname} failed"
fi
done
diff --git a/lib/pkg_info.cygpart b/lib/pkg_info.cygpart
index 1ad8baa..4c51483 100644
--- a/lib/pkg_info.cygpart
+++ b/lib/pkg_info.cygpart
@@ -43,6 +43,12 @@ __pager() {
# what address will be displayed in BROWSER by the homepage command.
#****
+#****v* Information/LICENSE
+# DESCRIPTION
+# A SPDX license expression (See https://spdx.dev/ids/) for the license(s) of
+# the package.
+#****
+
__show_info() {
__pager <<-_EOF
Cygport package information
@@ -50,6 +56,7 @@ __show_info() {
Package version: ${PV}
Cygwin release: ${PR}
Homepage: ${HOMEPAGE}
+ License: ${LICENSE}
Summary: ${SUMMARY:-${DESCRIPTION}}
Description:
${DESCRIPTION:-${SUMMARY}}
@@ -70,7 +77,7 @@ __list_debug_files() {
__list_deps() {
local d f ext
- local alldeps shdep girdep jar jpkg ladep luadep luapaths pcdep pctgt pidep
+ local alldeps expldeps shdep girdep jar jpkg ladep luadep luapaths pcdep pctgt pidep
local mldep mldir mllib
local phpdep phpmoddir pldep pldirs plver
local pydep pydirs pyexts pyscr pysite pyver
@@ -194,6 +201,14 @@ __list_deps() {
alldeps+=" "${D}${shdep};
elif [ -f ${shdep} ]
then
+ # python{,3} are alternatives symlinks, which 'cygcheck
+ # -f' can't translate to a package name, so we explicitly
+ # translate to a package name ourself.
+ case ${shdep} in
+ /usr/bin/python|/usr/bin/python3)
+ expldeps+=" python3";
+ ;;
+ esac
alldeps+=" "${shdep};
fi
done
@@ -629,6 +644,10 @@ for suffix, mode, type in imp.get_suffixes(): print(suffix)')
if [ "${CBUILD##*-}" = "cygwin" ]
then
+ if [ -n "$expldeps" ]
+ then
+ echo $expldeps | sort -u;
+ fi
echo $alldeps | sort -u | xargs -r /bin/cygcheck -f;
else
# cannot determine Cygwin package dependencies, but we can give
@@ -677,7 +696,10 @@ __show_web() {
__show_vars() {
for v in "$@"
do
- declare -p "${v}"
+ if [ -v ${v} ]
+ then
+ declare -p "${v}"
+ fi
done
}
diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index db998f0..82112e1 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -556,6 +556,12 @@ _EOF
then
cat >> ${distdir}/${PN}/${PN}-${PVR}-src.hint <<-_EOF
homepage: ${HOMEPAGE}
+_EOF
+ fi
+ if [ -n "${LICENSE}" ]
+ then
+ cat >> ${distdir}/${PN}/${PN}-${PVR}-src.hint <<-_EOF
+license: ${LICENSE}
_EOF
fi
else
diff --git a/lib/src_postinst.cygpart b/lib/src_postinst.cygpart
index 4b51325..b0361b1 100644
--- a/lib/src_postinst.cygpart
+++ b/lib/src_postinst.cygpart
@@ -430,6 +430,7 @@ __prepdoc() {
local html;
local -i n=0;
local p;
+ local pkg_contents_var;
local pkg_docs_var;
local pkg_hint;
local default_docs="\
@@ -451,10 +452,16 @@ __prepdoc() {
inform "Skipping package doc installation per request";
elif defined _CYGPORT_INTERNAL_multi_doc_
then
+ # install docs in a package-specific path in every non-empty
+ # subpackage
for p in ${PKG_NAMES}
do
- _docinto_dir=/$p
- dodoc ${default_docs} ${DOCS};
+ pkg_contents_var=${p//[-\.]/_}_CONTENTS
+ if [ -n "${!pkg_contents_var}" ]
+ then
+ _docinto_dir=/$p
+ dodoc ${default_docs} ${DOCS};
+ fi
done
unset _docinto_dir;
else
diff --git a/lib/syntax.cygpart b/lib/syntax.cygpart
index 9ec12f2..099a3a4 100644
--- a/lib/syntax.cygpart
+++ b/lib/syntax.cygpart
@@ -370,6 +370,20 @@ __target_is_embedded() {
# occur in or into this directory.
#****
+#****** Format/State
+#****
+#****v* State/INHERITED
+# DESCRIPTION
+# The names of all Cygclasses which have been inherit-ed. Rather than testing
+# this directly, use inherited.
+#****
+
+#****d* State/ARCHES
+# DESCRIPTION
+# The Cygwin architectures which this package can be built for: "noarch",
+# "all" or a specific architecture.
+#****
+
readonly -f defined pushd popd error warning inform verbose __stage __step \
__log_init __check_triplet cross_compiling __cross_compiling_error \
__host_prefix __host_sysconfdir __host_localstatedir \
diff --git a/meson.build b/meson.build
index 6ebf3b5..b7a3b9f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('cygport',
- version: '0.35.1')
+ version: '0.35.2')
bindir = join_paths(get_option('prefix'), get_option('bindir'))
datadir = join_paths(get_option('prefix'), get_option('datadir'))
diff --git a/testsuite/basic/info/foo.cygport b/testsuite/basic/info/foo.cygport
index a5d73b7..188b13c 100644
--- a/testsuite/basic/info/foo.cygport
+++ b/testsuite/basic/info/foo.cygport
@@ -3,4 +3,5 @@ VERSION=2.3.4
RELEASE=1
DESCRIPTION="Cygport messages test package"
HOMEPAGE="http://sourceware.org/cygwinports/"
+LICENSE="GPL-3.0-or-later"
SRC_URI="http://sourceware.org/cygwinports/\${P}.ABC"
diff --git a/testsuite/basic/info/info.out b/testsuite/basic/info/info.out
index 0cd2a1a..8308681 100644
--- a/testsuite/basic/info/info.out
+++ b/testsuite/basic/info/info.out
@@ -3,6 +3,7 @@ Cygport package information
Package version: 2.3.4
Cygwin release: 1
Homepage: http://sourceware.org/cygwinports/
+ License: GPL-3.0-or-later
Summary: Cygport messages test package
Description:
Cygport messages test package
diff --git a/testsuite/download/svn/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1.hint b/testsuite/download/svn/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1.hint
new file mode 100644
index 0000000..3a0f8a6
--- /dev/null
+++ b/testsuite/download/svn/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1.hint
@@ -0,0 +1,6 @@
+category: Python Virtual
+requires: python39-clang
+sdesc: "Python bindings for Clang-C Source Indexing Library"
+ldesc: "The python3-clang virtual package. Selecting this package for installation will cause the python39-clang package to be installed."
+external-source: python-clang
+
diff --git a/testsuite/waf/all/hints/lv2-1.12.0-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.12.0-1.hint b/testsuite/waf/all/hints/lv2-1.12.0-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.12.0-1.hint
index 7f1d068..0e21dae 100644
--- a/testsuite/waf/all/hints/lv2-1.12.0-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.12.0-1.hint
+++ b/testsuite/waf/all/hints/lv2-1.12.0-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.12.0-1.hint
@@ -1,5 +1,5 @@
category: Audio
-requires: pkg-config lv2
+requires: pkg-config python3 lv2
sdesc: "LV2 audio plugin specification"
ldesc: "LV2 is a portable plugin standard for audio systems, similar in
scope to LADSPA, VST, AU, and others. It defines a C API for code and a format
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-03 12:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-03 12:13 [cygport - the Cygwin packaging tool] branch master, updated. 0.35.2 Jon TURNEY
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).