forked from TrueCloudLab/frostfs-contract
[#291] Debian packaging
Debian package contains compiled contracts and manifests with corresponding directories, which will be placed into /var/lib/neofs/contract for further usage. Depends on neo-go package to build. Signed-off-by: Dmitriy Zabolotskiy <d.zabolotskiy@yadro.com>
This commit is contained in:
parent
4077921794
commit
0ba830f48f
13 changed files with 266 additions and 0 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -5,3 +5,6 @@ config.json
|
||||||
/vendor/
|
/vendor/
|
||||||
.idea
|
.idea
|
||||||
/bin/
|
/bin/
|
||||||
|
|
||||||
|
# debhelpers
|
||||||
|
**/.debhelper
|
||||||
|
|
20
Makefile
20
Makefile
|
@ -7,8 +7,16 @@ export GOBIN ?= $(shell pwd)/bin
|
||||||
NEOGO ?= $(GOBIN)/cli
|
NEOGO ?= $(GOBIN)/cli
|
||||||
VERSION ?= $(shell git describe --tags --dirty --match "v*" --always --abbrev=8 2>/dev/null || cat VERSION 2>/dev/null || echo "develop")
|
VERSION ?= $(shell git describe --tags --dirty --match "v*" --always --abbrev=8 2>/dev/null || cat VERSION 2>/dev/null || echo "develop")
|
||||||
|
|
||||||
|
|
||||||
|
# .deb package versioning
|
||||||
|
OS_RELEASE = $(shell lsb_release -cs)
|
||||||
|
PKG_VERSION ?= $(shell echo $(VERSION) | sed "s/^v//" | \
|
||||||
|
sed -E "s/(.*)-(g[a-fA-F0-9]{6,8})(.*)/\1\3~\2/" | \
|
||||||
|
sed "s/-/~/")-${OS_RELEASE}
|
||||||
|
|
||||||
.PHONY: all build clean test neo-go
|
.PHONY: all build clean test neo-go
|
||||||
.PHONY: alphabet mainnet morph nns sidechain
|
.PHONY: alphabet mainnet morph nns sidechain
|
||||||
|
.PHONY: debpackage debclean
|
||||||
build: neo-go all
|
build: neo-go all
|
||||||
all: sidechain mainnet
|
all: sidechain mainnet
|
||||||
sidechain: alphabet morph nns
|
sidechain: alphabet morph nns
|
||||||
|
@ -58,3 +66,15 @@ archive: build
|
||||||
@tar --transform "s|^./|frostfs-contract-$(VERSION)/|" \
|
@tar --transform "s|^./|frostfs-contract-$(VERSION)/|" \
|
||||||
-czf frostfs-contract-$(VERSION).tar.gz \
|
-czf frostfs-contract-$(VERSION).tar.gz \
|
||||||
$(shell find . -name '*.nef' -o -name 'config.json')
|
$(shell find . -name '*.nef' -o -name 'config.json')
|
||||||
|
|
||||||
|
# Package for Debian
|
||||||
|
debpackage:
|
||||||
|
dch --package frostfs-contract \
|
||||||
|
--controlmaint \
|
||||||
|
--newversion $(PKG_VERSION) \
|
||||||
|
--distribution $(OS_RELEASE) \
|
||||||
|
"Please see CHANGELOG.md for code changes for $(VERSION)"
|
||||||
|
dpkg-buildpackage --no-sign -b
|
||||||
|
|
||||||
|
debclean:
|
||||||
|
dh clean
|
||||||
|
|
10
README.md
10
README.md
|
@ -69,6 +69,16 @@ $ NEOGO=/home/user/neo-go/bin/neo-go make all
|
||||||
|
|
||||||
Remove compiled files with `make clean` or `make mr_proper` command.
|
Remove compiled files with `make clean` or `make mr_proper` command.
|
||||||
|
|
||||||
|
## Building Debian package
|
||||||
|
|
||||||
|
To build Debian package containing compiled contracts, run `make debpackage`
|
||||||
|
command. Package will install compiled contracts `*_contract.nef` and manifest
|
||||||
|
`config.json` with corresponding directories to `/var/lib/neofs/contract` for
|
||||||
|
further usage.
|
||||||
|
It will download and build neo-go, if needed.
|
||||||
|
|
||||||
|
To clean package-related files, use `make debclean`.
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
Smartcontract tests reside in `tests/` directory. To execute test suite
|
Smartcontract tests reside in `tests/` directory. To execute test suite
|
||||||
after applying changes, simply run `make test`.
|
after applying changes, simply run `make test`.
|
||||||
|
|
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
frostfs-contract (0.0.0) stable; urgency=medium
|
||||||
|
|
||||||
|
* Initial release
|
||||||
|
|
||||||
|
-- TrueCloudLab <tech@frostfs.info> Wed, 24 Aug 2022 18:29:49 +0300
|
34
debian/control
vendored
Normal file
34
debian/control
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Source: frostfs-contract
|
||||||
|
Section: misc
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: FrostFS <tech@frostfs.info>
|
||||||
|
Build-Depends: debhelper-compat (= 13), git, devscripts, neo-go
|
||||||
|
Standards-Version: 4.5.1
|
||||||
|
Homepage: https://fs.neo.org/
|
||||||
|
Vcs-Git: https://github.com/TrueCloudLab/frostfs-contract.git
|
||||||
|
Vcs-Browser: https://github.com/TrueCloudLab/frostfs-contract
|
||||||
|
|
||||||
|
Package: frostfs-contract
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}
|
||||||
|
Description: FrostFS-Contract contains all FrostFS related contracts.
|
||||||
|
Contracts are written for neo-go compiler.
|
||||||
|
These contracts are deployed both in the mainchain and the sidechain.
|
||||||
|
.
|
||||||
|
Mainchain contracts:
|
||||||
|
.
|
||||||
|
- frostfs
|
||||||
|
- processing
|
||||||
|
.
|
||||||
|
Sidechain contracts:
|
||||||
|
.
|
||||||
|
- alphabet
|
||||||
|
- audit
|
||||||
|
- balance
|
||||||
|
- container
|
||||||
|
- frostfsid
|
||||||
|
- netmap
|
||||||
|
- nns
|
||||||
|
- proxy
|
||||||
|
- reputation
|
||||||
|
- subnet
|
23
debian/copyright
vendored
Normal file
23
debian/copyright
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: frostfs-contract
|
||||||
|
Upstream-Contact: tech@frostfs.info
|
||||||
|
Source: https://github.com/TrueCloudLab/frostfs-contract
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2022 TrueCloudLab (@TrueCloudLab)
|
||||||
|
Copyright: 2018-2022 NeoSPCC (@nspcc-dev)
|
||||||
|
|
||||||
|
License: GPL-3
|
||||||
|
This program is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published
|
||||||
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program or at /usr/share/common-licenses/GPL-3.
|
||||||
|
If not, see <http://www.gnu.org/licenses/>.
|
1
debian/neofs-contract.docs
vendored
Normal file
1
debian/neofs-contract.docs
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
README*
|
39
debian/postinst.ex
vendored
Normal file
39
debian/postinst.ex
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postinst script for frostfs-contract
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
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)
|
||||||
|
;;
|
||||||
|
|
||||||
|
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
|
37
debian/postrm.ex
vendored
Normal file
37
debian/postrm.ex
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postrm script for frostfs-contract
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
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
|
||||||
|
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
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
|
35
debian/preinst.ex
vendored
Normal file
35
debian/preinst.ex
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# preinst script for frostfs-contract
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
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)
|
||||||
|
;;
|
||||||
|
|
||||||
|
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
|
38
debian/prerm.ex
vendored
Normal file
38
debian/prerm.ex
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# prerm script for frostfs-contract
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
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)
|
||||||
|
;;
|
||||||
|
|
||||||
|
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
|
20
debian/rules
vendored
Executable file
20
debian/rules
vendored
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
SERVICE = frostfs-contract
|
||||||
|
export NEOGO ?= $(shell command -v neo-go)
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
|
||||||
|
make all
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
install -D -m 0750 -d debian/$(SERVICE)/var/lib/frostfs/contract
|
||||||
|
find . -maxdepth 2 \( -name '*.nef' -o -name 'config.json' \) -exec cp --parents \{\} debian/$(SERVICE)/var/lib/frostfs/contract \;
|
||||||
|
|
||||||
|
override_dh_installchangelogs:
|
||||||
|
dh_installchangelogs -k CHANGELOG.md
|
||||||
|
|
||||||
|
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
Loading…
Reference in a new issue