Linux Mint From Source (If You Build It, They Will Come) R0.1

dlcusa
  12 years ago
  8

I looked at the Linux From Scratch tutorial and found it lacking. ;-) So let's get it right.

Maybe you want your Linux Mint system to be as fast as your hardware can possibly run by using every feature of the hardware's architecture to permit that and you have enough processing capacity on some machine to recompile every line of the source code into those greased lightning binaries before the end of the month or so.

LFS is first and foremost about teaching people how to build a GNU/Linux system entirely from source code. If after you have completed the curriculum you decide you have no issues with the LFS distribution you can use it however you wish.

But if you then want to build a Linux Mint system from source code instead of installing it from one-size-fits-all binary packages, now you almost know how. The last pieces you need are the source files for Linux Mint, how they are put together, what tools you need to turn them into the customized binaries on your own build machine, and how to use those tools.

Now the Debian system from which Linux Mint and Ubuntu are derived is entirely built from Debianized source packages created and maintained by Debian Developers. All Debian binary packages (.deb files) are created from a Debian source package. All the .deb files for the various hardware architectures supported by a particular Debian package are built from a single Debian source package.

This means Linux Mint (I'm 99% sure) is also built from (possibly modified) Debian source packages using the same Debian packaging tools (possibly themselves modified by the Linux Mint Developers to serve the needs of the Linux Mint Developers) used by the Debian Developers. So, to build Linux Mint From Source, you need to dig into how the Linux Mint Developers build the Linux Mint .debs (hint: dbuild is documented in the Debian Developer's Manual available within the Developer's Corner section of the Debian website — yeah, that's right — see if you can find it. :-) ) and what to put into your build machine's sources.list file to access the Linux Mint source package repositories.

Perhaps a kind Linux Mint Developer (some of whom are also present and/or past Debian Developers) will invest some of his or her copious free time into us by dropping by and pointing us to the documentation we need to absorb to build and maintain Linux Mint From Source.

Or not.  Okay, let's move forward on our own.  We will look at that item about accessing the Linux Mint source package repositories via sources.list or more correctly, /etc/apt/sources.list which is the Debian file that tells the apt package utilities where to find the distribution's repositories.  Linux Mint developers don't require us to know that to install Linux Mint because they encapsulate all that Debian packaging stuff with Update Manager and Synaptic Package Manager.  Since they went to that trouble, let's take a look at the knobs provided that we can twist.

I fired up Update Manager within my XFCE netbook and was presented with this window:

Unfortunately I don't see it (maybe it will get uploaded when I'm finished editing this version of the tutorial).  If not, I will use words to describe a change since the last time I did so.  I have 17 recommended updates now available:  debian-system-adjustments, firefox, firefox-i10n-en-us, mint-artwork-debian, mint-artwork-xfce, mint-backgrounds-debian, mint-backgrounds-xfce, mint-meta-codecs, mint-meta-common, mint-meta-xfce, mintsystem, miintupload, mint-x-theme, monodoc-banshee-manual, thunderbird, thunderbird-i10n-en-us, and xchat-common.  It appears the Lisa Xfce release candidate is looking pretty good and getting close to prime time.  However, that's not why I'm here.

If I click on Edit in the menubar, I get to choose between Preferences and Software sources.  Clicking on the latter, I am provided this new window to consider:
The first tab of this Software Sources window, LinuxMint Software, has many checkboxes under the first header, Downloadable from the Internet. The last is labeled Source code.  I say, that sounds promising!  I'll just click on its checkbox and then the Close button and...  What's this?

It seems Update Manager wants new repository information.  Hmmm, let me take a look at something...  Open a Terminal Window and type cat /etc/apt/sources.list and what do I get?

deb http://mirror.csclub.uwaterloo.ca/linuxmint-packages/ debian main upstream import backport
deb-src http://mirror.csclub.uwaterloo.ca/linuxmint-packages/ debian main upstream import backport #Added by software-properties
deb http://debian.linuxmint.com/gnome2-frozen testing main contrib non-free
deb http://debian.linuxmint.com/gnome2-frozen/multimedia testing main non-free
deb http://debian.linuxmint.com/gnome2-frozen/security testing/updates main contrib non-free

