/etc/apt/sources.list, GNOME 3.16 release and Jessie RC2

This would be a longish post about lot of topics starting from documenting my /etc/apt/sources.list, going to various goings on with GNOME 3.16 release and Debian Jessie RC2 release.

This is my /etc/apt/sources.list. It is a bit longish as I primarily use Jessie but do take some softwares from unstable/sid and experimental. I stay away from contrib and non-free as far as possible but are shared for completeness.

[$] cat /etc/apt/sources.list
#### testing #########
deb http://http.debian.net/debian/ jessie main contrib non-free
deb-src http://http.debian.net/debian/ jessie main contrib non-free

##### testing-updates, previously known as 'volatile' (only after jessie is released) #########
deb http://http.debian.net/debian jessie-updates main contrib non-free
deb-src http://http.debian.net/debian jessie-updates main contrib non-free

######### Security updates #########
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

#### unstable #########
deb http://http.debian.net/debian unstable main contrib non-free
deb-src http://http.debian.net/debian unstable main contrib

#### experimental #########
deb http://http.debian.net/debian experimental main contrib non-free
deb-src http://http.debian.net/debian experimental main contrib non-free

This would not be complete if I didn’t share /etc/apt/preferences file as well.

[$] cat /etc/apt/preferences
Package: *
Pin: release testing
Pin-Priority: 600

Package: *
Pin: release experimental
Pin-Priority: 1

Package: *
Pin: release unstable
Pin-Priority: 1

What it does is tell I want to explicitly use testing/jessie for all updates. That would need to be changed to Pin : release stable when jessie goes gold/released in couple of weeks/month or couple of months at the latest. Apt-pinning is a topic in itself but as it’s been a bit broken over the last few years just using the above in a coarse manner. You could delve a bit to find more about apt-pinning using #685215. The potential is immense, just needs lots of work 😦

The other interesting part which I changed over the years is using debian.net. http.debian.net is a re-director. What it does is it tries to figure out where you are and which is the closest mirror to you which is updated with the latest package list which is available. This is better than before for number of reasons :-

a. Even if one or more debian-mirrors go down, it doesn’t affect the user – Think of it as .torrent file for updating your /etc/apt/sources.list with trackers being listed at http.debian.net

b. It doesn’t pressurize any one mirror – Each time you run it, the algorithm will use a new mirror, this also makes sure that there is not any one mirror which has to take bulk of the requests and therefore break-down. DDOS attacks and others would fail in this scenario. But for the system to actually work, users need to en-masse start using http.debian.net

Overall, your system and the overall community is served in a much better way.

The next bit of news was expected and came on expected lines. The release of GNOME 3.16 was announced on 25th March 2015. One of the more interesting new apps. is supposed to be ‘Books’. For a long time I have been having issues with using .epub or other e-book formats on the desktop. Finally, there seems to be a solution in the offing from the GNOME stable.

There are improvements for everything but as I am more of a gnome-flashback user rather than GNOME shell for multiple reasons :-

a. My main system drags a bit when using shell.

b. More importantly GNOME-shell is based on the premise that a user wants to do one thing at a time and one thing only. A unitasker. While the premise is good, I have been a person with bad habits from day 1. I usually have either a .torrent or a wget or jigdo or some other download happening in the background, a chatting tool in the background as well apart from the main activity, i.e. browsing, reading, blogging etc. The shell restricts me and I don’t see any gain in using gnome-shell.

c. Have been a gnome-flashback or GNOME 2 user since ever so don’t see that changing anytime soon. I am pretty much happy with the current UI and don’t see any value in changing to shell. I also use mate-desktop as well at times and find it equally comfortable. I have not been much of a lover of fancy GUI’s anyway but more functional ones.

One thing which bothered me was that it seemed netspeed, an applet I have loved forever will be going away soon. I have been using netspeed since I came to know about it/ever (the first release in Debian is shared at 2002, I was using GNU/Linux before that so surely was using it soon as I came to know about it.) . There are other applets which do the same work but I like netspeed because :-

a. It’s a small applet Give-aways and sits in the notification area of gnome-panel without making a nuisance of itself.
b. Doesn’t use much computing resources (read CPU cycles) unlike
other alternatives.

It is going to be a long long while to get GNOME 3.16 in the archive as can be seen here. This is a short list of activities they would need to do a potential packager would need to do in order to get 3.16 in debian. Let’s take netspeed as an e.g.

a. The first thing to do is make a directory where you want to download the source files. For e.g.

~[$] mkdir netspeed-src
~[$] cd netspeed-src

a. Then download the package source from debian. It’s as follows :-

[$]apt-get source netspeed

Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'netspeed' packaging is maintained in the 'Svn' version control system at:
Need to get 808 kB of source archives.
Get:1 http://http.debian.net/debian/ jessie/main netspeed 0.16-3 (dsc) [2,310 B]
Get:2 http://http.debian.net/debian/ jessie/main netspeed 0.16-3 (tar) [792 kB]
Get:3 http://http.debian.net/debian/ jessie/main netspeed 0.16-3 (diff) [14.3 kB]
Fetched 808 kB in 35s (23.1 kB/s)
dpkg-source: info: extracting netspeed in netspeed-0.16
dpkg-source: info: unpacking netspeed_0.16.orig.tar.gz
dpkg-source: info: unpacking netspeed_0.16-3.debian.tar.gz
dpkg-source: info: applying 01_stock_icons.patch
dpkg-source: info: applying 02_dbus.patch
dpkg-source: info: applying 03_gtk3.patch


1. As I am lazy and just wanted to show how to get the sources I am doing it in user-space and not doing a chroot which probably would be the better way of doing things as that would have been the cleanest way to do that.

2. There is another way to do all of that as well.  You would notice that all of those things were  in ‘svn’. The reason this or other packages are in SVN or subversion is there is a huge history of debian-gnome packages in that particular subversion repository. While the gnome-team probably wants to move onto git eventually, a combination of the Debian-gnome developers team being more used to subversion, all packages living in the same subversion repository, the cost and time combinations to move to git along with all the history are the main stumbling blocks. History in particular with anybody even with a hint of intelligence will tell you is important in more ways than once. With subversion log you could probably get more info. of any work that might have done and still not released in the package.

The first thing that you could do is lookup to see which VCS is being used for a particular package. The command is :-

apt-cache showsrc $PACKAGENAME  | grep Vcs

Let’s see how netspeed fares in this :-

[$] apt-cache showsrc netspeed | grep Vcs
Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-gnome/packages/unstable/netspeed
Vcs-Svn: svn://anonscm.debian.org/svn/pkg-gnome/packages/unstable/netspeed
Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-gnome/packages/unstable/netspeed
Vcs-Svn: svn://anonscm.debian.org/svn/pkg-gnome/packages/unstable/netspeed

As can be seen Vcs-Svn is given , let’s see another one to see if we get a different Vcs.

[$] apt-cache showsrc mate-netspeed | grep Vcs
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-netspeed.git;a=summary
Vcs-Git: git://anonscm.debian.org/pkg-mate/mate-netspeed.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-mate/mate-netspeed.git;a=summary
Vcs-Git: git://anonscm.debian.org/pkg-mate/mate-netspeed.git

As can be seen there is a difference between the two, the mate-netspeed is a fork of netspeed utility. The Packagers are using git here hence you see git being mentioned therein.

Another way to do find which Vcs is being used is to go to https://tracker.debian.org/$PACKAGENAME and see on the left-hand side for VCS, that also gives out if the package uses a VCS. While netspeed does as can be seen going through https://tracker.debian.org/pkg/netspeed let’s see if the kernel is also using some VCS https://tracker.debian.org/pkg/linux , now let’s see jitsi https://tracker.debian.org/pkg/jitsi , aha as can be seen jitsi doesn’t use any VCS 😦

Anyways, now let’s checkout the source package using subversion.

[$] svn co svn://anonscm.debian.org/svn/pkg-gnome/packages/unstable/netspeed

A netspeed/debian
A netspeed/debian/compat
A netspeed/debian/control.in
A netspeed/debian/watch
A netspeed/debian/changelog
A netspeed/debian/patches
A netspeed/debian/patches/03_gtk3.patch
A netspeed/debian/patches/series
A netspeed/debian/patches/01_stock_icons.patch
A netspeed/debian/patches/02_dbus.patch
A netspeed/debian/copyright
A netspeed/debian/rules
A netspeed/debian/netspeed_applet2.1
A netspeed/debian/control
A netspeed/debian/source
A netspeed/debian/source/format
A netspeed/debian/netspeed.manpages
Checked out revision 44192
Then go to the directory and check the svn log, in this case the last commit was done in 2013. See :-

/netspeed$ svn log | less

r39018 | jbicha-guest | 2013-07-28 09:51:50 +0530 (Sun, 28 Jul 2013) | 2 lines

use canonical Vcs-* fields

r30490 | biebl | 2011-10-14 20:48:42 +0530 (Fri, 14 Oct 2011) | 1 line

Release version 0.16-3 to unstable

Then you can look into that specific revision/commit and find what it was all about.

[$] svn log --diff -c 39018
r39018 | jbicha-guest | 2013-07-28 09:51:50 +0530 (Sun, 28 Jul 2013) | 2 lines

use canonical Vcs-* fields

Index: debian/control
--- debian/control    (revision 39017)
+++ debian/control    (revision 39018)
@@ -21,7 +21,7 @@
libiw-dev (>= 28~pre9) [linux-any]

If you traverse the log a little bit, you will come across the following commit, I am using the svn log -c REVISION number to make it easier to see :-

[$] svn log -c 27451
r27451 | joss | 2011-04-11 05:25:32 +0530 (Mon, 11 Apr 2011) | 9 lines

* 02_dbus.patch: patch from Carlos Garcia Campos, updated to some
recent changes. Port the applet to D-Bus.
* 03_gtk3.patch: patch from Carlos Garcia Campos. Port the applet to
GTK+ 3.
* Change build-dependencies accordingly.
* 20_applet_category_fix.patch: dropped, obsolete.
* Break gnome-panel < 3.
* Fix build-dependency on wireless-tools to actually use the library.
* Use dh-autoreconf.

Update :- While I manually trawled this, came to know today there is another way I could have done it :-

[$] svn log --search patch

r27451 | joss | 2011-04-11 05:25:32 +0530 (Mon, 11 Apr 2011) | 9 lines

* 02_dbus.patch: patch from Carlos Garcia Campos, updated to some
recent changes. Port the applet to D-Bus.
* 03_gtk3.patch: patch from Carlos Garcia Campos. Port the applet to
GTK+ 3.
* Change build-dependencies accordingly.
* 20_applet_category_fix.patch: dropped, obsolete.
* Break gnome-panel < 3.
* Fix build-dependency on wireless-tools to actually use the library.
* Use dh-autoreconf.

It goes on and on with various patches. Apparently svn log --search became a feature with subversion 1.8 and newer. Am running svn, version 1.8.10 (r1615264) at my end (as that’s the only version in Debian testing and onwards)

I shared the above to show that the patches are put in svn itself. As can be via svn log, we come to know that Joss or Josselin Mouette did those changes.

As can be seen, to put it simply history makes sure that We know what changes were done, when, who did it, why they did it and what changes were done. This ensures that we know at all points of time how development and packaging happened. Take any VCS project, particularly git log and git blame commitid and you will see what it tells. In debian both the manuals of git-log.  git-blame and git-show have excellent documentation as how to use them as well as some reasons as to why they are in the first place. The manuals could be improved for the why part but that’s topic for another day.

Now if you had used the apt-get source way, once the above is done you would have the following directories :-

└─[$] ls
netspeed-0.16/ netspeed_0.16-3.debian.tar.gz netspeed_0.16-3.dsc netspeed_0.16.orig.tar.gz

If you extract the orig.tar.gz you would see the contents are the same as the original source tarball, you can extract it to see contents of the old/original tarball, see the .dsc and see the patches in netspeed-0.16.

Then you could download netspeed from upstream but as it’s now subsumed under gnome-applets now maybe it was not such a good idea to use the example of netspeed for our work. See http://ftp.gnome.org/Public/GNOME/sources/gnome-applets/3.16/ and http://ftp.gnome.org/Public/GNOME/sources/gnome-applets/3.16/gnome-applets-3.16.0.news.

The idea is basically to download the new source tarball or git repo. (in this instance), generate the diff. between the old and new tarball, add it to your local subversion repository, see if the patches need to be fixed in order for that applet to work or it has been with gnome-applets 3.16 and then upload all the work done to the alioth subversion repository.

While doing any of this work, please refer to Debian New Maintainer’s Guide or the packaging-tutorial package as well as Debian Policy. I am not going into packaging much as the documents I shared give more in-depth information of how and what needs to be thought about. Also feel free to look at #debian-mentors as well as #debian-gnome for the teams to help you package and make GNOME 3.16 a reality in Debian. If more and more people were to do packaging, that would be so much sooner than it will be otherwise.

Now for the last bit of news, Jessie RC2 was released just a few days ago, 27th March 2015 to be exact. See the NEWS

If people want to play around with the installer (we specifically need
people to see how grub behaves with UEFI actually). The things you
could do are :-

a. First read the errata around the release –

b. Download an appropriate .iso image given from the list given therein.

c. Make sure to check the sha1sum of the .iso with what is downloaded.
If there is a difference between the sha1sum you get and the sha1sum
given at the site, that means something is wrong. In such a case, if
possible use Jigdo as it will scan either the md5sum or sha1sum of each of the packages and whatever package/packages were corrupted, it will download only those and you get a pristine .iso which should match the checksum of the above .iso.

d.Use the .iso image with some read hardware/bare metal. If it’s not possible then use a VM. (KVM, Qemu, Virtualbox, lxc, docker.)

I do hope everybody knows how to flash/burn .iso images to a thumb drive or a blank CD/DVD

d. Let the .iso image boot and start the installation (make sure to
have something like 1 GB if just using just the base packages in
headless environment, or 2-3 GB if using some task-desktop/Window-Manager.)

e. Boot up in the environment.

f. If the boot, logging into your preferred desktop without an issue,
just file a successful installation report using reportbug and
text-editor of your choice.

g. If something goes wrong at any stage, either during the boot up of
the installer net/CD/DVD media, partitioning, updation of
/etc/apt/sources.list from debian.net or debian.org , during
installation of said tasks or packages, removing all unnecessary
packages after installation of said tasks/packages and finally booting
up, logging in and seeing your new desktop interface.

For reporting of any issues using installation-reports, would recommend first seeing how bug-reports have been filed using installation-reports as can be seen here.

So look forward to see people trying out either Jessie RC2 or help in packaging GNOME or anything else they fancy, till later πŸ™‚

Credits –

a. The Debian-gnome team for all the work they have done so far.

b. Anthony DeRobertis for sharing tips and suggestions (specifically some subversion commands that I had forgotten/rusty as been long time since I used subversion.)

2 thoughts on “/etc/apt/sources.list, GNOME 3.16 release and Jessie RC2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.