Magellan Linux

Annotation of /trunk/extras/rust/rust-1.23.0-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30458 - (hide annotations) (download)
Tue Jan 23 15:14:23 2018 UTC (6 years, 4 months ago) by niro
File size: 4022 byte(s)
auto added: ver bump to 1.23.0-r2
1 niro 30458 # $Id$
2    
3     PNAME="rust"
4     PVER="1.23.0"
5     PBUILD="r2"
6    
7     PCAT="dev-lang"
8    
9     DESCRIPTION="Systems programming language focused on safety, speed and concurrency."
10     HOMEPAGE="https://www.rust-lang.org/"
11    
12     # enable bootstrap of rust with prebuild binary rust
13     # 0=no, 1=yes
14     BOOTSTRAP=1
15    
16     DEPEND=">= sys-libs/llvm-libs-5.0"
17    
18     SDEPEND=">= sys-dev/llvm-5.0
19     >= dev-lang/perl-5.26
20     >= dev-lang/python-2.7
21     >= dev-libs/libffi-3.2
22     >= dev-libs/jemalloc-5
23     >= net-misc/curl-7
24     >= dev-util/cmake-3.10"
25    
26     if [[ ${BOOTSTRAP} = 0 ]]
27     then
28     SDEPEND+="
29     >= dev-lang/rust-1.22"
30     fi
31    
32     SRCFILE="${PNAME}c-${PVER}-src.tar.gz"
33     SRCDIR="${BUILDDIR}/${PNAME}c-${PVER}-src"
34    
35     msetfeature "!check"
36     sminclude mbuild mtools
37    
38     SRC_URI=(
39     https://static.rust-lang.org/dist/${SRCFILE}
40     mirror://${PNAME}/${SRCFILE}
41     )
42    
43     UP2DATE="updatecmd https://www.rust-lang.org/en-US/other-installers.html | grep 'rustc-.*-src.*' | sed 's:-src::g' | highesttarball gz"
44    
45     if [[ ${BOOTSTRAP} = 1 ]]
46     then
47     # see src/stage0.txt
48     RUSTBIN_PVER="1.22.0"
49     RUSTBIN_DATE="2017-11-22"
50     RUSTBIN_SRCFILE_x86_64="rustc-${RUSTBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz"
51     RUSTBIN_SRCFILE_x86="rustc-${RUSTBIN_PVER}-i686-unknown-linux-gnu.tar.gz"
52     RUSTBIN_SRCFILE="$(marchsrcfile RUSTBIN_SRCFILE)"
53     RUSTSTD_SRCFILE_x86_64="rust-std-${RUSTBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz"
54     RUSTSTD_SRCFILE_x86="rust-std-${RUSTBIN_PVER}-i686-unknown-linux-gnu.tar.gz"
55     RUSTSTD_SRCFILE="$(marchsrcfile RUSTSTD_SRCFILE)"
56     CARGOBIN_PVER="0.23.0"
57     CARGOBIN_SRCFILE_x86_64="cargo-${CARGOBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz"
58     CARGOBIN_SRCFILE_x86="cargo-${CARGOBIN_PVER}-i686-unknown-linux-gnu.tar.gz"
59     CARGOBIN_SRCFILE="$(marchsrcfile CARGOBIN_SRCFILE)"
60    
61     SRC_URI+=(
62     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTBIN_SRCFILE_x86_64}
63     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTBIN_SRCFILE_x86}
64     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTSTD_SRCFILE_x86_64}
65     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTSTD_SRCFILE_x86}
66     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${CARGOBIN_SRCFILE_x86_64}
67     https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${CARGOBIN_SRCFILE_x86}
68     )
69     fi
70    
71     src_prepare()
72     {
73     munpack ${SRCFILE} || die
74    
75     if [[ ${BOOTSTRAP} = 1 ]]
76     then
77     install -d ${SRCDIR}/build/cache/${RUSTBIN_DATE} || die
78     ln -snf ${SOURCEDIR}/${PNAME}/${RUSTBIN_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die
79     ln -snf ${SOURCEDIR}/${PNAME}/${RUSTSTD_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die
80     ln -snf ${SOURCEDIR}/${PNAME}/${CARGOBIN_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die
81     fi
82     }
83    
84     src_compile()
85     {
86     cd ${SRCDIR}
87    
88     local myconf
89    
90     # enforce rust-bin chost
91     local myARCH="${ARCH}"
92     [[ ${ARCH} = i*86 ]] && myARCH=i686
93     myconf+=" --host=${myARCH}-unknown-linux-gnu --build=${myARCH}-unknown-linux-gnu"
94    
95     if [[ ${BOOTSTRAP} = 0 ]]
96     then
97     myconf+=" --enable-local-rust"
98     fi
99    
100     # configure nor working after rewrite, duplicate options are not accepted anymore
101     # not working atm due bug:
102     # --infodir=/usr/share/info
103     # --localstatedir=/var/lib
104     # --datadir=/usr/share
105     ./configure \
106     --prefix=/usr \
107     --mandir=/usr/share/man \
108     --sysconfdir=/etc \
109     --libdir=/usr/$(mlibdir) \
110     --release-channel=stable \
111     --llvm-root=/usr \
112     --enable-llvm-link-shared \
113     --jemalloc-root=/usr/$(mlibdir) \
114     --disable-codegen-tests \
115     ${myconf} \
116     || die
117    
118     # missing llvm link deps
119     export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"
120     python2 ./x.py build --verbose || die
121     }
122    
123     src_install()
124     {
125     cd ${SRCDIR}
126     mmake DESTDIR=${BINDIR} install || die
127    
128     # remove unnecessary files
129     mdelete /usr/$(mlibdir)/rustlib/components || die
130     mdelete /usr/$(mlibdir)/rustlib/manifest-rustc || die
131     mdelete /usr/$(mlibdir)/rustlib/rust-installer-version || die
132    
133     # overwrite duplicate solibs with symlinks to safe space
134     local i
135     for i in ${BINDIR}/usr/$(mlibdir)/rustlib/${ARCH}-unknown-linux-gnu/lib/*
136     do
137     mlink rustlib/${ARCH}-unknown-linux-gnu/lib/$(basename ${i}) /usr/$(mlibdir)/ || die
138     done
139    
140     minstalldocs COPYRIGHT LICENSE-* ChangeLog README* || die
141     }