Friday, February 26, 2021

Finding my way

 My last entry was a bunch of compile times with no context.

This post will give the context -hopefully!

First, I want to show why I think I may be on the right track:

iso-image ===> etc
make iso-image started at:  Fri Feb 26 12:57:59 AKST 2021
make iso-image finished at: Fri Feb 26 12:58:01 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Fri Feb 26 12:58:01 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -X /home/random/netbsd9/usr/xsrc -x -m sparc -j 5 -U -u -O /home/random/netbsd9/usr/obj -R /home/random/netbsd9/rel/rel-sparc -T /home/random/netbsd9/tooldir/tooldir-sparc release iso-image
         build.sh started:    Fri Feb 26 12:35:41 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             sparc
         MACHINE_ARCH:        sparc
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/tooldir/tooldir-sparc
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.sparc
         RELEASEDIR path:     /home/random/netbsd9/rel/rel-sparc
         Updated makewrapper: /home/random/netbsd9/tooldir/tooldir-sparc/bin/nbmake-sparc
         Successful make release
         Successful make iso-image
         build.sh ended:      Fri Feb 26 12:58:01 AKST 2021
===> . 

At this point, it seems as if I'm able to compile sparc/32 ...including X...in 23 minutes. That started at 12:35 and ended at 12:58. 

I haven't tested the iso to confirm that there's X on it, however. 

