delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/08/28/20:04:04

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_BG,TW_BJ,TW_BL,TW_YG
X-Spam-Check-By: sourceware.org
Message-ID: <1346198617.8376.38.camel@YAAKOV04>
Subject: Re: [ANNOUNCEMENT] Updated: cygport-0.11.0-1
From: "Yaakov (Cygwin/X)" <yselkowitz AT users DOT sourceforge DOT net>
To: cygwin <cygwin AT cygwin DOT com>
Date: Tue, 28 Aug 2012 19:03:37 -0500
In-Reply-To: <7zehmqu41x.fsf@vzell-de.de.oracle.com>
References: <announce DOT 503B3110 DOT 5070909 AT users DOT sourceforge DOT net> <7zehmqu41x DOT fsf AT vzell-de DOT de DOT oracle DOT com>
Mime-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Tue, 2012-08-28 at 22:58 +0200, Dr. Volker Zell wrote:
> When doing the packaging step with your latest cygport release on gnutls I get the following:
>     
> which: no KERNEL32.dll in (/misc/src/release/gnutls-2.12.20-1/inst/usr/bin:/usr/local/bin:/usr/bin:/usr/local/scripts:/usr/local/sbin:/usr/sbin:/usr/lib/lapack)
> >>> gnutls requires: libgnutls26 libreadline7
> which: no KERNEL32.dll in (/misc/src/release/gnutls-2.12.20-1/inst/usr/bin:/usr/local/bin:/usr/bin:/usr/local/scripts:/usr/local/sbin:/usr/sbin:/usr/lib/lapack)
> >>> libgnutls26 requires: libgcc1 libgcrypt11 libintl8 liblzo2_2 libp11-kit0 libstdc++6 libtasn1_3 zlib0
> >>> gnutls-devel requires: gettext libgcrypt-devel libgnutls26 libiconv liblzo2-devel libp11-kit-devel libtasn1-devel
> >>> gnutls-doc requires:
> 
> 
> When I call cygcheck directly on cyggnutls-26.dll I get the following:
[snip]
> So in the above requires line for libgnutls26, libggc1 and libintl8
> shouldn't be included at all because libgcrypt11 already depends on
> them. I'm I wrong here ?

cygport uses objdump to find binary dependencies, which unlike cygcheck,
lists direct dependencies only and doesn't worry about subdependencies:

$ objdump -p /usr/bin/cyggnutls-26.dll | grep "DLL Name"
	DLL Name: cygwin1.dll
	DLL Name: cyggcrypt-11.dll
	DLL Name: cygintl-8.dll
	DLL Name: cygtasn1-3.dll
	DLL Name: cygz.dll
	DLL Name: KERNEL32.dll

So libgnutls26 has a hard direct dependency on libintl8.  To understand
why this is done, let's say that a future release of gettext changes the
ABI version again, and then soon thereafter libgcrypt was rebuilt
against that new libintlX.  libgnutls26 would *still* require libintl8,
and can't rely on libgcrypt11 to provide that dep.

OTOH, note that libiconv2 is *not* listed as a dep, even though libintl8
depends on it.  That's because if in the future libiconv would get an
ABI version bump and the same gettext were rebuilt against that, even
though libintl8 would now depend on libiconvX, libgnutls would NOT need
to be rebuilt, and libiconv2 would no longer be necessary.

So for these purposes, objdump is a more precise means of dependency
detection than cygcheck.

> And what about the "which: no KERNEL32.dll" stuff above ? Can it be
> suppressed without adding C:\WINDOWS\system32\ to the PATH ?

Fixed in git master, commit a268dc3.


Yaakov



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019