Converting an existing gNewSense install to a Trisquel LTS install
I've been working on a process for converting existing installations of gNewSense to Trisquel LTS. I know the gNewSense team has been working on a new version for a while now, but I think this could also be helpful as a general guide to convert from an existing Ubuntu to Trisquel, for example, without having to reinstall. I'd like some help where applicable.
1) The first step is to disable any third-party repositories you have enabled. You can do this via the Software Sources application. Upon exiting allow it to refresh the package cache. You'll have to manually enable these later, and if needed re-import
2) The second step is to download Trisquel's sources.list and GPG key. Those can be copied from a LiveCD or an existing installation (the files you need are /etc/apt/sources.list and /etc/apt/trusted.gpg). Take note any 3rd-party repositories you'd added will be gone. Is there a way to keep them and just add Trisquel's key and repos to existing ones?
3) sudo apt-get update
4) sudo apt-get dist-upgrade - this will overwrite every package you have installed with the corresponding one from Trisquel's repository. This takes a while, and occasionally it has these popups asking be about services and stuff, which I don't totally understand so I leave the default. Once or twice it asks whose version of something I want, I tell it to install the package maintainer's version, which I hope is the right call.
5) After that, you'll want to install trisquel-specific stuff, so: sudo apt-get install trisquel trisquel-desktop-common trisquel-desktop-common-recommended trisquel-gnome-base trisquel-gnome-base-recommended
6) Reboot (and you should see the Trisquel logo as you boot. The GDM background as well as the GNOME background and panel layout doesn't change. I'm not sure if there's an easy/fast way to change it to Trisquel's. You can change the background and icon theme manually, for example.
So that's all. Can anyone fill in the loose ends? Should we be recommending folks switching from gNewSense? If not, I definitely think switching from Ubuntu is a good thing to promote.
Apologies, but I forgot a few steps afterwards.
sudo apt-get autoremove will remove no-longer needed packages, and sudo apt-get clean will clean up cached downloaded packages.
Check out this manual: Migrate from Ubuntu to Trisquel without reinstalling.
It has a script in there that will allow Ubuntu users to switch to Trisquel without reinstalling. You may be able to adapt it to do what you are looking for.
Thanks! Quite useful. Especially that last section at the end listing the non-free packages. Do those change every release, though?
I would think that listing is taken from the so-called "software blacklist" at http://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines which changes quite frequently. However, some of these packages I can't find listed there, and searching on the web gives me no explanation as to how these packages are not FSDG. It would be helpful to have the script give an explanation as to the problems with each individual package.
I think a better idea is to use apt, which has a filter, I have to look it up specifically, for installed packages that aren't in the repository. What that means is packages that were in Ubuntu but not in Trisquel and are thus non-free. This can be accomplished in Synaptic as well, if you go to Custom Filters it's one or more of those categories, but I need to double check which ones.
Also found a typo the line "#deb $MIRROR $RELEASE-backports main" before the EOF should be #deb-src.
Also, the location of the Trisquel-keyring is incorrect, it's not /var/lib/keyrings as the guide says, but user/share/keyrings. But there's an issue, the guide has you installing the keyring from the repository without actually having the keyring to verify that the keyring wasn't tampered with. A better solution is a wget script with an MD5 hash, I think.
Ah the filter is called "Not Installable". You may have to add it if it's not there - Settings --> Filters --> New --> Name it "Not installable" and only check that option.
However the problem then is that if some of them get removed they want to remove stuff you actually do need. On a default installation that seems to just be "tzdata".
You also want to add a filter for "For removal" and then after you do the first thing select all and mark for *complete* removal to get rid of. Otherwise check a residual config filter.
For me it took several run-throughs of going to Not installable and going to "For removal" and going to "residual config" and finally going to "auto removable" to make sure everything was really gone.
Just not sure about tzdata.
I don't think it's logical to assume that every package Trisquel doesn't include is non-free/non-FSDG merely because it is not included in Trisquel.
Well compared to Ubuntu, Trisquel only removes packages that are not free software or that recommend non-free software, as far as I can tell, as per http://trisquel.info/en/wiki/how-trisquel-made
I can see your point if we're talking about converting a newer Ubuntu to an older Trisquel, say from Ubuntu 10.10 to Trisquel 4 or something, if you're switching between equivalent version my guess is only non-free packages differ. I'll do the process again and list the packages, though, so we can double check.
Packages in Ubuntu 10.04 LTS not found in Trisquel 4 LTS in the default installation:
More info can be found here: http://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines
1) app-install-data-partner - for installing things from Ubuntu's partner repository, which is proprietary software
2) fglrx-modaliases, jockey-common, and jockey-gtk are Ubuntu's programs for installing non-free drivers (usually for Wi-Fi and 3D acceleration) on some devices.
3) libubuntuone-1.0-1 is itself probably free software, I don't know why it's not in Trisquel.
4) linux-firmware is non-free blobs in the kernel
5) nvidia-173-modaliases, nvidia-96-modaliases, and nvidia-current-modaliases are used by the aforementioned jockey program, so I think that's their issue.
6) plymouth-theme-ubuntu-logo isn't in Trisquel's repository, I'm not sure why. Could be that Ubuntu's trademark guidelines don't jibe, or something. Same goes for plymouth-theme-ubuntu-text.
7) python-ubuntuone, python-ubuntuone-client, python-ubuntuone-storageprotocol, and rhythmbox-ubuntuone-musicstore are probably free software. Don't know why they're there.
8) software-center is free software, actually. It does recommend non-free software. Plus it's hard-coded to Ubuntu so it'd be useless to Trisquel unless modified.
9) tzdata, which is free sotware and even in the repositories.
9) ubuntu-docs likely recommends non-free software
10) ubuntu-keyring is used to install/verify non-free packages
11) ubuntu-minimal, ubuntu-standard are metapackages that point to non-free software
12) ubuntu-wallpapers are probably free, but maybe trademark issues?
13) ubuntuone-client and ubuntuone-client-gnome are free, and I don't know why they're listed.
Selecting all and marking for complete removal also removes ubuntu-artwork.
It's possible that the some packages come from third-party repositories and are still free software, but I'm not really worrying about those and there would be no way to keep track of every single program in every single repository - we just worry about our own and upstream.
A biggie is to always have your Home directory in its own /home partition so down the road if you change a distro, you can keep your important stuff separate.
A biggie is to always have your Home directory in its own /home partition so
down the road if you change a distro, you can keep your important stuff
separate.
Today I had to migrate a gNewSense system to Trisquel. I've examined the article in the wiki about migrating Ubuntu to Trisquel, that SirGrant shared. I realized, that the script could easily be updated. The result is now also in the wiki.[1]
[1] https://trisquel.info/en/wiki/migrate-gnewsense-trisquel-without-reinstalling
Here is my update on the process.
I've ended up with broken system. The reason might have been my patch-worked gNewSense system. The script itself and the update was straight-forward, but the upstart daemon did not start, complaining about missing sockets. And after restart it was even messier. The system boot process didn't reach the login/getty screen. This was console system, no GUI. It just "hang" somewhere without useful error messages. The combination Ctrl+Alt+Delete was working, and the system was able to restart. All processes were stopped the proper way, but I could not reach the login screen. It seemed no useful processes were started. I ended up making a clean install, after spending a lot of time trying to fix the system from live images without success. Having a backup is +10000.....0. :)
I've put a warning at the top of the wiki page. I'm not recommending this to anyone. Making a clean install when you have a backup, from where to restore configuration files and data is easier and faster.