Problem is it can’t find mkdev.h:

cpio.c:101:10: fatal error: sys/mkdev.h: No such file or directory
  101 | #include <sys/mkdev.h>
      |          ^~~~~~~~~~~~~

Now a UNIX system, especially both POSIX and SuS is impossible without mkdev.h — at least a shitty wrapper. And when I googled mkdev.h to see the specifics the first result was an LXR.

WHY DO MY SYSTEM HEADERS DON’T HAVE A BASIC UNIX HEADER FILE THAT LOONIX HAS? (OR HAD)

Problem is I really wanna make Heirloom. I whole-heatedly disagree with GPL because RMS drinks children’s blood. I refuse to use free software and in fact I use Pop_OS! which has more binary blobs in it than a 80s musical composer for Disney movies has had dicks in him. Heirloom is based on Solaris’ utilities and they are unfree as my semen is to super modles. I WANT THIS.

joking aside, what is going on here?

ls  -R  /usr/include/ | grep mkdev

Exits with 1. Nothing.

So I guess this is a Pop_OS! thing? Should I install some package to get this header?

Or was it removed from 6.8?

uname -r
=> 6.8.0-76060800daily20240311-generic

Thanks.

  • Oscar@programming.dev
    cake
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    (Preface: i dont know much about this)

    mkdev.h is not available in arch either. I even tried searching the repos with pacman -F mkdev.h.

    Looking up makedev (which I’m assuming is the lib that cpio uses from it) it seems that it is available in sysmacros.h for linux and mkdev.h for solaris, see for example: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/

    So I tried just commenting that include out but got a bunch of other errors about multiple definitions of some enums (defined in cpio.h), and so I gave up.

    I don’t like GNU either but I went the more free route of BSD instead.

    • This is egregious. standards(7) says Linux is both SuS and POSIX. Either mkdev.h is neither and I am wrong, or there’s some shit going on because LXRs list it in older versions of the kernel. In fact if you, I mean me, with my Google recommender system cache, search for ‘mkdev.h’, an LXR comes up! Just stupid and egregious. I was looking forward to running them. But see, time’s moving on from POSIX. People are writing cool supersets of these utilities in Rust. Like: fish, ripgrep, fd, exa and oh so many more! Also, Core Utils is entirely useless now. I just got introduced to the ‘Miller’ utility, an AWK-like string processor that, instead of doing line-based, does key-value. There’s jq too. I think I am the ‘new generation’ of terminal users. I am not very young, 31, but when I started using a PC at 10, it was a Windows XP machine — I did not even get to experience the ‘clunky’ days of graphical shells. But it’s been a while now that I am just constantly using Kitty to interface with my system. Barely use the WM. That’s why I have decided to make my own WM that fuses in a terminal but let’s more on or now.

      So yeah Heirloom Toolchest is useless. But at any case, you wanna try the original AWK, someone has pushed it to most of the repositories for Debian-based systems. sudo apt install oawk. It’s good if you suck Kernighan’s dick whilst fondling Aho’s balls like I do. But besides historical reasons why use it. AWK was made useless in fucking 1985 when Perl came lol.