Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150105925
D2799.id6499.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D2799.id6499.diff
View Options
Index: devel/Makefile
===================================================================
--- devel/Makefile
+++ devel/Makefile
@@ -193,6 +193,7 @@
SUBDIR += caf
SUBDIR += calibrator
SUBDIR += capstone
+ SUBDIR += cargo
SUBDIR += cask
SUBDIR += catch
SUBDIR += cbind
Index: devel/cargo/Makefile
===================================================================
--- /dev/null
+++ devel/cargo/Makefile
@@ -0,0 +1,130 @@
+# Created by: Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= cargo
+PORTVERSION= 0.3.0.20150612
+CATEGORIES= devel
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Rust's Package Manager
+# ' <-- Help Vim syntax hilighting...
+
+LICENSE= APACHE20 \
+ MIT
+LICENSE_COMB= dual
+LICENSE_FILE= ${WRKSRC}/LICENSE-APACHE \
+ ${WRKSRC}/LICENSE-MIT
+
+# The following files are required:
+#
+# GH:src
+# This is the source of Cargo, taken from GitHub.
+#
+# LOCAL/dumbbell:bootstrap
+# Like Rust, this is a prebuilt "cargo" used to bootstrap it, because
+# Cargo is a standard Rust package itself.
+#
+# LOCAL/dumbbell:registry
+# Cargo clones several Git repositories for its dependencies and
+# caches them in its "registry". This is a archive of this registry so
+# nothing is downloaded during the build.
+#
+# GH:rust_installer
+# This is a collection of mainly shell scripts which are used to
+# install Cargo.
+
+MASTER_SITES= LOCAL/dumbbell:bootstrap \
+ LOCAL/dumbbell:registry \
+ https://people.freebsd.org/~dumbbell/rust/:bootstrap \
+ https://people.freebsd.org/~dumbbell/rust/:registry
+
+DISTFILES= ${CARGO_BOOT}:bootstrap \
+ ${CARGO_REGISTRY}:registry
+EXTRACT_ONLY= ${DISTNAME}${_GITHUB_EXTRACT_SUFX} \
+ ${DISTFILE_rust_installer} \
+ ${CARGO_REGISTRY}
+
+USE_GITHUB= yes
+GH_ACCOUNT= rust-lang
+GH_PROJECT= ${PORTNAME} \
+ rust-installer:rust_installer
+GH_TAGNAME= ae8b752b4e \
+ e54d482:rust_installer
+
+CARGO_BOOT= ${PORTNAME}-bootstrap-0.2.0.20150503-${CARGO_BOOT_SIG}${EXTRACT_SUFX}
+CARGO_BOOT_SIG= x86_64-unknown-freebsd
+CARGO_REGISTRY= ${DISTNAME:S/${GH_ACCOUNT}-${PORTNAME}/${PORTNAME}-registry/}${EXTRACT_SUFX}
+RUST_INSTALLER= ${GH_ACCOUNT}-rust-installer-${PORTVERSION}-e54d4823d26cdb3f98e5a1b17e1c257cd329aa61_GH0${EXTRACT_SUFX}
+
+USES= gmake python:2,build pkgconfig
+
+BUILD_DEPENDS= ${LOCALBASE}/bin/cmake:${PORTSDIR}/devel/cmake \
+ rustc:${PORTSDIR}/lang/rust-nightly
+LIB_DEPENDS= libssh2.so:${PORTSDIR}/security/libssh2 \
+ libcurl.so:${PORTSDIR}/ftp/curl
+
+# FIXME: Don't add rust as a runtime dependency. As we need rust-nightly
+# to build Cargo, the same version would be pulled by installing Cargo,
+# preventing its use with the stable version of Rust.
+# RUN_DEPENDS= rustc:${PORTSDIR}/lang/rust
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS= --mandir=${MANPREFIX}/man
+MAKE_ENV+= LD_LIBRARY_PATH="${WRKSRC}/target/snapshot/cargo/lib"
+
+# git log -1 --date=short --pretty=format:'%cd'
+CFG_VER_DATE= 2015-06-12
+# git rev-parse --short HEAD
+CFG_VER_HASH= ${GH_TAGNAME}
+
+.if defined(BATCH) || defined(PACKAGE_BUILDING)
+MAKE_ARGS+= VERBOSE=1
+.endif
+
+MAKE_JOBS_UNSAFE= yes
+
+.include <bsd.port.pre.mk>
+
+post-extract:
+ @(${RMDIR} ${WRKSRC}/src/rust-installer && \
+ ${MV} ${WRKSRC_rust_installer} ${WRKSRC}/src/rust-installer)
+ @${MKDIR} ${WRKSRC}/target/dl
+ ${LN} -sf ${DISTDIR}/${CARGO_BOOT} ${WRKSRC}/target/dl/${PORTNAME}-nightly-${CARGO_BOOT_SIG}${EXTRACT_SUFX}
+
+post-patch:
+ ${REINPLACE_CMD} \
+ -e 's|^CFG_VER_DATE =.*|CFG_VER_DATE = ${CFG_VER_DATE}|' \
+ -e 's|^CFG_VER_HASH =.*|CFG_VER_HASH = ${CFG_VER_HASH}|' \
+ ${WRKSRC}/Makefile.in
+
+# In case the previous "make stage" failed, this ensures rust's
+# install.sh won't backup previously staged files before reinstalling
+# new ones. Otheriwe, the staging directory is polluted with unneeded
+# files.
+pre-install:
+ @if test -f ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-cargo; then \
+ ${SED} -E -e 's,^(dir|file:),${STAGEDIR},' \
+ < ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-cargo \
+ | ${XARGS} ${RM}; \
+ fi
+ @${RM} \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/components \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-cargo \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/rust-installer-version \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh
+
+post-install:
+ @${RM} ${STAGEDIR}${PREFIX}/lib/rustlib/install.log
+ @${MV} ${STAGEDIR}${PREFIX}/share/man/man1/cargo.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/cargo.1
+ @${REINPLACE_CMD} -e 's|${STAGEDIR}||' \
+ -e 's|share/man/man1/cargo\.1|man/man1/cargo.1.gz|' \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-cargo
+ @${RM} ${STAGEDIR}${PREFIX}/lib/rustlib/manifest-cargo.bak
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/cargo
+ @${RM} \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/components \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/rust-installer-version \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh
+
+.include <bsd.port.post.mk>
Index: devel/cargo/distinfo
===================================================================
--- /dev/null
+++ devel/cargo/distinfo
@@ -0,0 +1,8 @@
+SHA256 (cargo-bootstrap-0.2.0.20150503-x86_64-unknown-freebsd.tar.gz) = 70ccf0494c4d71104f2f9328d480ef4d71547b811ca382a859a77c01c0b023ee
+SIZE (cargo-bootstrap-0.2.0.20150503-x86_64-unknown-freebsd.tar.gz) = 5391291
+SHA256 (cargo-registry-0.3.0.20150612-ae8b752b4e_GH0.tar.gz) = 13b44725892d1a2c20666fe4986b8e3fc077b59fb921af413a03d04c38a0d2e5
+SIZE (cargo-registry-0.3.0.20150612-ae8b752b4e_GH0.tar.gz) = 26233500
+SHA256 (rust-lang-cargo-0.3.0.20150612-ae8b752b4e_GH0.tar.gz) = 16fefddd6907f9198371e42535c670c441717c490d65c0530636fb08c3333332
+SIZE (rust-lang-cargo-0.3.0.20150612-ae8b752b4e_GH0.tar.gz) = 344102
+SHA256 (rust-lang-rust-installer-e54d482_GH0.tar.gz) = a4a6f2cf9c85880190a45d74b4a74c52d620a3522f2b3e1715ea01179cba3aba
+SIZE (rust-lang-rust-installer-e54d482_GH0.tar.gz) = 14598
Index: devel/cargo/files/patch-configure
===================================================================
--- /dev/null
+++ devel/cargo/files/patch-configure
@@ -0,0 +1,12 @@
+--- configure.orig 2015-05-02 23:16:20 UTC
++++ configure
+@@ -341,8 +341,7 @@ validate_opt
+
+ step_msg "looking for build programs"
+
+-probe_need CFG_CURLORWGET curl wget
+-probe_need CFG_PYTHON python
++probe_need CFG_PYTHON python2.7 python2 python
+ probe_need CFG_CC cc gcc clang
+
+ if [ ! -z "${CFG_LOCAL_RUST_ROOT}" ]; then
Index: devel/cargo/files/patch-src_snapshots.txt
===================================================================
--- /dev/null
+++ devel/cargo/files/patch-src_snapshots.txt
@@ -0,0 +1,10 @@
+--- src/snapshots.txt.orig 2015-05-02 23:16:20 UTC
++++ src/snapshots.txt
+@@ -5,6 +5,7 @@
+ macos-x86_64 1f7008a6ec860e2bc7580e71bdf320ac518ddeb8
+ winnt-i386 8c0088ae9e47133b976f7ad155c50ca9abb2906c
+ winnt-x86_64 01ae9ea568211a20f048e7b00d902d6fe72d1627
++ freebsd-x86_64 1af86a56acccf28ab3e5674b05dc5c0efd7a8bc8
+
+ 2015-03-26
+ linux-i386 d8b59fb0a0e8222b1753370f1d7c91dcb9697b37
Index: devel/cargo/pkg-descr
===================================================================
--- /dev/null
+++ devel/cargo/pkg-descr
@@ -0,0 +1,4 @@
+Cargo is Cargo, Rust's Package Manager. Cargo downloads your Rust
+project’s dependencies and compiles your project.
+
+WWW: http://doc.crates.io/
Index: devel/cargo/pkg-plist
===================================================================
--- /dev/null
+++ devel/cargo/pkg-plist
@@ -0,0 +1,10 @@
+bin/cargo
+etc/bash_completion.d/cargo
+lib/rustlib/manifest-cargo
+man/man1/cargo.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE-APACHE
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE-MIT
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE-THIRD-PARTY
+%%PORTDOCS%%%%DOCSDIR%%/README.md
+share/zsh/site-functions/_cargo
+@dir share/man/man1
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 30, 10:20 AM (22 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30584005
Default Alt Text
D2799.id6499.diff (7 KB)
Attached To
Mode
D2799: devel/cargo: New port for Rust's package manager
Attached
Detach File
Event Timeline
Log In to Comment