Browse Source

Added trackomatron build process

pull/1943/head
Greg Szabo 7 years ago
parent
commit
54a9364565
15 changed files with 368 additions and 0 deletions
  1. +10
    -0
      devops/rpmbuild/Makefile
  2. +6
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/changelog
  3. +1
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/compat
  4. +15
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/control
  5. +21
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/copyright
  6. +45
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/postinst
  7. +41
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/postrm
  8. +37
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/preinst
  9. +39
    -0
      devops/rpmbuild/extrafiles/DEBIAN-trackomatron/prerm
  10. +3
    -0
      devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system-preset/50-trackomatron.preset
  11. +23
    -0
      devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system/trackomatron-server.service
  12. +29
    -0
      devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system/trackomatron.service
  13. +12
    -0
      devops/rpmbuild/extrafiles/trackomatron/usr/share/basecoin/key.json
  14. +12
    -0
      devops/rpmbuild/extrafiles/trackomatron/usr/share/basecoin/key2.json
  15. +74
    -0
      devops/rpmbuild/spectemplates/trackomatron.spec

+ 10
- 0
devops/rpmbuild/Makefile View File

@ -76,6 +76,13 @@ build-ethermint: git-branch
cp $(GOPATH)/src/github.com/tendermint/ethermint/build/ethermint $(GOPATH)/bin
@echo "*** Built ethermint"
build-trackomatron: git-branch
@echo "*** Building trackomatron"
go get -d -u go github.com/tendermint/trackomatron || echo "Workaround so there is no error message."
cd $(GOPATH)/src/github.com/tendermint/trackomatron && git checkout "$(GIT_BRANCH)" && git pull
$(MAKE) -C $(GOPATH)/src/github.com/tendermint/trackomatron get_vendor_deps install
@echo "*** Built trackomatron"
version-%: $(GOPATH)/bin/%
if [ -z "$(BUILD_NUMBER)" ]; then echo "BUILD_NUMBER not set" ; false ; fi
$(eval $*_version=$(shell $< version | cut -d- -f1 ))
@ -224,10 +231,13 @@ distclean: clean
rm -rf $(GOPATH)/src/github.com/tendermint/tendermint
rm -rf $(GOPATH)/src/github.com/tendermint/basecoin
rm -rf $(GOPATH)/src/github.com/tendermint/ethermint
rm -rf $(GOPATH)/src/github.com/tendermint/trackomatron
rm -rf $(GOPATH)/bin/tendermint
rm -rf $(GOPATH)/bin/basecoin
rm -rf $(GOPATH)/bin/basecli
rm -rf $(GOPATH)/bin/ethermint
rm -rf $(GOPATH)/bin/tracko
rm -rf $(GOPATH)/bin/trackocli
.PHONY : clean

+ 6
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/changelog View File

@ -0,0 +1,6 @@
trackomatron (@VERSION@) @STABILITY@; urgency=medium
* Automatic build. See https://github.com/tendermint/trackomatron for more information.
-- Greg Szabo <greg@philosobear.com> @DATETIMESTAMP@

+ 1
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/compat View File

@ -0,0 +1 @@
9

+ 15
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/control View File

@ -0,0 +1,15 @@
Source: trackomatron
Section: net
Priority: optional
Maintainer: Greg Szabo <greg@philosobear.com>
Build-Depends: debhelper (>=9)
Depends: tendermint (>=0.10.0)
Standards-Version: 3.9.6
Homepage: https://tendermint.com
Package: trackomatron
Architecture: amd64
Version: @VERSION@
Installed-Size: @INSTALLEDSIZE@
Description: Trackomatron - Track invoices on the blockchain
This software is intended to create a space to easily send invoices between and within institutions. Firstly, the commands of trackmatron are separated into two broad categories: submitting information to the blockchain (transactions), and retrieving information from the blockchain (query).

+ 21
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/copyright View File

