opt/python@2/bin/python: No such file or directory

Please fill out the issue checklist below, and provide all of the requested information.
Please always follow these steps:

[ ] ran a brew command and reproduced the problem with multiple formulae? If it's a problem with a single, official formula please file this issue at Linuxbrew/homebrew-core: https://github.com/Linuxbrew/homebrew-core/issues/new. If it's a tap problem please file this issue at the tap.
[ x] ran brew update and can still reproduce the problem?
[x ] ran brew doctor, fixed all issues and can still reproduce the problem?
[x ] ran brew config and brew doctor and included their output with your issue?

To help us debug your issue please explain:

What you were trying to do (and why)
brew install wxpython, wxpython need pango
What happened (include command output)
can not install
What you expected to happen
install success
Step-by-step reproduction instructions (by running brew commands)
brew update
brew doctor
brew --config
brew install pango

brew doctor
brew doctor                                                                                18:11:14
Your system is ready to brew

brew --config
HOMEBREW_VERSION: 1.5.8
ORIGIN: https://github.com/Linuxbrew/brew
HEAD: 0da98e625677eeff4b772be3508d9528e56ca686
Last commit: 11 days ago
Core tap ORIGIN: https://github.com/Linuxbrew/homebrew-core
Core tap HEAD: 67d1e44a15a2b7564f307757dc716507108e0527
Core tap last commit: 2 hours ago
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_REPOSITORY: /home/linuxbrew/.linuxbrew/Homebrew
HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar
HOMEBREW_CACHE: /home/dwying/.cache/Homebrew
HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_REPOSITORY: /home/linuxbrew/.linuxbrew/Homebrew
HOMEBREW_RUBY_WARNINGS: -W0
HOMEBREW_VISUAL: vim
CPU: quad-core 64-bit 0x69e
Homebrew Ruby: 2.3.3 => /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/bin/ruby
Clang: 5.0 build
Git: 2.7.4 => /usr/bin/git
Curl: 7.47.0 => /usr/bin/curl
Perl: /home/linuxbrew/.linuxbrew/bin/perl => /home/linuxbrew/.linuxbrew/Cellar/perl/5.26.1/bin/perl
Python: /home/linuxbrew/.linuxbrew/opt/python/libexec/bin/python => /home/linuxbrew/.linuxbrew/Cellar/python/2.7.14_5/bin/python2.7
Ruby: /home/linuxbrew/.linuxbrew/bin/ruby => /home/linuxbrew/.linuxbrew/Cellar/ruby/2.5.0_2/bin/ruby
Java: N/A
Kernel: Linux 4.13.0-37-generic x86_64 GNU/Linux
OS: Ubuntu 16.04.4 LTS (xenial)
Host glibc: 2.23
/usr/bin/gcc: 5.4.0
glibc: N/A
gcc: 5.5.0
xorg: 20170115_1

