Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a debian format package for Ubuntu #321

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions Builds/debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
rippled (0.23.0-0) precise; urgency=low

* Major release from Ripple Labs

-- Justin Lynn <j@jaesharp.com> Fri, 28 Mar 2014 15:51:00 -0800

rippled (0.22.0-0) precise; urgency=low

* Major release from Ripple Labs

-- Justin Lynn <j@jaesharp.com> Tue, 25 Feb 2014 14:30:00 -0800

rippled (0.16.0-1) precise; urgency=low

* Major release from Ripple Labs

-- Justin Lynn <j@jaesharp.com> Wed, 9 Oct 2013 12:49:00 -0700

rippled (0.13.0-5) precise; urgency=low

* We have to define build-arch for certain architecture targets in Soyuz, so do that.

-- Justin Lynn <j@jaesharp.com> Mon, 30 Sep 2013 07:14:28 -0700

rippled (0.13.0-4) precise; urgency=low

* We need to make the build tolerant of failures in the unit tests in order to upload to Soyuz. We need to make these unit tests available offline (without npm install)

-- Justin Lynn <j@jaesharp.com> Sun, 29 Sep 2013 21:11:00 -0700

rippled (0.13.0-3) precise; urgency=low

* Upgrade to head of develop.

-- Justin Lynn <j@jaesharp.com> Sun, 29 Sep 2013 09:57:06 -0700

rippled (0.12.0-1) UNRELEASED; urgency=low

* Initial package release.

-- Justin Lynn <j@jaesharp.com> Sat, 28 Sep 2013 16:58:51 -0700
1 change: 1 addition & 0 deletions Builds/debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8
21 changes: 21 additions & 0 deletions Builds/debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Source: rippled
Maintainer: Ripple Labs Packaging Team <packagers@ripplelabs.com>
Section: misc
Priority: optional
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 8), scons, pkg-config, ctags, libboost1.55-all-dev, protobuf-compiler, libprotobuf-dev, nodejs, libssl-dev, gcc-4.8, g++-4.8, nodejs

Package: rippled
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Reference Ripple P2P server
Ripple's rippled, reference P2P payment network server.

Package: rippled-dbg
Architecture: any
Section: debug
Depends:
rippled (= ${binary:Version}),
${misc:Depends}
Description: debugging symbols for rippled
Debug symbols for rippled
77 changes: 77 additions & 0 deletions Builds/debian/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
The accompanying files under various copyrights.

Copyright (c) 2012, 2013 Ripple Labs Inc.

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

The accompanying files incorporate work covered by the following copyright
and previous license notice:

Copyright (c) 2011 Arthur Britto, David Schwartz, Jed McCaleb,
Vinnie Falco, Bob Way, Eric Lombrozo

Some code from Raw Material Software, Ltd., provided under the terms of the
ISC License. See the corresponding source files for more details.
Copyright (c) 2013 - Raw Material Software Ltd.
Please visit http://www.juce.com

Some code from ASIO examples:
// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Some code from Bitcoin:
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2011 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.

Some code from Tom Wu:
This software is covered under the following copyright:

/*
* Copyright (c) 2003-2005 Tom Wu
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
* THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* In addition, the following condition applies:
*
* All redistributions must retain an intact copy of this copyright notice
* and disclaimer.
*/

Address all questions regarding this license to:

Tom Wu
tjw@cs.Stanford.EDU
4 changes: 4 additions & 0 deletions Builds/debian/dirs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
etc/rippled
var/lib/rippled/db
var/run/rippled
var/log/rippled
2 changes: 2 additions & 0 deletions Builds/debian/install
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build/rippled usr/bin
doc/rippled.cfg etc/rippled
44 changes: 44 additions & 0 deletions Builds/debian/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/sh
# postinst script for rippled

set -e

# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

case "$1" in
configure)
adduser --disabled-password --quiet --system \
--home /var/run/rippled --no-create-home \
--gecos "Rippled Daemon" --group rippled

# Add the rippled group unless it's already there
addgroup --quiet --system rippled || true

# Ensure directories have the correct owners/permissions
chown -R rippled:rippled /var/log/rippled
chmod 750 /var/log/rippled

chown -R rippled:rippled /var/run/rippled
chmod 750 /var/run/rippled

chown -R rippled:rippled /var/lib/rippled
chmod 750 /var/lib/rippled
chmod 750 /var/lib/rippled/db

