The Linux Page

one cmake with multiple projects and accessing "setup" files at compile time

So many locations, you need many variables... or instead think of using one common location and find yourselves quickly every time

We have a large project named Snap! C++ which uses cmake to compile everything. It is clear that cmake is the right solution, I don't question that part even one minute. It would be a killer to try to use any other system.

Our environment is pretty large with many libraries, daemons, tools, plugins, scripts... all organized in sub-projects of one large project named snapwebsites. For example, we have the libsnapwebsites library and the snapmanager sub-projects. However, as far as cmake is concerned, this is but one project.

So?

Well... to give you a concrete example, we have a file in ...

BIND parser supports double quoted string with escaped characters

Address book, BIND and is an electronic address fast.

BIND Quoted String Support

I noticed a lack of description of the BIND support for strings in their documentation.

Unfortunately, there are many flags in their parser so truth be told, they support many different cases. First of all, some of the files that they parse do not support quoted strings at all. So I wanted to document what is supported:

No Strings

As I just mentioned, some files do not support strings at all. In that case, the double quote (") character is likely to be viewed as a character on its own.

Also "master" defines the double quote character as a ...

How to prevent a service installed on a Debian system from automatically being enabled

Rocket launch--installation of a service automatically starts that service under Ubuntu

Problem

In our snapwebsites.org environment, we install many daemons.

Most of these daemons are expected to be started as soon as they get installed even if they can't really run properly. For example, the snapserver needs a valid connection the snapdbproxy which requires Cassandra to be ready for the purpose. It still works since snapserver waits on a CASSANDRAREADY signal (sent by snapdbproxy through snapcommunicator.) While waiting, daemons are sleeping so they use their normal share of memory, but no CPU at all.

Now, a few of our daemons need to not be started by default. We ...

The *** expression is faulty *** Open Office Error in Tables

Today I got to work on a document including a few expressions (multiplications and a sum.) That was in a table that looked something like this:

Designation Price Quantity Total
Stuff #1 $10 3 $30
Thing #2 $20 0.5 $10
Other #3 $30 4 $120
Grand Total: $160

In my case, I made a copy/paste of such a table and I went ahead and deleted Thing #2 and Other #3 because I did ...

ERROR 3019 (HY000) at line 1: Undo Log error: No more space left over in system tablespace for allocating UNDO log pages. Please add new data file to the tablespace or check if filesystem is full or enable auto-extension for the tablespace

From a full hard drive to about 20% usage! All due to our MySQL script using the front host IP address.

One of our computers was setup to delete rows from a database. Anything older than 90 days should be deleted. Only the script to run that DELETE had the incorrect IP address and we weren't watching the database closely so it grew to over 107 million rows and on a small VPS that filled up the hard drive.

At that point, trying to run the DELETE command would generate this error:

ERROR 3019 (HY000) at line 1: Undo Log error: No more space left over in system tablespace for allocating UNDO log pages. Please add new data file to the tablespace or check if filesystem is full or enable ...

Not losing the colors with "less" when doing a grep, ls, etc.

A bunch of fruits on a table with five smoothies

Unix in Colors

Whenever I run a command without piping it through less, I generally get colors.

This is true in this century that computer started to use more and more colors in the console. It's practical for all sorts of reasons.

However, you lose those nice colors when you want to use "less" to paginate the results. There are two reasons for that:

Terminal vs. Pipe

The fact is that many tools will check their stdout and determine whether it's a terminal or not. If not, it can generally be assumed that it's a file, a pipe, a variable, etc. and therefore a ...

Ubuntu does not install an MTA by default, so CRON errors go to oblivion!

A message in a bottle, you might as well not ever bother...

Today I learned that by default Ubuntu doesn't install an MTA.

I've been installing Postfix on my computers and never noticed that because it's like part of the things I install even before I start doing anything on my computer.

However, a default basic Ubuntu install comes bare and does not offer a sendmail tool.

Looking at a certain number of computers, I noticed that the /var/mail folder was empty. That in itself wasn't really anything to worry about, but I was still wondering, how come?! I run CRON on those 13 computers and it never fails??? Oh yeah because on my ...

Ubuntu Versions and Names

The Ubuntu Logo using a wood texture

(Picture above represents the logo of Ubuntu, a Linux distribution.)

The following is a list of the Ubuntu Releases with their versions and their name.

Ubuntu Server -- Click to get this book from Amazon and become a master at managing any Ubuntu Server (Note: I'm an affiliate)I find it really annoying when someone says "I have such" and he/she has no clue what version (i.e. 7.10) it is. Then I have to look it up because I don't memorize the numbers to the names, but I know what the numbers entitles.

So... I need a table and I had one on Wikipedia, but that was wiped out. So now, I'll keep my own here and I'll try to keep it up to date. I start with the version Mar 16, 2009 from the Ubuntu ...

Mount an ISO file and Burning it to CD-R/DVD-R/BluRay in Linux

An opened laptop optical drive with a literally burned CD disk showing.

Create ISO File to Burn

When creating a CD you use mkisofs (make ISO file system--ISO stands for International Standard Organization, a non-profit organization used to write standard procedures used in business and other places to better organize interoperability between many companies in the world.)

mkisofs -o my-cd.iso directory

The "directory" are all the files you want to write to the ISO file.

Verify Disk Before Burning

Then you should verify that it looks as you expected. This is done by mounting the ISO file:

sudo mount -o loop my-cd.iso /mnt/cd

Assuming ...

Mounting a VDI disk in your host system to edit the file system

Virtual Mount of Rocks with a Beautiful Sunset in the Background

Ordeal

Today I made a mistake and create the file /etc/sudoers.d/timeout which was definitely not compatible with sudo. The file was JSON when sudo only accepts very basic var=value lines.

Result?

I could not use sudo anymore on that VM. I had to find a way to fix the file system without having to rebuild the entire disk because that would have taken way too long.

How to Mount a VDI File

Since your VDI (VirtualBox Disk Image) files are literally disk files, they should be mountable, right? Yes! They are. Actually, that's certainly exactly what the VirtualBox code does, but ...