Skip to content
Snippets Groups Projects
make-ubiquity 6.37 KiB
Newer Older
#!/bin/sh
#
#    Copyright (C) 2011  Rubén Rodríguez <ruben@trisquel.info>
#
#    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 2 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; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
#

Ruben Rodriguez's avatar
Ruben Rodriguez committed
VERSION=2

. ./config

cp $DATA/trisquel_installed.png pixmaps
rm pixmaps/ubuntu_installed.png
replace ubuntu_installed trisquel_installed .

/bin/sed '/canonical/d' -i debian/ubiquity.install*
rm  tests/test_ubi_partman*

export DEB_BUILD_OPTIONS=nocheck

# Fix update issues on clean installations: http://trisquel.info/es/forum/update-issues-clean-install
sed 's:\(targetdb)\):\1\n        os.system("sudo chmod 644 /target/var/cache/debconf/config.dat"):' bin/ubiquity -i

# Fix https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1080701
sed '/from ubiquity import osextras/s/$/\nos.system("sudo swapoff -a")/' bin/ubiquity-wrapper -i

for i in $(ls -1 d-i/source/apt-setup/generators |grep -v 01setup) canonical.com security.ubuntu.com extras.ubuntu.com
do
    /bin/sed /$i/d -i debian/ubiquity.install-any d-i/source/apt-setup/debian/*.install
done
echo "d-i/source/apt-setup/generators/99trisquel usr/lib/ubiquity/apt-setup/generators" >> debian/ubiquity.install-any

#change icon
Ruben Rodriguez's avatar
Ruben Rodriguez committed
cp $DATA/trisquel.png data/ubiquity.png

# remove Ubuntu apt setup for the installer
find d-i/source/apt-setup/generators -type f | grep -v 01setup | xargs -r rm
cat << EOF1 > d-i/source/apt-setup/generators/99trisquel
#!/bin/sh
set -e

file="\$1"

Ruben Rodriguez's avatar
Ruben Rodriguez committed
FASTEST=http://es.archive.trisquel.info/trisquel/
SPEED=1000000000000

for i in \$(grep 'tp:' /usr/share/python-apt/templates/Trisquel.mirrors)
do
    echo Testing \$i
    TIME=\$(date +%s%N)
    wget -t 1 -T 5 --max-redirect=0 -o /dev/null -O /dev/null \$i/speedtest || continue
    TIME2=\$(date +%s%N)
    ELAPSED=\$(expr \$TIME2 - \$TIME)
    echo Time: \$ELAPSED
    if [ \$ELAPSED -lt \$SPEED ]
    then
        FASTEST=\$i
        SPEED=\$ELAPSED
    fi
done

MIRROR=\$FASTEST
RELEASE=\$(lsb_release -c | cut -f 2)

cat << EOF > \$file
# Trisquel repositories for supported software and updates
deb \$MIRROR \$RELEASE main
deb-src \$MIRROR \$RELEASE main
deb \$MIRROR \$RELEASE-security main
deb-src \$MIRROR \$RELEASE-security main
deb \$MIRROR \$RELEASE-updates main
deb-src \$MIRROR \$RELEASE-updates main
#deb \$MIRROR \$RELEASE-backports main
#deb-src \$MIRROR \$RELEASE-backports main
EOF
EOF1
chmod 755 d-i/source/apt-setup/generators/99trisquel

# Rebrand
replace $UPSTREAM $CODENAME .
replace Ubuntu Trisquel .
replace Kubuntu Triskel .
replace kubuntu triskel .
find |grep kubuntu.*png | xargs rename s/kubuntu/triskel/
replace Trisquel-Gettext-Domain Ubuntu-Gettext-Domain
#replace triskel-ubiquity kubuntu-ubiquity
replace "launchpad.net/ubuntu/+source/ubiquity/+filebug" "trisquel.info/project/issues" .
replace "launchpad.net/ubuntu/+source/ubiquity/" "trisquel.info/project/issues" .
replace "launchpad.net/ubuntu/+source/" "trisquel.info/project/issues" .
replace "ubiquity/+filebug" "" .
replace "+filebug" "" .
replace archive.ubuntu.com/ubuntu archive.trisquel.info/trisquel .
replace security.ubuntu.com/trisquel archive.trisquel.info/trisquel .
replace archive.ubuntu.com archive.trisquel.info .
replace security.ubuntu.com archive.trisquel.info .
#sed -i 's/apt-install/true #apt-install/' ubiquity/components/check_kernels.py
sed -i 's/apt-install/true #apt-install/' scripts/check-kernels
#sed -i '82s/True/False/g' gui/gtk/stepPrepare.ui

rm -rf d-i/source/apt-setup/release-files/*
for DIST in $CODENAME $CODENAME-security $CODENAME-updates $CODENAME-backports
do
    WD=d-i/source/apt-setup/release-files/archive.trisquel.info/$DIST
    mkdir $WD -p
    wget -r -l1 -np http://archive.trisquel.info/trisquel/dists/$DIST/Release -O $WD/Release
    wget -r -l1 -np http://archive.trisquel.info/trisquel/dists/$DIST/Release.gpg -O $WD/Release.gpg
done

# Postinstall hacks
cat << EOF1 >> scripts/apt-setup

#Trisquel hack to regenerate ssl keys after installation
Ruben Rodriguez's avatar
Ruben Rodriguez committed
if [ -f /target/etc/ssh/ssh_host_rsa_key ]; then
    rm -f /target/etc/ssh/ssh_host_*
    ssh-keygen -q -f /target/etc/ssh/ssh_host_rsa_key -N '' -t rsa
    ssh-keygen -q -f /target/etc/ssh/ssh_host_dsa_key -N '' -t dsa
fi
if [ -d /etc/italc ]
then
    rm -rf /etc/italc/*
    /usr/bin/ica -role teacher -createkeypair >/dev/null
    /usr/bin/ica -role admin -createkeypair >/dev/null
    /usr/bin/ica -role supporter -createkeypair >/dev/null

    rm /target/etc/italc/ -rf
    cp /etc/italc/ /target/etc/ -a

    chown root:admin /target/etc/italc/keys/private/*/key
