Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Inox browser fails to build at build_ffmpeg.py in sys.exi
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
Goodtobegrateful
n00b
n00b


Joined: 31 May 2018
Posts: 5

PostPosted: Thu May 31, 2018 5:44 am    Post subject: Inox browser fails to build at build_ffmpeg.py in sys.exi Reply with quote

Chromium browser was uninstalled to try to install www-client/inox (a version of Chromium using the inox patch including privacy features such as avoiding to 'phone home' to Google). Its frabjous overlay was installed some while back; my notes aren't very clear from then, but perhaps it went something like the following:

Code:
 
layman-mounter -L
layman-mounter -m frabjous
# install frabjous overlay-
layman -a frabjous
layman-mounter -L
layman-mounter -l
emerge --sync
emerge --info --verbose
portageq repos_config /
emaint sync --allrepos
eix-sync


At any rate, www-client/inox is found when searching for it. I tried to install it earlier as root:
Code:

emerge www-client/inox --autounmask-write --ask
dispatch-conf


I answered use-new to the dispatch-conf question.

It build for about 10 hours until it shutdown because it ran out of battery power after unplugging the overheating notebook on AC power and accidentally didn't get plug it back in. At the time, it installed about 18 packages, including clang. It only had the inox web client left to install.

The Calculate Linux system's update facility later was run, which seemed to uninstall those 18 packages.

The second time inox was attempted to be installed, the ethernet connection was disconnected prematurely, after it had emerged 15 packages and just had inox left to be installed.

On the third attempt, it also failed but please could someone explain what went wrong, other than that it stopped at "File "chromium/scripts/build_ffmpeg.py", line 759, in <module> sys.exit(main(sys.argv[1:]))" :-
Code:

# emerge www-client/inox --autounmask-write --ask

Local copy of remote index is up-to-date and will be used.

 * IMPORTANT: 7 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ~] www-client/inox-67.0.3396.62  USE="cups proprietary-codecs pulseaudio suid tcmalloc -component-build -custom-cflags -gnome-keyring -jumbo-build -kerberos (-neon) -pic (-selinux) (-system-ffmpeg) (-system-icu) (-system-libvpx) -widevine" L10N="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk vi zh-CN zh-TW"

Would you like to merge these packages? [Yes/No] Yes
>>> Verifying ebuild manifests
>>> Running pre-merge checks for www-client/inox-67.0.3396.62
 * Checking for at least 3 GiB RAM ...                                                                             [ ok ]
 * Checking for at least 5 GiB disk space at "/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp" ...    [ ok ]
>>> Emerging (1 of 1) www-client/inox-67.0.3396.62::frabjous
>>> Failed to emerge www-client/inox-67.0.3396.62, Log file:
>>>  '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp/build.log'
>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 2.06, 1.29, 0.76
 * Package:    www-client/inox-67.0.3396.62
 * Repository: frabjous
 * Maintainer: gentoo@chaoslab.org
 * USE:        abi_x86_64 amd64 cups elibc_glibc kernel_linux l10n_am l10n_ar l10n_bg l10n_bn l10n_ca l10n_cs l10n_da l10n_de l10n_el l10n_en-GB l10n_es l10n_es-419 l10n_et l10n_fa l10n_fi l10n_fil l10n_fr l10n_gu l10n_he l10n_hi l10n_hr l10n_hu l10n_id l10n_it l10n_ja l10n_kn l10n_ko l10n_lt l10n_lv l10n_ml l10n_mr l10n_ms l10n_nb l10n_nl l10n_pl l10n_pt-BR l10n_pt-PT l10n_ro l10n_ru l10n_sk l10n_sl l10n_sr l10n_sv l10n_sw l10n_ta l10n_te l10n_th l10n_tr l10n_uk l10n_vi l10n_zh-CN l10n_zh-TW proprietary-codecs pulseaudio suid tcmalloc userland_GNU
 * FEATURES:   preserve-libs sandbox usersandbox
 * Checking for at least 3 GiB RAM ...
 [ ok ]
 * Checking for at least 5 GiB disk space at "/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp" ...
 [ ok ]
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/4.14.39-calculate/build
 * Found sources for kernel version:
 *     4.14.39-calculate
 * Checking for suitable kernel configuration options...
 [ ok ]