@ -0,0 +1,21 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: trackomatron
Source: https://github.com/tendermint/trackomatron
Files: *
Copyright: 2017 All In Bits, Inc.
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the full text of the Apache License 2.0 can be found
in the file `/usr/share/common-licenses/Apache-2.0'.

+ 45
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/postinst View File

@ -0,0 +1,45 @@
#!/bin/sh
# postinst script for trackomatron
#
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>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
chown trackomatron.trackomatron /etc/trackomatron
chown trackomatron.trackomatron /etc/trackomatron/tendermint
sudo -Hu trackomatron tracko init --home /etc/trackomatron 2B24DEE2364762300168DF19B6C18BCE2D399EA2
#The above command generates a genesis.json file that contains validators. This is wrong, the validator part should be empty. https://github.com/tendermint/basecoin/issues/124
sudo -Hu trackomatron tracko init --home /etc/trackomatron/tendermint
#The above command might need some kind of additional option in the future. https://github.com/tendermint/tendermint/issues/542
systemctl daemon-reload
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

+ 41
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/postrm View File

@ -0,0 +1,41 @@
#!/bin/sh
# postrm script for trackomatron
#
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
upgrade|failed-upgrade|abort-upgrade)
systemctl daemon-reload
;;
purge|remove|abort-install|disappear)
systemctl daemon-reload
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

+ 37
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/preinst View File

@ -0,0 +1,37 @@
#!/bin/sh
# preinst script for trackomatron
#
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install|upgrade)
if ! grep -q '^trackomatron:' /etc/passwd ; then
useradd -k /dev/null -r -m -b /etc trackomatron
fi
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

+ 39
- 0
devops/rpmbuild/extrafiles/DEBIAN-trackomatron/prerm View File

@ -0,0 +1,39 @@
#!/bin/sh
# prerm script for basecoin
#
set -e
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
remove|upgrade|deconfigure)
systemctl stop trackomatron 2> /dev/null || :
systemctl stop trackomatron-service 2> /dev/null || :
;;
failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

+ 3
- 0
devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system-preset/50-trackomatron.preset View File

@ -0,0 +1,3 @@
disable trackomatron.service
disable trackomatron-server.service

+ 23
- 0
devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system/trackomatron-server.service View File

@ -0,0 +1,23 @@
[Unit]
Description=Trackomatron server
Requires=network-online.target
BindTo=trackomatron.service
PartOf=trackomatron.service
After=network-online.target trackomatron.service
PropagatesReloadTo=trackomatron.service
ReloadPropagatedFrom=trackomatron.service
[Service]
Environment="TMHOME=/etc/trackomatron/tendermint"
Restart=on-failure
User=trackomatron
Group=trackomatron
PermissionsStartOnly=true
ExecStart=/usr/bin/tendermint node
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target trackomatron.service
Also=trackomatron.service

+ 29
- 0
devops/rpmbuild/extrafiles/trackomatron/etc/systemd/system/trackomatron.service View File

@ -0,0 +1,29 @@
[Unit]
Description=Trackomatron
#propagates activation, deactivation and activation fails.
Requires=network-online.target
#propagates activation, deactivation, activation fails and stops
BindTo=trackomatron-server.service
#propagates stop and restart (one-way)
PartOf=trackomatron-server.service
#order
Before=trackomatron-server.service
After=network-online.target
#propagates reload
PropagatesReloadTo=trackomatron-server.service
ReloadPropagatedFrom=trackomatron-server.service
[Service]
Environment="BCHOME=/etc/trackomatron"
Restart=on-failure
User=trackomatron
Group=trackomatron
PermissionsStartOnly=true
ExecStart=/usr/bin/trackomatron start --without-tendermint
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
Also=trackomatron-server.service

+ 12
- 0
devops/rpmbuild/extrafiles/trackomatron/usr/share/basecoin/key.json View File

@ -0,0 +1,12 @@
{
"address": "1B1BE55F969F54064628A63B9559E7C21C925165",
"priv_key": {
"type": "ed25519",
"data": "C70D6934B4F55F1B7BC33B56B9CA8A2061384AFC19E91E44B40C4BBA182953D1619D3678599971ED29C7529DDD4DA537B97129893598A17C82E3AC9A8BA95279"
},
"pub_key": {
"type": "ed25519",
"data": "619D3678599971ED29C7529DDD4DA537B97129893598A17C82E3AC9A8BA95279"
}
}

+ 12
- 0
devops/rpmbuild/extrafiles/trackomatron/usr/share/basecoin/key2.json View File

@ -0,0 +1,12 @@
{
"address": "1DA7C74F9C219229FD54CC9F7386D5A3839F0090",
"priv_key": {
"type": "ed25519",
"data": "34BAE9E65CE8245FAD035A0E3EED9401BDE8785FFB3199ACCF8F5B5DDF7486A8352195DA90CB0B90C24295B90AEBA25A5A71BC61BAB2FE2387241D439698B7B8"
},
"pub_key": {
"type": "ed25519",
"data": "352195DA90CB0B90C24295B90AEBA25A5A71BC61BAB2FE2387241D439698B7B8"
}
}

+ 74
- 0
devops/rpmbuild/spectemplates/trackomatron.spec View File

@ -0,0 +1,74 @@
%define __spec_install_post %{nil}
%define debug_package %{nil}
%define __os_install_post %{nil}
Name: trackomatron
Summary: Trackomatron - Track invoices on the blockchain
License: Apache 2.0
URL: https://tendermint.com/
Packager: Greg Szabo
Requires: tendermint >= 0.10.0
Requires(pre): /sbin/useradd
%description
This software is intended to create a space to easily send invoices between and within institutions. Firstly, the commands of trackmatron are separated into two broad categories: submitting information to the blockchain (transactions), and retrieving information from the blockchain (query).
%pre
if ! %{__grep} -q '^%{name}:' /etc/passwd ; then
useradd -k /dev/null -r -m -b %{_sysconfdir} %{name}
fi
%prep
test -d "$GOPATH" || echo "GOPATH not set"
test -d "$GOPATH"
%{__mkdir_p} %{name}-%{version}
cd %{name}-%{version}
%{__mkdir_p} .%{_bindir} .%{_defaultlicensedir}/%{name} .%{_sysconfdir}/%{name}/tendermint
%{__cp} $GOPATH/bin/tracko $GOPATH/bin/trackocli .%{_bindir}
%{__cp} $GOPATH/src/github.com/tendermint/%{name}/LICENSE .%{_defaultlicensedir}/%{name}
cp -r %{_topdir}/extrafiles/trackomatron/* ./
%{__chmod} -Rf a+rX,u+w,g-w,o-w .
%build
# Nothing to do here.
%install
cd %{name}-%{version}
%{__cp} -a * %{buildroot}
%post
sudo -Hu %{name} tracko init --home %{_sysconfdir}/%{name} 2B24DEE2364762300168DF19B6C18BCE2D399EA2
#The above command generates a genesis.json file that contains validators. This is wrong, the validator part should be empty. https://github.com/tendermint/basecoin/issues/124
sudo -Hu %{name} tendermint init --home %{_sysconfdir}/%{name}/tendermint
#The above command might need some kind of additional option in the future. https://github.com/tendermint/tendermint/issues/542
#Temporary until https://github.com/tendermint/basecoin/issues/123
rm -f %{_sysconfdir}/%{name}/key.json
rm -f %{_sysconfdir}/%{name}/key2.json
systemctl daemon-reload
%preun
systemctl stop %{name} 2> /dev/null || :
systemctl stop %{name}-service 2> /dev/null || :
%postun
systemctl daemon-reload
%files
%attr(0755, %{name}, %{name}) %dir %{_sysconfdir}/%{name}
%attr(0755, %{name}, %{name}) %dir %{_sysconfdir}/%{name}/tendermint
%{_bindir}/*
%{_sysconfdir}/systemd/system/*
%{_sysconfdir}/systemd/system-preset/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/*
%dir %{_defaultlicensedir}/%{name}
%doc %{_defaultlicensedir}/%{name}/LICENSE

Loading…
Cancel
Save