Skip to content

Commit

Permalink
Added building deb-linux-package in makefile (#364)
Browse files Browse the repository at this point in the history
* Added building deb-linux-package in makefile

* Added building deb-package for gowaves node

* Changed address for wmd

* Changed interval from 1 to 10 for wmd

* added building testnet-node

* Fixed makefile

* changed readme for wmd and node as systemd service

* changed readme, correct name of binary file

* Debian package file templates moved to separate folder

* Fixed errors in building

Co-authored-by: Dolgavin Alexandr <[email protected]>
Co-authored-by: Alexey Kiselev <[email protected]>
  • Loading branch information
3 people authored Oct 20, 2020
1 parent d7cc53e commit a7fbfd7
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 9 deletions.
54 changes: 51 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ SOURCE=$(shell find . -name '*.go' | grep -v vendor/)
SOURCE_DIRS = cmd pkg

VERSION=$(shell git describe --tags --always --dirty)
DEB_VER=$(shell git describe --tags --abbrev=0 | cut -c 2-)
DEB_HASH=$(shell git rev-parse HEAD)

export GO111MODULE=on

Expand Down Expand Up @@ -70,7 +72,7 @@ build-wmd-windows:

release-wmd: ver build-wmd-linux build-wmd-darwin build-wmd-windows

dist-wmd: release-wmd
dist-wmd: release-wmd build-wmd-deb-package
@mkdir -p build/dist
@cd ./build/; zip -j ./dist/wmd_$(VERSION)_Windows-64bit.zip ./bin/windows-amd64/wmd*
@cd ./build/bin/linux-amd64/; tar pzcvf ../../dist/wmd_$(VERSION)_Linux-64bit.tar.gz ./wmd*
Expand All @@ -94,7 +96,7 @@ build-node-windows:

release-node: ver build-node-linux build-node-darwin build-node-windows

dist-node: release-node
dist-node: release-node build-node-mainnet-deb-package build-node-testnet-deb-package
@mkdir -p build/dist
@cd ./build/; zip -j ./dist/node_$(VERSION)_Windows-64bit.zip ./bin/windows-amd64/node*
@cd ./build/bin/linux-amd64/; tar pzcvf ../../dist/node_$(VERSION)_Linux-64bit.tar.gz ./node*
Expand Down Expand Up @@ -171,4 +173,50 @@ proto:
@protoc --proto_path=pkg/grpc/protobuf-schemas/proto/ --go_out=plugins=grpc:$(GOPATH)/src pkg/grpc/protobuf-schemas/proto/waves/node/grpc/*.proto

build-integration-linux:
@GOOS=linux GOARCH=amd64 go build -o build/bin/linux-amd64/integration ./cmd/integration
@GOOS=linux GOARCH=amd64 go build -o build/bin/linux-amd64/integration ./cmd/integration

build-wmd-deb-package: release-wmd
@mkdir -p build/dist
@mkdir -p ./build/wmd/DEBIAN
@cp ./cmd/wmd/symbols.txt ./build/wmd
@cp ./build/bin/linux-amd64/wmd ./build/wmd
@sed "s|VERSION|$(VERSION)|g; s|DESCRIPTION|Waves Market Data System Service|g; s|PACKAGE|wmd|g; s|EXECUTABLE|wmd|g; s|PARAMS|-db /var/lib/wmd/ -address 0.0.0.0:6990 -node grpc.wavesnodes.com:6870 -symbols /usr/share/wmd/symbols.txt -sync-interval 10|g; s|NAME|wmd|g" ./dpkg/service.service > ./build/wmd/wmd.service
@sed "s/DEB_VER/$(DEB_VER)/g; s/VERSION/$(VERSION)/g; s/DESCRIPTION/Waves Market Data System Service/g; s/PACKAGE/wmd/g" ./dpkg/control > ./build/wmd/DEBIAN/control
@sed "s/PACKAGE/wmd/g; s/NAME/wmd/g; s/EXECUTABLE/wmd/g; s|EXTRAS|sudo cp symbols.txt /usr/share/wmd/|g;" ./dpkg/postinst > ./build/wmd/DEBIAN/postinst
@sed "s/PACKAGE/wmd/g" ./dpkg/preinst > ./build/wmd/DEBIAN/preinst
@chmod 0775 ./build/wmd/DEBIAN/control
@chmod 0775 ./build/wmd/DEBIAN/preinst
@chmod 0775 ./build/wmd/DEBIAN/postinst
@dpkg-deb --build ./build/wmd
@mv ./build/wmd.deb ./build/dist/wmd_${VERSION}.deb
@rm -rf ./build/wmd

build-node-mainnet-deb-package: release-node
@mkdir -p build/dist
@mkdir -p ./build/gowaves-mainnet/DEBIAN
@cp ./build/bin/linux-amd64/node ./build/gowaves-mainnet/
@sed "s|VERSION|$(VERSION)|g; s|DESCRIPTION|Gowaves Node for MainNet System Service|g; s|PACKAGE|gowaves-mainnet|g; s|EXECUTABLE|node|g; s|PARAMS|-state-path /var/lib/gowaves-mainnet/ -api-address 0.0.0.0:8080|g; s|NAME|gowaves|g" ./dpkg/service.service > ./build/gowaves-mainnet/gowaves-mainnet.service
@sed "s/DEB_VER/$(DEB_VER)/g; s/VERSION/$(VERSION)/g; s/DESCRIPTION/Gowaves Node for MainNet System Service/g; s/PACKAGE/gowaves-mainnet/g" ./dpkg/control > ./build/gowaves-mainnet/DEBIAN/control
@sed "s/PACKAGE/gowaves-mainnet/g; s/NAME/gowaves/g; s/EXECUTABLE/node/g; s|EXTRAS||g;" ./dpkg/postinst > ./build/gowaves-mainnet/DEBIAN/postinst
@sed "s/PACKAGE/gowaves-mainnet/g" ./dpkg/preinst > ./build/gowaves-mainnet/DEBIAN/preinst
@chmod 0775 ./build/gowaves-mainnet/DEBIAN/control
@chmod 0775 ./build/gowaves-mainnet/DEBIAN/preinst
@chmod 0775 ./build/gowaves-mainnet/DEBIAN/postinst
@dpkg-deb --build ./build/gowaves-mainnet
@mv ./build/gowaves-mainnet.deb ./build/dist/gowaves-mainnet_${VERSION}.deb
@rm -rf ./build/gowaves-mainnet

build-node-testnet-deb-package: release-node
@mkdir -p build/dist
@mkdir -p ./build/gowaves-testnet/DEBIAN
@cp ./build/bin/linux-amd64/node ./build/gowaves-testnet/
@sed "s|VERSION|$(VERSION)|g; s|DESCRIPTION|Gowaves Node for TestNet System Service|g; s|PACKAGE|gowaves-testnet|g; s|EXECUTABLE|node|g; s|PARAMS|-state-path /var/lib/gowaves-testnet/ -api-address 0.0.0.0:8090 -blockchain-type testnet|g; s|NAME|gowaves|g" ./dpkg/service.service > ./build/gowaves-testnet/gowaves-testnet.service
@sed "s/DEB_VER/$(DEB_VER)/g; s/VERSION/$(VERSION)/g; s/DESCRIPTION/Gowaves Node for TestNet System Service/g; s/PACKAGE/gowaves-testnet/g" ./dpkg/control > ./build/gowaves-testnet/DEBIAN/control
@sed "s/PACKAGE/gowaves-testnet/g; s/NAME/gowaves/g; s/EXECUTABLE/node/g; s|EXTRAS||g;" ./dpkg/postinst > ./build/gowaves-testnet/DEBIAN/postinst
@sed "s/PACKAGE/gowaves-testnet/g" ./dpkg/preinst > ./build/gowaves-testnet/DEBIAN/preinst
@chmod 0775 ./build/gowaves-testnet/DEBIAN/control
@chmod 0775 ./build/gowaves-testnet/DEBIAN/preinst
@chmod 0775 ./build/gowaves-testnet/DEBIAN/postinst
@dpkg-deb --build ./build/gowaves-testnet
@mv ./build/gowaves-testnet.deb ./build/dist/gowaves-testnet_${VERSION}.deb
@rm -rf ./build/gowaves-testnet
7 changes: 3 additions & 4 deletions cmd/node/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ sudo mkdir /usr/share/waves/
sudo chown waves:waves /usr/share/waves
sudo mkdir /var/lib/waves
sudo chown waves:waves /var/lib/waves
sudo cp waves /usr/share/waves/
sudo cp node /usr/share/waves/
```

To enable, start and stop the service use commands:
Expand Down Expand Up @@ -116,8 +116,7 @@ RestartSec=60
startLimitIntervalSec=60
WorkingDirectory=/usr/share/waves-testnet
ExecStart=/usr/share/waves-testnet/node -state-path /var/lib/waves-testnet/ -api-address 0.0.0.0:8090 -peers 52.51.92.182:6863,52.231.205.53:6863,52.30.47.67:6863,52.28.66.217:6863 -blockchain-type testnet
ExecStart=/usr/share/waves-testnet/node -state-path /var/lib/waves-testnet/ -api-address 0.0.0.0:8090 -peers 159.69.126.149:6863,94.130.105.239:6863,159.69.126.153:6863,94.130.172.201:6863 -blockchain-type testnet
# make sure log directory exists and owned by syslog
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/log/waves-testnet
Expand All @@ -139,7 +138,7 @@ sudo mkdir /usr/share/waves-testnet/
sudo chown waves-testnet:waves-testnet /usr/share/waves-testnet
sudo mkdir /var/lib/waves-testnet
sudo chown waves-testnet:waves-testnet /var/lib/waves-testnet
sudo cp waves /usr/share/waves-testnet/
sudo cp node /usr/share/waves-testnet/
```

```bash
Expand Down
3 changes: 1 addition & 2 deletions cmd/wmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,7 @@ RestartSec=10
startLimitIntervalSec=60
WorkingDirectory=/usr/share/wmd
ExecStart=/usr/share/wmd/wmd -db /var/lib/wmd/ -address 0.0.0.0:6990 -node mainnet-aws-ir-1.wavesnodes.com:6870 -symbols /usr/share/wmd/symbols.txt -sync-interval 1
ExecStart=/usr/share/wmd/wmd -db /var/lib/wmd/ -address 0.0.0.0:6990 -node grpc.wavesnodes.com:6870 -symbols /usr/share/wmd/symbols.txt -sync-interval 10
# make sure log directory exists and owned by syslog
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/log/wmd
Expand Down
8 changes: 8 additions & 0 deletions dpkg/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Package: PACKAGE
Version: DEB_VER
Section: utils
Priority: standard
Maintainer: waves.tech
Description: DESCRIPTION VERSION
Architecture: amd64
Depends: bash
14 changes: 14 additions & 0 deletions dpkg/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
sudo mkdir /var/log/PACKAGE
sudo chown syslog EXECUTABLE
sudo useradd NAME -s /sbin/nologin -M
sudo mv PACKAGE.service /lib/systemd/system/
sudo chmod 755 /lib/systemd/system/PACKAGE.service
sudo mkdir /usr/share/PACKAGE/
sudo chown NAME:NAME /usr/share/PACKAGE
sudo mkdir /var/lib/PACKAGE
sudo chown NAME:NAME /var/lib/PACKAGE
sudo cp EXECUTABLE /usr/share/PACKAGE/
EXTRAS
sudo systemctl enable PACKAGE.service
sudo systemctl start PACKAGE.service
2 changes: 2 additions & 0 deletions dpkg/preinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
sudo rm -f /usr/share/PACKAGE/*
24 changes: 24 additions & 0 deletions dpkg/service.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[Unit]
Description=DESCRIPTION VERSION
ConditionPathExists=/usr/share/PACKAGE
After=network.target

[Service]
Type=simple
User=NAME
Group=NAME
LimitNOFILE=1024
Restart=on-failure
RestartSec=60
WorkingDirectory=/usr/share/PACKAGE
PermissionsStartOnly=true
ExecStart=/usr/share/PACKAGE/EXECUTABLE PARAMS
ExecStartPre=/bin/mkdir -p /var/log/PACKAGE
ExecStartPre=/bin/chown syslog:adm /var/log/PACKAGE
ExecStartPre=/bin/chmod 755 /var/log/PACKAGE
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=PACKAGE

[Install]
WantedBy=multi-user.target

0 comments on commit a7fbfd7

Please sign in to comment.