Update building docs
authorCryptoManiac <balthazar@yandex.ru>
Fri, 19 Dec 2014 18:13:31 +0000 (10:13 -0800)
committerCryptoManiac <balthazar@yandex.ru>
Fri, 19 Dec 2014 18:13:31 +0000 (10:13 -0800)
INSTALL
doc/README
doc/build-msw.txt
doc/build-osx.txt
doc/readme-qt.rst
doc/release-process.txt [deleted file]
doc/translation_process.md [deleted file]

diff --git a/INSTALL b/INSTALL
index 6989d89..c42e14d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,9 +1,9 @@
-Building Bitcoin
+Building NovaCoin
 
-See doc/readme-qt.rst for instructions on building Bitcoin QT,
+See doc/readme-qt.rst for instructions on building NovaCoin Qt,
 the intended-for-end-users, nice-graphical-interface, reference
-implementation of Bitcoin.
+implementation of NovaCoin.
 
-See doc/build-*.txt for instructions on building bitcoind,
+See doc/build-*.txt for instructions on building novacoind,
 the intended-for-services, no-graphical-interface, reference
-implementation of Bitcoin.
+implementation of NovaCoin.
index 50b2ed0..530f1b2 100644 (file)
@@ -1,4 +1,4 @@
-NovaCoin 0.4.4 BETA
+NovaCoin 0.5.0 BETA
 
 Copyright (c) 2013 NovaCoin Developers
 Copyright (c) 2011-2012 PPCoin Developers
index a3929fb..d516d2f 100644 (file)
@@ -25,10 +25,10 @@ Dependencies
 Libraries you need to download separately and build:
 
                 default path               download
-OpenSSL         \openssl-1.0.1b-mgw        http://www.openssl.org/source/
-Berkeley DB     \db-4.8.30.NC-mgw          http://www.oracle.com/technology/software/products/berkeley-db/index.html
-Boost           \boost-1.47.0-mgw          http://www.boost.org/users/download/
-miniupnpc       \miniupnpc-1.6-mgw         http://miniupnp.tuxfamily.org/files/
+OpenSSL         \openssl-1.0.1j-mgw        http://www.openssl.org/source/
+Berkeley DB     \db-6.0.20.NC-mgw          http://www.oracle.com/technology/software/products/berkeley-db/index.html
+Boost           \boost-1.57.0-mgw          http://www.boost.org/users/download/
+miniupnpc       \miniupnpc-1.9-mgw         http://miniupnp.tuxfamily.org/files/
 
 Their licenses:
 OpenSSL        Old BSD license with the problematic advertising requirement
@@ -37,10 +37,10 @@ Boost          MIT-like license
 miniupnpc      New (3-clause) BSD license
 
 Versions used in this release:
-OpenSSL      1.0.1b
-Berkeley DB  4.8.30.NC
-Boost        1.47.0
-miniupnpc    1.6
+OpenSSL      1.0.1j
+Berkeley DB  6.0.20.NC
+Boost        1.57.0
+miniupnpc    1.9
 
 
 OpenSSL
@@ -49,14 +49,14 @@ MSYS shell:
 un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
 change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'
 
-cd /c/openssl-1.0.1b-mgw
+cd /c/openssl-1.0.1j-mgw
 ./config
 make
 
 Berkeley DB
 -----------
 MSYS shell:
-cd /c/db-4.8.30.NC-mgw/build_unix
+cd /c/db-6.0.20.NC-mgw/build_unix
 sh ../dist/configure --enable-mingw --enable-cxx
 make
 
@@ -64,7 +64,7 @@ Boost
 -----
 DOS prompt:
 downloaded boost jam 3.1.18
-cd \boost-1.47.0-mgw
+cd \boost-1.57.0-mgw
 bjam toolset=gcc --build-type=complete stage
 
 MiniUPnPc
@@ -72,7 +72,7 @@ MiniUPnPc
 UPnP support is optional, make with USE_UPNP= to disable it.
 
 MSYS shell:
-cd /c/miniupnpc-1.6-mgw
+cd /c/miniupnpc-1.9-mgw
 make -f Makefile.mingw
 mkdir miniupnpc
 cp *.h miniupnpc/
index e58efbf..19d0b37 100644 (file)
-Copyright (c) 2009-2012 Bitcoin Developers
-Copyright (c) 2013 NovaCoin Developers
-Distributed under the MIT/X11 software license, see the accompanying file
-license.txt or http://www.opensource.org/licenses/mit-license.php.  This
-product includes software developed by the OpenSSL Project for use in the
-OpenSSL Toolkit (http://www.openssl.org/).  This product includes cryptographic
-software written by Eric Young (eay@cryptsoft.com) and UPnP software written by
-Thomas Bernard.
+Mac OS X Build Instructions and Notes
+====================================
+This guide will show you how to build novacoind(headless client) for OSX.
 
+Notes
+-----
 
-Mac OS X novacoind build instructions
-Laszlo Hanyecz <solar@heliacal.net>
-Douglas Huff <dhuff@jrbobdobbs.org>
+* Tested on OS X 10.7 through 10.10 on 64-bit Intel processors only.
 
+* All of the commands should be executed in a Terminal application. The
+built-in one is located in `/Applications/Utilities`.
 
-See readme-qt.rst for instructions on building NovaCoin QT, the
-graphical user interface.
+Preparation
+-----------
 
-Tested on 10.5 and 10.6 intel.  PPC is not supported because it's big-endian.
+You need to install XCode with all the options checked so that the compiler
+and everything is available in /usr not just /Developer. XCode should be
+available on your OS X installation media, but if not, you can get the
+current version from https://developer.apple.com/xcode/. If you install
+Xcode 4.3 or later, you'll need to install its command line tools. This can
+be done in `Xcode > Preferences > Downloads > Components` and generally must
+be re-done or updated every time Xcode is updated.
 
-All of the commands should be executed in Terminal.app.. it's in
-/Applications/Utilities
+There's also an assumption that you already have `git` installed. If
+not, it's the path of least resistance to install [Github for Mac](https://mac.github.com/)
+(OS X 10.7+) or
+[Git for OS X](https://code.google.com/p/git-osx-installer/). It is also
+available via Homebrew.
 
-You need to install XCode with all the options checked so that the compiler and
-everything is available in /usr not just /Developer I think it comes on the DVD
-but you can get the current version from http://developer.apple.com
+You will also need to install [Homebrew](http://brew.sh) in order to install library
+dependencies.
 
+The installation of the actual dependencies is covered in the Instructions
+sections below.
 
-1.  Clone the github tree to get the source code:
+Instructions: Homebrew
+----------------------
 
-git clone https://github.com/novacoin-project/novacoin
+#### Install dependencies using Homebrew
 
-2.  Download and install MacPorts from http://www.macports.org/
+        brew install autoconf automake libtool boost miniupnpc openssl pkg-config protobuf qt qrencode
 
-2a. (for 10.7 Lion)
-    Edit /opt/local/etc/macports/macports.conf and uncomment "build_arch i386"
+#### Installing berkeley-db4 using Homebrew
 
-3.  Install dependencies from MacPorts
+The homebrew package for berkeley-db4 has been broken for some time.  It will install without Java though.
 
-sudo port install boost db48 openssl miniupnpc
+Running this command takes you into brew's interactive mode, which allows you to configure, make, and install by hand:
+```
+$ brew install https://raw.github.com/mxcl/homebrew/master/Library/Formula/berkeley-db4.rb -–without-java 
+```
 
-Optionally install qrencode (and set USE_QRCODE=1):
-sudo port install qrencode
+The rest of these commands are run inside brew interactive mode:
+```
+/private/tmp/berkeley-db4-UGpd0O/db-4.8.30 $ cd ..
+/private/tmp/berkeley-db4-UGpd0O $ db-4.8.30/dist/configure --prefix=/usr/local/Cellar/berkeley-db4/4.8.30 --mandir=/usr/local/Cellar/berkeley-db4/4.8.30/share/man --enable-cxx
+/private/tmp/berkeley-db4-UGpd0O $ make
+/private/tmp/berkeley-db4-UGpd0O $ make install
+/private/tmp/berkeley-db4-UGpd0O $ exit
+```
 
-4.  Now you should be able to build novacoind:
+After exiting, you'll get a warning that the install is keg-only, which means it wasn't symlinked to `/usr/local`.  You don't need it to link it to build novacoin, but if you want to, here's how:
 
-cd novacoin/src
-make -f makefile.osx
+    $ brew link --force berkeley-db4
 
-Run:
-  ./novacoind --help  # for a list of command-line options.
-Run
-  ./novacoind -daemon # to start the novacoin daemon.
-Run
-  ./novacoind help # When the daemon is running, to get a list of RPC commands
+
+### Building `novacoind`
+
+1. Clone the github tree to get the source code and go into the directory.
+
+        git clone https://github.com/novacoin-project/novacoin.git
+        cd novacoin
+
+2. Build NovaCoin-Qt application:
+        qmake
+        make
+
+3. Build bitcoind:
+        cd src
+        make -f makefile.osx novacoind
+
+Use Qt Creator as IDE
+------------------------
+You can use Qt Creator as IDE, for debugging and for manipulating forms, etc.
+Download Qt Creator from http://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process).
+
+1. Make sure you installed everything through homebrew mentioned above 
+2. In Qt Creator do "File" -> "Open Project"
+3. Select novacoin-qt.pro as project file.
+4. In the "Projects" tab select "Manage Kits..."
+5. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
+6. Select LLDB as debugger (you might need to set the path to your installtion)
+7. Start debugging with Qt Creator
+
+Creating a release build
+------------------------
+You can ignore this section if you are building `novacoind` for your own use.
+
+novacoind binary isn't included in the NovaCoin-Qt.app bundle.
+
+If you are building `novacoind` or `NovaCoin-Qt` for others, your build machine should be set up
+as follows for maximum compatibility:
+
+All dependencies should be compiled with these flags:
+
+ -mmacosx-version-min=10.7
+ -arch x86_64
+ -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
+
+Once dependencies are compiled, you can create the .dmg disk image:
+
+./contrib/macdeploy/macdeployqtplus NovaCoin-Qt.app -dmg -fancy ./contrib/macdeploy/fancy.plist
+
+Running
+-------
+
+It's now available at `./novacoind`, provided that you are still in the `src`
+directory. We have to first create the RPC configuration file, though.
+
+Run `./novacoind` to get the filename where it should be put, or just try these
+commands:
+
+    echo -e "rpcuser=novacoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/NovaCoin/novacoin.conf"
+    chmod 600 "/Users/${USER}/Library/Application Support/NovaCoin/novacoin.conf"
+
+The next time you run it, it will start downloading the blockchain, but it won't
+output anything while it's doing this. This process may take several hours;
+you can monitor its process by looking at the debug.log file, like this:
+
+    tail -f $HOME/Library/Application\ Support/NovaCoin/debug.log
+
+Other commands:
+-------
+
+    ./novacoind -daemon # to start the bitcoin daemon.
+    ./novacoind --help  # for a list of command-line options.
+    ./novacoind help    # When the daemon is running, to get a list of RPC commands
index 34ae0a3..ca57260 100644 (file)
@@ -8,7 +8,11 @@ Debian
 -------
 
 First, make sure that the required packages for Qt4 development of your
-distribution are installed, for Debian and Ubuntu these are:
+distribution are installed, these are
+
+::
+
+for Debian and Ubuntu  <= 11.10 :
 
 ::
 
@@ -16,6 +20,14 @@ distribution are installed, for Debian and Ubuntu these are:
         libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
         libssl-dev libdb4.8++-dev
 
+for Ubuntu >= 12.04 (please read the 'Berkely DB version warning' below):
+
+::
+
+    apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev \
+        libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
+        libssl-dev libdb++-dev libminiupnpc-dev
+
 then execute the following:
 
 ::
@@ -70,6 +82,42 @@ Mac OS X
 Build configuration options
 ============================
 
+LevelDB transaction index
+--------------------------
+
+To use LevelDB for transaction index, pass the following argument to qmake:
+
+::
+
+    qmake "USE_LEVELDB=1"
+
+No additional external dependencies are required. If you're running this on your current sources tree then don't forget tu run
+
+::
+
+    make distclean
+
+prior to running qmake.
+
+Assembler implementation of scrypt hashing
+------------------------------------------
+
+To use optimized scrypt implementation instead of generic scrypt module, pass the following argument to qmake:
+
+::
+
+    qmake "USE_ASM=1"
+
+
+If you're using clang compiler then you need to unroll macroses before compiling. Following commands will do this for you:
+
+::
+
+    cd src/
+    ../contrib/clang/nomacro.pl
+
+No additional external dependencies required. Note that only x86, x86_64 and ARM processors are supported.
+
 UPNnP port forwarding
 ---------------------
 
@@ -123,17 +171,13 @@ Berkely DB version warning
 
 A warning for people using the *static binary* version of Novacoin on a Linux/UNIX-ish system (tl;dr: **Berkely DB databases are not forward compatible**).
 
-The static binary version of Novacoin is linked against libdb4.8 (see also `this Debian issue`_).
+The static binary version of Novacoin is linked against libdb5.3.
 
-Now the nasty thing is that databases from 5.X are not compatible with 4.X.
-
-If the globally installed development package of Berkely DB installed on your system is 5.X, any source you
+If the globally installed development package of Berkely DB installed on your system is 5.X, for example, any source you
 build yourself will be linked against that. The first time you run with a 5.X version the database will be upgraded,
 and 4.X cannot open the new format. This means that you cannot go back to the old statically linked version without
 significant hassle!
 
-.. _`this Debian issue`: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621425
-
 Ubuntu 11.10 warning
 ====================
 
diff --git a/doc/release-process.txt b/doc/release-process.txt
deleted file mode 100644 (file)
index da5a5a3..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-* update translations (ping tcatm on IRC for now)
-
-* update (commit) version in sources
-  novacoin-qt.pro
-  src/version.h
-  share/setup.nsi
-  doc/README*
-
-* tag version in git
-
-   git tag -a v0.5.1
-
-* write release notes.  git shortlog helps a lot:
-
-   git shortlog --no-merges v0.5.0..
-
-* perform gitian builds
-
-  * From a directory containing the novacoin source, gitian-builder and gitian.sigs
-   export SIGNER=(your gitian key, ie bluematt, sipa, etc)
-   export VERSION=0.5.1
-   cd ./gitian-builder
-
-  * Fetch and build inputs:
-   mkdir -p inputs; cd inputs/
-   wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.6.tar.gz' -O miniupnpc-1.6.tar.gz
-   wget 'http://www.openssl.org/source/openssl-1.0.1b.tar.gz'
-   wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
-   wget 'http://zlib.net/zlib-1.2.6.tar.gz'
-   wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz'
-   wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
-   wget 'http://downloads.sourceforge.net/project/boost/boost/1.47.0/boost_1_47_0.tar.bz2'
-   wget 'http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz'
-   cd ..
-   ./bin/gbuild ../novacoin/contrib/gitian-descriptors/boost-win32.yml
-   cp build/out/boost-win32-1.47.0-gitian.zip inputs/
-   ./bin/gbuild ../novacoin/contrib/gitian-descriptors/qt-win32.yml
-   cp build/out/qt-win32-4.7.4-gitian.zip inputs/
-   ./bin/gbuild ../novacoin/contrib/gitian-descriptors/deps-win32.yml
-   cp build/out/novacoin-deps-0.0.3.zip inputs/
-
-  * Build novacoind and novacoin-qt on Linux32, Linux64, and Win32:
-   ./bin/gbuild --commit novacoin=v${VERSION} ../novacoin/contrib/gitian-descriptors/gitian.yml
-   ./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../novacoin/contrib/gitian-descriptors/gitian.yml
-   pushd build/out
-   zip -r novacoin-${VERSION}-linux-gitian.zip *
-   mv novacoin-${VERSION}-linux-gitian.zip ../../
-   popd
-   ./bin/gbuild --commit novacoin=v${VERSION} ../novacoin/contrib/gitian-descriptors/gitian-win32.yml
-   ./bin/gsign --signer $SIGNER --release ${VERSION}-win32 --destination ../gitian.sigs/ ../novacoin/contrib/gitian-descriptors/gitian-win32.yml
-   pushd build/out
-   zip -r novacoin-${VERSION}-win32-gitian.zip *
-   mv novacoin-${VERSION}-win32-gitian.zip ../../
-   popd
-
-  Build output expected:
-  1. linux 32-bit and 64-bit binaries + source (novacoin-${VERSION}-linux-gitian.zip)
-  2. windows 32-bit binary, installer + source (novacoin-${VERSION}-win32-gitian.zip)
-  3. Gitian signatures (in gitian.sigs/${VERSION}[-win32]/(your gitian key)/
-
-* repackage gitian builds for release as stand-alone zip/tar/installer exe
-
-  * Linux .tar.gz:
-   unzip novacoin-${VERSION}-linux-gitian.zip -d novacoin-${VERSION}-linux
-   tar czvf novacoin-${VERSION}-linux.tar.gz novacoin-${VERSION}-linux
-   rm -rf novacoin-${VERSION}-linux
-
-  * Windows .zip and setup.exe:
-   unzip novacoin-${VERSION}-win32-gitian.zip -d novacoin-${VERSION}-win32
-   mv novacoin-${VERSION}-win32/novacoin-*-setup.exe .
-   zip -r novacoin-${VERSION}-win32.zip novacoin-${VERSION}-win32
-   rm -rf novacoin-${VERSION}-win32
-
-* perform Mac build
-  See this blog post for how Gavin set up his build environment to build the OSX
-  release; note that a patched version of macdeployqt is not needed anymore, as
-  the required functionality and fixes are implemented directly in macdeployqtplus:
-    http://gavintech.blogspot.com/2011/11/deploying-novacoin-qt-on-osx.html
-  Gavin also had trouble with the macports py27-appscript package; he
-  ended up installing a version that worked with: /usr/bin/easy_install-2.7 appscript
-
-  qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 novacoin-qt.pro
-  make
-  export QTDIR=/opt/local/share/qt4  # needed to find translations/qt_*.qm files
-  T=$(contrib/qt_translations.py $QTDIR/translations src/qt/locale)
-  python2.7 contrib/macdeploy/macdeployqtplus Novacoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
-
- Build output expected:
-  Novacoin-Qt.dmg
-
-* upload builds to SourceForge
-
-* create SHA256SUMS for builds, and PGP-sign it
-
-* update novacoin.org version
-
-* update forum version
-
-* update wiki download links
-
-* update wiki changelog: https://wiki.novaco.in/en/Changelog
-
-* Commit your signature to gitian.sigs:
-  pushd gitian.sigs
-  git add ${VERSION}/${SIGNER}
-  git add ${VERSION}-win32/${SIGNER}
-  git commit -a
-  git push  # Assuming you can push to the gitian.sigs tree
-  popd
-
--------------------------------------------------------------------------
-
-* After 3 or more people have gitian-built, repackage gitian-signed zips:
-
-  * From a directory containing novacoin source, gitian.sigs and gitian zips
-   export VERSION=0.5.1
-   mkdir novacoin-${VERSION}-linux-gitian
-   pushd novacoin-${VERSION}-linux-gitian
-   unzip ../novacoin-${VERSION}-linux-gitian.zip
-   mkdir gitian
-   cp ../novacoin/contrib/gitian-downloader/*.pgp ./gitian/
-   for signer in $(ls ../gitian.sigs/${VERSION}/); do
-     cp ../gitian.sigs/${VERSION}/${signer}/novacoin-build.assert ./gitian/${signer}-build.assert
-     cp ../gitian.sigs/${VERSION}/${signer}/novacoin-build.assert.sig ./gitian/${signer}-build.assert.sig
-   done
-   zip -r novacoin-${VERSION}-linux-gitian.zip *
-   cp novacoin-${VERSION}-linux-gitian.zip ../
-   popd
-   mkdir novacoin-${VERSION}-win32-gitian
-   pushd novacoin-${VERSION}-win32-gitian
-   unzip ../novacoin-${VERSION}-win32-gitian.zip
-   mkdir gitian
-   cp ../novacoin/contrib/gitian-downloader/*.pgp ./gitian/
-   for signer in $(ls ../gitian.sigs/${VERSION}-win32/); do
-     cp ../gitian.sigs/${VERSION}-win32/${signer}/novacoin-build.assert ./gitian/${signer}-build.assert
-     cp ../gitian.sigs/${VERSION}-win32/${signer}/novacoin-build.assert.sig ./gitian/${signer}-build.assert.sig
-   done
-   zip -r novacoin-${VERSION}-win32-gitian.zip *
-   cp novacoin-${VERSION}-win32-gitian.zip ../
-   popd
-
-  * Upload gitian zips to SourceForge
diff --git a/doc/translation_process.md b/doc/translation_process.md
deleted file mode 100644 (file)
index 996feb2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-Translations
-============
-
-The Qt GUI can be easily translated into other languages. Here's how we
-handle those translations.
-
-Files and Folders
------------------
-
-### novacoin-qt.pro
-
-This file takes care of generating `.qm` files from `.ts` files. It is mostly
-automated.
-
-### src/qt/novacoin.qrc
-
-This file must be updated whenever a new translation is added. Please note that
-files must end with `.qm`, not `.ts`.
-
-    <qresource prefix="/translations">
-        <file alias="en">locale/novacoin_en.qm</file>
-        ...
-    </qresource>
-
-### src/qt/locale/
-
-This directory contains all translations. Filenames must adhere to this format:
-
-    novacoin_xx_YY.ts or novacoin_xx.ts
-
-#### Source file
-
-`src/qt/locale/novacoin_en.ts` is treated in a special way. It is used as the
-source for all other translations. Whenever a string in the code is changed
-this file must be updated to reflect those changes. Usually, this can be
-accomplished by running `lupdate` (included in the Qt SDK).
-
-An updated source file should be merged to github and transifex will pick it
-up from there. Afterwards the new strings show up as "Remaining" in transifex
-and can be translated.
-
-Syncing with transifex
-----------------------
-
-We are using http://transifex.net as a frontend for translating the client.
-
-https://www.transifex.net/projects/p/bitcoin/resource/tx/
-
-The "transifex client" (see: http://help.transifex.net/features/client/)
-will help with fetching new translations from transifex. Use the following
-config to be able to connect with the client.
-
-### .tx/config
-
-    [main]
-    host = https://www.transifex.net
-
-    [bitcoin.tx]
-    file_filter = src/qt/locale/bitcoin_<lang>.ts
-    source_file = src/qt/locale/bitcoin_en.ts
-    source_lang = en
-    
-### .tx/config (for Windows)
-
-    [main]
-    host = https://www.transifex.net
-
-    [bitcoin.tx]
-    file_filter = src\qt\locale\bitcoin_<lang>.ts
-    source_file = src\qt\locale\bitcoin_en.ts
-    source_lang = en
-
-It is also possible to directly download new translations one by one from transifex.
-
-### Fetching new translations
-
-1. `tx pull -a`
-2. update `src/qt/novacoin.qrc` manually or via
-   `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(novacoin_\(.*\)\).ts/<file alias="\2">locale/\1.qm<\/file>/'`
-3. `git add` new translations from `src/qt/locale/`