brew install -v pango 2>&1
Updating Homebrew...
==> Downloading https://download.gnome.org/sources/pango/1.42/pango-1.42.0.tar.xz
Already downloaded: /home/dwying/.cache/Homebrew/pango-1.42.0.tar.xz
==> Verifying pango-1.42.0.tar.xz checksum
tar xJf /home/dwying/.cache/Homebrew/pango-1.42.0.tar.xz
==> ./configure --disable-dependency-tracking --disable-silent-rules --prefix=/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0 --with-html-dir=/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/share/doc --enable-introspection=yes --enable-man --enable-static --without-xft
configure: WARNING: unrecognized options: --enable-man
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for native Win32... no
checking for gcc... gcc-5
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc-5 accepts -g... yes
checking for gcc-5 option to accept ISO C89... none needed
checking whether gcc-5 understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc-5... none
checking whether we are using the GNU C++ compiler... yes
checking whether g++-5 accepts -g... yes
checking dependency style of g++-5... none
checking for sysconf... yes
checking for getpagesize... yes
checking how to run the C preprocessor... gcc-5 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc-5... /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld
checking if the linker (/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /home/linuxbrew/.linuxbrew/opt/binutils/bin/nm -B
checking the name lister (/home/linuxbrew/.linuxbrew/opt/binutils/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /home/linuxbrew/.linuxbrew/opt/binutils/bin/nm -B output from gcc-5 object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc-5 supports -fno-rtti -fno-exceptions... no
checking for gcc-5 option to produce PIC... -fPIC -DPIC
checking if gcc-5 PIC flag -fPIC -DPIC works... yes
checking if gcc-5 static flag -static works... yes
checking if gcc-5 supports -c -o file.o... yes
checking if gcc-5 supports -c -o file.o... (cached) yes
checking whether the gcc-5 linker (/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++-5 -E
checking for ld used by g++-5... /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld -m elf_x86_64
checking if the linker (/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++-5 linker (/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld -m elf_x86_64) supports shared libraries... yes
checking for g++-5 option to produce PIC... -fPIC -DPIC
checking if g++-5 PIC flag -fPIC -DPIC works... yes
checking if g++-5 static flag -static works... yes
checking if g++-5 supports -c -o file.o... yes
checking if g++-5 supports -c -o file.o... (cached) yes
checking whether the g++-5 linker (/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
configure: creating ./config.lt
config.lt: creating libtool
checking for some Win32 platform... no
checking for pkg-config... /home/linuxbrew/.linuxbrew/opt/pkg-config/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for HARFBUZZ... yes
checking for FONTCONFIG... yes
checking for FcWeightFromOpenTypeDouble... no
checking for FREETYPE... yes
checking for XFT... no
checking for CoreText availability... no
checking for CAIRO... no
checking for GLIB... yes
checking for FRIBIDI... yes
checking for LIBTHAI... no
checking for gobject-introspection... yes
checking for flockfile... yes
checking for strtok_r... yes
checking for gtk-doc... no
configure: WARNING:
  You will not be able to create source packages with 'make dist'
  because gtk-doc >= 1.15 is not found.
checking for gtkdoc-check... no
checking for gtkdoc-check... no
checking for gtkdoc-rebase... no
checking for gtkdoc-mkpdf... no
checking whether to build gtk-doc documentation... no
checking for GTKDOC_DEPS... yes
checking for -Bsymbolic-functions linker flag... yes
checking for -fvisibility=hidden compiler flag... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for unistd.h... (cached) yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating pango/Makefile
config.status: creating pango/pango.rc
config.status: creating pango/pangoft2.rc
config.status: creating pango/pangowin32.rc
config.status: creating pango/pangocairo.rc
config.status: creating pango/pangoxft.rc
config.status: creating pango-view/Makefile
config.status: creating examples/Makefile
config.status: creating docs/Makefile
config.status: creating docs/version.xml
config.status: creating tools/Makefile
config.status: creating tests/Makefile
config.status: creating win32/Makefile
config.status: creating win32/vs9/Makefile
config.status: creating win32/vs9/pango-version-paths.vsprops
config.status: creating win32/vs10/Makefile
config.status: creating win32/vs10/pango-version-paths.props
config.status: creating win32/vs11/Makefile
config.status: creating win32/vs12/Makefile
config.status: creating win32/vs14/Makefile
config.status: creating win32/vs15/Makefile
config.status: creating pango.pc
config.status: creating pangowin32.pc
config.status: creating pangoft2.pc
config.status: creating pangoxft.pc
config.status: creating pangocairo.pc
config.status: creating config.h.win32
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing pango/pango-features.h commands
config.status: creating pango/pango-features.h
config.status: pango/pango-features.h is unchanged
configure: WARNING: unrecognized options: --enable-man
configuration:
	backends: FreeType
==> make
make  all-recursive
make[1]: Entering directory '/tmp/pango-20180316-84005-893x70/pango-1.42.0'
Making all in pango
make[2]: Entering directory '/tmp/pango-20180316-84005-893x70/pango-1.42.0/pango'
( cd . && glib-mkenums \
		 --template pango-enum-types.h.template \
		pango.h pango-attributes.h pango-bidi-type.h pango-break.h pango-context.h pango-coverage.h pango-engine.h pango-font.h pango-fontmap.h pango-fontset.h pango-glyph.h pango-glyph-item.h pango-gravity.h pango-item.h pango-language.h pango-layout.h pango-matrix.h pango-modules.h pango-renderer.h pango-script.h pango-tabs.h pango-types.h pango-utils.h pango-version-macros.h ) > pango-enum-types.h.tmp \
		&& mv pango-enum-types.h.tmp pango-enum-types.h \
		&& echo timestamp > s-enum-types-h
( cd . && glib-mkenums \
		 --template pango-enum-types.c.template \
		pango.h pango-attributes.h pango-bidi-type.h pango-break.h pango-context.h pango-coverage.h pango-engine.h pango-font.h pango-fontmap.h pango-fontset.h pango-glyph.h pango-glyph-item.h pango-gravity.h pango-item.h pango-language.h pango-layout.h pango-matrix.h pango-modules.h pango-renderer.h pango-script.h pango-tabs.h pango-types.h pango-utils.h pango-version-macros.h ) > pango-enum-types.c.tmp \
		&& mv pango-enum-types.c.tmp pango-enum-types.c \
		&& echo timestamp > s-enum-types-c
/usr/bin/env: ‘/home/linuxbrew/.linuxbrew/opt/python@2/bin/python’: No such file or directory
/usr/bin/env: ‘/home/linuxbrew/.linuxbrew/opt/python@2/bin/python’: No such file or directory
Makefile:1601: recipe for target 's-enum-types-h' failed
make[2]: *** [s-enum-types-h] Error 127
make[2]: *** Waiting for unfinished jobs....
Makefile:1609: recipe for target 's-enum-types-c' failed
make[2]: *** [s-enum-types-c] Error 127
make[2]: Leaving directory '/tmp/pango-20180316-84005-893x70/pango-1.42.0/pango'
Makefile:566: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/pango-20180316-84005-893x70/pango-1.42.0'
Makefile:465: recipe for target 'all' failed
make: *** [all] Error 2

==> Formula
Path: /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/pango.rb
==> Configuration
HOMEBREW_VERSION: 1.5.8
ORIGIN: https://github.com/Linuxbrew/brew
HEAD: 0da98e625677eeff4b772be3508d9528e56ca686
Last commit: 11 days ago
Core tap ORIGIN: https://github.com/Linuxbrew/homebrew-core
Core tap HEAD: 67d1e44a15a2b7564f307757dc716507108e0527
Core tap last commit: 2 hours ago
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_REPOSITORY: /home/linuxbrew/.linuxbrew/Homebrew
HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar
HOMEBREW_CACHE: /home/dwying/.cache/Homebrew
HOMEBREW_CELLAR: /home/linuxbrew/.linuxbrew/Cellar
HOMEBREW_ENABLE_AUTO_UPDATE_MIGRATION: 1
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_REPOSITORY: /home/linuxbrew/.linuxbrew/Homebrew
HOMEBREW_RUBY_WARNINGS: -W0
HOMEBREW_VISUAL: vim
CPU: quad-core 64-bit 0x69e
Homebrew Ruby: 2.3.3 => /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/bin/ruby
Clang: 5.0 build
Git: 2.7.4 => /usr/bin/git
Curl: 7.47.0 => /usr/bin/curl
Perl: /home/linuxbrew/.linuxbrew/bin/perl => /home/linuxbrew/.linuxbrew/Cellar/perl/5.26.1/bin/perl
Python: /home/linuxbrew/.linuxbrew/opt/python/libexec/bin/python => /home/linuxbrew/.linuxbrew/Cellar/python/2.7.14_5/bin/python2.7
Ruby: /home/linuxbrew/.linuxbrew/bin/ruby => /home/linuxbrew/.linuxbrew/Cellar/ruby/2.5.0_2/bin/ruby
Java: N/A
Kernel: Linux 4.13.0-37-generic x86_64 GNU/Linux
OS: Ubuntu 16.04.4 LTS (xenial)
Host glibc: 2.23
/usr/bin/gcc: 5.4.0
glibc: N/A
gcc: 5.5.0
xorg: 20170115_1
==> ENV
HOMEBREW_CC: gcc-5
HOMEBREW_CXX: g++-5
MAKEFLAGS: -j4
CMAKE_PREFIX_PATH: /home/linuxbrew/.linuxbrew
CMAKE_INCLUDE_PATH: /home/linuxbrew/.linuxbrew/opt/xtrans/include:/home/linuxbrew/.linuxbrew/opt/xproto/include:/home/linuxbrew/.linuxbrew/opt/libxau/include:/home/linuxbrew/.linuxbrew/opt/libxdmcp/include:/home/linuxbrew/.linuxbrew/opt/ncurses/include:/home/linuxbrew/.linuxbrew/opt/zlib/include:/home/linuxbrew/.linuxbrew/opt/gettext/include:/home/linuxbrew/.linuxbrew/opt/gmp/include:/home/linuxbrew/.linuxbrew/opt/readline/include:/home/linuxbrew/.linuxbrew/opt/libxcb/include:/home/linuxbrew/.linuxbrew/opt/libx11/include:/home/linuxbrew/.linuxbrew/opt/libxext/include:/home/linuxbrew/.linuxbrew/opt/libfs/include:/home/linuxbrew/.linuxbrew/opt/libice/include:/home/linuxbrew/.linuxbrew/opt/libsm/include:/home/linuxbrew/.linuxbrew/opt/libxscrnsaver/include:/home/linuxbrew/.linuxbrew/opt/libxt/include:/home/linuxbrew/.linuxbrew/opt/libxmu/include:/home/linuxbrew/.linuxbrew/opt/libxpm/include:/home/linuxbrew/.linuxbrew/opt/libxaw/include:/home/linuxbrew/.linuxbrew/opt/libxaw3d/include:/home/linuxbrew/.linuxbrew/opt/libxfixes/include:/home/linuxbrew/.linuxbrew/opt/libxcomposite/include:/home/linuxbrew/.linuxbrew/opt/libxrender/include:/home/linuxbrew/.linuxbrew/opt/libxcursor/include:/home/linuxbrew/.linuxbrew/opt/libxdamage/include:/home/linuxbrew/.linuxbrew/opt/libfontenc/include:/home/linuxbrew/.linuxbrew/opt/libpng/include:/home/linuxbrew/.linuxbrew/opt/bzip2/include:/home/linuxbrew/.linuxbrew/opt/freetype/include:/home/linuxbrew/.linuxbrew/opt/libxfont/include:/home/linuxbrew/.linuxbrew/opt/libbsd/include:/home/linuxbrew/.linuxbrew/opt/expat/include:/home/linuxbrew/.linuxbrew/opt/libtool/include:/home/linuxbrew/.linuxbrew/opt/fontconfig/include:/home/linuxbrew/.linuxbrew/opt/libxft/include:/home/linuxbrew/.linuxbrew/opt/libxi/include:/home/linuxbrew/.linuxbrew/opt/libxinerama/include:/home/linuxbrew/.linuxbrew/opt/libxrandr/include:/home/linuxbrew/.linuxbrew/opt/libxres/include:/home/linuxbrew/.linuxbrew/opt/libxtst/include:/home/linuxbrew/.linuxbrew/opt/libxv/include:/home/linuxbrew/.linuxbrew/opt/libxvmc/include:/home/linuxbrew/.linuxbrew/opt/libxxf86dga/include:/home/linuxbrew/.linuxbrew/opt/libxxf86vm/include:/home/linuxbrew/.linuxbrew/opt/libdmx/include:/home/linuxbrew/.linuxbrew/opt/libpciaccess/include:/home/linuxbrew/.linuxbrew/opt/libxkbfile/include:/home/linuxbrew/.linuxbrew/opt/libxshmfence/include
CMAKE_LIBRARY_PATH: /home/linuxbrew/.linuxbrew/opt/xproto/lib:/home/linuxbrew/.linuxbrew/opt/libxau/lib:/home/linuxbrew/.linuxbrew/opt/libxdmcp/lib:/home/linuxbrew/.linuxbrew/opt/ncurses/lib:/home/linuxbrew/.linuxbrew/opt/zlib/lib:/home/linuxbrew/.linuxbrew/opt/gettext/lib:/home/linuxbrew/.linuxbrew/opt/gmp/lib:/home/linuxbrew/.linuxbrew/opt/readline/lib:/home/linuxbrew/.linuxbrew/opt/libxcb/lib:/home/linuxbrew/.linuxbrew/opt/libx11/lib:/home/linuxbrew/.linuxbrew/opt/libxext/lib:/home/linuxbrew/.linuxbrew/opt/libfs/lib:/home/linuxbrew/.linuxbrew/opt/libice/lib:/home/linuxbrew/.linuxbrew/opt/libsm/lib:/home/linuxbrew/.linuxbrew/opt/libxscrnsaver/lib:/home/linuxbrew/.linuxbrew/opt/libxt/lib:/home/linuxbrew/.linuxbrew/opt/libxmu/lib:/home/linuxbrew/.linuxbrew/opt/libxpm/lib:/home/linuxbrew/.linuxbrew/opt/libxaw/lib:/home/linuxbrew/.linuxbrew/opt/libxaw3d/lib:/home/linuxbrew/.linuxbrew/opt/libxfixes/lib:/home/linuxbrew/.linuxbrew/opt/libxcomposite/lib:/home/linuxbrew/.linuxbrew/opt/libxrender/lib:/home/linuxbrew/.linuxbrew/opt/libxcursor/lib:/home/linuxbrew/.linuxbrew/opt/libxdamage/lib:/home/linuxbrew/.linuxbrew/opt/libfontenc/lib:/home/linuxbrew/.linuxbrew/opt/libpng/lib:/home/linuxbrew/.linuxbrew/opt/bzip2/lib:/home/linuxbrew/.linuxbrew/opt/freetype/lib:/home/linuxbrew/.linuxbrew/opt/libxfont/lib:/home/linuxbrew/.linuxbrew/opt/libbsd/lib:/home/linuxbrew/.linuxbrew/opt/expat/lib:/home/linuxbrew/.linuxbrew/opt/libtool/lib:/home/linuxbrew/.linuxbrew/opt/fontconfig/lib:/home/linuxbrew/.linuxbrew/opt/libxft/lib:/home/linuxbrew/.linuxbrew/opt/libxi/lib:/home/linuxbrew/.linuxbrew/opt/libxinerama/lib:/home/linuxbrew/.linuxbrew/opt/libxrandr/lib:/home/linuxbrew/.linuxbrew/opt/libxres/lib:/home/linuxbrew/.linuxbrew/opt/libxtst/lib:/home/linuxbrew/.linuxbrew/opt/libxv/lib:/home/linuxbrew/.linuxbrew/opt/libxvmc/lib:/home/linuxbrew/.linuxbrew/opt/libxxf86dga/lib:/home/linuxbrew/.linuxbrew/opt/libxxf86vm/lib:/home/linuxbrew/.linuxbrew/opt/libdmx/lib:/home/linuxbrew/.linuxbrew/opt/libpciaccess/lib:/home/linuxbrew/.linuxbrew/opt/libxkbfile/lib:/home/linuxbrew/.linuxbrew/opt/libxshmfence/lib
PKG_CONFIG_PATH: /home/linuxbrew/.linuxbrew/opt/zlib/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libpng/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/freetype/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libbsd/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/expat/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/fontconfig/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/pixman/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/ncurses/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libffi/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/pcre/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/util-linux/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/openssl/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/sqlite/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/python@2/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/glib/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/xproto/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxau/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxdmcp/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcb/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libx11/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxext/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libfs/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libice/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libsm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxscrnsaver/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxt/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxmu/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxpm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxaw/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxaw3d/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxfixes/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcomposite/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxrender/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcursor/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxdamage/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libfontenc/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxfont/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxft/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxi/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxinerama/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxrandr/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxres/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxtst/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxv/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxvmc/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxxf86dga/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxxf86vm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libdmx/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libpciaccess/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxkbfile/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxshmfence/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/cairo/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/fribidi/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/gobject-introspection/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/graphite2/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/icu4c/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/harfbuzz/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/xtrans/share/pkgconfig
PKG_CONFIG_LIBDIR: /home/linuxbrew/.linuxbrew/opt/xproto/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxau/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxdmcp/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/ncurses/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/zlib/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcb/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libx11/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxext/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libfs/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libice/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libsm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxscrnsaver/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxt/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxmu/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxpm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxaw/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxaw3d/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxfixes/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcomposite/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxrender/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxcursor/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxdamage/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libfontenc/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libpng/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/freetype/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxfont/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libbsd/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/expat/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/fontconfig/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxft/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxi/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxinerama/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxrandr/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxres/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxtst/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxv/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxvmc/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxxf86dga/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxxf86vm/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libdmx/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libpciaccess/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxkbfile/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libxshmfence/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/xtrans/share/pkgconfigError: pango 1.42.0 did not build

ACLOCAL_PATH: /home/linuxbrew/.linuxbrew/share/aclocal:/home/linuxbrew/.linuxbrew/opt/pkg-config/share/aclocal:/home/linuxbrew/.linuxbrew/opt/xtrans/share/aclocal:/home/linuxbrew/.linuxbrew/opt/gettext/share/aclocal:/home/linuxbrew/.linuxbrew/opt/freetype/share/aclocal:/home/linuxbrew/.linuxbrew/opt/libtool/share/aclocal
PATH: /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super:/home/linuxbrew/.linuxbrew/opt/pkg-config/bin:/home/linuxbrew/.linuxbrew/opt/libpng/bin:/home/linuxbrew/.linuxbrew/opt/bzip2/bin:/home/linuxbrew/.linuxbrew/opt/freetype/bin:/home/linuxbrew/.linuxbrew/opt/expat/bin:/home/linuxbrew/.linuxbrew/opt/fontconfig/bin:/home/linuxbrew/.linuxbrew/opt/ncurses/bin:/home/linuxbrew/.linuxbrew/opt/gettext/bin:/home/linuxbrew/.linuxbrew/opt/pcre/bin:/home/linuxbrew/.linuxbrew/opt/util-linux/bin:/home/linuxbrew/.linuxbrew/opt/gdbm/bin:/home/linuxbrew/.linuxbrew/opt/openssl/bin:/home/linuxbrew/.linuxbrew/opt/sqlite/bin:/home/linuxbrew/.linuxbrew/opt/python@2/bin:/home/linuxbrew/.linuxbrew/opt/glib/bin:/home/linuxbrew/.linuxbrew/opt/libxpm/bin:/home/linuxbrew/.linuxbrew/opt/xdpyinfo/bin:/home/linuxbrew/.linuxbrew/opt/cairo/bin:/home/linuxbrew/.linuxbrew/opt/fribidi/bin:/home/linuxbrew/.linuxbrew/opt/m4/bin:/home/linuxbrew/.linuxbrew/opt/bison/bin:/home/linuxbrew/.linuxbrew/opt/flex/bin:/home/linuxbrew/.linuxbrew/opt/gobject-introspection/bin:/home/linuxbrew/.linuxbrew/opt/graphite2/bin:/home/linuxbrew/.linuxbrew/opt/icu4c/bin:/home/linuxbrew/.linuxbrew/opt/harfbuzz/bin:/home/linuxbrew/.linuxbrew/opt/binutils/bin:/home/linuxbrew/.linuxbrew/opt/python/libexec/bin:/home/linuxbrew/.linuxbrew/opt/gpatch/bin:/home/linuxbrew/.linuxbrew/opt/autoconf/bin:/home/linuxbrew/.linuxbrew/opt/gperf/bin:/home/linuxbrew/.linuxbrew/opt/libtool/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/linuxbrew/.linuxbrew/opt/gcc/bin

Logs:
     /home/dwying/.cache/Homebrew/Logs/pango/01.configure.cc
     /home/dwying/.cache/Homebrew/Logs/pango/config.log
     /home/dwying/.cache/Homebrew/Logs/pango/01.configure
     /home/dwying/.cache/Homebrew/Logs/pango/00.options.out
     /home/dwying/.cache/Homebrew/Logs/pango/02.make
READ THIS: https://github.com/Linuxbrew/brew/wiki/troubleshooting
Please do not report this issue to Homebrew/brew or Homebrew/core, which support macOS only.

These open issues may also help:
pango: Build a bottle for Linuxbrew https://github.com/Linuxbrew/homebrew-core/pull/6629

/usr/bin/env: ‘/home/linuxbrew/.linuxbrew/opt/python@2/bin/python’: No such file or directory

Try…
brew update
brew install python@2
brew upgrade python@2

@sjackman I installed python@2,  Then a new error came out.
Package 'pthread-stubs', required by 'xcb', not found
I have installed linuxbrew/xorg/libxcb ✔
Is it still need for other dependencies?
-I/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/include/fribidi -fvisibility=hidden -g -O2 -Wall -c pango-ot-info.c -o pango-ot-info.o >/dev/null 2>&1
pango-ot-ruleset.c: In function 'pango_ot_ruleset_get_for_description':
pango-ot-ruleset.c:86:5: warning: 'pango_ot_ruleset_get_type' is deprecated [-Wdeprecated-declarations]
     g_once_init_leave (&ruleset, g_object_new (PANGO_TYPE_OT_RULESET, NULL));
     ^
In file included from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gobject.h:24:0,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gbinding.h:29,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/glib-object.h:23,
                 from pango-ot-private.h:25,
                 from pango-ot-ruleset.c:24:
pango-ot-ruleset.c:40:32: note: declared here
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
                                ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1964:1: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
 type_name##_get_type (void) \
 ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1737:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
 #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1595:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
 #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                           ^
pango-ot-ruleset.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE'
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
 ^
pango-ot-ruleset.c:86:5: warning: 'pango_ot_ruleset_get_type' is deprecated [-Wdeprecated-declarations]
     g_once_init_leave (&ruleset, g_object_new (PANGO_TYPE_OT_RULESET, NULL));
     ^
In file included from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gobject.h:24:0,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gbinding.h:29,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/glib-object.h:23,
                 from pango-ot-private.h:25,
                 from pango-ot-ruleset.c:24:
pango-ot-ruleset.c:40:32: note: declared here
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
                                ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1964:1: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
 type_name##_get_type (void) \
 ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1737:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
 #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1595:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
 #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                           ^
pango-ot-ruleset.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE'
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
 ^
pango-ot-ruleset.c: In function 'pango_ot_ruleset_new':
pango-ot-ruleset.c:103:3: warning: 'pango_ot_ruleset_get_type' is deprecated [-Wdeprecated-declarations]
   return g_object_new (PANGO_TYPE_OT_RULESET, NULL);
   ^
In file included from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gobject.h:24:0,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gbinding.h:29,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/glib-object.h:23,
                 from pango-ot-private.h:25,
                 from pango-ot-ruleset.c:24:
pango-ot-ruleset.c:40:32: note: declared here
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
                                ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1964:1: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
 type_name##_get_type (void) \
 ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1737:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
 #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1595:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
 #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                           ^
pango-ot-ruleset.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE'
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
 ^
pango-ot-ruleset.c: In function 'pango_ot_ruleset_new_for':
pango-ot-ruleset.c:161:3: warning: 'pango_ot_ruleset_get_type' is deprecated [-Wdeprecated-declarations]
   return g_object_new (PANGO_TYPE_OT_RULESET, NULL);
   ^
In file included from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gobject.h:24:0,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gbinding.h:29,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/glib-object.h:23,
                 from pango-ot-private.h:25,
                 from pango-ot-ruleset.c:24:
pango-ot-ruleset.c:40:32: note: declared here
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
                                ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1964:1: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
 type_name##_get_type (void) \
 ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1737:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
 #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1595:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
 #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                           ^
pango-ot-ruleset.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE'
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
 ^
pango-ot-ruleset.c: In function 'pango_ot_ruleset_new_from_description':
pango-ot-ruleset.c:188:3: warning: 'pango_ot_ruleset_get_type' is deprecated [-Wdeprecated-declarations]
   return g_object_new (PANGO_TYPE_OT_RULESET, NULL);
   ^
In file included from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gobject.h:24:0,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gbinding.h:29,
                 from /home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/glib-object.h:23,
                 from pango-ot-private.h:25,
                 from pango-ot-ruleset.c:24:
pango-ot-ruleset.c:40:32: note: declared here
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
                                ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1964:1: note: in definition of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
 type_name##_get_type (void) \
 ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1737:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
 #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
                                                            ^
/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0/gobject/gtype.h:1595:43: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
 #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
                                           ^
pango-ot-ruleset.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE'
 G_DEFINE_TYPE (PangoOTRuleset, pango_ot_ruleset, G_TYPE_OBJECT);
 ^
libtool: compile:  gcc-5 -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_COMPILATION -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE -DSYSCONFDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/etc\" -DLIBDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib\" -I.. -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/graphite2/1.3.10/include -I/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/include/harfbuzz -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.5/include -I/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/include -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.4/include -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/include/fribidi -fvisibility=hidden -g -O2 -Wall -c pango-ot-ruleset.c -o pango-ot-ruleset.o >/dev/null 2>&1
libtool: link: /home/linuxbrew/.linuxbrew/opt/binutils/bin/nm -B  .libs/break.o .libs/ellipsize.o .libs/fonts.o .libs/glyphstring.o .libs/modules.o .libs/pango-attributes.o .libs/pango-bidi-type.o .libs/pango-color.o .libs/pango-context.o .libs/pango-coverage.o .libs/pango-emoji.o .libs/pango-engine.o .libs/pango-fontmap.o .libs/pango-fontset.o .libs/pango-glyph-item.o .libs/pango-gravity.o .libs/pango-item.o .libs/pango-language.o .libs/pango-layout.o .libs/pango-markup.o .libs/pango-matrix.o .libs/pango-renderer.o .libs/pango-script.o .libs/pango-tabs.o .libs/pango-utils.o .libs/reorder-items.o .libs/shape.o .libs/pango-enum-types.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' | /bin/sed 's/.* //' | sort | uniq > .libs/libpango-1.0.exp
libtool: link: /bin/grep -E -e "^pango_.*" ".libs/libpango-1.0.exp" > ".libs/libpango-1.0.expT"
libtool: link: mv -f ".libs/libpango-1.0.expT" ".libs/libpango-1.0.exp"
libtool: link: echo "{ global:" > .libs/libpango-1.0.ver
libtool: link:  cat .libs/libpango-1.0.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libpango-1.0.ver
libtool: link:  echo "local: *; };" >> .libs/libpango-1.0.ver
libtool: link:  gcc-5 -shared  -fPIC -DPIC  .libs/break.o .libs/ellipsize.o .libs/fonts.o .libs/glyphstring.o .libs/modules.o .libs/pango-attributes.o .libs/pango-bidi-type.o .libs/pango-color.o .libs/pango-context.o .libs/pango-coverage.o .libs/pango-emoji.o .libs/pango-engine.o .libs/pango-fontmap.o .libs/pango-fontset.o .libs/pango-glyph-item.o .libs/pango-gravity.o .libs/pango-item.o .libs/pango-language.o .libs/pango-layout.o .libs/pango-markup.o .libs/pango-matrix.o .libs/pango-renderer.o .libs/pango-script.o .libs/pango-tabs.o .libs/pango-utils.o .libs/reorder-items.o .libs/shape.o .libs/pango-enum-types.o   -L/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -L/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/lib -lfribidi -lm  -g -O2 -Wl,-Bsymbolic-functions -pthread   -pthread -Wl,-soname -Wl,libpango-1.0.so.0 -Wl,-version-script -Wl,.libs/libpango-1.0.ver -o .libs/libpango-1.0.so.0.4200.0
libtool: compile:  gcc-5 -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_COMPILATION -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE -DSYSCONFDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/etc\" -DLIBDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib\" -I.. -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/graphite2/1.3.10/include -I/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/include/harfbuzz -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.5/include -I/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/include -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.4/include -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/include/fribidi -fvisibility=hidden -g -O2 -Wall -c pango-ot-tag.c  -fPIC -DPIC -o .libs/pango-ot-tag.o
libtool: link: (cd ".libs" && rm -f "libpango-1.0.so.0" && ln -s "libpango-1.0.so.0.4200.0" "libpango-1.0.so.0")
libtool: link: (cd ".libs" && rm -f "libpango-1.0.so" && ln -s "libpango-1.0.so.0.4200.0" "libpango-1.0.so")
libtool: link: ar cru .libs/libpango-1.0.a  break.o ellipsize.o fonts.o glyphstring.o modules.o pango-attributes.o pango-bidi-type.o pango-color.o pango-context.o pango-coverage.o pango-emoji.o pango-engine.o pango-fontmap.o pango-fontset.o pango-glyph-item.o pango-gravity.o pango-item.o pango-language.o pango-layout.o pango-markup.o pango-matrix.o pango-renderer.o pango-script.o pango-tabs.o pango-utils.o reorder-items.o shape.o pango-enum-types.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libpango-1.0.a
libtool: compile:  gcc-5 -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_COMPILATION -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE -DSYSCONFDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/etc\" -DLIBDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib\" -I.. -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/graphite2/1.3.10/include -I/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/include/harfbuzz -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.5/include -I/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/include -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.4/include -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/include/fribidi -fvisibility=hidden -g -O2 -Wall -c pango-ot-tag.c -o pango-ot-tag.o >/dev/null 2>&1
libtool: link: ( cd ".libs" && rm -f "libpango-1.0.la" && ln -s "../libpango-1.0.la" "libpango-1.0.la" )
CPPFLAGS="" CFLAGS="-g -O2 -Wall" LDFLAGS="" CC="gcc-5" PKG_CONFIG="/home/linuxbrew/.linuxbrew/opt/pkg-config/bin/pkg-config" GI_HOST_OS="" DLLTOOL="dlltool" CC="gcc-5" /home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/bin/g-ir-scanner  --warn-all --add-include-path=. --add-include-path=. --namespace=Pango --nsversion=1.0 --libtool="/bin/sh ../libtool" --pkg=gobject-2.0 --pkg=cairo --pkg=glib-2.0 --include=GObject-2.0 --include=cairo-1.0 --pkg-export=pango   --library=libpango-1.0.la --c-include "pango/pango.h" --cflags-begin -I.. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_COMPILATION -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE -DSYSCONFDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/etc\" -DLIBDIR=\"/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib\" -I.. -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include   -I/home/linuxbrew/.linuxbrew/Cellar/pcre/8.41/include -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/include/glib-2.0 -I/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib/glib-2.0/include -I/home/linuxbrew/.linuxbrew/Cellar/graphite2/1.3.10/include -I/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/include/harfbuzz -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.5/include -I/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/include -I/home/linuxbrew/.linuxbrew/Cellar/expat/2.2.4/include -I/home/linuxbrew/.linuxbrew/opt/freetype/include/freetype2 -I/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/include/fribidi   -fvisibility=hidden --cflags-end  break.c ellipsize.c fonts.c glyphstring.c modules.c pango-attributes.c pango-bidi-type.c pango-color.c pango-context.c pango-coverage.c pango-emoji.c pango-emoji-table.h pango-engine.c pango-fontmap.c pango-fontset.c pango-glyph-item.c pango-gravity.c pango-impl-utils.h pango-item.c pango-language.c pango-language-sample-table.h pango-layout.c pango-markup.c pango-matrix.c pango-renderer.c pango-script.c pango-script-lang-table.h pango-tabs.c pango-utils.c pango-utils-internal.h reorder-items.c shape.c pango-enum-types.c pango.h pango-attributes.h pango-bidi-type.h pango-break.h pango-context.h pango-coverage.h pango-engine.h pango-font.h pango-fontmap.h pango-fontset.h pango-glyph.h pango-glyph-item.h pango-gravity.h pango-item.h pango-language.h pango-layout.h pango-matrix.h pango-modules.h pango-renderer.h pango-script.h pango-tabs.h pango-types.h pango-utils.h pango-version-macros.h pango-enum-types.h libpango-1.0.la --output Pango-1.0.gir
/bin/sh ../libtool  --tag=CC   --mode=link gcc-5  -g -O2 -Wall -version-info 4200:0:4200 -export-symbols-regex "^pango_.*" -Wl,-Bsymbolic-functions   -o libpangoft2-1.0.la -rpath /home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib pangofc-font.lo pangofc-fontmap.lo pangofc-decoder.lo pangofc-shape.lo pangoft2.lo pangoft2-fontmap.lo pangoft2-render.lo pango-ot-buffer.lo pango-ot-info.lo pango-ot-ruleset.lo pango-ot-tag.lo libpango-1.0.la -L/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib -lgobject-2.0 -lgthread-2.0 -pthread -lglib-2.0 -L/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/lib -lharfbuzz -L/home/linuxbrew/.linuxbrew/opt/freetype/lib -lfreetype -L/home/linuxbrew/.linuxbrew/opt/freetype/lib -L/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/lib -lfontconfig -lfreetype -lm
libtool: link: /home/linuxbrew/.linuxbrew/opt/binutils/bin/nm -B  .libs/pangofc-font.o .libs/pangofc-fontmap.o .libs/pangofc-decoder.o .libs/pangofc-shape.o .libs/pangoft2.o .libs/pangoft2-fontmap.o .libs/pangoft2-render.o .libs/pango-ot-buffer.o .libs/pango-ot-info.o .libs/pango-ot-ruleset.o .libs/pango-ot-tag.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' | /bin/sed 's/.* //' | sort | uniq > .libs/libpangoft2-1.0.exp
libtool: link: /bin/grep -E -e "^pango_.*" ".libs/libpangoft2-1.0.exp" > ".libs/libpangoft2-1.0.expT"
libtool: link: mv -f ".libs/libpangoft2-1.0.expT" ".libs/libpangoft2-1.0.exp"
libtool: link: echo "{ global:" > .libs/libpangoft2-1.0.ver
libtool: link:  cat .libs/libpangoft2-1.0.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libpangoft2-1.0.ver
libtool: link:  echo "local: *; };" >> .libs/libpangoft2-1.0.ver
libtool: link:  gcc-5 -shared  -fPIC -DPIC  .libs/pangofc-font.o .libs/pangofc-fontmap.o .libs/pangofc-decoder.o .libs/pangofc-shape.o .libs/pangoft2.o .libs/pangoft2-fontmap.o .libs/pangoft2-render.o .libs/pango-ot-buffer.o .libs/pango-ot-info.o .libs/pango-ot-ruleset.o .libs/pango-ot-tag.o   -Wl,-rpath -Wl,/tmp/pango-20180318-7066-1wecluh/pango-1.42.0/pango/.libs -Wl,-rpath -Wl,/home/linuxbrew/.linuxbrew/Cellar/pango/1.42.0/lib ./.libs/libpango-1.0.so -L/home/linuxbrew/.linuxbrew/Cellar/glib/2.56.0/lib -L/home/linuxbrew/.linuxbrew/Cellar/fribidi/1.0.1/lib -lfribidi -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -L/home/linuxbrew/.linuxbrew/Cellar/harfbuzz/1.7.6/lib -lharfbuzz -L/home/linuxbrew/.linuxbrew/opt/freetype/lib -L/home/linuxbrew/.linuxbrew/Cellar/fontconfig/2.12.6/lib -lfontconfig -lfreetype -lm  -g -O2 -Wl,-Bsymbolic-functions -pthread   -pthread -Wl,-soname -Wl,libpangoft2-1.0.so.0 -Wl,-version-script -Wl,.libs/libpangoft2-1.0.ver -o .libs/libpangoft2-1.0.so.0.4200.0
libtool: link: (cd ".libs" && rm -f "libpangoft2-1.0.so.0" && ln -s "libpangoft2-1.0.so.0.4200.0" "libpangoft2-1.0.so.0")
libtool: link: (cd ".libs" && rm -f "libpangoft2-1.0.so" && ln -s "libpangoft2-1.0.so.0.4200.0" "libpangoft2-1.0.so")
libtool: link: ar cru .libs/libpangoft2-1.0.a  pangofc-font.o pangofc-fontmap.o pangofc-decoder.o pangofc-shape.o pangoft2.o pangoft2-fontmap.o pangoft2-render.o pango-ot-buffer.o pango-ot-info.o pango-ot-ruleset.o pango-ot-tag.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libpangoft2-1.0.a
libtool: link: ( cd ".libs" && rm -f "libpangoft2-1.0.la" && ln -s "../libpangoft2-1.0.la" "libpangoft2-1.0.la" )
Package pthread-stubs was not found in the pkg-config search path.
Perhaps you should add the directory containing `pthread-stubs.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pthread-stubs', required by 'xcb', not found
pango-engine.h:300: Warning: Pango: symbol='script_engine_list': Unknown namespace for symbol 'script_engine_list'
pango-engine.h:313: Warning: Pango: symbol='script_engine_init': Unknown namespace for symbol 'script_engine_init'
pango-engine.h:324: Warning: Pango: symbol='script_engine_exit': Unknown namespace for symbol 'script_engine_exit'
pango-engine.h:335: Warning: Pango: symbol='script_engine_create': Unknown namespace for symbol 'script_engine_create'
pango-version-macros.h:287: Warning: Pango: Unknown namespace for identifier 'Interval'
Package pthread-stubs was not found in the pkg-config search path.
Perhaps you should add the directory containing `pthread-stubs.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pthread-stubs', required by 'xcb', not found
/tmp/pango-20180318-7066-1wecluh/pango-1.42.0/pango/tmp-introspectziKHc0/Pango-1.0.c:2:18: fatal error: glib.h: No such file or directory
compilation terminated.
Traceback (most recent call last):
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/bin/g-ir-scanner", line 66, in <module>
    sys.exit(scanner_main(sys.argv))
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/scannermain.py", line 547, in scanner_main
    shlibs = create_binary(transformer, options, args)
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/scannermain.py", line 422, in create_binary
    gdump_parser.get_error_quark_functions())
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/dumper.py", line 302, in compile_introspection_binary
    return dc.run()
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/dumper.py", line 168, in run
    introspection_obj = self._compile(c_path)
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/dumper.py", line 208, in _compile
    self._options.init_sections)
  File "/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/lib/gobject-introspection/giscanner/ccompiler.py", line 251, in compile
    output_dir=os.path.abspath(os.sep))
  File<EMAIL_ADDRESS>line 574, in compile
    self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
  File<EMAIL_ADDRESS>line 124, in _compile
    raise CompileError, msg
distutils.errors.CompileError: command 'gcc-5' failed with exit status 1
/home/linuxbrew/.linuxbrew/Cellar/gobject-introspection/1.56.0/share/gobject-introspection-1.0/Makefile.introspection:159: recipe for target 'Pango-1.0.gir' failed
make[4]: *** [Pango-1.0.gir] Error 1
make[4]: Leaving directory '/tmp/pango-20180318-7066-1wecluh/pango-1.42.0/pango'
Makefile:1304: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/tmp/pango-20180318-7066-1wecluh/pango-1.42.0/pango'
Makefile:1046: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/tmp/pango-20180318-7066-1wecluh/pango-1.42.0/pango'
Makefile:566: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/pango-20180318-7066-1wecluh/pango-1.42.0'
Makefile:465: recipe for target 'all' failed
make: *** [all] Error 2

@fcying Please report at your issue to Linuxbrew/core: https://github.com/Linuxbrew/homebrew-core/issues/new and be sure to include the output of brew gist-logs pango

There is a pull request open for pango: https://github.com/Linuxbrew/homebrew-core/pull/6629


Permission Mail.Read not included in access token

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
I am developing an SPFx solution accessing Microsoft Graph. After struggling with the recent bug of API permissions in admin portal (see #3891 ), I finally managed to get it partially working
My solution is supposed to get the current user OneDrive files, upcoming events and last mails.
Then the API permissions requests are as
"webApiPermissionRequests": [
      {
        "resource": "Microsoft Graph",
        "scope":"Files.ReadWrite.All"
      },
      {
        "resource": "Microsoft Graph",
        "scope":"Calendars.Read"
      },
      {
        "resource": "Microsoft Graph",
        "scope":"Mail.Read"
      }
    ]

I approved the permissions in the admin page

Observed Behavior
When executing my WebPart, the documents and events are properly fetched by the messages are not fetched using /v1.0/me/messages endpoint with the following response from Graph:
{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "e241ebaa-e436-492e-b939-5b67e781841c",
      "date": "2019-05-09T12:50:44"
    }
  }
}

I then checked the decoded access token on jwt.io and, indeed, it turns out that the Mail.Read permission is not included

  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/070be1bf-6d7f-43c2-9659-8c4203a11404/",
  "iat":<PHONE_NUMBER>,
  "nbf":<PHONE_NUMBER>,
  "exp":<PHONE_NUMBER>,
//....
  "app_displayname": "SharePoint Online Client Extensibility Web Application Principal",
  "appid": "ef1fe865-9873-4464-8f77-cbf4b2034506",
  "appidacr": "0",
  "family_name": "Plenevaux",
  "given_name": "Yannick",
//...
  "name": "Yannick Plenevaux",
  "oid": "d3aae97e-6aff-4e4d-b510-68223d377485",
  "platf": "3",
//...
  "scp": "Calendars.Read Files.ReadWrite.All",
  "signin_state": [
    "kmsi"
  ],
//....
  "tid": "070be1bf-6d7f-43c2-9659-8c4203a11404",
//...
  "ver": "1.0",
//....
}

