forked from LBRYCommunity/lbry-sdk
Merge branch 'linux-install' into development
* linux-install: bunch of changes, ready to roll add ubuntu package scripts, lbry:// uri handler
This commit is contained in:
commit
994dc9ff33
5 changed files with 130 additions and 0 deletions
5
packaging/ubuntu/README.md
Normal file
5
packaging/ubuntu/README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# package scripts
|
||||||
|
|
||||||
|
How to build LBRY packages.
|
||||||
|
|
||||||
|
For best results, run on a fresh image.
|
32
packaging/ubuntu/lbry
Executable file
32
packaging/ubuntu/lbry
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
urlencode() {
|
||||||
|
local LANG=C
|
||||||
|
local length="${#1}"
|
||||||
|
for (( i = 0; i < length; i++ )); do
|
||||||
|
local c="${1:i:1}"
|
||||||
|
case $c in
|
||||||
|
[a-zA-Z0-9.~_-]) printf "$c" ;;
|
||||||
|
*) printf '%%%02X' "'$c" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
if [ -z "$(pgrep lbrynet-daemon)" ]; then
|
||||||
|
echo "running lbrynet-daemon..."
|
||||||
|
$DIR/lbrynet-daemon 2>&1 >> "$HOME/.lbrynet/daemon.log" &
|
||||||
|
sleep 3 # let the daemon load before connecting
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARG=${1:-}
|
||||||
|
|
||||||
|
if [ -z "$ARG" ]; then
|
||||||
|
URL=""
|
||||||
|
else
|
||||||
|
URL="view?name=$(urlencode "$(echo "$ARG" | cut -c 8-)")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
/usr/bin/xdg-open "http://localhost:5279/$URL"
|
11
packaging/ubuntu/lbry-init.conf
Normal file
11
packaging/ubuntu/lbry-init.conf
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
description "LBRY Daemon"
|
||||||
|
|
||||||
|
#start on (local-filesystems and net-device-up IFACE=eth0)
|
||||||
|
stop on runlevel [016]
|
||||||
|
|
||||||
|
#expect fork
|
||||||
|
|
||||||
|
respawn
|
||||||
|
respawn limit 5 20
|
||||||
|
|
||||||
|
exec /usr/share/python/lbrynet/bin/lbrynet-daemon
|
15
packaging/ubuntu/lbry.desktop
Normal file
15
packaging/ubuntu/lbry.desktop
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=0.2
|
||||||
|
Name=LBRY
|
||||||
|
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
|
||||||
|
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
|
||||||
|
GenericName=Filesharing
|
||||||
|
# Gnome and KDE 3 uses Comment.
|
||||||
|
Comment=Stream. Share. Earn.
|
||||||
|
#Exec=/usr/bin/xdg-open http://localhost:5279/view?name=%U
|
||||||
|
Exec=/usr/share/python/lbrynet/bin/lbry %U
|
||||||
|
Terminal=false
|
||||||
|
Icon=/usr/share/python/lbrynet/lbrynet/lbrynet_gui/lbry-dark-icon.ico
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;Internet;Filesharing
|
||||||
|
MimeType=x-scheme-handler/lbry;
|
67
packaging/ubuntu/ubuntu_package_setup.sh
Executable file
67
packaging/ubuntu/ubuntu_package_setup.sh
Executable file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Tested on fresh Ubuntu 14.04 install.
|
||||||
|
|
||||||
|
# wget https://raw.githubusercontent.com/lbryio/lbry/master/packaging/ubuntu/ubuntu_package_setup.sh
|
||||||
|
# bash ubuntu_package_setup.sh master
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
BRANCH=${1:-master}
|
||||||
|
|
||||||
|
BUILD_DIR="lbry-build-$(date +%Y%m%d-%H%M%S)"
|
||||||
|
mkdir "$BUILD_DIR"
|
||||||
|
cd "$BUILD_DIR"
|
||||||
|
|
||||||
|
# get the required OS packages
|
||||||
|
sudo add-apt-repository -y ppa:spotify-jyrki/dh-virtualenv
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y build-essential git python-dev libffi-dev libssl-dev libgmp3-dev dh-virtualenv debhelper
|
||||||
|
|
||||||
|
# need a modern version of pip (more modern than ubuntu default)
|
||||||
|
wget https://bootstrap.pypa.io/get-pip.py
|
||||||
|
sudo python get-pip.py
|
||||||
|
rm get-pip.py
|
||||||
|
sudo pip install make-deb
|
||||||
|
|
||||||
|
# check out LBRY
|
||||||
|
git clone https://github.com/lbryio/lbry.git --branch "$BRANCH"
|
||||||
|
|
||||||
|
# build packages
|
||||||
|
(
|
||||||
|
cd lbry
|
||||||
|
make-deb
|
||||||
|
dpkg-buildpackage -us -uc
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
### insert our extra files
|
||||||
|
|
||||||
|
# extract .deb
|
||||||
|
PACKAGE="$(ls | grep '.deb')"
|
||||||
|
ar vx "$PACKAGE"
|
||||||
|
mkdir control data
|
||||||
|
tar -xvzf control.tar.gz --directory control
|
||||||
|
tar -xvJf data.tar.xz --directory data
|
||||||
|
|
||||||
|
# add files
|
||||||
|
function addfile() {
|
||||||
|
FILE="$1"
|
||||||
|
TARGET="$2"
|
||||||
|
mkdir -p "$(dirname "data/$TARGET")"
|
||||||
|
cp "$FILE" "data/$TARGET"
|
||||||
|
echo "$(md5sum "data/$TARGET" | cut -d' ' -f1) $TARGET" >> control/md5sums
|
||||||
|
}
|
||||||
|
PACKAGING_DIR='lbry/packaging/ubuntu'
|
||||||
|
addfile "$PACKAGING_DIR/lbry" usr/share/python/lbrynet/bin/lbry
|
||||||
|
addfile "$PACKAGING_DIR/lbry.desktop" usr/share/applications/lbry.desktop
|
||||||
|
#addfile lbry/packaging/ubuntu/lbry-init.conf etc/init/lbry.conf
|
||||||
|
|
||||||
|
# repackage .deb
|
||||||
|
sudo chown -R root:root control data
|
||||||
|
tar -cvzf control.tar.gz -C control .
|
||||||
|
tar -cvJf data.tar.xz -C data .
|
||||||
|
sudo chown root:root debian-binary control.tar.gz data.tar.xz
|
||||||
|
ar r "$PACKAGE" debian-binary control.tar.gz data.tar.xz
|
||||||
|
|
||||||
|
# TODO: we can append to data.tar instead of extracting it all and recompressing
|
Loading…
Add table
Reference in a new issue