udisks icon indicating copy to clipboard operation
udisks copied to clipboard

Failed to build on Ubuntu 20.04 LTS

Open gravity64 opened this issue 4 years ago • 3 comments

Hi, While trying to build release 2.9.3 on Ubuntu 20.04 LTS, I got the following error

Making install in data
make[1]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data'
Making install in tmpfiles.d
make[2]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data/tmpfiles.d'
make[3]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data/tmpfiles.d'
make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/lib/tmpfiles.d'
 /usr/bin/install -c -m 644 udisks2.conf '/usr/lib/tmpfiles.d'
make[3]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data/tmpfiles.d'
make[2]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data/tmpfiles.d'
make[2]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data'
  GEN      org.freedesktop.UDisks2.policy
make[3]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data'
make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/local/share/bash-completion/completions'
 /usr/bin/install -c -m 644 completions/udisksctl '/usr/local/share/bash-completion/completions'
 /usr/bin/mkdir -p '/usr/local/share/dbus-1/system.d'
 /usr/bin/install -c -m 644 org.freedesktop.UDisks2.conf '/usr/local/share/dbus-1/system.d'
 /usr/bin/mkdir -p '/usr/local/share/dbus-1/system-services'
 /usr/bin/install -c -m 644 org.freedesktop.UDisks2.service '/usr/local/share/dbus-1/system-services'
  GEN      org.freedesktop.UDisks2.policy
 /usr/bin/mkdir -p '/usr/local/share/polkit-1/actions'
 /usr/bin/install -c -m 644 ./org.freedesktop.UDisks2.policy '/usr/local/share/polkit-1/actions'
/usr/bin/install: cannot stat './org.freedesktop.UDisks2.policy': No such file or directory
make[3]: *** [Makefile:563: install-polkitDATA] Error 1
make[3]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data'
make[2]: *** [Makefile:796: install-am] Error 2
make[2]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data'
make[1]: *** [Makefile:632: install-recursive] Error 1
make[1]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data'
make: *** [Makefile:514: install-recursive] Error 1

The issue is that org.freedesktop.UDisks2.policy isn't actually generated, even if make output seems to indicate it is. If I manually generate it by copy (note there are no template variables):

$ cp data/org.freedesktop.UDisks2.policy.in data/org.freedesktop.UDisks2.policy

I'm able to get past the error and build successfully.

gravity64 avatar Sep 17 '21 09:09 gravity64

Attaching the output of configure/make/install phases

config.log install.log make.log

gravity64 avatar Sep 17 '21 09:09 gravity64

According to your make.log the file should have been generated:

make[3]: Entering directory '/home/ubuntu/x/udisks-2.9.3/data'
cp org.freedesktop.UDisks2.conf.in org.freedesktop.UDisks2.conf
  GEN      org.freedesktop.UDisks2.policy
make[3]: Leaving directory '/home/ubuntu/x/udisks-2.9.3/data'

Can you try calling make V=1 to get verbose output? You should be seeing something like this:

make[3]: Entering directory '/tmp/udisks-2.9.3/data'
cp org.freedesktop.UDisks2.conf.in org.freedesktop.UDisks2.conf
/usr/bin/msgfmt --xml --template org.freedesktop.UDisks2.policy.in -d ../po -o org.freedesktop.UDisks2.policy
make[3]: Leaving directory '/tmp/udisks-2.9.3/data'

tbzatek avatar Sep 21 '21 12:09 tbzatek

@gravity64, any progress?

tbzatek avatar Jan 27 '22 15:01 tbzatek

I just had the same issue. My output for make V=1 install was as follows

Making install in data
make[1]: Entering directory '/home/rgingras/Downloads/udisks-2.9.4/data'
Making install in tmpfiles.d
make[2]: Entering directory '/home/rgingras/Downloads/udisks-2.9.4/data/tmpfiles.d'
make[3]: Entering directory '/home/rgingras/Downloads/udisks-2.9.4/data/tmpfiles.d'
make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/lib/tmpfiles.d'
 /usr/bin/install -c -m 644 udisks2.conf '/usr/lib/tmpfiles.d'
make[3]: Leaving directory '/home/rgingras/Downloads/udisks-2.9.4/data/tmpfiles.d'
make[2]: Leaving directory '/home/rgingras/Downloads/udisks-2.9.4/data/tmpfiles.d'
make[2]: Entering directory '/home/rgingras/Downloads/udisks-2.9.4/data'
: --xml --template org.freedesktop.UDisks2.policy.in -d ../po -o org.freedesktop.UDisks2.policy
make[3]: Entering directory '/home/rgingras/Downloads/udisks-2.9.4/data'
make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/local/share/bash-completion/completions'
 /usr/bin/install -c -m 644 completions/udisksctl '/usr/local/share/bash-completion/completions'
 /usr/bin/mkdir -p '/usr/local/share/dbus-1/system.d'
 /usr/bin/install -c -m 644 org.freedesktop.UDisks2.conf '/usr/local/share/dbus-1/system.d'
 /usr/bin/mkdir -p '/usr/local/share/dbus-1/system-services'
 /usr/bin/install -c -m 644 org.freedesktop.UDisks2.service '/usr/local/share/dbus-1/system-services'
: --xml --template org.freedesktop.UDisks2.policy.in -d ../po -o org.freedesktop.UDisks2.policy
 /usr/bin/mkdir -p '/usr/local/share/polkit-1/actions'
 /usr/bin/install -c -m 644 ./org.freedesktop.UDisks2.policy '/usr/local/share/polkit-1/actions'
/usr/bin/install: cannot stat './org.freedesktop.UDisks2.policy': No such file or directory
make[3]: *** [Makefile:563: install-polkitDATA] Error 1
make[3]: Leaving directory '/home/rgingras/Downloads/udisks-2.9.4/data'
make[2]: *** [Makefile:796: install-am] Error 2
make[2]: Leaving directory '/home/rgingras/Downloads/udisks-2.9.4/data'
make[1]: *** [Makefile:632: install-recursive] Error 1
make[1]: Leaving directory '/home/rgingras/Downloads/udisks-2.9.4/data'
make: *** [Makefile:514: install-recursive] Error 1

I noticed that GEN was expanding to the : instead of /usr/bin/msgfmt and was able to successfully install after getting the gettext package which provides msgfmt on Ubuntu.

runleveldev avatar Dec 29 '22 04:12 runleveldev

I see, thanks for the output. msgfmt detection is taking place during configure:

checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge

If I take it away, configure wouldn't fail:

checking whether NLS is requested... yes
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge

Actually, in a failure case the variable only contains the color character (':'). This is coming from po.m4 from gettext-devel:

  dnl Search for GNU msgfmt in the PATH.
  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
  dnl The second test excludes FreeBSD msgfmt.
  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
    :)

tbzatek avatar Jan 11 '23 16:01 tbzatek