In the scopes, we have the two first Calendars.Read and Files.ReadWrite.All but not Mail.Read
Steps to Reproduce
Try add the Mail.Read in apiPermissionsRequests of the SPFx solution.
As mentionned, the whole issue can be a consequence of the other bug discussed in #3891

When I finished writing up this issue, I retried and it now works... Maybe there is a refresh timeout to wait for, Anyway, it had the Mail.Read permission since the very beginning.
I redeployed the solution multiple times, well now it works, I guess that can be closed.


if node isn't exist in hashring, don't refresh hashring

[RemoveNode()]: if node isn't exist in hashring, don't refresh hashring

Thank you for your contribution!


[ADD] Cobatab

https://cobatab.edu.mx/
https://cobatab.edu.mx/servdocentes/ProgEstudio/Desarrollo Software.pdf

@tampiko First stage of verification passed, official domain for Colegio de Bachilleres de Tabasco is cobatab.edu.mx as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@tampiko Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


Switch from PHP 5.5 to PHP 5.6

Using PHP 5.6 was blocked by a known-issue with Acquia Cloud where NewRelic wasn't working if you were using 5.6. We love NewRelic, so we stuck with 5.5.
This issue has since been resolved, so we should be looking at what it'd take to upgrade Precip to use 5.6, likely through Ondřej's great PPA where he maintains PHP 5.6 stuff.
So far I've got the PPA added, but not everything is working yet:

