When you have this many computers (5 at the time of writing this Blog Post!), you start to want variety out of them all so you can get a feel for each computer. One of the computers that I've been having a hard time with settling on an OS for is this Dell Latitude E5430 of mine. It was a hand-me-down from my Dad, who has owned how many of these things and still currently uses them to this day. Originally, he'd installed Linux Mint on these but uhh, as much as I like Linux, I'm not at all a fan of Debian-based distros. For a while this laptop ran Parrot Linux, then Manjaro Linux, and now it's currently using endeavourOS, probably one of the worst Arch-based Linux distros I've ever used. Based on the prior sentence, you can imagine how badly I want to change the OS on it! Now, considering how much Linux I use, and how I really love my Dell Latitude E5500 that runs OpenBSD 7... I wanted to try getting another BSD distribution to work on this. So I first started with FreeBSD and... WTF? It was using 1GB RAM on idle, I swear to God! I actually could not use a Window Manager without FreeBSD having a heart attack! Even DWM was just too damn heavy for it! So, I had to think of another option, I wasn't just gonna have another OpenBSD computer. I like OS variety too much to do that to myself, it's how I ended up becoming sick of Manjaro Linux.
And then, it hit me! NetBSD! OpenBSD was built off of NetBSD by one of the ex-developers, so perhaps with what I knew from OpenBSD I'd be able to find my way around NetBSD. So, the only way I thought such a feat would be possible, was to try using NetBSD in a Virtual Machine. I fired my Dell Optiplex 7010 up and I started up VirtualBox. Okay... BSD, NetBSD, 64-Bit... whatever, I've made VMs plenty of times, this should be just another OS test, right? That's a big part of where I was wrong. I should've learned my lesson from when I used FreeBSD and I attempted to setup DWM/Dmenu/ST! All the BSDs like to use very different code, and it's not like Linux where something like DWM will easily build without much modification of the code. I WAS aware of this going in, but I felt comfortable because of that OpenBSD experience. Is it really gonna be that different? Well...
NetBSD had installed just fine, 0 issues with partitioning my disk, got pkgsrc/pkgin installed and booted in easily. Now... Time for the classic files I always download the moment I start up any freshly installed Unix-based OS: Vim, Git, and Neofetch. It's not... the prettiest Neofetch due to the lack in colours, but it's NetBSD alright! Then we clone the Git repositories for DWM, Dmenu, and ST... Went fine, no issues. I'm feeling quite good at this point so I decide it's time to CD and drop into the folder.
Now, THIS is the point where I was expecting things to go swimmingly. I did make clean, doas make clean install, and read our output. Okay, so like usual, we gotta define our X11 libraries, FontConfig and FreeType2. I make sure I have all the packages installed, and now we find the locations. Unlike FreeBSD and OpenBSD, NetBSD has its X11 folder named X11R7, not sure why but I'm not gonna question it man. So we make sure we have that path in our configs for all of our binaries, and now let's try compiling ST u- Oh, what the hell? I thought we had pkg-config? We do, BUT, it doesn't want to find our pkg-config nor our ft2build.h! We're gonna come back to that later in the blog... Let's just go ahead and compile DWM and Dmenu
Dmenu didn't require a whole lot of changes to it, just enough so that it'd be where I need it. Compile went normal for that too, no issues like the ST compile. With both DWM and Dmenu out of the way, and me feeling like I lifted a huge weight off my shoulders, I got going with trying to figure out ST. pkgsrc/pkgin offers a way to actually manually compile software for NetBSD though it doesn't entirely feature the customization options you'd want with software such as that of Suckless. But, I found the exact configuration in the Makefile that I'd needed to mod ST how I wanted it. Gnarly, let's get to it then!
Cool, there's our folder and the Makefile! This Makefile has been configured by the NetBSD repo maintainers to pull the ST source from Suckless' Git page itself, as one might expect since building anything by Suckless from source is, clearly, the superior method of using anything by Suckless. So, thankfully enough, the main configuration setting I was looking for is present in our Makefile, the font! Let's gussy that up some and write the changes to the Makefile!
And there we go! Finally, ST compiles without any sort of issues! I'm now confident as fuck at this point, I just got everything I wanted to work, or so I thought. Well, time to write our .xinitrc and do a startx!
...Fuck, I guess it's never that easy, is it? There were shared objects that were missing, and I won't lie to you reader, I did not have the drive to change these up... It was worth the shot! But, it's looking like NetBSD on bare metal is a bit of a long ways away, since we've got that to figure out. It's not gonna be hard, I just have to dynamically link that in the DWM folder so DWM knows where that is. I could be wrong, does not hurt to try though, but that's a story for another time. I hope you enjoyed reading this little log of me trying to get some niche OS to work!