That second line is new.  It's not a deb definition, it's a deb-src definition.  Update Manager must be after that guy.  Okay, I'll tell it to reload... [watch half a commercial] Okay, window closed and the Update Manager window seems no different?  Well, I'll just close it and check out that new URL in my sources.list file by going back to my Terminal Window and commanding it to links2 http://mirror.csclub.uwaterloo.ca/linuxmint-packages and see what I get...

                                        Index of /linuxmint-packages (p1 of 2)
   Computer Science Club Mirror - The University of Waterloo - Funded by MEF   
                                                                               
   [ICO] Name                    Last modified     Size Description            
     ------------------------------------------------------------              
   [DIR] Parent Directory                             -                        
   [DIR] conf/                   13-Nov-2007 21:04    -                        
   [DIR] css/                    25-Mar-2008 18:14    -                        
   [DIR] db/                     18-Apr-2012 14:01    -                        
   [DIR] dists/                  22-Mar-2012 09:39    -                        
   [   ] doctype.php             03-May-2008 12:24 1.3K                        
   [IMG] favicon.ico             25-Mar-2008 18:15 3.7K                        
   [   ] header.php              05-Apr-2010 04:14 4.4K                        
   [DIR] img/                    25-Mar-2008 18:15    -                        
   [   ] import.log              02-Dec-2009 13:46  58K                        
   [TXT] import.sh               26-Jun-2009 05:00 1.7K                        
   [TXT] import_all.sh           26-Jun-2009 04:58  253                        
   [   ] index.php               22-Mar-2012 09:40 4.5K                        
   [   ] index.php.old           12-Jan-2010 09:47  11K                        
   [DIR] js/                     25-Mar-2008 18:17    -                        
   [   ] list.php                20-Oct-2010 05:41 2.1K                        
   [   ] options                 25-Mar-2008 17:44   43                        
   [   ] parse-apt-files.inc.php 04-Jan-2011 10:13  10K                        
   [DIR] pool/                   10-Aug-2009 13:02    -                        
   [DIR] project/                19-Aug-2009 02:24    -                        
   [   ] rules                   27-Oct-2011 13:59 1.2K                        
   [   ] search.php              22-Mar-2012 09:40 2.2K                        
   [TXT] sign_debian.sh          25-Sep-2010 06:06  104                        
   [TXT] sign_gloria.sh          24-Jan-2011 11:03  104                        
   [TXT] sign_helena.sh          31-Oct-2010 07:01  104                        
   [TXT] sign_isadora.sh         30-Sep-2010 11:00  107                        
   [TXT] sign_julia-kde.sh       07-Dec-2011 09:21  191                        
   [TXT] sign_julia-lxde.sh      11-Mar-2011 07:32  116                        
   [TXT] sign_julia.sh           30-Sep-2010 05:24  101                        
   [TXT] sign_katya.sh           22-Feb-2011 05:20  101                        
   [TXT] sign_lisa-kde.sh        12-Dec-2011 04:58  110                        
   [TXT] sign_lisa-lxde.sh       07-Dec-2011 05:06  113                        
   [TXT] sign_lisa.sh            07-Oct-2011 03:41   98                        
   [TXT] sign_maya.sh            22-Mar-2012 09:39   98                        
http://mirror.csclub.uwaterloo.ca/                                            

Hey, look at that sign_maya.sh file—I bet that's the code name for release 13. Didn't The Debian Developer's Guide say something about that pool subdirectory? Let's take a look...

                                             Index of /linuxmint-packages/pool
   Computer Science Club Mirror - The University of Waterloo - Funded by MEF   
                                                                               
   [ICO] Name             Last modified     Size Description                   
     -----------------------------------------------------                     
   [DIR] Parent Directory                      -                               
   [DIR] backport/        13-Jan-2009 05:08    -                               
   [DIR] community/       26-Jun-2009 05:01    -                               
   [DIR] envizions/       11-Aug-2009 15:03    -                               
   [DIR] import/          16-Dec-2010 06:15    -                               
   [DIR] main/            04-Sep-2011 06:32    -                               
   [DIR] romeo/           05-Apr-2012 10:00    -                               
   [DIR] upstream/        31-Oct-2011 08:58    -                               
     -----------------------------------------------------                     
                                                                               
   Current bandwidth utilization 120.12 Mbit/s                                 
                                                                              
http://mirror.csclub.uwaterloo.ca/                                            


Romeo, Romeo, whatfore art thou?  That release is a cross-dresser or unstable or both—does he get all the girls-a, I wonder?
 

Oops, the call to dinner.  More later, faithful readers!

Comments
dlcusa 12 years ago

Hmmm... I lost 5 XPs since that revision was done.
Maybe this tutorial is a CWOT?


dlcusa 12 years ago

Either a LMD will add value or I will as I keep digging for more information. They and I have other things to do as well so the when is unpredictable.


camaropower 12 years ago

It gives an overview what mainly is done to get your own compiled version and that there's nothing different to the original prozess. Maybe there's more to come later.


mikech 12 years ago

This article lacks substance. Its a whole lot of words that basically add up to nothing.