How will we run all apt::ppa's before installing anything via apt, or at least before installing any PHP stuff. Maybe by chaining the calls to php::cli and php::module?
Why was installing Percona failing during provision? Possibly because of related PPA problems?
How will we support migrating from 5.5 -> 5.6? Just pulling and running provision won't be enough as it stands right now. It'll add the PPA, but won't upgrade PHP and related packages. Some way to trigger apt-get upgrade php5 if the existing PHP version is < 5.6?

Closing, will reopen a new PR shortly based on newer code.


[$250] BUG: Cannot see GL Accounts as an option in Sage Intacct NewDot Integration

Testing doc: here (request, will share)
Pre-testing steps

Make sure the email address does not already have existing workspaces/policies
Make sure emails sent to the testing email addresses go to an inbox you can access to validate your account(s)
Create a new collect policy on OldDot and;
Set the approval mode to “submit and approve”
Enable scheduled submit with a frequency of Daily or “slower”
Invite an additional user to the policy to play the member role in these testing flows
Run the script stated here to enable workspace chat creation for a paid plan.

Pre-testing steps

Make sure that your test account is on the intacctOnNewExpensify beta
Make sure you have Sage Intacct web services user ID, password and Company ID to initiate a connection
Make sure you create a new workspace/policy for each test run
Make sure emails sent to the testing email addresses go to an inbox you can access to validate your account(s)

