Linux compatibilty mknod

Hi all

recently i compiled fossil ( Fossil: Home )
… when i want to use it with fuel ( Fuel: Fuel )…
i found issue:
In the admin panel, Fossil says:

WARNING: Device “/dev/null” is not available for reading and writing.
WARNING: Device “/dev/urandom” is not available for reading

… i try solution found on fossil forum ([fossil-users] /dev/null and /dev/urandom not available ? ) to execute:

mkdir dev
mknod dev/null c 1 3
mknod dev/urandom c 1 9

when execute mknod dev/null c 1 3 it say: mkdod dev/null: not supported…
any idea??

there is /dev/null, random, urandom, and I can read from random and urandom

yes… i’ve been check it too…
it seem fossil itself issue when run as root …
as we know haiku user is always root?

or… can we su to other limited user? (i dont know how it in haiku)

you may create a user with useradd, create a password for it with passwd and impersonate with su

@extrowerk give me explanation on telegram channel…

You said you read the link what i sent to you, so you already know “mknod” creates theese files if they arent exist. But they are definetly exist on Haiku, so you are on the wrong way. The problem is not mknod, not Haiku but your program. Grep where did that error gets printed, check the code, it is 99% it assumes some linuxism about Haiku what you have to fix in the source code.
Your link says : “Are you running the commands above as root? If so, Fossil will
automatically put itself in a chroot jail on the directory containing
the repository and drop root privileges before doing anything else.
This is a security feature.”
On Haiku everything running as root. Fix the fossil source code, remove the user ID check.
Or, as your link says: “Or, you can use the --nojail option on the “fossil server” command, in
which case Fossil will still drop its root privilege but will not
attempt to form a chroot jail. This is less secure, but probably
still plenty safe.”

i’ll try take route that miqlas suggest me…

finally 1 line edit fix this problem… ( thanks @extrowerk)
bypassing code that use for unix and unix-like os

#if !defined(_WIN32) && !defined(HAIKU)

*Underscore underscore HAIKU underscore underscore
Without spaces

  • for reference… and other for hint problem

thank to all

Telegram and the forum engines to mistakenly recognizes __HAIKU__ as markup.
Ofc, he wrote:

#if !defined(_WIN32) && !defined(__HAIKU__)

1 Like