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
This commit is contained in:
Michal Vyskocil 2016-09-06 16:11:34 +00:00 committed by Git OBS Bridge
commit 029d4d490e
10 changed files with 537 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,40 @@
From 706b2253ff96a46ff98d347842a122299c3eb5cd Mon Sep 17 00:00:00 2001
From: Daniel Firth <locallycompact@gmail.com>
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

View File

@ -0,0 +1,26 @@
From 89ea75c4545bbc870712571a1c00b2f5b436939a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= <krig@koru.se>
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

View File

@ -0,0 +1,25 @@
From 99735fbdb242e1d853456913266944ff6e1f24f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= <krig@koru.se>
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

23
_constraints Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<memory>
<size unit="M">4000</size>
</memory>
<disk>
<size unit="G">40</size>
</disk>
</hardware>
<overwrite>
<conditions>
<arch>armv6l</arch>
<arch>armv7l</arch>
</conditions>
<hardware>
<memory>
<size unit="M">768</size>
</memory>
</hardware>
</overwrite>
</constraints>

5
rust-rpmlintrc Normal file
View File

@ -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")

238
rust.changes Normal file
View File

@ -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 Camerons 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<Trait + 'a>` 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.

153
rust.spec Normal file
View File

@ -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

3
rustc-1.10.0-src.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a4015aacf4f6d8a8239253c4da46e7abaa8584f8214d1828d2ff0a8f56176869
size 25967780