This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: [ITP] FUSE 2.8
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
E:\cygwin64\bin\cygreadline7.dll
$ cygcheck -f $(cygpath -u 'E:\cygwin64\bin\cygreadline7.dll')
libreadline7-6.3.8-1
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 ->
/usr/share/autotools/am-wrapper.sh
64 $ cygcheck -f /usr/share/autotools/am-wrapper.sh
automake-9-1
$ 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 ..
Regards
Marco
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.