Newer
Older
# Copyright (C) 2011-2022 Ruben Rodriguez <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
#
EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu impish main universe'
#REPOKEY="871920D1991BC93C"
#Patch python test after tzdata update.
sed 's/Canada/Bahamas/' -i ./tests/test_timezone.py

Ruben Rodriguez
committed
# Enable full disk encryption by default. Disabled, as it hinders a11y and sighted people can choose to enable it.
#patch -p0 < $DATA/nabia_encrypt_by_default.patch
# Fix some gtk labels for Orca
patch -p1 < $DATA/a11y.patch
# Do not try to start orca on ubiquity-dm
sed 's/osextras.find_on_path.*orca.*/False: # Disabled by trisquel changes/' -i bin/ubiquity-dm

Ruben Rodriguez
committed
# Disable non-main repository handling
sed 's/main.*//' -i autopilot/ubiquity-autopilot-runner/custom-installation/iso-override/etc/apt/sources.list.d/all.list
sed '/universe multiverse/d' -i bin/oem-config-remaster
# Use standard monospaced font for console
sed 's/Ubuntu Mono/Monospace Regular/' -i ubiquity/frontend/gtk_ui.py
# Fixes issues starting orca
sed "/Popen/s/'orca'/'orca', '--replace'/" -i ubiquity/frontend/gtk_ui.py

Ruben Rodriguez
committed
# Kill at-spi after maybe-ubiquity, allows a11y to work on live desktop installer
sed "/signal.alarm(0)/a\ \ \ \ \ \ \ \ subprocess.call\(['pkill', '-9', 'at-spi'], stdin=null, stdout=logfile, stderr=logfile)" -i bin/ubiquity-dm
cp $DATA/trisquel_installed.png pixmaps
rm pixmaps/ubuntu_installed.png
replace ubuntu_installed trisquel_installed .
replace linux-signed linux-lowlatency .
replace shim-signed shim .
replace grub-efi-amd64-signed grub-efi-amd64 .

Ruben Rodriguez
committed
/bin/sed '/canonical/d' -i debian/ubiquity.install*
#sed -i '0,/ubuntu-artwork/{/ubuntu-artwork/d;}' debian/control
# Fix update issues on clean installations: https://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|grep -v 40cdrom) canonical.com security.ubuntu.com extras.ubuntu.com

Ruben Rodriguez
committed
/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
# remove Ubuntu apt setup for the installer
find d-i/source/apt-setup/generators -type f | grep -v 01setup |grep -v 40cdrom| xargs -r rm
cat << EOF1 > d-i/source/apt-setup/generators/99trisquel
#!/bin/sh
set -e
file="\$1"
FASTEST=https://archive.trisquel.org/trisquel/
SPEED=1000000000000
for i in \$(grep 'tp:' /usr/share/python-apt/templates/Trisquel.mirrors)
do
echo Testing \$i
TIME=\$(date +%s%N)