Steps:

Head to Workspace settings
Head to Accounting
Under Sage Intacct Connection click Import

Expected result: you cannot disable GL Accounts (only when exporting as Vendor Bills)
Actual result: you do not see GL Accounts
Screenshot:

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~016c8c9b57288ec553
Upwork Job ID:<PHONE_NUMBER>881380661
Last Price Increase: 2024-07-23

Issue OwnerCurrent Issue Owner: @mollfpr

You can assign me as I was implementing this.
What is GL accounts @dylanexpensify? I don't see anything like this on Sage Intacct design doc or figma

GL accounts can be synonymous with categories in many cases as we generally bring of the GL from accounting as categories

So if the current UI matches Figma then this is not a bug? We just have a little different design. Also there's this discussion on Slack.

I don't see any bug for this issue. I think we should close it.


Update to  6.20180529

This is primarily to test that builds/tests fine.  @joeyh  will release a fresh release in upcoming days

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Recreate apt signing and apt repo in IBM Cloud

@bmpotter commented on Wed Feb 28 2018

dup of https://github.ibm.com/Edge-Fabric/project-mgmt/issues/2


evn-up falls

ubuntu 18.4 (vscode)
git version 2.17.1
go version go1.18beta2 linux/amd64
Docker version 20.10.12, build e91ed57
FerretDB v0.0.6-13-ge3f2cea-dirty
 ~/go/src/FerretDB(main *) > make env-up
docker-compose up --always-recreate-deps --force-recreate --remove-orphans --renew-anon-volumes --detach
Creating ferretdb_mongodb  ... done
Creating ferretdb_test_db  ... done
Creating ferretdb_postgres ... done
go generate -x ./internal/util/version
go run ./generate.go
go run ./cmd/envtool/main.go
2022-03-09T09:35:11.154+0300    INFO    envtool/main.go:271     Waiting for port 5432 to be up...
2022-03-09T09:35:11.155+0300    INFO    debug   debug/debug.go:36       Starting debug server on http://<IP_ADDRESS>:8089/
2022-03-09T09:35:11.155+0300    INFO    mongodb envtool/main.go:119     Waiting for port 37017 to be up...
2022-03-09T09:35:11.155+0300    INFO    mongodb envtool/main.go:124     Importing database...
2022-03-09T12:20:12.933+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:12.934+0545    dropping: monila.language
2022-03-09T12:20:12.964+0545    6 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:13.100+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:13.100+0545    dropping: monila.address
--
(1 row)

2022-03-09T12:20:13.168+0545    603 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:13.245+0545    connected to: mongodb://<IP_ADDRESS>:27017/values
2022-03-09T12:20:13.246+0545    dropping: values.values
2022-03-09T12:20:13.292+0545    41 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T09:35:13.324+0300    INFO    postgres.monila_and_values      envtool/main.go:177     Importing databases...
2022-03-09T09:35:13.324+0300    INFO    postgres.pagila envtool/main.go:162     Importing database...
2022-03-09T09:35:13.324+0300    INFO    postgres.monila_and_values.listener     clientconn/listener.go:71       Listening on :27018 ...
2022-03-09T12:20:13.348+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:13.349+0545    dropping: monila.actor
2022-03-09T12:20:13.419+0545    200 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:13.593+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:13.597+0545    dropping: monila.film_category
2022-03-09T12:20:13.737+0545    1000 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:13.854+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:13.861+0545    dropping: monila.category
2022-03-09T12:20:13.937+0545    16 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:14.052+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:14.052+0545    dropping: monila.city
2022-03-09T12:20:14.197+0545    600 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:14.297+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:14.298+0545    dropping: monila.film
2022-03-09T12:20:14.562+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:14.562+0545    dropping: monila.customer
2022-03-09T12:20:14.589+0545    1000 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:14.713+0545    599 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:14.893+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:14.894+0545    dropping: monila.staff
2022-03-09T12:20:14.941+0545    2 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:15.181+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:15.182+0545    dropping: monila.country
2022-03-09T12:20:15.227+0545    109 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:15.500+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:15.500+0545    dropping: monila.rental
 set_config
------------

(1 row)

2022-03-09T12:20:15.782+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:15.783+0545    dropping: monila.store
2022-03-09T12:20:15.837+0545    2 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:15.992+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:15.996+0545    dropping: monila.film_actor
2022-03-09T12:20:16.142+0545    connected to: mongodb://<IP_ADDRESS>:27017/monila
2022-03-09T12:20:16.142+0545    dropping: monila.inventory
2022-03-09T12:20:16.346+0545    5462 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:16.450+0545    4581 document(s) imported successfully. 0 document(s) failed to import.
2022-03-09T12:20:16.838+0545    16044 document(s) imported successfully. 0 document(s) failed to import.
 set_config
------------

(1 row)

2022-03-09T09:35:17.765+0300    INFO    mongodb envtool/main.go:155     Done in 6.610460135s.
 setval
--------
    200
(1 row)

 setval
--------
    605
(1 row)

 setval
--------
     16
(1 row)

 setval
--------
    600
(1 row)

 setval
--------
    109
(1 row)

 setval
--------
    599
(1 row)

 setval
--------
   1000
(1 row)

 setval
--------
   4581
(1 row)

 setval
--------
      6
(1 row)

 setval
--------
  32098
(1 row)

 setval
--------
  16049
(1 row)

 setval
--------
      2
(1 row)

 setval
--------
      2
(1 row)

2022-03-09T09:35:18.921+0300    INFO    postgres.pagila envtool/main.go:170     Done in 5.597065058s.
2022-03-09T12:20:46.258+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T09:35:46.361+0300    FATAL   postgres.monila_and_values      envtool/main.go:62      exec -T mongodb mongoimport --uri mongodb://host.docker.internal:27018/monila --drop --maintainInsertionOrder --collection address /test_db/monila/address.json failed: exit status 1
main.runCompose
        /home/aleksandr/go/src/FerretDB/cmd/envtool/main.go:62
main.setupMonilaAndValues.func2
        /home/aleksandr/go/src/FerretDB/cmd/envtool/main.go:214
exit status 1
Makefile:19: recipe for target 'env-setup' failed
make: *** [env-setup] Error 1
 ~/go/src/FerretDB(main *) > 2022-03-09T12:20:46.395+0545       error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.503+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.596+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.682+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.794+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.884+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:46.992+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.075+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.165+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.245+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.319+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.365+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.450+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }
2022-03-09T12:20:47.515+0545    error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: host.docker.internal:27018, Type: Unknown, Last error: connection() error occured during connection handshake: dial tcp <IP_ADDRESS>:27018: i/o timeout }, ] }

host.docker.internal appears to be supported on Linux since 20.10.0, so that's not a problem

@w84thesun investigated it. It does not look easy to make it work both on Linux and WSL, so we decided to make it easier to set up FerretDB on Windows instead. #347 might be the only thing we have to do for that.

@w84thesun Please re-check


Trimming of unhelpful fields

I might have mentioned this before, but we might want to tune the default selected categories, perhaps to remove Organism Part for one thing.

duplicate of #19


InstructionStabilizer: a more efficient invoke_signed_unchecked

Problem
solana_program::invoke_signed_unchecked clones an input Instruction prior to calling the Rust CPI syscall. This consumes heap and compute in a manner that scales with the number of accounts and data. The amount of resources consumed can get egregious considering the 64 account max limit, 10 kb data max limit, and the 64 invocation count limit (i.e. 63 max cpis).
Summary of Changes
We introduce an InstructionStabilizer that safely takes a &Instruction and produces the &StableInstruction required by the sol_invoke_signed_rust syscall without any new allocations or any copies.

this isn't quite ready. meant to make this a draft. can't change on my phone

I am confused how is this different from StableInstruction::from(instruction)? Which allocations/copies does StableInstruction do that stabilize_instruction doesn't do?

I am confused how is this different from StableInstruction::from(instruction)? Which allocations/copies does StableInstruction do that stabilize_instruction doesn't do?

Nvm shouldn't comment on things while on 30h+ flights - I missed the clone() call. But why can't the same be achieved building StableInstruction from &Instruction rather than from Instruction? Change the From impls that is.

I am confused how is this different from StableInstruction::from(instruction)? Which allocations/copies does StableInstruction do that stabilize_instruction doesn't do?

Nvm shouldn't comment on things while on 30h+ flights - I missed the clone() call. But why can't the same be achieved building StableInstruction from &Instruction rather than from Instruction? Change the From impls that is.

because now you own the stable instruction and will drop the inner vectors once when stable instruction is dropped, and then double free when the original instruction is dropped. the whole point of this is that we are creating a safe way to have aliasing pointers without reallocations (no calls to push or reserve) or deallocations on drop for as long as the &StableInstruction is alive. alternatively, you may drop the original instruction, which deallocates, and then the pointers now stored in the stable instruction point to garbage.
We MUST have a hidden ManuallyDrop<StableInstruction> that isn't dropped, while owning a &Instruction for this to work.

that's true but then it's a breaking change. i'm not the library maintainer so i don't get to make that call

the breaking change would propagate into the runtime, as the cpi syscall expects the current StableInstruction

the breaking change would propagate into the runtime, as the cpi syscall expects the current StableInstruction

Nothing changes in the runtime tho since it isn't really lifetimes-aware. As long as the outer (StableVec etc) containers are stable it doesn't matter what the pointers point to.
As for the sdk, where is the breaking change? invoke_* doesn't change it's an internal change. The definition of Stable* change, but those aren't part of the sdk, iirc they are public for dep-tree reasons but not meant to be used directly. So in practice I don't think anything breaks.

it doesn't matter why they are public. those are the semver rules.
https://doc.rust-lang.org/cargo/reference/semver.html
"Adding, removing, reordering, or changing fields of a default representation struct, union, or enum"
agave has historically not respected semver so again this is up to you all. i am sure i'm not the only one that has written crates that reach into the types with a stable layout.

and again, the runtime expects StableInstruction as is. programs on mainnet that call the syscall api as is would break

and again, the invoke syscall expects StableInstruction as is.
1. if you change syscall api, programs on mainnet that call the syscall api as is would break

2. if you don't, whatever you do is just going to construct something that looks like stable instruction but doesn't deallocate when dropped

This is exactly what I'm saying: we make the Stable* not own/deallocate on drop but borrow &Instruction. Stable* have no other purpose than to provide a stable ABI to the vm, how they do it doesn't matter. And as you yourself rightly said:

agave has historically not respected semver

Stable* isn't the right time to start respecting it - they were never meant to be public.

Sure, but introducing a new type would solve the problem AND respect semver. I want to understand exactly your objection before I rewrite this. I will only rewrite this once. Are you objecting to

Nuanced use of certain types i.e. ManuallyDrop and PhantomData to solve the problem. (Introduces no new data types and only one utility type. Leaves all other types unchanged)
Introduction of new type
some other thing

Because if it's just 1 and not 2, I would still rather introduce a new type that looks like StableInstruction with all nested fields inlined and doesn't deallocate, i.e. something like
pub struct StableInstruction2<'ix> {
    program_id: Pubkey,
    acc_ptr: NonNull<AccountMeta>,
    acc_cap: usize,
    acc_len: usize,
    data_ptr: NonNull<u8>,
    data_cap: usize,
    data_len: usize,
    ix: PhantomData<&'ix Instruction>
}

Put another way: what are you prioritizing? Do you not want a dead stable layout type?

Put another way: what are you prioritizing? Do you not want a dead stable layout type?

The only purpose of these types is to provide what the syscall needs. They were never meant to be used https://github.com/anza-xyz/agave/blob/0c36e4c82db4fc3bcc86e251d07c29ba24f6eb1d/sdk/program/src/stable_layout.rs#L2. It seems to me that there is no reason to add more - objective less idiomatic - code when we can improve the existing types to do the work they do more efficiently.

this is the most idiomatic way to get the job done without breaking changes to the public types or functions. try it yourself.
but i'm done discussing this. you still haven't made clear what you want. please just provide actionable steps and stop wasting my time.

this is the most idiomatic way to get the job done without breaking changes to the public types or functions. try it yourself.
but i'm done discussing this. you still haven't made clear what you want. please just provide actionable steps and stop wasting my time.

Bit rude, don't you think? Not sure why you're talking to me like you're doing me a favor? Doing open source isn't about writing code and calling it a day. Part of doing open source is agreeing on how to do things.  If you can't be bothered to do part of it, that's completely fine by me.
I've said like three times that not breaking Stable* is not a goal. I have linked you to a rustdoc that says "don't use me I'm going to break". You keep insisting that your solution is better because it doesn't break it.
Conceptually the Stable* impls can be changed to be From<Instruction> to From<&Instruction>, essentially doing what stabilize_instruction is doing in your code, without the extra bits.  I'm sure you can figure out the details if you're interested. If you've lost interest that's fine too, I'm not demanding you do anything.

i understood you are okay with breaking things. but calling what i did not idiomatic just because you don't like it is a needless and baseless insult coming from the only organization in the entire rust eco that doesn't respect semver. especially given that i am not the maintainer and am unaware of what you are willing to accept.
the steps you outlined will lead to double frees. we can fix the double free by taking out the Drop implementation (which ManuallyDrop circumvented) of StableVec. if you are okay with that, that's what i'll come back with

just kidding that would lead to a memory leak in program runtime.

    /// Entrypoint for a cross-program invocation from a builtin program
    pub fn native_invoke(
        &mut self,
        instruction: StableInstruction,
        signers: &[Pubkey],
    ) -> Result<(), InstructionError> {
        let (instruction_accounts, program_indices) =
            self.prepare_instruction(&instruction, signers)?;
        let mut compute_units_consumed = 0;
        self.process_instruction(
            &instruction.data,
            &instruction_accounts,
            &program_indices,
            &mut compute_units_consumed,
            &mut ExecuteTimings::default(),
        )?;
        Ok(())
    }

back to square one then. i have no interest in doing all of the plumbing for the new type of yours.

just kidding that would introduce a memory leak in the program runtime. back to square one. i'm not interested in doing the plumbing for your new type

just kidding that would introduce a memory leak in the program runtime. back to square one. i'm not interested in doing the plumbing for your new type

It would not. I'm not interested in continuing this conversation considering you keep being arrogant and rude.

just kidding that would introduce a memory leak in the program runtime. back to square one. i'm not interested in doing the plumbing for your new type

It would not. I'm not interested in continuing this conversation considering you keep being arrogant and rude.

if you remove the drop implementation, then whenever the stableinstruction is dropped by program runtime the stable vec will not be deallocated. that's called a memory leak in my field. here's one one place it will leak:

    /// Entrypoint for a cross-program invocation from a builtin program
    pub fn native_invoke(
        &mut self,
        instruction: StableInstruction,
        signers: &[Pubkey],
    ) -> Result<(), InstructionError> {
        let (instruction_accounts, program_indices) =
            self.prepare_instruction(&instruction, signers)?;
        let mut compute_units_consumed = 0;
        self.process_instruction(
            &instruction.data,
            &instruction_accounts,
            &program_indices,
            &mut compute_units_consumed,
            &mut ExecuteTimings::default(),
        )?;

How about we take a break and maybe do a phone call on this. At some point we are outside what works on a thread discussion. I don't fully understand it, but this approach doesn't seem to be effective.

i am ready whenever

@cavemanloverboy Thanks for continued contributions, despite your obvious frustration with the process. Ultimately @rexsaurus is right, this has spiraled quite far away from productive, so let's walk things back a bit.
Generally your approach has merit, and the compute usage benefits are sound.
As you've correctly pointed out, we'd benefit greatly from modifying our approach to StableInstruction and StableVec to use references rather than owned values.
As @alessandrod pointed out, the internals of invoke_signed_unchecked can be changed so long as the public API doesn't change (which it doesn't here).
He also mentioned factoring your approach into From<&Instruction> and breaking the public trait implementations of StableInstruction as an acceptable path forward to achieve your desired goal. As mentioned, the module is documented as such.
https://github.com/anza-xyz/agave/blob/097aa8e67252a059c4ee6e783892b4746ced84ca/sdk/program/src/stable_layout.rs#L4
Whether or not this practice is appropriate is... up for debate, but it's the direction a maintainer advised taking. Alternatively we can maybe deprecate the stable layout types in the program SDK and hoist them out to be not public, but that might need to be initiated separately.
Your new type presented here does a good job of creating a hyper-lightweight reference clasp that will vend a valid StableInstruction without requiring either a borrowed or owned Instruction object.
My suggestion would be to give StableVec the same treatment, use that internally in your InstructionStabilizer, and make both publicly available for use, leaving the original types alone. You'd end up with something like this.
let accounts: StableVec<AccountMeta> = VecStabilizer::stabilize(&instruction.accounts);

It also seems like your work with PhantomData and the reference clasp does the work of preventing unwanted drops of the original instruction itself, so I'm not sure if the ManualDrop wrapper is necessary. By including this lifetime constraint, you should get this from Rust for free. In fact, removing it will still pass your provided borrow-drop test.
You mentioned memory leaks in functions like native_invoke, but there's really no reason native_invoke can't use a reference to a StableInstruction. I would imagine there's not a lot of valid reasons for this to be an owned value in any function signature, considering it consists of all copyable types.
With all of that in mind, implementing From<&Instruction> and From<&Vec<T>> should also give you the borrow-checker security that your PhantomData yields.
Let me know what you think.

During CPI, the host translates the stabilized instruction into an owned copy in translate_instruction.
https://github.com/anza-xyz/agave/blob/8c5a33a81a0504fd25d0465bed35d153ff84819f/programs/bpf_loader/src/syscalls/cpi.rs#L1059-L1078
This owned copy must at some point deallocate the inner StableVec types. So, we cannot just provide an api that takes in a reference to vectors which does not drop. The existence of the api you provided
let accounts: StableVec<AccountMeta> = StableVec::from(&instruction.accounts);

without further changes in the runtime code implies either a leak (if Drop is removed), or a double free (if Drop is kept).
There are only two sensible ways to fix this issue imo:

Alessandro's method of removing all Drops/deallocations, but which would require heavy rewriting/plumbing in the cpi syscall. This would involve making translate_instruction return a reference to the original instruction in the syscall (since we cannot create a new allocation that we won't free), and then plumbing these changes all throughout the runtime. I expressed opposition to this because it is invasive and I'm not getting paid to do this.
Keep the Drops/deallocations, and provide a way to produce a &StableInstruction — which this PR does.

Also, you mention

Fwiw, it also seems like your work with PhantomData and the reference clasp does the work of preventing unwanted drops of the original instruction itself, so I'm not sure if the ManualDrop wrapper is necessary. By including this lifetime constraint, you should get this from Rust for free. In fact, removing it will still pass your provided borrow-drop test.

The ManallyDrop is not used to prevent drops in the original instruction. It is used to prevent double frees.

Also, you mention

Fwiw, it also seems like your work with PhantomData and the reference clasp does the work of preventing unwanted drops of the original instruction itself, so I'm not sure if the ManualDrop wrapper is necessary. By including this lifetime constraint, you should get this from Rust for free. In fact, removing it will still pass your provided borrow-drop test.

The ManallyDrop is not used to prevent drops of the original instruction. It is used to prevent double frees. See below
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b0968e7b0e0f88b3a735f87d1877d7e9

Gotcha. It seems like the real culprit in this example is Vec::from_raw_parts, since, as the documentation for that function says, it's extremely unsafe and thus when the "stable" type is dropped you have double frees.
What about refactoring StableVec to hold onto the lifetime, and then doing something like this?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=137e59dd580cdfab254c3f2aa825759f
The PhantomData and NonNull setup is taken exactly from how you've done it in this PR. Also, if you flip around the drops you'll get the borrow-checker error.

yes this gets rid of the double free and works perfectly for the program, but as prev mentioned now the stablevec that the vm host owns during the cpi syscall leaks. so now you need to go through and manually deallocate in the cpi syscall or change the way the instruction is translated

this allocation here from to_vec
https://github.com/anza-xyz/agave/blob/8c5a33a81a0504fd25d0465bed35d153ff84819f/programs/bpf_loader/src/syscalls/cpi.rs#L466-L478

I really think we either commit to a super invasive change and fix it all, or accept my change which I am confident is least invasive and a fully self-contained solution.

I really think we either commit to a super invasive change and fix it all, or accept my change which I am confident is least invasive and a fully self-contained solution to the issue within the program.

I think, since StableInstruction is really only used for program invocation, the right thing to do here is to make the more invasive change and fix this type in all invocations. There's not really a whole lot of value in adding this new type to circumvent bad code for only CPI when we can just fix the bad code.
Referencing point number 1 in your previous comment:

Alessandro's method of removing all Drops/deallocations, but which would require heavy rewriting/plumbing in the cpi syscall. This would involve making translate_instruction return a reference to the original instruction in the syscall (since we cannot create a new allocation that we won't free), and then plumbing these changes all throughout the runtime.

I think this is exactly what we should do. translate_instruction should return a reference to a StableInstruction which isn't too bad to pull off since translate_type also returns a reference. The SyscallInvokeSignedC implementation of this function is where things might get tricky.
I understand you aren't interested in doing the additional work; understandably so. It would be a big help if you could at least create an issue with something like your PR description and link it here. We can use the conversation and the code proposed in this PR as reference.
To be honest, the invasive solution is likely taking your work here with InstructionStabilizer and baking it into the actual stable types themselves and the CPI syscall flow, so your PR here is definitely not wasted work. Furthermore, if the full repair turns out to be too risky of a change, we can always come back to this PR and reevaluate. It's worth at least attempting the full fix first in my opinion.
What do you think?


✨ Add Remediation Controller to v1alpha5

This PR adds Remediation Controller, Metal3Remediation and Metal3RemediationTemplate crds to master branch of capm3.
Controller perform automated remediation of unhealthy nodes in Metal3 project when CAPI MachineHealthCheck external remediation is enabled.

/test-integration

/test-integration

/test-integration

/test-integration

/test all

/test all

/test all

/test-integration

/hold
Until prow and metal3-dev-env is tracking the main branch for CAPM3 in integration tests

/test-integration

/test-integration


Make "deactivate my account" easier to find with custom profile fields

Now that we have Custom Profile Fields, the "deactivate account" button can be kinda buried under a bunch of other things; I've had a few conversations with users that suggest they were unable to find them.  We should figure out a solution to make these easier to find.

One thing that will help is that #10102 will result in the icky API key widget being replaced by something new on its own page.  But we'll need to figure out a better plan for how to order this with respect to custom profile fields (possibly just move it above them?).

We could move it to the right, under the Avatar?

If we moved the "delete avatar" UI to be an X in the corner that you click, that could be reasonable.

I think one solution would be to have an Edit Profile button that shows/hides the custom profile fields with them hidden by default so that it doesn't take up too much space?

I opened https://github.com/zulip/zulip/issues/10255 for the avatar UI cleanup.


use small lock in following files:

Summary
use small lock in following files:
arch/arm/src/stm32f0l0g0/stm32_serial_v2.c
arch/arm/src/stm32f7/stm32_qencoder.c
arch/arm/src/stm32f7/stm32_serial.c
arch/arm/src/stm32h5/stm32_serial.c
arch/arm/src/stm32h7/stm32_qencoder.c
arch/arm/src/stm32h7/stm32_serial.c
arch/arm/src/stm32l4/stm32l4_qencoder.c
arch/arm/src/stm32l4/stm32l4_serial.c
arch/arm/src/stm32l5/stm32l5_serial.c
arch/arm/src/stm32u5/stm32_serial.c
arch/arm/src/stm32wb/stm32wb_serial.c
arch/arm/src/stm32wl5/stm32wl5_serial.c
arch/arm/src/tiva/cc13xx/cc13xx_enablepwr.c
arch/risc-v/src/rv32m1/rv32m1_serial.c
Impact
arch/arm/src/stm32f0l0g0/stm32_serial_v2.c
arch/arm/src/stm32f7/stm32_qencoder.c
arch/arm/src/stm32f7/stm32_serial.c
arch/arm/src/stm32h5/stm32_serial.c
arch/arm/src/stm32h7/stm32_qencoder.c
arch/arm/src/stm32h7/stm32_serial.c
arch/arm/src/stm32l4/stm32l4_qencoder.c
arch/arm/src/stm32l4/stm32l4_serial.c
arch/arm/src/stm32l5/stm32l5_serial.c
arch/arm/src/stm32u5/stm32_serial.c
arch/arm/src/stm32wb/stm32wb_serial.c
arch/arm/src/stm32wl5/stm32wl5_serial.c
arch/arm/src/tiva/cc13xx/cc13xx_enablepwr.c
arch/risc-v/src/rv32m1/rv32m1_serial.c
Testing
ci

[Experimental Bot, please feedback here]
No, this PR summary does not adequately meet the NuttX requirements. Here's why and how to fix it:
Summary Problems:

Vague "Why":  Just saying "use small lock" is insufficient.  Explain why this is necessary. Is it for performance improvement? Reduced memory usage?  Deadlock avoidance?  Be specific.
Missing "What": What is the "small lock"?  Is this a new locking mechanism? Replacing an existing one?  Which one?  Provide details.
Missing "How":  How is this "small lock" implemented? Does it use spinlocks? Mutexes?  A custom mechanism?  Describe the technical changes.
Missing Issue References: If this relates to a reported issue, provide the link(s).

Impact Problems:

Incomplete Sections:  Simply listing file paths is not helpful.  Address each impact point individually and answer "NO" or "YES" followed by a description if "YES".  For example:

Impact on user: NO (No user-visible changes) or YES (Users will need to reconfigure X because Y).
Impact on build: NO or YES (New Kconfig option Z needs to be selected).  And so on for all the impact categories.

Missing Detail: Even if there are no impacts for a certain category, explicitly stating "NO" is helpful for reviewers.

Testing Problems:

Insufficient Information:  "ci" is not enough.  State:

The specific build hosts you tested on (OS, compiler, etc.)
The specific target hardware/simulators you tested on.

No Logs: You must provide actual logs demonstrating the behavior before and after the change.  This is crucial for verifying the fix.  Even if the change seems minor, logs prove it works as expected and doesn't introduce regressions.

Example of an Improved Summary:

This change replaces the standard mutex used in the serial driver and qencoder driver on several platforms with a lighter-weight spinlock. This is done to improve performance in interrupt contexts where the serial driver is used, as the previous mutex implementation could introduce unnecessary latency. The small lock is implemented using the irqsave() and irqrestore() functions to protect critical sections. This addresses issue #123 (link to issue).

Example of Improved Impact:

Impact on user: NO (No user-visible changes)
Impact on build: NO
Impact on hardware: YES (Affects serial driver and qencoder driver functionality on STM32F7, STM32H7, STM32L4, STM32L5, STM32U5, STM32WB, STM32WL5, STM32F0L0G0, Tiva CC13xx, and RISC-V RV32M1).
Impact on documentation: YES (Documentation will be updated to reflect the new locking mechanism).
Impact on security: NO
Impact on compatibility: NO
Anything else to consider: Potential for increased interrupt latency if spinlock is held for excessive durations.  This will be monitored in testing.

Example of Improved Testing:

Build Host(s): Linux (Ubuntu 20.04), GCC 9.4.0
Target(s): STM32F746-Discovery board (using stm32f746g-disco:nsh config), QEMU (RISC-V RV32M1)

Testing logs before change:
... (actual logs demonstrating the issue) ...

Testing logs after change:
... (actual logs showing the issue is resolved) ...

By providing more specific information and actual test results, you'll significantly increase the chances of your PR being accepted. Remember, clarity and evidence are key to a successful contribution.


Unable to parse Unix time string

Initial Checks

[X] I confirm that I'm using Pydantic V2 installed directly from the main branch, or equivalent

Description
According to the documentation for datetime types  the following string types are acceptable:

YYYY-MM-DD[T]HH:MM[:SS[.ffffff]][Z[±]HH[:]MM]]]
int or float as a string (assumed as Unix time)

But currently the string of Unix time cannot be parsed as datetime.
Example Code
from datetime import datetime

from pydantic import BaseModel

class M(BaseModel):
    tm: datetime

a = M(tm=0)
# tm=datetime.datetime(1970, 1, 1, 0, 0)

b = M(tm='1970-01-01 00:00:00')
# tm=datetime.datetime(1970, 1, 1, 0, 0)

c = M(tm=1672531200000)
# tm=datetime.datetime(2023, 1, 1, 0, 0)

d = M(tm='1672531200000')
# Input should be a valid datetime, invalid date separator, expected `-` [type=datetime_parsing, input_value='1672531200000', input_type=str]

e = M(tm='0')
# Input should be a valid datetime, input is too short [type=datetime_parsing, input_value='0', input_type=str]

Python, Pydantic & OS Version
pydantic version: 2.0a4
        pydantic-core version: 0.30.0 release build profile
                 install path: D:\Projects\venv\Lib\site-packages\pydantic
               python version: 3.9.12 (main, Apr  4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]
                     platform: Windows-10-10.0.19045-SP0
     optional deps. installed: ['typing-extensions']

Ye, I think the docs are wrong and we don't try to parse strings as unix timestamp.
Question is where we should support this it fix the docs?

Well, we really don't think about implementing it?
I think we can totally convert the string whose characters are all ascii digits to a float in pydantic-core.

Well, ideally it should be fixed in speedate, also should we parse only numeric strings to ints, or also support float parsing, e.g.<PHONE_NUMBER>.123?


Beautify markdown structure of README

Remove wrong indentation
Keep only one h1 title

Many thanks. Looks good to me and makes sense.