Checking mkisofs failed... (Gentoo)

Hi everyone. I am using Gentoo to build OpenWRT, make download fails at the step:

WARNING: Makefile 'package/feeds/packages/dynapoint/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/routing/luci-app-cjdns/Makefile' has a dependency on 'luci-compat', which does not exist
WARNING: Makefile 'package/feeds/routing/luci-app-cjdns/Makefile' has a dependency on 'luci-base', which does not exist
WARNING: Makefile 'package/feeds/packages/openthread-br/Makefile' has a dependency on 'luci-base', which does not exist
WARNING: Makefile 'package/feeds/packages/openwisp-config/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/prometheus-node-exporter-lua/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/prometheus-node-exporter-lua/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/uspot/Makefile' has a dependency on 'liblucihttp-ucode', which does not exist
WARNING: Makefile 'package/feeds/packages/dynapoint/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/routing/luci-app-cjdns/Makefile' has a dependency on 'luci-compat', which does not exist
WARNING: Makefile 'package/feeds/routing/luci-app-cjdns/Makefile' has a dependency on 'luci-base', which does not exist
WARNING: Makefile 'package/feeds/packages/openthread-br/Makefile' has a dependency on 'luci-base', which does not exist
WARNING: Makefile 'package/feeds/packages/openwisp-config/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/prometheus-node-exporter-lua/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/prometheus-node-exporter-lua/Makefile' has a dependency on 'luci-lib-nixio', which does not exist
WARNING: Makefile 'package/feeds/packages/uspot/Makefile' has a dependency on 'liblucihttp-ucode', which does not exist
make[2]: Entering directory '/home/yaslam/Git/openwrt-image-optiplex/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/yaslam/Git/openwrt-image-optiplex/scripts/config'
make[4]: Entering directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux'
make[5]: Entering directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux/x86'
make[6]: Entering directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux/x86/image'
Checking 'mkisofs'... failed.

: Please install mkisofs.

make[6]: *** [/home/yaslam/Git/openwrt-image-optiplex/include/prereq.mk:9: prereq] Error 1
make[6]: Leaving directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux/x86/image'
make[5]: *** [Makefile:24: image-prereq] Error 2
make[5]: Leaving directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux/x86'
make[4]: *** [Makefile:12: prereq] Error 2
make[4]: Leaving directory '/home/yaslam/Git/openwrt-image-optiplex/target/linux'
time: target/linux/prereq#0.42#0.17#0.56
    ERROR: target/linux failed to build.
make[3]: *** [target/Makefile:32: target/linux/prereq] Error 1
make[2]: *** [target/Makefile:24: /home/yaslam/Git/openwrt-image-optiplex/staging_dir/target-x86_64_musl/stamp/.target_prereq] Error 2
make[1]: *** [/home/yaslam/Git/openwrt-image-optiplex/include/toplevel.mk:211: prereq] Error 2
make: *** [/home/yaslam/Git/openwrt-image-optiplex/include/toplevel.mk:231: tools/flock/compile] Error 2

mkisofs is in /usr/bin:

yaslam@gentoo ~/Git/openwrt$ /usr/bin/mkisofs                         
mkisofs: Missing pathspec.                                  
Usage: mkisofs [options] [-find] file... [find expression]  

Use mkisofs -help                                           
to get a list all of valid options.                         

Use mkisofs -find -help                                     
to get a list of all valid -find options.

So why can make not find mkisofs??

Thanks

Is it in your path? Or in the path of the user you're running the build commands under.

1 Like

(execute it without you specifying the full path)

yes:

yaslam@gentoo ~/Git/openwrt$ mkisofs
mkisofs: Missing pathspec.
Usage: mkisofs [options] [-find] file... [find expression]

Use mkisofs -help
to get a list all of valid options.

Use mkisofs -find -help
to get a list of all valid -find options.