Ruben Rodriguez
committed
wget -t 1 -T 5 --max-redirect=0 -o /dev/null -O /dev/null \$i/speedtest || continue
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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
sed '/ports.ubuntu.com/d' -i ./d-i/source/apt-setup/debian/apt-mirror-setup.install
sed 's/ports.ubuntu.com/archive.trisquel.org/g; s/ubuntu-ports/trisquel/g; s/ubuntu/trisquel/g' -i ./d-i/source/apt-setup/debian/rules ./d-i/source/base-installer/library.sh
sed 's/CC.ports.ubuntu.com/archive.trisquel.org/g; s/.ports.ubuntu.com/archive.trisquel.org/g' -i ./d-i/source/choose-mirror/choose-mirror.c ./d-i/source/choose-mirror/debian/choose-mirror-bin.templates.ftp.sel-in ./d-i/source/choose-mirror/debian/choose-mirror-bin.templates.http-in
wget https://archive.trisquel.org/trisquel/Mirrors.masterlist -O ./d-i/source/choose-mirror/Mirrors.masterlist
sed '/Location/d; /Comment/d;' -i ./d-i/source/choose-mirror/Mirrors.masterlist
cp ./d-i/source/choose-mirror/Mirrors.masterlist ./d-i/source/choose-mirror/Mirrors.masterlist.trisquel
rm ./d-i/source/choose-mirror/Mirrors.masterlist.ubuntu
sed 's/Mirrors.masterlist.ubuntu/Mirrors.masterlist/' -i d-i/source/choose-mirror/Makefile
# Set apt-mirror-setup.templates
cat << EOF > d-i/source/apt-setup/debian/apt-mirror-setup.templates-ubuntu
Template: apt-setup/restricted
Type: boolean
Default: false
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
Template: apt-setup/backports
Type: boolean
Default: true
# This template is used by the Trisquel version of d-i.
# :sl2:
_Description: Use backported software?
Some software has been backported from the development tree to work with
this release. Although this software has not gone through such complete
testing as that contained in the release, it includes newer versions of
some applications which may provide useful features.
.
Please choose whether you want this software to be made available to you.
EOF
mv d-i/source/apt-setup/debian/apt-mirror-setup.templates-ubuntu d-i/source/apt-setup/debian/apt-mirror-setup.templates-trisquel
cat << EOF > d-i/source/apt-setup/debian/apt-mirror-setup.templates
Template: apt-setup/progress/mirror
Type: text
# :sl1:
_Description: Scanning the mirror...
Template: apt-setup/mirror/error
Type: select
Default: Retry
# :sl2:
# These are choices of actions so this is, at least in English,
# an infinitive form
__Choices: Retry, Change mirror, Ignore
_Description: Downloading a file failed:
The installer failed to access the mirror. This may be a problem with your
network, or with the mirror. You can choose to retry the download, select
a different mirror, or ignore the problem and continue without all the
packages from this mirror.
# Default is determined in mirror generators!
Template: apt-setup/use_mirror
Type: boolean
# :sl1:
#flag:translate!:3
_Description: Use a network mirror?
A network mirror can be used to supplement the software that is included
on the CD-ROM. This may also make newer versions of software available.
.
\${EXPLANATION}
Template: apt-setup/no_mirror
Type: boolean
Default: false
# :sl2:
_Description: Continue without a network mirror?
No network mirror was selected.
.
If you are installing from a netinst CD and choose not to use a mirror,
you will end up with only a very minimal base system.
EOF
# Rebrand
replace $UPSTREAM $CODENAME .
replace Ubuntu Trisquel .
replace Kubuntu Triskel .
replace kubuntu triskel .
find | grep kubuntu.*svg | xargs rename s/kubuntu/triskel/
replace Trisquel-Gettext-Domain Ubuntu-Gettext-Domain
## rebrand l18n
## Korean - Fix #27659
replace 우분투 Trisquel .
#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.org/trisquel .
replace security.ubuntu.com/trisquel archive.trisquel.org/trisquel .
replace archive.ubuntu.com archive.trisquel.org .
replace security.ubuntu.com archive.trisquel.org .

Ruben Rodriguez
committed
#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.org/$DIST
wget -r -l1 -np https://archive.trisquel.org/trisquel/dists/$DIST/Release -O $WD/Release
wget -r -l1 -np https://archive.trisquel.org/trisquel/dists/$DIST/Release.gpg -O $WD/Release.gpg
cp $DATA/branding.svgz gui/qt/images/branding.svgz
# Postinstall hacks
cat << EOF1 >> scripts/apt-setup
#Trisquel hack to regenerate ssl keys after installation
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
# Hacks for accessibility
if [ \$(gsettings get com.canonical.a11y-profile-manager active-profile) = "'blindness'" ]
echo "Accessibility profile set to 'blindness', enabling screen reader by default in target system"
echo "[org.mate.applications-at]
[org.mate.applications-at-visual]
startup=true

Ruben Rodriguez
committed
[org.mate.desktop.interface]
[org.gnome.desktop.a11y.applications]
screen-reader-enabled=true
[org.gnome.desktop.interface]
toolkit-accessibility=true
[com.canonical.unity-greeter]
screen-reader=true
" >> /target/usr/share/glib-2.0/schemas/99_accessibility.gschema.override
chroot /target glib-compile-schemas /usr/share/glib-2.0/schemas

Ruben Rodriguez
committed
else
echo "Accessibility profile set to none, disabling screen reader by default in target system"

Ruben Rodriguez
committed
rm /target/home/*/.local/share/orca/user-settings.conf -f
# Fix dependency for triskel
sed '/Package: ubiquity-frontend-kde/,/Depends/s/Depends:/Depends: libkf5kdelibs4support5-bin,/' -i debian/control
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