make-ubuntu-release-upgrader 12.7 KB
Newer Older
1 2 3
#!/bin/sh
#
#    Copyright (C) 2008-2010  Rubén Rodríguez <ruben@trisquel.info>
4
#    Copyright (C)      2014  Santiago Rodriguez <santi@trisquel.info>
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#
#    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
#

# Note that you would need to publish and sign the upgrade tarball
# gpg -ba release_name.tar.gz
# Also, don't forget to update the meta-release files at archive and packages.t.i
24
# The "obsoletes" list from ubuntu has been removed
25

26
VERSION=12
27 28 29 30 31 32 33 34 35 36

. ./config

#%FSDG: Remove functions to deal with proprietary drivers
rm ./DistUpgrade/xorg_fix_proprietary.py
rm ./DistUpgrade/NvidiaDetector
sed s/self.checkForNvidia/#self.checkForNvidia/ DistUpgrade/DistUpgradeCache.py -i
#sed s/self._test_and_warn_on_old_nvidia/#self._test_and_warn_on_old_nvidia/  -i DistUpgrade/DistUpgradeQuirks.py
#sed s/self._test_and_warn_on_nvidia_and_no_sse/#self._test_and_warn_on_nvidia_and_no_sse/  -i DistUpgrade/DistUpgradeQuirks.py
sed s/self._test_and_warn_on_dropped_fglrx_support/#self._test_and_warn_on_dropped_fglrx_support/  -i DistUpgrade/DistUpgradeQuirks.py
37 38
sed 's/self._add_extras_repository()/#self._add_extras_repository()/' -i DistUpgrade/DistUpgradeQuirks.py
sed 's/01ubuntu/01backports/' -i DistUpgrade/DistUpgradeController.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 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 199
sed '/nvidia/d' DistUpgrade/build-tarball.sh -i
rm tests/test-data/xorg.conf.fglrx

#https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/990740
cat << EOF >> DistUpgrade/DistUpgradeQuirks.py

    def from_taranisPostInitialUpdate(self):
        logging.debug("Setting APT::Immediate-Configure=false")
        apt.apt_pkg.config.set("APT::Immediate-Configure", "false")
        os.system("apt-get install --force-yes -y libblkid1 lzma dpkg")

    def from_taranisPostCleanup(self):
        logging.debug("Setting APT::Immediate-Configure=true")
        apt.apt_pkg.config.set("APT::Immediate-Configure", "true")
EOF


rm ./DistUpgrade/Ubuntu.info
cat << EOF   > DistUpgrade/Trisquel.info
ChangelogURI: http://packages.trisquel.info/changelogs/pool/%s/%s/%s/%s_%s/%s

Suite: $CODENAME
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
Description: Trisquel $CODENAME
Component: main
Enabled: 1
CompDescription: Trisquel GNU/linux packages

Suite: $CODENAME-security
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
Description: Trisquel $CODENAME Security Updates
Component: main
Enabled: 1
CompDescription: Trisquel GNU/linux packages

Suite: $CODENAME-updates
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
Description: Trisquel $CODENAME Updates
Component: main
Enabled: 1
CompDescription: Trisquel GNU/linux packages

Suite: $CODENAME-backports
RepositoryType: deb
BaseURI: http://archive.trisquel.info/trisquel/
Description: Trisquel $CODENAME Backports
Component: main
Enabled: 1
CompDescription: Trisquel GNU/linux packages
EOF

rm DistUpgrade/ReleaseAnnouncement
cat << EOF >  DistUpgrade/ReleaseAnnouncement
= Welcome to Trisquel GNU/Linux $REVISION '$CODENAME' =

The Trisquel team is proud to announce Trisquel $REVISION '$CODENAME'.
We recommend to apply all pending updates to the system before upgrading.

Trisquel is a fully free operating system based in GNU/Linux, for domestic
users, small enterprises and educational centers.

We hope you enjoy Trisquel.

== Feedback and Helping ==

If you would like to help shape Trisquel, take a look at the list of 
ways you can participate at

  http://trisquel.info/en/wiki/how-help

Your comments, bug reports, patches and suggestions will help ensure
that our next release is the best release of Trisquel ever.  If you feel
that you have found a bug please send it to us via

  http://trisquel.info/project/issues

If you have a question, or if you think you may have found a bug but 
aren't sure, first try asking on the #trisquel IRC channel on Freenode,
on the Trisquel Users mailing list, or on the Trisquel forums:

 http://listas.trisquel.info/
 http://trisquel.info/forum

== More Information ==

You can find out more about Trisquel on our website, IRC channel and wiki.
If you're new to Trisquel, please visit:

  http://trisquel.info

To sign up for future Trisquel announcements, please subscribe to Trisquel's 
very low volume announcement list at:

  http://listas.trisquel.info/mailman/listinfo/trisquel-announce

EOF

rm DistUpgrade/DevelReleaseAnnouncement
cat << EOF >  DistUpgrade/DevelReleaseAnnouncement
This is a development release, do not install on production systems!

