<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[123559] trunk/dports/lang/rust/Portfile</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/123559">123559</a></dd>
<dt>Author</dt> <dd>larryv@macports.org</dd>
<dt>Date</dt> <dd>2014-08-10 16:44:11 -0700 (Sun, 10 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>rust: Use a Git checkout to fetch source.

Rust is a fast-moving project that currently expects its users to be on
the bleeding edge, so we should start providing frequent development
snapshots instead of releases, which go out of date very quickly.

We'll continue treating the snapshot compiler as a distfile so that it's
checksummed and mirrored as usual.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportslangrustPortfile">trunk/dports/lang/rust/Portfile</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportslangrustPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/lang/rust/Portfile (123558 => 123559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/lang/rust/Portfile        2014-08-10 23:44:09 UTC (rev 123558)
+++ trunk/dports/lang/rust/Portfile        2014-08-10 23:44:11 UTC (rev 123559)
</span><span class="lines">@@ -4,9 +4,9 @@
</span><span class="cx"> PortSystem          1.0
</span><span class="cx"> PortGroup           active_variants 1.1
</span><span class="cx"> PortGroup           compiler_blacklist_versions 1.0
</span><ins>+PortGroup           github 1.0
</ins><span class="cx"> 
</span><del>-name                rust
-version             0.11.0
</del><ins>+github.setup        rust-lang rust 0.11.0
</ins><span class="cx"> categories          lang devel
</span><span class="cx"> platforms           darwin
</span><span class="cx"> supported_archs     i386 x86_64
</span><span class="lines">@@ -33,13 +33,38 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-master_sites        http://static.rust-lang.org/dist:dist
-distfiles           ${distname}${extract.suffix}:dist
-checksums           ${distname}${extract.suffix} \
-                        rmd160  09f2fd0f5da3a7851b1984602d2acd0304764618 \
-                        sha256  d1b3e36448bf12b8c9289024df416de10774b6d3235d7b1d22b248ef634411ba
</del><ins>+worksrcdir              ${github.project}
</ins><span class="cx"> 
</span><del>-# Select the snapshot compiler; see src/snapshots.txt in distribution.
</del><ins>+# To take advantage of distfile mirroring and checksumming for the
+# snapshot compiler, we let base treat it as the distfile and deal with
+# the actual Rust source &quot;manually&quot;.
+
+depends_fetch-append    bin:git:git
+pre-fetch {
+    # Clone repository.
+    set cmdstring &quot;${git.cmd} clone -q ${git.url} \&quot;${worksrcpath}\&quot; 2&gt;&amp;1&quot;
+    ui_debug &quot;Executing ${cmdstring}&quot;
+    if {[catch {system ${cmdstring}} -]} {
+        return -code error [msgcat::mc &quot;Git clone failed&quot;]
+    }
+    set dirs &quot;--git-dir=\&quot;${worksrcpath}/.git\&quot; --work-tree=\&quot;${worksrcpath}\&quot;&quot;
+    # Check out branch.
+    set cmdstring &quot;${git.cmd} ${dirs} checkout -q ${git.branch} 2&gt;&amp;1&quot;
+    ui_debug &quot;Executing $cmdstring&quot;
+    if {[catch {system -W ${worksrcpath} ${cmdstring}} -]} {
+        return -code error [msgcat::mc &quot;Git checkout failed&quot;]
+    }
+    # Update submodules.
+    set cmdstring &quot;${git.cmd} ${dirs} submodule update --init 2&gt;&amp;1&quot;
+    ui_debug &quot;Executing $cmdstring&quot;
+    if {[catch {system -W ${worksrcpath} ${cmdstring}} -]} {
+        return -code error [msgcat::mc &quot;Git submodule update failed&quot;]
+    }
+}
+
+# Download the snapshot compiler; see src/snapshots.txt in the Rust
+# distribution.
+master_sites            http://static.rust-lang.org/stage0-snapshots
</ins><span class="cx"> set stage0(distdir)     rust-stage0
</span><span class="cx"> set stage0(date)        2014-06-21
</span><span class="cx"> set stage0(rev)         db9af1d
</span><span class="lines">@@ -47,35 +72,18 @@
</span><span class="cx"> set stage0(hash)        [expr {${configure.build_arch} eq &quot;i386&quot; ?
</span><span class="cx">                                 &quot;3f25b2680efbab16ad074477a19d49dcce475977&quot; :
</span><span class="cx">                                 &quot;4a8c2e1b7634d73406bac32a1a97893ec3ed818d&quot;}]
</span><del>-set stage0(distfile)    [join &quot;rust stage0 ${stage0(date)}
</del><ins>+use_bzip2               yes
+distname                [join &quot;rust stage0 ${stage0(date)}
</ins><span class="cx">                                            ${stage0(rev)}
</span><span class="cx">                                            ${stage0(platform)}
</span><del>-                                           ${stage0(hash)}&quot; -].tar.bz2
-
-master_sites-append     http://static.rust-lang.org/stage0-snapshots:stage0
-distfiles-append        ${stage0(distfile)}:stage0
</del><ins>+                                           ${stage0(hash)}&quot; -]
</ins><span class="cx"> switch ${configure.build_arch} {
</span><del>-    i386 {
-        set stage0(rmd160)  7c344247d62a417d703de720ac01881bcbf4fc25
-        set stage0(sha256)  42cef980dee52ad2cbd07795df07d3a3e96d013e08ea5a83cd54c266eecab698
-    }
-    default {
-        set stage0(rmd160)  6c7da644b90a567c615d83ff4af99b411a81a419
-        set stage0(sha256)  2c63e45ae276812f4429389584cf1eb0a9c0ef182f6f9e15a2731d3e30c03ea8
-    }
</del><ins>+    i386    {checksums  rmd160  7c344247d62a417d703de720ac01881bcbf4fc25 \
+                        sha256  42cef980dee52ad2cbd07795df07d3a3e96d013e08ea5a83cd54c266eecab698}
+    default {checksums  rmd160  6c7da644b90a567c615d83ff4af99b411a81a419 \
+                        sha256  2c63e45ae276812f4429389584cf1eb0a9c0ef182f6f9e15a2731d3e30c03ea8}
</ins><span class="cx"> }
</span><del>-checksums-append        ${stage0(distfile)} \
-                            rmd160  ${stage0(rmd160)} \
-                            sha256  ${stage0(sha256)}
</del><span class="cx"> 
</span><del>-depends_extract             bin:bzip2:bzip2
-extract.only-delete         ${stage0(distfile)}
-post-extract {
-    set expand &quot;bzip2 -dc ${distpath}/${stage0(distfile)}&quot;
-    set untar &quot;${portutil::autoconf::tar_command} -xf -&quot;
-    system -W ${workpath} &quot;${expand} | ${untar}&quot;
-}
-
</del><span class="cx"> # Only use compilers supported by upstream
</span><span class="cx"> # (https://github.com/rust-lang/rust#building-from-source).
</span><span class="cx"> compiler.blacklist  {clang &lt; 211} \
</span></span></pre>
</div>
</div>

</body>
</html>