Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.1-0.20180117git1381d08.fc28.src.rpm Description: The Apple Swift Programming Language for Linux Fedora Account System Username: tachoknight
The current released version of Swift (4.0.3) does not have the patches necessary to build on Fedora, so I'm using the latest snapshot that does build correctly. Chatting on IRC, the nice folks suggested submitting a Review Request, even with the beta version of Swift, so that I can work out the packaging issues and can have everything good-to-go by the time the next official version of Swift is released. I am currently trying to remove the dependency on building everything and using the Fedora-supplied packages for Clang, LLVM, etc., is it okay that I keep updating the spec file and comment on this ticket?
Yes, that's fine. Please keep providing updated progress in the form of spec + srpm links and details as you go along. When it is ready, please remove the "NotReady" marker from the whiteboard field in this ticket.
- Please split your BR on multiple lines. - It seems you're missing a /usr/bin/pod2man dependency, provided by perl-podlators. CMake Error at cmake/modules/SwiftManpage.cmake:23 (message): Need pod2man installed to generate man page Call Stack (most recent call first): docs/tools/CMakeLists.txt:3 (manpage) -- Configuring incomplete, errors occurred! - Sphinx would be useful to build the docs: CMake Warning at docs/CMakeLists.txt:24 (message): Unable to find sphinx-build program. Not building docs - Tried to build in Koji: i686 is no go: NotImplementedError: System "Linux" with architecture "i686" is not supported /var/tmp/apple-swift/swift/utils/build-script: fatal error: command terminated with a non-zero exit status 1, aborting https://swift.org/blog/swift-linux-port/ "Currently x86_64 is the only supported architecture on Linux." I guess you should define an ExclusiveArches specifically for swift-lang. You should also consider making a srpm package: swift-srpm-macros.noarch : RPM macros for building Swift source packages It would contain a file: /usr/lib/rpm/macros.d/macros.swift-srpm which defines macros specific to your language. For example: %swift_arches x86_64 - I haven't been able to build it on my sytems, it segfaults after 45 mn. Fails on Koji too: https://koji.fedoraproject.org/koji/taskinfo?taskID=24356781 >I am currently trying to remove the dependency on building everything and using the Fedora-supplied packages for Clang, LLVM, etc., is it okay that I keep updating the spec file and comment on this ticket? Yes
Yep, I realized I needed to explicitly limit the architectures. I have limited it to only x86_64, added the pod2man dependency, reorganized the %prep section, and it builds on my machine and I uploaded the new files (https://tachoknight.fedorapeople.org/swift-lang/), but when I uploaded that srpm to Koji it dies in a new place: http://koji.fedoraproject.org/koji/taskinfo?taskID=24356831.
Figured out the issue with the Koji job dying: One of the sub-projects uses rsync instead of cp and it wasn't listed in the BRs and apparently rsync is not installed by default...? Koji scratch build succeeded: https://koji.fedoraproject.org/koji/taskinfo?taskID=24373311 Latest spec and srpm available at: https://tachoknight.fedorapeople.org/swift-lang/ * I added rsync as a BR * Moved all the BRs to separate lines; right away I found this useful so I see why it's a good idea. I'm going to see about minimizing the files installed in the package, specifically lldb as that's explicitly included. This may require another upstream modification; they've been amenable to all of my pull requests so far. :)
I figured out how to exclude LLDB from the rpm, but running the REPL brings up this message: *** You are running Swift's integrated REPL, *** *** intended for compiler and stdlib *** *** development and testing purposes only. *** *** The full REPL is built as part of LLDB. *** *** Type ':help' for assistance. *** I'm testing the ramifications of this right now; will update the ticket accordingly.
There's an issue with excluding LLDB from being installed as part of the Swift package, the one that is already available in Fedora does not know about Swift (of course), but that makes the Swift REPL unavailable: [root@2b87d31bfd74 home]# swift --version Swift version 4.1-dev Target: x86_64-unknown-linux-gnu [root@2b87d31bfd74 home]# lldb --version lldb version 5.0.1 [root@2b87d31bfd74 home]# rpm -qf /usr/bin/lldb lldb-5.0.1-1.fc28.x86_64 [root@2b87d31bfd74 home]# rpm -qf /usr/bin/swift swift-lang-4.1-0.20180117git1381d08.fc28.x86_64 [root@2b87d31bfd74 home]# swift error: LLDB isn't configured with REPL support for any languages. [root@2b87d31bfd74 home]# Not sure how to resolve this in a polite way for the user (e.g. we don't want to overwrite their existing version).
I've been playing around with a downloaded copy of Swift in conjunction with an installed copy of lldb and I believe that the swift binary is explicitly looking for lldb in the same directory to run the REPL; I've asked on the Swift forums to confirm my findings. It seems that the copy of lldb is inclusive of existing functionality (i.e. I tested that it also debugs C/C++ executables as well), but that doesn't really matter insofar as it's not the same copy that ships with the existing lldb rpm. I believe the lldb that is included with Swift is essentially a fork with additional functionality to support Swift. I'd like to float the possibility of allowing the installation to be put in /opt/fedora per https://fedoraproject.org/wiki/Packaging:Guidelines#Limited_usage_of_.2Fopt.2C_.2Fetc.2Fopt.2C_and_.2Fvar.2Fopt. I'm looking to get more information/confirmation from the Swift group before making the formal proposal.
(In reply to Ron Olson from comment #8) > I've been playing around with a downloaded copy of Swift in conjunction with > an installed copy of lldb and I believe that the swift binary is explicitly > looking for lldb in the same directory to run the REPL; I've asked on the > Swift forums to confirm my findings. > > It seems that the copy of lldb is inclusive of existing functionality (i.e. > I tested that it also debugs C/C++ executables as well), but that doesn't > really matter insofar as it's not the same copy that ships with the existing > lldb rpm. I believe the lldb that is included with Swift is essentially a > fork with additional functionality to support Swift. > > I'd like to float the possibility of allowing the installation to be put in > /opt/fedora per > https://fedoraproject.org/wiki/Packaging:Guidelines#Limited_usage_of_.2Fopt. > 2C_.2Fetc.2Fopt.2C_and_.2Fvar.2Fopt. I'm looking to get more > information/confirmation from the Swift group before making the formal > proposal. I was looking at the wrong repo for llvm/lldb...they seem to have references to Swift so I'm currently building the latest version of llvm/lldb and see what's available; it may be possible to just tie Swift with a later version of LLDB so that the two can coexist.
Well, I asked on the LLDB board on the Swift forums and it seems pretty certain that Swift must include its own copy of LLDB: https://forums.swift.org/t/usage-of-lldb-with-swift-on-linux-apt-get-version-vs-bundled-version/8770 I'll open a ticket with the FPC to see what can be done.
I believe I've resolved all the known outstanding issues and have updated the spec and RPMs at https://tachoknight.fedorapeople.org/swift-lang/. 4.1 is still not released; would it be okay to review the packaging before then to resolve any issues?
Ron, that's perfectly fine.
Okay, I removed NotReady from the whiteboard.
I've updated the spec file and generated two new rpm files to take into account a bug fix that I submitted to Apple and they merged: https://github.com/apple/swift/pull/14589. This allows Swift to be built successfully using Clang 6 on Rawhide. I tested it against 5.0.1 on F27 and it builds successfully there as well. https://tachoknight.fedorapeople.org/swift-lang/
I don't have a review submitted at the moment but I can fix that this week. Here's a quick spec review while I have a mock build going... 1. Need to tweak your release tag. Since this is a prerelease you have the 0 correct but per the guidelines[1] it should be 0.X where in this case X would be 1, so the full package name would be something like: swift-lang-4.1-0.1.20180214git5a1a34b.fc28 Also, since there shouldn't be a problem using more generic global variables, you could remove the "swift..." from each one to aid readability. 2. This is a suggestion not a requirement but it helps readability to put two lines between major sections, i.e. %prep, %build, %install, etc. 3. This doesn't use the typical build system but verbose output is preferred. If you can pass settings directly to CMAKE somehow just set the environment variable "VERBOSE=1". Perhaps just setting prior to the build command will work: export VERBOSE=1 4. What is the purpose of all the symbolic linking? Most of it you're creating links into the builddir but I don't see it used anywhere... A couple you've got hardcoded paths in /usr/lib which you shouldn't do during package building. 5. Since you've pretty much excluded all arches except x86_64 it would be /usr/lib64, but either way you shouldn't be creating files in the build system and it should error out. 6. Is there a reason you're installing into %{_builddir} instead of %{buildroot}? 7. Like your original post you should post new links after every review, include what you've changed in the %changelog, and bump the release so the next one would be 0.2.
I forgot to post the links to the guidelines... https://fedoraproject.org/wiki/Packaging:Versioning#Snapshots and https://fedoraproject.org/wiki/Packaging:Versioning#Prerelease_versions It would be helpful to show an example of both used together but oh well...
Hey Richard, thanks for the feedback. My responses to each of your points: 1: Will do 2: Will do 3: Will investigate and will do if possible 4: Swift builds and requires its own version of LLDB for its REPL, which would cause a conflict with an existing install of LLDB that already exists as a package (and does not include Swift support). The symlinking is to get Swift to work in an environment where the user has already installed LLDB. 5: %{_libdir} wants to install to /usr/lib64, but Swift expects to find everything in /usr/lib; no amount of coaxing from ldconfig made it work. I'll take another crack at putting everything in lib64; it's probably another hardcoded path that needs to be changed through a patch. 6: Probably sheer ignorance on how to package properly :) 7: Will do
As an update, Swift 4.1 was released yesterday but does not include any of my pull requests. Looking through their blog I found out that the final cut from master was actually several days before any of my pull requests were merged, so version 4.1-release will not package properly without patches to the code. I'm still working on the Fedora-specific patches to make it play nicely as an rpm, so I'm probably going to keep going with the master branch and hopefully by the time 4.2 is released it will be ready to go.
Updated to Swift 4.2: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec 4.2-20180411git537a846 for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.3.20180411git537a846.fc27.src.rpm 4.2-20180411git537a846 for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.3.20180411git537a846.fc29.src.rpm
Just got back from a very cold and wet Boy Scout camping trip. Will check it out when I recover :)
Why are libraries installed to /usr/lib instead of %{_libdir}?
Swift is very sensitive to the location of all parts of its toolchain; "lib" is hard-coded in some way or another across all the projects that make up the Swift toolchain. The past couple of months have been spent finding, analyzing, and replacing all appropriate instances of lib with lib64 and the result is Swift segfaults 100% of the time. That said, looking at /usr/lib64, it's populated with actual shared library files, while Swift puts its files inside subdirectories (e.g. /usr/lib/swift), so it's not dropping a bunch of .so files in /usr/lib.
(In reply to Ron Olson from comment #22) > Swift is very sensitive to the location of all parts of its toolchain; "lib" > is hard-coded in some way or another across all the projects that make up > the Swift toolchain. The past couple of months have been spent finding, > analyzing, and replacing all appropriate instances of lib with lib64 and the > result is Swift segfaults 100% of the time. > > That said, looking at /usr/lib64, it's populated with actual shared library > files, while Swift puts its files inside subdirectories (e.g. > /usr/lib/swift), so it's not dropping a bunch of .so files in /usr/lib. Ok, can you add a comment to the spec file explaining why you are using /usr/lib.
Sure thing!
A few other things that the review tool caught: - BuildRequires: python-devel -> python2-devel or python3-devel - Need %license LICENSE.txt in %files - The static libraries in ./usr/lib/swift_static/linux/ Are these internal compiler libraries? - Package needs to take ownership of directories: (e.g. /usr/lib/swift/* -> /usr/lib/swift/)
I've made all of Tom's changes. The static libraries are internal compiler libraries. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec 4.2-0.4.20180415git22530b9 for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.4.20180415git22530b9.fc27.src.rpm 4.2-0.4.20180415git22530b9 for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.4.20180415git22530b9.fc29.src.rpm
Updated to the 2018-04-16 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.5.20180418gitac06163 for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.5.20180418gitac06163.fc27.src.rpm SRPM 4.2-0.5.20180418gitac06163 for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.5.20180418gitac06163.fc29.src.rpm
Updated for Fedora 28 (will be included in builds going forward): SRPM 4.2-0.5.20180418gitac06163 for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.5.20180418gitac06163.fc28.src.rpm
Updated to the 2018-04-22 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.6.20180422git5030d38 for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.6.20180422git5030d38.fc27.src.rpm SRPM 4.2-0.6.20180422git5030d38 for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.6.20180422git5030d38.fc28.src.rpm SRPM 4.2-0.6.20180422git5030d38 for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.6.20180422git5030d38.fc29.src.rpm
Updated to the 2018-05-02 build (first cut from the Swift master branch for what will be the actual 4.2 release): Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.7.20180502gitb08fb12.fc27.src.rpm8 for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.7.20180502gitb08fb12.fc27.src.rpm SRPM 4.2-0.7.20180502gitb08fb12.fc27.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.7.20180502gitb08fb12.fc28.src.rpm SRPM 4.2-0.7.20180502gitb08fb12.fc27.src.rpm for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.7.20180502gitb08fb12.fc29.src.rpm
Updated to the 2018-05-08 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.8.20180508git0e6d867.fc27.src.rpm for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.8.20180508git0e6d867.fc27.src.rpm SRPM 4.2-0.8.20180508git0e6d867.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.8.20180508git0e6d867.fc28.src.rpm SRPM 4.2-0.8.20180508git0e6d867.fc29.src.rpm for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.8.20180508git0e6d867.fc29.src.rpm
Updated to the 2018-05-20 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.10.20180520gitbb77484.fc28.src.rpm for Fedora 27: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.10.20180520gitbb77484.fc27.src.rpm SRPM 4.2-0.10.20180520gitbb77484.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.10.20180520gitbb77484.fc28.src.rpm SRPM 4.2-0.10.20180520gitbb77484.fc28.src.rpm for Fedora Rawhide: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.10.20180520gitbb77484.fc29.src.rpm
Is there anything else I need to do? The package has been working for me quite well on my machines; I use Swift more on Fedora than I do on a Mac. ;)
Nope! Just been busy lately... I'll shoot to get started today but will likely be after the holiday weekend before I get it done.
Why does swift Require: clang ?
Clang does the actual compilation of Swift code into a binary.
(In reply to Ron Olson from comment #36) > Clang does the actual compilation of Swift code into a binary. If it's only a build requirement, then you can drop Requires: clang
You mean a build requirement for Swift itself? The Swift toolchain uses it post-installation to build a Swift-based binary.
Oh, and no need to supply source RPMs for each release, they're typically universal unless you have hardcoded customizations that are different between them.
(In reply to Ron Olson from comment #38) > You mean a build requirement for Swift itself? The Swift toolchain uses it > post-installation to build a Swift-based binary. Can you elaborate a little more on how swift uses clang post-install? I thought swift was building its own clang, so it wouldn't need the system clang.
Swift does have its own clang for building itself, but it uses the system clang for compiling Swift code. Here's a session capture that illustrates this: [rolson@thinky swift-source]$ uname -a Linux thinky 4.16.9-300.fc28.x86_64 #1 SMP Thu May 17 06:39:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [rolson@thinky swift-compile-test]$ more /etc/os-release NAME=Fedora VERSION="28 (Workstation Edition)" ID=fedora VERSION_ID=28 PLATFORM_ID="platform:f28" PRETTY_NAME="Fedora 28 (Workstation Edition)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:fedoraproject:fedora:28" HOME_URL="https://fedoraproject.org/" SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=28 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=28 PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" VARIANT="Workstation Edition" VARIANT_ID=workstation [rolson@thinky swift-source]$ rpm -qf /usr/bin/clang clang-6.0.0-5.fc28.x86_64 [rolson@thinky swift-source]$ rpm -qf /usr/bin/swiftc swift-lang-4.2-0.10.20180520gitbb77484.fc28.x86_64 [rolson@thinky swift-source]$ cd /tmp/swift-compile-test/ [rolson@thinky swift-compile-test]$ more test.swift print("Hello World!") [rolson@thinky swift-compile-test]$ swift test.swift Hello World! [rolson@thinky swift-compile-test]$ swiftc test.swift [rolson@thinky swift-compile-test]$ ls test test.swift [rolson@thinky swift-compile-test]$ ./test Hello World! [rolson@thinky swift-compile-test]$ rm test [rolson@thinky swift-compile-test]$ sudo mv /usr/bin/clang /usr/bin/xxxclang [sudo] password for rolson: [rolson@thinky swift-compile-test]$ swiftc test.swift <unknown>:0: error: unable to execute command: <unknown> [rolson@thinky swift-compile-test]$ sudo mv /usr/bin/xxxclang /usr/bin/clang [rolson@thinky swift-compile-test]$ swiftc test.swift [rolson@thinky swift-compile-test]$ ./test Hello World! [rolson@thinky swift-compile-test]$ file test test: ELF 64-bit LSB pie executable x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=227b6b70d8114874c4a7aadcb01a8c34240eb791, not stripped [rolson@thinky swift-compile-test]$
Hope that helped clear it up; was very confusing to me at first (especially when the LLVM toolchain versions matched between what was installable and what was built just for bootstrapping).
Updated to the 2018-06-02 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.13.20180602gitadad0f5.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.13.20180602gitadad0f5.fc28.src.rpm
Did the session log help? The clang that Swift builds is just for building Swift, and then uses the installed clang for building Swift-based binaries.
Tom, would you like to take this review? You seem to be better suited. If not I'll do my best.
(In reply to Richard Shaw from comment #45) > Tom, would you like to take this review? You seem to be better suited. If > not I'll do my best. Sure, I can take the review.
(In reply to Ron Olson from comment #42) > Hope that helped clear it up; was very confusing to me at first (especially > when the LLVM toolchain versions matched between what was installable and > what was built just for bootstrapping). Would it be possible to also use the system clang for compiling swift?
No, Swift is built using a special version of clang that has additional Swift-specific stuff added to it: https://swift.org/source-code/ under Cloned Repositories. System clang is used, though, for building Ninja, which is then used to build everything else.
(In reply to Ron Olson from comment #48) > No, Swift is built using a special version of clang that has additional > Swift-specific stuff added to it: https://swift.org/source-code/ under > Cloned Repositories. > OK. > System clang is used, though, for building Ninja, which is then used to > build everything else. Could we use system ninja instead of building it with system clang?
> Could we use system ninja instead of building it with system clang? Yep, that worked well; I added ninja in the %buildrequires section, removed the source file, and added a patch to disable the Swift toolchain from building it. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.18.20180611gitd99cd32.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.18.20180611gitd99cd32.fc28.src.rpm I misstated the usage of system clang; it's used quite a lot to build several parts of the toolchain, including the Swift-custom clang, which in turn then builds swift. Regardless, ninja isn't one of the things it builds anymore. :)
Updated to the 2018-06-12 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM swift-lang-4.2-0.19.20180612gitbb9532c.fc29.src.rpm for Fedora 29: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.19.20180612gitbb9532c.fc29.src.rpm
According to a discussion I had on #llvm, we should be able to build swift with system clang and possibly even system gcc. It is Fedora policy to build with gcc if upstream supports it[1], so I think we should make a reasonable effort to build with gcc, you may want to ask on the swift mailing list if anyone has experience doing this. If gcc won't work then we should be using system clang to build swift. It also sounds like at runtime swift should be using its own custom clang and that using system clang may not work in all cases. You should also look into making this change. [1] https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler
I asked over on the Swift Forums (https://forums.swift.org/t/building-swift-toolchain-using-gcc/13686/9) and the two member of the core team that I've chatted with indicate that the system-provided clang is sufficient to compile user-created Swift code; the version of clang that is built as part of the toolchain is only for building the Swift binary itself and is unnecessary for user code. As far as compiling with gcc, I was surprised/worried that getting the entire Swift toolchain to build with gcc is not something that has been done before and is not supported at all in the codebase. As much as I have been working on it, I think I've hit a wall with clang-specific function calls that are invoked as part of the build. I believe using the system clang to build Swift and be a dependency of the Swift package provides the best experience with the fewest unknowns.
Updated to the 2018-06-26 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.20.20180626gitbe3b9a7.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.20.20180626gitbe3b9a7.fc28.src.rpm
Is python2 required or can swift use python3?
Swift doesn't use python, but lldb does. According to https://forums.swift.org/t/thoughts-on-python-3-for-swifts-lldb/14098/2 they seem to do no testing of python3.
Updated to the 2018-06-28 build: Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.21.20180628git9f8f2a1.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.21.20180628git9f8f2a1.fc28.src.rpm
- Does swift need all the lldb headers that are installed? - Are the clang headers in /usr/lib/swift/clang/include still necessary now that we are using system clang?
I cleaned up the lldb stuff, but the headers in /usr/lib/swift/clang/include are indeed necessary; they're used when importing a module (e.g. Glibc, Foundation, Dispatch) into a Swift program. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.22.20180629gitdab0d8e.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.22.20180629gitdab0d8e.fc28.src.rpm
(In reply to Ron Olson from comment #59) > I cleaned up the lldb stuff, but the headers in /usr/lib/swift/clang/include > are indeed necessary; they're used when importing a module (e.g. Glibc, > Foundation, Dispatch) into a Swift program. > > I'm still seeing some lldb headers in /usr/include/swift-lldb/ are these necessary for run-time use?
Nope, I removed the headers; they are not necessary for runtime. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.24.20180701git6079032.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.24.20180701git6079032.fc28.src.rpm
There are still headers in /usr/include/lldb with the latest build, can you remove these.
Whoops, sorry about that. Fixed now. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.25.20180702gitc2e1567.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.25.20180702gitc2e1567.fc28.src.rpm
This looks better now. Just a few more things that the fedora-review tool caught: - Drop BuildRequires: which -+ Filter Provdes for liblldb* https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering - Any shared objects that are run-time dependencies of applications compiled by swift, but not run-time dependencies of the swift compiler should be split out into a -runtime subpackage. swift-lang should Require: the -runtime subpackage.
Okay, the Swift run-time libs are in their own package, removed the 'which' buildrequires, and filtered the lldb libraries. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.26.20180703git107e307.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.26.20180703git107e307.fc28.src.rpm
The lldb shared objects are versioned e.g. liblldb.so.6.0.0, so the regex you are using to filter the provides does not match them. I think you can fix this by dropping the $ or by adding .* after so.
I checked the regex and your change seems to do the trick, thanks! Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.27.20180704gitf56a941.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.27.20180704gitf56a941.fc28.src.rpm
Below is the full review report. I've listed two items in the issues section that should be fixed before this request gets approved, but otherwise this package looks good. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= Please fix these: - /usr/lib/swift/linux/ in the %files section instead of /usr/lib/swift/linux/*.so This indicates that the package owns the directory. - Remove explicit library requres: Requires: libatomic Requires: libbsd These are OK as is: - Header files in -devel subpackage, if present. This is OK other compiler packages, like clang do this. - Static libraries in -static or -devel subpackage, providing -devel if These are internal libs not meant for any other package, so this is OK. ===== MUST items ===== C/C++: [ ]: Package does not contain kernel modules. [ ]: Package contains no static executables. [ ]: Rpath absent or only used for internal libs. Note: See rpmlint output [ ]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: Package does not contain any libtool archives (.la) Generic: [ ]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [ ]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "MIT/X11 (BSD like) BSD (2 clause)", "Apache (v2.0)", "*No copyright* CC by (v3.0)", "Unknown or generated", "*No copyright* CC by-sa (v4.0)", "MIT/X11 (BSD like)", "*No copyright* PSF", "BSD (unspecified)", "CC0", "*No copyright* CC0", "ISC", "Unicode strict", "*No copyright* BSD (unspecified)", "BSD (3 clause)", "BSD (2 clause)", "*No copyright* MIT/X11 (BSD like)", "*No copyright* Apache (v2.0)". 60595 files have unknown license. Detailed output of licensecheck in /home/tstellar/1536780-swift-lang/licensecheck.txt [ ]: License file installed when any subpackage combination is installed. [ ]: Package requires other packages for directories it uses. Note: No known owner of /usr/lib/swift/linux, /usr/lib/swift [ ]: Package must own all directories that it creates. Note: Directories without known owners: /usr/lib/swift/linux, /usr/lib/swift [-]: Package does not own files or directories owned by other packages. There was a long list of directories here, but they where all build-id directories. [ ]: %build honors applicable compiler flags or justifies otherwise. [ ]: Package contains no bundled libraries without FPC exception. [ ]: Changelog in prescribed format. [ ]: Sources contain only permissible code or content. [ ]: Package contains desktop file if it is a GUI application. [ ]: Development files must be in a -devel package [ ]: Package uses nothing in %doc for runtime. [ ]: Package consistently uses macros (instead of hard-coded directory names). [ ]: Package is named according to the Package Naming Guidelines. [ ]: Package does not generate any conflict. [ ]: Package obeys FHS, except libexecdir and /usr/target. [ ]: If the package is a rename of another package, proper Obsoletes and Provides are present. [ ]: Requires correct, justified where necessary. [ ]: Spec file is legible and written in American English. [ ]: Package contains systemd file(s) if in need. [ ]: Useful -debuginfo package or justification otherwise. [ ]: Package is not known to require an ExcludeArch tag. [ ]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [ ]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [ ]: Final provides and requires are sane (see attachments). [ ]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in swift- lang-runtime [ ]: Package functions as described. [ ]: Latest version is packaged. [ ]: Package does not include license text files separate from upstream. [ ]: Patches link to upstream bugs/comments/lists or are otherwise justified. [ ]: Scriptlets must be sane, if used. [ ]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [ ]: Package should compile and build into binary rpms on all supported architectures. [ ]: %check is present and all tests pass. [ ]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: swift-lang-4.2-0.27.20180704gitf56a941.fc29.x86_64.rpm swift-lang-runtime-4.2-0.27.20180704gitf56a941.fc29.x86_64.rpm swift-lang-4.2-0.27.20180704gitf56a941.fc29.src.rpm swift-lang.x86_64: E: devel-dependency glibc-devel swift-lang.x86_64: E: explicit-lib-dependency libatomic swift-lang.x86_64: E: explicit-lib-dependency libbsd swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-build swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-build-tool swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-demangle swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-package swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-run swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-test swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/liblldb.so.6.0.0 swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/lib/swift-lldb/liblldb.so.6.0.0 ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/liblldbIntelFeatures.so.6.0.0 swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/lib/swift-lldb/liblldbIntelFeatures.so.6.0.0 ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/libsourcekitdInProc.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/libswiftDemangle.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.asan-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.dyndd-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.scudo-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_minimal-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_standalone-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/3/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/4/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/4_2/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-argdumper swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-argdumper ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-mi swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-mi ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-server swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-server ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-test swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-test ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/repl_swift swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/repl_swift ['/builddir/build/BUILD/swift-source/build/buildbot_linux/lldb-linux-x86_64/../swift-linux-x86_64/lib/swift/linux', '$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: non-conffile-in-etc /etc/ld.so.conf.d/swift-lang.conf swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift-lldb/liblldb.so swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift-lldb/liblldbIntelFeatures.so swift-lang.x86_64: W: dangling-symlink /usr/lib/swift-lldb/swift /usr/lib/swift swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift/Block/Block.h <snip several more W: devel-file-in-non-devel-package > swift-lang.x86_64: W: no-manual-page-for-binary swift-autolink-extract swift-lang.x86_64: W: no-manual-page-for-binary swift-build swift-lang.x86_64: W: no-manual-page-for-binary swift-build-tool swift-lang.x86_64: W: no-manual-page-for-binary swift-demangle swift-lang.x86_64: W: no-manual-page-for-binary swift-format swift-lang.x86_64: W: no-manual-page-for-binary swift-package swift-lang.x86_64: W: no-manual-page-for-binary swift-run swift-lang.x86_64: W: no-manual-page-for-binary swift-test swift-lang.x86_64: W: no-manual-page-for-binary swiftc swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libFoundation.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libXCTest.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libdispatch.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftCore.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftGlibc.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftRemoteMirror.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftSwiftOnoneSupport.so swift-lang-runtime.x86_64: W: no-documentation swift-lang-runtime.x86_64: W: non-conffile-in-etc /etc/ld.so.conf.d/swift-lang-runtime.conf swift-lang.src:129: E: hardcoded-library-path in %{buildroot}/usr/lib swift-lang.src:144: W: macro-in-comment %{_libdir} swift-lang.src:150: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb swift-lang.src:151: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb swift-lang.src:152: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb/liblldb.so.6 swift-lang.src:153: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb/liblldb.so swift-lang.src:154: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb swift-lang.src:155: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb swift-lang.src:156: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb swift-lang.src:157: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb/liblldbIntelFeatures.so.6 swift-lang.src:158: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb/liblldbIntelFeatures.so swift-lang.src:161: E: hardcoded-library-path in %{buildroot}/usr/lib/swift swift-lang.src:162: E: hardcoded-library-path in %{buildroot}/usr/lib/swift swift-lang.src:163: E: hardcoded-library-path in %{buildroot}/usr/lib/swift-lldb/swift swift-lang.src:165: E: hardcoded-library-path in %{buildroot}/usr/lib/swift_static swift-lang.src:166: E: hardcoded-library-path in %{buildroot}/usr/lib/swift_static swift-lang.src:180: E: hardcoded-library-path in /usr/lib/swift-lldb/ swift-lang.src:181: E: hardcoded-library-path in /usr/lib/swift/Block/ swift-lang.src:182: E: hardcoded-library-path in /usr/lib/swift/CoreFoundation/ swift-lang.src:183: E: hardcoded-library-path in /usr/lib/swift/clang/ swift-lang.src:184: E: hardcoded-library-path in /usr/lib/swift/dispatch/ swift-lang.src:185: E: hardcoded-library-path in /usr/lib/swift/migrator/ swift-lang.src:186: E: hardcoded-library-path in /usr/lib/swift/os/ swift-lang.src:187: E: hardcoded-library-path in /usr/lib/swift/pm/ swift-lang.src:188: E: hardcoded-library-path in /usr/lib/swift/shims/ swift-lang.src:189: E: hardcoded-library-path in /usr/lib/swift/linux/x86_64/ swift-lang.src:190: E: hardcoded-library-path in /usr/lib/swift_static/ swift-lang.src:196: E: hardcoded-library-path in /usr/lib/swift/linux/*.so swift-lang.src:8: W: mixed-use-of-spaces-and-tabs (spaces: line 8, tab: line 7) swift-lang.src: E: specfile-error warning: bogus date in %changelog: Mon Jul 03 2018 Ron Olson <tachoknight> 4.2-0.26.20180703git107e307 3 packages and 0 specfiles checked; 39 errors, 348 warnings. Rpmlint (installed packages) ---------------------------- swift-lang.x86_64: E: devel-dependency glibc-devel swift-lang.x86_64: E: explicit-lib-dependency libatomic swift-lang.x86_64: E: explicit-lib-dependency libbsd swift-lang.x86_64: W: invalid-url URL: https://swift.org <urlopen error [Errno -2] Name or service not known> swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-build swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-build-tool swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-demangle swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-package swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-run swift-lang.x86_64: W: unstripped-binary-or-object /usr/bin/swift-test swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/liblldb.so.6.0.0 swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/lib/swift-lldb/liblldb.so.6.0.0 ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/liblldbIntelFeatures.so.6.0.0 swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/lib/swift-lldb/liblldbIntelFeatures.so.6.0.0 ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/libsourcekitdInProc.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift-lldb/libswiftDemangle.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.asan-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.dyndd-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.scudo-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_minimal-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_standalone-x86_64.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/3/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/4/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/lib/swift/pm/4_2/libPackageDescription.so swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-argdumper swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-argdumper ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-mi swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-mi ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-server swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-server ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/lldb-test swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/lldb-test ['$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: unstripped-binary-or-object /usr/libexec/swift-lldb/repl_swift swift-lang.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/swift-lldb/repl_swift ['/builddir/build/BUILD/swift-source/build/buildbot_linux/lldb-linux-x86_64/../swift-linux-x86_64/lib/swift/linux', '$ORIGIN/../lib', '/builddir/build/BUILD/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib'] swift-lang.x86_64: W: non-conffile-in-etc /etc/ld.so.conf.d/swift-lang.conf swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift-lldb/liblldb.so swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift-lldb/liblldbIntelFeatures.so swift-lang.x86_64: W: dangling-symlink /usr/lib/swift-lldb/swift /usr/lib/swift swift-lang.x86_64: W: devel-file-in-non-devel-package /usr/lib/swift/Block/Block.h <snip several more W: devel-file-in-non-devel-package > swift-lang.x86_64: W: no-manual-page-for-binary swift-autolink-extract swift-lang.x86_64: W: no-manual-page-for-binary swift-build swift-lang.x86_64: W: no-manual-page-for-binary swift-build-tool swift-lang.x86_64: W: no-manual-page-for-binary swift-demangle swift-lang.x86_64: W: no-manual-page-for-binary swift-format swift-lang.x86_64: W: no-manual-page-for-binary swift-package swift-lang.x86_64: W: no-manual-page-for-binary swift-run swift-lang.x86_64: W: no-manual-page-for-binary swift-test swift-lang.x86_64: W: no-manual-page-for-binary swiftc swift-lang-runtime.x86_64: W: invalid-url URL: https://swift.org <urlopen error [Errno -2] Name or service not known> swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libFoundation.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libXCTest.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libdispatch.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftCore.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftGlibc.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftRemoteMirror.so swift-lang-runtime.x86_64: W: unstripped-binary-or-object /usr/lib/swift/linux/libswiftSwiftOnoneSupport.so swift-lang-runtime.x86_64: W: no-documentation swift-lang-runtime.x86_64: W: non-conffile-in-etc /etc/ld.so.conf.d/swift-lang-runtime.conf 2 packages and 0 specfiles checked; 11 errors, 348 warnings. Requires -------- swift-lang (rpmlib, GLIBC filtered): /sbin/ldconfig clang glibc-devel ld-linux-x86-64.so.2()(64bit) libFoundation.so()(64bit) libatomic libatomic.so.1()(64bit) libbsd libc.so.6()(64bit) libdispatch.so()(64bit) libdl.so.2()(64bit) libedit.so.0()(64bit) libform.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3)(64bit) liblldb.so.6()(64bit) liblldb.so.6(LLVM_6.0)(64bit) liblldbIntelFeatures.so.6()(64bit) libm.so.6()(64bit) libncurses.so.6()(64bit) libpanel.so.6()(64bit) libpthread.so.0()(64bit) libpython2.7.so.1.0()(64bit) librt.so.1()(64bit) libsqlite3.so.0()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.7)(64bit) libswiftCore.so()(64bit) libswiftGlibc.so()(64bit) libtinfo.so.6()(64bit) libutil.so.1()(64bit) libuuid.so.1()(64bit) libuuid.so.1(UUID_1.0)(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) libz.so.1()(64bit) libz.so.1(ZLIB_1.2.0)(64bit) rtld(GNU_HASH) swift-lang-runtime swift-lang-runtime (rpmlib, GLIBC filtered): ld-linux-x86-64.so.2()(64bit) libFoundation.so()(64bit) libatomic.so.1()(64bit) libatomic.so.1(LIBATOMIC_1.0)(64bit) libbsd.so.0()(64bit) libbsd.so.0(LIBBSD_0.0)(64bit) libc.so.6()(64bit) libcurl.so.4()(64bit) libdispatch.so()(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libicudata.so.61()(64bit) libicui18n.so.61()(64bit) libicuuc.so.61()(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libswiftCore.so()(64bit) libswiftGlibc.so()(64bit) libutil.so.1()(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.5.7)(64bit) libxml2.so.2(LIBXML2_2.5.8)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) libxml2.so.2(LIBXML2_2.6.18)(64bit) libxml2.so.2(LIBXML2_2.6.23)(64bit) libxml2.so.2(LIBXML2_2.6.8)(64bit) libxml2.so.2(LIBXML2_2.7.3)(64bit) libxml2.so.2(LIBXML2_2.9.1)(64bit) rtld(GNU_HASH) Provides -------- swift-lang: libPackageDescription.so()(64bit) swift-lang swift-lang(x86-64) swift-lang-runtime: libFoundation.so()(64bit) libXCTest.so()(64bit) libdispatch.so()(64bit) libswiftCore.so()(64bit) libswiftGlibc.so()(64bit) libswiftRemoteMirror.so()(64bit) libswiftSwiftOnoneSupport.so()(64bit) swift-lang-runtime swift-lang-runtime(x86-64) Unversioned so-files -------------------- swift-lang: /usr/lib/swift-lldb/liblldb.so swift-lang: /usr/lib/swift-lldb/liblldbIntelFeatures.so swift-lang: /usr/lib/swift-lldb/libsourcekitdInProc.so swift-lang: /usr/lib/swift-lldb/libswiftDemangle.so swift-lang: /usr/lib/swift/clang/lib/linux/libclang_rt.asan-x86_64.so swift-lang: /usr/lib/swift/clang/lib/linux/libclang_rt.dyndd-x86_64.so swift-lang: /usr/lib/swift/clang/lib/linux/libclang_rt.scudo-x86_64.so swift-lang: /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_minimal-x86_64.so swift-lang: /usr/lib/swift/clang/lib/linux/libclang_rt.ubsan_standalone-x86_64.so swift-lang: /usr/lib/swift/pm/3/libPackageDescription.so swift-lang: /usr/lib/swift/pm/4/libPackageDescription.so swift-lang: /usr/lib/swift/pm/4_2/libPackageDescription.so swift-lang-runtime: /usr/lib/swift/linux/libFoundation.so swift-lang-runtime: /usr/lib/swift/linux/libXCTest.so swift-lang-runtime: /usr/lib/swift/linux/libdispatch.so swift-lang-runtime: /usr/lib/swift/linux/libswiftCore.so swift-lang-runtime: /usr/lib/swift/linux/libswiftGlibc.so swift-lang-runtime: /usr/lib/swift/linux/libswiftRemoteMirror.so swift-lang-runtime: /usr/lib/swift/linux/libswiftSwiftOnoneSupport.so
Okay, I fixed the issues. Thanks for reviewing this Tom, I feel like I've learned a lot and I think the package is far better than when we started. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.28.20180704gitf56a941.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.28.20180704gitf56a941.fc28.src.rpm
Made a new build from the July 5th sources. If it complicates things at this point I'll hold off on any new builds. Spec URL: https://tachoknight.fedorapeople.org/swift-lang/swift-lang.spec SRPM 4.2-0.29.20180705git1e2dc99.fc28.src.rpm for Fedora 28: https://tachoknight.fedorapeople.org/swift-lang/swift-lang-4.2-0.29.20180705git1e2dc99.fc28.src.rpm
This package looks fine, thanks for your patience. I've set the fedora-review flag so you should be able to proceed with the new package process.
Hey Tom, Mohan in #fedora-releng asked if you would explicitly acknowledge you're okay with this review: <mboddu> [10:33:35] <+mboddu> tachoknight: I hit "The review is not approved by the assignee of the Bugzilla bug" this is because the ticket is assigned to Richard Shaw but approved by Tom Stellard <mboddu> [10:35:20] <+mboddu> Can you open a ticket on https://pagure.io/releng and ask Tom to ack it or even on BZ that is fine, if you can <tachoknight__> mboddu: ack it? you mean take it? <mboddu> tachoknight__: Nope, we want some sort of confirmation from him saying that he is okay with the review <tachoknight__> oh, okay, real ack <mboddu> tachoknight__: Yup, ack'ing the review basically :) Thanks!
Yes, this is fine. Richard ask me if I wanted to take the review in comment #45 and I never assigned it to myself. I will do this now, so that it's clear I approve this.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/swift-lang
swift-lang-4.2-0.30.20180709gitd9561d9.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-0ef0cca109
swift-lang-4.2-0.30.20180709gitd9561d9.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-0ef0cca109
swift-lang-4.2-0.32.20180703git107e307.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-a6771080d7
swift-lang-4.2-0.32.20180703git107e307.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-a6771080d7
swift-lang-4.2-0.32.20180703git107e307.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.
*** Bug 1295115 has been marked as a duplicate of this bug. ***