Closed Lucretia closed 4 years ago
emerge --info '=dev-lang/elm-compiler-0.19.0-r1::haskell':
Portage 2.3.94 (python 3.6.10-final-0, default/linux/amd64/17.0/desktop/plasma, gcc-9.3.0, glibc-2.30-r5, 5.6.0-rc5 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-5.6.0-rc5-x86_64-AMD_FX-tm-8350_Eight-Core_Processor-with-gentoo-2.7 KiB Mem: 32787908 total, 3742476 free KiB Swap: 67108860 total, 66803452 free Head commit of repository gentoo: 47406ee9a9fbdc6e67c5e840a71eb5d771845541 Timestamp of repository poly-c: Sat, 21 Mar 2020 10:26:24 +0000 sh bash 5.0_p16 ld GNU ld (Gentoo 2.32 p2) 2.32.0 app-shells/bash: 5.0_p16::gentoo dev-java/java-config: 2.2.0-r4::gentoo dev-lang/perl: 5.30.1::gentoo dev-lang/python: 2.7.17-r1::gentoo, 3.6.10::gentoo, 3.7.7::gentoo, 3.8.2::gentoo, 3.9.0_alpha4::gentoo dev-util/cmake: 3.14.6::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.7::poly-c sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.18::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.13.4-r2::gentoo, 1.15.1-r2::gentoo, 1.16.1-r2::gentoo sys-devel/binutils: 2.30-r3::gentoo, 2.31.1-r4::gentoo, 2.32-r1::gentoo, 2.33.1::gentoo, 2.34::gentoo sys-devel/gcc: 7.3.0-r3::gentoo, 8.2.0-r6::gentoo, 8.3.0-r1::gentoo, 9.1.0-r1::gentoo, 9.2.0-r4::gentoo, 9.3.0::gentoo sys-devel/gcc-config: 2.2.1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.5::gentoo (virtual/os-headers) sys-libs/glibc: 2.30-r5::gentoo Repositories: gentoo location: /usr/portage sync-type: git sync-uri: https://github.com/gentoo/gentoo.git priority: -1000 ai location: /home/laguest/src/gentoo-overlays/ai masters: gentoo priority: 20 amd location: /home/laguest/src/gentoo-overlays/amd masters: gentoo priority: 20 fp location: /home/laguest/src/gentoo-overlays/fp masters: gentoo priority: 20 rocm location: /home/laguest/src/gentoo-overlays/rocm masters: gentoo priority: 20 lucretia location: /home/laguest/src/gentoo-overlays/lucretia masters: gentoo priority: 30 audio-overlay location: /var/lib/layman/audio-overlay sync-type: laymansync sync-uri: https://github.com/gentoo-audio/audio-overlay.git masters: gentoo priority: 50 bloody location: /var/lib/layman/bloody sync-type: laymansync sync-uri: https://github.com/bloodywing/bloody.git masters: gentoo priority: 50 dlang location: /var/lib/layman/dlang sync-type: laymansync sync-uri: https://github.com/gentoo/dlang.git masters: gentoo priority: 50 dotnet location: /var/lib/layman/dotnet sync-type: laymansync sync-uri: https://github.com/gentoo/dotnet.git masters: gentoo priority: 50 go-overlay location: /var/lib/layman/go-overlay sync-type: laymansync sync-uri: https://github.com/Dr-Terrible/go-overlay.git masters: gentoo priority: 50 haskell location: /var/lib/layman/haskell sync-type: laymansync sync-uri: https://github.com/gentoo-haskell/gentoo-haskell.git masters: gentoo priority: 50 java location: /var/lib/layman/java sync-type: laymansync sync-uri: https://anongit.gentoo.org/git/proj/java.git masters: gentoo priority: 50 kde location: /var/lib/layman/kde sync-type: laymansync sync-uri: https://anongit.gentoo.org/git/proj/kde.git masters: gentoo priority: 50 lisp location: /var/lib/layman/lisp sync-type: laymansync sync-uri: https://anongit.gentoo.org/git/proj/lisp.git masters: gentoo priority: 50 poly-c location: /var/lib/layman/poly-c sync-type: laymansync sync-uri: rsync://rsync.gentoofan.org/poly-c masters: gentoo priority: 50 qt location: /var/lib/layman/qt sync-type: laymansync sync-uri: https://anongit.gentoo.org/git/proj/qt.git masters: gentoo priority: 50 steam-overlay location: /var/lib/layman/steam-overlay sync-type: laymansync sync-uri: https://github.com/anyc/steam-overlay.git masters: gentoo priority: 50 4nykey location: /var/lib/layman/4nykey sync-type: laymansync sync-uri: https://github.com/4nykey/4nykey.git masters: gentoo priority: 60 graphics-tablet location: /home/laguest/src/gentoo-overlays/graphics-tablet masters: gentoo priority: 70 promedia location: /home/laguest/src/gentoo-overlays/promedia masters: gentoo priority: 70 Installed sets: @llvm, @mesa ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.6/conf" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://mirror.bytemark.co.uk/gentoo/ http://mirror.bytemark.co.uk/gentoo/ rsync://mirror.bytemark.co.uk/gentoo/ http://mirrors.evowise.com/gentoo/ http://www.mirrorservice.org/sites/distfiles.gentoo.org/ ftp://ftp.mirrorservice.org/sites/distfiles.gentoo.org/ rsync://rsync.mirrorservice.org/distfiles.gentoo.org/" LANG="en_GB.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac aacs acl acpi activities ada alsa amd64 amr amrenc berkdb bluetooth bluray branding brightness-control browser-integration bzip2 cairo cdda cdio cdr celt cli collada color-management colorio cpudetection crypt cups dbus declarative display-manager dri dssi dts dvd dvdr elogind emboss encode exif fdk ffmpeg fftw flac fontconfig fortran frei0r gdbm gif gpm grub gstreamer gtk gtk2 iconv icu imagemagick ipv6 jack jack-session jpeg kde kipi kvazaar kwallet ladspa lash lcms ldap libilbc libnotify librtmp libsamplerate libsoxr libtirpc libv4l llvm lm_sensors lv2 mad matroska mng modplug mp3 mp4 mpeg mtp multilib musepack ncurses networkmanager nls nptl ocr ogg omxil opencl opencv openexr opengl openh264 openimageio openmp opus osc pam pango pcre pdf phonon plasma png policykit ppds pulseaudio qalculate qml qt5 readline rtaudio rubberband s3tc sasl scanner schroedinger sdk sdl seccomp semantic-desktop spell split-usr ssdm ssl startup-notification svg tcpd theora tiff truetype udev udisks unicode upower usb v4l vaapi vc vdpau vorbis vpx vst vulkan wallpapers wavpack wayland webp widgets wxwidgets x264 x265 xattr xcb xcomposite xml xv xvid zlib" ABI_X86="64 32" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx fma3 f16c fma4 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev keyboard libinput mouse wacom" KERNEL="linux" L10N="en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="AMDGPU ARM AVR MSP430 Mips WebAssembly" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_6 python3_7 python3_8" RUBY_TARGETS="ruby26" SANE_BACKENDS="snapscan" USERLAND="GNU" VIDEO_CARDS="amdgpu radeon radeonsi virgl" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
emerge -pqv '=dev-lang/elm-compiler-0.19.0-r1::haskell':
[ebuild N ] dev-lang/elm-compiler-0.19.0-r1 USE="-dev -doc -hscolour -profile"
build.log:
[32;01m * [39;49;00mPackage: dev-lang/elm-compiler-0.19.0-r1 [32;01m * [39;49;00mRepository: haskell [32;01m * [39;49;00mMaintainer: haskell@gentoo.org [32;01m * [39;49;00mUSE: abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU [32;01m * [39;49;00mFEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox >>> Unpacking source... >>> Unpacking elm-compiler-0.19.0.tar.gz to /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work >>> Source unpacked in /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work >>> Preparing source in /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0 ... [32;01m*[0m CHDEP: 'language-glsl >= 0.0.2 && < 0.3' -> 'language-glsl >= 0.0.2' [32;01m*[0m CHDEP: 'containers >= 0.5.8.2 && < 0.6' -> 'containers >= 0.5.8.2' >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0 ... [33;01m*[0m No Setup.lhs or Setup.hs found. Either add Setup.hs to package or call cabal-mksetup from ebuild [32;01m*[0m Creating 'Setup.hs' for 'Simple' build type. [32;01m*[0m Using cabal-2.4.0.1. [32;01m*[0m Prepending /usr/lib64/ghc-8.6.5 to LD_LIBRARY_PATH /usr/bin/ghc -package Cabal-2.4.0.1 --make /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0/Setup.hs -j5 +RTS -A256M -qb0 -RTS -threaded -dynamic -o setup [1 of 1] Compiling Main ( /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0/Setup.hs, /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0/Setup.o ) Linking setup ... ./setup configure --ghc --prefix=/usr --with-compiler=/usr/bin/ghc --with-hc-pkg=/usr/bin/ghc-pkg --prefix=/usr --libdir=/usr/lib64 --libsubdir=elm-compiler-0.19.0/ghc-8.6.5 --datadir=/usr/share/ --datasubdir=elm-compiler-0.19.0/ghc-8.6.5 --ghc-options=-j5 +RTS -A256M -qb0 -RTS --with-ar=x86_64-pc-linux-gnu-ar --ghc-option=-optc-march=native --ghc-option=-optc-O2 --ghc-option=-optc-pipe --ghc-option=-optl-Wl,-O1 --ghc-option=-optl-Wl,--as-needed --disable-executable-stripping --docdir=/usr/share/doc/elm-compiler-0.19.0-r1 --verbose --enable-shared --enable-executable-dynamic --sysconfdir=/etc --disable-library-stripping --flags=-dev Using Parsec parser Configuring elm-0.19.0... Flags chosen: dev=False Dependency HTTP >=4000.2.5 && <4000.4: using HTTP-4000.3.14 Dependency SHA -any: using SHA-1.6.4.4 Dependency ansi-terminal ==0.8.*: using ansi-terminal-0.8.2 Dependency ansi-wl-pprint >=0.6.8 && <0.7: using ansi-wl-pprint-0.6.8.2 Dependency base >=4.8 && <5: using base-4.12.0.0 Dependency binary ==0.8.*: using binary-0.8.6.0 Dependency bytestring >=0.9 && <0.11: using bytestring-0.10.8.2 Dependency containers >=0.5.8.2: using containers-0.6.0.1 Dependency directory >=1.2.3.0 && <2.0: using directory-1.3.3.0 Dependency edit-distance ==0.2.*: using edit-distance-0.2.2.1 Dependency file-embed -any: using file-embed-0.0.11.2 Dependency filepath >=1 && <2.0: using filepath-1.4.2.1 Dependency ghc-prim -any: using ghc-prim-0.5.3 Dependency haskeline -any: using haskeline-0.7.4.3 Dependency http-client ==0.5.*: using http-client-0.5.14 Dependency http-client-tls ==0.3.*: using http-client-tls-0.3.5.3 Dependency http-types >=0.9 && <1.0: using http-types-0.12.3 Dependency language-glsl >=0.0.2: using language-glsl-0.2.1 Dependency logict -any: using logict-0.7.0.2 Dependency mtl >=2.2.1 && <3: using mtl-2.2.2 Dependency network >=2.4 && <2.7: using network-2.6.3.6 Dependency parsec -any: using parsec-3.1.13.0 Dependency process -any: using process-1.6.5.0 Dependency raw-strings-qq -any: using raw-strings-qq-1.1 Dependency scientific -any: using scientific-0.3.6.2 Dependency snap-core -any: using snap-core-1.0.4.1 Dependency snap-server -any: using snap-server-1.1.1.1 Dependency template-haskell -any: using template-haskell-2.14.0.0 Dependency text ==1.*: using text-1.2.3.1 Dependency time -any: using time-1.8.0.2 Dependency unordered-containers -any: using unordered-containers-0.2.10.0 Dependency utf8-string -any: using utf8-string-1.0.1.1 Dependency vector -any: using vector-0.12.1.2 Dependency zip-archive -any: using zip-archive-0.3.3 Source component graph: component exe:elm Configured component graph: component elm-0.19.0-5n6MD49M8DG6eUFlstjDSW-elm include HTTP-4000.3.14-8ukvUOl6b4k7WvlM0chkCK include SHA-1.6.4.4-Cq0AuI9wk9S6uBKmYsGEbc include ansi-terminal-0.8.2-LbawE0xYmiu2QkRGz1IZXL include ansi-wl-pprint-0.6.8.2-1XkQt2TkKXp58Z2fWGaSDQ include base-4.12.0.0 include binary-0.8.6.0 include bytestring-0.10.8.2 include containers-0.6.0.1 include directory-1.3.3.0 include edit-distance-0.2.2.1-4bW3W2hnyAoDkdg1hZrDEh include file-embed-0.0.11.2-3jOmZboyLwT9kkrPWOtBO7 include filepath-1.4.2.1 include ghc-prim-0.5.3 include haskeline-0.7.4.3 include http-client-0.5.14-8kHp4LtYgeu6yxsKyuikbR include http-client-tls-0.3.5.3-6l8xlYHplvs5zQDRXY7req include http-types-0.12.3-1LfeDTITcX253PnMM7zNzr include language-glsl-0.2.1-I8dTsX6v8gnI5recU9Bx1R include logict-0.7.0.2-BZmYqWjl84nB8IYAe6sthB include mtl-2.2.2 include network-2.6.3.6-4mVMJJofAhjBUCFQLnDqdS include parsec-3.1.13.0 include process-1.6.5.0 include raw-strings-qq-1.1-A5UuyZx9JzP9PhxgXRLyUT include scientific-0.3.6.2-4kEeUeIFPjLKfLj9DkazhB include snap-core-1.0.4.1-JiyAkYzuC8u1gLlDtK7jGK include snap-server-1.1.1.1-72AycBxnlK2AOzxG66U0LV include template-haskell-2.14.0.0 include text-1.2.3.1 include time-1.8.0.2 include unordered-containers-0.2.10.0-HH8qA6LvkSrCPo464k44Md include utf8-string-1.0.1.1-Geq8jdOv4Q3LkcQoEOWDVv include vector-0.12.1.2-53ZStWTkIih2KWMAErdIai include zip-archive-0.3.3-Aw6tgHSn9XH9atZQKF5vsR Linked component graph: unit elm-0.19.0-5n6MD49M8DG6eUFlstjDSW-elm include HTTP-4000.3.14-8ukvUOl6b4k7WvlM0chkCK include SHA-1.6.4.4-Cq0AuI9wk9S6uBKmYsGEbc include ansi-terminal-0.8.2-LbawE0xYmiu2QkRGz1IZXL include ansi-wl-pprint-0.6.8.2-1XkQt2TkKXp58Z2fWGaSDQ include base-4.12.0.0 include binary-0.8.6.0 include bytestring-0.10.8.2 include containers-0.6.0.1 include directory-1.3.3.0 include edit-distance-0.2.2.1-4bW3W2hnyAoDkdg1hZrDEh include file-embed-0.0.11.2-3jOmZboyLwT9kkrPWOtBO7 include filepath-1.4.2.1 include ghc-prim-0.5.3 include haskeline-0.7.4.3 include http-client-0.5.14-8kHp4LtYgeu6yxsKyuikbR include http-client-tls-0.3.5.3-6l8xlYHplvs5zQDRXY7req include http-types-0.12.3-1LfeDTITcX253PnMM7zNzr include language-glsl-0.2.1-I8dTsX6v8gnI5recU9Bx1R include logict-0.7.0.2-BZmYqWjl84nB8IYAe6sthB include mtl-2.2.2 include network-2.6.3.6-4mVMJJofAhjBUCFQLnDqdS include parsec-3.1.13.0 include process-1.6.5.0 include raw-strings-qq-1.1-A5UuyZx9JzP9PhxgXRLyUT include scientific-0.3.6.2-4kEeUeIFPjLKfLj9DkazhB include snap-core-1.0.4.1-JiyAkYzuC8u1gLlDtK7jGK include snap-server-1.1.1.1-72AycBxnlK2AOzxG66U0LV include template-haskell-2.14.0.0 include text-1.2.3.1 include time-1.8.0.2 include unordered-containers-0.2.10.0-HH8qA6LvkSrCPo464k44Md include utf8-string-1.0.1.1-Geq8jdOv4Q3LkcQoEOWDVv include vector-0.12.1.2-53ZStWTkIih2KWMAErdIai include zip-archive-0.3.3-Aw6tgHSn9XH9atZQKF5vsR Ready component graph: definite elm-0.19.0-5n6MD49M8DG6eUFlstjDSW-elm depends HTTP-4000.3.14-8ukvUOl6b4k7WvlM0chkCK depends SHA-1.6.4.4-Cq0AuI9wk9S6uBKmYsGEbc depends ansi-terminal-0.8.2-LbawE0xYmiu2QkRGz1IZXL depends ansi-wl-pprint-0.6.8.2-1XkQt2TkKXp58Z2fWGaSDQ depends base-4.12.0.0 depends binary-0.8.6.0 depends bytestring-0.10.8.2 depends containers-0.6.0.1 depends directory-1.3.3.0 depends edit-distance-0.2.2.1-4bW3W2hnyAoDkdg1hZrDEh depends file-embed-0.0.11.2-3jOmZboyLwT9kkrPWOtBO7 depends filepath-1.4.2.1 depends ghc-prim-0.5.3 depends haskeline-0.7.4.3 depends http-client-0.5.14-8kHp4LtYgeu6yxsKyuikbR depends http-client-tls-0.3.5.3-6l8xlYHplvs5zQDRXY7req depends http-types-0.12.3-1LfeDTITcX253PnMM7zNzr depends language-glsl-0.2.1-I8dTsX6v8gnI5recU9Bx1R depends logict-0.7.0.2-BZmYqWjl84nB8IYAe6sthB depends mtl-2.2.2 depends network-2.6.3.6-4mVMJJofAhjBUCFQLnDqdS depends parsec-3.1.13.0 depends process-1.6.5.0 depends raw-strings-qq-1.1-A5UuyZx9JzP9PhxgXRLyUT depends scientific-0.3.6.2-4kEeUeIFPjLKfLj9DkazhB depends snap-core-1.0.4.1-JiyAkYzuC8u1gLlDtK7jGK depends snap-server-1.1.1.1-72AycBxnlK2AOzxG66U0LV depends template-haskell-2.14.0.0 depends text-1.2.3.1 depends time-1.8.0.2 depends unordered-containers-0.2.10.0-HH8qA6LvkSrCPo464k44Md depends utf8-string-1.0.1.1-Geq8jdOv4Q3LkcQoEOWDVv depends vector-0.12.1.2-53ZStWTkIih2KWMAErdIai depends zip-archive-0.3.3-Aw6tgHSn9XH9atZQKF5vsR Using Cabal-2.4.0.1 compiled by ghc-8.6 Using compiler: ghc-8.6.5 Using install prefix: /usr Executables installed in: /usr/bin Libraries installed in: /usr/lib64/elm-compiler-0.19.0/ghc-8.6.5 Dynamic Libraries installed in: /usr/lib64/x86_64-linux-ghc-8.6.5 Private executables installed in: /usr/libexec/x86_64-linux-ghc-8.6.5/elm-0.19.0 Data files installed in: /usr/share/elm-compiler-0.19.0/ghc-8.6.5 Documentation installed in: /usr/share/doc/elm-compiler-0.19.0-r1 Configuration files installed in: /etc No alex found Using ar given by user at: /usr/bin/x86_64-pc-linux-gnu-ar No c2hs found No cpphs found No doctest found Using gcc version 9.3.0 found on system at: /usr/bin/x86_64-pc-linux-gnu-gcc Using ghc version 8.6.5 given by user at: /usr/bin/ghc Using ghc-pkg version 8.6.5 given by user at: /usr/bin/ghc-pkg No ghcjs found No ghcjs-pkg found No greencard found Using haddock version 2.22.0 found on system at: /usr/bin/haddock-ghc-8.6.5 No happy found Using haskell-suite found on system at: haskell-suite-dummy-location Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location No hmake found Using hpc version 0.67 found on system at: /usr/bin/hpc Using hsc2hs version 0.68.5 found on system at: /usr/bin/hsc2hs No hscolour found No jhc found Using ld found on system at: /usr/bin/x86_64-pc-linux-gnu-ld Using pkg-config version 0.29.2 found on system at: /usr/bin/pkg-config Using runghc version 8.6.5 found on system at: /usr/bin/runghc Using strip version 2.32 found on system at: /usr/bin/strip Using tar found on system at: /bin/tar No uhc found >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0 ... ./setup build Preprocessing executable 'elm' for elm-0.19.0.. Building executable 'elm' for elm-0.19.0.. [ 1 of 167] Compiling AST.Utils.Binop ( compiler/src/AST/Utils/Binop.hs, dist/build/elm/elm-tmp/AST/Utils/Binop.dyn_o ) [ 2 of 167] Compiling Data.Bag ( compiler/src/Data/Bag.hs, dist/build/elm/elm-tmp/Data/Bag.dyn_o ) [ 3 of 167] Compiling Data.Index ( compiler/src/Data/Index.hs, dist/build/elm/elm-tmp/Data/Index.dyn_o ) [ 4 of 167] Compiling Data.OneOrMore ( compiler/src/Data/OneOrMore.hs, dist/build/elm/elm-tmp/Data/OneOrMore.dyn_o ) [ 5 of 167] Compiling Elm.Name ( compiler/src/Elm/Name.hs, dist/build/elm/elm-tmp/Elm/Name.dyn_o ) [ 6 of 167] Compiling AST.Utils.Shader ( compiler/src/AST/Utils/Shader.hs, dist/build/elm/elm-tmp/AST/Utils/Shader.dyn_o ) [ 7 of 167] Compiling File.Hash ( builder/src/File/Hash.hs, dist/build/elm/elm-tmp/File/Hash.dyn_o ) [ 8 of 167] Compiling Generate.Functions ( builder/src/Generate/Functions.hs, dist/build/elm/elm-tmp/Generate/Functions.dyn_o ) [ 9 of 167] Compiling Generate.Html ( builder/src/Generate/Html.hs, dist/build/elm/elm-tmp/Generate/Html.dyn_o ) [ 10 of 167] Compiling Json.Encode ( compiler/src/Json/Encode.hs, dist/build/elm/elm-tmp/Json/Encode.dyn_o ) [ 11 of 167] Compiling Json.Decode.Internals ( compiler/src/Json/Decode/Internals.hs, dist/build/elm/elm-tmp/Json/Decode/Internals.dyn_o ) [ 12 of 167] Compiling Elm.Package ( compiler/src/Elm/Package.hs, dist/build/elm/elm-tmp/Elm/Package.dyn_o ) [ 13 of 167] Compiling AST.Module.Name ( compiler/src/AST/Module/Name.hs, dist/build/elm/elm-tmp/AST/Module/Name.dyn_o ) [ 14 of 167] Compiling Generate.JavaScript.Name ( compiler/src/Generate/JavaScript/Name.hs, dist/build/elm/elm-tmp/Generate/JavaScript/Name.dyn_o ) [ 15 of 167] Compiling Generate.JavaScript.Builder ( compiler/src/Generate/JavaScript/Builder.hs, dist/build/elm/elm-tmp/Generate/JavaScript/Builder.dyn_o ) [ 16 of 167] Compiling Develop.Generate.Help ( ui/terminal/src/Develop/Generate/Help.hs, dist/build/elm/elm-tmp/Develop/Generate/Help.dyn_o ) [ 17 of 167] Compiling Paths_elm ( dist/build/elm/autogen/Paths_elm.hs, dist/build/elm/elm-tmp/Paths_elm.dyn_o ) [ 18 of 167] Compiling Elm.Compiler.Version ( compiler/src/Elm/Compiler/Version.hs, dist/build/elm/elm-tmp/Elm/Compiler/Version.dyn_o ) [ 19 of 167] Compiling Reporting.Doc ( compiler/src/Reporting/Doc.hs, dist/build/elm/elm-tmp/Reporting/Doc.dyn_o ) [ 20 of 167] Compiling Reporting.Progress.Bar ( builder/src/Reporting/Progress/Bar.hs, dist/build/elm/elm-tmp/Reporting/Progress/Bar.dyn_o ) [ 21 of 167] Compiling Reporting.Region ( compiler/src/Reporting/Region.hs, dist/build/elm/elm-tmp/Reporting/Region.dyn_o ) [ 22 of 167] Compiling Reporting.Annotation ( compiler/src/Reporting/Annotation.hs, dist/build/elm/elm-tmp/Reporting/Annotation.dyn_o ) [ 23 of 167] Compiling AST.Source ( compiler/src/AST/Source.hs, dist/build/elm/elm-tmp/AST/Source.dyn_o ) [ 24 of 167] Compiling Elm.Compiler.Imports ( compiler/src/Elm/Compiler/Imports.hs, dist/build/elm/elm-tmp/Elm/Compiler/Imports.dyn_o ) [ 25 of 167] Compiling AST.Valid ( compiler/src/AST/Valid.hs, dist/build/elm/elm-tmp/AST/Valid.dyn_o ) [ 26 of 167] Compiling AST.Canonical ( compiler/src/AST/Canonical.hs, dist/build/elm/elm-tmp/AST/Canonical.dyn_o ) [ 27 of 167] Compiling Optimize.DecisionTree ( compiler/src/Optimize/DecisionTree.hs, dist/build/elm/elm-tmp/Optimize/DecisionTree.dyn_o ) [ 28 of 167] Compiling Nitpick.PatternMatches ( compiler/src/Nitpick/PatternMatches.hs, dist/build/elm/elm-tmp/Nitpick/PatternMatches.dyn_o ) [ 29 of 167] Compiling Elm.Interface ( compiler/src/Elm/Interface.hs, dist/build/elm/elm-tmp/Elm/Interface.dyn_o ) [ 30 of 167] Compiling AST.Utils.Type ( compiler/src/AST/Utils/Type.hs, dist/build/elm/elm-tmp/AST/Utils/Type.dyn_o ) [ 31 of 167] Compiling AST.Optimized ( compiler/src/AST/Optimized.hs, dist/build/elm/elm-tmp/AST/Optimized.dyn_o ) [ 32 of 167] Compiling Optimize.Names ( compiler/src/Optimize/Names.hs, dist/build/elm/elm-tmp/Optimize/Names.dyn_o ) [ 33 of 167] Compiling Optimize.Port ( compiler/src/Optimize/Port.hs, dist/build/elm/elm-tmp/Optimize/Port.dyn_o ) [ 34 of 167] Compiling Optimize.Case ( compiler/src/Optimize/Case.hs, dist/build/elm/elm-tmp/Optimize/Case.dyn_o ) [ 35 of 167] Compiling Optimize.Expression ( compiler/src/Optimize/Expression.hs, dist/build/elm/elm-tmp/Optimize/Expression.dyn_o ) [ 36 of 167] Compiling Generate.Nitpick ( builder/src/Generate/Nitpick.hs, dist/build/elm/elm-tmp/Generate/Nitpick.dyn_o ) [ 37 of 167] Compiling Generate.JavaScript.Mode ( compiler/src/Generate/JavaScript/Mode.hs, dist/build/elm/elm-tmp/Generate/JavaScript/Mode.dyn_o ) [ 38 of 167] Compiling Reporting.Render.Code ( compiler/src/Reporting/Render/Code.hs, dist/build/elm/elm-tmp/Reporting/Render/Code.dyn_o ) [ 39 of 167] Compiling Reporting.Render.Type.Localizer ( compiler/src/Reporting/Render/Type/Localizer.hs, dist/build/elm/elm-tmp/Reporting/Render/Type/Localizer.dyn_o ) [ 40 of 167] Compiling Reporting.Render.Type ( compiler/src/Reporting/Render/Type.hs, dist/build/elm/elm-tmp/Reporting/Render/Type.dyn_o ) [ 41 of 167] Compiling Reporting.Report ( compiler/src/Reporting/Report.hs, dist/build/elm/elm-tmp/Reporting/Report.dyn_o ) [ 42 of 167] Compiling Reporting.Error.Syntax ( compiler/src/Reporting/Error/Syntax.hs, dist/build/elm/elm-tmp/Reporting/Error/Syntax.dyn_o ) [ 43 of 167] Compiling Parse.Primitives.Internals ( compiler/src/Parse/Primitives/Internals.hs, dist/build/elm/elm-tmp/Parse/Primitives/Internals.dyn_o ) [ 44 of 167] Compiling Parse.Primitives.Variable ( compiler/src/Parse/Primitives/Variable.hs, dist/build/elm/elm-tmp/Parse/Primitives/Variable.dyn_o ) [ 45 of 167] Compiling Parse.Primitives.Symbol ( compiler/src/Parse/Primitives/Symbol.hs, dist/build/elm/elm-tmp/Parse/Primitives/Symbol.dyn_o ) [ 46 of 167] Compiling Parse.Primitives.Whitespace ( compiler/src/Parse/Primitives/Whitespace.hs, dist/build/elm/elm-tmp/Parse/Primitives/Whitespace.dyn_o ) [ 47 of 167] Compiling Parse.Primitives.Shader ( compiler/src/Parse/Primitives/Shader.hs, dist/build/elm/elm-tmp/Parse/Primitives/Shader.dyn_o ) [ 48 of 167] Compiling Parse.Primitives.Number ( compiler/src/Parse/Primitives/Number.hs, dist/build/elm/elm-tmp/Parse/Primitives/Number.dyn_o ) [ 49 of 167] Compiling Parse.Primitives.Utf8 ( compiler/src/Parse/Primitives/Utf8.hs, dist/build/elm/elm-tmp/Parse/Primitives/Utf8.dyn_o ) [ 50 of 167] Compiling Parse.Primitives.Keyword ( compiler/src/Parse/Primitives/Keyword.hs, dist/build/elm/elm-tmp/Parse/Primitives/Keyword.dyn_o ) [ 51 of 167] Compiling Parse.Primitives.Kernel ( compiler/src/Parse/Primitives/Kernel.hs, dist/build/elm/elm-tmp/Parse/Primitives/Kernel.dyn_o ) [ 52 of 167] Compiling Parse.Primitives ( compiler/src/Parse/Primitives.hs, dist/build/elm/elm-tmp/Parse/Primitives.dyn_o ) [ 53 of 167] Compiling Parse.Type ( compiler/src/Parse/Type.hs, dist/build/elm/elm-tmp/Parse/Type.dyn_o ) [ 54 of 167] Compiling Parse.Shader ( compiler/src/Parse/Shader.hs, dist/build/elm/elm-tmp/Parse/Shader.dyn_o ) [ 55 of 167] Compiling Parse.Pattern ( compiler/src/Parse/Pattern.hs, dist/build/elm/elm-tmp/Parse/Pattern.dyn_o ) [ 56 of 167] Compiling Parse.Module ( compiler/src/Parse/Module.hs, dist/build/elm/elm-tmp/Parse/Module.dyn_o ) [ 57 of 167] Compiling Parse.Repl ( compiler/src/Parse/Repl.hs, dist/build/elm/elm-tmp/Parse/Repl.dyn_o ) [ 58 of 167] Compiling Parse.Expression ( compiler/src/Parse/Expression.hs, dist/build/elm/elm-tmp/Parse/Expression.dyn_o ) [ 59 of 167] Compiling Parse.Declaration ( compiler/src/Parse/Declaration.hs, dist/build/elm/elm-tmp/Parse/Declaration.dyn_o ) [ 60 of 167] Compiling Reporting.Error.Pattern ( compiler/src/Reporting/Error/Pattern.hs, dist/build/elm/elm-tmp/Reporting/Error/Pattern.dyn_o ) [ 61 of 167] Compiling Reporting.Error.Docs ( compiler/src/Reporting/Error/Docs.hs, dist/build/elm/elm-tmp/Reporting/Error/Docs.dyn_o ) [ 62 of 167] Compiling Json.Decode.Error ( compiler/src/Json/Decode/Error.hs, dist/build/elm/elm-tmp/Json/Decode/Error.dyn_o ) [ 63 of 167] Compiling Json.Decode ( compiler/src/Json/Decode.hs, dist/build/elm/elm-tmp/Json/Decode.dyn_o ) [ 64 of 167] Compiling Elm.Compiler.Type ( compiler/src/Elm/Compiler/Type.hs, dist/build/elm/elm-tmp/Elm/Compiler/Type.dyn_o ) [ 65 of 167] Compiling Elm.Compiler.Type.Extract ( compiler/src/Elm/Compiler/Type/Extract.hs, dist/build/elm/elm-tmp/Elm/Compiler/Type/Extract.dyn_o ) [ 66 of 167] Compiling Generate.JavaScript.Expression ( compiler/src/Generate/JavaScript/Expression.hs, dist/build/elm/elm-tmp/Generate/JavaScript/Expression.dyn_o ) [ 67 of 167] Compiling Generate.JavaScript ( compiler/src/Generate/JavaScript.hs, dist/build/elm/elm-tmp/Generate/JavaScript.dyn_o ) [ 68 of 167] Compiling Elm.Compiler.Objects ( compiler/src/Elm/Compiler/Objects.hs, dist/build/elm/elm-tmp/Elm/Compiler/Objects.dyn_o ) [ 69 of 167] Compiling Elm.Compiler.Module ( compiler/src/Elm/Compiler/Module.hs, dist/build/elm/elm-tmp/Elm/Compiler/Module.dyn_o ) [ 70 of 167] Compiling Reporting.Suggest ( compiler/src/Reporting/Suggest.hs, dist/build/elm/elm-tmp/Reporting/Suggest.dyn_o ) [ 71 of 167] Compiling Reporting.Error.Canonicalize ( compiler/src/Reporting/Error/Canonicalize.hs, dist/build/elm/elm-tmp/Reporting/Error/Canonicalize.dyn_o ) [ 72 of 167] Compiling Reporting.Error.Main ( compiler/src/Reporting/Error/Main.hs, dist/build/elm/elm-tmp/Reporting/Error/Main.dyn_o ) [ 73 of 167] Compiling Elm.Project.Licenses ( builder/src/Elm/Project/Licenses.hs, dist/build/elm/elm-tmp/Elm/Project/Licenses.dyn_o ) [ 74 of 167] Compiling Reporting.Warning ( compiler/src/Reporting/Warning.hs, dist/build/elm/elm-tmp/Reporting/Warning.dyn_o ) [ 75 of 167] Compiling Reporting.Result ( compiler/src/Reporting/Result.hs, dist/build/elm/elm-tmp/Reporting/Result.dyn_o ) [ 76 of 167] Compiling Canonicalize.Environment.Dups ( compiler/src/Canonicalize/Environment/Dups.hs, dist/build/elm/elm-tmp/Canonicalize/Environment/Dups.dyn_o ) [ 77 of 167] Compiling Canonicalize.Environment ( compiler/src/Canonicalize/Environment.hs, dist/build/elm/elm-tmp/Canonicalize/Environment.dyn_o ) [ 78 of 167] Compiling Canonicalize.Type ( compiler/src/Canonicalize/Type.hs, dist/build/elm/elm-tmp/Canonicalize/Type.dyn_o ) [ 79 of 167] Compiling Canonicalize.Pattern ( compiler/src/Canonicalize/Pattern.hs, dist/build/elm/elm-tmp/Canonicalize/Pattern.dyn_o ) [ 80 of 167] Compiling Canonicalize.Environment.Local ( compiler/src/Canonicalize/Environment/Local.hs, dist/build/elm/elm-tmp/Canonicalize/Environment/Local.dyn_o ) [ 81 of 167] Compiling Canonicalize.Environment.Foreign ( compiler/src/Canonicalize/Environment/Foreign.hs, dist/build/elm/elm-tmp/Canonicalize/Environment/Foreign.dyn_o ) [ 82 of 167] Compiling Canonicalize.Effects ( compiler/src/Canonicalize/Effects.hs, dist/build/elm/elm-tmp/Canonicalize/Effects.dyn_o ) [ 83 of 167] Compiling Optimize.Module ( compiler/src/Optimize/Module.hs, dist/build/elm/elm-tmp/Optimize/Module.dyn_o ) [ 84 of 167] Compiling Canonicalize.Expression ( compiler/src/Canonicalize/Expression.hs, dist/build/elm/elm-tmp/Canonicalize/Expression.dyn_o ) [ 85 of 167] Compiling Canonicalize.Module ( compiler/src/Canonicalize/Module.hs, dist/build/elm/elm-tmp/Canonicalize/Module.dyn_o ) [ 86 of 167] Compiling Terminal.Args.Internal ( ui/terminal/src/Terminal/Args/Internal.hs, dist/build/elm/elm-tmp/Terminal/Args/Internal.dyn_o ) [ 87 of 167] Compiling Terminal.Args.Error ( ui/terminal/src/Terminal/Args/Error.hs, dist/build/elm/elm-tmp/Terminal/Args/Error.dyn_o ) [ 88 of 167] Compiling Terminal.Args.Chomp ( ui/terminal/src/Terminal/Args/Chomp.hs, dist/build/elm/elm-tmp/Terminal/Args/Chomp.dyn_o ) [ 89 of 167] Compiling Type.Error ( compiler/src/Type/Error.hs, dist/build/elm/elm-tmp/Type/Error.dyn_o ) [ 90 of 167] Compiling Reporting.Error.Type ( compiler/src/Reporting/Error/Type.hs, dist/build/elm/elm-tmp/Reporting/Error/Type.dyn_o ) [ 91 of 167] Compiling Reporting.Error ( compiler/src/Reporting/Error.hs, dist/build/elm/elm-tmp/Reporting/Error.dyn_o ) [ 92 of 167] Compiling Elm.Kernel ( compiler/src/Elm/Kernel.hs, dist/build/elm/elm-tmp/Elm/Kernel.dyn_o ) [ 93 of 167] Compiling Elm.Header ( compiler/src/Elm/Header.hs, dist/build/elm/elm-tmp/Elm/Header.dyn_o ) [ 94 of 167] Compiling Elm.Docs ( compiler/src/Elm/Docs.hs, dist/build/elm/elm-tmp/Elm/Docs.dyn_o ) [ 95 of 167] Compiling Deps.Diff ( builder/src/Deps/Diff.hs, dist/build/elm/elm-tmp/Deps/Diff.dyn_o ) [ 96 of 167] Compiling Type.UnionFind ( compiler/src/Type/UnionFind.hs, dist/build/elm/elm-tmp/Type/UnionFind.dyn_o ) [ 97 of 167] Compiling Type.Type ( compiler/src/Type/Type.hs, dist/build/elm/elm-tmp/Type/Type.dyn_o ) [ 98 of 167] Compiling Type.Instantiate ( compiler/src/Type/Instantiate.hs, dist/build/elm/elm-tmp/Type/Instantiate.dyn_o ) [ 99 of 167] Compiling Type.Constrain.Pattern ( compiler/src/Type/Constrain/Pattern.hs, dist/build/elm/elm-tmp/Type/Constrain/Pattern.dyn_o ) [100 of 167] Compiling Type.Constrain.Expression ( compiler/src/Type/Constrain/Expression.hs, dist/build/elm/elm-tmp/Type/Constrain/Expression.dyn_o ) [101 of 167] Compiling Type.Constrain.Module ( compiler/src/Type/Constrain/Module.hs, dist/build/elm/elm-tmp/Type/Constrain/Module.dyn_o ) [102 of 167] Compiling Type.Occurs ( compiler/src/Type/Occurs.hs, dist/build/elm/elm-tmp/Type/Occurs.dyn_o ) [103 of 167] Compiling Type.Unify ( compiler/src/Type/Unify.hs, dist/build/elm/elm-tmp/Type/Unify.dyn_o ) [104 of 167] Compiling Type.Solve ( compiler/src/Type/Solve.hs, dist/build/elm/elm-tmp/Type/Solve.dyn_o ) [105 of 167] Compiling Validate ( compiler/src/Validate.hs, dist/build/elm/elm-tmp/Validate.dyn_o ) [106 of 167] Compiling Parse.Parse ( compiler/src/Parse/Parse.hs, dist/build/elm/elm-tmp/Parse/Parse.dyn_o ) [107 of 167] Compiling Compile ( compiler/src/Compile.hs, dist/build/elm/elm-tmp/Compile.dyn_o ) [108 of 167] Compiling Elm.Compiler ( compiler/src/Elm/Compiler.hs, dist/build/elm/elm-tmp/Elm/Compiler.dyn_o ) [109 of 167] Compiling Terminal.Args ( ui/terminal/src/Terminal/Args.hs, dist/build/elm/elm-tmp/Terminal/Args.dyn_o ) [110 of 167] Compiling Terminal.Args.Helpers ( ui/terminal/src/Terminal/Args/Helpers.hs, dist/build/elm/elm-tmp/Terminal/Args/Helpers.dyn_o ) [111 of 167] Compiling Reporting.Exit.Compile ( builder/src/Reporting/Exit/Compile.hs, dist/build/elm/elm-tmp/Reporting/Exit/Compile.dyn_o ) [112 of 167] Compiling Reporting.Exit.Help ( builder/src/Reporting/Exit/Help.hs, dist/build/elm/elm-tmp/Reporting/Exit/Help.dyn_o ) [113 of 167] Compiling Reporting.Exit.Publish ( builder/src/Reporting/Exit/Publish.hs, dist/build/elm/elm-tmp/Reporting/Exit/Publish.dyn_o ) [114 of 167] Compiling Reporting.Exit.Make ( builder/src/Reporting/Exit/Make.hs, dist/build/elm/elm-tmp/Reporting/Exit/Make.dyn_o ) [115 of 167] Compiling Reporting.Exit.Install ( builder/src/Reporting/Exit/Install.hs, dist/build/elm/elm-tmp/Reporting/Exit/Install.dyn_o ) [116 of 167] Compiling Reporting.Exit.Init ( builder/src/Reporting/Exit/Init.hs, dist/build/elm/elm-tmp/Reporting/Exit/Init.dyn_o ) [117 of 167] Compiling Reporting.Exit.Http ( builder/src/Reporting/Exit/Http.hs, dist/build/elm/elm-tmp/Reporting/Exit/Http.dyn_o ) [118 of 167] Compiling Reporting.Exit.Diff ( builder/src/Reporting/Exit/Diff.hs, dist/build/elm/elm-tmp/Reporting/Exit/Diff.dyn_o ) [119 of 167] Compiling Reporting.Exit.Bump ( builder/src/Reporting/Exit/Bump.hs, dist/build/elm/elm-tmp/Reporting/Exit/Bump.dyn_o ) [120 of 167] Compiling Reporting.Exit.Assets ( builder/src/Reporting/Exit/Assets.hs, dist/build/elm/elm-tmp/Reporting/Exit/Assets.dyn_o ) [121 of 167] Compiling Reporting.Exit.Crawl ( builder/src/Reporting/Exit/Crawl.hs, dist/build/elm/elm-tmp/Reporting/Exit/Crawl.dyn_o ) [122 of 167] Compiling Elm.Project.Constraint ( builder/src/Elm/Project/Constraint.hs, dist/build/elm/elm-tmp/Elm/Project/Constraint.dyn_o ) [123 of 167] Compiling Reporting.Exit.Deps ( builder/src/Reporting/Exit/Deps.hs, dist/build/elm/elm-tmp/Reporting/Exit/Deps.dyn_o ) [124 of 167] Compiling Reporting.Exit ( builder/src/Reporting/Exit.hs, dist/build/elm/elm-tmp/Reporting/Exit.dyn_o ) [125 of 167] Compiling Reporting.Progress ( builder/src/Reporting/Progress.hs, dist/build/elm/elm-tmp/Reporting/Progress.dyn_o ) [126 of 167] Compiling Reporting.Progress.Terminal ( builder/src/Reporting/Progress/Terminal.hs, dist/build/elm/elm-tmp/Reporting/Progress/Terminal.dyn_o ) [127 of 167] Compiling Reporting.Progress.Repl ( builder/src/Reporting/Progress/Repl.hs, dist/build/elm/elm-tmp/Reporting/Progress/Repl.dyn_o ) [128 of 167] Compiling Reporting.Progress.Json ( builder/src/Reporting/Progress/Json.hs, dist/build/elm/elm-tmp/Reporting/Progress/Json.dyn_o ) [129 of 167] Compiling Elm.PerUserCache ( builder/src/Elm/PerUserCache.hs, dist/build/elm/elm-tmp/Elm/PerUserCache.dyn_o ) [130 of 167] Compiling Reporting.Task ( builder/src/Reporting/Task.hs, dist/build/elm/elm-tmp/Reporting/Task.dyn_o ) [131 of 167] Compiling Stuff.Paths ( builder/src/Stuff/Paths.hs, dist/build/elm/elm-tmp/Stuff/Paths.dyn_o ) [132 of 167] Compiling Reporting.Task.Http ( builder/src/Reporting/Task/Http.hs, dist/build/elm/elm-tmp/Reporting/Task/Http.dyn_o ) [133 of 167] Compiling Elm.Project.Json ( builder/src/Elm/Project/Json.hs, dist/build/elm/elm-tmp/Elm/Project/Json.dyn_o ) [134 of 167] Compiling Elm.Project.Summary ( builder/src/Elm/Project/Summary.hs, dist/build/elm/elm-tmp/Elm/Project/Summary.dyn_o ) [135 of 167] Compiling File.Find ( builder/src/File/Find.hs, dist/build/elm/elm-tmp/File/Find.dyn_o ) [136 of 167] Compiling File.Args ( builder/src/File/Args.hs, dist/build/elm/elm-tmp/File/Args.dyn_o ) [137 of 167] Compiling Deps.Website ( builder/src/Deps/Website.hs, dist/build/elm/elm-tmp/Deps/Website.dyn_o ) [138 of 167] Compiling File.IO ( builder/src/File/IO.hs, dist/build/elm/elm-tmp/File/IO.dyn_o ) [139 of 167] Compiling File.Header ( builder/src/File/Header.hs, dist/build/elm/elm-tmp/File/Header.dyn_o ) [140 of 167] Compiling File.Crawl ( builder/src/File/Crawl.hs, dist/build/elm/elm-tmp/File/Crawl.dyn_o ) [141 of 167] Compiling Generate.Output ( builder/src/Generate/Output.hs, dist/build/elm/elm-tmp/Generate/Output.dyn_o ) [142 of 167] Compiling File.Plan ( builder/src/File/Plan.hs, dist/build/elm/elm-tmp/File/Plan.dyn_o ) [143 of 167] Compiling File.Compile ( builder/src/File/Compile.hs, dist/build/elm/elm-tmp/File/Compile.dyn_o ) [144 of 167] Compiling File.Artifacts ( builder/src/File/Artifacts.hs, dist/build/elm/elm-tmp/File/Artifacts.dyn_o ) [145 of 167] Compiling Deps.Cache ( builder/src/Deps/Cache.hs, dist/build/elm/elm-tmp/Deps/Cache.dyn_o ) [146 of 167] Compiling Deps.Explorer ( builder/src/Deps/Explorer.hs, dist/build/elm/elm-tmp/Deps/Explorer.dyn_o ) [147 of 167] Compiling Deps.Solver ( builder/src/Deps/Solver.hs, dist/build/elm/elm-tmp/Deps/Solver.dyn_o ) [148 of 167] Compiling Init ( ui/terminal/src/Init.hs, dist/build/elm/elm-tmp/Init.dyn_o ) [149 of 167] Compiling Deps.Verify ( builder/src/Deps/Verify.hs, dist/build/elm/elm-tmp/Deps/Verify.dyn_o ) [150 of 167] Compiling Stuff.Verify ( builder/src/Stuff/Verify.hs, dist/build/elm/elm-tmp/Stuff/Verify.dyn_o ) [151 of 167] Compiling Elm.Project.Root ( builder/src/Elm/Project/Root.hs, dist/build/elm/elm-tmp/Elm/Project/Root.dyn_o ) [152 of 167] Compiling Elm.Project ( builder/src/Elm/Project.hs, dist/build/elm/elm-tmp/Elm/Project.dyn_o ) [153 of 167] Compiling Repl ( ui/terminal/src/Repl.hs, dist/build/elm/elm-tmp/Repl.dyn_o ) [154 of 167] Compiling Make ( ui/terminal/src/Make.hs, dist/build/elm/elm-tmp/Make.dyn_o ) [155 of 167] Compiling Elm.Diff ( builder/src/Elm/Diff.hs, dist/build/elm/elm-tmp/Elm/Diff.dyn_o ) [156 of 167] Compiling Diff ( ui/terminal/src/Diff.hs, dist/build/elm/elm-tmp/Diff.dyn_o ) [157 of 167] Compiling Elm.Bump ( builder/src/Elm/Bump.hs, dist/build/elm/elm-tmp/Elm/Bump.dyn_o ) [158 of 167] Compiling Elm.Publish ( builder/src/Elm/Publish.hs, dist/build/elm/elm-tmp/Elm/Publish.dyn_o ) [159 of 167] Compiling Publish ( ui/terminal/src/Publish.hs, dist/build/elm/elm-tmp/Publish.dyn_o ) [160 of 167] Compiling Develop.StaticFiles.Build ( ui/terminal/src/Develop/StaticFiles/Build.hs, dist/build/elm/elm-tmp/Develop/StaticFiles/Build.dyn_o ) [161 of 167] Compiling Develop.StaticFiles ( ui/terminal/src/Develop/StaticFiles.hs, dist/build/elm/elm-tmp/Develop/StaticFiles.dyn_o ) [36m-- HTTP PROBLEM ----------------------------------------------------------------[0m The following HTTP request failed: [33m<https://package.elm-lang.org/all-packages>[0m Here is the error message I was able to extract: HttpExceptionRequest Request { host = "package.elm-lang.org" port = 443 secure = True requestHeaders = [("User-Agent","elm/0.19.0"),("Accept-Encoding","gzip")] path = "/all-packages" queryString = "" method = "GET" proxy = Nothing rawBody = False redirectCount = 10 responseTimeout = ResponseTimeoutDefault requestVersion = HTTP/1.1 } (ConnectionFailure Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 0, addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be undefined>}, host name: Just "package.elm-lang.org", service name: Just "443"): does not exist (Name or service not known)) [;1mui/terminal/src/Develop/StaticFiles.hs:92:3: [;1m[31merror:[0m[0m[;1m[0m[0m[;1m • Exception when trying to run compile-time code: ExitFailure 1 Code: bsToExp =<< runIO Build.compile • In the untyped splice: $(bsToExp =<< runIO Build.compile)[0m[0m [;1m[34m |[0m[0m [;1m[34m92 |[0m[0m [;1m[31m$(bsToExp =<< runIO Build.compile)[0m[0m [;1m[34m |[0m[0m[;1m[31m ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0m[0m [0m[0m[0m[162 of 167] Compiling Bump ( ui/terminal/src/Bump.hs, dist/build/elm/elm-tmp/Bump.dyn_o ) [163 of 167] Compiling Develop.Generate.Index ( ui/terminal/src/Develop/Generate/Index.hs, dist/build/elm/elm-tmp/Develop/Generate/Index.dyn_o ) [165 of 167] Compiling Elm.Install ( builder/src/Elm/Install.hs, dist/build/elm/elm-tmp/Elm/Install.dyn_o ) [166 of 167] Compiling Install ( ui/terminal/src/Install.hs, dist/build/elm/elm-tmp/Install.dyn_o ) [31;01m*[0m ERROR: dev-lang/elm-compiler-0.19.0-r1::haskell failed (compile phase): [31;01m*[0m setup build failed [31;01m*[0m [31;01m*[0m Call stack: [31;01m*[0m ebuild.sh, line 125: Called src_compile [31;01m*[0m environment, line 2739: Called haskell-cabal_src_compile [31;01m*[0m environment, line 1977: Called cabal_src_compile [31;01m*[0m environment, line 795: Called cabal-build [31;01m*[0m environment, line 553: Called die [31;01m*[0m The specific snippet of code: [31;01m*[0m ./setup "$@" || die "setup build failed" [31;01m*[0m [31;01m*[0m If you need support, post the output of `emerge --info '=dev-lang/elm-compiler-0.19.0-r1::haskell'`, [31;01m*[0m the complete build log and the output of `emerge -pqv '=dev-lang/elm-compiler-0.19.0-r1::haskell'`. [31;01m*[0m The complete build log is located at '/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/temp/build.log'. [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/temp/environment'. [31;01m*[0m Working directory: '/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0' [31;01m*[0m S: '/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0'
/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/temp/environment:
declare -x ABI="amd64" declare -x ABI_MIPS="" declare -x ABI_PPC="" declare -x ABI_RISCV="" declare -x ABI_S390="" declare -x ABI_X86="64" declare -x ADA_TARGET="" declare -x ALSA_CARDS="" declare -x ANT_HOME="/usr/share/ant" declare -x APACHE2_MODULES="" declare -x APACHE2_MPMS="" declare -x ARCH="amd64" declare BDEPEND="" declare -x BOOTSTRAP_USE="unicode internal-glib pkg-config split-usr python_targets_python3_6 python_targets_python2_7 multilib" declare -- CABAL_DEBUG_LOOSENING="" declare -- CABAL_EXTRA_BUILD_FLAGS="" declare -- CABAL_EXTRA_CONFIGURE_FLAGS="" declare -- CABAL_EXTRA_TEST_FLAGS="" declare -- CABAL_FEATURES="profile haddock hscolour" declare -- CABAL_REPORT_OTHER_BROKEN_PACKAGES="yes" declare -- CABAL_USE_HADDOCK="yes" declare -- CABAL_USE_HSCOLOUR="yes" declare -- CABAL_USE_PROFILE="yes" declare -x CALLIGRA_FEATURES="" declare -x CAMERAS="" declare -x CBUILD="x86_64-pc-linux-gnu" declare -x CFLAGS="-march=native -O2 -pipe" declare -x CFLAGS_amd64="-m64" declare -x CFLAGS_default declare -x CFLAGS_x32="-mx32" declare -x CFLAGS_x86="-m32" declare -x CHOST="x86_64-pc-linux-gnu" declare -x CHOST_amd64="x86_64-pc-linux-gnu" declare -x CHOST_default="x86_64-pc-linux-gnu" declare -x CHOST_x32="x86_64-pc-linux-gnux32" declare -x CHOST_x86="i686-pc-linux-gnu" declare -x COLLECTD_PLUGINS="" declare -x CPU_FLAGS_ARM="" declare -x CPU_FLAGS_PPC="" declare -x CPU_FLAGS_X86="" declare -x CTARGET_default="x86_64-pc-linux-gnu" declare -x CURL_SSL="" declare -x CXXFLAGS="-march=native -O2 -pipe" declare -x DEFAULT_ABI="amd64" declare -x DEFINED_PHASES=" compile configure install postinst postrm prepare setup test" declare DEPEND=">=dev-haskell/ansi-terminal-0.8:= <dev-haskell/ansi-terminal-0.9:= >=dev-haskell/ansi-wl-pprint-0.6.8:= <dev-haskell/ansi-wl-pprint-0.7:= >=dev-haskell/edit-distance-0.2:= <dev-haskell/edit-distance-0.3:= dev-haskell/file-embed:= dev-haskell/haskeline:= >=dev-haskell/http-4000.2.5:= <dev-haskell/http-4000.4:= >=dev-haskell/http-client-0.5:= <dev-haskell/http-client-0.6:= >=dev-haskell/http-client-tls-0.3:= <dev-haskell/http-client-tls-0.4:= >=dev-haskell/http-types-0.9:= <dev-haskell/http-types-1.0:= >=dev-haskell/language-glsl-0.0.2:= dev-haskell/logict:= >=dev-haskell/mtl-2.2.1:= <dev-haskell/mtl-3:= >=dev-haskell/network-2.4:= <dev-haskell/network-2.7:= dev-haskell/parsec:= dev-haskell/raw-strings-qq:= dev-haskell/scientific:= dev-haskell/sha:= dev-haskell/snap-core:= dev-haskell/snap-server:= >=dev-haskell/text-1:= <dev-haskell/text-2:= dev-haskell/unordered-containers:= dev-haskell/utf8-string:= dev-haskell/vector:= dev-haskell/zip-archive:= >=dev-lang/ghc-8.2.1:= >=dev-haskell/cabal-2.0.0.2 doc? ( || ( dev-haskell/haddock >=dev-lang/ghc-7.10.2 ) ) hscolour? ( dev-haskell/hscolour )" declare DESCRIPTION="The 'elm' command line interface" declare -x DESTTREE="/usr" declare -x DIROPTIONS="-m0755" declare -x DOTNET_ROOT="/opt/dotnet_core" declare -x EAPI="6" declare -x ELIBC="glibc" declare -x ENLIGHTENMENT_MODULES="" declare -x ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" declare -- EPATCH_COMMON_OPTS="-g0 -E --no-backup-if-mismatch" declare -- EPATCH_EXCLUDE="" declare -- EPATCH_FORCE="no" declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..." declare -- EPATCH_OPTS="" declare -- EPATCH_SINGLE_MSG="" declare -- EPATCH_SOURCE="/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/patch" declare -- EPATCH_SUFFIX="patch.bz2" declare -- EPOCHREALTIME="1585310208.107494" declare -- EPOCHSECONDS="1585310208" declare -x EPYTHON="python3.7" declare -x EXEOPTIONS="-m0755" declare -x FCFLAGS="-O2 -pipe" declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x FFLAGS="-O2 -pipe" declare -x FFTOOLS="" declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.3.5-r4/html" declare -x GCC_SPECS="" declare -x GDK_SCALE="2" declare -- GHC_BOOTSTRAP_FLAGS="" declare -x GPSD_PROTOCOLS="" declare -x GRUB_PLATFORMS="" declare -x GSETTINGS_BACKEND="dconf" declare -- HASKELL_CABAL_EXPF="pkg_setup src_compile src_test src_install pkg_postinst pkg_postrm src_configure" declare HOMEPAGE="http://elm-lang.org" declare -x INHERITED=" desktop estack epatch toolchain-funcs multilib ltprune preserve-libs vcs-clean eutils multiprocessing eapi7-ver ghc-package haskell-cabal" declare -x INPUT_DEVICES="" declare -x INSDESTTREE="" declare -x INSOPTIONS="-m0644" declare IUSE="dev doc hscolour profile" declare -x IUSE_EFFECTIVE="abi_x86_64 alpha amd64 amd64-fbsd amd64-linux arm arm64 dev doc elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc hppa hscolour ia64 kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux m68k m68k-mint mips ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-guest prefix-stack profile riscv s390 sh sparc sparc-solaris sparc64-solaris userland_BSD userland_GNU x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x IUSE_IMPLICIT="abi_x86_64 prefix prefix-guest prefix-stack" declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac" declare -x JAVA_HOME="/etc/java-config-2/current-system-vm" declare -x JDK_HOME="/etc/java-config-2/current-system-vm" declare -x KERNEL="linux" declare -x KERNEL_ABI="amd64" declare -x KEYWORDS="~amd64 ~x86" declare -x L10N="" declare -x LADSPA_PATH="/usr/lib64/ladspa" declare -x LANG="en_GB.utf8" declare -x LCD_DEVICES="" declare -x LC_COLLATE="C" declare -x LC_MESSAGES="C" declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" declare -x LDFLAGS_amd64="-m elf_x86_64" declare -x LDFLAGS_default declare -x LDFLAGS_x32="-m elf32_x86_64" declare -x LDFLAGS_x86="-m elf_i386" declare -x LD_LIBRARY_PATH="/usr/lib64/ghc-8.6.5" declare -x LIBDIR_amd64="lib64" declare -x LIBDIR_default="lib" declare -x LIBDIR_x32="libx32" declare -x LIBDIR_x86="lib32" declare -x LIBOPTIONS="-m0644" declare -x LIBREOFFICE_EXTENSIONS="" declare -x LICENSE="BSD" declare -x LINGUAS="en" declare -x LIRC_DEVICES="" declare -x LLVM_TARGETS="" declare -x LV2_PATH="/usr/lib64/lv2" declare -x MAKEOPTS="-j5" declare -x MANPAGER="manpager" declare -x MONKEYD_PLUGINS="" declare -x MOZ_GMP_PATH="/usr/lib64/nsbrowser/plugins/gmp-gmpopenh264/system-installed" declare -x MULTILIB_ABIS="amd64 x86" declare -x MULTILIB_STRICT_DENY="64-bit.*shared object" declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib" declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)" declare -x MY_KDE_USE="-appstream brightness-control browser-integration -consolekit crypt dbus display-manager grub elogind kde -modemmanager networkmanager policykit -ppp qml -qt4 qt5 qalculate sdk ssdm -systemd udisks wallpapers wayland -wext -wifi" declare -x NGINX_MODULES_HTTP="" declare -x NGINX_MODULES_MAIL="" declare -x NGINX_MODULES_STREAM="" declare -x OFED_DRIVERS="" declare -x OFFICE_IMPLEMENTATION="" declare -x OPENCL_PROFILE="ocl-icd" declare -x OPENGL_PROFILE="xorg-x11" declare -x OPENMPI_FABRICS="" declare -x OPENMPI_OFED_FEATURES="" declare -x OPENMPI_RM="" declare -x OTHER_DE="-gnome gtk gtk2 -gtk3 -xfce" declare -x PATH="/usr/lib/portage/python3.6/ebuild-helpers/xattr:/usr/lib/portage/python3.6/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/10/bin:/usr/lib/llvm/9/bin:/usr/lib/llvm/8/bin" declare PDEPEND="" declare -x PHP_TARGETS="" declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig" declare -x PORTAGE_COMPRESSION_COMMAND="bzip2" declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man") declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128" declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/elm-compiler-0.19.0-r1/html") declare -a PORTAGE_DOSTRIP=([0]="/") declare -a PORTAGE_DOSTRIP_SKIP=() declare -x POSTGRES_TARGETS="" declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND" declare -x PROPERTIES="" declare -x PRO_AUDIO="dssi frei0r jack jack-session ladspa lash opus osc rtaudio vst" declare -x PYTHONDONTWRITEBYTECODE="1" declare -x PYTHON_SINGLE_TARGET="" declare -x PYTHON_TARGETS="" declare -- QA_CONFIGURE_OPTIONS=" --with-compiler --with-hc --with-hc-pkg --with-gcc" declare -x QEMU_SOFTMMU_TARGETS="" declare -x QEMU_USER_TARGETS="" declare -x QT_GRAPHICSSYSTEM="raster" declare RDEPEND=">=dev-haskell/ansi-terminal-0.8:= <dev-haskell/ansi-terminal-0.9:= >=dev-haskell/ansi-wl-pprint-0.6.8:= <dev-haskell/ansi-wl-pprint-0.7:= >=dev-haskell/edit-distance-0.2:= <dev-haskell/edit-distance-0.3:= dev-haskell/file-embed:= dev-haskell/haskeline:= >=dev-haskell/http-4000.2.5:= <dev-haskell/http-4000.4:= >=dev-haskell/http-client-0.5:= <dev-haskell/http-client-0.6:= >=dev-haskell/http-client-tls-0.3:= <dev-haskell/http-client-tls-0.4:= >=dev-haskell/http-types-0.9:= <dev-haskell/http-types-1.0:= >=dev-haskell/language-glsl-0.0.2:= dev-haskell/logict:= >=dev-haskell/mtl-2.2.1:= <dev-haskell/mtl-3:= >=dev-haskell/network-2.4:= <dev-haskell/network-2.7:= dev-haskell/parsec:= dev-haskell/raw-strings-qq:= dev-haskell/scientific:= dev-haskell/sha:= dev-haskell/snap-core:= dev-haskell/snap-server:= >=dev-haskell/text-1:= <dev-haskell/text-2:= dev-haskell/unordered-containers:= dev-haskell/utf8-string:= dev-haskell/vector:= dev-haskell/zip-archive:= >=dev-lang/ghc-8.2.1:= " declare REPOSITORY declare REQUIRED_USE="" declare -x RESTRICT="" declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x ROS_MESSAGES="" declare -x RUBY_TARGETS="" declare -x S="/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/work/compiler-0.19.0" declare -x SANDBOX_DEBUG="0" declare -x SANDBOX_DENY="" declare -x SANDBOX_PREDICT="/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/homedir:/dev/crypto:/var/cache/man:/dev/random:/proc/self/coredump_filter:/dev/random:/proc/self/coredump_filter:/dev/random:/proc/self/coredump_filter:/var/cache/fontconfig:/dev/nvidiactl:/dev/nvidia-uvm:/dev/ati/card:/dev/dri/card:/dev/dri/renderD128" declare -x SANDBOX_READ="/:/var/tmp/portage" declare -x SANDBOX_VERBOSE="1" declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/homedir/.bash_history" declare -x SANE_BACKENDS="" declare -x SBCL_HOME="/usr/lib64/sbcl" declare -x SBCL_SOURCE_ROOT="/usr/lib64/sbcl/src" declare -x SHELL="/bin/bash" declare -x SLOT="0/0.19.0" declare SRC_URI="https://github.com/elm/compiler/archive/0.19.0.tar.gz -> elm-compiler-0.19.0.tar.gz" declare -x SYMLINK_LIB="yes" declare -x TEXINPUTS="/usr/lib64/ocaml/ocamldoc:" declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1" declare -x USE="abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU" declare -x USERLAND="GNU" declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND" declare -x USE_EXPAND_UNPREFIXED="ARCH" declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt" declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt" declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU" declare -x UWSGI_PLUGINS="" declare -x VIDEO_CARDS="" declare -x VOICEMAIL_STORAGE="" declare -x XDG_CONFIG_DIRS="/etc/xdg" declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share" declare -x XFCE_PLUGINS="" declare -x XSESSION="Xfce4" declare -x XTABLES_ADDONS="" declare -- _CABAL_VERSION_CACHE="" declare -- _DESKTOP_ECLASS="1" declare -- _EPATCH_ECLASS="1" declare -- _ESTACK_ECLASS="1" declare -- _EUTILS_ECLASS="1" declare -x _E_DOCDESTTREE_="" declare -x _E_EXEDESTTREE_="" declare -- _GHC_LIBDIR_CACHE="" declare -- _GHC_PM_VERSION_CACHE="" declare -- _GHC_VERSION_CACHE="" declare -- _LTPRUNE_ECLASS="1" declare -- _MULTILIB_ECLASS="1" declare -- _MULTIPROCESSING_ECLASS="1" declare -- _PRESERVE_LIBS_ECLASS="1" declare -- _TOOLCHAIN_FUNCS_ECLASS="1" declare -- feature="hscolour" declare -- from_pat="" declare -x radeonsi_enable_nir="true" declare -- to_str="" __eapi6_src_install () { if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then emake DESTDIR="${D}" install; fi; einstalldocs } __eapi6_src_prepare () { if ___is_indexed_array_var PATCHES; then [[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"; else if [[ -n ${PATCHES} ]]; then eapply ${PATCHES}; fi; fi; eapply_user } _clang_fullversion () { local ver="$1"; shift; set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__"); eval echo "$ver" } _gcc-install-dir () { echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')" } _gcc-specs-directive_raw () { local cc=$(tc-getCC); local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}'); ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 } $1=="*"directive":" { pspec=spec; spec=""; outside=0; next } outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next } spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next } { spec=spec $0 } END { print spec }'; return 0 } _gcc-specs-exists () { [[ -f $(_gcc-install-dir)/$1 ]] } _gcc_fullversion () { local ver="$1"; shift; set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"); eval echo "$ver" } _iconins () { ( insopts -m 0644; local funcname=$1; shift; local size dir; local context=apps; local theme=hicolor; while [[ $# -gt 0 ]]; do case $1 in -s | --size) if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then size=${2%%x*}; else size=${2}; fi; case ${size} in 16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256 | 512) size=${size}x${size} ;; scalable) ;; *) eerror "${size} is an unsupported icon size!"; exit 1 ;; esac; shift 2 ;; -t | --theme) theme=${2}; shift 2 ;; -c | --context) context=${2}; shift 2 ;; *) if [[ -z ${size} ]]; then insinto /usr/share/pixmaps; else insinto /usr/share/icons/${theme}/${size}/${context}; fi; if [[ ${funcname} == doicon ]]; then if [[ -f $1 ]]; then doins "${1}"; else if [[ -d $1 ]]; then shopt -s nullglob; doins "${1}"/*.{png,svg}; shopt -u nullglob; else eerror "${1} is not a valid file/directory!"; exit 1; fi; fi; else break; fi; shift 1 ;; esac; done; if [[ ${funcname} == newicon ]]; then newins "$@"; fi ) || die } _tc-getPROG () { local tuple=$1; local v var vars=$2; local prog=($3); var=${vars%% *}; for v in ${vars}; do if [[ -n ${!v} ]]; then export ${var}="${!v}"; echo "${!v}"; return 0; fi; done; local search=; [[ -n $4 ]] && search=$(type -p $4-${prog[0]}); [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]}); [[ -n ${search} ]] && prog[0]=${search##*/}; export ${var}="${prog[*]}"; echo "${!var}" } _ver_compare () { local va=${1} vb=${2} a an al as ar b bn bl bs br re LC_ALL=C; re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$"; [[ ${va} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${va}"; an=${BASH_REMATCH[1]}; al=${BASH_REMATCH[3]}; as=${BASH_REMATCH[4]}; ar=${BASH_REMATCH[7]}; [[ ${vb} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${vb}"; bn=${BASH_REMATCH[1]}; bl=${BASH_REMATCH[3]}; bs=${BASH_REMATCH[4]}; br=${BASH_REMATCH[7]}; _ver_compare_int "${an%%.*}" "${bn%%.*}" || return; while [[ ${an} == *.* && ${bn} == *.* ]]; do an=${an#*.}; bn=${bn#*.}; a=${an%%.*}; b=${bn%%.*}; if [[ ${a} == 0* || ${b} == 0* ]]; then [[ ${a} =~ 0+$ ]] && a=${a%"${BASH_REMATCH[0]}"}; [[ ${b} =~ 0+$ ]] && b=${b%"${BASH_REMATCH[0]}"}; [[ ${a} > ${b} ]] && return 3; [[ ${a} < ${b} ]] && return 1; else _ver_compare_int "${a}" "${b}" || return; fi; done; [[ ${an} == *.* ]] && return 3; [[ ${bn} == *.* ]] && return 1; [[ ${al} > ${bl} ]] && return 3; [[ ${al} < ${bl} ]] && return 1; as=${as#_}${as:+_}; bs=${bs#_}${bs:+_}; while [[ -n ${as} && -n ${bs} ]]; do a=${as%%_*}; b=${bs%%_*}; if [[ ${a%%[0-9]*} == "${b%%[0-9]*}" ]]; then _ver_compare_int "${a##*[a-z]}" "${b##*[a-z]}" || return; else [[ ${a%%[0-9]*} == p ]] && return 3; [[ ${b%%[0-9]*} == p ]] && return 1; [[ ${a} > ${b} ]] && return 3 || return 1; fi; as=${as#*_}; bs=${bs#*_}; done; if [[ -n ${as} ]]; then [[ ${as} == p[_0-9]* ]] && return 3 || return 1; else if [[ -n ${bs} ]]; then [[ ${bs} == p[_0-9]* ]] && return 1 || return 3; fi; fi; _ver_compare_int "${ar#-r}" "${br#-r}" || return; return 2 } _ver_compare_int () { local a=$1 b=$2 d=$(( ${#1}-${#2} )); if [[ ${d} -gt 0 ]]; then printf -v b "%0${d}d%s" 0 "${b}"; else if [[ ${d} -lt 0 ]]; then printf -v a "%0$(( -d ))d%s" 0 "${a}"; fi; fi; [[ ${a} > ${b} ]] && return 3; [[ ${a} == "${b}" ]] } _ver_parse_range () { local range=${1}; local max=${2}; [[ ${range} == [0-9]* ]] || die "${FUNCNAME}: range must start with a number"; start=${range%-*}; [[ ${range} == *-* ]] && end=${range#*-} || end=${start}; if [[ -n ${end} ]]; then [[ ${start} -le ${end} ]] || die "${FUNCNAME}: end of range must be >= start"; [[ ${end} -le ${max} ]] || end=${max}; else end=${max}; fi } _ver_split () { local v=${1} LC_ALL=C; comp=(); local s c; while [[ -n ${v} ]]; do s=${v%%[a-zA-Z0-9]*}; v=${v:${#s}}; [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*}; v=${v:${#c}}; comp+=("${s}" "${c}"); done } cabal-bootstrap () { local setupmodule; local cabalpackage; local setup_bootstrap_args=(); if [[ -f "${S}/Setup.lhs" ]]; then setupmodule="${S}/Setup.lhs"; else if [[ -f "${S}/Setup.hs" ]]; then setupmodule="${S}/Setup.hs"; else eqawarn "No Setup.lhs or Setup.hs found. Either add Setup.hs to package or call cabal-mksetup from ebuild"; cabal-mksetup; setupmodule="${S}/Setup.hs"; fi; fi; cabalpackage=Cabal-$(cabal-version); einfo "Using cabal-$(cabal-version)."; if $(ghc-supports-threaded-runtime); then setup_bootstrap_args+=(-threaded); fi; function make_setup () { set -- -package "${cabalpackage}" --make "${setupmodule}" $(ghc-make-args) "${setup_bootstrap_args[@]}" ${HCFLAGS} ${GHC_BOOTSTRAP_FLAGS} "$@" -o setup; echo $(ghc-getghc) "$@"; $(ghc-getghc) "$@" }; if $(ghc-supports-shared-libraries); then einfo "Prepending $(ghc-libdir) to LD_LIBRARY_PATH"; if [[ ${CHOST} != *-darwin* ]]; then LD_LIBRARY_PATH="$(ghc-libdir)${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; else DYLD_LIBRARY_PATH="$(ghc-libdir)${DYLD_LIBRARY_PATH:+:}${DYLD_LIBRARY_PATH}"; export DYLD_LIBRARY_PATH; fi; { make_setup -dynamic "$@" && ./setup --help > /dev/null } || make_setup "$@" || die "compiling ${setupmodule} failed"; else make_setup "$@" || die "compiling ${setupmodule} failed"; fi } cabal-build () { set -- build "$@" ${CABAL_EXTRA_BUILD_FLAGS}; echo ./setup "$@"; ./setup "$@" || die "setup build failed" } cabal-configure () { local cabalconf=(); has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; if [[ -n "${CABAL_USE_HADDOCK}" ]] && use doc; then local p=${EPREFIX}/usr/bin/haddock-ghc-$(ghc-version); if [[ -f $p ]]; then cabalconf+=(--with-haddock="${p}"); else cabalconf+=(--with-haddock=${EPREFIX}/usr/bin/haddock); fi; fi; if [[ -n "${CABAL_USE_PROFILE}" ]] && use profile; then cabalconf+=(--enable-library-profiling); fi; if [[ -n "${CABAL_TEST_SUITE}" ]]; then cabalconf+=($(use_enable test tests)); fi; if [[ -n "${CABAL_GHC_CONSTRAINT}" ]]; then cabalconf+=($(cabal-constraint "ghc")); fi; cabalconf+=(--ghc-options="$(ghc-make-args)"); local option; for option in ${HCFLAGS}; do cabalconf+=(--ghc-option="$option"); done; cabalconf+=(--with-ar="$(tc-getAR)"); if use ppc64; then cabalconf+=(--disable-library-for-ghci); fi; local flag; for flag in $CFLAGS; do cabalconf+=(--ghc-option="-optc$flag"); done; for flag in $LDFLAGS; do cabalconf+=(--ghc-option="-optl$flag"); done; cabalconf+=(--disable-executable-stripping); cabalconf+=(--docdir="${EPREFIX}"/usr/share/doc/${PF}); cabalconf+=(--verbose); [[ ${CATEGORY}/${PN} == "dev-haskell/cabal" ]] && $(ghc-supports-shared-libraries) && cabalconf+=(--enable-shared); if $(ghc-supports-shared-libraries); then if ver_test "$(ghc-version)" -ge "7.10.0.20150316"; then cabalconf+=(--enable-shared); cabalconf+=(--enable-executable-dynamic); fi; fi; if ./setup configure --help | grep -q -- --sysconfdir; then cabalconf+=(--sysconfdir="${EPREFIX}"/etc); fi; if ./setup configure --help | grep -q -- --disable-library-stripping; then cabalconf+=(--disable-library-stripping); fi; set -- configure --ghc --prefix="${EPREFIX}"/usr --with-compiler="$(ghc-getghc)" --with-hc-pkg="$(ghc-getghcpkg)" --prefix="${EPREFIX}"/usr --libdir="${EPREFIX}"/usr/$(get_libdir) --libsubdir=${P}/ghc-$(ghc-version) --datadir="${EPREFIX}"/usr/share/ --datasubdir=${P}/ghc-$(ghc-version) "${cabalconf[@]}" ${CABAL_CONFIGURE_FLAGS} "$@" ${CABAL_EXTRA_CONFIGURE_FLAGS}; echo ./setup "$@"; ./setup "$@" || cabal-show-brokens-and-die "setup configure failed" } cabal-constraint () { while read p v; do echo "--constraint \"$p == $v\""; done < $(ghc-pkgdeps ${1}) } cabal-copy () { has "${EAPI:-0}" 0 1 2 && ! use prefix && ED=${D}; set -- copy --destdir="${D}" "$@"; echo ./setup "$@"; ./setup "$@" || die "setup copy failed"; rmdir "${ED}/usr/bin" 2> /dev/null } cabal-die-if-nonempty () { local breakage_type=$1; shift; [[ "${#@}" == 0 ]] && return 0; eerror "Detected ${breakage_type} packages: ${@}"; die "//==-- Please, run 'haskell-updater' to fix ${breakage_type} packages --==//" } cabal-haddock () { set -- haddock "$@"; echo ./setup "$@"; ./setup "$@" || die "setup haddock failed" } cabal-hoogle () { ewarn "hoogle USE flag requires doc USE flag, building without hoogle" } cabal-hoogle-haddock () { set -- haddock --hoogle; echo ./setup "$@"; ./setup "$@" || die "setup haddock --hoogle failed" } cabal-hoogle-hscolour () { ewarn "hoogle USE flag requires doc USE flag, building without hoogle"; cabal-hscolour } cabal-hoogle-hscolour-haddock () { cabal-hscolour-haddock; cabal-hoogle-haddock } cabal-hscolour () { set -- hscolour "$@"; echo ./setup "$@"; ./setup "$@" || die "setup hscolour failed" } cabal-hscolour-haddock () { set -- haddock --hyperlink-source; echo ./setup "$@"; ./setup "$@" --hyperlink-source || die "setup haddock --hyperlink-source failed" } cabal-is-dummy-lib () { local bin_ghc_version=$(ghc-version); local pm_ghc_version=$(ghc-pm-version); for version in ${CABAL_CORE_LIB_GHC_PV}; do [[ "${bin_ghc_version}" == ${version} ]] && return 0; [[ "${pm_ghc_version}" == ${version} ]] && return 0; done; return 1 } cabal-mksetup () { local setupdir=${1:-${S}}; local setup_src=${setupdir}/Setup.hs; rm -vf "${setupdir}"/Setup.{lhs,hs}; elog "Creating 'Setup.hs' for 'Simple' build type."; echo 'import Distribution.Simple; main = defaultMain' > "${setup_src}" || die "failed to create default Setup.hs" } cabal-pkg () { if [[ -n ${CABAL_HAS_LIBRARIES} ]]; then ./setup register --gen-pkg-config="${T}/${P}.conf"; if [[ -d "${T}/${P}.conf" ]]; then ghc-install-pkg "${T}/${P}.conf"/*; else ghc-install-pkg "${T}/${P}.conf"; fi; fi } cabal-show-brokens () { [[ ${CABAL_REPORT_OTHER_BROKEN_PACKAGES} != yes ]] && return 0; elog "ghc-pkg check: 'checking for other broken packages:'"; $(ghc-getghcpkg) check 2>&1 | egrep -v '^Warning: haddock-(html|interfaces): ' | egrep -v '^Warning: include-dirs: ' | head -n 20; cabal-die-if-nonempty 'broken' $($(ghc-getghcpkg) check --simple-output) } cabal-show-brokens-and-die () { cabal-show-brokens; cabal-show-old; die "$@" } cabal-show-old () { [[ ${CABAL_REPORT_OTHER_BROKEN_PACKAGES} != yes ]] && return 0; cabal-die-if-nonempty 'outdated' $("${EPREFIX}"/usr/sbin/haskell-updater --quiet --upgrade --list-only) } cabal-version () { if [[ -z "${_CABAL_VERSION_CACHE}" ]]; then if [[ -n "${CABAL_BOOTSTRAP}" ]]; then _CABAL_VERSION_CACHE="${PV}"; else if [[ -n "${CABAL_FROM_GHC}" ]]; then _CABAL_VERSION_CACHE="$(ghc-cabal-version)"; else _CABAL_VERSION_CACHE="$(ghc-extractportageversion dev-haskell/cabal)"; fi; fi; fi; echo "${_CABAL_VERSION_CACHE}" } cabal_chdeps () { local cabal_fn=${MY_PN:-${PN}}.cabal; local cf=${CABAL_FILE:-${S}/${cabal_fn}}; local from_ss; local to_ss; local orig_c; local new_c; [[ -f $cf ]] || die "cabal file '$cf' does not exist"; orig_c=$(< "$cf"); while :; do from_pat=$1; to_str=$2; [[ -n ${from_pat} ]] || break; [[ -n ${to_str} ]] || die "'${from_str}' does not have 'to' part"; einfo "CHDEP: '${from_pat}' -> '${to_str}'"; from_pat=${from_pat//\*/\\*}; from_pat=${from_pat//\[/\\[}; new_c=${orig_c//${from_pat}/${to_str}}; if [[ -n $CABAL_DEBUG_LOOSENING ]]; then echo "${orig_c}" > "${T}/${cf}".pre; echo "${new_c}" > "${T}/${cf}".post; diff -u "${T}/${cf}".{pre,post}; fi; [[ "${orig_c}" == "${new_c}" ]] && die "no trigger for '${from_pat}'"; orig_c=${new_c}; shift; shift; done; echo "${new_c}" > "$cf" || die "failed to update" } cabal_flag () { if [[ -z "$1" ]]; then echo "!!! cabal_flag() called without a parameter." 1>&2; echo "!!! cabal_flag() <USEFLAG> [<cabal_flagname>]" 1>&2; return 1; fi; local UWORD=${2:-$1}; if use "$1"; then echo "--flags=${UWORD}"; else echo "--flags=-${UWORD}"; fi; return 0 } cabal_src_compile () { if ! has "${EAPI:-0}" 0 1; then local passed_flag; for passed_flag in "$@"; do [[ ${passed_flag} == --flags=* ]] && eqawarn "QA Notice: Cabal option '${passed_flag}' has effect only in src_configure()"; done; fi; cabal-is-dummy-lib && return; has src_configure ${HASKELL_CABAL_EXPF} || haskell-cabal_src_configure "$@"; cabal-build; if [[ -n "${CABAL_USE_HADDOCK}" ]] && use doc; then if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then cabal-hoogle-hscolour-haddock; else cabal-hscolour-haddock; fi; else if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then cabal-hoogle-haddock; else cabal-haddock; fi; fi; else if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then cabal-hoogle-hscolour; else cabal-hscolour; fi; else if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then cabal-hoogle; fi; fi; fi } cabal_src_configure () { haskell-cabal_src_configure "$@" } cabal_src_install () { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; if ! cabal-is-dummy-lib; then cabal-copy; cabal-pkg; fi; local ghc_confdir_with_prefix="$(ghc-confdir)"; dodir ${ghc_confdir_with_prefix#${EPREFIX}}; local hint_db="${D}/$(ghc-confdir)"; local hint_file="${hint_db}/gentoo-empty-${CATEGORY}-${PF}.conf"; mkdir -p "${hint_db}" || die; touch "${hint_file}" || die } check-for-collisions () { local localpkgconf=$1; local checked_pkg; local initial_pkg_db="$(ghc-libdir)/package.conf.d.initial"; for checked_pkg in `$(ghc-getghcpkgbin) -f "${localpkgconf}" list --simple-output`; do local collided=`$(ghc-getghcpkgbin) -f ${initial_pkg_db} list --simple-output "${checked_pkg}"`; if [[ -n ${collided} ]]; then eerror "Cabal package '${checked_pkg}' is shipped with '$(ghc-pm-version)' ('$(ghc-version)')."; eerror "Ebuild author forgot an entry in CABAL_CORE_LIB_GHC_PV='${CABAL_CORE_LIB_GHC_PV}'."; eerror "Found in ${initial_pkg_db}."; die; fi; done } clang-fullversion () { _clang_fullversion '$1.$2.$3' "$@" } clang-major-version () { _clang_fullversion '$1' "$@" } clang-micro-version () { _clang_fullversion '$3' "$@" } clang-minor-version () { _clang_fullversion '$2' "$@" } clang-version () { _clang_fullversion '$1.$2' "$@" } doicon () { _iconins ${FUNCNAME} "$@" } domenu () { ( local i ret=0; insopts -m 0644; insinto /usr/share/applications; for i in "$@"; do if [[ -d ${i} ]]; then doins "${i}"/*.desktop; ((ret|=$?)); else doins "${i}"; ((ret|=$?)); fi; done; exit ${ret} ) } eapply () { local failed patch_cmd=patch; local -x LC_COLLATE=POSIX; type -P gpatch > /dev/null && patch_cmd=gpatch; function _eapply_patch () { local f=${1}; local prefix=${2}; ebegin "${prefix:-Applying }${f##*/}"; local all_opts=(-p1 -f -g0 --no-backup-if-mismatch "${patch_options[@]}"); if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 < "${f}" &> /dev/null; then all_opts+=(-s -F0); fi; ${patch_cmd} "${all_opts[@]}" < "${f}"; failed=${?}; if ! eend "${failed}"; then __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; fi }; local patch_options=() files=(); local i found_doublehyphen; for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} == -- ]]; then patch_options=("${@:1:i-1}"); files=("${@:i+1}"); found_doublehyphen=1; break; fi; done; if [[ -z ${found_doublehyphen} ]]; then for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} != -* ]]; then patch_options=("${@:1:i-1}"); files=("${@:i}"); break; fi; done; for i in "${files[@]}"; do if [[ ${i} == -* ]]; then die "eapply: all options must be passed before non-options"; fi; done; fi; if [[ ${#files[@]} -eq 0 ]]; then die "eapply: no files specified"; fi; local f; for f in "${files[@]}"; do if [[ -d ${f} ]]; then function _eapply_get_files () { local LC_ALL=POSIX; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; local f; for f in "${1}"/*; do if [[ ${f} == *.diff || ${f} == *.patch ]]; then files+=("${f}"); fi; done; ${prev_shopt} }; local files=(); _eapply_get_files "${f}"; [[ ${#files[@]} -eq 0 ]] && die "No *.{patch,diff} files in directory ${f}"; einfo "Applying patches from ${f} ..."; local f2; for f2 in "${files[@]}"; do _eapply_patch "${f2}" ' '; [[ ${failed} -ne 0 ]] && return "${failed}"; done; else _eapply_patch "${f}"; [[ ${failed} -ne 0 ]] && return "${failed}"; fi; done; return 0 } eapply_user () { [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}"; local tagfile=${T}/.portage_user_patches_applied; [[ -f ${tagfile} ]] && return; >> "${tagfile}"; local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; local applied d f; local -A _eapply_user_patches; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{:${SLOT%/*},}; do for f in "${d}"/*; do if [[ ( ${f} == *.diff || ${f} == *.patch ) && -z ${_eapply_user_patches[${f##*/}]} ]]; then _eapply_user_patches[${f##*/}]=${f}; fi; done; done; if [[ ${#_eapply_user_patches[@]} -gt 0 ]]; then while read -r -d '' f; do f=${_eapply_user_patches[${f}]}; if [[ -s ${f} ]]; then eapply "${f}"; applied=1; fi; done < <(printf -- '%s\0' "${!_eapply_user_patches[@]}" | LC_ALL=C sort -z); fi; ${prev_shopt}; [[ -n ${applied} ]] && ewarn "User patches applied." } econf_build () { local CBUILD=${CBUILD:-${CHOST}}; tc-env_build econf --build=${CBUILD} --host=${CBUILD} "$@" } ecvs_clean () { [[ $# -eq 0 ]] && set -- .; find "$@" '(' -type d -name 'CVS' -prune -o -type f -name '.cvs*' ')' -exec rm -rf '{}' + } edos2unix () { [[ $# -eq 0 ]] && return 0; sed -i 's/\r$//' -- "$@" || die } egit_clean () { [[ $# -eq 0 ]] && set -- .; find "$@" -type d -name '.git*' -prune -exec rm -rf '{}' + } einstalldocs () { ( if [[ $(declare -p DOCS 2>/dev/null) != *=* ]]; then local d; for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG; do [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}"; done; else if ___is_indexed_array_var DOCS; then [[ ${#DOCS[@]} -gt 0 ]] && docinto / && dodoc -r "${DOCS[@]}"; else [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS}; fi; fi ); ( if ___is_indexed_array_var HTML_DOCS; then [[ ${#HTML_DOCS[@]} -gt 0 ]] && docinto html && dodoc -r "${HTML_DOCS[@]}"; else [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS}; fi ) } emktemp () { local exe="touch"; [[ $1 == -d ]] && exe="mkdir" && shift; local topdir=$1; if [[ -z ${topdir} ]]; then [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; fi; if ! type -P mktemp > /dev/null; then local tmp=/; while [[ -e ${tmp} ]]; do tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; done; ${exe} "${tmp}" || ${exe} -p "${tmp}"; echo "${tmp}"; else if [[ ${exe} == "touch" ]]; then TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; else TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; fi; fi } epatch () { function _epatch_draw_line () { [[ -z $1 ]] && set "$(printf "%65s" '')"; echo "${1//?/=}" }; unset P4CONFIG P4PORT P4USER; local EPATCH_OPTS=(${EPATCH_OPTS[*]}); while [[ $# -gt 0 ]]; do case $1 in -*) EPATCH_OPTS+=("$1") ;; *) break ;; esac; shift; done; if [[ $# -gt 1 ]]; then local m; for m in "$@"; do epatch "${m}"; done; return 0; fi; local SINGLE_PATCH="no"; [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}"; if [[ -f $1 ]]; then SINGLE_PATCH="yes"; set -- "$1"; local EPATCH_SUFFIX=$1; else if [[ -d $1 ]]; then evar_push_set LC_COLLATE C; set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"}; evar_pop; else if [[ -f ${EPATCH_SOURCE}/$1 ]]; then epatch "${EPATCH_SOURCE}/$1"; return $?; else [[ $# -ne 0 ]] && EPATCH_SOURCE=$1; echo; eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:"; eerror; eerror " ${EPATCH_SOURCE}"; eerror " ( ${EPATCH_SOURCE##*/} )"; echo; die "Cannot find \$EPATCH_SOURCE!"; fi; fi; fi; EPATCH_OPTS="${EPATCH_COMMON_OPTS} ${EPATCH_OPTS[*]}"; local PIPE_CMD; case ${EPATCH_SUFFIX##*\.} in xz) PIPE_CMD="xz -dc" ;; lzma) PIPE_CMD="lzma -dc" ;; bz2) PIPE_CMD="bzip2 -dc" ;; gz | Z | z) PIPE_CMD="gzip -dc" ;; ZIP | zip) PIPE_CMD="unzip -p" ;; *) ;; esac; [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}"; local x; for x in "$@"; do [[ ! -f ${x} ]] && continue; local patchname=${x##*/}; local a=${patchname#*_}; a=${a%%_*}; if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then continue; fi; if [[ -n ${EPATCH_EXCLUDE}${EPATCH_USER_EXCLUDE} ]]; then eshopts_push -o noglob; local ex; for ex in ${EPATCH_EXCLUDE}; do if [[ ${patchname} == ${ex} ]]; then einfo " Skipping ${patchname} due to EPATCH_EXCLUDE ..."; eshopts_pop; continue 2; fi; done; for ex in ${EPATCH_USER_EXCLUDE}; do if [[ ${patchname} == ${ex} ]]; then einfo " Skipping ${patchname} due to EPATCH_USER_EXCLUDE ..."; eshopts_pop; continue 2; fi; done; eshopts_pop; fi; if [[ ${SINGLE_PATCH} == "yes" ]]; then if [[ -n ${EPATCH_SINGLE_MSG} ]]; then einfo "${EPATCH_SINGLE_MSG}"; else einfo "Applying ${patchname} ..."; fi; else einfo " ${patchname} ..."; fi; local patch="patch"; eval $(alias patch 2>/dev/null | sed 's:^alias ::'); local STDERR_TARGET="${T}/${patchname}.out"; if [[ -e ${STDERR_TARGET} ]]; then STDERR_TARGET="${T}/${patchname}-$$.out"; fi; printf "***** %s *****\nPWD: %s\nPATCH TOOL: %s -> %s\nVERSION INFO:\n%s\n\n" "${patchname}" "${PWD}" "${patch}" "$(type -P "${patch}")" "$(${patch} --version)" > "${STDERR_TARGET}"; local count=0; local PATCH_TARGET; if [[ -n ${PIPE_CMD} ]]; then PATCH_TARGET="${T}/$$.patch"; echo "PIPE_COMMAND: ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}"; if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then echo; eerror "Could not extract patch!"; count=5; break; fi; else PATCH_TARGET=${x}; fi; local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }'); if [[ -n ${abs_paths} ]]; then count=1; printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}"; fi; local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}"); if [[ -n ${rel_paths} ]]; then echo; eerror "Rejected Patch: ${patchname} !"; eerror " ( ${PATCH_TARGET} )"; eerror; eerror "Your patch uses relative paths '../':"; eerror "${rel_paths}"; echo; die "you need to fix the relative paths in patch"; fi; local patch_cmd; while [[ ${count} -lt 5 ]]; do patch_cmd="${patch} -p${count} ${EPATCH_OPTS}"; ( _epatch_draw_line "***** ${patchname} *****"; echo; echo "PATCH COMMAND: ${patch_cmd} --dry-run -f < '${PATCH_TARGET}'"; echo; _epatch_draw_line "***** ${patchname} *****"; ${patch_cmd} --dry-run -f < "${PATCH_TARGET}" 2>&1; ret=$?; echo; echo "patch program exited with status ${ret}"; exit ${ret} ) >> "${STDERR_TARGET}"; if [ $? -eq 0 ]; then ( _epatch_draw_line "***** ${patchname} *****"; echo; echo "ACTUALLY APPLYING ${patchname} ..."; echo "PATCH COMMAND: ${patch_cmd} < '${PATCH_TARGET}'"; echo; _epatch_draw_line "***** ${patchname} *****"; ${patch_cmd} < "${PATCH_TARGET}" 2>&1; ret=$?; echo; echo "patch program exited with status ${ret}"; exit ${ret} ) >> "${STDERR_TARGET}"; if [ $? -ne 0 ]; then echo; eerror "A dry-run of patch command succeeded, but actually"; eerror "applying the patch failed!"; count=5; fi; break; fi; : $(( count++ )); done; (( EPATCH_N_APPLIED_PATCHES++ )); if [[ -n ${PIPE_CMD} ]]; then rm -f "${PATCH_TARGET}"; fi; if [[ ${count} -ge 5 ]]; then echo; eerror "Failed Patch: ${patchname} !"; eerror " ( ${PATCH_TARGET} )"; eerror; eerror "Include in your bugreport the contents of:"; eerror; eerror " ${STDERR_TARGET}"; echo; die "Failed Patch: ${patchname}!"; fi; rm -f "${STDERR_TARGET}"; cat <<-EOF >> "${T}/epatch.log" PATCH: ${x} CMD: ${patch_cmd} PWD: ${PWD} EOF eend 0; done; [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching"; : } eshopts_pop () { local s; estack_pop eshopts s || die "${FUNCNAME}: unbalanced push"; eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}" } eshopts_push () { estack_push eshopts "$(shopt -p -o) $(shopt -p)"; if [[ $1 == -[su] ]]; then [[ $# -le 1 ]] && return 0; shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*"; else [[ $# -eq 0 ]] && return 0; set "$@" || die "${FUNCNAME}: bad options to set: $*"; fi } estack_pop () { [[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments"; local _estack_name="_ESTACK_$1_"; shift; local _estack_retvar=$1; shift; eval local _estack_i=\${#${_estack_name}\[@\]}; [[ $(( --_estack_i )) -eq -1 ]] && return 1; if [[ -n ${_estack_retvar} ]]; then eval ${_estack_retvar}=\"\${${_estack_name}\[${_estack_i}\]}\"; fi; eval unset \"${_estack_name}\[${_estack_i}\]\" } estack_push () { [[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments"; local stack_name="_ESTACK_$1_"; shift; eval ${stack_name}+=\( \"\$@\" \) } esvn_clean () { [[ $# -eq 0 ]] && set -- .; find "$@" -type d -name '.svn' -prune -exec rm -rf '{}' + } eumask_pop () { [[ $# -eq 0 ]] || die "${FUNCNAME}: we take no options"; local s; estack_pop eumask s || die "${FUNCNAME}: unbalanced push"; umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}" } eumask_push () { estack_push eumask "$(umask)"; umask "$@" || die "${FUNCNAME}: bad options to umask: $*" } evar_pop () { local cnt=${1:-bad}; case $# in 0) cnt=1 ;; 1) [[ -z ${cnt//[0-9]} ]] || die "${FUNCNAME}: first arg must be a number: $*" ;; *) die "${FUNCNAME}: only accepts one arg: $*" ;; esac; local var val; while (( cnt-- )); do estack_pop evar val || die "${FUNCNAME}: unbalanced push"; estack_pop evar var || die "${FUNCNAME}: unbalanced push"; [[ ${val} == "unset_76fc3c462065bb4ca959f939e6793f94" ]] && unset ${var} || printf -v "${var}" '%s' "${val}"; done } evar_push () { local var val; for var in "$@"; do [[ ${!var+set} == "set" ]] && val=${!var} || val="unset_76fc3c462065bb4ca959f939e6793f94"; estack_push evar "${var}" "${val}"; done } evar_push_set () { local var=$1; evar_push ${var}; case $# in 1) unset ${var} ;; 2) printf -v "${var}" '%s' "$2" ;; *) die "${FUNCNAME}: incorrect # of args: $*" ;; esac } gcc-fullversion () { _gcc_fullversion '$1.$2.$3' "$@" } gcc-major-version () { _gcc_fullversion '$1' "$@" } gcc-micro-version () { _gcc_fullversion '$3' "$@" } gcc-minor-version () { _gcc_fullversion '$2' "$@" } gcc-specs-directive () { local directive subdname subdirective; directive="$(_gcc-specs-directive_raw $1)"; while [[ ${directive} == *%\(*\)* ]]; do subdname=${directive/*%\(}; subdname=${subdname/\)*}; subdirective="$(_gcc-specs-directive_raw ${subdname})"; directive="${directive//\%(${subdname})/${subdirective}}"; done; echo "${directive}"; return 0 } gcc-specs-nostrict () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]] } gcc-specs-now () { local directive; directive=$(gcc-specs-directive link_command); [[ "${directive/\{!nonow:}" != "${directive}" ]] } gcc-specs-pie () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!nopie:}" != "${directive}" ]] } gcc-specs-relro () { local directive; directive=$(gcc-specs-directive link_command); [[ "${directive/\{!norelro:}" != "${directive}" ]] } gcc-specs-ssp () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]] } gcc-specs-ssp-to-all () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]] } gcc-specs-stack-check () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-check:}" != "${directive}" ]] } gcc-version () { _gcc_fullversion '$1.$2' "$@" } gen_usr_ldscript () { ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"; local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname); [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/; tc-is-static-only && return; if [[ $(type -t multilib_is_native_abi) == "function" ]]; then multilib_is_native_abi || return 0; fi; case ${CTARGET:-${CHOST}} in *-darwin*) ;; *-android*) return 0 ;; *linux* | *-freebsd* | *-openbsd* | *-netbsd*) use prefix && return 0 ;; *) return 0 ;; esac; dodir /usr/${libdir}; if [[ $1 == "-a" ]]; then auto=true; shift; dodir /${libdir}; fi; local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose); if $(tc-getLD) --version | grep -q 'GNU gold'; then local d="${T}/bfd-linker"; mkdir -p "${d}"; ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld; flags+=(-B"${d}"); fi; output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; for lib in "$@"; do local tlib; if ${auto}; then lib="lib${lib}${suffix}"; else [[ -r ${ED}/${libdir}/${lib} ]] || continue; fi; case ${CTARGET:-${CHOST}} in *-darwin*) if ${auto}; then tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); else tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib}); fi; [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"; tlib=${tlib##*/}; if ${auto}; then mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; fi; rm -f "${ED}"/${libdir}/${lib}; fi; if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then chmod u+w "${ED}${libdir}/${tlib}"; local nowrite=yes; fi; install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed"; [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"; pushd "${ED}/usr/${libdir}" > /dev/null; ln -snf "../../${libdir}/${tlib}" "${lib}"; popd > /dev/null ;; *) if ${auto}; then tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"; mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; if [[ ${tlib} != ${lib}* ]]; then mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; fi; rm -f "${ED}"/${libdir}/${lib}; else tlib=${lib}; fi; cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT /* GNU ld script Since Gentoo has critical dynamic libraries in /lib, and the static versions in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we run into linking problems. This "fake" dynamic lib is a linker script that redirects the linker to the real lib. And yes, this works in the cross- compiling scenario as the sysroot-ed linker will prepend the real path. See bug https://bugs.gentoo.org/4411 for more info. */ ${output_format} GROUP ( ${EPREFIX}/${libdir}/${tlib} ) END_LDSCRIPT ;; esac fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"; done } get_abi_CFLAGS () { get_abi_var CFLAGS "$@" } get_abi_CHOST () { get_abi_var CHOST "$@" } get_abi_CTARGET () { get_abi_var CTARGET "$@" } get_abi_FAKE_TARGETS () { get_abi_var FAKE_TARGETS "$@" } get_abi_LDFLAGS () { get_abi_var LDFLAGS "$@" } get_abi_LIBDIR () { get_abi_var LIBDIR "$@" } get_abi_var () { local flag=$1; local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}}; local var="${flag}_${abi}"; echo ${!var} } get_all_abis () { local x order="" mvar dvar; mvar="MULTILIB_ABIS"; dvar="DEFAULT_ABI"; if [[ -n $1 ]]; then mvar="$1_${mvar}"; dvar="$1_${dvar}"; fi; if [[ -z ${!mvar} ]]; then echo "default"; return 0; fi; for x in ${!mvar}; do if [[ ${x} != ${!dvar} ]]; then order="${order:+${order} }${x}"; fi; done; order="${order:+${order} }${!dvar}"; echo ${order}; return 0 } get_all_libdirs () { local libdirs abi; for abi in ${MULTILIB_ABIS}; do libdirs+=" $(get_abi_LIBDIR ${abi})"; done; [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib"; echo "${libdirs}" } get_exeext () { case ${CHOST} in *-cygwin* | mingw* | *-mingw*) echo ".exe" ;; esac } get_install_abis () { local x order=""; if [[ -z ${MULTILIB_ABIS} ]]; then echo "default"; return 0; fi; if [[ ${EMULTILIB_PKG} == "true" ]]; then for x in ${MULTILIB_ABIS}; do if [[ ${x} != "${DEFAULT_ABI}" ]]; then has ${x} ${ABI_DENY} || order="${order} ${x}"; fi; done; has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}"; if [[ -n ${ABI_ALLOW} ]]; then local ordera=""; for x in ${order}; do if has ${x} ${ABI_ALLOW}; then ordera="${ordera} ${x}"; fi; done; order=${ordera}; fi; else order=${DEFAULT_ABI}; fi; if [[ -z ${order} ]]; then die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; fi; echo ${order}; return 0 } get_libdir () { local libdir_var="LIBDIR_${ABI}"; local libdir="lib"; [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var}; echo "${libdir}" } get_libname () { local libname; local ver=$1; case ${CHOST} in *-cygwin*) libname="dll.a" ;; mingw* | *-mingw*) libname="dll" ;; *-darwin*) libname="dylib" ;; *-mint*) libname="irrelevant" ;; hppa*-hpux*) libname="sl" ;; *) libname="so" ;; esac; if [[ -z $* ]]; then echo ".${libname}"; else for ver in "$@"; do case ${CHOST} in *-cygwin*) echo ".${ver}.${libname}" ;; *-darwin*) echo ".${ver}.${libname}" ;; *-mint*) echo ".${libname}" ;; *) echo ".${libname}.${ver}" ;; esac; done; fi } get_modname () { local modname; local ver=$1; case ${CHOST} in *-darwin*) modname="bundle" ;; *) modname="so" ;; esac; echo ".${modname}" } get_nproc () { local nproc; if type -P nproc &> /dev/null; then nproc=$(nproc); fi; if [[ -z ${nproc} ]] && type -P sysctl &> /dev/null; then nproc=$(sysctl -n hw.ncpu 2>/dev/null); fi; if [[ -z ${nproc} ]] && type -P python &> /dev/null; then nproc=$(python -c 'import multiprocessing; print(multiprocessing.cpu_count());' 2>/dev/null); fi; if [[ -n ${nproc} ]]; then echo "${nproc}"; else echo "${1:-1}"; fi } ghc-cabal-version () { if ver_test "$(ghc-version)" -ge "7.9.20141222"; then set -- `$(ghc-getghcpkg) --package-db=$(ghc-libdir)/package.conf.d.initial field Cabal version`; echo "$2"; else local cabal_package=`echo "$(ghc-libdir)"/Cabal-*`; echo "${cabal_package/*Cabal-/}"; fi } ghc-confdir () { echo "$(ghc-libdir)/gentoo" } ghc-extractportageversion () { local pkg; local version; pkg="$(best_version $1)"; version="${pkg#$1-}"; version="${version%-r*}"; version="${version%_pre*}"; echo "${version}" } ghc-getghc () { type -P ${HC:-ghc} } ghc-getghcpkg () { type -P ${HC_PKG:-ghc-pkg} } ghc-getghcpkgbin () { if ver_test "$(ghc-version)" -ge "7.9.20141222"; then local empty_db="${T}/empty.conf.d" ghc_pkg="$(ghc-libdir)/bin/ghc-pkg"; if [[ ! -d ${empty_db} ]]; then "${ghc_pkg}" init "${empty_db}" || die "Failed to initialize empty global db"; fi; echo "$(ghc-libdir)/bin/ghc-pkg" "--global-package-db=${empty_db}"; else if ver_test "$(ghc-version)" -ge "7.7.20121101"; then echo '[]' > "${T}/empty.conf"; echo "$(ghc-libdir)/bin/ghc-pkg" "--global-package-db=${T}/empty.conf"; else if ver_test "$(ghc-version)" -ge "7.5.20120516"; then echo '[]' > "${T}/empty.conf"; echo "$(ghc-libdir)/ghc-pkg" "--global-package-db=${T}/empty.conf"; else echo '[]' > "${T}/empty.conf"; echo "$(ghc-libdir)/ghc-pkg" "--global-conf=${T}/empty.conf"; fi; fi; fi } ghc-install-pkg () { local localpkgconf="${T}/$(ghc-localpkgconfd)"; local pkg_path pkg pkg_db="${D}/$(ghc-package-db)" hint_db="${D}/$(ghc-confdir)"; $(ghc-getghcpkgbin) init "${localpkgconf}" || die "Failed to initialize empty local db"; for pkg_config_file in "$@"; do $(ghc-getghcpkgbin) -f "${localpkgconf}" update - --force < "${pkg_config_file}" || die "failed to register ${pkg}"; done; check-for-collisions "${localpkgconf}"; mkdir -p "${pkg_db}" || die; for pkg_path in "${localpkgconf}"/*.conf; do pkg=$(basename "${pkg_path}"); cp "${pkg_path}" "${pkg_db}/${pkg}" || die; done; mkdir -p "${hint_db}" || die; for pkg_config_file in "$@"; do local pkg_name="gentoo-${CATEGORY}-${PF}-"$(basename "${pkg_config_file}"); cp "${pkg_config_file}" "${hint_db}/${pkg_name}" || die; chmod 0644 "${hint_db}/${pkg_name}" || die; done } ghc-is-dynamic () { $(ghc-getghc) --info | grep "GHC Dynamic" | grep -q "YES" } ghc-libdir () { if [[ -z "${_GHC_LIBDIR_CACHE}" ]]; then _GHC_LIBDIR_CACHE="$($(ghc-getghc) --print-libdir)"; fi; echo "${_GHC_LIBDIR_CACHE}" } ghc-localpkgconfd () { echo "${PF}.conf.d" } ghc-make-args () { local ghc_make_args=(); if ghc-supports-smp && ghc-supports-parallel-make; then echo "-j$(makeopts_jobs) +RTS -A256M -qb0 -RTS"; ghc_make_args=(); fi; echo "${ghc_make_args[@]}" } ghc-package-db () { echo "$(ghc-libdir)/package.conf.d" } ghc-package-exists () { $(ghc-getghcpkg) describe "$1" > /dev/null 2>&1 } ghc-package_pkg_postinst () { ghc-recache-db } ghc-package_pkg_postrm () { ghc-recache-db } ghc-package_pkg_prerm () { ewarn "ghc-package.eclass: 'ghc-package_pkg_prerm()' is a noop"; ewarn "ghc-package.eclass: consider 'haskell-cabal_pkg_postrm()' instead" } ghc-pkgdeps () { echo $($(ghc-getghcpkg) describe "${1}") | sed -e '/depends/,/^.*:/ !d' -e 's/\(.*\)-\(.*\)-\(.*\)/\1 \2/' -e 's/^.*://g' } ghc-pm-version () { local pm_ghc_p; if [[ -z "${_GHC_PM_VERSION_CACHE}" ]]; then pm_ghc_p=$(best_version dev-lang/ghc); _GHC_PM_VERSION_CACHE="PM:${pm_ghc_p#dev-lang/ghc-}"; fi; echo "${_GHC_PM_VERSION_CACHE}" } ghc-recache-db () { einfo "Recaching GHC package DB"; $(ghc-getghcpkg) recache } ghc-register-pkg () { ghc-recache-db } ghc-reregister () { ghc-recache-db } ghc-supports-interpreter () { $(ghc-getghc) --info | grep "Have interpreter" | grep -q "YES" } ghc-supports-parallel-make () { $(ghc-getghc) --info | grep "Support parallel --make" | grep -q "YES" } ghc-supports-shared-libraries () { $(ghc-getghc) --info | grep "RTS ways" | grep -q "dyn" } ghc-supports-smp () { $(ghc-getghc) --info | grep "Support SMP" | grep -q "YES" } ghc-supports-threaded-runtime () { $(ghc-getghc) --info | grep "RTS ways" | grep -q "thr" } ghc-unregister-pkg () { ghc-recache-db } ghc-version () { if [[ -z "${_GHC_VERSION_CACHE}" ]]; then _GHC_VERSION_CACHE="$($(ghc-getghc) --numeric-version)"; fi; echo "${_GHC_VERSION_CACHE}" } has_multilib_profile () { [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] } haskell-cabal_pkg_postinst () { ghc-package_pkg_postinst } haskell-cabal_pkg_postrm () { ghc-package_pkg_postrm } haskell-cabal_pkg_setup () { if [[ -n ${CABAL_HAS_LIBRARIES} ]]; then [[ ${RDEPEND} == *dev-lang/ghc* ]] || eqawarn "QA Notice: A library does not have runtime dependency on dev-lang/ghc."; fi; if [[ -n "${CABAL_UNKNOWN}" ]]; then eqawarn "QA Notice: Unknown entry in CABAL_FEATURES: ${CABAL_UNKNOWN}"; fi; if cabal-is-dummy-lib; then einfo "${P} is included in ghc-${CABAL_CORE_LIB_GHC_PV}, nothing to install."; fi } haskell-cabal_src_compile () { pushd "${S}" > /dev/null || die; cabal_src_compile "$@"; popd > /dev/null || die } haskell-cabal_src_configure () { cabal-is-dummy-lib && return; pushd "${S}" > /dev/null || die; cabal-bootstrap; cabal-configure "$@"; popd > /dev/null || die } haskell-cabal_src_install () { pushd "${S}" > /dev/null || die; cabal_src_install; popd > /dev/null || die } haskell-cabal_src_test () { local cabaltest=(); pushd "${S}" > /dev/null || die; if cabal-is-dummy-lib; then einfo ">>> No tests for dummy library: ${CATEGORY}/${PF}"; else einfo ">>> Test phase [cabal test]: ${CATEGORY}/${PF}"; if ./setup test --help | grep -q -- "'streaming'"; then cabaltest+=(--show-details=streaming); fi; set -- test "${cabaltest[@]}" ${CABAL_TEST_FLAGS} "$@" ${CABAL_EXTRA_TEST_FLAGS}; echo ./setup "$@"; ./setup "$@" || die "cabal test failed"; fi; popd > /dev/null || die } in_iuse () { local use=${1}; if [[ -z "${use}" ]]; then echo "!!! in_iuse() called without a parameter." 1>&2; echo "!!! in_iuse <USEFLAG>" 1>&2; die "in_iuse() called without a parameter"; fi; local liuse=(${IUSE_EFFECTIVE}); has "${use}" "${liuse[@]#[+-]}" } is_final_abi () { has_multilib_profile || return 0; set -- $(get_install_abis); local LAST_ABI=$#; [[ ${!LAST_ABI} == ${ABI} ]] } make_desktop_entry () { [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"; local exec=${1}; local name=${2:-${PN}}; local icon=${3:-${PN}}; local type=${4}; local fields=${5}; if [[ -z ${type} ]]; then local catmaj=${CATEGORY%%-*}; local catmin=${CATEGORY##*-}; case ${catmaj} in app) case ${catmin} in accessibility) type="Utility;Accessibility" ;; admin) type=System ;; antivirus) type=System ;; arch) type="Utility;Archiving" ;; backup) type="Utility;Archiving" ;; cdr) type="AudioVideo;DiscBurning" ;; dicts) type="Office;Dictionary" ;; doc) type=Documentation ;; editors) type="Utility;TextEditor" ;; emacs) type="Development;TextEditor" ;; emulation) type="System;Emulator" ;; laptop) type="Settings;HardwareSettings" ;; office) type=Office ;; pda) type="Office;PDA" ;; vim) type="Development;TextEditor" ;; xemacs) type="Development;TextEditor" ;; esac ;; dev) type="Development" ;; games) case ${catmin} in action | fps) type=ActionGame ;; arcade) type=ArcadeGame ;; board) type=BoardGame ;; emulation) type=Emulator ;; kids) type=KidsGame ;; puzzle) type=LogicGame ;; roguelike) type=RolePlaying ;; rpg) type=RolePlaying ;; simulation) type=Simulation ;; sports) type=SportsGame ;; strategy) type=StrategyGame ;; esac; type="Game;${type}" ;; gnome) type="Gnome;GTK" ;; kde) type="KDE;Qt" ;; mail) type="Network;Email" ;; media) case ${catmin} in gfx) type=Graphics ;; *) case ${catmin} in radio) type=Tuner ;; sound) type=Audio ;; tv) type=TV ;; video) type=Video ;; esac; type="AudioVideo;${type}" ;; esac ;; net) case ${catmin} in dialup) type=Dialup ;; ftp) type=FileTransfer ;; im) type=InstantMessaging ;; irc) type=IRCClient ;; mail) type=Email ;; news) type=News ;; nntp) type=News ;; p2p) type=FileTransfer ;; voip) type=Telephony ;; esac; type="Network;${type}" ;; sci) case ${catmin} in astro*) type=Astronomy ;; bio*) type=Biology ;; calc*) type=Calculator ;; chem*) type=Chemistry ;; elec*) type=Electronics ;; geo*) type=Geology ;; math*) type=Math ;; physics) type=Physics ;; visual*) type=DataVisualization ;; esac; type="Education;Science;${type}" ;; sys) type="System" ;; www) case ${catmin} in client) type=WebBrowser ;; esac; type="Network;${type}" ;; *) type= ;; esac; fi; local slot=${SLOT%/*}; if [[ ${slot} == "0" ]]; then local desktop_name="${PN}"; else local desktop_name="${PN}-${slot}"; fi; local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; type=${type%;}${type:+;}; if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then ewarn "As described in the Icon Theme Specification, icon file extensions are not"; ewarn "allowed in .desktop files if the value is not an absolute path."; icon=${icon%.*}; fi; cat <<-EOF > "${desktop}" || [Desktop Entry] Name=${name} Type=Application Comment=${DESCRIPTION} Exec=${exec} TryExec=${exec%% *} Icon=${icon} Categories=${type} EOF die if [[ ${fields:-=} != *=* ]]; then ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"; fields="Path=${fields}"; fi; if [[ -n ${fields} ]]; then printf '%b\n' "${fields}" >> "${desktop}" || die; fi; ( insopts -m 0644; insinto /usr/share/applications; doins "${desktop}" ) || die "installing desktop file failed" } make_session_desktop () { [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1; [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1; local title=$1; local command=$2; local desktop=${T}/${wm:-${PN}}.desktop; shift 2; cat <<-EOF > "${desktop}" || [Desktop Entry] Name=${title} Comment=This session logs you into ${title} Exec=${command} $* TryExec=${command} Type=XSession EOF die ( insopts -m 0644; insinto /usr/share/xsessions; doins "${desktop}" ) } make_setup () { set -- -package "${cabalpackage}" --make "${setupmodule}" $(ghc-make-args) "${setup_bootstrap_args[@]}" ${HCFLAGS} ${GHC_BOOTSTRAP_FLAGS} "$@" -o setup; echo $(ghc-getghc) "$@"; $(ghc-getghc) "$@" } make_wrapper () { local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; local tmpwrapper=$(emktemp); has "${EAPI:-0}" 0 1 2 && local EPREFIX=""; ( echo '#!/bin/sh'; if [[ -n ${libdir} ]]; then local var; if [[ ${CHOST} == *-darwin* ]]; then var=DYLD_LIBRARY_PATH; else var=LD_LIBRARY_PATH; fi; cat <<-EOF if [ "\${${var}+set}" = "set" ] ; then export ${var}="\${${var}}:${EPREFIX}${libdir}" else export ${var}="${EPREFIX}${libdir}" fi EOF fi [[ -n ${chdir} ]] && printf 'cd "%s" &&\n' "${EPREFIX}${chdir}"; printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}/}" ) > "${tmpwrapper}"; chmod go+rx "${tmpwrapper}"; if [[ -n ${path} ]]; then ( exeopts -m 0755; exeinto "${path}"; newexe "${tmpwrapper}" "${wrapper}" ) || die; else newbin "${tmpwrapper}" "${wrapper}" || die; fi } makeopts_jobs () { [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; local jobs=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' -e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p"); echo ${jobs:-1} } makeopts_loadavg () { [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; local lavg=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*l|--(load-average|max-load)[=[:space:]])[[:space:]]*([0-9]+(\.[0-9]+)?)[[:space:]].*:\3:p' -e "s:.*[[:space:]](-[a-z]*l|--(load-average|max-load))[[:space:]].*:${2:-999}:p"); echo ${lavg:-${2:-999}} } multilib_env () { local CTARGET=${1:-${CTARGET}}; local cpu=${CTARGET%%*-}; case ${cpu} in aarch64*) export CFLAGS_arm=${CFLAGS_arm-}; case ${cpu} in aarch64*be) export CHOST_arm="armv8b-${CTARGET#*-}" ;; *) export CHOST_arm="armv8l-${CTARGET#*-}" ;; esac; CHOST_arm=${CHOST_arm/%-gnu/-gnueabi}; export CTARGET_arm=${CHOST_arm}; export LIBDIR_arm="lib"; export CFLAGS_arm64=${CFLAGS_arm64-}; export CHOST_arm64=${CTARGET}; export CTARGET_arm64=${CHOST_arm64}; export LIBDIR_arm64="lib64"; : ${MULTILIB_ABIS=arm64}; : ${DEFAULT_ABI=arm64} ;; x86_64*) export CFLAGS_x86=${CFLAGS_x86--m32}; export CHOST_x86=${CTARGET/x86_64/i686}; CHOST_x86=${CHOST_x86/%-gnux32/-gnu}; export CTARGET_x86=${CHOST_x86}; if [[ ${SYMLINK_LIB} == "yes" ]]; then export LIBDIR_x86="lib32"; else export LIBDIR_x86="lib"; fi; export CFLAGS_amd64=${CFLAGS_amd64--m64}; export CHOST_amd64=${CTARGET/%-gnux32/-gnu}; export CTARGET_amd64=${CHOST_amd64}; export LIBDIR_amd64="lib64"; export CFLAGS_x32=${CFLAGS_x32--mx32}; export CHOST_x32=${CTARGET/%-gnu/-gnux32}; export CTARGET_x32=${CHOST_x32}; export LIBDIR_x32="libx32"; case ${CTARGET} in *-gnux32) : ${MULTILIB_ABIS=x32 amd64 x86}; : ${DEFAULT_ABI=x32} ;; *) : ${MULTILIB_ABIS=amd64 x86}; : ${DEFAULT_ABI=amd64} ;; esac ;; mips64* | mipsisa64*) export CFLAGS_o32=${CFLAGS_o32--mabi=32}; export CHOST_o32=${CTARGET/mips64/mips}; export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32}; export CTARGET_o32=${CHOST_o32}; export LIBDIR_o32="lib"; export CFLAGS_n32=${CFLAGS_n32--mabi=n32}; export CHOST_n32=${CTARGET}; export CTARGET_n32=${CHOST_n32}; export LIBDIR_n32="lib32"; export CFLAGS_n64=${CFLAGS_n64--mabi=64}; export CHOST_n64=${CTARGET}; export CTARGET_n64=${CHOST_n64}; export LIBDIR_n64="lib64"; : ${MULTILIB_ABIS=n64 n32 o32}; : ${DEFAULT_ABI=n32} ;; powerpc64*) export CFLAGS_ppc=${CFLAGS_ppc--m32}; export CHOST_ppc=${CTARGET/powerpc64/powerpc}; export CTARGET_ppc=${CHOST_ppc}; export LIBDIR_ppc="lib"; export CFLAGS_ppc64=${CFLAGS_ppc64--m64}; export CHOST_ppc64=${CTARGET}; export CTARGET_ppc64=${CHOST_ppc64}; export LIBDIR_ppc64="lib64"; : ${MULTILIB_ABIS=ppc64 ppc}; : ${DEFAULT_ABI=ppc64} ;; riscv64*) export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d}; export CHOST_lp64d=${CTARGET}; export CTARGET_lp64d=${CTARGET}; export LIBDIR_lp64d="lib64/lp64d"; export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64}; export CHOST_lp64=${CTARGET}; export CTARGET_lp64=${CTARGET}; export LIBDIR_lp64="lib64/lp64"; : ${MULTILIB_ABIS=lp64d lp64}; : ${DEFAULT_ABI=lp64d} ;; s390x*) export CFLAGS_s390=${CFLAGS_s390--m31}; export CHOST_s390=${CTARGET/s390x/s390}; export CTARGET_s390=${CHOST_s390}; export LIBDIR_s390="lib"; export CFLAGS_s390x=${CFLAGS_s390x--m64}; export CHOST_s390x=${CTARGET}; export CTARGET_s390x=${CHOST_s390x}; export LIBDIR_s390x="lib64"; : ${MULTILIB_ABIS=s390x s390}; : ${DEFAULT_ABI=s390x} ;; sparc64*) export CFLAGS_sparc32=${CFLAGS_sparc32--m32}; export CHOST_sparc32=${CTARGET/sparc64/sparc}; export CTARGET_sparc32=${CHOST_sparc32}; export LIBDIR_sparc32="lib"; export CFLAGS_sparc64=${CFLAGS_sparc64--m64}; export CHOST_sparc64=${CTARGET}; export CTARGET_sparc64=${CHOST_sparc64}; export LIBDIR_sparc64="lib64"; : ${MULTILIB_ABIS=sparc64 sparc32}; : ${DEFAULT_ABI=sparc64} ;; *) : ${MULTILIB_ABIS=default}; : ${DEFAULT_ABI=default} ;; esac; export MULTILIB_ABIS DEFAULT_ABI } multilib_toolchain_setup () { local v vv; export ABI=$1; if [[ ${_DEFAULT_ABI_SAVED} == "true" ]]; then for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH}; do vv="_abi_saved_${v}"; [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v}; unset ${vv}; done; unset _DEFAULT_ABI_SAVED; fi; if [[ ${ABI} != ${DEFAULT_ABI} ]]; then for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH}; do vv="_abi_saved_${v}"; [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv}; done; export _DEFAULT_ABI_SAVED="true"; if [[ ${CBUILD} == "${CHOST}" ]]; then export CBUILD=$(get_abi_CHOST $1); fi; export CHOST=$(get_abi_CHOST ${DEFAULT_ABI}); export CC="$(tc-getCC) $(get_abi_CFLAGS)"; export CXX="$(tc-getCXX) $(get_abi_CFLAGS)"; export F77="$(tc-getF77) $(get_abi_CFLAGS)"; export FC="$(tc-getFC) $(get_abi_CFLAGS)"; export LD="$(tc-getLD) $(get_abi_LDFLAGS)"; export CHOST=$(get_abi_CHOST $1); export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig; export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig; fi } newicon () { _iconins ${FUNCNAME} "$@" } newmenu () { ( insopts -m 0644; insinto /usr/share/applications; newins "$@" ) } number_abis () { set -- `get_install_abis`; echo $# } optfeature () { debug-print-function ${FUNCNAME} "$@"; local i j msg; local desc=$1; local flag=0; shift; for i in "$@"; do for j in ${i}; do if has_version "${j}"; then flag=1; else flag=0; break; fi; done; if [[ ${flag} -eq 1 ]]; then break; fi; done; if [[ ${flag} -eq 0 ]]; then for i in "$@"; do msg=" "; for j in ${i}; do msg+=" ${j} and"; done; msg="${msg:0: -4} for ${desc}"; elog "${msg}"; done; fi } path_exists () { eerror "path_exists has been removed. Please see the following post"; eerror "for a replacement snippet:"; eerror "https://blogs.gentoo.org/mgorny/2018/08/09/inlining-path_exists/"; die "path_exists is banned" } pkg_nofetch () { default } pkg_postinst () { haskell-cabal_pkg_postinst "$@" } pkg_postrm () { haskell-cabal_pkg_postrm "$@" } pkg_setup () { haskell-cabal_pkg_setup "$@" } preserve_old_lib () { if [[ ${EBUILD_PHASE} != "preinst" ]]; then eerror "preserve_old_lib() must be called from pkg_preinst() only"; die "Invalid preserve_old_lib() usage"; fi; [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]"; has preserve-libs ${FEATURES} && return 0; has "${EAPI:-0}" 0 1 2 && local ED=${D} EROOT=${ROOT}; local lib dir; for lib in "$@"; do [[ -e ${EROOT}/${lib} ]] || continue; dir=${lib%/*}; dodir ${dir} || die "dodir ${dir} failed"; cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed"; touch "${ED}"/${lib}; done } preserve_old_lib_notify () { if [[ ${EBUILD_PHASE} != "postinst" ]]; then eerror "preserve_old_lib_notify() must be called from pkg_postinst() only"; die "Invalid preserve_old_lib_notify() usage"; fi; has preserve-libs ${FEATURES} && return 0; has "${EAPI:-0}" 0 1 2 && local EROOT=${ROOT}; local lib notice=0; for lib in "$@"; do [[ -e ${EROOT}/${lib} ]] || continue; if [[ ${notice} -eq 0 ]]; then notice=1; ewarn "Old versions of installed libraries were detected on your system."; ewarn "In order to avoid breaking packages that depend on these old libs,"; ewarn "the libraries are not being removed. You need to run revdep-rebuild"; ewarn "in order to remove these old dependencies. If you do not have this"; ewarn "helper program, simply emerge the 'gentoolkit' package."; ewarn; fi; ewarn " # revdep-rebuild --library '${lib}' && rm '${lib}'"; done } prune_libtool_files () { debug-print-function ${FUNCNAME} "$@"; local removing_all removing_modules opt; for opt in "$@"; do case "${opt}" in --all) removing_all=1; removing_modules=1 ;; --modules) removing_modules=1 ;; *) die "Invalid argument to ${FUNCNAME}(): ${opt}" ;; esac; done; local f; local queue=(); while IFS= read -r -d '' f; do local archivefile=${f/%.la/.a}; if ! sed -n -e '/^# Generated by .*libtool/q0;4q1' "${f}"; then continue; fi; [[ ${f} != ${archivefile} ]] || die 'regex sanity check failed'; local reason= pkgconfig_scanned=; local snotlink=$(sed -n -e 's:^shouldnotlink=::p' "${f}"); if [[ ${snotlink} == yes ]]; then if [[ -f ${archivefile} ]]; then einfo "Removing unnecessary ${archivefile#${D%/}} (static plugin)"; queue+=("${archivefile}"); fi; if [[ -n ${removing_modules} ]]; then reason='module'; fi; else if [[ -n ${removing_all} ]]; then reason='requested'; else if [[ ! -f ${archivefile} ]]; then reason='no static archive'; else if [[ ! -n $(sed -nre "s/^(dependency_libs|inherited_linker_flags)='(.*)'$/\2/p" "${f}") ]]; then reason='no libs & flags'; else if [[ ! -n ${pkgconfig_scanned} ]]; then local pc_libs=(); if [[ ! -n ${removing_all} ]]; then local pc; local tf=${T}/prune-lt-files.pc; local pkgconf=$(tc-getPKG_CONFIG); while IFS= read -r -d '' pc; do local arg libs; if ${pkgconf} --exists "${pc}" &> /dev/null; then sed -e '/^Requires:/d' "${pc}" > "${tf}"; libs=$(${pkgconf} --libs "${tf}"); else libs=$(sed -ne 's/^Libs://p' "${pc}"); fi; for arg in ${libs}; do if [[ ${arg} == -l* ]]; then if [[ ${arg} == '*$*' ]]; then eerror "${FUNCNAME}: variable substitution likely failed in ${pc}"; eerror "(arg: ${arg})"; eerror "Most likely, you need to add virtual/pkgconfig to DEPEND."; die "${FUNCNAME}: unsubstituted variable found in .pc"; fi; pc_libs+=(lib${arg#-l}.la); fi; done; done < <(find "${D}" -type f -name '*.pc' -print0); rm -f "${tf}"; fi; pkgconfig_scanned=1; fi; has "${f##*/}" "${pc_libs[@]}" && reason='covered by .pc'; fi; fi; fi; fi; if [[ -n ${reason} ]]; then einfo "Removing unnecessary ${f#${D%/}} (${reason})"; queue+=("${f}"); fi; done < <(find "${D}" -xtype f -name '*.la' -print0); if [[ -n ${queue[@]} ]]; then rm -f "${queue[@]}"; fi } replace-hcflags () { [[ $# != 2 ]] && die "Usage: replace-hcflags <old flag> <new flag>"; local f new=(); for f in ${HCFLAGS}; do if [[ ${f} == ${1} ]]; then einfo "HCFLAGS: replacing '${f}' to '${2}'"; f=${2}; fi; new+=("${f}"); done; export HCFLAGS="${new[*]}"; return 0 } src_compile () { haskell-cabal_src_compile "$@" } src_configure () { haskell-cabal_src_configure $(cabal_flag dev dev) } src_install () { haskell-cabal_src_install "$@" } src_prepare () { default; CABAL_FILE=elm.cabal cabal_chdeps 'language-glsl >= 0.0.2 && < 0.3' 'language-glsl >= 0.0.2' 'containers >= 0.5.8.2 && < 0.6' 'containers >= 0.5.8.2' } src_test () { haskell-cabal_src_test "$@" } src_unpack () { default } strip-linguas () { local ls newls nols; if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then local op=$1; shift; ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); shift; local d f; for d in "$@"; do if [[ ${op} == "-u" ]]; then newls=${ls}; else newls=""; fi; for f in $(find "$d" -name '*.po' -exec basename {} .po ';'); do if [[ ${op} == "-i" ]]; then has ${f} ${ls} && newls="${newls} ${f}"; else has ${f} ${ls} || newls="${newls} ${f}"; fi; done; ls=${newls}; done; else ls="$@"; fi; nols=""; newls=""; for f in ${LINGUAS}; do if has ${f} ${ls}; then newls="${newls} ${f}"; else nols="${nols} ${f}"; fi; done; [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols}; export LINGUAS=${newls:1} } tc-arch () { tc-ninja_magic_to_arch portage "$@" } tc-arch-kernel () { tc-ninja_magic_to_arch kern "$@" } tc-check-openmp () { if ! tc-has-openmp; then eerror "Your current compiler does not support OpenMP!"; if tc-is-gcc; then eerror "Enable OpenMP support by building sys-devel/gcc with USE=\"openmp\"."; else if tc-is-clang; then eerror "OpenMP support in sys-devel/clang is provided by sys-libs/libomp."; fi; fi; die "Active compiler does not have required support for OpenMP"; fi } tc-cpp-is-true () { local CONDITION=${1}; shift; $(tc-getTARGET_CPP) "${@}" -P - <<-EOF > /dev/null 2>&1 #if ${CONDITION} true #else #error false #endif EOF } tc-detect-is-softfloat () { [[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1; case ${CTARGET:-${CHOST}} in *-newlib | *-elf | *-eabi) return 1 ;; arm*) if tc-cpp-is-true "defined(__ARM_PCS_VFP)"; then echo "no"; else if tc-cpp-is-true "defined(__SOFTFP__)"; then echo "yes"; else echo "softfp"; fi; fi; return 0 ;; *) return 1 ;; esac } tc-enables-pie () { tc-cpp-is-true "defined(__PIE__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp () { tc-cpp-is-true "defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp-all () { tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp-strong () { tc-cpp-is-true "defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-endian () { local host=$1; [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; host=${host%%-*}; case ${host} in aarch64*be) echo big ;; aarch64) echo little ;; alpha*) echo little ;; arm*b*) echo big ;; arm*) echo little ;; cris*) echo little ;; hppa*) echo big ;; i?86*) echo little ;; ia64*) echo little ;; m68*) echo big ;; mips*l*) echo little ;; mips*) echo big ;; powerpc*le) echo little ;; powerpc*) echo big ;; riscv*) echo little ;; s390*) echo big ;; sh*b*) echo big ;; sh*) echo little ;; sparc*) echo big ;; x86_64*) echo little ;; *) echo wtf ;; esac } tc-env_build () { tc-export_build_env; CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@" } tc-export () { local var; for var in "$@"; do [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'"; "tc-get${var}" > /dev/null; done } tc-export_build_env () { tc-export "$@"; if tc-is-cross-compiler; then : ${BUILD_CFLAGS:=-O1 -pipe}; : ${BUILD_CXXFLAGS:=-O1 -pipe}; : ${BUILD_CPPFLAGS:= }; : ${BUILD_LDFLAGS:= }; else : ${BUILD_CFLAGS:=${CFLAGS}}; : ${BUILD_CXXFLAGS:=${CXXFLAGS}}; : ${BUILD_CPPFLAGS:=${CPPFLAGS}}; : ${BUILD_LDFLAGS:=${LDFLAGS}}; fi; export BUILD_{C,CXX,CPP,LD}FLAGS; local v; for v in BUILD_{C,CXX,CPP,LD}FLAGS; do export ${v#BUILD_}_FOR_BUILD="${!v}"; done } tc-get-compiler-type () { local code=' #if defined(__PATHSCALE__) HAVE_PATHCC #elif defined(__clang__) HAVE_CLANG #elif defined(__GNUC__) HAVE_GCC #endif '; local res=$($(tc-getCPP "$@") -E -P - <<<"${code}"); case ${res} in *HAVE_PATHCC*) echo pathcc ;; *HAVE_CLANG*) echo clang ;; *HAVE_GCC*) echo gcc ;; *) echo unknown ;; esac } tc-getAR () { tc-getPROG AR ar "$@" } tc-getAS () { tc-getPROG AS as "$@" } tc-getBUILD_AR () { tc-getBUILD_PROG AR ar "$@" } tc-getBUILD_AS () { tc-getBUILD_PROG AS as "$@" } tc-getBUILD_CC () { tc-getBUILD_PROG CC gcc "$@" } tc-getBUILD_CPP () { tc-getBUILD_PROG CPP "$(tc-getBUILD_CC) -E" "$@" } tc-getBUILD_CXX () { tc-getBUILD_PROG CXX g++ "$@" } tc-getBUILD_LD () { tc-getBUILD_PROG LD ld "$@" } tc-getBUILD_NM () { tc-getBUILD_PROG NM nm "$@" } tc-getBUILD_OBJCOPY () { tc-getBUILD_PROG OBJCOPY objcopy "$@" } tc-getBUILD_PKG_CONFIG () { tc-getBUILD_PROG PKG_CONFIG pkg-config "$@" } tc-getBUILD_PROG () { local vars="BUILD_$1 $1_FOR_BUILD HOST$1"; tc-is-cross-compiler || vars+=" $1"; _tc-getPROG CBUILD "${vars}" "${@:2}" } tc-getBUILD_RANLIB () { tc-getBUILD_PROG RANLIB ranlib "$@" } tc-getBUILD_STRIP () { tc-getBUILD_PROG STRIP strip "$@" } tc-getCC () { tc-getPROG CC gcc "$@" } tc-getCPP () { tc-getPROG CPP "${CC:-gcc} -E" "$@" } tc-getCXX () { tc-getPROG CXX g++ "$@" } tc-getDLLWRAP () { tc-getPROG DLLWRAP dllwrap "$@" } tc-getF77 () { tc-getPROG F77 gfortran "$@" } tc-getFC () { tc-getPROG FC gfortran "$@" } tc-getGCJ () { tc-getPROG GCJ gcj "$@" } tc-getGO () { tc-getPROG GO gccgo "$@" } tc-getLD () { tc-getPROG LD ld "$@" } tc-getNM () { tc-getPROG NM nm "$@" } tc-getOBJCOPY () { tc-getPROG OBJCOPY objcopy "$@" } tc-getOBJDUMP () { tc-getPROG OBJDUMP objdump "$@" } tc-getPKG_CONFIG () { tc-getPROG PKG_CONFIG pkg-config "$@" } tc-getPROG () { _tc-getPROG CHOST "$@" } tc-getRANLIB () { tc-getPROG RANLIB ranlib "$@" } tc-getRC () { tc-getPROG RC windres "$@" } tc-getSTRIP () { tc-getPROG STRIP strip "$@" } tc-getTARGET_CPP () { if [[ -n ${CTARGET} ]]; then _tc-getPROG CTARGET TARGET_CPP "gcc -E" "$@"; else tc-getCPP "$@"; fi } tc-has-openmp () { local base="${T}/test-tc-openmp"; cat <<-EOF > "${base}.c" #include <omp.h> int main() { int nthreads, tid, ret = 0; #pragma omp parallel private(nthreads, tid) { tid = omp_get_thread_num(); nthreads = omp_get_num_threads(); ret += tid + nthreads; } return ret; } EOF $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &> /dev/null; local ret=$?; rm -f "${base}"*; return ${ret} } tc-has-tls () { local base="${T}/test-tc-tls"; cat <<-EOF > "${base}.c" int foo(int *i) { static __thread int j = 0; return *i ? j : *i; } EOF local flags; case $1 in -s) flags="-S" ;; -c) flags="-c" ;; -l) ;; -*) die "Usage: tc-has-tls [-c|-l] [toolchain prefix]" ;; esac; : ${flags:=-fPIC -shared -Wl,-z,defs}; [[ $1 == -* ]] && shift; $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &> /dev/null; local ret=$?; rm -f "${base}"*; return ${ret} } tc-is-clang () { [[ $(tc-get-compiler-type) == clang ]] } tc-is-cross-compiler () { [[ ${CBUILD:-${CHOST}} != ${CHOST} ]] } tc-is-gcc () { [[ $(tc-get-compiler-type) == gcc ]] } tc-is-softfloat () { tc-detect-is-softfloat || tc-tuple-is-softfloat } tc-is-static-only () { local host=${CTARGET:-${CHOST}}; [[ ${host} == *-mint* ]] } tc-ld-disable-gold () { if ! tc-ld-is-gold "$@"; then return; fi; ewarn "Forcing usage of the BFD linker instead of GOLD"; local ld=$(tc-getLD "$@"); local bfd_ld="${ld%% *}.bfd"; local path_ld=$(which "${bfd_ld}" 2>/dev/null); [[ -e ${path_ld} ]] && export LD=${bfd_ld}; local fallback="true"; if tc-is-gcc; then local major=$(gcc-major-version "$@"); local minor=$(gcc-minor-version "$@"); if [[ ${major} -gt 4 ]] || [[ ${major} -eq 4 && ${minor} -ge 8 ]]; then export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; fallback="false"; fi; else if tc-is-clang; then local major=$(clang-major-version "$@"); local minor=$(clang-minor-version "$@"); if [[ ${major} -gt 3 ]] || [[ ${major} -eq 3 && ${minor} -ge 5 ]]; then export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; fallback="false"; fi; fi; fi; if [[ ${fallback} == "true" ]]; then if [[ -e ${path_ld} ]]; then local d="${T}/bfd-linker"; mkdir -p "${d}"; ln -sf "${path_ld}" "${d}"/ld; export LDFLAGS="${LDFLAGS} -B${d}"; else die "unable to locate a BFD linker to bypass gold"; fi; fi } tc-ld-is-gold () { local out; out=$($(tc-getLD "$@") --version 2>&1); if [[ ${out} == *"GNU gold"* ]]; then return 0; fi; local base="${T}/test-tc-gold"; cat <<-EOF > "${base}.c" int main() { return 0; } EOF out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1); rm -f "${base}"*; if [[ ${out} == *"GNU gold"* ]]; then return 0; fi; return 1 } tc-ld-is-lld () { local out; out=$($(tc-getLD "$@") --version 2>&1); if [[ ${out} == *"LLD"* ]]; then return 0; fi; local base="${T}/test-tc-lld"; cat <<-EOF > "${base}.c" int main() { return 0; } EOF out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1); rm -f "${base}"*; if [[ ${out} == *"LLD"* ]]; then return 0; fi; return 1 } tc-ninja_magic_to_arch () { function ninj () { [[ ${type} == "kern" ]] && echo $1 || echo $2 }; local type=$1; local host=$2; [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; case ${host} in aarch64*) echo arm64 ;; alpha*) echo alpha ;; arm*) echo arm ;; avr*) ninj avr32 avr ;; bfin*) ninj blackfin bfin ;; c6x*) echo c6x ;; cris*) echo cris ;; frv*) echo frv ;; hexagon*) echo hexagon ;; hppa*) ninj parisc hppa ;; i?86*) if [[ ${type} == "kern" && ${host} == *freebsd* ]]; then echo i386; else echo x86; fi ;; ia64*) echo ia64 ;; m68*) echo m68k ;; metag*) echo metag ;; microblaze*) echo microblaze ;; mips*) echo mips ;; nios2*) echo nios2 ;; nios*) echo nios ;; or1k | or32*) echo openrisc ;; powerpc*) if [[ ${type} == "kern" ]]; then echo powerpc; else if [[ ${host} == powerpc64* ]]; then echo ppc64; else echo ppc; fi; fi ;; riscv*) echo riscv ;; s390*) echo s390 ;; score*) echo score ;; sh64*) ninj sh64 sh ;; sh*) echo sh ;; sparc64*) ninj sparc64 sparc ;; sparc*) [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc ;; tile*) echo tile ;; vax*) echo vax ;; x86_64*freebsd*) echo amd64 ;; x86_64*) if [[ ${type} == "kern" ]]; then echo x86; else echo amd64; fi ;; xtensa*) echo xtensa ;; *) echo unknown ;; esac } tc-stack-grows-down () { case ${ARCH} in hppa | metag) return 1 ;; esac; return 0 } tc-tuple-is-softfloat () { local CTARGET=${CTARGET:-${CHOST}}; case ${CTARGET//_/-} in bfin* | h8300*) echo "only" ;; *-softfloat-*) echo "yes" ;; *-softfp-*) echo "softfp" ;; arm*-hardfloat-* | arm*eabihf) echo "no" ;; *-newlib | *-elf | *-eabi) echo "no" ;; arm*) echo "yes" ;; *) echo "no" ;; esac } use_if_iuse () { in_iuse $1 || return 1; use $1 } ver_cut () { local range=${1}; local v=${2:-${PV}}; local start end; local -a comp; _ver_split "${v}"; local max=$((${#comp[@]}/2)); _ver_parse_range "${range}" "${max}"; if [[ ${start} -gt 0 ]]; then start=$(( start*2 - 1 )); fi; printf "%s" "${comp[@]:start:end*2-start}" ' ' } ver_rs () { local v; (( ${#} & 1 )) && v=${@: -1} || v=${PV}; local start end i; local -a comp; _ver_split "${v}"; local max=$((${#comp[@]}/2 - 1)); while [[ ${#} -ge 2 ]]; do _ver_parse_range "${1}" "${max}"; for ((i = start*2; i <= end*2; i+=2 )) do [[ ${i} -eq 0 && -z ${comp[i]} ]] && continue; comp[i]=${2}; done; shift 2; done; local IFS=; echo "${comp[*]}" } ver_test () { local va op vb; if [[ $# -eq 3 ]]; then va=${1}; shift; else va=${PVR}; fi; [[ $# -eq 2 ]] || die "${FUNCNAME}: bad number of arguments"; op=${1}; vb=${2}; case ${op} in -eq | -ne | -lt | -le | -gt | -ge) ;; *) die "${FUNCNAME}: invalid operator: ${op}" ;; esac; _ver_compare "${va}" "${vb}"; test $? "${op}" 2 }
It's caused by FEATURES=network-sandbox. Ebuild is not hermetic and needs a fix to bundle dependencies. Or as a workaround you can disable network-sandbox.
FEATURES=network-sandbox
network-sandbox
It's a dupe of Issue #618.
emerge --info '=dev-lang/elm-compiler-0.19.0-r1::haskell':
emerge -pqv '=dev-lang/elm-compiler-0.19.0-r1::haskell':
build.log:
/var/tmp/portage/dev-lang/elm-compiler-0.19.0-r1/temp/environment: