Magellan Linux

Contents of /smage/trunk/extras/rust/rust-1.28.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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