Even if that has messed up (and I've no reason to think it has) I'm still in the right direction. What I'm referring to is using some of the more advanced(ish) features of buildsh. I have set up a per-arch tools dir and built the tools for several architectures. The quick compile time of sparc32 shows that it's paying off. 

I have a shell script that still has some flaws, but will show you the general idea of what I'm trying to do:

$ cat ../makeit.sh
#!/bin/bash
export TTDR=$HOME/netbsd9/tooldir/tooldir-
export RREL=$HOME/netbsd9/rel/rel-
export OOBJ=$HOME/netbsd9/usr/obj
 for x in i386 sparc64
do
mkdir $RREL$x
./build.sh -X ~/netbsd9/usr/xsrc/ -x -m $x -j 5 -U -u -O $OOBJ -R $RREL$x -T $TTDR$x release iso-image

done

I'm setting up the directories, then the enviromental variables and having mixed results. As I was typing this up, my i386 compile crashed -and now I'm trying with arch-specific obj dirs -a change not reflected in the snippet above.

I also need to research how/what buildsh does with DESTDIR and how to set it, too.

Thursday, February 25, 2021

Vax in under an hour...

make iso-image started at:  Thu Feb 25 20:50:56 AKST 2021
make iso-image finished at: Thu Feb 25 20:51:03 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Thu Feb 25 20:51:03 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -m vax -U -O /home/random/netbsd9/usr/obj -T /home/random/netbsd9/arch/amd64 -j 5 release iso-image
         build.sh started:    Thu Feb 25 20:08:36 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             vax
         MACHINE_ARCH:        vax
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/arch/amd64
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.vax
         RELEASEDIR path:     /home/random/netbsd9/usr/obj/releasedir
         Updated makewrapper: /home/random/netbsd9/arch/amd64/bin/nbmake-vax
         Successful make release
         Successful make iso-image
         build.sh ended:      Thu Feb 25 20:51:03 AKST 2021
===> .

 ...well, hmmph.

I ran a traditional/amd64 build with X and that took about 2 hours -but didn't record the time summary. also the make iso part was messed up because I forgot to put "sourcesets" before "iso-image-source".

Still! It takes half the time to compile NetBSD on a Linux VM than it does on a NetBSD VM. 

Hmmmph. 

This is on Debian 10.8, Virtualbox 6.1.18, 4 cores, for whatever that's worth

---

update

---

i386 in almost 90 minutes (again, no X):

make iso-image started at:  Thu Feb 25 22:26:51 AKST 2021
make iso-image finished at: Thu Feb 25 22:26:58 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Thu Feb 25 22:26:58 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -m i386 -U -O /home/random/netbsd9/usr/obj -T /home/random/netbsd9/arch/amd64 -j 5 release iso-image
         build.sh started:    Thu Feb 25 20:58:56 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             i386
         MACHINE_ARCH:        i386
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/arch/amd64
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.i386
         RELEASEDIR path:     /home/random/netbsd9/usr/obj/releasedir
         Updated makewrapper: /home/random/netbsd9/arch/amd64/bin/nbmake-i386
         Successful make release
         Successful make iso-image
         build.sh ended:      Thu Feb 25 22:26:58 AKST 2021
===> .

sun2 in ~45 minutes (no X)

---

iso-image ===> etc
make iso-image started at:  Thu Feb 25 23:13:19 AKST 2021
make iso-image finished at: Thu Feb 25 23:13:34 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Thu Feb 25 23:13:34 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -m sun2 -U -O /home/random/netbsd9/usr/obj -T /home/random/netbsd9/arch/amd64 -j 5 release iso-image
         build.sh started:    Thu Feb 25 22:38:21 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             sun2
         MACHINE_ARCH:        m68000
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/arch/amd64
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.sun2
         RELEASEDIR path:     /home/random/netbsd9/usr/obj/releasedir
         Updated makewrapper: /home/random/netbsd9/arch/amd64/bin/nbmake-sun2
         Successful make release
         Successful make iso-image
         build.sh ended:      Thu Feb 25 23:13:34 AKST 2021
===> .

---

iso-image ===> etc
make iso-image started at:  Fri Feb 26 00:08:14 AKST 2021
make iso-image finished at: Fri Feb 26 00:08:15 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Fri Feb 26 00:08:15 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -m sun3 -U -O /home/random/netbsd9/usr/obj -T /home/random/netbsd9/arch/amd64 -j 5 release iso-image
         build.sh started:    Thu Feb 25 23:23:37 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             sun3
         MACHINE_ARCH:        m68k
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/arch/amd64
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.sun3
         RELEASEDIR path:     /home/random/netbsd9/usr/obj/releasedir
         Updated makewrapper: /home/random/netbsd9/arch/amd64/bin/nbmake-sun3
         Successful make release
         Successful make iso-image
         build.sh ended:      Fri Feb 26 00:08:15 AKST 2021
===> . 

...time passes... 

iso-image ===> etc
make iso-image started at:  Fri Feb 26 12:57:59 AKST 2021
make iso-image finished at: Fri Feb 26 12:58:01 AKST 2021
===> Successful make iso-image
===> build.sh ended:      Fri Feb 26 12:58:01 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -X /home/random/netbsd9/usr/xsrc -x -m sparc -j 5 -U -u -O /home/random/netbsd9/usr/obj -R /home/random/netbsd9/rel/rel-sparc -T /home/random/netbsd9/tooldir/tooldir-sparc release iso-image
         build.sh started:    Fri Feb 26 12:35:41 AKST 2021
         NetBSD version:      9.1_STABLE
         MACHINE:             sparc
         MACHINE_ARCH:        sparc
         Build platform:      Linux 4.19.0-14-amd64 x86_64
         HOST_SH:             /usr/bin/sh
         MAKECONF file:       /etc/mk.conf (File not found)
         TOOLDIR path:        /home/random/netbsd9/tooldir/tooldir-sparc
         DESTDIR path:        /home/random/netbsd9/usr/obj/destdir.sparc
         RELEASEDIR path:     /home/random/netbsd9/rel/rel-sparc
         Updated makewrapper: /home/random/netbsd9/tooldir/tooldir-sparc/bin/nbmake-sparc
         Successful make release
         Successful make iso-image
         build.sh ended:      Fri Feb 26 12:58:01 AKST 2021
===> .

Saturday, February 6, 2021

Note to future self, feb 2021

This blog post details a personal workflow experiment. This is for my own use only -if you found this entry because of google, whatever you should be aware that none of this is recommended. It's shit I'm trying for myself.

At least it compiles!

I was able to build CDE on NetBSD 9.1 by following the instructions and then running:

LANG=C make -k World


Friday, February 5, 2021

Four Seventeen...

 ===> build.sh ended:      Fri Feb  5 03:36:39 AKST 2021
===> Summary of results:
         build.sh command:    ./build.sh -j 5 -u -x -X /usr/xsrc release sets sourcesets iso-image-source
         build.sh started:    Thu Feb  4 23:19:31 AKST 2021
         NetBSD version:      9.99.77
         MACHINE:             amd64
         MACHINE_ARCH:        x86_64
         Build platform:      NetBSD 9.99.77 amd64
         HOST_SH:             /bin/sh
         MAKECONF file:       /etc/mk.conf
         TOOLDIR path:        /usr/src/obj/tooldir.NetBSD-9.99.77-amd64
         DESTDIR path:        /usr/src/obj/destdir.amd64
         RELEASEDIR path:     /usr/src/obj/releasedir
         Updated makewrapper: /usr/src/obj/tooldir.NetBSD-9.99.77-amd64/bin/nbmake-amd64
         Successful make release
         Building sets from pre-populated /usr/src/obj/destdir.amd64
         Built sets to /usr/src/obj/releasedir/amd64/binary/sets
         Successful make sourcesets
         Successful make iso-image-source
         build.sh ended:      Fri Feb  5 03:36:39 AKST 2021
===> .
beasty2021$

Monday, January 25, 2021

A more prudent decision ...?

 I just, just wrote my previous blogpost 12 hours ago -and I've already got a good deal of 2020Q4 built on Debian 10.

It ought to go without saying I'm doing all of this in Virtualbox, as I do with 9/10ths of the other things I write about (with the exception of 86box stuff). But the Debian VM I was building in was built wrong -the disk space was split and arranged oddly.

So this morning I packed up what I had built and then remade another VM -this time with 80 odd gigs and all on one partition, and splatted it back on there.

Ncurses, gcc-10, libcups and harfbuzz all built just fine -but it was building harfbuzz that I discovered that I'd run out of room. I had things build while I slept:

gcc-10

clang

LLVM

harfbuzz

...it turns out that clang and LLVM didn't build; presumably because of space issues. 

Basically, my strategy is the get the problematic builds (ncurses, libcups) built, then the larger ones (gcc-10, clang) ...after that, I'll tackle widget libraries (gtk,wxwidgets and qt) and hopefully after that I'll be able to build packages such as codeblocks and libreoffice.

The title refers to my move (back) to building on Debian instead of Centos. I know where Debian is going to be and what they'll be doing 5 years from now. IBM -not so much. I might be more interested in riding out the Centos drama if I was invested in the RedHat ecosystem to begin with -but I'm not. I've always preferred Mint, Debian or Ubuntu (in that order).

Mind you, the Centos VM feels cozy as a desktop, and I can see myself possibly setting up a RHEL or a "Rocky" Or a "AlmaLinux" secondary desktop in the future -but for the purposes of learning pkgsrc on Linux I think my time is better spent getting things working on Debian. Like I say, I know where they'll be 5 or 10 years from now.

Crossing the Stream; pkgsrc and Linux Contrarianism

For the last month the Linux world has been in an uproar about IBM Redhat changing CentOS from a RHEL clone to a RHEL beta. 

We have forks and everything -personally speaking, my money is on this one.

In response Redhat's expanded their developer's program -but that's not really interesting to me. At least not at the moment. I've been sitting on a Redhat Developer account since 2015 or 2016 (when they made it free) but I've never really been thrilled with Redhat -going back to when I bought 5.2 in 1998.

But for some reason I'm uncertain about, I'm interested in seeing if I can use pkgsrc on top of Centos/Streams. 

I'm not sure why, except I like the idea of providing a one-and-done newish platform on top of Centos -which, with streams, honestly won't be terribly different than Ubuntu Server (in terms of stability). I also see it in an odd (and possibly incorrect) hedge against low-level breakage on Streams. 

I'm on my 2nd day of building on here and have already worked some things out:

I've learned that post-install I need to add the ncurses-devel and gcc-c++ packages. 

For libcups/cups to compile I've made the following changes to /usr/pkgsrc/share/mk/platform/Linux.mk

[random@deadrat-localdomain ~]$ cat /usr/pkgsrc/mk/platform/Linux.mk |grep ULI

ULIMIT_CMD_datasize?=   /usr/bin/ulimit -d `/usr/bin/ulimit -H -d`

ULIMIT_CMD_stacksize?=  /usr/bin/ulimit -s `/usr/bin/ulimit -H -s`

ULIMIT_CMD_memorysize?= /usr/bin/ulimit -m `/usr/bin/ulimit -H -m`

ULIMIT_CMD_cputime?=    /usr/bin/ulimit -t `/usr/bin/ulimit -H -t`

Then I build (in order): ncurses, gcc10, clang, python27, python38, python39, flex,bison, gdb, screen,sudo,fonts/harfbuzz 

Doing it randomly seems to cause fonts/harfbuzz to break. 

People complain that RHEL/Centos' packages etc are too old, but that might actually be a mark in their favor when it comes to pkgsrc. At least, I haven't gotten this far before on Debian, Ubuntu or Fedora.

Which makes me nervous for when I try to build this on one of those -I suspect their systems may well be too new.


Finding my way

 My last entry was a bunch of compile times with no context. This post will give the context -hopefully! First, I want to show why I think I...