From 3edcda63d3146164a92c65c278548a7d586c9847 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 16:30:57 +0100 Subject: [PATCH 01/14] Function to install guix --- src/freedombone-utils-guile | 133 ++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 16e9756c..44e3cae0 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -34,6 +34,9 @@ GUILE_HASH='c707b9cf6f97ecca3a4e3e704e62b83f95f1aec28ed1535f5d0a1d36af07a015' EIGHTSYNC_REPO="git://git.savannah.gnu.org/8sync.git" EIGHTSYNC_COMMIT='8cbb7f22227c0afdd3b0bd758ebec0efba2fa1e1' +GUIX_VERSION='0.13.0' +GUIX_DOWNLOAD_URL='ftp://alpha.gnu.org/gnu/guix' + function install_8sync { apt-get -qy install flex libunistring-dev libgc-dev autoconf texinfo @@ -92,4 +95,134 @@ function install_guile { echo 'export PATH=$PATH:$GUILE_PATH' >> ~/.bashrc } +function install_guix_get_architecture { + read_config_param ARCHITECTURE + + if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then + CURR_ARCH='i686' + fi + if [[ ${ARCHITECTURE} == *"amd64" || ${ARCHITECTURE} == "x86_64" ]]; then + CURR_ARCH='x86_64' + fi + if [[ ${ARCHITECTURE} == *"arm"* ]]; then + CURR_ARCH='armhf' + fi + if [ ! ${CURR_ARCH} ]; then + echo $'No architecture specified' + ARCHITECTURE=$(uname -m) + if [[ ${ARCHITECTURE} == "arm"* ]]; then + CURR_ARCH='armhf' + echo $"Using $CURR_ARCH" + fi + if [[ ${ARCHITECTURE} == "amd"* || ${ARCHITECTURE} == "x86_64" ]]; then + CURR_ARCH='x86_64' + echo $"Using $CURR_ARCH" + fi + if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then + CURR_ARCH='i686' + echo $"Using $CURR_ARCH" + fi + fi +} + + +function install_guix { + if [[ $(app_is_installed install_guix) == "1" ]]; then + return + fi + + apt-get -qy install wget xz-utils + + read_config_param MY_USERNAME + install_guix_get_architecture + + if [ ! -d $INSTALL_DIR/guix ]; then + mkdir -p $INSTALL_DIR/guix + fi + cd $INSTALL_DIR/guix + if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then + wget $GUIX_DOWNLOAD_URL/guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz + fi + if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then + echo $"Unable to download guix from $GUIX_DOWNLOAD_URL" + exit 73826 + fi + tar --warning=no-timestamp -xf guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz + if [ ! -d var/guix ]; then + echo $'guix directory var/guix not found' + exit 8726325 + fi + mv var/guix /var/ + if [ ! -d gnu ]; then + echo $'guix gnu directory not found' + exit 743383235 + fi + mv gnu / + + ln -sf /var/guix/profiles/per-user/root/guix-profile /root/.guix-profile + export GUIX_PROFILE=$HOME/.guix-profile + source $GUIX_PROFILE/etc/profile + + # add build users + groupadd --system guixbuild + for i in `seq -w 1 10`; + do + useradd -g guixbuild -G guixbuild \ + -d /var/empty -s `which nologin` \ + -c "Guix build user $i" --system \ + guixbuilder$i; + done + + if [ ! -f /root/.guix-profile/lib/systemd/system/guix-daemon.service ]; then + echo $'No guix systemd daemon found' + exit 78225548 + fi + cp /root/.guix-profile/lib/systemd/system/guix-daemon.service \ + /etc/systemd/system/ + systemctl enable guix-daemon + systemctl start guix-daemon + + if [ ! -d /usr/local/bin ]; then + mkdir -p /usr/local/bin + fi + cd /usr/local/bin + ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix + + if [ ! -d /usr/local/share/info ]; then + mkdir -p /usr/local/share/info + fi + cd /usr/local/share/info + if [ ! -d /var/guix/profiles/per-user/root/guix-profile/share/info ]; then + echo $'Directory not found /var/guix/profiles/per-user/root/guix-profile/share/info' + exit 7835202 + fi + for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ; + do ln -s $i ; done + + if ! grep -q 'GUIX_LOCPATH' /root/.bashrc; then + echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /root/.bashrc + fi + if ! grep -q 'GUIX_LOCPATH' /etc/skel/.bashrc; then + echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /etc/skel/.bashrc + fi + if ! grep -q 'GUIX_LOCPATH' /home/$MY_USERNAME/.bashrc; then + echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /home/$MY_USERNAME/.bashrc + fi + if ! grep -q 'GUIX_PROFILE' /root/.bashrc; then + echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /root/.bashrc + echo 'source $GUIX_PROFILE/etc/profile' >> /root/.bashrc + fi + if ! grep -q 'GUIX_PROFILE' /etc/skel/.bashrc; then + echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /etc/skel/.bashrc + echo 'source $GUIX_PROFILE/etc/profile' >> /etc/skel/.bashrc + fi + if ! grep -q 'GUIX_PROFILE' /home/$MY_USERNAME/.bashrc; then + echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /home/$MY_USERNAME/.bashrc + echo 'source $GUIX_PROFILE/etc/profile' >> /home/$MY_USERNAME/.bashrc + fi + guix package -i glibc-locales + + install_completed install_guix +} + # NOTE: deliberately no exit 0 From a609d7b5bc189a7e1f67d81138adca92b72c3119 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 18:18:50 +0100 Subject: [PATCH 02/14] Tidying --- src/freedombone-utils-guile | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 44e3cae0..5d409f6e 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -125,6 +125,17 @@ function install_guix_get_architecture { fi } +function install_guix_user { + install_path=$1 + + if ! grep -q 'GUIX_LOCPATH' $install_path/.bashrc; then + echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> $install_path/.bashrc + fi + if ! grep -q 'GUIX_PROFILE' $install_path/.bashrc; then + echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> $install_path/.bashrc + echo 'source $GUIX_PROFILE/etc/profile' >> $install_path/.bashrc + fi +} function install_guix { if [[ $(app_is_installed install_guix) == "1" ]]; then @@ -199,27 +210,10 @@ function install_guix { for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ; do ln -s $i ; done - if ! grep -q 'GUIX_LOCPATH' /root/.bashrc; then - echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /root/.bashrc - fi - if ! grep -q 'GUIX_LOCPATH' /etc/skel/.bashrc; then - echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /etc/skel/.bashrc - fi - if ! grep -q 'GUIX_LOCPATH' /home/$MY_USERNAME/.bashrc; then - echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> /home/$MY_USERNAME/.bashrc - fi - if ! grep -q 'GUIX_PROFILE' /root/.bashrc; then - echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /root/.bashrc - echo 'source $GUIX_PROFILE/etc/profile' >> /root/.bashrc - fi - if ! grep -q 'GUIX_PROFILE' /etc/skel/.bashrc; then - echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /etc/skel/.bashrc - echo 'source $GUIX_PROFILE/etc/profile' >> /etc/skel/.bashrc - fi - if ! grep -q 'GUIX_PROFILE' /home/$MY_USERNAME/.bashrc; then - echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> /home/$MY_USERNAME/.bashrc - echo 'source $GUIX_PROFILE/etc/profile' >> /home/$MY_USERNAME/.bashrc - fi + install_guix_user /root + install_guix_user /etc/skel + install_guix_user /home/$MY_USERNAME + guix package -i glibc-locales install_completed install_guix From cdbf4de7e04b9399f69caef6b2e9e141e7f89541 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 18:51:45 +0100 Subject: [PATCH 03/14] Install guix within image --- src/freedombone-image-customise | 1 + src/freedombone-utils-guile | 15 +++++++++++++-- src/freedombone-utils-setup | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index ed9363aa..107a3c1c 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -1469,6 +1469,7 @@ configure_user_interface image_setup_utils image_install_inadyn image_install_nodejs +image_install_guix image_preinstall_repos # remove downloaded packages diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 5d409f6e..05eafa56 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -96,8 +96,6 @@ function install_guile { } function install_guix_get_architecture { - read_config_param ARCHITECTURE - if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then CURR_ARCH='i686' fi @@ -137,6 +135,17 @@ function install_guix_user { fi } +function image_install_guix { + install_guix_get_architecture + if [ ! -d $rootdir$INSTALL_DIR/guix ]; then + mkdir -p $INSTALL_DIR/guix + fi + cd $rootdir$INSTALL_DIR/guix + if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then + wget $GUIX_DOWNLOAD_URL/guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz + fi +} + function install_guix { if [[ $(app_is_installed install_guix) == "1" ]]; then return @@ -145,6 +154,8 @@ function install_guix { apt-get -qy install wget xz-utils read_config_param MY_USERNAME + read_config_param ARCHITECTURE + install_guix_get_architecture if [ ! -d $INSTALL_DIR/guix ]; then diff --git a/src/freedombone-utils-setup b/src/freedombone-utils-setup index ce528df6..ad7ed4f5 100755 --- a/src/freedombone-utils-setup +++ b/src/freedombone-utils-setup @@ -997,6 +997,9 @@ function setup_utils { function_check setup_powerline setup_powerline + + function_check install_guix + install_guix } function setup_email { From e8aa014c6caafd840b13c672c729b207d68e75e7 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 18:56:59 +0100 Subject: [PATCH 04/14] Fix guix systemd daemon --- src/freedombone-utils-guile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 05eafa56..8bdd1347 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -195,12 +195,13 @@ function install_guix { guixbuilder$i; done - if [ ! -f /root/.guix-profile/lib/systemd/system/guix-daemon.service ]; then + GUIX_DAEMON=(find $INSTALL_DIR/guix -name guix-daemon.service) + if [ ! -f $GUIX_DAEMON ]; then + echo $"$GUIX_DAEMON" echo $'No guix systemd daemon found' exit 78225548 fi - cp /root/.guix-profile/lib/systemd/system/guix-daemon.service \ - /etc/systemd/system/ + cp $GUIX_DAEMON /etc/systemd/system/ systemctl enable guix-daemon systemctl start guix-daemon From 88f80ed6b435710d0e15b898b3130c80f94aa925 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 18:58:09 +0100 Subject: [PATCH 05/14] Typo --- src/freedombone-utils-guile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 8bdd1347..0d9aba64 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -195,7 +195,7 @@ function install_guix { guixbuilder$i; done - GUIX_DAEMON=(find $INSTALL_DIR/guix -name guix-daemon.service) + GUIX_DAEMON=$(find $INSTALL_DIR/guix -name guix-daemon.service) if [ ! -f $GUIX_DAEMON ]; then echo $"$GUIX_DAEMON" echo $'No guix systemd daemon found' From 30e62efa37d13667c9069358d48b49ea9ce39437 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 19:08:41 +0100 Subject: [PATCH 06/14] guix paths --- src/freedombone-utils-guile | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index 0d9aba64..df241fc5 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -174,11 +174,17 @@ function install_guix { echo $'guix directory var/guix not found' exit 8726325 fi - mv var/guix /var/ + if [ -d /var/guix ]; then + rm -rf /var/guix + fi + mv $INSTALL_DIR/guix/var/guix /var/ if [ ! -d gnu ]; then echo $'guix gnu directory not found' exit 743383235 fi + if [ -d /gnu ]; then + rm -rf /gnu + fi mv gnu / ln -sf /var/guix/profiles/per-user/root/guix-profile /root/.guix-profile @@ -195,7 +201,7 @@ function install_guix { guixbuilder$i; done - GUIX_DAEMON=$(find $INSTALL_DIR/guix -name guix-daemon.service) + GUIX_DAEMON=$(find /var/guix -name guix-daemon.service) if [ ! -f $GUIX_DAEMON ]; then echo $"$GUIX_DAEMON" echo $'No guix systemd daemon found' @@ -214,13 +220,6 @@ function install_guix { if [ ! -d /usr/local/share/info ]; then mkdir -p /usr/local/share/info fi - cd /usr/local/share/info - if [ ! -d /var/guix/profiles/per-user/root/guix-profile/share/info ]; then - echo $'Directory not found /var/guix/profiles/per-user/root/guix-profile/share/info' - exit 7835202 - fi - for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ; - do ln -s $i ; done install_guix_user /root install_guix_user /etc/skel From 69dc61f029595271e8ceb758cafc813eafee43eb Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 26 Aug 2017 22:00:55 +0100 Subject: [PATCH 07/14] Remove guix This isn't really suitable, since it builds the entire toolchain from scratch. On a BBB that could take weeks --- src/freedombone-image-customise | 1 - src/freedombone-utils-guile | 138 -------------------------------- src/freedombone-utils-setup | 3 - 3 files changed, 142 deletions(-) diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index 107a3c1c..ed9363aa 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -1469,7 +1469,6 @@ configure_user_interface image_setup_utils image_install_inadyn image_install_nodejs -image_install_guix image_preinstall_repos # remove downloaded packages diff --git a/src/freedombone-utils-guile b/src/freedombone-utils-guile index df241fc5..16e9756c 100755 --- a/src/freedombone-utils-guile +++ b/src/freedombone-utils-guile @@ -34,9 +34,6 @@ GUILE_HASH='c707b9cf6f97ecca3a4e3e704e62b83f95f1aec28ed1535f5d0a1d36af07a015' EIGHTSYNC_REPO="git://git.savannah.gnu.org/8sync.git" EIGHTSYNC_COMMIT='8cbb7f22227c0afdd3b0bd758ebec0efba2fa1e1' -GUIX_VERSION='0.13.0' -GUIX_DOWNLOAD_URL='ftp://alpha.gnu.org/gnu/guix' - function install_8sync { apt-get -qy install flex libunistring-dev libgc-dev autoconf texinfo @@ -95,139 +92,4 @@ function install_guile { echo 'export PATH=$PATH:$GUILE_PATH' >> ~/.bashrc } -function install_guix_get_architecture { - if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then - CURR_ARCH='i686' - fi - if [[ ${ARCHITECTURE} == *"amd64" || ${ARCHITECTURE} == "x86_64" ]]; then - CURR_ARCH='x86_64' - fi - if [[ ${ARCHITECTURE} == *"arm"* ]]; then - CURR_ARCH='armhf' - fi - if [ ! ${CURR_ARCH} ]; then - echo $'No architecture specified' - ARCHITECTURE=$(uname -m) - if [[ ${ARCHITECTURE} == "arm"* ]]; then - CURR_ARCH='armhf' - echo $"Using $CURR_ARCH" - fi - if [[ ${ARCHITECTURE} == "amd"* || ${ARCHITECTURE} == "x86_64" ]]; then - CURR_ARCH='x86_64' - echo $"Using $CURR_ARCH" - fi - if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then - CURR_ARCH='i686' - echo $"Using $CURR_ARCH" - fi - fi -} - -function install_guix_user { - install_path=$1 - - if ! grep -q 'GUIX_LOCPATH' $install_path/.bashrc; then - echo 'export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale' >> $install_path/.bashrc - fi - if ! grep -q 'GUIX_PROFILE' $install_path/.bashrc; then - echo 'export GUIX_PROFILE=$HOME/.guix-profile' >> $install_path/.bashrc - echo 'source $GUIX_PROFILE/etc/profile' >> $install_path/.bashrc - fi -} - -function image_install_guix { - install_guix_get_architecture - if [ ! -d $rootdir$INSTALL_DIR/guix ]; then - mkdir -p $INSTALL_DIR/guix - fi - cd $rootdir$INSTALL_DIR/guix - if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then - wget $GUIX_DOWNLOAD_URL/guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz - fi -} - -function install_guix { - if [[ $(app_is_installed install_guix) == "1" ]]; then - return - fi - - apt-get -qy install wget xz-utils - - read_config_param MY_USERNAME - read_config_param ARCHITECTURE - - install_guix_get_architecture - - if [ ! -d $INSTALL_DIR/guix ]; then - mkdir -p $INSTALL_DIR/guix - fi - cd $INSTALL_DIR/guix - if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then - wget $GUIX_DOWNLOAD_URL/guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz - fi - if [ ! -f guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz ]; then - echo $"Unable to download guix from $GUIX_DOWNLOAD_URL" - exit 73826 - fi - tar --warning=no-timestamp -xf guix-binary-${GUIX_VERSION}.${CURR_ARCH}-linux.tar.xz - if [ ! -d var/guix ]; then - echo $'guix directory var/guix not found' - exit 8726325 - fi - if [ -d /var/guix ]; then - rm -rf /var/guix - fi - mv $INSTALL_DIR/guix/var/guix /var/ - if [ ! -d gnu ]; then - echo $'guix gnu directory not found' - exit 743383235 - fi - if [ -d /gnu ]; then - rm -rf /gnu - fi - mv gnu / - - ln -sf /var/guix/profiles/per-user/root/guix-profile /root/.guix-profile - export GUIX_PROFILE=$HOME/.guix-profile - source $GUIX_PROFILE/etc/profile - - # add build users - groupadd --system guixbuild - for i in `seq -w 1 10`; - do - useradd -g guixbuild -G guixbuild \ - -d /var/empty -s `which nologin` \ - -c "Guix build user $i" --system \ - guixbuilder$i; - done - - GUIX_DAEMON=$(find /var/guix -name guix-daemon.service) - if [ ! -f $GUIX_DAEMON ]; then - echo $"$GUIX_DAEMON" - echo $'No guix systemd daemon found' - exit 78225548 - fi - cp $GUIX_DAEMON /etc/systemd/system/ - systemctl enable guix-daemon - systemctl start guix-daemon - - if [ ! -d /usr/local/bin ]; then - mkdir -p /usr/local/bin - fi - cd /usr/local/bin - ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix - - if [ ! -d /usr/local/share/info ]; then - mkdir -p /usr/local/share/info - fi - - install_guix_user /root - install_guix_user /etc/skel - install_guix_user /home/$MY_USERNAME - - guix package -i glibc-locales - - install_completed install_guix -} - # NOTE: deliberately no exit 0 diff --git a/src/freedombone-utils-setup b/src/freedombone-utils-setup index ad7ed4f5..ce528df6 100755 --- a/src/freedombone-utils-setup +++ b/src/freedombone-utils-setup @@ -997,9 +997,6 @@ function setup_utils { function_check setup_powerline setup_powerline - - function_check install_guix - install_guix } function setup_email { From 0d23690b44e2c309c04e1fd83dca03b9c5ee8611 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 11:48:47 +0100 Subject: [PATCH 08/14] Bump riot version --- src/freedombone-app-riot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedombone-app-riot b/src/freedombone-app-riot index 9a6a9969..933b9aed 100755 --- a/src/freedombone-app-riot +++ b/src/freedombone-app-riot @@ -33,7 +33,7 @@ VARIANTS='full full-vim chat' IN_DEFAULT_INSTALL=0 SHOW_ON_ABOUT=1 -RIOT_VERSION='0.12.1' +RIOT_VERSION='0.12.2' RIOT_FILENAME="riot-v${RIOT_VERSION}" RIOT_HASH='f6fc2df335af2abcf9fa1329819d20b4d1a0fc8a94a8f087b5f09941f2d5c44a' RIOT_DOWNLOAD_URL="https://github.com/vector-im/riot-web/releases/download/v${RIOT_VERSION}" From 435a8c4a6f1deacc6f66c7f85c86d3c7508e25cd Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 11:50:59 +0100 Subject: [PATCH 09/14] Update riot hash --- src/freedombone-app-riot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedombone-app-riot b/src/freedombone-app-riot index 933b9aed..ec6a0d59 100755 --- a/src/freedombone-app-riot +++ b/src/freedombone-app-riot @@ -35,7 +35,7 @@ SHOW_ON_ABOUT=1 RIOT_VERSION='0.12.2' RIOT_FILENAME="riot-v${RIOT_VERSION}" -RIOT_HASH='f6fc2df335af2abcf9fa1329819d20b4d1a0fc8a94a8f087b5f09941f2d5c44a' +RIOT_HASH='d0de730cb3e688040ba5c23680a676dabc94386830582842a4728767ed6dcd7f' RIOT_DOWNLOAD_URL="https://github.com/vector-im/riot-web/releases/download/v${RIOT_VERSION}" RIOT_ONION_PORT=8115 RIOT_ONION_HOSTNAME= From 0afea118c4a2ca06734d053e45c13146c360749f Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 12:20:43 +0100 Subject: [PATCH 10/14] Bump matrix commit --- src/freedombone-app-matrix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedombone-app-matrix b/src/freedombone-app-matrix index 27a35f4f..98323187 100755 --- a/src/freedombone-app-matrix +++ b/src/freedombone-app-matrix @@ -51,7 +51,7 @@ MATRIX_PORT=8009 MATRIX_FEDERATION_ONION_PORT=8111 MATRIX_ONION_PORT=8109 MATRIX_REPO="https://github.com/matrix-org/synapse" -MATRIX_COMMIT='c45dc6c62aa2a2e83a10d8116a709dfd8c144e3c' +MATRIX_COMMIT='77ea8cbdd7202d75538623c79b3d33119221d02b' REPORT_STATS="no" MATRIX_SECRET= MATRIX_EXPIRE_MONTHS=1 From 6acbc2118bd913874d4e4c70051638186260bc73 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 12:33:27 +0100 Subject: [PATCH 11/14] Set integration server parameters to empty strings --- src/freedombone-app-riot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/freedombone-app-riot b/src/freedombone-app-riot index ec6a0d59..0c7139d1 100755 --- a/src/freedombone-app-riot +++ b/src/freedombone-app-riot @@ -251,15 +251,15 @@ function install_riot { if [[ $ONION_ONLY == 'no' ]]; then sed -i "s|\"default_hs_url\":.*|\"default_hs_url\": \"https://${MATRIX_DOMAIN_NAME}\",|g" config.json sed -i "s|\"default_is_url\":.*|\"default_is_url\": \"https://${MATRIX_DOMAIN_NAME}\",|g" config.json - sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"https://${MATRIX_DOMAIN_NAME}/\",|g" config.json - sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"https://${MATRIX_DOMAIN_NAME}/api\",|g" config.json + sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"\",|g" config.json + sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"\",|g" config.json sed -i "s|\"bug_report_endpoint_url\":.*|\"bug_report_endpoint_url\": \"https://${MATRIX_DOMAIN_NAME}/bugs\",|g" config.json sed -i "/\"servers\":/a \"${MATRIX_DOMAIN_NAME}\"," config.json else sed -i "s|\"default_hs_url\":.*|\"default_hs_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}\",|g" config.json sed -i "s|\"default_is_url\":.*|\"default_is_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}\",|g" config.json - sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/\",|g" config.json - sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/api\",|g" config.json + sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"\",|g" config.json + sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"\",|g" config.json sed -i "s|\"bug_report_endpoint_url\":.*|\"bug_report_endpoint_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/bugs\",|g" config.json sed -i "/\"servers\":/a \"${MATRIX_ONION_DOMAIN_NAME}\"," config.json fi From 278b409e440eb47e5dd554053b96ffc2b4b9cc33 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 12:40:53 +0100 Subject: [PATCH 12/14] Workaround for nginx failures when resetting tripwire --- src/freedombone-controlpanel | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel index 6e87f0b0..8be2d32a 100755 --- a/src/freedombone-controlpanel +++ b/src/freedombone-controlpanel @@ -1352,6 +1352,14 @@ function reset_tripwire { ' | reset-tripwire echo '' + + # Sometimes nginx fails to restart if matrix is installed + # Restart matrix first + if [ -d /etc/matrix ]; then + systemctl restart matrix + systemctl restart nginx + fi + if [ -f /var/lib/tripwire/${HOSTNAME}.twd ]; then show_tripwire_verification_code echo $'Tripwire is now reset. Take a note of the above hash, or record' From 09e8c010e4dee91eec4dfe7fda4289aad6e468c5 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 27 Aug 2017 19:46:27 +0100 Subject: [PATCH 13/14] Support for pcduino3 board --- doc/EN/installation.org | 1 + man/freedombone-image.1.gz | Bin 3478 -> 3486 bytes man/freedombone.1.gz | Bin 5176 -> 5191 bytes src/freedombone-image-hardware-setup | 23 ++++++ src/freedombone-image-make | 2 +- src/freedombone-image-makefile | 11 +++ website/EN/installation.html | 117 ++++++++++++++------------- 7 files changed, 95 insertions(+), 59 deletions(-) diff --git a/doc/EN/installation.org b/doc/EN/installation.org index fc0a1d8f..3fca1d84 100644 --- a/doc/EN/installation.org +++ b/doc/EN/installation.org @@ -108,6 +108,7 @@ Currently the following boards are supported: * [[https://beagleboard.org/BLACK][Beaglebone Black]] * [[https://linux-sunxi.org/Cubietech_Cubieboard2][Cubieboard 2]] * [[https://linux-sunxi.org/Cubietruck][Cubietruck (Cubieboard 3)]] + * [[https://www.sparkfun.com/products/retired/12856][PCDuino3]] * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware][olinuxino Lime]] * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware][olinuxino Lime2]] * [[https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware][olinuxino Micro]] diff --git a/man/freedombone-image.1.gz b/man/freedombone-image.1.gz index fe9ffc897eac54390b4f09f1be64637600a3f8cb..6c8eab94413b55ab6b6449f9c795dc422b7941a1 100644 GIT binary patch delta 3327 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 J`w2N9006;PW^4ce delta 3319 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 delta 3139 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 diff --git a/src/freedombone-image-hardware-setup b/src/freedombone-image-hardware-setup index 41b52faa..abd840e2 100755 --- a/src/freedombone-image-hardware-setup +++ b/src/freedombone-image-hardware-setup @@ -224,6 +224,25 @@ EOF echo "rtc_sunxi" >> /etc/initramfs-tools/modules } + +setup_flash_kernel() { + if [ ! -d /etc/flash-kernel ] ; then + mkdir /etc/flash-kernel + fi + echo -n "$1" > /etc/flash-kernel/machine + + command_line="" + if [ -n "$2" ] ; then + command_line="console=$2" + fi + + if [ -n "$command_line" ] ; then + echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections + fi + + apt-get install -y flash-kernel +} + case "$MACHINE" in beaglebone) beaglebone_setup_boot @@ -257,4 +276,8 @@ case "$MACHINE" in a20_setup_boot sun7i-a20-cubieboard2.dtb enable_serial_console ttyS0 ;; + pcduino3) + a20_setup_boot sun7i-a20-pcduino3.dtb + enable_serial_console ttyS0 + ;; esac diff --git a/src/freedombone-image-make b/src/freedombone-image-make index a48f87e3..3eac755c 100755 --- a/src/freedombone-image-make +++ b/src/freedombone-image-make @@ -132,7 +132,7 @@ case "$MACHINE" in --roottype btrfs \ " ;; - cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2) + cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2 | pcduino3) extra_pkgs="$a20_pkgs" extra_opts="\ --variant minbase \ diff --git a/src/freedombone-image-makefile b/src/freedombone-image-makefile index 2a05969b..a8cbe02b 100755 --- a/src/freedombone-image-makefile +++ b/src/freedombone-image-makefile @@ -119,6 +119,17 @@ cubieboard2: prep $(SIGN) @echo "Build complete." +# build PCDuino3 SD card image +pcduino3: prep + $(eval ARCHITECTURE = armhf) + $(eval MACHINE = pcduino3) + $(MAKE_IMAGE) + @rm -f $(ARCHIVE) + $(XZ) $(IMAGE) + @echo "" + $(SIGN) + @echo "Build complete." + # build CubieTruck SD card image cubietruck: prep $(eval ARCHITECTURE = armhf) diff --git a/website/EN/installation.html b/website/EN/installation.html index 0dc1d06a..0db8eb6b 100644 --- a/website/EN/installation.html +++ b/website/EN/installation.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -256,11 +256,11 @@ for the JavaScript code in this tag. -Building an image for a Single Board Computer or Virtual Machine +Building an image for a Single Board Computer or Virtual Machine -Checklist +Checklist @@ -268,34 +268,34 @@ for the JavaScript code in this tag. -Installation +Installation -Social Key Management - the 'Unforgettable Key' +Social Key Management - the 'Unforgettable Key' -Final Setup +Final Setup -Keydrives +Keydrives -On Client Machines +On Client Machines -Administering the system +Administering the system -
-

Building an image for a Single Board Computer or Virtual Machine

-
+
+

Building an image for a Single Board Computer or Virtual Machine

+

You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the freedombone-image command.

@@ -373,9 +373,9 @@ If the image build fails with an error such as "Error reading from server. Re
-
-

Checklist

-
+
+

Checklist

+

Before installing Freedombone you will need a few things.

@@ -389,17 +389,17 @@ Before installing Freedombone you will need a few things.
-
-

Installation

-
+
+

Installation

+

There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.

-
-

On a Laptop, Netbook or Desktop machine

-
+
+

On a Laptop, Netbook or Desktop machine

+

If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:

@@ -418,9 +418,9 @@ freedombone menuconfig
-
-

On a single board computer (SBC)

-
+
+

On a single board computer (SBC)

+

Currently the following boards are supported:

@@ -429,6 +429,7 @@ Currently the following boards are supported:
  • Beaglebone Black
  • Cubieboard 2
  • Cubietruck (Cubieboard 3)
  • +
  • PCDuino3
  • olinuxino Lime
  • olinuxino Lime2
  • olinuxino Micro
  • @@ -498,9 +499,9 @@ Using the password 'freedombone'. Take a note of the new login password and then
    -
    -

    As a Virtual Machine

    -
    +
    +

    As a Virtual Machine

    +

    Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:

    @@ -517,42 +518,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a no
    -
    -

    Social Key Management - the 'Unforgettable Key'

    -
    +
    +

    Social Key Management - the 'Unforgettable Key'

    +

    During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities

    -
    -

    You have the gnupg keyring on an encrypted USB drive

    -
    +
    +

    You have the gnupg keyring on an encrypted USB drive

    +

    If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.

    -
    -

    You have a number of key fragments on USB drives retrieved from friends

    -
    +
    +

    You have a number of key fragments on USB drives retrieved from friends

    +

    -If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives. +If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives.

    -
    -

    You can specify some ssh login details for friends servers containing key fragments

    -
    +
    +

    You can specify some ssh login details for friends servers containing key fragments

    +

    Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.

    -
    -

    Final Setup

    -
    +
    +

    Final Setup

    +

    Any manual post-installation setup instructions or passwords can be found in /home/username/README.

    @@ -670,16 +671,16 @@ On your internet router, typically under firewall settings, open the following p
    -
    -

    Keydrives

    -
    +
    +

    Keydrives

    +

    After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:

    -
    -

    Master Keydrive

    -
    +
    +

    Master Keydrive

    +

    This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Then plug it into the Freedombone system, then from your local machine run:

    @@ -694,9 +695,9 @@ Select Administrator controls then Backup and Restore then Back

    -
    -

    Fragment keydrives

    -
    +
    +

    Fragment keydrives

    +

    This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Plug it into the Freedombone system then from your local machine run the following commands:

    @@ -716,9 +717,9 @@ Fragments are randomly assigned and so you will need at least three or four keyd
    -
    -

    On Client Machines

    -
    +
    +

    On Client Machines

    +

    You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.

    @@ -736,9 +737,9 @@ freedombone-client
    -
    -

    Administering the system

    -
    +
    +

    Administering the system

    +

    To administer the system after installation log in via ssh, become the root user and then launch the control panel.

    From 8c4f83565700d8634b1df43044b2d02652dd8bf6 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 29 Aug 2017 11:49:02 +0100 Subject: [PATCH 14/14] It seems common for postactiv repos to be unavailable, so don't include them in the image --- src/freedombone-image-customise | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index ed9363aa..10d12a1f 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -1230,16 +1230,16 @@ function image_preinstall_repos { if [[ $SOCIALINSTANCE == "gnusocial" ]]; then git clone $GNUSOCIAL_REPO $rootdir/repos/gnusocial git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma return fi if [[ $SOCIALINSTANCE == "postactiv" ]]; then git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma - git clone $POSTACTIV_REPO $rootdir/repos/postactiv + #git clone $POSTACTIV_REPO $rootdir/repos/postactiv return fi @@ -1249,9 +1249,9 @@ function image_preinstall_repos { git clone $FRIENDICA_REPO $rootdir/repos/friendica git clone $GNUSOCIAL_REPO $rootdir/repos/gnusocial git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma - git clone $POSTACTIV_REPO $rootdir/repos/postactiv + #git clone $POSTACTIV_REPO $rootdir/repos/postactiv git clone $SHARINGS_REPO $rootdir/repos/sharings git clone $HTMLY_REPO $rootdir/repos/htmly git clone $HUBZILLA_REPO $rootdir/repos/hubzilla