>>> Unpacking source...
>>> Unpacking chromium-67.0.3396.62.tar.xz to /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work
>>> Source unpacked in /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work
>>> Preparing source in /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62 ...
 * Applying chromium-widevine-r2.patch ...
 [ ok ]
 * Applying chromium-compiler-r0.patch ...
 [ ok ]
 * Applying chromium-webrtc-r0.patch ...
 [ ok ]
 * Applying chromium-memcpy-r0.patch ...
 [ ok ]
 * Applying chromium-math.h-r0.patch ...
 [ ok ]
 * Applying chromium-stdint.patch ...
 [ ok ]
 * Applying chromium-ffmpeg-r1.patch ...
 [ ok ]
 * Applying chromium-ffmpeg-clang.patch ...
 [ ok ]
 * Applying 0001-fix-building-without-safebrowsing-part1.patch ...
 [ ok ]
 * Applying 0001-fix-building-without-safebrowsing-part2.patch ...
 [ ok ]
 * Applying 0002-fix-building-without-reporting.patch ...
 [ ok ]
 * Applying 0003-disable-autofill-download-manager.patch ...
 [ ok ]
 * Applying 0004-disable-google-url-tracker.patch ...
 [ ok ]
 * Applying 0005-disable-default-extensions.patch ...
 [ ok ]
 * Applying 0006-modify-default-prefs.patch ...
 [ ok ]
 * Applying 0007-disable-web-resource-service.patch ...
 [ ok ]
 * Applying 0008-restore-classic-ntp.patch ...
 [ ok ]
 * Applying 0009-disable-google-ipv6-probes.patch ...
 [ ok ]
 * Applying 0010-disable-gcm-status-check.patch ...
 [ ok ]
 * Applying 0011-add-duckduckgo-search-engine.patch ...
 [ ok ]
 * Applying 0012-branding.patch ...
 [ ok ]
 * Applying 0013-disable-missing-key-warning.patch ...
 [ ok ]
 * Applying 0014-disable-translation-lang-fetch.patch ...
 [ ok ]
 * Applying 0015-disable-update-pings.patch ...
 [ ok ]
 * Applying 0016-chromium-sandbox-pie.patch ...
 [ ok ]
 * Applying 0017-disable-new-avatar-menu.patch ...
 [ ok ]
 * Applying 0018-disable-first-run-behaviour.patch ...
 [ ok ]
 * Applying 0019-disable-battery-status-service.patch ...
 [ ok ]
 * Applying 0021-disable-rlz.patch ...
 [ ok ]
 * Applying 9000-disable-metrics.patch ...
 [ ok ]
>>> Source prepared.
>>> Configuring source in /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62 ...
 * Configuring bundled ffmpeg...
System information:
Host OS       : linux
Target OS     : linux
Host arch     : x64
Target arch   : x64
Parallel jobs : 4

Chromium skipped
Chrome configure/build:
Running /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg/configure
 --disable-everything
 --disable-all
 --disable-doc
 --disable-htmlpages
 --disable-manpages
 --disable-podpages
 --disable-txtpages
 --disable-static
 --enable-avcodec
 --enable-avformat
 --enable-avutil
 --enable-fft
 --enable-rdft
 --enable-static
 --enable-libopus
 --disable-bzlib
 --disable-error-resilience
 --disable-iconv
 --disable-lzo
 --disable-network
 --disable-schannel
 --disable-sdl2
 --disable-symver
 --disable-xlib
 --disable-zlib
 --disable-securetransport
 --disable-faan
 --disable-alsa
 --disable-autodetect
 --enable-decoder=vorbis,libopus,flac
 --enable-decoder=pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3
 --enable-decoder=pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw
 --enable-demuxer=ogg,matroska,wav,flac,mp3,mov
 --enable-parser=opus,vorbis,flac,mpegaudio
 --extra-cflags=-I/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/opus/src/include
 --disable-linux-perf
 --x86asmexe=yasm
 --optflags="-O2"
 --enable-decoder=theora,vp8
 --enable-parser=vp3,vp8
 --enable-lto
 --enable-pic
 --enable-decoder=aac,h264
 --enable-demuxer=aac
 --enable-parser=aac,h264
 
