From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2109.outbound.protection.outlook.com [40.107.220.109]) by sourceware.org (Postfix) with ESMTPS id 77F793851C0C for ; Thu, 11 Jun 2020 23:23:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 77F793851C0C ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dZ5gHiT6AP2k65xRi5tjtnBTA6oiPMPZORZTlNCSikeGicciebD3N+Z4+OhizZGi9m0HGgjW6NiDX8XOquRkI+gL0SndkE/G99ZvYQGMo7pM39Lsq3Zjja9CawMHQLQ9W9CB6buSg+Jo8QcZMAkTavbbEPJsTxwFI2E4IZIlWtdKYGWJn2+euDZKPyZlRF0a5O3gG9BY5XT45QEYQ8lILt+ToPbPhvpatSFXg2MbrnVkaO2iOX05dtdIpzmCQw+V3L9EvbABw59eGfb/TmtSvymCIpzyv9hTdcGA5vsFHCOjZATc8DzxzTMPEqbuB3+gByaQfDuSmvJio9byanRCeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lPQWkAs4F7Q/syvooHOS6YolTHdXsk4HKLWB0heBbSU=; b=ivbGI+m/r7tJeGNZy1rb6dWWOY60eOzwNRkMfx+H93/cLcG8r1aunuIyv3BZglidP5Fsjm/tNImarHkcI99ekvIsAJUlkre5vyLtqOs4R+BTcJO0R7GVhCMN0eAdFt7ditzzw30pmEL4tl5UoEv5IgrmLNLNhivDbk4w2cH8wQ1RckeamhnMlmxZYz6K+uKyfMnBYbu6opgt8TxmKjoTC/V5DSfmZ6Yk2c9fohWkZlFZ2nrqSPLX4EMReoQQ5/kX2bxj/DwUJnnZROaXop7OTSCUVNkZFIOx+sMWqEwBEGNPA1+gV0AQzyZ9uV/AfI5Xr7iZX9EGMPOAP3OFMBGKoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none Received: from MN2PR04MB6176.namprd04.prod.outlook.com (2603:10b6:208:e3::13) by MN2PR04MB5486.namprd04.prod.outlook.com (2603:10b6:208:e4::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.18; Thu, 11 Jun 2020 23:23:47 +0000 Received: from MN2PR04MB6176.namprd04.prod.outlook.com ([fe80::ecf5:cc00:84d8:bb6a]) by MN2PR04MB6176.namprd04.prod.outlook.com ([fe80::ecf5:cc00:84d8:bb6a%7]) with mapi id 15.20.3088.021; Thu, 11 Jun 2020 23:23:47 +0000 Subject: Re: Help needed with gobject-introspection To: cygwin-apps@cygwin.com References: <2c0802e9-e66c-768e-61f2-f2797acc1acb@cornell.edu> <7837c562-f96c-3084-40f8-1a52afcebdf5@dronecode.org.uk> <429779d8-dc38-2f75-bd3e-42f898941483@cornell.edu> <6703fe25-ba53-68c7-c398-843b2a8295dc@dronecode.org.uk> <93b48fc8-61f9-ce33-ac76-0e6cc56aa18c@dronecode.org.uk> <62ba273e-4eed-6578-32e5-8cd24fe25c3f@dronecode.org.uk> <3d2cb151-e243-a539-32f0-ffa40be78745@dronecode.org.uk> <0d6292b3-72df-e6ad-fcc5-f03bbf923087@dronecode.org.uk> <4f5d1485-cf5a-8535-2923-5d31be901741@cornell.edu> <5fb4bf89-58a5-88cb-c2cb-29cfef65ffc1@dronecode.org.uk> <0876122c-1c1e-54e0-1a18-0c3774e71641@cornell.edu> <4345fbc7-0c30-9335-46a8-bfe2ae79a8bc@dronecode.org.uk> From: Ken Brown Message-ID: <070a6a40-a1f4-c17e-3da6-3541174c5ec5@cornell.edu> Date: Thu, 11 Jun 2020 19:23:03 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 In-Reply-To: <4345fbc7-0c30-9335-46a8-bfe2ae79a8bc@dronecode.org.uk> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MN2PR17CA0032.namprd17.prod.outlook.com (2603:10b6:208:15e::45) To MN2PR04MB6176.namprd04.prod.outlook.com (2603:10b6:208:e3::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2604:6000:b407:7f00:2135:68bd:5dce:5a1d] (2604:6000:b407:7f00:2135:68bd:5dce:5a1d) by MN2PR17CA0032.namprd17.prod.outlook.com (2603:10b6:208:15e::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.19 via Frontend Transport; Thu, 11 Jun 2020 23:23:47 +0000 X-Originating-IP: [2604:6000:b407:7f00:2135:68bd:5dce:5a1d] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 21c20e68-dfc8-483e-5075-08d80e5e7dfc X-MS-TrafficTypeDiagnostic: MN2PR04MB5486: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-Forefront-PRVS: 0431F981D8 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kDuKKfELr9gweX3YJayJrOCQrGgJVqu1ytj3V3VZl+zALUgfiUihajomo4MCsHZnMq0q4SH+Hzu6A9QaIdARZZTrovWaLlwuynmF7x32LUGR52vAMRVVtpaBFODOXK16dxqW40pRTG01dCtQkdwkzXsPrnyvlQzbwhbi0EqoOD6FiHkwxdSn0HQR736OGvRqK18jswPPZ955Jin4SQG2w29ddDcywqJy184idxEY00fonKxesUaL1QbuR74ycNAZq7hpcP/VXS0ccdgOUCtOkRbUN+g2Wznc+guNT8+xV2BS5OpJyt4f3HpcJOQV5DWh9aaIhrD0dX8hZYp820XKJgJW/yM42Kt90s+M823eZCiJ8c4WqDAZbLcAo8Zj36E4ed0HQq8Qs96/cS3ZrGCjC45iigoktWebptUTiEItPSF/Cs8ByIjuFX+qsdQiK7qw04AS/QSAPKiGMdjVWuKlOMgmchbeU+JdUqElMr+Ysg0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR04MB6176.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(346002)(136003)(396003)(39860400002)(366004)(19627235002)(6486002)(2616005)(53546011)(52116002)(16526019)(186003)(2906002)(86362001)(8676002)(75432002)(8936002)(478600001)(31686004)(6916009)(966005)(36756003)(66946007)(31696002)(66556008)(786003)(5660300002)(6666004)(316002)(66476007)(43740500002)(460985005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: BPusKzxJA3/Mc3zJpRDB40gvIZF1mnQKNJmI+HhYvIjMA1qKLrUsons9uoqp/keoh1KGaMRU7sjXKq6rFUXFPkTvgc4v162+Fla7R8g6FRWxTUTGj2+1ooycglC69hZ9pVpEZ/+lPWXYoYvJb0DERVbWybrdGG+IYMb/4k3uutAaM2NO9ovQjaOiH8zWVokq3lhHbmR4fu8TLPUobxAUVO5vN69OwS1kkAZRTnLmRIPm2Bus6BQv5VdtNNG/58r2033FzRJjI6WWu6xkezqlwxdQy1t4EhOAXtZiRbBy61am1WTA2XwhpSlKgWwPomCzeWNoyHfi9uzFjcce08Pd/GwiGF+S+83ynwnLnJB3i4TEtfB4NNCIfOvRnc27UbVgSJdOkosgChzm+61SNTiSd1t3+BKPq2sVBg6trkJHHCTxkYrqgQgim3F4w/qc8HuBQYYZbJK6/xjYebtGMDO7AwXyE9mx3RbhP8rCmtPwnqJotN3m6q8yPzbXgL1Zl8opMLBvUsIqHpf/lbSgBafYK6hPY+PeQQFI7KNP1UQDZBA= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 21c20e68-dfc8-483e-5075-08d80e5e7dfc X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2020 23:23:47.7626 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 615zxNKXaqmw5+4BuwQ7/QBnaPMgxlrz0sNO1ZKfVzktWJ4U67l3xvYFZoxP7iA0YqhUelbd8UDDuE4aw1X3hA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR04MB5486 X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_INVALID, DKIM_SIGNED, KAM_DMARC_STATUS, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2020 23:23:52 -0000 On 6/11/2020 5:39 PM, Jon Turney wrote: > > On 06/06/2020 15:15, Ken Brown via Cygwin-apps wrote: >> >> I think I might have bumped into another meson/introspection/pickling bug, >> this time in connection with harfbuzz.  The supported build system for >> harfbuzz is still autotools.  But they're planning to move to meson, so I >> decided to get a head start and try the meson build, which fails as follows: >> >> [230/257] Generating HarfBuzz-0.0.gir with a meson_exe.py custom command >> FAILED: src/HarfBuzz-0.0.gir >> /usr/bin/meson --internal exe --unpickle >> /tmp/harfbuzz-2.6.7/build/meson-private/meson_exe_g-ir-scanner_2a1d762c64dc7a0dcba76211733b53a4f7f14918.dat >> >> [...] >> ERROR: can't resolve libraries to shared libraries: harfbuzz-gobject >> g-ir-scanner: link: cc -o >> /tmp/harfbuzz-2.6.7/build/tmp-introspectKdIYKJ/HarfBuzz-0.0.exe >> /tmp/harfbuzz-2.6.7/build/tmp-introspectKdIYKJ/HarfBuzz-0.0.o -L. -lharfbuzz >> -lharfbuzz-gobject -lm -lglib-2.0 -lintl -lgobject-2.0 -lcairo -lfreetype >> -lgraphite2 -lfontconfig -L/tmp/harfbuzz-2.6.7/build/src >> -Wl,-rpath,/tmp/harfbuzz-2.6.7/build/src -L/tmp/harfbuzz-2.6.7/build/src >> -Wl,-rpath,/tmp/harfbuzz-2.6.7/build/src -L/tmp/harfbuzz-2.6.7/build/src >> -Wl,-rpath,/tmp/harfbuzz-2.6.7/build/src -lgio-2.0 -lgobject-2.0 >> -Wl,--export-all-symbols -lgmodule-2.0 -lglib-2.0 -lintl > [...] > > Thanks for the reproduction steps. > > To debug: hack meson to get it to disgorge the pickled command it's executing, > then you can run the failing g-ir-scanner command line while poking at things in > /usr/lib/gobject-introspection/giscanner/ > > This actually looks like a bug in 'g-ir-scanner --no-libtool' (which obviously > isn't usually exercised by an autotools build), failing in this particular case. > > It looks to match the following list of regexes: > >> ([^\s]*cyg*harfbuzz[^A-Za-z0-9_][^\s\(\)]*) >> ([^\s]*cyg*harfbuzz\-gobject[^A-Za-z0-9_][^\s\(\)]*) > > against ldd output like this, to extract the shared library names: > >>         ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff916d80000) >>         KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL >> (0x7ff916660000) >>         KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll >> (0x7ff914a20000) >>         cyggmodule-2.0-0.dll => /usr/bin/cyggmodule-2.0-0.dll (0x3e0590000) >>         cygwin1.dll => /usr/bin/cygwin1.dll (0x180040000) >>         cygharfbuzz-gobject-0.dll => >> /work/harfbuzz-2.6.7/_build/src/cygharfbuzz-gobject-0.dll (0x4389e0000) >>         cyggio-2.0-0.dll => /usr/bin/cyggio-2.0-0.dll (0x3e0f40000) >>         cygglib-2.0-0.dll => /usr/bin/cygglib-2.0-0.dll (0x3e0870000) >>         cyggobject-2.0-0.dll => /usr/bin/cyggobject-2.0-0.dll (0x3dff50000) >>         cygharfbuzz-0.dll => /work/harfbuzz-2.6.7/_build/src/cygharfbuzz-0.dll >> (0x4408d0000) >>         cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3cf150000) >>         cygz.dll => /usr/bin/cygz.dll (0x3bc750000) >>         cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3dbec0000) >>         cygpcre-1.dll => /usr/bin/cygpcre-1.dll (0x4629a0000) >>         cygffi-6.dll => /usr/bin/cygffi-6.dll (0x3e3fd0000) >>         cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x50caa0000) >>         cygfreetype-6.dll => /usr/bin/cygfreetype-6.dll (0x451720000) >>         cyggraphite2-3.dll => /usr/bin/cyggraphite2-3.dll (0x5f6ba0000) >>         cygbz2-1.dll => /usr/bin/cygbz2-1.dll (0x3e9980000) >>         cygpng16-16.dll => /usr/bin/cygpng16-16.dll (0x3c58d0000) >>         cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x57b190000) > > Unfortunately, the first regex matches the cygharfbuzz-gobject line, leaving the > second regex unmatched. > > We have to allow a '-' to appear after the library name, as that introduces a > soversion, so I worked around this by patching > /usr/lib/gobject-introspection/giscanner/shlibs.c like this: > > --- shlibs.py~  2018-02-11 23:15:03.000000000 +0000 > +++ shlibs.py   2020-06-11 22:28:07.901294700 +0100 > @@ -62,7 +62,7 @@ >      if platform.system() == 'Darwin': >          pattern = "([^\s]*lib*%s[^A-Za-z0-9_-][^\s\(\)]*)" >      elif platform.platform().startswith('CYGWIN'): > -        pattern = "([^\s]*cyg*%s[^A-Za-z0-9_][^\s\(\)]*)" > +        pattern = "([^\s]*cyg%s[-.0-9]*\.[^\s\(\)]*)" >      return re.compile(pattern % re.escape(library_name)) > > But this all seems very fragile though, so I'm not sure if that's the right way > to fix this. > > (This 'if cygwin' case is coming from gobject-introspection package in [1], it's > not in upstream) > > https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/gobject-introspection.git;a=blob;f=1.46.0-cygwin.patch;h=a03271ea17e0d167eba7627ddf5d4303bbde9871;hb=4e3b8bd140db78ee35f29ee3d07ff3715416e259#l93 Thanks, Jon! Just as your mail came in, I was staring at the regex for harfbuzz-gobject in shlibs.py, trying to understand why it wasn't matched. It never occurred to me that the cygharfbuzz-gobject-0.dll line in the ldd output was being used to match the regex for harfbuzz rather than the one for harfbuzz-gobject. What a mess. Thanks again. Ken