[cygport - the Cygwin packaging tool] branch master, updated. 0.37.9

Jon Turney jturney@sourceware.org
Sun Sep 20 12:12:59 GMT 2026





Diff:
---
 NEWS                     |  3 +++
 bin/cygport.in           | 39 +++++++++++++++++++++++++++++++++++++--
 cygport.spec             |  2 +-
 data/sample.cygport      |  2 +-
 lib/compilers.cygpart    | 10 +++++++---
 lib/help.cygpart         | 13 +++++--------
 lib/pkg_info.cygpart     |  4 ++--
 lib/pkg_pkg.cygpart      |  2 +-
 lib/src_postinst.cygpart |  2 +-
 lib/src_prep.cygpart     |  4 ++--
 lib/src_test.cygpart     |  4 ++--
 meson.build              |  2 +-
 12 files changed, 63 insertions(+), 24 deletions(-)

diff --git a/NEWS b/NEWS
index d96e1ba2..e90ad2a3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+0.37.9:
+	* Handle directories in CYGWIN_FILES
+	* Add '--arch' option to specify cross-compilation architecture
 0.37.8:
 	* python-wheel: Make 3.12 the default python3 version
 	* gnome.org: Also check for gz compression
diff --git a/bin/cygport.in b/bin/cygport.in
index de8fa0df..f6f0dbe0 100755
--- a/bin/cygport.in
+++ b/bin/cygport.in
@@ -188,22 +188,57 @@ do
 		_nproc="-j $1";
 		shift;
 		;;
+	--arch)
+		shift;
+		_arch_opt="$1";
+		shift;
+		case ${_arch_opt} in
+			x86_64|amd64|x64|64)
+				_arch_opt=x86_64;
+				;;
+			i686|x86|32)
+				_arch_opt=i686;
+				;;
+			aarch64|arm64)
+				_arch_opt=aarch64;
+				;;
+			*)
+				echo "${0}: unknown arch ${_arch_opt}";
+				exit 1;
+				;;
+		esac
+
+		if defined _host_arch && [ ${_host_arch} != ${_arch_opt} ]
+		then
+			error "Only one of --32|--64|--arch may be specified"
+		fi
+
+		_host_arch=${_arch_opt}
+		unset _arch_opt
+		;;
+
 	--32|-4)
+		warning "The option --32 is deprecated. Use --arch x86 instead"
+
 		if defined _host_arch && [ ${_host_arch} != i686 ]
 		then
-			error "Only one of --32|--64 may be specified"
+			error "Only one of --32|--64|--arch may be specified"
 		fi
 		_host_arch=i686
 		shift;
 		;;
+
 	--64|-8)
+		warning "The option --64 is deprecated. Use --arch x86 instead"
+
 		if defined _host_arch && [ ${_host_arch} != x86_64 ]
 		then
-			error "Only one of --32|--64 may be specified"
+			error "Only one of --32|--64|--arch may be specified"
 		fi
 		_host_arch=x86_64
 		shift;
 		;;
+
 	-*)
 		echo "${0}: unknown argument ${1}";
 		__show_help;
diff --git a/cygport.spec b/cygport.spec
index 12929044..cefa9967 100644
--- a/cygport.spec
+++ b/cygport.spec
@@ -1,7 +1,7 @@
 %define debug_package %{nil}
 
 Name:           cygport
-Version:        0.37.8
+Version:        0.37.9
 Release:        1%{?dist}
 Summary:        Cygwin package building tool
 
diff --git a/data/sample.cygport b/data/sample.cygport
index 8ced78e3..c3674626 100644
--- a/data/sample.cygport
+++ b/data/sample.cygport
@@ -1,7 +1,7 @@
 inherit meson
 
 NAME="cygport"
-VERSION=0.37.8
+VERSION=0.37.9
 RELEASE=1
 CATEGORY="Devel"
 SUMMARY="Cygwin source packaging tool"
diff --git a/lib/compilers.cygpart b/lib/compilers.cygpart
index 52df5304..5fc8669a 100644
--- a/lib/compilers.cygpart
+++ b/lib/compilers.cygpart
@@ -213,7 +213,7 @@ case ${CBUILD} in
 # https://sourceware.org/legacy-ml/cygwin-developers/2013-02/msg00132.html
 x86_64-unknown-cygwin)  CBUILD="x86_64-pc-cygwin" ;&
 *-cygwin)  CHOST="${_host_arch:-${CBUILD%%-*}}-pc-cygwin" ;;
-*)         defined _host_arch || _host_arch="x86_64"
+*)         defined _host_arch || (warning "cross-compiling but --arch is unspecified, assuming x86_64" && _host_arch="x86_64")
            CHOST="${_host_arch}-pc-cygwin" ;;
 esac
 unset _host_arch
@@ -224,8 +224,8 @@ declare    TOOLCHAIN_TARGET="";
 
 #****d* Compiling/ARCH
 #  DESCRIPTION
-#  The Cygwin architecture the binaries are being built for (i686 or x86_64),
-#  or "noarch".
+#  The Cygwin architecture the binaries are being built for ("i686", "x86_64" or
+#  "aarch64"), or "noarch".
 #  NOTE
 #  This variable should only be defined in a .cygport in one of the
 #  following cases:
@@ -249,6 +249,10 @@ declare    ARCH=${CHOST%%-*};
 #  DESCRIPTION
 #  Defined only when building binaries for x86_64 (64-bit) Cygwin.
 #****
+#****d* Compiling/ARCH_aarch64
+#  DESCRIPTION
+#  Defined only when building binaries for aarch64 Cygwin.
+#****
 declare    ARCH_${ARCH}=1;
 
 if [ ${CBUILD} != ${CHOST} ]
diff --git a/lib/help.cygpart b/lib/help.cygpart
index ff03fb5f..33dcc98c 100644
--- a/lib/help.cygpart
+++ b/lib/help.cygpart
@@ -28,18 +28,15 @@ __show_help() {
 
 		OPTIONS may include the following:
 
-		  --jobs, -j N 	specify the number of jobs to use
-		  --32, -4      build package for i686 Cygwin
-		  --64, -8      build package for x86_64 Cygwin
+		  --jobs, -j N  specify the number of jobs to use
+		  --arch ARCH   build package for ARCH-pc-cygwin host
 		  --debug       enable debugging messages
 		  --version, -v show the version
 		  --help, -h    show this help
 
-		The --32 and --64 options are mutually exclusive.
-
-		On Cygwin, if neither the --32 nor --64 options are enabled,
-		the package will be built for the architecture on which cygport
-		is run.  On other systems, the x86_64 architecture is the default.
+		On Cygwin, if the --arch option is not specified, the package
+		will be built for the architecture on which cygport is run.  On
+		other systems, the x86_64 architecture is the default.
 
 		COMMAND may be one or more of the following:
 
diff --git a/lib/pkg_info.cygpart b/lib/pkg_info.cygpart
index e9fa2dab..e0e9556f 100644
--- a/lib/pkg_info.cygpart
+++ b/lib/pkg_info.cygpart
@@ -126,8 +126,8 @@ __list_deps() {
 
 #****v* Information/REQUIRES_EXCLUDE_FROM
 #  DESCRIPTION
-#  A colon-separated list of pathname globs, which are excluded from automatic
-#  dependency detection.
+#  A colon-separated list of pathname globs. Any matching files in ${D} are
+#  excluded from automatic dependency detection.
 #****
 
 	for d in ${REQUIRES_EXCLUDE_FROM//:/ }
diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index 6a728357..4da390d4 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -577,7 +577,7 @@ __pkg_srcpkg() {
 
 	for cygwin_file in ${CYGWIN_FILES}
 	do
-		cp --preserve=timestamps ${C}/${cygwin_file} ${spkgdir}
+		cp -r --preserve=timestamps ${C}/${cygwin_file} ${spkgdir}
 	done
 
 	cp --preserve=timestamps ${top}/${cygportfile} ${spkgdir};
diff --git a/lib/src_postinst.cygpart b/lib/src_postinst.cygpart
index 89da3664..af91e5b4 100644
--- a/lib/src_postinst.cygpart
+++ b/lib/src_postinst.cygpart
@@ -40,7 +40,7 @@ __prep_fonts_dir() {
 
 	for catalogue in ${D}${cataloguedir}/*
 	do
-		fontdir=$(readlink -f ${catalogue})
+		fontdir=$(readlink -m ${catalogue})
 		find ${D}${fontdir} -name '*.pcf' -exec gzip -q ${SOURCE_DATE_EPOCH:+-n} '{}' +
 		mkfontscale ${D}${fontdir}
 		mkfontdir ${D}${fontdir}
diff --git a/lib/src_prep.cygpart b/lib/src_prep.cygpart
index 85bd25e8..820ae804 100644
--- a/lib/src_prep.cygpart
+++ b/lib/src_prep.cygpart
@@ -471,8 +471,8 @@ __src_prep() {
 
 #****v* Preparation/CYGWIN_FILES
 #  DESCRIPTION
-#  A list of files which are to be included in the source package, and installed
-#  into ${C}.
+#  A list of files and/or directiories which are to be included in the source
+#  package, and installed into ${C}.
 #  NOTE
 #  Historically, files in $C were created by a patch file named
 #  ${PF}.cygwin.patch, which is automatically applied and generated.  This
diff --git a/lib/src_test.cygpart b/lib/src_test.cygpart
index 39a81c42..4b97dab0 100644
--- a/lib/src_test.cygpart
+++ b/lib/src_test.cygpart
@@ -33,10 +33,10 @@
 cygtest() {
 	if [ -e Makefile -o -e GNUmakefile -o -e makefile ]
 	then
-		if make -n check &> /dev/null
+		if make -in check &> /dev/null
 		then
 			make -k check
-		elif make -n test &> /dev/null
+		elif make -in test &> /dev/null
 		then
 			make -k test
 		else
diff --git a/meson.build b/meson.build
index 6fd595fa..6da0e2d7 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('cygport',
-        version: '0.37.8')
+        version: '0.37.9')
 
 bindir = join_paths(get_option('prefix'), get_option('bindir'))
 datadir = join_paths(get_option('prefix'), get_option('datadir'))



More information about the Cygwin-apps-cvs mailing list