Unknown option "".
See /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg/configure --help for available options.
Traceback (most recent call last):
  File "chromium/scripts/build_ffmpeg.py", line 759, in <module>
    sys.exit(main(sys.argv[1:]))
  File "chromium/scripts/build_ffmpeg.py", line 347, in main
    configure_args, options=options)
  File "chromium/scripts/build_ffmpeg.py", line 739, in ConfigureAndBuild
    configure_flags['Common'] + configure_flags['Chrome'] + configure_args)
  File "chromium/scripts/build_ffmpeg.py", line 731, in do_build_ffmpeg
    options.config_only, branding, configure_flags)
  File "chromium/scripts/build_ffmpeg.py", line 224, in BuildFFmpeg
    [os.path.join(FFMPEG_DIR, 'configure')] + configure_flags, cwd=config_dir)
  File "chromium/scripts/build_ffmpeg.py", line 93, in PrintAndCheckCall
    subprocess.check_call(argv, *args, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg/configure', '--disable-everything', '--disable-all', '--disable-doc', '--disable-htmlpages', '--disable-manpages', '--disable-podpages', '--disable-txtpages', '--disable-static', '--enable-avcodec', '--enable-avformat', '--enable-avutil', '--enable-fft', '--enable-rdft', '--enable-static', '--enable-libopus', '--disable-bzlib', '--disable-error-resilience', '--disable-iconv', '--disable-lzo', '--disable-network', '--disable-schannel', '--disable-sdl2', '--disable-symver', '--disable-xlib', '--disable-zlib', '--disable-securetransport', '--disable-faan', '--disable-alsa', '--disable-autodetect', '--enable-decoder=vorbis,libopus,flac', '--enable-decoder=pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3', '--enable-decoder=pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw', '--enable-demuxer=ogg,matroska,wav,flac,mp3,mov', '--enable-parser=opus,vorbis,flac,mpegaudio', '--extra-cflags=-I/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/opus/src/include', '--disable-linux-perf', '--x86asmexe=yasm', '--optflags="-O2"', '--enable-decoder=theora,vp8', '--enable-parser=vp3,vp8', '--enable-lto', '--enable-pic', '--enable-decoder=aac,h264', '--enable-demuxer=aac', '--enable-parser=aac,h264', '']' returned non-zero exit status 1
 * ERROR: www-client/inox-67.0.3396.62::frabjous failed (configure phase):
 *   (no error message)
 *
 * Call stack:
 *     ebuild.sh, line 124:  Called src_configure
 *   environment, line 5249:  Called die
 * The specific snippet of code:
 *           chromium/scripts/build_ffmpeg.py linux "${ffmpeg_target_arch}" --branding "${ffmpeg_branding}" -- "${build_ffmpeg_args}" || die;
 *
 * If you need support, post the output of `emerge --info '=www-client/inox-67.0.3396.62::frabjous'`,
 * the complete build log and the output of `emerge -pqv '=www-client/inox-67.0.3396.62::frabjous'`.
 * The complete build log is located at '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp/build.log'.
 * The ebuild environment file is located at '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp/environment'.
 * Working directory: '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg'
 * S: '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62'

 * Messages for package www-client/inox-67.0.3396.62:

 * ERROR: www-client/inox-67.0.3396.62::frabjous failed (configure phase):
 *   (no error message)
 *
 * Call stack:
 *     ebuild.sh, line 124:  Called src_configure
 *   environment, line 5249:  Called die
 * The specific snippet of code:
 *           chromium/scripts/build_ffmpeg.py linux "${ffmpeg_target_arch}" --branding "${ffmpeg_branding}" -- "${build_ffmpeg_args}" || die;
 *
 * If you need support, post the output of `emerge --info '=www-client/inox-67.0.3396.62::frabjous'`,
 * the complete build log and the output of `emerge -pqv '=www-client/inox-67.0.3396.62::frabjous'`.
 * The complete build log is located at '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp/build.log'.
 * The ebuild environment file is located at '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/temp/environment'.
 * Working directory: '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg'
 * S: '/var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62'



Thank you!
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1179

PostPosted: Sat Jun 02, 2018 8:27 am    Post subject: Reply with quote

it needs masked ffmpeg-4, and of course is installinig
ffmpeg-4 causes breakages in the system.
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21629

PostPosted: Sat Jun 02, 2018 3:28 pm    Post subject: Reply with quote

From the output, it appears to be using a bundled ffmpeg. That is obviously bad, but if it is bundled, why would the OP's use of a system ffmpeg other than ffmpeg-4 matter? Could you cite where you found the ffmpeg-4 requirement for the frabjous version of inox?
Back to top
View user's profile Send private message
Goodtobegrateful
n00b
n00b


Joined: 31 May 2018
Posts: 5

PostPosted: Sun Jun 03, 2018 5:14 am    Post subject: Reply with quote

Thank you both, @tranquilcool and @Hu, for your very helpful observations! It sounds to me that you must be on the right track (as it failed to build at build_ffmpeg.py, etc) yet I didn't realize until your posts that it seems to be related to a clash with ffmpeg-4!

@Hu, you ask: "Could you cite where you found the ffmpeg-4 requirement for the frabjous version of inox?"

I am not sure if this question is directed to me; at any rate, thanks a lot, but I just ran those overlay instructions as a relative newcomer to Gentoo, and I don't know how to use the USE flags, etc. Ironically, I decided since then to reinstall Calculate Linux (this Gentoo distro), and lo and behold, the Firefox Aurora that is bundled with the OS won't play aac files (at least not at the shoutcast.com page), even though I had tried installing ffmpeg, faac and gst-plugins-faac to try to resolve aac playing in Firefox Aurora to no avail. I suspect that I need to reinstall firefox with some flag, further to some internet searches that I did, but that is another story (I may post a new thread to deal with that). NB: When inox was built at the earlier system install, I don't recall any other codec other than ffmpeg having been installed beforehand as a choice of mine (as an early attempt to get aac and perhaps other codecs to play).

I would be happy to get www-client/inox installed even if it doesn't play aac or require ffmpeg, but this can wait: on another front, after notifying the maintainer by email about this build crash shortly after I started this thread, the maintainer kindly replied that he is looking into this, and that the frabjous overlay is migrating to chaoslab; see https://github.com/csmk/frabjous/blob/master/README.md . Your replies have now been flagged up to him by email. Thanks again for your replies! All the best.
Back to top
View user's profile Send private message
ianmoone
n00b
n00b


Joined: 03 Jun 2018
Posts: 6
Location: /dev/null

PostPosted: Sun Jun 03, 2018 3:00 pm    Post subject: Reply with quote

Hi, I'm the maintainer of said overlay. I came here through the e-mail I received from @Goodtobegrateful.

The initial issue reported by OP, which has:

Code:
Unknown option "".
See /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg/configure --help for available options.


I was able to reproduce it and fixed in this commit. Those extras double quotes was put by me, trying to "fix" some shellcheck's warnings. Sorry about that, lessons learned. :oops:

As for the ffmpeg-4, yes, chromium 67.x does require it, so following the changes in Gentoo's chromium, I've also masked the system-ffmpeg USE flag. Though, personally I'm using ffmpeg-4 just fine, but I do encountered some issues, as reported here, but was easy to workaround.

For now, I recommend that you stick to Inox-66. So far, at least for me, the only way to successfully build Inox-67 is to remove a patch/flag that disables Safe Browsing. I've reported the issue to the maintainers of Inox's patch here.

If you still want to play with Inox-67 and don't mind that the Safe Browsing is not disabled, you can use inox-67.0.3396.62-r100, but that requires you to unmask it. The difference between r0 and r100 is:

Code:
--- inox-67.0.3396.62.ebuild
+++ inox-67.0.3396.62-r100.ebuild
@@ -142,8 +142,6 @@
    "${FILESDIR}/chromium-ffmpeg-r1.patch"
    "${FILESDIR}/chromium-ffmpeg-clang.patch"
 
-   "${FILESDIR}/inox-67/0001-fix-building-without-safebrowsing-part1.patch"
-   "${FILESDIR}/inox-67/0001-fix-building-without-safebrowsing-part2.patch"
    "${FILESDIR}/inox-67/0002-fix-building-without-reporting.patch"
    "${FILESDIR}/inox-67/0003-disable-autofill-download-manager.patch"
    "${FILESDIR}/inox-67/0004-disable-google-url-tracker.patch"
@@ -493,7 +491,7 @@
    myconf_gn+=" enable_remoting=false"
    myconf_gn+=" enable_google_now=false"
    myconf_gn+=" enable_reporting=false"
-   myconf_gn+=" safe_browsing_mode=0"
+   #myconf_gn+=" safe_browsing_mode=0"
 
    myconf_gn+=" symbol_level=0"
    append-cflags -fno-unwind-tables -fno-asynchronous-unwind-tables


Last edited by ianmoone on Mon Jun 04, 2018 9:19 am; edited 3 times in total
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21629

PostPosted: Sun Jun 03, 2018 4:16 pm    Post subject: Reply with quote

Goodtobegrateful wrote:
@Hu, you ask: "Could you cite where you found the ffmpeg-4 requirement for the frabjous version of inox?"

I am not sure if this question is directed to me;
It was not directed to you. Tranquilcool said it "needs masked ffmpeg-4" and "ffmpeg-4 causes breakages in the system". While those statements might be true, they should also be irrelevant under the circumstances. If it needs ffmpeg-4, and you use an unbundled (system) ffmpeg, then your choice of installed system ffmpeg could break the Inox code that uses ffmpeg, but it cannot break the shell statement that simply fails to build ffmpeg.
Goodtobegrateful wrote:
Ironically, I decided since then to reinstall Calculate Linux (this Gentoo distro) ... (I may post a new thread to deal with that).
You can get support for non-Gentoo problems on these forums, but generally, such posts will be sent to Unsupported Software if they start elsewhere, since the Gentoo project does not support non-Gentoo distributions. Forum users are free to support whatever they like, subject to the basic good behavior rules of the forum. Some forum users may support you using Unsupported (by the Gentoo project) Software.
ianmoone wrote:
Hi, I'm the maintainer of said overlay. I came here through the e-mail I received from @Goodtobegrateful.
Welcome to the forum. Whether or not you use Gentoo on a regular basis, you're welcome to lurk or post as you please.
ianmoone wrote:
The initial issue reported by OP, which has:
Code:
Unknown option "".
See /var/calculate/tmp/portage/www-client/inox-67.0.3396.62/work/chromium-67.0.3396.62/third_party/ffmpeg/configure --help for available options.


I was able to reproduce it and fixed in this commit. Those extras double quotes was put by me, trying to "fix" some shellcheck's warnings. Sorry about that, lessons learned. :oops:
A bash zealot will be along shortly to chastise you. ;) As I read the preceding lines, quoting that variable should have been broken for everyone, albeit in different ways. Users who get the empty block fail as shown above. Users who get the --disable-asm choice will pass it with a leading space because the quotes preserve that space. If the upstream configure script strips leading space, that would work fine (but I've never seen a tool do this). If it ignores unhandled arguments (many tools do this, but none should), then --disable-asm would be ineffective for those users because it would not match the spelling the upstream script expected. Since it aborted on the empty argument, probably it would abort for the --disable-asm with a leading space, too.

Since ebuilds are specifically GNU bash (with all the extensions that entails), I think you could also solve this as shown below:
Untested demonstration code:
local build_ffmpeg_args=()
if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
   build_ffmpeg_args+=( --disable-asm )
fi
# ...
chromium/scripts/build_ffmpeg.py linux ... "${build_ffmpeg_args[@]}" ...
For a quick demonstration:
Tested demonstration with output:
$ a=()
$ b=()
$ c=''
$ d=''
$ b+=( --version )
$ d+=" --version"
$ /bin/wc "${a[@]}" < /dev/null
      0       0       0
$ /bin/wc "${b[@]}" < /dev/null
wc (GNU coreutils) 8.28
$ /bin/wc "${c[@]}" < /dev/null
/bin/wc: invalid zero-length file name
$ /bin/wc "${d[@]}" < /dev/null
/bin/wc: ' --version': No such file or directory

Add set -x before running to get a very detailed breakdown of how it works. Use set +x to return your shell to normal afterward.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum