LAB 1: Code Review

For this lab we had to review two different GNU packages under different licenses and see which Version Control Software (VCS) they use to manage source code and versions as well as see how they accept patches, how many people review them, how responsive they are, and what kind of issues were discussed.

The first package was nano under the GNU General Public License. They use git as their VCS which you can view here. This provides a list of all patches that have been pushed to the master branch furthermore you can click on any one of them to see what it added and deleted from the file(s) that were changed. However I could not find a section that comments on patches or any public communication like that. The way that they let people contribute to nano is by creating a branch of the master copy, making the changes you want and then making a formal patch and emailing it to them from there they decide whether or not to implement it.

The second package was glib under the GNU Lesser General Public License.  They also use git as their VCS and their system works the same as nano’s. You make a branch off the master branch, make the changes you want, create a formal patch and then email it to them. I was unable to find any comment sections about certain patches. You can find their git log commits here.

LAB 2: Code Building

For lab 2 we are tasked with finding two GNU packages with different licenses, build them in our own environment and test them to make sure they function. The process may include downloading additional libraries that the packages require in order to compile successfully.

The two packages I chose are nano and  glib. Nano is a utility for editing files and is under the GNU General Public License also known as GNU GPL. Glib is a multi-platform toolkit for creating graphical user interfaces and uses the GNU Lesser General Public License or GNU LGPL.

While building the nano package I ran into issues with dependencies and had to download groff and ncurses as well as configure the ncurses to enable UTF-8 support. After this was done I was able to successfully configure and install nano.

For glib I had to download zlib. Although I installed zlib I was still running into issues configuring glib. As it turns out I had to install the zlib development distribution I found the answer to this here. I also had to download pkg-config. Once I did all this glib configured and installed without issue.

Overall it was not extremely difficult to compile and install these packages they only required a few dependencies to be downloaded.