Most important Options:
        -posix-H                Follow sylinks encountered on command line
        -posix-L                Follow all symlinks
        -posix-P                Do not follow symlinks (default)
        -o FILE, -output FILE   Set output file name
        -R, -rock               Generate Rock Ridge directory information
        -r, -rational-rock      Generate rationalized Rock Ridge directory info
        -J, -joliet             Generate Joliet directory information
        -print-size             Print estimated filesystem size and exit
        -UDF                    Generate UDF file system
        -dvd-audio              Generate DVD-Audio compliant UDF file system
        -dvd-video              Generate DVD-Video compliant UDF file system
        -dvd-hybrid             Generate a hybrid (DVD-Audio/DVD-Video) compliant UDF file system
        -iso-level LEVEL        Set ISO9660 level (1..3) or 4 for ISO9660 v 2
        -V ID, -volid ID        Set Volume ID
        -graft-points           Allow to use graft points for filenames
        -M FILE, -prev-session FILE     Set path to previous session to merge

/home/yaslam/.local/bin:/home/yaslam/gems/bin:/home/yaslam/bin:/home/yaslam/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/bin:/usr/lib/llvm/19/bin

and you're fulfilling the rest of the prereqs from https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem ?

what's the output of mkisofs -version ?

The check is here:

And SetupHostCommand is defined here:

So I guess one of the first 3 checks needs to pass.

You can try calling make V=s ... to get a more verbose output.

1 Like

1:

Yes I installed all the required packages with:

echo \
app-arch/{bzip2,sharutils,unzip,zip} sys-process/time \
app-text/asciidoc \
dev-libs/{libusb-compat,libxslt,openssl} dev-util/intltool \
dev-vcs/{git,mercurial} net-misc/{rsync,wget} \
sys-apps/util-linux sys-devel/{bc,bin86,dev86} \
sys-libs/{ncurses,zlib} virtual/perl-ExtUtils-MakeMaker \
| sed "s/\s/\n/g" \
| sort \
| sudo tee /etc/portage/sets/openwrt-prerequisites \
&& sudo emerge -DuvNa "@openwrt-prerequisites"

From: https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem#gentoo

2:

yaslam@gentoo ~/Git/optiplex$ mkisofs --version
mkisofs 3.02a09 (x86_64-pc-linux-gnu)

Copyright (C) 1993-1997 Eric Youngdale
Copyright (C) 1997-2017 Joerg Schilling
Copyright (C) 1997-2001 James Pearson
Copyright (C) 2006      HELIOS Software GmbH

what does genisoimage say then ?

[frollic@atlantis ~]$ mkisofs --version
mkisofs 2.01 is not what you see here. This line is only a fake for too clever
GUIs and other frontend applications. In fact, this program is:
genisoimage 1.1.11 (Linux)
[frollic@atlantis ~]$ genisoimage  -version
genisoimage 1.1.11 (Linux)
[frollic@atlantis ~]$

Not installed.

yaslam@gentoo ~/Git/optiplex$ genisoimage
bash: genisoimage: command not found

that's probably what you need then.
might need to uninstall the other one.

1 Like

The check is mkisofs -v is though. Does that work?

No:

yaslam@gentoo ~/Git/optiplex$ mkisofs -v
Setting input-charset to 'UTF-8' from locale.
3.02a09 (x86_64-pc-linux-gnu)
mkisofs: Missing pathspec.
Usage: mkisofs [options] [-find] file... [find expression]

Use mkisofs -help
to get a list all of valid options.

Use mkisofs -find -help
to get a list of all valid -find options.

Well, there you go. You might have an incompatible version (or the check is wrong/outdated). Try the other utilities from the check instead.

Edit: I might have misread what SetupHostCommand does.

1 Like

how about you post how you solved it, it'll help others asking the same question ... ?

1 Like

Solved by installing xorriso from https://www.gnu.org/software/xorriso/#download.

1 Like

Looks like even the SDK is using genisoimage:

$ ls -lh `which mkisofs`
lrwxrwxrwx. 1 root root 11 Feb  4  2021 /usr/bin/mkisofs -> genisoimage
1 Like

There's no package for genisoimage in Gentoo so had to use xorriso (which isn't packaged either).

Nevermind, xorriso is packaged but under dev-libs/libisoburn.

In the future you should consider using the containerized ImageBuilder/SDK which come with batteries included, i.e. all the bits and bobs to build images or packages out of the box.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.