;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
103 changes: 103 additions & 0 deletions Builds/debian/rippled.init
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#!/bin/sh

### BEGIN INIT INFO
# Provides: ripple
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the ripple network node
# Description: starts rippled using start-stop-daemon
### END INIT INFO

set -e

NAME=rippled
USER="rippled"
GROUP="rippled"
PIDFILE=/var/run/rippled/$NAME.pid
DAEMON=/usr/bin/rippled
DAEMON_OPTS="--conf /etc/rippled/rippled.cfg"
NET_OPTS="--net $DAEMON_OPTS"
LOGDIR="/var/log/rippled"
DBDIR="/var/lib/rippled/db"

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
start)
echo -n "Starting daemon: "$NAME
start-stop-daemon --start --quiet --background -m --pidfile $PIDFILE \
--exec $DAEMON --chuid $USER --group $GROUP --verbose -- $NET_OPTS
echo "."
;;

stop)
echo -n "Stopping daemon: "$NAME
$DAEMON $DAEMON_OPTS stop
rm -f $PIDFILE
echo "."
;;

restart)
echo -n "Restarting daemon: "$NAME
$DAEMON $DAEMON_OPTS stop
rm -f $PIDFILE
start-stop-daemon --start --quiet --background -m --pidfile $PIDFILE \
--exec $DAEMON --chuid $USER --group $GROUP -- $NET_OPTS
echo "."
;;

status)
echo "Status of $NAME:"
echo -n "PID of $NAME: "
if [ -f "$PIDFILE" ]; then
cat $PIDFILE
$DAEMON $DAEMON_OPTS server_info
else
echo "$NAME not running."
fi
echo "."
;;

fetch)
echo "$NAME ledger fetching info:"
$DAEMON $DAEMON_OPTS fetch_info
echo "."
;;

uptime)
echo "$NAME uptime:"
$DAEMON $DAEMON_OPTS get_counts
echo "."
;;

startconfig)
echo "$NAME is being started with the following command line:"
echo "$DAEMON $NET_OPTS"
echo "."
;;

command)
# Truncate the script's argument vector by one position to get rid of
# this entry.
shift

# Pass the remainder of the argument vector to rippled.
$DAEMON $DAEMON_OPTS "$@"
echo "."
;;

test)
$DAEMON $DAEMON_OPTS ping
echo "."
;;

*)
echo "Usage: $0 {start|stop|restart|status|fetch|uptime|startconfig|"
echo " command|test}"
exit 1
esac

exit 0

13 changes: 13 additions & 0 deletions Builds/debian/rippled.logrotate
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/var/log/rippled/debug.log {
compress
daily
nocreate
missingok
su rippled rippled

postrotate
/etc/init.d/rippled command logrotate
endscript

rotate 10
}
31 changes: 31 additions & 0 deletions Builds/debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/make -f

SCONS=scons

# --- NOTE ---
# Even if using pbuilder (chroot builds), this is executed on the host system
# ------------
clean:
dh_testdir
dh_testroot
-$(SCONS) -c
dh_clean

build:
dh_testdir
$(SCONS) -j 8
build/rippled --unittest
-npm install
-npm test

build-arch: build

# We tell the system to save stripped debug symbols into the rippled-dbg package
# so that we can install them if needed
.PHONY: override_dh_strip
override_dh_strip:
dh_strip -prippled --dbg-package=rippled-dbg

# Everything else goes to debhelper
%:
dh $@
1 change: 1 addition & 0 deletions Builds/debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (native)
2 changes: 2 additions & 0 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ HONOR_ENVS = ['CC', 'CXX', 'PATH']

env = Environment(
tools = ['default', 'protoc'],
CC = 'gcc-4.8',
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

even if set in the environment, it's ignored by scons. so, we choose a decent default, if one isn't set elsewhere. typically I'm loath to do this, but otherwise I'd be blocked on scons. Feel free to suggest other fixes.

CXX = 'g++-4.8',
ENV = dict((k, os.environ[k]) for k in HONOR_ENVS if k in os.environ)
)

Expand Down
13 changes: 13 additions & 0 deletions doc/logrotate.debian.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/var/log/rippled/debug.log {
compress
daily
nocreate
missingok
su rippled rippled

postrotate
/etc/init.d/rippled command logrotate
endscript

rotate 10
}
Loading