EOF

cat DistUpgrade/ReleaseAnnouncement >> DistUpgrade/DevelReleaseAnnouncement

rm DistUpgrade/EOLReleaseAnnouncement
cat << EOF >  DistUpgrade/EOLReleaseAnnouncement
= Trisquel GNU/Linux $REVISION '$CODENAME' is NO LONGER SUPPORTED! =

You are atempting to upgrade to a version of Trisquel that is no longer
supported. Since we do only keep upgrade packages for decomissioned releases
for a while, this upgrade may fail. Try the sandbox method first (by running
update-manager -s) or ask in our forums, lists or irc channels if you are
unsure about this procedure.

Even if the required upgrade packages for $CODENAME are still available, to 
get a currently supported release you  would need to upgrade at least once 
more after this procedure ends, so we recommend you to do a clean install 
using the latest LTS or STS edition.

== Feedback and Helping ==

If you would like to help shape Trisquel, take a look at the list of 
ways you can participate at

  http://trisquel.info/en/wiki/how-help

Your comments, bug reports, patches and suggestions will help ensure
that our next release is the best release of Trisquel ever.  If you feel
that you have found a bug please send it to us via

  http://trisquel.info/project/issues

If you have a question, or if you think you may have found a bug but 
aren't sure, first try asking on the #trisquel IRC channel on Freenode,
on the Trisquel Users mailing list, or on the Trisquel forums:

 http://listas.trisquel.info/
 http://trisquel.info/forum

== More Information ==

You can find out more about Trisquel on our website, IRC channel and wiki.
If you're new to Trisquel, please visit:

  http://trisquel.info

To sign up for future Trisquel announcements, please subscribe to Trisquel's 
very low volume announcement list at:

  http://listas.trisquel.info/mailman/listinfo/trisquel-announce

EOF

rm DistUpgrade/EOLReleaseAnnouncement.html DistUpgrade/ReleaseAnnouncement.html

parsewiki DistUpgrade/EOLReleaseAnnouncement > DistUpgrade/EOLReleaseAnnouncement.html
parsewiki DistUpgrade/ReleaseAnnouncement > DistUpgrade/ReleaseAnnouncement.html
200
parsewiki DistUpgrade/DevelReleaseAnnouncement > DistUpgrade/DevelReleaseAnnouncement.html
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296

rm data/removal_blacklist.cfg
cat <<EOF > data/removal_blacklist.cfg
# blacklist of packages that should never be removed
trisquel-base
trisquel-minimal
trisquel-desktop-common
trisquel
trisquel-mini
triskel
trisquel-sugar
# update-manager should not remove itself
update-manager
update-manager-core
EOF

rm data/mirrors.cfg
cat << EOF > data/mirrors.cfg
http://archive.trisquel.info/trisquel/
ftp://archive.trisquel.info/trisquel/
http://es.archive.trisquel.info/trisquel/
ftp://es.archive.trisquel.info/trisquel/
http://fr.archive.trisquel.info/trisquel/
ftp://fr.archive.trisquel.info/trisquel/
http://nl.archive.trisquel.info/trisquel/
ftp://nl.archive.trisquel.info/trisquel/
http://us.archive.trisquel.info/trisquel/
http://in.archive.trisquel.info/trisquel/
ftp://in.archive.trisquel.info/trisquel/
http://mirror.cedia.org.ec/trisquel.packages/
http://mirrors.serverhost.ro/trisquel/packages/
http://cn.archive.trisquel.info/trisquel/
http://ftp.caliu.cat/pub/distribucions/trisquel/packages
http://mirrors.knoesis.org/trisquel/packages/
http://mirrors.ukfast.co.uk/sites/trisquel.info/
EOF

rm data/DistUpgrade.cfg*
cp $DATA/DistUpgrade.cfg* data/

cat << EOF1 > DistUpgrade/trisquel-postinstall.sh
#!/bin/sh

# Making sure this is gone
apt-get remove --force-yes -y notification-daemon

if ! [ -f /etc/grub.d/01_PASSWORD ]; then
cat << EOF > /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.

echo set superusers=grub
echo password grub \$(bash -c 'echo \$RANDOM')
EOF
fi

# Just in case
update-initramfs -u
update-grub
EOF1
chmod 755 DistUpgrade/trisquel-postinstall.sh


replace changelogs.ubuntu.com packages.trisquel.info .


rpl 11\.04 5\.0 DistUpgrade/*.ui
rpl 11\.04 5\.0 po/* -R
rpl 11\.10 5\.5 DistUpgrade/*.ui
rpl 11\.10 5\.5 po/* -R
rpl 12\.04 6\.0 DistUpgrade/*.ui
rpl 12\.04 6\.0 po/* -R
rpl 14\.04 7\.0 po/* -R
rpl 14\.04 7\.0 DistUpgrade/*.ui -R
replace '14.04' '7.0' . -R
rpl $UPSTREAM $CODENAME . -R
rpl oneiric brigantia . -R
rpl natty dagda . -R
rpl maverick slaine . -R
rpl lucid taranis . -R
rpl karmic awen . -R
rpl jaunty dwyn . -R
rpl hardy robur . -R
rpl lucid taranis . -R
rpl precise toutatis . -R

rm ./data/demoted.cfg ./DistUpgrade/demoted.cfg.hardy ./DistUpgrade/demoted.cfg.lucid
#cp ./utils/demoted.cfg.precise data/demoted.cfg
#cp ./utils/demoted.cfg.precise utils/demoted.cfg
rm utils/demoted.cfg.lucid utils/demoted.cfg.hardy utils/demoted.cfg.dapper utils/demoted.cfg.precise

echo "notification-daemon" > data/demoted.cfg
echo "notification-daemon" $DATA/demoted utils/demoted.cfg

297 298 299 300 301 302 303 304 305 306 307 308 309
sed 's|.ubuntu-bug ubuntu-release-upgrader-core. in a terminal|https://trisquel.info/en/project/issues in a browser.|' DistUpgrade/DistUpgradeCache.py -i
replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "https://trisquel.info/project/issues" .
replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader" "https://trisquel.info/project/issues" .
replace "https*://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "https://trisquel.info/project/issues" .
find -type f |xargs rename 's/ubuntu-release-upgrader/trisquel-release-upgrader/g'
replace  "ubuntu-release-upgrader" "trisquel-release-upgrader" .
mv kubuntu-devel-release-upgrade triskel-devel-release-upgrade
mv tests/test-data-cdrom/ubuntu tests/test-data-cdrom/trisquel
replace old-releases.ubuntu.com oldarchive.trisquel.info

rpl "edubuntu" "trisquel-edu" . -R
rpl "kubuntu" "triskel" . -R
rpl "Kubuntu" "Triskel" . -R
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326
rpl " Ubuntu " " Trisquel " . -R
rpl "Ubuntu " "Trisquel " . -R
rpl " Ubuntu" " Trisquel" . -R
rpl " ubuntu " " trisquel " . -R
rpl "ubuntu " "trisquel " . -R
rpl " ubuntu" " trisquel" . -R
rpl archive.ubuntu.com/ubuntu es.archive.trisquel.info/trisquel . -R
rpl security.ubuntu.com/ubuntu archive.trisquel.info/trisquel . -R
rpl archive.ubuntu.com es.archive.trisquel.info . -R
rpl security.ubuntu.com archive.trisquel.info . -R
sed 's/main restricted" %/main\\n" %/g' DistUpgrade/DistUpgradeController.py -i
rpl "main restricted" "main" DistUpgrade -R
sed 's/,"restricted"//g' DistUpgrade/DistUpgradeController.py -i
#sed 's/","restricted"/\\n"/g' DistUpgrade/DistUpgradeController.py -i
#rpl '10.04' $REVISION DistUpgrade po -R
replace Ubuntu Trisquel . -R
replace Canonical Trisquel . -R
327 328 329 330 331 332 333
replace "https*://www.ubuntu.com/" "https://trisquel.info" .
replace "https*://wiki.ubuntu.com/X/Bugs/" "https://trisquel.info/project/issues" .
replace "https*://wiki.ubuntu.com/" "https://trisquel.info/wiki" .
replace "https*://help.ubuntu.com/community" "https://trisquel.info/wiki" .


/bin/sed -i 's/kubuntu/triskel/g; s/xubuntu/trisquel-mini/g; s/�~Lubuntu/�~Ltrisquel/g; s/被ubuntu/被trisquel/g; s#http://launchpad.net/ubuntu/+source/%s/%s/+changelog#http://trisquel.info/project/issues#g; s/<.*@ubuntu.com/<info@trisquel.info/g; s/ ubuntu\n/ trisquel\n/g; s/ubuntu\ /trisquel\ /g; s/\ ubuntu/\ trisquel/g; s/Ubuntu/Trisquel/g; s/ubuntu-desktop/trisquel-/g; s/www.ubuntu.com/trisquel.info/g; s/www.ubuntulinux.org/trisquel.info/g ' po/*.po $(find -type f | grep py$) $(find -type f | grep '\.glade$')
334 335 336 337 338
replace Trisquel-Gettext Ubuntu-Gettext . -R

sed '1s/trisquel/ubuntu/' debian/control -i
sed '/drivers/d' debian/control -i

339 340 341 342
for i in core gtk qt; do
  sed "/Package: trisquel-release-upgrader-$i/ s/$/\nProvides: ubuntu-release-upgrader-$i/" -i debian/control
done

343 344 345 346
#ubuntu-drivers-common is not a build-dep, nor avaliable in trisquel.
sed -i 's/cp \/usr\/share\/ubuntu-drivers-common\/obsolete/touch/g' DistUpgrade/build-tarball.sh


347 348 349 350
changelog "Compiled for Trisquel"

PARALLEL=false compile