network/go-ipfs: Added (InterPlanetary File System).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Marcin Szychowski 2019-01-04 10:27:24 +07:00 committed by Willy Sudiarto Raharjo
parent 5076df43f7
commit c642db8db6
No known key found for this signature in database
GPG Key ID: 887B8374D7333381
4 changed files with 139 additions and 0 deletions

30
network/go-ipfs/README Normal file
View File

@ -0,0 +1,30 @@
IPFS (InterPlanetary File System) is a hypermedia p2p protocol suite
that has HTTP gateway built in. It can be used to store any kind of
immutable datasets, organized in files, directories, and commits.
IPFS objects are addressed by base58-encoded content hash. Thus,
identical objects are deduplicated across entire Internet and can be
retreived by hash from any host that has a copy. Immutability of data
and peer-to-peer nature make IPFS ideal medium for archival storage,
as long as there is at least one copy of given asset somewhere. People
can support their friends by serving copy of their content for them by
simply retreiving given objects from IPFS node they run, so it could be
cached locally.
Since objects' addresses are derived from their content, there's no way
to create IPFS hashes for mutable objects, although human-friendly
aliases can be published via IPNS (Inter-Planetary Name System), or in
DNS as dnslink TXT records.
Since p2p networks are untrusted by its very nature, IPFS creators
discuss various algorithms to prevent abuse in IPFS white paper.
There is several number of IPFS gateways accessible on the Internet,
project website data (for instance) can be retreived from any of them
(as ipfs.io website data is stored entirely on IPFS); although
insist not to use it for mission critical applications, since it is
still considered alpha quality.
This package should also be considered experimental, since it lacks
service start/stop scripts, documentation, and source code. It is here
to allow Slackers to play with IPFS.

View File

@ -0,0 +1,80 @@
#!/bin/sh
# Slackware build script for go-ipfs
# Copyright 2019 Marcin Szychowski
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=go-ipfs
VERSION=${VERSION:-0.4.18}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
case $ARCH in
i?86) IPFSARCH=386 ;;
x86_64) IPFSARCH=amd64 ;;
*) IPFSARCH=$ARCH ;;
esac
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM
tar xvf $CWD/${PRGNAM}_v${VERSION}_linux-$IPFSARCH.tar.gz
cd $PRGNAM
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
find . -print0 | xargs -0 file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION $PKG/usr/bin
cp -a * \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cp -a $CWD/README $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
rm $PKG/usr/doc/$PRGNAM-$VERSION/build-log
mv $PKG/usr/doc/$PRGNAM-$VERSION/ipfs $PKG/usr/bin/
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -0,0 +1,10 @@
PRGNAM="go-ipfs"
VERSION="0.4.18"
HOMEPAGE="https://ipfs.io/"
DOWNLOAD="https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-386.tar.gz"
MD5SUM="02496071d5d5ff523e9d029af7f2edc2"
DOWNLOAD_x86_64="https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-amd64.tar.gz"
MD5SUM_x86_64="8813334b73327ed5fad50ff357f03dc8"
REQUIRES=""
MAINTAINER="Marcin Szychowski"
EMAIL="szycha@gmail.com"

View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
go-ipfs: go-ipfs (InterPlanetary File System)
go-ipfs:
go-ipfs: IPFS is a peer-to-peer hypermedia protocol to make the web faster,
go-ipfs: safer, and more open. It combines ideas from Git, BitTorrent, SFS,
go-ipfs: Kademlia, and more in order to build a p2p network that allow anybody
go-ipfs: to publish immutable objects. Find out more at https://ipfs.io/
go-ipfs:
go-ipfs: go-ipfs is the reference implementation of IPFS and includes: core,
go-ipfs: daemon server, command line tooling, HTTP API for node controlling,
go-ipfs: HTTP gateway for serving content to HTTP browsers. IPNS aliases can
go-ipfs: be created with ipfs command, too.