[ITP] FUSE 2.8

Marco Atzeri marco.atzeri@gmail.com
Sat Jul 23 06:02:00 GMT 2016

On 23/07/2016 02:31, Bill Zissimopoulos wrote:
> On 7/22/16, 12:57 PM, Marco Atzeri wrote:
>> On 22/07/2016 19:58, Bill Zissimopoulos wrote:
>>>> winfsp-fuse is a reasonable name.
>>>> dokan-fuse also (IMHO)
>>> In the interest of moving things forward, I am happy to rename the
>>> package. Is it possible for a package with a name winfsp-fuse to
>>> satisfy a
>>> “fuse” dependency?
>> It is not clear to me what you mean.
>> If some package depends on winfsp-fuse, the dependency will be
>> winfsp-fuse.
>> winfsp-fuse will require the external package winfsp.
> My apologies for not making it clearer. What I meant to say is this:
> Suppose I have a package XYZ that requires FUSE. Is it possible that the
> “FUSE” dependency can be satisfied by either winfsp-fuse or dokan-fuse?
> If that is not possible it looks like we would have to have winfsp-sshfs
> or dokan-sshfs, etc. which IMO is less desirable.
> Bill

It depends on the type of dependency

- The hard coded dependency is based on dll's

example : octave dll requires the readline dll provided by
the package libreadline7

  $ cygcheck /usr/bin/cygoctave-3.dll |grep readline

  $ cygcheck -f $(cygpath -u  'E:\cygwin64\bin\cygreadline7.dll')

In this case the dependency is hard coded in the octave binary itself.
We don't have a way (yet) to provide the same dll from two different
packages. In theory it can be done with pre/prost install scripts
that copy and remove dll's in "/usr/bin" but it will be tricky.
We can not use links with dll's on cygwin for windows loader constrain.

- The dependency is based on command

ls -l /usr/bin/automake
lrwxrwxrwx 1 marco Administrators 34 Aug  3  2013 /usr/bin/automake -> 

64 $ cygcheck -f /usr/share/autotools/am-wrapper.sh

$ cygcheck -cd |grep automake
automake                                9-1
automake1.10                            1.10.3-2
automake1.11                            1.11.6-2
automake1.12                            1.12.6-2
automake1.13                            1.13.4-1
automake1.14                            1.14.1-2
automake1.15                            1.15-1
automake1.4                             1.4p6-11
automake1.5                             1.5-11
automake1.6                             1.6.3-12
automake1.7                             1.7.9-11
automake1.8                             1.8.5-11
automake1.9                             1.9.6-11

automake is a wrapper package that can be defined
to match the needed version and pull all the versions

$ automake --version
automake (GNU automake) 1.14.1

$ cygcheck-dep -r automake

  automake: requires ( automake1.10 automake1.11 automake1.12 
automake1.13 automake1.14 automake1.15 automake1.4 automake1.5 
automake1.6 automake1.7 automake1.8 automake1.9 bash gawk )

Alternatives can also be used to manage command dependency

$ alternatives --display unison
unison - status is auto.
  link currently points to /usr/bin/unison-2.48
/usr/bin/unison-2.48 - priority 2048
Current `best' version is /usr/bin/unison-2.48.

specially when you need only one variant installed,
but several are potentiall available:

$ cygcheck -cd |grep unison
unison2.48                              2.48.3-2

$ cygcheck -p "bin/unison-"
Found 7 matches for bin/unison-
unison2.27-2.27.157-4 - unison2.27: Synchronize ...
unison2.32-2.32.52-4 - unison2.32: Synchronize ...
unison2.40-2.40.102-1 - unison2.40: Synchronize ..
unison2.45-2.45.28-1 - unison2.45: Synchronize ..
unison2.48-2.48.3-1 - unison2.48: Synchronize ..
unison2.48-2.48.3-2 - unison2.48: Synchronize ..
unison2.49-2.49.543-1 - unison2.49: Synchronize ..


PS: today there is only one case of packages providing same name dll's
and the solution is sub-optimal and working only as
- there is a preferred order
   openblas cygblas-0.dll is preferred versus lapack one.
- the maintainer is the same: me
More packages with the same dll collision will require to work on
pre/prost install scripts general solution.

More information about the Cygwin-apps mailing list