New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SR-6084] libdispatch missing from Trunk Development snapshots #675
Comments
Yep, we've been reworking the build system, and keep hoping it'll be fixed any day now. cc @compnerd, das (JIRA User), mww (JIRA User), dgrove-oss (JIRA User) |
Hmm, the install rules should install it now. I fixed the last of the install issues recently. Can someone test if this still is a problem? |
Looks like it's still missing from today's snapshot, but maybe it's tomorrow's that'll have all the necessary changes? |
Hmm, do we have the logs for the build? I think that the changes went in on Friday, so I would expect the snapshot to contain it. Maybe the build script needs more changes? |
Should be this build, I think: https://ci.swift.org/job/oss-swift-package-linux-ubuntu-16_04/450/ |
The installation is definitely occurring. The question is, why is that not getting included in the tar ball? pushd /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/ So, this should really pick that up AFAICT. What am I missing? |
Whoops, well, the build log I showed is for October 9, and the most recent snapshot on the site is October 8, so that might not be the same. |
This completely breaks the package manager. Is the CI not running swift-integration-tests? |
Comment by David Grove (JIRA) fwiw, I did a local build and I think the installation path is not right for the libdispatch install. I'm invoking build-script with install_destdir=/home/dgrove/swift/swift-local-install. That install_destdir path is getting doubly copied. Ie, libdispatch.so is getting put into /home/dgrove/swift/swift-local-install/home/dgrove/swift/swift-local-instal/usr/bin/libdispatch.so. It should be located at /home/dgrove/swift/swift-local-instal/usr/bin/libdispatch.so. Perhaps this stanza in src/CMakelists.txt is wrong?
|
Comment by David Grove (JIRA) I think this might do it: #313 It at least puts the files in the right place for me when building manually. |
Comment by Oliver Chick (JIRA) It looks like libdispatch is still missing from the nightlies:
|
Comment by David Grove (JIRA) ok. I've taken a look at the build logs from the job that produced 2017-10-16a. I'm not sure if this is a problem or not, but the first time libdispatch is built and installed it is being given an install path that is derived from SourceKit. Here's a snippet of the log: [1/2] cd /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/libdispatch-linux-x86_64 && /usr/bin/cmake -E create_symlink /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/dispatch/generic/module.modulemap /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/dispatch/module.modulemap && /usr/bin/cmake -E create_symlink /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/private/generic/module.modulemap /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/private/module.modulemap
[1/2] Install the project...
-- Install configuration: ""
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/base.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/block.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/data.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/dispatch.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/group.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/introspection.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/io.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/object.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/once.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/queue.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/semaphore.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/source.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/time.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/dispatch/module.modulemap
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/os/object.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/include/os/linux_base.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/lib/libdispatch.so
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/lib/swift/linux/x86_64/Dispatch.swiftmodule
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/lib/swift/linux/x86_64/Dispatch.swiftdoc
[890/898] Completed 'libdispatch'
[891/898] Linking CXX shared library lib/libsourcekitdInProc.so Much later in the log, libdispatch is installed again, but still has the duplicated path fragment that I thought was fixed by libdispatch PR 313. I don't understand why this is happening. -- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/bin/swift-build-tool
<div class="collapseHeader">Installing libdispatch<div class="collapseAction"><p onClick="doToggle(this)">Hide Details</p></div></div><div class="expanded">--- Installing libdispatch ---
</div>+ env DESTDIR=/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/ /usr/bin/cmake --build /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/libdispatch-linux-x86_64 -- install
[1/2] cd /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/libdispatch-linux-x86_64 && /usr/bin/cmake -E create_symlink /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/dispatch/generic/module.modulemap /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/dispatch/module.modulemap && /usr/bin/cmake -E create_symlink /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/private/generic/module.modulemap /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-libdispatch/private/module.modulemap
[1/2] Install the project...
-- Install configuration: "Release"
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/base.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/block.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/data.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/dispatch.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/group.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/introspection.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/io.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/object.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/once.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/queue.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/semaphore.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/source.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/time.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/dispatch/module.modulemap
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/os/object.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/include/os/linux_base.h
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/lib/libdispatch.so
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/lib/swift/linux/x86_64/Dispatch.swiftmodule
-- Installing: /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install/usr/lib/swift/linux/x86_64/Dispatch.swiftdoc
<div class="collapseHeader">Installing foundation<div class="collapseAction"><p onClick="doToggle(this)">Hide Details</p></div></div><div class="expanded">--- Installing foundation ---
</div>+ pushd /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-foundation
~/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-corelibs-foundation ~/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04
+ /home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/build/buildbot_linux/ninja-build/ninja install
[1/1] mkdir -p "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/linux"; cp "../build/buildbot_linux/foundation-linux-x86_64/Foundation/libFoundation.so" "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/linux"; mkdir -p "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift_static/linux"; cp "../build/buildbot_linux/foundation-linux-x86_64/Foundation/libFoundation.a" "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift_static/linux"; mkdir -p "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/linux/x86_64"; cp "../build/buildbot_linux/foundation-linux-x86_64/Foundation/Foundation.swiftmodule" "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/linux/x86_64/"; cp "../build/buildbot_linux/foundation-linux-x86_64/Foundation/Foundation.swiftdoc" "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/linux/x86_64/"; mkdir -p "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//local/include"; rsync -a "../build/buildbot_linux/foundation-linux-x86_64/Foundation//usr//lib/swift/CoreFoundation" "/home/buildnode/jenkins/workspace/oss-swift-package-linux-ubuntu-16_04/swift-nightly-install//usr//lib/swift/"
+ popd Note the problem path: |
So the reason why libdiapatch and sourcekit are related is due to making sourcekit available on Linux. SourceKit is in the swift project and built with make, but it depends on dispatch at the implementation level. On Darwin, this comes from the system, so it works. On Linux we have to build dispatch first. But the libdispatch project has a build that compiles both the native library and also the swift representations. We can’t build the swift representations before swift itself is built, so we have a circular dependency. The solution at the time was to build the C based libdispatch first and privately for sourcekit, then blow it away and recompile it again for swifts usage later. That way SourceKit could be built for Linux and made available in the build. I suspect that if both SourceKit and Dispatch could be converted to use Cmake, then the dependencies for SourceKit -> libdispatch and Swift Dispatch -> libdispatch would be easier to resolve automatically. But on Darwin this circular dependency is sidestepped because we have SourceKit -> systemdispatch and Swift separately. |
NB the last successful build which contained dispatch was 18 September, which was much later than the SourceKit/dispatch changes (SR-1676). Builds from 19 September don’t have dispatch, so that’s when the regression was introduced. |
Comment by David Grove (JIRA) I'm pretty sure the regression matches to switching to CMake to drive the build of dispatch. The SourceKit snippet I quoted might be fine, but I honestly don't understand how the dependencies are being managed within CMake to ensure that the second build of libdispatch starts from a "clean enough" slate. So I grabbed the log snippets from both installs of libdispatch out of paranoia. |
@swift-ci create |
This happened, right? |
Comment by David Grove (JIRA) Yep. Fixed. Just verified on latest 16.04 snapshot build.
|
I believe that this is fixed now. |
Additional Detail from JIRA
Watchers: @shahmishal
md5: 5685fbff17fef7e5a99d2d3c5371f970
Issue Description:
In all trunk development releases for Ubuntu 16.04 currently listed on the Swift downloads page, libdispatch is absent.
The text was updated successfully, but these errors were encountered: