commit 029d4d490e0ea6b3988184e033c51e3a2220eb90bc7e42ebabab655228eeb74f Author: Michal Vyskocil Date: Tue Sep 6 16:11:34 2016 +0000 Accepting request 424927 from home:KGronlund:branches:devel:languages:rust Revised packaging suggestion for rust: Package as rust from now on. Add Recommends: for cargo. Will remove rustc-stable. This makes it easier to submit new versions to openSUSE:Factory, and easier for users to find rust. OBS-URL: https://build.opensuse.org/request/show/424927 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch b/0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch new file mode 100644 index 0000000..955bcf8 --- /dev/null +++ b/0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch @@ -0,0 +1,40 @@ +From 706b2253ff96a46ff98d347842a122299c3eb5cd Mon Sep 17 00:00:00 2001 +From: Daniel Firth +Date: Sun, 22 May 2016 20:47:59 +0100 +Subject: [PATCH] Fix misleading intentation errors on gcc 6.0 + +--- + src/rt/miniz.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/rt/miniz.c b/src/rt/miniz.c +index 2b803b0..2daca93 100644 +--- a/src/rt/miniz.c ++++ b/src/rt/miniz.c +@@ -575,7 +575,10 @@ tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_nex + { + mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i; + r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); +- for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; ++ for ( i = 0; i <= 143; ++i) *p++ = 8; ++ for ( ; i <= 255; ++i) *p++ = 9; ++ for ( ; i <= 279; ++i) *p++ = 7; ++ for ( ; i <= 287; ++i) *p++ = 8; + } + else + { +@@ -1393,7 +1396,10 @@ static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahe + if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) break; + TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE; + } +- if (!dist) break; p = s; q = d->m_dict + probe_pos; for (probe_len = 0; probe_len < max_match_len; probe_len++) if (*p++ != *q++) break; ++ if (!dist) break; ++ p = s; q = d->m_dict + probe_pos; ++ for (probe_len = 0; probe_len < max_match_len; probe_len++) ++ if (*p++ != *q++) break; + if (probe_len > match_len) + { + *pMatch_dist = dist; if ((*pMatch_len = match_len = probe_len) == max_match_len) return; +-- +2.8.4 + diff --git a/0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch b/0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch new file mode 100644 index 0000000..65065ea --- /dev/null +++ b/0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch @@ -0,0 +1,26 @@ +From 89ea75c4545bbc870712571a1c00b2f5b436939a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= +Date: Mon, 27 Jun 2016 18:44:17 +0200 +Subject: [PATCH] Fix GCC 6 misleading indentation error in hoedown + +--- + src/rt/hoedown/src/document.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/rt/hoedown/src/document.c b/src/rt/hoedown/src/document.c +index e2731da..53652e7 100644 +--- a/src/rt/hoedown/src/document.c ++++ b/src/rt/hoedown/src/document.c +@@ -1158,7 +1158,8 @@ char_link(hoedown_buffer *ob, hoedown_document *doc, uint8_t *data, size_t offse + } + else if (data[i] == ')') { + if (nb_p == 0) break; +- else nb_p--; i++; ++ else nb_p--; ++ i++; + } else if (i >= 1 && _isspace(data[i-1]) && (data[i] == '\'' || data[i] == '"')) break; + else i++; + } +-- +2.8.4 + diff --git a/0003-Disable-embedding-timestamp-information.patch b/0003-Disable-embedding-timestamp-information.patch new file mode 100644 index 0000000..535530a --- /dev/null +++ b/0003-Disable-embedding-timestamp-information.patch @@ -0,0 +1,25 @@ +From 99735fbdb242e1d853456913266944ff6e1f24f3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= +Date: Wed, 6 Jul 2016 13:07:37 +0200 +Subject: [PATCH] Disable embedding timestamp information + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/llvm/CMakeLists.txt b/src/llvm/CMakeLists.txt +index 4dd43e7..de5e766 100644 +--- a/src/llvm/CMakeLists.txt ++++ b/src/llvm/CMakeLists.txt +@@ -230,7 +230,7 @@ set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD "" + option(BUILD_SHARED_LIBS + "Build all libraries as shared libraries instead of static" OFF) + +-option(LLVM_ENABLE_TIMESTAMPS "Enable embedding timestamp information in build" ON) ++option(LLVM_ENABLE_TIMESTAMPS "Enable embedding timestamp information in build" OFF) + if(LLVM_ENABLE_TIMESTAMPS) + set(ENABLE_TIMESTAMPS 1) + endif() +-- +2.9.0 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..966a08b --- /dev/null +++ b/_constraints @@ -0,0 +1,23 @@ + + + + + 4000 + + + 40 + + + + + armv6l + armv7l + + + + 768 + + + + + diff --git a/rust-rpmlintrc b/rust-rpmlintrc new file mode 100644 index 0000000..135cc61 --- /dev/null +++ b/rust-rpmlintrc @@ -0,0 +1,5 @@ +addFilter("devel-file-in-non-devel-package .*/lib/rustlib/.*-unknown-linux-gnu/lib/libcompiler-rt.a") +addFilter("no-soname .*/lib/rustlib/.*.so") +addFilter("no-soname .*/lib/lib.*-.*.so") +addFilter("binaryinfo-readelf-failed .*/lib/rustlib/.*-unknown-linux-gnu/lib/.*.rlib") +addFilter("zero-length .*/doc/rust/html/.*.html") diff --git a/rust.changes b/rust.changes new file mode 100644 index 0000000..a01c2f0 --- /dev/null +++ b/rust.changes @@ -0,0 +1,238 @@ +------------------------------------------------------------------- +Tue Sep 6 06:35:03 UTC 2016 - kgronlund@suse.com + +- Move to package named rust + +------------------------------------------------------------------- +Thu Aug 4 19:41:56 UTC 2016 - mvyskocil@opensuse.org + +- Update to 1.10 + + -C panic=abort flag for rustc or equivalent in Cargo.toml + + new crate type cdylib, embeded library for other languages + + In addition, a number of performance improvements landed in + the compiler, and so did a number of usability improvements + across the documentation, rustdoc itself, and various error + messages. + + This is the first release, which is guaranteed to be built + by previous stable release of rustc +- Packaging: + + drop bootstrap mode and use rustc 1.9 + + move documentation to versioned directory + +------------------------------------------------------------------- +Sun Jul 31 15:03:38 UTC 2016 - jengelh@inai.de + +- Use smp_mflags for parallel building. Avoid sh invocation for + simple ldconfig calls. Drop archaic %clean section. + Drop filler words from summary. + +------------------------------------------------------------------- +Tue Jul 26 13:34:17 UTC 2016 - kgronlund@suse.com + +- Rename source package to rustc-1_9 to conform to naming standards. + +------------------------------------------------------------------- +Tue Jul 12 05:57:11 UTC 2016 - mvyskocil@opensuse.org + +- Rename source package to rustc-190 to avoid unecessary rebuilds + of rustc packages on upgrade + +------------------------------------------------------------------- +Wed Jul 6 11:11:50 UTC 2016 - kgronlund@suse.com + +- Move stage0 binaries into separate package +- Disable embedding timestamp information +- Add 0003-Disable-embedding-timestamp-information.patch + +------------------------------------------------------------------- +Tue Jun 28 12:43:26 UTC 2016 - kgronlund@suse.com + +- Rename package to rustc-stable +- Add rpmlintrc +- Make bootstrapping conditional + +------------------------------------------------------------------- +Mon Jun 27 15:40:53 UTC 2016 - kgronlund@suse.com + +- Fix misleading indentation errors on GCC 6.0 +- Remove snap2.sh +- Add 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch +- Add 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch + +------------------------------------------------------------------- +Mon May 30 09:15:21 UTC 2016 - mvyskocil@opensuse.org + +- Update to version 1.9.0 + + Stabilization of std::panic + + Deprecation warnings, #[deprecated] attribute + + Compile time improvements + + Rolling out use of specialization + + Library stabilizations + About 80 library functions and methods are now stable in 1. + + http://blog.rust-lang.org/2016/05/26/Rust-1.9.html + +------------------------------------------------------------------- +Fri Apr 15 19:39:18 UTC 2016 - mvyskocil@opensuse.org + +- Update to version 1.8.0: + + Various “operator equals” operators, such as += and -=, are now + overloadable via various traits. + + Empty struct declaration can contain cutly braces + + New (non default) cargo based build system for rustc + + About 20 library functions and methods are now stable in 1.8 + +------------------------------------------------------------------- +Fri Mar 4 16:10:07 UTC 2016 - kgronlund@suse.com + +- Update to version 1.7.0: + + Many stabilized APIs + + Improved library performance + + BTreeSet and its iterators, Iter, IntoIter, and Range are covariant over their contained type. + + LinkedList and its iterators, Iter and IntoIter are covariant over their contained type. + + str::replace now accepts a Pattern, like other string searching methods. + + Any is implemented for unsized types. + + Hash is implemented for Duration. + + Soundness fixes, may break code. See RFC 1214 for more information. + + Several bugs in the compiler's visibility calculations were fixed. + + Parsing "." as a float results in an error instead of 0. + + Borrows of closure parameters may not outlive the closure. + +------------------------------------------------------------------- +Thu Jan 20 19:28:34 UTC 2016 - i@xuzhao.net + +- Update to version 1.6.0: + + Stabilization of libcore and other library functions + + Crates.io disallows wildcards + +------------------------------------------------------------------- +Fri Oct 30 12:18:05 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.4.0: + + Several changes have been made to fix type soundness and improve the + behavior of associated types. See RFC 1214. Although we have mostly + introduced these changes as warnings this release, to become errors next + release, there are still some scenarios that will see immediate breakage. + + The str::lines and BufRead::lines iterators treat \r\n as line breaks in + addition to \n. + + Loans of 'static lifetime extend to the end of a function. + + str::parse no longer introduces avoidable rounding error when parsing + floating point numbers. Together with earlier changes to float + formatting/output, "round trips" like f.to_string().parse() now preserve + the value of f exactly. Additionally, leading plus signs are now accepted. + +------------------------------------------------------------------- +Sat Oct 17 19:12:53 UTC 2015 - mvyskocil@opensuse.org + +- Split the gdb support to rust-gdb subpackage + +------------------------------------------------------------------- +Fri Sep 18 07:00:06 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.3.0: + + API stabilization, including the new Duration API and + enhancements to Error and Hash/Hasher. + + The substring matcher now uses a more efficient algorithm. + + There were improvements to zero filling that speed up + Vec::resize and Read::read_to_end. + + The implementation of Read::read_to_end has been specialized + for stdin and File, resulting in additional speedups. + + The PartialEq implementation on slices is now much faster. +- Packaging: renamed source package to rustc to match upstream + +------------------------------------------------------------------- +Wed Aug 12 13:30:10 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.2.0: + + An across-the-board improvement to real-world compiler performance. + Representative crates include hyper (compiles 1.16x faster), html5ever + (1.62x faster), regex (1.32x faster) and rust-encoding (1.35x faster). You + can explore some of this performance data at Nick Cameron’s preliminary + tracking site, using dates 2015-05-15 to 2015-06-25. + + Parallel codegen is now working, and produces a 33% speedup when + bootstrapping on a 4 core machine. Parallel codegen is particularly useful + for debug builds, since it prevents some optimizations; but it can also be + used with optimizations as an effective -O1 flag. It can be activated + by passing -C codegen-units=N to rustc, where N is the desired number + of threads. + +------------------------------------------------------------------- +Mon Jul 27 18:57:08 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.1.0: + + The std::fs module has been expanded to expand the set of + functionality exposed: + * DirEntry now supports optimizations like file_type and + metadata which don't incur a syscall on some platforms. + * A symlink_metadata function has been added. + * The fs::Metadata structure now lowers to its OS counterpart, + providing access to all underlying information. + + The compiler now contains extended explanations of many errors. + When an error with an explanation occurs the compiler suggests + using the --explain flag to read the explanation. Error + explanations are also available online. + + Thanks to multiple improvements to type checking, as well as other + work, the time to bootstrap the compiler decreased by 32%. +- drop tar_scm service and use source urls + +------------------------------------------------------------------- +Fri May 15 21:42:38 UTC 2015 - kgronlund@suse.com + +- Update to version 1.0.0: + + lint: deny transmuting from immutable to mutable, since it's undefined behavior + + std: update select internals to not use mutable transmuting + + std: Remove index notation on slice iterators + + std: Destabilize io::BufStream + + Make RwLock::try_write try to obtain a write lock + + std: Remove addition on vectors for now + + thread: right now you can't actually set those printers + + Fix #24872, XSS in docs not found page. + + Update AUTHORS.txt and RELEASES.md for 1.0 + + std: Mark `mem::forget` as a safe function + + core: impl AsRef<[u8]> for str + + collections: impl AsRef<[u8]> for String + + collections: change bounds of SliceConcatExt implementations to use Borrow instead of AsRef + + Fix invalid references due to the automated string substitution + + dropck: must assume `Box` has a destructor of interest. + +------------------------------------------------------------------- +Thu May 07 11:05:47 UTC 2015 - opensuse-packaging@opensuse.org + +- Rename binary package to rust +- Add build for i586 +- Only run fdupes on SUSE builds +- Changed version format +- Update to version 1.0.0~beta4+git.1430848988.f873dc5: + + Introduce a `FreeRegionMap` data structure. (#22779) + + Fix #20616 + + std: Fix inheriting standard handles on windows + + Fix #24895. + + Fix zero-normalization of the pos of a `MultiByteChar`. + + lint for mixing `#[repr(C)]` with an impl of `Drop`. + + Bump prerelease version to .4 + + Add downcasting to std::error::Error + +------------------------------------------------------------------- +Wed May 6 17:08:50 UTC 2015 - matwey.kornilov@gmail.com + +- Format spec file + +------------------------------------------------------------------- +Wed Apr 29 13:07:54 UTC 2015 - opensuse-packaging@opensuse.org + +- Update to version 1.0.0beta3+git.1429985089.5241bf9: + + Update Windows caveats + + Utilize if..let for get_mut doc-comment examples + + Indicate keywords are code-like in Fuse::reset_fuse doc comment + + doc: improve/fix 'let' FAQ + + Fix broken links in the docs + + Indicate None is code-like in doc comments + + Fixed typo in hash_map::Entry documentation + + Remove an unused import on windows + +------------------------------------------------------------------- +Wed Apr 29 12:56:15 UTC 2015 - kgronlund@suse.com + +- Version 1.0.0-beta3. + + + diff --git a/rust.spec b/rust.spec new file mode 100644 index 0000000..a74cf61 --- /dev/null +++ b/rust.spec @@ -0,0 +1,153 @@ +# +# spec file for package rust +# +# Copyright (c) 2015 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 +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# +%global rustc_version 1_10 +%global rustc_build_version 1_9 + +Name: rust +Version: 1.10.0 +Release: 0 +Summary: A systems programming language +License: MIT or Apache-2.0 +Group: Development/Languages/Other +Url: http://www.rust-lang.org +# 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 + +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +BuildRequires: curl +%if 0%{?suse_version} +BuildRequires: fdupes +%endif +BuildRequires: gcc-c++ +BuildRequires: python +BuildRequires: cmake + +%description +Rust is a systems programming language focused on three goals: +safety, speed, and concurrency. It maintains these goals without +having a garbage collector, making it a useful language for a +number of use cases other languages are not good at: embedding +in other languages, programs with specific space and time +requirements, and writing low-level code, like device drivers +and operating systems. It improves on current languages targeting +this space by having a number of compile-time safety checks +that produce no runtime overhead, while eliminating all +data races. Rust also aims to achieve "zero-cost abstractions", +even though some of these abstractions feel like those of a +high-level language. Even then, Rust still allows precise +control like a low-level language would. + +%package doc +Summary: Rust documentation +Group: Development/Languages/Other + +%description doc +Documentation for the Rust language. + +%package -n rust-%{rustc_version}-gdb +Summary: Gdb integration for rust binaries +Group: Development/Languages/Other +Provides: rustc:/usr/bin/rust-gdb +Supplements: packageand(%{name}:gdb) + +%description -n rust-%{rustc_version}-gdb +This subpackage provides pretty printers and a wrapper script for +invoking gdb on rust binaries. + +%prep +%setup -q -n rustc-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +%build +export CPPFLAGS="$RPM_OPT_FLAGS" # eliminate complain from RPMlint +./configure \ + --enable-local-rust \ + --local-rust-root=%{_prefix} \ + --prefix=%{_prefix} +make %{?_smp_mflags} + +%install +make %{?_smp_mflags} install DESTDIR=$RPM_BUILD_ROOT + +# Remove executable permission from HTML documentation +# to prevent RPMLINT errors. +chmod -R -x+X $RPM_BUILD_ROOT%{_prefix}/share/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 + +# Remove lockfile to avoid errors. +rm $RPM_BUILD_ROOT%{_prefix}/share/doc/rust/html/.lock + +# allow parallel installation of docs +mv %{buildroot}%{_prefix}/share/doc/rust \ + %{buildroot}%{_prefix}/share/doc/rust-%{version} + +%if 0%{?suse_version} +%fdupes $RPM_BUILD_ROOT%{_prefix} +%endif + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%{_bindir}/rustc +%{_bindir}/rustdoc +%{_mandir}/*/rust* +%exclude %{_prefix}/share/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 + +%files doc +%defattr(-,root,root) +%{_prefix}/share/doc/rust-%{version} + +%files -n rust-%{rustc_version}-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 + +%changelog diff --git a/rustc-1.10.0-src.tar.gz b/rustc-1.10.0-src.tar.gz new file mode 100644 index 0000000..ea37dd9 --- /dev/null +++ b/rustc-1.10.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4015aacf4f6d8a8239253c4da46e7abaa8584f8214d1828d2ff0a8f56176869 +size 25967780