fi

Ruben Rodriguez's avatar
Ruben Rodriguez committed
#cat << EOF > /target/etc/grub.d/01_PASSWORD
#! /bin/sh -e
# Trisquel enables a random password to grub during install
# Comment this file to remove the password.
# This file should only be readable by root.

Ruben Rodriguez's avatar
Ruben Rodriguez committed
#echo set superusers=grub
#echo password grub \$(bash -c 'echo \$RANDOM')
#EOF
Ruben Rodriguez's avatar
Ruben Rodriguez committed
#chmod 700 /target/etc/grub.d/01_PASSWORD

# Hacks for accessibility
if pgrep orca > /dev/null
then
  echo "Orca screen reader seems to be running, enabling accessibility by default in target system"
  echo "[org.gnome.desktop.a11y.applications]
screen-reader-enabled=true

[org.gnome.desktop.interface]
toolkit-accessibility=true
" >> /target/usr/share/glib-2.0/schemas/99_accessibility.gschema.override
  chroot /target glib-compile-schemas /usr/share/glib-2.0/schemas

 echo "/desktop/gnome/applications/at/screen_reader_enabled true
/desktop/gnome/interface/accessibility true" > /target/usr/share/gconf/defaults/91_accessibility
 chroot /target update-gconf-defaults

else 
  set +e
  grep -q v3 /proc/cmdline && exit
  echo "Orca screen reader seems not to be running, disabling accessibility by default in target system"
  rm /target/home/*/.local/share/orca/user-settings.conf -f
Ruben Rodriguez's avatar
Ruben Rodriguez committed
sed 's/Trisquel/Trsql/' -i ubiquity/plugins/ubi-partman.py
sed 's/Trisquel-Battersea/Ubuntu-Battersea/' -i  tests/test_gtkwidgets.py

changelog "Adapted for Trisquel"

rm -rf debian/source

Ruben Rodriguez's avatar
Ruben Rodriguez committed
PARALLEL=false compile