Open afrhan-repo opened 1 month ago
Ping @fornwall @Grimler91 @finagolfin because you commited to swift build recipes.
Nope I never did that (I only contributed to the package for the computer algebra system "gap", other than that I don't even use termux myself, nor swift)
Sorry, wrong ping.
It looks like libobjc2
ships with its own blocks runtime which conflicts with the one from Swift, as detailed in the linked issue from our build script. It appears you have to choose one or the other, they conflict for a reason.
Of course, you could always submit a patch to make them play nice, if you need both.
My problem is solved by doing
apt reinstall libblocksruntime
,then I successfully installed swift
@finagolfin It seems like the problem in referenced issue is gone or not reproducible in termux anymore.
twaik@twaikpc:~/termux-packages$ for i in libdispatch libobjc2; do termux apt-file show $i | grep -v "/usr/share/"; done
apt-file show libdispatch
libdispatch: /data/data/com.termux/files/usr/include/dispatch/base.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/block.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/data.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/dispatch.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/group.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/introspection.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/io.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/object.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/once.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/queue.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/semaphore.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/source.h
libdispatch: /data/data/com.termux/files/usr/include/dispatch/time.h
libdispatch: /data/data/com.termux/files/usr/include/os/generic_base.h
libdispatch: /data/data/com.termux/files/usr/include/os/generic_unix_base.h
libdispatch: /data/data/com.termux/files/usr/include/os/generic_win_base.h
libdispatch: /data/data/com.termux/files/usr/include/os/object.h
libdispatch: /data/data/com.termux/files/usr/lib/libdispatch.so
apt-file show libobjc2
libobjc2: /data/data/com.termux/files/usr/include/Block.h
libobjc2: /data/data/com.termux/files/usr/include/Block_private.h
libobjc2: /data/data/com.termux/files/usr/include/objc/Availability.h
libobjc2: /data/data/com.termux/files/usr/include/objc/Object.h
libobjc2: /data/data/com.termux/files/usr/include/objc/Protocol.h
libobjc2: /data/data/com.termux/files/usr/include/objc/blocks_private.h
libobjc2: /data/data/com.termux/files/usr/include/objc/blocks_runtime.h
libobjc2: /data/data/com.termux/files/usr/include/objc/capabilities.h
libobjc2: /data/data/com.termux/files/usr/include/objc/developer.h
libobjc2: /data/data/com.termux/files/usr/include/objc/encoding.h
libobjc2: /data/data/com.termux/files/usr/include/objc/hooks.h
libobjc2: /data/data/com.termux/files/usr/include/objc/message.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-api.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-arc.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-auto.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-class.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-runtime.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc-visibility.h
libobjc2: /data/data/com.termux/files/usr/include/objc/objc.h
libobjc2: /data/data/com.termux/files/usr/include/objc/runtime-deprecated.h
libobjc2: /data/data/com.termux/files/usr/include/objc/runtime.h
libobjc2: /data/data/com.termux/files/usr/include/objc/slot.h
libobjc2: /data/data/com.termux/files/usr/lib/libobjc.so
libobjc2: /data/data/com.termux/files/usr/lib/pkgconfig/libobjc.pc
libdispatch does not ship Block.h
or Block_private.h
so there is no interference. Should we remove the TERMUX_PKG_CONFLICTS
?
Probably fixed by this. https://github.com/gnustep/libobjc2/pull/293
libdispatch does not ship Block.h or Block_private.h so there is no interference.
The issue is not libdispatch but libblocksruntime:
> dpkg -L libblocksruntime | ag usr/include/
/data/data/com.termux/files/usr/include/Block.h
Oh, right. Sorry.
Probably fixed by this. gnustep/libobjc2#293
We could probably use that in the next libobjc2 release to remove this conflict, or backport that patch to the current release.
Having no problem anymore.So I am closing this issue.
Keep it open, we'll probably fix this with the next libobjc2 release.
Problem description
I tried to install swift on my system but unsatisfied dependency error occurred
`pkg install swift Checking availability of current mirror: [*] https://ftp.agdsn.de/termux/termux-main: ok Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:
Unsatisfied dependencies: libobjc2 : Conflicts: libblocksruntime but 1:5.10 is to be installed Error: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.`
What steps will reproduce the bug?
pkg install swift
What is the expected behavior?
I should install without any broken dependency.
System information