Hello community, here is the log from the commit of package rust for openSUSE:Factory checked in at 2017-02-01 09:53:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rust (Old) and /work/SRC/openSUSE:Factory/.rust.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rust" Changes: -------- --- /work/SRC/openSUSE:Factory/rust/rust.changes 2016-09-20 13:25:51.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rust.new/rust.changes 2017-02-03 20:01:03.492558763 +0100 @@ -1,0 +2,93 @@ +Tue Jan 31 09:41:33 UTC 2017 - luke.nukem.jo...@gmail.com + +- Adjust build so that aarch and ARM architectures use bootstrap for + initial build + +------------------------------------------------------------------- +Tue Jan 31 04:25:06 UTC 2017 - luke.nukem.jo...@gmail.com + +- Fix provides/conflicts/obsoletes + +------------------------------------------------------------------- +Fri Dec 23 08:22:26 UTC 2016 - luke.nukem.jo...@gmail.com + +- Remove patch 0001-Fix-armv7-autodetection.patch + + appears to have been fixed upstream. +- Building armv7hl arch with bootstrap binary since previously + packaged versions haven't successfully built in the past + +------------------------------------------------------------------- +Fri Dec 23 07:57:24 UTC 2016 - luke.nukem.jo...@gmail.com + +- Update to version 1.14.0 + + Announcement: https://blog.rust-lang.org/2016/12/22/Rust-1.14.html + + Details: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1140-2016-12-22 +- Release highlights: + + support for RFC 1492. This small addition lets you use `..` + in more places, for example when destructuring a struct or tuple + + println!(), with no arguments, prints newline + + Wrapping impls standard binary and unary operators on + references, as well as the Sum and Product iterators, making + references to these types easier to use + + Implement From<Cow<str>> for String and From<Cow<[T]>> for + Vec<T>. These implementations make sense, but were not yet added. + + Expand .zip() specialization to .map() and .cloned() for + improved performance. + + Implement RefUnwindSafe for atomic types, as these types are + “unwind safe,” though that wasn’t obvious at first. + + Specialize Vec::extend to Vec::extend_from_slice for + performance gains. + + Don’t reuse HashMap random seeds. This helps to mitigate one + type of DDoS attack. + + The internal memory layout of HashMap is more cache-friendly, + for significant improvements in some operations + + Impl Add<{str, Cow<str>}> for Cow<str>. We already support Add + for other string types, so not having it on Cow is inconsistent. + +------------------------------------------------------------------- +Sun Dec 18 09:27:44 UTC 2016 - luke.nukem.jo...@gmail.com + +- Update to 1.13.0 + +------------------------------------------------------------------- +Sun Dec 18 09:03:52 UTC 2016 - luke.nukem.jo...@gmail.com + +- Add conflicts to help avoid situations where previous versions + or rustc-bootstrap may be installed + +------------------------------------------------------------------- +Sun Dec 18 02:41:25 UTC 2016 - luke.nukem.jo...@gmail.com + +- Update to 1.12.1 +- Remove patches: + + 0003-Disable-embedding-timestamp-information.patch - fixed + by upstream + + 0002-Add-armv6l-autodetection.patch - no-longer viable + +------------------------------------------------------------------- +Fri Dec 16 23:27:42 UTC 2016 - luke.nukem.jo...@gmail.com + +- Revert from v1.13 to v1.11 in preparation for alternative + packaging. + +------------------------------------------------------------------- +Wed Nov 2 08:42:44 UTC 2016 - matwey.korni...@gmail.com + +- Add 0001-Fix-armv7-autodetection.patch +- Add 0002-Add-armv6l-autodetection.patch + * fix armv6 and armv7 builds + +------------------------------------------------------------------- +Tue Sep 20 11:46:53 UTC 2016 - kgronl...@suse.com + +- Update to 1.11 + + Add support for cdylib crate types + +- Remove merged patches: + * 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch + * 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch + +- Set DT_SONAME when building dylibs + * Add add-soname.patch + +------------------------------------------------------------------- Old: ---- 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch 0003-Disable-embedding-timestamp-information.patch rustc-1.10.0-src.tar.gz New: ---- add-soname.patch rustc-1.14.0-src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rust.spec ++++++ --- /var/tmp/diff_new_pack.2VJ2ZS/_old 2017-02-03 20:01:05.504275607 +0100 +++ /var/tmp/diff_new_pack.2VJ2ZS/_new 2017-02-03 20:01:05.508275044 +0100 @@ -1,7 +1,7 @@ # # spec file for package rust # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -14,50 +14,57 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%global rustc_version 1_10 -%global rustc_build_version 1_9 + +%global prev_version 1.13.0 +%bcond_with bootstrap Name: rust -Version: 1.10.0 +Version: 1.14.0 Release: 0 Summary: A systems programming language License: MIT or Apache-2.0 Group: Development/Languages/Other Url: http://www.rust-lang.org -ExclusiveArch: %ix86 x86_64 -# renamed to match upstream and other distros -Provides: rustc-%{rustc_version} = %{version} -Obsoletes: rustc-%{rustc_version} <= 1.5 -Provides: rustc = %{version} -Provides: rustc-stable = %{version} -#FIXME: currently there's no way to have rustc and rustc-beta installed -# some alternatives system should be implemented -Conflicts: rustc < %{version} - -BuildRequires: rustc-%{rustc_build_version} - -Recommends: cargo - Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.gz - -#use snap.sh to update following lines from "magic" constanst from src/snapshots.txt Source100: %{name}-rpmlintrc -# PATCH-FIX-UPSTREAM: Fix misleading intentation errors on gcc 6.0 -Patch1: 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch -# PATCH-FIX-UPSTREAM: Fix GCC 6 misleading indentation error in hoedown -Patch2: 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch -# PATCH-FIX-OPENSUSE: Disable embedding timestamp information -Patch3: 0003-Disable-embedding-timestamp-information.patch +# PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs +Patch1: add-soname.patch +BuildRequires: cmake +BuildRequires: curl +BuildRequires: gcc-c++ +BuildRequires: python +Recommends: cargo +#FIXME: currently there's no way to have rustc and rustc-beta installed -BuildRoot: %{_tmppath}/%{name}-%{version}-build +Obsoletes: rustc-1_9 +Provides: rustc = %{version} +Provides: rustc-stable = %{version} +Conflicts: rustc-bootstrap -BuildRequires: curl +BuildRoot: %{_tmppath}/%{name}-%{version}-build +ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %if 0%{?suse_version} BuildRequires: fdupes %endif -BuildRequires: gcc-c++ -BuildRequires: python -BuildRequires: cmake +%ifarch %{arm} +BuildRequires: rustc-bootstrap <= %{prev_version} +BuildRequires: rustc-bootstrap >= %{prev_version} + %else + %ifarch aarch64 +BuildRequires: rustc-bootstrap <= %{prev_version} +BuildRequires: rustc-bootstrap >= %{prev_version} + %else + %if %{with bootstrap} +BuildRequires: rustc-bootstrap <= %{prev_version} +BuildRequires: rustc-bootstrap >= %{prev_version} + %else + %if %{without bootstrap} +BuildRequires: rust <= %{version} +BuildRequires: rust >= %{prev_version} + %endif + %endif + %endif +%endif %description Rust is a systems programming language focused on three goals: @@ -84,10 +91,9 @@ %package gdb Summary: Gdb integration for rust binaries Group: Development/Languages/Other -Provides: rustc:/usr/bin/rust-gdb -Provides: rust-%{rustc_version}-gdb = %{version} -Obsoletes: rust-%{rustc_build_version}-gdb Supplements: packageand(%{name}:gdb) +Provides: rust-gdb = %{version} +Provides: rustc:%{_bindir}/rust-gdb %description gdb This subpackage provides pretty printers and a wrapper script for @@ -96,37 +102,37 @@ %prep %setup -q -n rustc-%{version} %patch1 -p1 -%patch2 -p1 -%patch3 -p1 %build -export CPPFLAGS="$RPM_OPT_FLAGS" # eliminate complain from RPMlint +export CPPFLAGS="%{optflags}" # eliminate complain from RPMlint +# FIXME: you should use the %%configure macro ./configure \ --enable-local-rust \ --local-rust-root=%{_prefix} \ - --prefix=%{_prefix} + --prefix=%{_prefix} \ + --release-channel=stable make %{?_smp_mflags} %install -make %{?_smp_mflags} install DESTDIR=$RPM_BUILD_ROOT +make %{?_smp_mflags} DESTDIR=%{buildroot} install # Remove executable permission from HTML documentation # to prevent RPMLINT errors. -chmod -R -x+X $RPM_BUILD_ROOT%{_prefix}/share/doc/rust/html +chmod -R -x+X %{buildroot}%{_datadir}/doc/rust/html # Remove files which mention buildroot to prevent RPMLINT errors. -rm $RPM_BUILD_ROOT%{_prefix}/lib/rustlib/manifest-rust* -rm $RPM_BUILD_ROOT%{_prefix}/lib/rustlib/install.log +rm %{buildroot}%{_prefix}/lib/rustlib/manifest-rust* +rm %{buildroot}%{_prefix}/lib/rustlib/install.log # Remove lockfile to avoid errors. -rm $RPM_BUILD_ROOT%{_prefix}/share/doc/rust/html/.lock +rm %{buildroot}%{_datadir}/doc/rust/html/.lock # allow parallel installation of docs -mv %{buildroot}%{_prefix}/share/doc/rust \ - %{buildroot}%{_prefix}/share/doc/rust-%{version} +mv %{buildroot}%{_datadir}/doc/rust \ + %{buildroot}%{_datadir}/doc/rust-%{version} %if 0%{?suse_version} -%fdupes $RPM_BUILD_ROOT%{_prefix} +%fdupes %{buildroot}%{_prefix} %endif %post -p /sbin/ldconfig @@ -137,20 +143,20 @@ %{_bindir}/rustc %{_bindir}/rustdoc %{_mandir}/*/rust* -%exclude %{_prefix}/share/doc/rust +%exclude %{_datadir}/doc/rust %{_prefix}/lib/*.so %{_prefix}/lib/rustlib -%exclude %{_prefix}/lib/rustlib/etc/gdb_load_rust_pretty_printers.py -%exclude %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py +%exclude %{_prefix}/lib/rustlib%{_sysconfdir}/gdb_load_rust_pretty_printers.py +%exclude %{_prefix}/lib/rustlib%{_sysconfdir}/gdb_rust_pretty_printing.py %files doc %defattr(-,root,root) -%{_prefix}/share/doc/rust-%{version} +%{_datadir}/doc/rust-%{version} %files gdb %defattr(-,root,root,-) %{_bindir}/rust-gdb -%{_prefix}/lib/rustlib/etc/gdb_load_rust_pretty_printers.py -%{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py +%{_prefix}/lib/rustlib%{_sysconfdir}/gdb_load_rust_pretty_printers.py +%{_prefix}/lib/rustlib%{_sysconfdir}/gdb_rust_pretty_printing.py %changelog ++++++ add-soname.patch ++++++ Description: Set DT_SONAME when building dylibs In Rust, library filenames include a version-specific hash to help the run-time linker find the correct version. Unlike in C/C++, the compiler looks for all libraries matching a glob that ignores the hash and reads embedded metadata to work out versions, etc. . The upshot is that there is no need for the usual "libfoo.so -> libfoo-1.2.3.so" symlink common with C/C++ when building with Rust, and no need to communicate an alternate filename to use at run-time vs compile time. If linking to a Rust dylib from C/C++ however, a "libfoo.so -> libfoo-$hash.so" symlink may well be useful and in this case DT_SONAME=libfoo-$hash.so would be required. More mundanely, various tools (eg: dpkg-shlibdeps) complain if they don't find DT_SONAME on shared libraries in public directories. . This patch passes -Wl,-soname=$outfile when building dylibs (and using a GNU linker). Author: Angus Lees <g...@debian.org> Forwarded: no --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -840,6 +840,12 @@ cmd.args(&rpath::get_rpath_flags(&mut rpath_config)); } + if (crate_type == config::CrateTypeDylib || crate_type == config::CrateTypeCdylib) && t.options.linker_is_gnu { + let filename = String::from(out_filename.file_name().unwrap().to_str().unwrap()); + let soname = [String::from("-Wl,-soname=") + &filename]; + cmd.args(&soname); + } + // Finally add all the linker arguments provided on the command line along // with any #[link_args] attributes found inside the crate if let Some(ref args) = sess.opts.cg.link_args { ++++++ rustc-1.10.0-src.tar.gz -> rustc-1.14.0-src.tar.gz ++++++ /work/SRC/openSUSE:Factory/rust/rustc-1.10.0-src.tar.gz /work/SRC/openSUSE:Factory/.rust.new/rustc-1.14.0-src.tar.gz differ: char 5, line 1