From jturney@sourceware.org Thu Oct 1 10:47:02 2026 From: jturney@sourceware.org (Jon Turney) Date: Thu, 1 Oct 2026 10:47:02 +0000 (GMT) Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20260829-5-gb8f040c Message-ID: <20261001104702.EE0454BB5908@sourceware.org> Diff: --- calm/calm.py | 2 +- calm/uploads.py | 92 +++++++--------------- test/test_calm.py | 2 +- test/testdata/conflict/homedir.expected | 4 +- .../staleversion/staleversion-230-1-src.hint | 3 + .../perl-Net-SMTP-SSL-1.03-2-src.hint | 4 + .../{setup.hint => perl-Net-SMTP-SSL-1.03-2.hint} | 0 .../{setup.hint => after-ready-1.0-1.hint} | 0 ...etup.hint => not-on-maintainer-list-1.0-1.hint} | 0 .../{setup.hint => not-on-package-list-1.0-1.hint} | 0 .../not-ready/{setup.hint => not-ready-1.0-1.hint} | 0 .../release/per-version/per-version-5.0-1-src.hint | 4 + .../release/testpackage/testpackage-1.0-1-src.hint | 5 ++ .../{setup.hint => testpackage-1.0-1.hint} | 0 ...etup.hint => testpackage-subpackage-1.0-1.hint} | 0 .../{setup.hint => testpackage2-1.0-1.hint} | 0 ...tup.hint => testpackage2-subpackage-1.0-1.hint} | 0 test/testdata/process_arch/homedir.expected | 6 +- 18 files changed, 51 insertions(+), 71 deletions(-) diff --git a/calm/calm.py b/calm/calm.py index 163b47d..d26a7f4 100755 --- a/calm/calm.py +++ b/calm/calm.py @@ -168,7 +168,7 @@ def process_uploads(args, state): def process_maintainer_uploads(args, state, all_packages, m, basedir, desc, scrub=False, record=None): - uploads.fix(basedir, m, args) + uploads.move_srcpkg_to_src(basedir, m, args) success = True logging.debug("reading uploaded packages from maintainer %s" % (m.name)) diff --git a/calm/uploads.py b/calm/uploads.py index 3a5c085..c1ac6f8 100644 --- a/calm/uploads.py +++ b/calm/uploads.py @@ -58,14 +58,10 @@ class ScanResult: # -# various adjustments to fix-up an upload directory before we start -# -# - rename setup.hint -# - inadequate src hint -# - source packages in src/ +# move source packages to src/ # -def fix(scandir, m, args): +def move_srcpkg_to_src(scandir, m, args): homedir = os.path.join(scandir, m.name) logging.debug('fixing packages in %s' % (homedir)) @@ -75,74 +71,24 @@ def fix(scandir, m, args): return newpath replicate_ready = False - # fix uploads + for (dirpath, _subdirs, files) in os.walk(homedir): relpath = os.path.relpath(dirpath, homedir) - # see if we can fix-up any setup.hint files - pvr = None - ambiguous = False - seen = False - - for f in sorted(files): - # warn about legacy setup.hint uploads - if f == 'setup.hint': - logging.warning("'%s' seen, please update to cygport >= 0.23.0" % f) - seen = True - - match = re.match(r'^([^-].*?)(-src|)\.tar' + common_constants.PACKAGE_COMPRESSIONS_RE + r'$', f) - if match: - if (pvr is not None) and (pvr != match.group(1)): - ambiguous = True - - pvr = match.group(1) - - if seen: - if ambiguous or (pvr is None): - logging.error("'setup.hint' seen in %s, and couldn't determine what version it applies to", dirpath) - else: - old = "setup.hint" - new = pvr + ".hint" - logging.warning("renaming '%s' to '%s'" % (old, new)) - os.rename(os.path.join(dirpath, old), os.path.join(dirpath, new)) - files.remove(old) - files.append(new) - for f in sorted(files): match = re.match(r'^([^-].*)-src\.tar' + common_constants.PACKAGE_COMPRESSIONS_RE + r'$', f) if match: - pvr = match.group(1) - old = pvr + '.hint' - new = pvr + '-src.hint' - # see if we can fix-up missing -src.hint file - if (old in files) and (new not in files): - logging.warning("copying '%s' to '%s'" % (old, new)) - shutil.copy2(os.path.join(dirpath, old), os.path.join(dirpath, new)) - files.append(new) - if f.replace('-src', '') not in files: - logging.info("discarding '%s'" % (old)) - files.remove(old) - remove.append(os.path.join(dirpath, old)) - - # see if we can fix-up missing homepage: in -src.hint file - # check homepage: for liveliness and redirection - # discard any keys which are invalid in a -src.hint - # - # preserve mtime so we don't accidentally make the file newer - # than !ready - if (new in files): - mtime = os.stat(os.path.join(dirpath, new)).st_mtime - fixes.fix_hint(dirpath, new, f, ['homepage', 'invalid_keys']) - os.utime(os.path.join(dirpath, new), times=(mtime, mtime)) - - # move source files to 'src' path + # move source files to 'src' path (if different) newpath = wrangle_path(relpath) if newpath != dirpath: utils.makedirs(newpath) logging.info("moving %s to %s" % (f, newpath)) shutil.move(os.path.join(dirpath, f), os.path.join(newpath, f)) - if new in files: - shutil.move(os.path.join(dirpath, new), os.path.join(newpath, new)) + + # also move src.hint, if present + src_hint = match.group(1) + '-src.hint' + if src_hint in files: + shutil.move(os.path.join(dirpath, src_hint), os.path.join(newpath, src_hint)) replicate_ready = True @@ -269,6 +215,26 @@ def scan(scandir, m, all_packages, args): logging.warning("package '%s' is not in the package list for maintainer '%s'" % (superpackage, m.name)) continue + # see if we can fix-up any setup.hint files + pvr = None + + for f in sorted(files): + # reject setup.hint uploads + if f == 'setup.hint': + logging.error("'%s' ignored, please update to cygport >= 0.23.0" % f) + files.remove(f) + + for f in sorted(files): + match = re.match(r'^([^-].*)-src\.tar' + common_constants.PACKAGE_COMPRESSIONS_RE + r'$', f) + if match: + pvr = match.group(1) + src_hint = pvr + '-src.hint' + + # see if we can fix-up missing homepage: in -src.hint file + # check homepage: for liveliness and redirection + if (src_hint in files): + fixes.fix_hint(dirpath, src_hint, f, ['homepage']) + # filter out files we don't need to consider for f in sorted(files): fn = os.path.join(dirpath, f) diff --git a/test/test_calm.py b/test/test_calm.py index 2a5b181..48bea5b 100755 --- a/test/test_calm.py +++ b/test/test_calm.py @@ -334,7 +334,7 @@ class CalmTest(unittest.TestCase): replicated_ready_files = [f for (f, t) in ready_fns] + [f.replace('x86_64', 'src') for (f, t) in ready_fns] - uploads.fix('testdata/homes', m, args) + uploads.move_srcpkg_to_src('testdata/homes', m, args) scan_result = uploads.scan('testdata/homes', m, pkglist + ['not-on-maintainer-list'], args) os.chdir(oldcwd) diff --git a/test/testdata/conflict/homedir.expected b/test/testdata/conflict/homedir.expected index 90bc02c..7b44987 100644 --- a/test/testdata/conflict/homedir.expected +++ b/test/testdata/conflict/homedir.expected @@ -5,6 +5,4 @@ 'Blooey McFooey/src/release/staleversion': ['staleversion-230-1-src.hint', 'staleversion-230-1-src.tar.xz'], 'Blooey McFooey/x86_64': [], 'Blooey McFooey/x86_64/release': [], - 'Blooey McFooey/x86_64/release/staleversion': ['staleversion-230-1-src.hint.bak', - 'staleversion-230-1.hint', - 'staleversion-230-1.tar.xz']} + 'Blooey McFooey/x86_64/release/staleversion': ['staleversion-230-1.hint', 'staleversion-230-1.tar.xz']} diff --git a/test/testdata/homes.conflict/Blooey McFooey/x86_64/release/staleversion/staleversion-230-1-src.hint b/test/testdata/homes.conflict/Blooey McFooey/x86_64/release/staleversion/staleversion-230-1-src.hint new file mode 100644 index 0000000..8610b83 --- /dev/null +++ b/test/testdata/homes.conflict/Blooey McFooey/x86_64/release/staleversion/staleversion-230-1-src.hint @@ -0,0 +1,3 @@ +sdesc: "Test package for stale version removal" +ldesc: "Test package for stale version removal" +category: Shells Base diff --git a/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.hint b/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.hint new file mode 100644 index 0000000..6b37711 --- /dev/null +++ b/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.hint @@ -0,0 +1,4 @@ +category: Perl +sdesc: "Perl distribution Net-SMTP-SSL" +ldesc: "Implements the same API as Net::SMTP, but uses IO::Socket::SSL for +its network operations in order to support encrypted connections." diff --git a/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/setup.hint b/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/setup.hint rename to test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/after-ready/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/after-ready/after-ready-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/after-ready/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/after-ready/after-ready-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/not-on-maintainer-list/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/not-on-maintainer-list/not-on-maintainer-list-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/not-on-maintainer-list/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/not-on-maintainer-list/not-on-maintainer-list-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/not-on-package-list/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/not-on-package-list/not-on-package-list-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/not-on-package-list/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/not-on-package-list/not-on-package-list-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/not-ready/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/not-ready/not-ready-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/not-ready/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/not-ready/not-ready-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/per-version/per-version-5.0-1-src.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/per-version/per-version-5.0-1-src.hint new file mode 100644 index 0000000..ed14372 --- /dev/null +++ b/test/testdata/homes/Blooey McFooey/x86_64/release/per-version/per-version-5.0-1-src.hint @@ -0,0 +1,4 @@ +sdesc: "Per-version hint test package" +ldesc: "Per-version hint test package" +category: Base +test: diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-1.0-1-src.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-1.0-1-src.hint new file mode 100644 index 0000000..170e737 --- /dev/null +++ b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-1.0-1-src.hint @@ -0,0 +1,5 @@ +sdesc: "A test package" +ldesc: "A test package +It's description might contains some unicode junk +Like it???s you???re Markup Language??? Nokogiri???s tool???that B??zier." +category: Devel diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-subpackage/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-subpackage/testpackage-subpackage-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-subpackage/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/testpackage/testpackage-subpackage/testpackage-subpackage-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-1.0-1.hint diff --git a/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-subpackage/setup.hint b/test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-subpackage/testpackage2-subpackage-1.0-1.hint similarity index 100% rename from test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-subpackage/setup.hint rename to test/testdata/homes/Blooey McFooey/x86_64/release/testpackage2/testpackage2-subpackage/testpackage2-subpackage-1.0-1.hint diff --git a/test/testdata/process_arch/homedir.expected b/test/testdata/process_arch/homedir.expected index 9c0a0e4..e5d7781 100644 --- a/test/testdata/process_arch/homedir.expected +++ b/test/testdata/process_arch/homedir.expected @@ -2,10 +2,12 @@ 'Blooey McFooey': ['!reminder-timestamp'], 'Blooey McFooey/noarch': [], 'Blooey McFooey/noarch/release': [], - 'Blooey McFooey/noarch/release/perl-Net-SMTP-SSL': ['perl-Net-SMTP-SSL-1.03-2-src.hint.bak'], 'Blooey McFooey/src': [], 'Blooey McFooey/src/release': [], 'Blooey McFooey/src/release/corrupt': ['corrupt-2.1.0-1-src.tar.xz'], + 'Blooey McFooey/src/release/per-version': ['per-version-5.0-1-src.hint.bak'], + 'Blooey McFooey/src/release/perl-Net-SMTP-SSL': ['perl-Net-SMTP-SSL-1.03-2-src.hint.bak'], + 'Blooey McFooey/src/release/testpackage': ['testpackage-1.0-1-src.hint.bak'], 'Blooey McFooey/src/release/testpackage-zstd': ['testpackage-zstd-1.0-1-src.hint', 'testpackage-zstd-1.0-1-src.tar.zst'], 'Blooey McFooey/x86_64': [], @@ -19,8 +21,6 @@ 'Blooey McFooey/x86_64/release/not-ready': ['-not-ready-0.9-1.tar.bz2', 'not-ready-1.0-1.hint', 'not-ready-1.0-1.tar.bz2'], - 'Blooey McFooey/x86_64/release/per-version': ['per-version-5.0-1-src.hint.bak'], - 'Blooey McFooey/x86_64/release/testpackage': ['testpackage-1.0-1-src.hint.bak'], 'Blooey McFooey/x86_64/release/testpackage-zstd': ['testpackage-zstd-1.0-1.hint', 'testpackage-zstd-1.0-1.tar.zst'], 'Blooey McFooey/x86_64/release/testpackage2': ['testpackage2-1.0-1.hint', 'testpackage2-1.0-1.tar.bz2'], 'Blooey McFooey/x86_64/release/testpackage2/testpackage2-subpackage': ['inprogress.SftpXFR.1234', From jturney@sourceware.org Thu Oct 1 11:01:53 2026 From: jturney@sourceware.org (Jon Turney) Date: Thu, 1 Oct 2026 11:01:53 +0000 (GMT) Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20260829-6-gb3ebef6 Message-ID: <20261001110153.1BF2D4BB5920@sourceware.org> Diff: --- calm/uploads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/calm/uploads.py b/calm/uploads.py index c1ac6f8..e5772a3 100644 --- a/calm/uploads.py +++ b/calm/uploads.py @@ -88,6 +88,7 @@ def move_srcpkg_to_src(scandir, m, args): # also move src.hint, if present src_hint = match.group(1) + '-src.hint' if src_hint in files: + logging.info("moving %s to %s" % (src_hint, newpath)) shutil.move(os.path.join(dirpath, src_hint), os.path.join(newpath, src_hint)) replicate_ready = True @@ -101,7 +102,7 @@ def move_srcpkg_to_src(scandir, m, args): ready = os.path.join(newpath, '!ready') if not os.path.exists(ready): utils.makedirs(newpath) - logging.info("copying %s" % ready) + logging.debug("setting %s" % ready) shutil.copy2(os.path.join(dirpath, '!ready'), ready) From jturney@sourceware.org Thu Oct 1 11:04:22 2026 From: jturney@sourceware.org (Jon Turney) Date: Thu, 1 Oct 2026 11:04:22 +0000 (GMT) Subject: [cygport - the Cygwin packaging tool] branch master, updated. 0.37.10 Message-ID: <20261001110422.BEC624BB590A@sourceware.org> Diff: --- .github/workflows/cygwin.yml | 1 + NEWS | 3 +++ bin/cygport.in | 2 +- bin/meson.build | 10 +++++----- cygclass/cross.cygclass | 2 +- cygport.spec | 2 +- data/sample.cygport | 2 +- doc/meson.build | 2 +- lib/compilers.cygpart | 43 ++++++++++++++++++++++++++++--------------- lib/pkg_upload.cygpart | 1 + lib/src_postinst.cygpart | 2 +- meson.build | 2 +- testsuite/meson.build | 6 +++--- 13 files changed, 48 insertions(+), 30 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 899bc558..f1bb4d19 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -133,6 +133,7 @@ jobs: bash --login bash -c 'git config --system --add safe.directory /cygdrive/d/a/cygport/cygport' bash -c 'git config --system --add safe.directory /cygdrive/d/a/cygport/cygport/data/gnuconfig' + sed s/posix=0/posix=1/ /etc/fstab continue-on-error: true - name: Build run: | diff --git a/NEWS b/NEWS index e90ad2a3..d28e4b1a 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +0.37.10: + * Add more handling for aarch64 + * Fix default arch when cross-compiling and --arch not specified 0.37.9: * Handle directories in CYGWIN_FILES * Add '--arch' option to specify cross-compilation architecture diff --git a/bin/cygport.in b/bin/cygport.in index f6f0dbe0..7909f615 100755 --- a/bin/cygport.in +++ b/bin/cygport.in @@ -229,7 +229,7 @@ do ;; --64|-8) - warning "The option --64 is deprecated. Use --arch x86 instead" + warning "The option --64 is deprecated. Use --arch x86_64 instead" if defined _host_arch && [ ${_host_arch} != x86_64 ] then diff --git a/bin/meson.build b/bin/meson.build index d66b647e..06e6ce88 100644 --- a/bin/meson.build +++ b/bin/meson.build @@ -15,11 +15,11 @@ cygport_bin = configure_file(input: cygport_in, inplace = configuration_data() inplace.set('VERSION', meson.project_version()) -inplace.set('pkgdatadir', join_paths(meson.source_root(), 'data')) -inplace.set('cygclassdir', join_paths(meson.source_root(), 'cygclass')) -inplace.set('cygpartdir', join_paths(meson.source_root(), 'lib')) -inplace.set('gnuconfigdir', join_paths(meson.source_root(), 'data', 'gnuconfig')) -inplace.set('sysconfdir', join_paths(meson.source_root(), 'data')) +inplace.set('pkgdatadir', join_paths(meson.project_source_root(), 'data')) +inplace.set('cygclassdir', join_paths(meson.project_source_root(), 'cygclass')) +inplace.set('cygpartdir', join_paths(meson.project_source_root(), 'lib')) +inplace.set('gnuconfigdir', join_paths(meson.project_source_root(), 'data', 'gnuconfig')) +inplace.set('sysconfdir', join_paths(meson.project_source_root(), 'data')) cygport_inplace = configure_file(input: cygport_in, output: 'cygport-inplace', diff --git a/cygclass/cross.cygclass b/cygclass/cross.cygclass index ac8b5b18..91508148 100644 --- a/cygclass/cross.cygclass +++ b/cygclass/cross.cygclass @@ -66,7 +66,7 @@ __check_triplet ${CROSS_HOST} CHOST=${CROSS_HOST} CTARGET=${CHOST} ARCH=noarch -unset ARCH_i686 ARCH_x86_64 +unset ARCH_i686 ARCH_x86_64 ARCH_aarch64 #****d* cross.cygclass/CROSS_SYSROOT diff --git a/cygport.spec b/cygport.spec index cefa9967..40157cdf 100644 --- a/cygport.spec +++ b/cygport.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: cygport -Version: 0.37.9 +Version: 0.37.10 Release: 1%{?dist} Summary: Cygwin package building tool diff --git a/data/sample.cygport b/data/sample.cygport index c3674626..5474e491 100644 --- a/data/sample.cygport +++ b/data/sample.cygport @@ -1,7 +1,7 @@ inherit meson NAME="cygport" -VERSION=0.37.9 +VERSION=0.37.10 RELEASE=1 CATEGORY="Devel" SUMMARY="Cygwin source packaging tool" diff --git a/doc/meson.build b/doc/meson.build index cfade018..acd8641c 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -30,7 +30,7 @@ cygport_manual = custom_target('cygport-manual', output: 'manual', depend_files: cygport_in + cygclasses + cygclass_top + cygparts + datadocs, command: [robodoc_cmd, - meson.source_root(), meson.build_root()], + meson.project_source_root(), meson.project_build_root()], install: true, install_dir: htmldir) install_data('index.html', diff --git a/lib/compilers.cygpart b/lib/compilers.cygpart index 5fc8669a..b30155c1 100644 --- a/lib/compilers.cygpart +++ b/lib/compilers.cygpart @@ -23,6 +23,25 @@ #****** Chapter 8/Compiling #**** +# system triplets +declare CBUILD=$(${_privgnuconfigdir}/config.guess) +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" ;; +*) if ! defined _host_arch + then + _host_arch="x86_64" + warning "cross-compiling but --arch is unspecified, assuming ${_host_arch}" + fi + CHOST="${_host_arch}-pc-cygwin" ;; +esac +unset _host_arch +declare CTARGET=${CHOST}; +declare CROSS_HOST=""; +declare CROSS_SYSROOT=""; +declare TOOLCHAIN_TARGET=""; + #****d* Compiling/CC # DESCRIPTION # The GCC C compiler. @@ -38,6 +57,15 @@ declare -x CC="gcc"; #**** declare -x CFLAGS="-ggdb -O2 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=3 -fstack-protector-strong --param=ssp-buffer-size=4"; +# (temporarily) disable optimization on aarch64-cygwin to work around toolchain +# bugs +case ${CHOST} in + aarch64-*-cygwin) + warning "Disabling compiler optimizations due to ${CHOST} target" + CFLAGS=${CFLAGS/-O2/-O0} + ;; +esac + #****v* Compiling/CPPFLAGS # DESCRIPTION # Flags passed to the preprocessor. Individual packages may append @@ -207,21 +235,6 @@ PKG_CONFIG="pkg-config" #**** declare CC_SYSROOT=""; -# system triplets -declare CBUILD=$(${_privgnuconfigdir}/config.guess) -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 || (warning "cross-compiling but --arch is unspecified, assuming x86_64" && _host_arch="x86_64") - CHOST="${_host_arch}-pc-cygwin" ;; -esac -unset _host_arch -declare CTARGET=${CHOST}; -declare CROSS_HOST=""; -declare CROSS_SYSROOT=""; -declare TOOLCHAIN_TARGET=""; - #****d* Compiling/ARCH # DESCRIPTION # The Cygwin architecture the binaries are being built for ("i686", "x86_64" or diff --git a/lib/pkg_upload.cygpart b/lib/pkg_upload.cygpart index 1743eb03..7c030c7d 100644 --- a/lib/pkg_upload.cygpart +++ b/lib/pkg_upload.cygpart @@ -147,6 +147,7 @@ __pkg_upload() { case ${ARCH} in i686) archdir=x86 ;; x86_64) archdir=x86_64 ;; + aarch64) archdir=aarch64 ;; noarch) archdir=noarch ;; *) error "Don't know where to upload packages with architecture ${ARCH}" ;; esac diff --git a/lib/src_postinst.cygpart b/lib/src_postinst.cygpart index af91e5b4..fc2e4c58 100644 --- a/lib/src_postinst.cygpart +++ b/lib/src_postinst.cygpart @@ -1023,7 +1023,7 @@ __prepstrip_one() { # due to -Wl,--image-base, or BASE directive in .def file; # use CTARGET to avoid false positives from cross-gcc case ${CTARGET} in - x86_64-*-cygwin*) + x86_64-*-cygwin*|aarch64-*-cygwin) case "${exe##*/}" in cygwin1.dll|cyglsa64.dll|cyglto_plugin.dll) ;; # Flexlink'ed DLLs are special diff --git a/meson.build b/meson.build index 6da0e2d7..0f0f6aff 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cygport', - version: '0.37.9') + version: '0.37.10') bindir = join_paths(get_option('prefix'), get_option('bindir')) datadir = join_paths(get_option('prefix'), get_option('datadir')) diff --git a/testsuite/meson.build b/testsuite/meson.build index ff2f7afc..0ce64b03 100644 --- a/testsuite/meson.build +++ b/testsuite/meson.build @@ -1,9 +1,9 @@ testenv = environment() -testenv.set('HOME', meson.build_root()) +testenv.set('HOME', meson.project_build_root()) testenv.set('PACKAGE', meson.project_name()) testenv.set('VERSION', meson.project_version()) -testenv.set('top_srcdir', meson.source_root()) -testenv.set('top_builddir', meson.build_root()) +testenv.set('top_srcdir', meson.project_source_root()) +testenv.set('top_builddir', meson.project_build_root()) testenv.set('CMAKE_POLICY_VERSION_MINIMUM', '3.5') subdir('basic') From jturney@sourceware.org Thu Oct 1 11:04:22 2026 From: jturney@sourceware.org (Jon Turney) Date: Thu, 1 Oct 2026 11:04:22 +0000 (GMT) Subject: [cygport - the Cygwin packaging tool] annotated tag 0.37.10, created. 0.37.10 Message-ID: <20261001110422.D00944BB5913@sourceware.org> at 44e866219055109bf6c869db7b1a149784533e07 (tag) tagging 32b0addc1b929a0a84913503a73039be8470208a (commit) replaces 0.37.9 tagged by Jon Turney on Wed Sep 30 17:20:56 2026 +0100 0.37.10 -----BEGIN PGP SIGNATURE----- iQJPBAABCAA5FiEEmkZ1G6z8hxpUPEiLx8hvA3AoXIEFAmq9NugbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzAAoJEMfIbwNwKFyBvhYQAIligqZxOLfZFwxKmeZg gFQfBXNfEP448wi0Gh2yztrCSnFM5eicAXjvSGtNDbUJCEzGqIJY1DDGkzWi+Zoi Y5EXwVmObH2079277jPynzXoTbjsr3mlGPrj6+WJO1XPzDDKQAk0SEQu1j+f0e27 Hl57XMCJHAFze3jwuyOYOxXKXgGDtoGo7HREoPtFW3aTTTczInQw856dKOn9ZUfp SD3ES/DsN/RnJUsqeaMpVqccXiO1rdi7qLHAmBTR6h16oWsY3bNh5g5WmXAkKW5i 9J1uQiy4HC4tlwtRTObll8h7tZ91unzUIGF7rahvsNidNxzA6t8YG5CE0TwUSPed ttANgGMLCb+z2/nK/Ibi4i0sbrdmLSEZ1czgZBLLKwYa6j3+Wl8qJx2akAZC/xx4 zEj5ahSnj5dA0HVEwWM4v2gkvpC7TsUXzYn8OfEq318vBrNJQFd2KA2eIU33d8r0 lEBr18Fzjr8VNLtNUWvVg+XXC3LYGK06SZe/xYEv4Sf+V8j8E5lKboIx2/oX3QdV wORS7DFQ8EujTFTfRYsJA2/DO7O4VHHTlthBoHJqWGH6lBH5Wvef9zhAID168Z9W 9RetAA9ifqkHtVQ76ixbNuq8zWw4kDf2rMtWrMJBQV/csjGbOTwEflelNmXezKJT ioxMMDVrrtBmuGBZ1RXVCeSd =5MWx -----END PGP SIGNATURE----- Jon Turney (8): CI: Turn on case-sensitivity on cygdrive paths meson: Update deprecated source_root() and project_root() functions Fix defaulting _host_arch when --arch not specified pkg_upload: Fix aarch64 uploads src_postinst: Also check for low ImageBase on aarch64 cross: Also unset ARCH_aarch64 Disable optimization for aarch64-cygwin (temporarily) Bump version to 0.37.10