building verifiable builds of monerod and monero-wallet, and package them up as deb-packages.
Go to file
ben 85fb6eef50
ben/build-monero/pipeline/head There was a failure building this commit Details
a very basic script for the gitan builds to avoid having my gpg key on a vm and to get more control over the process but it should actually be in python
2022-08-31 08:19:37 +02:00
gitian a very basic script for the gitan builds to avoid having my gpg key on a vm and to get more control over the process but it should actually be in python 2022-08-31 08:19:37 +02:00
monero@424e4de16b building works, not polished and hashes dont match because buliding is different (but i didnt quickly get the correct hash using the upstream Dockerfile either, more research is needed) 2022-07-15 17:05:31 +02:00
.dockerignore install dependencies 2022-07-15 14:56:22 +02:00
.gitignore initial commit 2022-07-15 09:57:11 +02:00
.gitmodules building works, not polished and hashes dont match because buliding is different (but i didnt quickly get the correct hash using the upstream Dockerfile either, more research is needed) 2022-07-15 17:05:31 +02:00
Dockerfile jenkinsfile 2022-07-15 18:23:23 +02:00
Jenkinsfile jenkinsfile 2022-07-15 18:23:23 +02:00
LICENSE Initial commit 2022-07-15 07:56:29 +00:00
README.md building works, not polished and hashes dont match because buliding is different (but i didnt quickly get the correct hash using the upstream Dockerfile either, more research is needed) 2022-07-15 17:05:31 +02:00
build-dependencies.txt install dependencies 2022-07-15 14:56:22 +02:00
version.sh jenkinsfile 2022-07-15 18:23:23 +02:00

README.md

build-monero

building verifiable builds of monerod and monero-wallet, and package them up as deb-packages. using docker to build with a Dockerfile thats adapted from the upstream Dockerfile, but should essentially be doing the same. we want to use our own copy so that we dont have to rely on upstream.

git config

git config -f .gitmodules diff.submodule log
git config -f .gitmodules status.submodulesummary 1

# follow the 'release-v0.17' branch of the upstream monero repo
git config -f .gitmodules submodule.monero.branch release-v0.17

# default to: git pull --recurse-submodules
# git config -f .gitmodules submodule.recurse true
# explicitly require using 'git submodule update' to update submodules
git config -f .gitmodules submodule.recurse false

building

pull in upstream changes from the monero submodule (and the submodules it contains):

# if upstream has changed references to any of its own submodules
git submodule sync

# checkout the branch in the upstream monero repo submodule
git submodule update --init --remote monero

# the monero repo has submodules of its own, checked out at specific commits in
# the upstream repo. the build depends on them being checked out at those
# commits so we want to read the hash to checkout from the branch we checked
# out in the upstream repo.
git submodule update --init --recursive


build the container:

docker build --build-arg NPROC=$(nproc) -t monero .

other

the upstream Dockerfile does:

git submodule init && git submodule update

# equivalent to
git submodule update --init

# bit since the monero repo is a submodule for us (and we run
# from the "parent" repo) we need to add --recursive

git submodule update --init --recursive

updating submodules:


# these commands are equivalent to each other
git pull --recurse-submodules
git submodule update --init --recursive

get tags and foreach:

# fetch tags in submodules
git submodule foreach git fetch --tags

useful git aliases:

git config -f .gitmodules alias.sdiff '!'"git diff && git submodule foreach 'git diff'"
git config -f .gitmodules alias.spush 'push --recurse-submodules=on-demand'
git config -f .gitmodules alias.supdate 'submodule update --remote --init --recursive'