allowing build from diectory/src snapshot

https://github.com/adoptium/temurin-build/issues/3704
This is initial shot on implementation.

It do not support build in container (although I would like to add)
cleaning is not perfect (eg build dir in source dir is corrupting it)
works above both dirs and tarballs
probably missed all possible corener cases

Wdyt?

Note that I intentionally added, and left in some set -x I will remove them once we agree on this.

@judovana I'm not understanding the use case here.  The build scripts already support building from a local directory via the --source <path> flag.

The usecase is to build local random dir/local jdk work in progress/local source snaphshot

@judovana I'm not understanding the use case here. The build scripts already support building from a local directory via the --source <path> flag.

Hmm. You understand the scripts hundred times more then me, so you are most slightly  right.
Before I dived into this, I was advised by @andrew-m-leonard  that current scripts do not allow to build random directory or tarred snapshot.  I was not trying the --source tbh, as by documentation, I understood it that it will clone the repo to the -s's given location.
Even If I'm wrong (which most likely I'm) the scripts expects git repo (and .git) folder to be present. So that is something I need to get rid to build random dir/source snapshot. That is moreover 100% of this work. I was plying with faking .git repo, in the copy of the random dir/unpacked source snapshot, but that was fragile, and was actually more nasty patch.
Last thing,  which is based on previous) the make_any_jdk is fiddling with the repo to much - various reserts, checkouts and so, which moreover prohibits building local copy where is work in progress. But yet again, I'm most likely very wrong and had misunderstood how it should work, or missed set of switches allowing me to build  local random dir/local jdk work in progress/local source snaphshot
ps, I had notyiced the shell check issues, most of them are valid, will elaborate as thsi review will progress.

The --source is to be dir name/relative path stub. Not even full path:
On current master:
sh makejdk-any-platform.sh --source /tmp/blah jdk11 , where /tmp existed, but  /tmp/blah not, had cloned fresh jdk11 to
Could not find a valid openjdk git repository at /home/jvanek/git/temurin-build/workspace/tmp/blah/src so re-cloning the source to openjdk
sh makejdk-any-platform.sh --source /home/jvanek/git/jdk11u-dev/  jdk11 where jdk11u-dev was valid cloned jdk,  again make fresh copy Could not find a valid openjdk git repository at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src so re-cloning the source to openjdk
thus with this change, it behaved correctly:
sh makejdk-any-platform.sh --source /home/jvanek/git/jdk11u-dev/  ~/git/jdk11u-dev/   ->
Copying existing /home/jvanek/git/jdk11u-dev to /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev to be built
Thanx for pointer!

the configure diff is qute massive. The integer expression error is to be workaroudned by --jdk-dir-altid  and I thnk I will improve the existing sed to remove also - as I gueess it owuld be main, and not needed, enforcer of --jdk-dir-altid
--- /home/jvanek/git/temurin-build/a
+++ /home/jvanek/git/temurin-build/b
@@ -1,44 +1,64 @@
-"master"
-Completed configuring the version string parameter, config args are now:  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled
+"my"
+Completed configuring the version string parameter, config args are now:  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250659 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled
 Configuring command and using the pre-built config params...
-Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
-Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src'
-Running /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//src/configure with arguments 'bash /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//src/configure --verbose  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled'
-Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
-Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src'
+Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev
+Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev'
+Running /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//jdk11u-dev/configure with arguments 'bash /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//jdk11u-dev/configure --verbose  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250659 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled'
++ '[' 11- -gt 8 ']'
+/home/jvanek/git/temurin-build/sbin/build.sh: line 623: [: 11-: integer expression expected
++ '[' 11- -ge 22 ']'
+/home/jvanek/git/temurin-build/sbin/build.sh: line 625: [: 11-: integer expression expected
+Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev
+Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev'
 Runnable configure script is not present
-Generating runnable configure script at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/.configure-support/generated-configure.sh
+Generating runnable configure script at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/.configure-support/generated-configure.sh
 Using autoconf at /usr/bin/autoconf [autoconf (GNU Autoconf) 2.71]
-configure: Configuration created at Mon Mar 25 08:08:06 CET 2024.
+configure: Configuration created at Mon Mar 25 07:59:54 CET 2024.
 checking for basename... /usr/bin/basename
+checking for dirname... /usr/bin/dirname
+checking for file... /usr/bin/file
+checking for ldd... /usr/bin/ldd
+checking for echo... echo [builtin]
+checking for tr... /usr/bin/tr
+checking for uname... /usr/bin/uname
+checking for wc... /usr/bin/wc
+checking for grep that handles long lines and -e... /usr/bin/grep
+checking for egrep... /usr/bin/grep -E
+checking for a sed that does not truncate output... /usr/bin/sed
+checking for cygpath... [not found]
+checking for wslpath... [not found]
+checking for cmd.exe... [not found]
+checking build system type... x86_64-unknown-linux-gnu
+checking host system type... x86_64-unknown-linux-gnu
+checking target system type... x86_64-unknown-linux-gnu
+checking openjdk-build os-cpu... linux-x86_64
+checking openjdk-build C library... gnu
+checking openjdk-target os-cpu... linux-x86_64
+checking openjdk-target C library... gnu
+checking compilation type... native
+checking for top-level directory... /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev
 checking for bash... /usr/bin/bash
 checking for cat... /usr/bin/cat
 checking for chmod... /usr/bin/chmod
-checking for cmp... /usr/bin/cmp
-checking for comm... /usr/bin/comm
 checking for cp... /usr/bin/cp
 checking for cut... /usr/bin/cut
 checking for date... /usr/bin/date
-checking for gdiff... no
+checking for gdiff... [not found]
 checking for diff... /usr/bin/diff
-checking for dirname... /usr/bin/dirname
-checking for echo... /usr/bin/echo
 checking for expr... /usr/bin/expr
-checking for file... /usr/bin/file
 checking for find... /usr/bin/find
-checking for head... /usr/bin/head
 checking for gunzip... /usr/bin/gunzip
 checking for pigz... /usr/bin/pigz
+checking for head... /usr/bin/head
 checking for ln... /usr/bin/ln
 checking for ls... /usr/bin/ls
+checking for gmkdir... [not found]
 checking for mkdir... /usr/bin/mkdir
 checking for mktemp... /usr/bin/mktemp
 checking for mv... /usr/bin/mv
-checking for nawk... no
+checking for nawk... [not found]
 checking for gawk... /usr/bin/gawk
-checking for printf... /usr/bin/printf
-checking for greadlink... no
-checking for readlink... /usr/bin/readlink
+checking for printf... printf [builtin]
 checking for rm... /usr/bin/rm
 checking for rmdir... /usr/bin/rmdir
 checking for sh... /usr/bin/sh
@@ -47,61 +67,54 @@
 checking for gtar... /usr/bin/gtar
 checking for tee... /usr/bin/tee
 checking for touch... /usr/bin/touch
-checking for tr... /usr/bin/tr
-checking for uname... /usr/bin/uname
-checking for uniq... /usr/bin/uniq
-checking for wc... /usr/bin/wc
 checking for which... /usr/bin/which
 checking for xargs... /usr/bin/xargs
 checking for gawk... gawk
-checking for grep that handles long lines and -e... /usr/bin/grep
-checking for egrep... /usr/bin/grep -E
 checking for fgrep... /usr/bin/grep -F
-checking for a sed that does not truncate output... /usr/bin/sed
-checking for cygpath... no
 checking for df... /usr/bin/df
-checking for cpio... /usr/bin/cpio
 checking for nice... /usr/bin/nice
-checking for pandoc... /usr/bin/pandoc
-checking build system type... x86_64-unknown-linux-gnu
-checking host system type... x86_64-unknown-linux-gnu
-checking target system type... x86_64-unknown-linux-gnu
-checking openjdk-build os-cpu... linux-x86_64
-checking openjdk-target os-cpu... linux-x86_64
-checking compilation type... native
-checking for top-level directory... /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
+checking for greadlink... [not found]
+checking for readlink... /usr/bin/readlink
+checking for lsb_release... [not found]
+checking for cmp... /usr/bin/cmp
+checking for uniq... /usr/bin/uniq
 checking if custom source is suppressed (openjdk-only)... no
 checking which variant of the JDK to build... normal
 checking which debug level to use... release
 checking which variants of the JVM to build... server
+checking if absolute paths should be allowed in the build output... no, release build
 checking for sysroot...
 checking for toolchain path...
 checking for extra path...
 checking where to store configuration... in default location
 checking what configuration name to use... linux-x86_64-normal-server-release
-checking for apt-get... no
-checking for yum... yum
+checking for apt-get... [not found]
+checking for yum... /usr/bin/yum
+checking for pandoc... /usr/bin/pandoc
+checking if the pandoc smart extension needs to be disabled for markdown... /usr/bin/grep: warning: stray \ before +
+yes
 checking for gmake... /usr/bin/gmake
 configure: Testing potential make at /usr/bin/gmake, found using gmake in PATH
 configure: Using GNU make at /usr/bin/gmake (version: GNU Make 4.4.1)
 checking if make --output-sync is supported... yes
-checking for output-sync value... none
+checking for make --output-sync value... none, default
 checking if find supports -delete... yes
 checking what type of tar was found... gnu
 checking that grep (/usr/bin/grep) -Fx handles empty lines in the pattern list correctly... yes
 checking for unzip... /usr/bin/unzip
 checking for zip... /usr/bin/zip
-checking for ldd... /usr/bin/ldd
-checking for greadelf... no
+checking for greadelf... [not found]
 checking for readelf... /usr/bin/readelf
 checking for dot... /usr/bin/dot
 checking for hg... /usr/bin/hg
+checking for git... /usr/bin/git
 checking for stat... /usr/bin/stat
-checking for time... /usr/bin/time
+checking for time... time [builtin]
 checking for flock... /usr/bin/flock
 checking for dtrace... /usr/bin/dtrace
-checking for gpatch... no
+checking for gpatch... [not found]
 checking for patch... /usr/bin/patch
+checking for ulimit... ulimit [builtin]
 checking bash version... 5.2.26
 checking if bash supports pipefail... yes
 checking if bash supports errexit (-e)... yes
@@ -114,24 +127,23 @@
 checking full docs... yes, dependencies present
 checking for cacerts file... /home/jvanek/git/temurin-build/sbin/../security/cacerts
 checking if packaged modules are kept... yes (default)
-checking for version string... 11-beta+28-202403250708
+checking for version string... 11.0.24-beta+0-202403250659
 checking for javac... /usr/bin/javac
 checking for java... /usr/bin/java
 configure: Found potential Boot JDK using java(c) in PATH
 checking for Boot JDK... /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64
-checking Boot JDK version... openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)
-checking for java in Boot JDK... ok
-checking for javac in Boot JDK... ok
-checking for javadoc in Boot JDK... ok
-checking for jar in Boot JDK... ok
-checking for jarsigner in Boot JDK... ok
+checking Boot JDK version... openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)
+checking for java [Boot JDK]... $BOOT_JDK/bin/java
+checking for javac [Boot JDK]... $BOOT_JDK/bin/javac
+checking for javadoc [Boot JDK]... $BOOT_JDK/bin/javadoc
+checking for jar [Boot JDK]... $BOOT_JDK/bin/jar
 checking if Boot JDK is 32 or 64 bits... 64
 checking for local Boot JDK Class Data Sharing (CDS)... yes, created
 checking for Build JDK... yes, will use output dir
 configure: Using default toolchain gcc (GNU Compiler Collection)
 checking for gcc... /usr/bin/gcc
 checking resolved symbolic links for CC... no symlink
-configure: Using gcc C compiler version gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
+configure: Using gcc C compiler version 13.2.1 [gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
 checking whether the C compiler works... yes
 checking for C compiler default output file name... a.out
 checking for suffix of executables...
@@ -142,39 +154,29 @@
 checking for /usr/bin/gcc option to enable C11 features... none needed
 checking for g++... /usr/bin/g++
 checking resolved symbolic links for CXX... no symlink
-configure: Using gcc C++ compiler version g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
+configure: Using gcc C++ compiler version 13.2.1 [g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
 checking whether the compiler supports GNU C++... yes
 checking whether /usr/bin/g++ accepts -g... yes
 checking for /usr/bin/g++ option to enable C++11 features... none needed
-configure: WARNING: C and C++ compiler have different version numbers, gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. vs g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE..
-configure: WARNING: This typically indicates a broken setup, and is not supported
-configure: WARNING: You are using gcc older than 4.8. This is not a supported configuration.
 checking how to run the C preprocessor... /usr/bin/gcc -E
 checking how to run the C++ preprocessor... /usr/bin/g++ -E
+checking for ld... /usr/bin/ld
 configure: Using gcc linker version 2.40 [GNU ld version 2.40-14.fc39]
-checking for ar... ar
-configure: Rewriting AR to "/usr/bin/ar"
-checking for strip... strip
-configure: Rewriting STRIP to "/usr/bin/strip"
-checking for nm... nm
-configure: Rewriting NM to "/usr/bin/nm"
-checking for gobjcopy... no
-checking for objcopy... objcopy
-configure: Rewriting OBJCOPY to "/usr/bin/objcopy"
-checking for gobjdump... no
-checking for objdump... objdump
-configure: Rewriting OBJDUMP to "/usr/bin/objdump"
-checking for c++filt... c++filt
-configure: Rewriting CXXFILT to "/usr/bin/c++filt"
-configure: WARNING: C and C++ compiler have different version numbers, gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. vs g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE..
-configure: WARNING: This typically indicates a broken setup, and is not supported
-checking for jtreg... no
+checking for ar... /usr/bin/ar
+checking for strip... /usr/bin/strip
+checking for nm... /usr/bin/nm
+checking for gobjcopy... [not found]
+checking for objcopy... /usr/bin/objcopy
+checking for gobjdump... [not found]
+checking for objdump... /usr/bin/objdump
+checking for c++filt... /usr/bin/c++filt
+checking if @file is supported by gcc... yes
+checking if CC supports "-m64"... yes
+checking if CXX supports "-m64"... yes
+checking if both CC and CXX support "-m64"... yes
+checking for jtreg... [not found]
 checking for jtreg test harness... no, not found
 checking for jib... no
-checking if @file is supported by gcc... yes
-checking if the C compiler supports "-m64"... yes
-checking if the C++ compiler supports "-m64"... yes
-checking if both compilers support "-m64"... yes
 checking for stdio.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
@@ -188,11 +190,46 @@
 checking size of int *... 8
 checking for target address size... 64 bits
 checking whether byte ordering is bigendian... no
+checking what source date to use... determined at build time, from 'updated'
+checking for --enable-reproducible-build... disabled, default
 checking if native warnings are errors... true (default)
-checking if the C++ compiler supports "-std=gnu++98 -Werror"... yes
+checking if CC supports "-Xassembler -mrelax-relocations=no"... yes
+checking if CXX supports "-Xassembler -mrelax-relocations=no"... yes
+checking if both CC and CXX support "-Xassembler -mrelax-relocations=no"... yes
 checking for library containing clock_gettime... none required
+checking if TARGET is x86... no
+checking if CXX supports "-std=gnu++98 -Werror"... yes
+checking if CC supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if CXX supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if both CC and CXX support "-fno-delete-null-pointer-checks -Werror"... yes
+checking if CC supports "-fno-lifetime-dse -Werror"... yes
+checking if CXX supports "-fno-lifetime-dse -Werror"... yes
+checking if both CC and CXX support "-fno-lifetime-dse -Werror"... yes
+checking if CC supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking if CXX supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking if both CC and CXX support "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking how to prevent absolute paths in output... using compiler options
+checking if CC supports "-ffp-contract=off"... yes
+checking if CXX supports "-ffp-contract=off"... yes
+checking if both CC and CXX support "-ffp-contract=off"... yes
+checking if BUILD is x86... no
+checking if BUILD_CXX supports "-std=gnu++98 -Werror"... yes
+checking if BUILD_CC supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if BUILD_CXX supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if both BUILD_CC and BUILD_CXX support "-fno-delete-null-pointer-checks -Werror"... yes
+checking if BUILD_CC supports "-fno-lifetime-dse -Werror"... yes
+checking if BUILD_CXX supports "-fno-lifetime-dse -Werror"... yes
+checking if both BUILD_CC and BUILD_CXX support "-fno-lifetime-dse -Werror"... yes
+checking if BUILD_CC supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking if BUILD_CXX supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking if both BUILD_CC and BUILD_CXX support "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/="... yes
+checking how to prevent absolute paths in output... using compiler options
+checking if BUILD_CC supports "-ffp-contract=off"... yes
+checking if BUILD_CXX supports "-ffp-contract=off"... yes
+checking if both BUILD_CC and BUILD_CXX support "-ffp-contract=off"... yes
 checking what type of native debug symbols to use... none
-checking for dtrace tool... /usr/bin/dtrace
+checking if we should add external native debug symbols to the shipped bundles... no
+checking for dtrace tool and platform support... /usr/bin/dtrace
 checking for sys/sdt.h... yes
 checking if dtrace should be built... yes, dependencies present
 checking if Hotspot gtest unit tests should be built... yes
@@ -208,6 +245,7 @@
 checking for X11/extensions/Xrender.h... yes
 checking for X11/extensions/XTest.h... yes
 checking for X11/Intrinsic.h... yes
+checking for X11/extensions/Xrandr.h... yes
 checking if XlinearGradient is defined in Xrender.h... yes
 checking for cups/cups.h... yes
 checking for cups/ppd.h... yes
@@ -221,9 +259,10 @@
 checking for compress in -lz... yes
 checking for which zlib to use... bundled
 checking for which lcms to use... bundled
+checking for which harfbuzz to use... bundled
 checking for cos in -lm... yes
 checking for dlopen in -ldl... yes
-checking if zgc should be built... no
+checking if shenandoah can be built... checking if zgc can be built... yes
 checking if jvmci module jdk.internal.vm.ci should be built... yes
 checking if graal module jdk.internal.vm.compiler should be built... yes
 checking if aot should be enabled... yes
@@ -236,7 +275,7 @@
 checking for number of cores... 8
 checking for memory size... 64194 MB
 checking for appropriate number of jobs to run in parallel... 8
-checking flags for boot jdk java command ...  -Duser.language=en -Duser.country=US  -XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/configure-support/classes.jsa -Xshare:auto
+checking flags for boot jdk java command ...  -Duser.language=en -Duser.country=US  -XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/configure-support/classes.jsa -Xshare:auto
 checking flags for boot jdk java command for big workloads...  -Xms64M -Xmx1600M -XX:ThreadStackSize=1536
 checking flags for bootcycle boot jdk java command for big workloads... -Xms64M -Xmx1600M -XX:ThreadStackSize=1536
 checking flags for boot jdk java command for small workloads...  -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
@@ -246,29 +285,29 @@
 checking that precompiled headers work... yes
 checking is ccache enabled... no
 checking if build directory is on local disk... yes
-checking JVM features for JVM variant 'server'... "aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs"
-configure: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/configure-support/config.status
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/bootcycle-spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/buildjdk-spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/compare.sh
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/Makefile
+checking JVM features for JVM variant 'server'... "aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs zgc"
+configure: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/configure-support/config.status
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/bootcycle-spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/buildjdk-spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/compare.sh
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release/Makefile

 ====================================================
 A new configuration has been successfully created in
-/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release
-using configure arguments '--verbose --with-vendor-name='Undefined Vendor' --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts --with-freetype=bundled --with-zlib=bundled'.
+/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u-dev/build/linux-x86_64-normal-server-release
+using configure arguments '--verbose --with-vendor-name='Undefined Vendor' --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250659 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts --with-freetype=bundled --with-zlib=bundled'.

 Configuration summary:
 * Debug level:    release
 * HS debug level: product
 * JVM variants:   server
-* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs'
+* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs zgc'
 * OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
-* Version string: 11-beta+28-202403250708 (11-beta)
+* Version string: 11.0.24-beta+0-202403250659 (11.0.24-beta)

 Tools summary:
-* Boot JDK:       openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)  (at /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64)
+* Boot JDK:       openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing) (at /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64)
 * Toolchain:      gcc (GNU Compiler Collection)
-* C Compiler:     Version gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (at /usr/bin/gcc)
-* C++ Compiler:   Version g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (at /usr/bin/g++)
+* C Compiler:     Version 13.2.1 (at /usr/bin/gcc)
+* C++ Compiler:   Version 13.2.1 (at /usr/bin/g++)

the altid fised the expressions error, but otherwise the differecnes remianed:
--- /home/jvanek/git/temurin-build/a
+++ /home/jvanek/git/temurin-build/b
@@ -1,44 +1,60 @@
-"master"
-Completed configuring the version string parameter, config args are now:  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled
+"my with proper altid"
+Completed configuring the version string parameter, config args are now:  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250716 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled
 Configuring command and using the pre-built config params...
-Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
-Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src'
-Running /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//src/configure with arguments 'bash /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//src/configure --verbose  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled'
-Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
-Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src'
+Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u
+Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u'
+Running /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//jdk11u/configure with arguments 'bash /home/jvanek/git/temurin-build/workspace//home/jvanek/git/jdk11u-dev//jdk11u/configure --verbose  --with-vendor-name="Undefined Vendor" --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250716 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts  --with-freetype=bundled --with-zlib=bundled'
+Should be in the openjdk build root directory, I'm at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u
+Currently at '/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u'
 Runnable configure script is not present
-Generating runnable configure script at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/.configure-support/generated-configure.sh
+Generating runnable configure script at /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/.configure-support/generated-configure.sh
 Using autoconf at /usr/bin/autoconf [autoconf (GNU Autoconf) 2.71]
-configure: Configuration created at Mon Mar 25 08:08:06 CET 2024.
+configure: Configuration created at Mon Mar 25 08:16:13 CET 2024.
 checking for basename... /usr/bin/basename
+checking for dirname... /usr/bin/dirname
+checking for file... /usr/bin/file
+checking for ldd... /usr/bin/ldd
+checking for echo... echo [builtin]
+checking for tr... /usr/bin/tr
+checking for uname... /usr/bin/uname
+checking for wc... /usr/bin/wc
+checking for grep that handles long lines and -e... /usr/bin/grep
+checking for egrep... /usr/bin/grep -E
+checking for a sed that does not truncate output... /usr/bin/sed
+checking for cygpath... [not found]
+checking for wslpath... [not found]
+checking for cmd.exe... [not found]
+checking build system type... x86_64-unknown-linux-gnu
+checking host system type... x86_64-unknown-linux-gnu
+checking target system type... x86_64-unknown-linux-gnu
+checking openjdk-build os-cpu... linux-x86_64
+checking openjdk-build C library... gnu
+checking openjdk-target os-cpu... linux-x86_64
+checking openjdk-target C library... gnu
+checking compilation type... native
+checking for top-level directory... /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u
 checking for bash... /usr/bin/bash
 checking for cat... /usr/bin/cat
 checking for chmod... /usr/bin/chmod
-checking for cmp... /usr/bin/cmp
-checking for comm... /usr/bin/comm
 checking for cp... /usr/bin/cp
 checking for cut... /usr/bin/cut
 checking for date... /usr/bin/date
-checking for gdiff... no
+checking for gdiff... [not found]
 checking for diff... /usr/bin/diff
-checking for dirname... /usr/bin/dirname
-checking for echo... /usr/bin/echo
 checking for expr... /usr/bin/expr
-checking for file... /usr/bin/file
 checking for find... /usr/bin/find
-checking for head... /usr/bin/head
 checking for gunzip... /usr/bin/gunzip
 checking for pigz... /usr/bin/pigz
+checking for head... /usr/bin/head
 checking for ln... /usr/bin/ln
 checking for ls... /usr/bin/ls
+checking for gmkdir... [not found]
 checking for mkdir... /usr/bin/mkdir
 checking for mktemp... /usr/bin/mktemp
 checking for mv... /usr/bin/mv
-checking for nawk... no
+checking for nawk... [not found]
 checking for gawk... /usr/bin/gawk
-checking for printf... /usr/bin/printf
-checking for greadlink... no
-checking for readlink... /usr/bin/readlink
+checking for printf... printf [builtin]
 checking for rm... /usr/bin/rm
 checking for rmdir... /usr/bin/rmdir
 checking for sh... /usr/bin/sh
@@ -47,61 +63,54 @@
 checking for gtar... /usr/bin/gtar
 checking for tee... /usr/bin/tee
 checking for touch... /usr/bin/touch
-checking for tr... /usr/bin/tr
-checking for uname... /usr/bin/uname
-checking for uniq... /usr/bin/uniq
-checking for wc... /usr/bin/wc
 checking for which... /usr/bin/which
 checking for xargs... /usr/bin/xargs
 checking for gawk... gawk
-checking for grep that handles long lines and -e... /usr/bin/grep
-checking for egrep... /usr/bin/grep -E
 checking for fgrep... /usr/bin/grep -F
-checking for a sed that does not truncate output... /usr/bin/sed
-checking for cygpath... no
 checking for df... /usr/bin/df
-checking for cpio... /usr/bin/cpio
 checking for nice... /usr/bin/nice
-checking for pandoc... /usr/bin/pandoc
-checking build system type... x86_64-unknown-linux-gnu
-checking host system type... x86_64-unknown-linux-gnu
-checking target system type... x86_64-unknown-linux-gnu
-checking openjdk-build os-cpu... linux-x86_64
-checking openjdk-target os-cpu... linux-x86_64
-checking compilation type... native
-checking for top-level directory... /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src
+checking for greadlink... [not found]
+checking for readlink... /usr/bin/readlink
+checking for lsb_release... [not found]
+checking for cmp... /usr/bin/cmp
+checking for uniq... /usr/bin/uniq
 checking if custom source is suppressed (openjdk-only)... no
 checking which variant of the JDK to build... normal
 checking which debug level to use... release
 checking which variants of the JVM to build... server
+checking if absolute paths should be allowed in the build output... no, release build
 checking for sysroot...
 checking for toolchain path...
 checking for extra path...
 checking where to store configuration... in default location
 checking what configuration name to use... linux-x86_64-normal-server-release
-checking for apt-get... no
-checking for yum... yum
+checking for apt-get... [not found]
+checking for yum... /usr/bin/yum
+checking for pandoc... /usr/bin/pandoc
+checking if the pandoc smart extension needs to be disabled for markdown... /usr/bin/grep: warning: stray \ before +
+yes
 checking for gmake... /usr/bin/gmake
 configure: Testing potential make at /usr/bin/gmake, found using gmake in PATH
 configure: Using GNU make at /usr/bin/gmake (version: GNU Make 4.4.1)
 checking if make --output-sync is supported... yes
-checking for output-sync value... none
+checking for make --output-sync value... none, default
 checking if find supports -delete... yes
 checking what type of tar was found... gnu
 checking that grep (/usr/bin/grep) -Fx handles empty lines in the pattern list correctly... yes
 checking for unzip... /usr/bin/unzip
 checking for zip... /usr/bin/zip
-checking for ldd... /usr/bin/ldd
-checking for greadelf... no
+checking for greadelf... [not found]
 checking for readelf... /usr/bin/readelf
 checking for dot... /usr/bin/dot
 checking for hg... /usr/bin/hg
+checking for git... /usr/bin/git
 checking for stat... /usr/bin/stat
-checking for time... /usr/bin/time
+checking for time... time [builtin]
 checking for flock... /usr/bin/flock
 checking for dtrace... /usr/bin/dtrace
-checking for gpatch... no
+checking for gpatch... [not found]
 checking for patch... /usr/bin/patch
+checking for ulimit... ulimit [builtin]
 checking bash version... 5.2.26
 checking if bash supports pipefail... yes
 checking if bash supports errexit (-e)... yes
@@ -114,24 +123,23 @@
 checking full docs... yes, dependencies present
 checking for cacerts file... /home/jvanek/git/temurin-build/sbin/../security/cacerts
 checking if packaged modules are kept... yes (default)
-checking for version string... 11-beta+28-202403250708
+checking for version string... 11.0.24-beta+0-202403250716
 checking for javac... /usr/bin/javac
 checking for java... /usr/bin/java
 configure: Found potential Boot JDK using java(c) in PATH
 checking for Boot JDK... /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64
-checking Boot JDK version... openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)
-checking for java in Boot JDK... ok
-checking for javac in Boot JDK... ok
-checking for javadoc in Boot JDK... ok
-checking for jar in Boot JDK... ok
-checking for jarsigner in Boot JDK... ok
+checking Boot JDK version... openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)
+checking for java [Boot JDK]... $BOOT_JDK/bin/java
+checking for javac [Boot JDK]... $BOOT_JDK/bin/javac
+checking for javadoc [Boot JDK]... $BOOT_JDK/bin/javadoc
+checking for jar [Boot JDK]... $BOOT_JDK/bin/jar
 checking if Boot JDK is 32 or 64 bits... 64
 checking for local Boot JDK Class Data Sharing (CDS)... yes, created
 checking for Build JDK... yes, will use output dir
 configure: Using default toolchain gcc (GNU Compiler Collection)
 checking for gcc... /usr/bin/gcc
 checking resolved symbolic links for CC... no symlink
-configure: Using gcc C compiler version gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
+configure: Using gcc C compiler version 13.2.1 [gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
 checking whether the C compiler works... yes
 checking for C compiler default output file name... a.out
 checking for suffix of executables...
@@ -142,39 +150,29 @@
 checking for /usr/bin/gcc option to enable C11 features... none needed
 checking for g++... /usr/bin/g++
 checking resolved symbolic links for CXX... no symlink
-configure: Using gcc C++ compiler version g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
+configure: Using gcc C++ compiler version 13.2.1 [g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)]
 checking whether the compiler supports GNU C++... yes
 checking whether /usr/bin/g++ accepts -g... yes
 checking for /usr/bin/g++ option to enable C++11 features... none needed
-configure: WARNING: C and C++ compiler have different version numbers, gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. vs g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE..
-configure: WARNING: This typically indicates a broken setup, and is not supported
-configure: WARNING: You are using gcc older than 4.8. This is not a supported configuration.
 checking how to run the C preprocessor... /usr/bin/gcc -E
 checking how to run the C++ preprocessor... /usr/bin/g++ -E
+checking for ld... /usr/bin/ld
 configure: Using gcc linker version 2.40 [GNU ld version 2.40-14.fc39]
-checking for ar... ar
-configure: Rewriting AR to "/usr/bin/ar"
-checking for strip... strip
-configure: Rewriting STRIP to "/usr/bin/strip"
-checking for nm... nm
-configure: Rewriting NM to "/usr/bin/nm"
-checking for gobjcopy... no
-checking for objcopy... objcopy
-configure: Rewriting OBJCOPY to "/usr/bin/objcopy"
-checking for gobjdump... no
-checking for objdump... objdump
-configure: Rewriting OBJDUMP to "/usr/bin/objdump"
-checking for c++filt... c++filt
-configure: Rewriting CXXFILT to "/usr/bin/c++filt"
-configure: WARNING: C and C++ compiler have different version numbers, gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. vs g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE..
-configure: WARNING: This typically indicates a broken setup, and is not supported
-checking for jtreg... no
+checking for ar... /usr/bin/ar
+checking for strip... /usr/bin/strip
+checking for nm... /usr/bin/nm
+checking for gobjcopy... [not found]
+checking for objcopy... /usr/bin/objcopy
+checking for gobjdump... [not found]
+checking for objdump... /usr/bin/objdump
+checking for c++filt... /usr/bin/c++filt
+checking if @file is supported by gcc... yes
+checking if CC supports "-m64"... yes
+checking if CXX supports "-m64"... yes
+checking if both CC and CXX support "-m64"... yes
+checking for jtreg... [not found]
 checking for jtreg test harness... no, not found
 checking for jib... no
-checking if @file is supported by gcc... yes
-checking if the C compiler supports "-m64"... yes
-checking if the C++ compiler supports "-m64"... yes
-checking if both compilers support "-m64"... yes
 checking for stdio.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
@@ -188,11 +186,46 @@
 checking size of int *... 8
 checking for target address size... 64 bits
 checking whether byte ordering is bigendian... no
+checking what source date to use... determined at build time, from 'updated'
+checking for --enable-reproducible-build... disabled, default
 checking if native warnings are errors... true (default)
-checking if the C++ compiler supports "-std=gnu++98 -Werror"... yes
+checking if CC supports "-Xassembler -mrelax-relocations=no"... yes
+checking if CXX supports "-Xassembler -mrelax-relocations=no"... yes
+checking if both CC and CXX support "-Xassembler -mrelax-relocations=no"... yes
 checking for library containing clock_gettime... none required
+checking if TARGET is x86... no
+checking if CXX supports "-std=gnu++98 -Werror"... yes
+checking if CC supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if CXX supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if both CC and CXX support "-fno-delete-null-pointer-checks -Werror"... yes
+checking if CC supports "-fno-lifetime-dse -Werror"... yes
+checking if CXX supports "-fno-lifetime-dse -Werror"... yes
+checking if both CC and CXX support "-fno-lifetime-dse -Werror"... yes
+checking if CC supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking if CXX supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking if both CC and CXX support "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking how to prevent absolute paths in output... using compiler options
+checking if CC supports "-ffp-contract=off"... yes
+checking if CXX supports "-ffp-contract=off"... yes
+checking if both CC and CXX support "-ffp-contract=off"... yes
+checking if BUILD is x86... no
+checking if BUILD_CXX supports "-std=gnu++98 -Werror"... yes
+checking if BUILD_CC supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if BUILD_CXX supports "-fno-delete-null-pointer-checks -Werror"... yes
+checking if both BUILD_CC and BUILD_CXX support "-fno-delete-null-pointer-checks -Werror"... yes
+checking if BUILD_CC supports "-fno-lifetime-dse -Werror"... yes
+checking if BUILD_CXX supports "-fno-lifetime-dse -Werror"... yes
+checking if both BUILD_CC and BUILD_CXX support "-fno-lifetime-dse -Werror"... yes
+checking if BUILD_CC supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking if BUILD_CXX supports "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking if both BUILD_CC and BUILD_CXX support "-fmacro-prefix-map=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/="... yes
+checking how to prevent absolute paths in output... using compiler options
+checking if BUILD_CC supports "-ffp-contract=off"... yes
+checking if BUILD_CXX supports "-ffp-contract=off"... yes
+checking if both BUILD_CC and BUILD_CXX support "-ffp-contract=off"... yes
 checking what type of native debug symbols to use... none
-checking for dtrace tool... /usr/bin/dtrace
+checking if we should add external native debug symbols to the shipped bundles... no
+checking for dtrace tool and platform support... /usr/bin/dtrace
 checking for sys/sdt.h... yes
 checking if dtrace should be built... yes, dependencies present
 checking if Hotspot gtest unit tests should be built... yes
@@ -208,6 +241,7 @@
 checking for X11/extensions/Xrender.h... yes
 checking for X11/extensions/XTest.h... yes
 checking for X11/Intrinsic.h... yes
+checking for X11/extensions/Xrandr.h... yes
 checking if XlinearGradient is defined in Xrender.h... yes
 checking for cups/cups.h... yes
 checking for cups/ppd.h... yes
@@ -221,9 +255,10 @@
 checking for compress in -lz... yes
 checking for which zlib to use... bundled
 checking for which lcms to use... bundled
+checking for which harfbuzz to use... bundled
 checking for cos in -lm... yes
 checking for dlopen in -ldl... yes
-checking if zgc should be built... no
+checking if shenandoah can be built... checking if zgc can be built... yes
 checking if jvmci module jdk.internal.vm.ci should be built... yes
 checking if graal module jdk.internal.vm.compiler should be built... yes
 checking if aot should be enabled... yes
@@ -236,7 +271,7 @@
 checking for number of cores... 8
 checking for memory size... 64194 MB
 checking for appropriate number of jobs to run in parallel... 8
-checking flags for boot jdk java command ...  -Duser.language=en -Duser.country=US  -XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/configure-support/classes.jsa -Xshare:auto
+checking flags for boot jdk java command ...  -Duser.language=en -Duser.country=US  -XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/configure-support/classes.jsa -Xshare:auto
 checking flags for boot jdk java command for big workloads...  -Xms64M -Xmx1600M -XX:ThreadStackSize=1536
 checking flags for bootcycle boot jdk java command for big workloads... -Xms64M -Xmx1600M -XX:ThreadStackSize=1536
 checking flags for boot jdk java command for small workloads...  -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
@@ -246,29 +281,29 @@
 checking that precompiled headers work... yes
 checking is ccache enabled... no
 checking if build directory is on local disk... yes
-checking JVM features for JVM variant 'server'... "aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs"
-configure: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/configure-support/config.status
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/bootcycle-spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/buildjdk-spec.gmk
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/compare.sh
-config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release/Makefile
+checking JVM features for JVM variant 'server'... "aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs zgc"
+configure: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/configure-support/config.status
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/bootcycle-spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/buildjdk-spec.gmk
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/compare.sh
+config.status: creating /home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release/Makefile

 ====================================================
 A new configuration has been successfully created in
-/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/src/build/linux-x86_64-normal-server-release
-using configure arguments '--verbose --with-vendor-name='Undefined Vendor' --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250708 --with-version-pre=beta --with-version-build=28 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts --with-freetype=bundled --with-zlib=bundled'.
+/home/jvanek/git/temurin-build/workspace/home/jvanek/git/jdk11u-dev/jdk11u/build/linux-x86_64-normal-server-release
+using configure arguments '--verbose --with-vendor-name='Undefined Vendor' --with-vendor-url=file:///dev/null --with-vendor-bug-url=file:///dev/null --with-vendor-vm-bug-url=file:///dev/null --with-version-opt=202403250716 --with-version-pre=beta --with-version-build=0 --with-debug-level=release --with-native-debug-symbols=none --with-jvm-variants=server --with-cacerts-file=/home/jvanek/git/temurin-build/sbin/../security/cacerts --with-freetype=bundled --with-zlib=bundled'.

 Configuration summary:
 * Debug level:    release
 * HS debug level: product
 * JVM variants:   server
-* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs'
+* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs zgc'
 * OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
-* Version string: 11-beta+28-202403250708 (11-beta)
+* Version string: 11.0.24-beta+0-202403250716 (11.0.24-beta)

 Tools summary:
-* Boot JDK:       openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing)  (at /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64)
+* Boot JDK:       openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7) OpenJDK 64-Bit Server VM (Red_Hat-<IP_ADDRESS>.7-1) (build 11.0.22+7, mixed mode, sharing) (at /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.7-1.fc39.x86_64)
 * Toolchain:      gcc (GNU Compiler Collection)
-* C Compiler:     Version gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (at /usr/bin/gcc)
-* C++ Compiler:   Version g++ (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (at /usr/bin/g++)
+* C Compiler:     Version 13.2.1 (at /usr/bin/gcc)
+* C++ Compiler:   Version 13.2.1 (at /usr/bin/g++)

@judovana i'm afraid I don't quite understand the "use case", can you explain this statement from your issue please?

"It would be nice, if it can - at least in limited scope - work also above local directory with jdk sources or above local tarball >with sources (candy on top of the dir)."

Maybe provide a few examples?

please any admin, unhide https://github.com/adoptium/temurin-build/pull/3724#issuecomment-2017347395 ; I do nto have permissions:( It was not supposed ot be hidden

And I was hoping to be self describing enough :)
The goal is simple - I have a source tarball or directory, and I want temurin-build to build it for me. No cloning, no playing with tags or branches, ok with no .git dir.
From all I know current scripting do not offer this functionality, and I heavily miss it.

@judovana
Hi Jiri,
I've added a number of comments and suggestions, I understand I think what you're after, and I think we can simplify it a bit.
My thoughts:

I think we can get away with only adding one new build arg:

--openjdk-source <path to openjdk src directory or tarball>

When --openjdk-source is specified it sets OPENJDK_FOREST_SOURCE to that path, and also mandates the use of --tag <jdk tag version>
Then in the build scripts build.sh, the logic that currently checks out the required git code to the area where the build-scripts want to build, which is $BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[WORKING_DIR]}/${BUILD_CONFIG[OPENJDK_SOURCE_DIR], will instead "copy" or "unzip" the OPENJDK_FOREST_SOURCE into that location, ie.logically:

unzip OPENJDK_FOREST_SOURCE into $BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[WORKING_DIR]}/${BUILD_CONFIG[OPENJDK_SOURCE_DIR]

If the source is not an Adoptium mirror, then you will need to use the existing build arg:

--disable-adopt-branch-safety

Ping me if you have any questions

@judovana Hi Jiri, I've added a number of comments and suggestions, I understand I think what you're after, and I think we can simplify it a bit. My thoughts:
1. I think we can get away with only adding one new build arg:

--openjdk-source <path to openjdk src directory or tarball>

Please dont, I would liek to go without any switch at all. The altid was optional safety belt, and will be removed, in favour of version (with adjsuted man page).
The <path to openjdk src directory or tarball> should remain the solemn mandatory  arg.

2. When --openjdk-source is specified it sets OPENJDK_FOREST_SOURCE to that path, and also mandates the use of --tag <jdk tag version>

I sitll hesitate on this.  If tag would be specifed, then sure, it must be used. But without it, I would jsut default to "local" or similarly., rather then doing it mandatory.

3. Then in the build scripts build.sh, the logic that currently checks out the required git code to the area where the build-scripts want to build, which is BUILD_CONFIG[WORKSPACE_DIR]}/BUILD_CONFIG[WORKING_DIR]/BUILD_CONFIG[OPENJDK_SOURCE_DIR], will instead "copy" or "unzip" the OPENJDK_FOREST_SOURCE into that location, ie.logically:

unzip OPENJDK_FOREST_SOURCE into $BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[WORKING_DIR]}/${BUILD_CONFIG[OPENJDK_SOURCE_DIR]

Fair enough. As I described earlier, the git operations expect proepr cwd, adn are using "." . I was jsut keeping consitent with it. I can of course (and galdlY!) use what you suggests, but it will diverg from clones. Ok?

4. If the source is not an Adoptium mirror, then you will need to use the existing build arg:

--disable-adopt-branch-safety

As this is removing any forms of .git (unlessby error packed in source snapshot) I set it in the if block - BUILD_CONFIG[DISABLE_ADOPT_BRANCH_SAFETY]="true"
I would liek to keep ti as it is. As this work is avoidign any git at all!

Ping me if you have any questions

done!
Tyvm for review !

You need to ensure whatever argument is specified, that you can determine:
BUILD_CONFIG[OPENJDK_CORE_VERSION]       eg. jdk21
BUILD_CONFIG[OPENJDK_FEATURE_NUMBER]   eg. 21

from them, as these must be set correctly so that the build scripts know what version specific stuff they need to do...
With you forest source selection, no "git" operations should occur on the $BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[WORKING_DIR]}/${BUILD_CONFIG[OPENJDK_SOURCE_DIR]

You need to ensure whatever argument is specified, that you can determine:
BUILD_CONFIG[OPENJDK_CORE_VERSION]       eg. jdk21
BUILD_CONFIG[OPENJDK_FEATURE_NUMBER]   eg. 21

from them, as these must be set correctly so that the build scripts know what version specific stuff they need to do...

I know. Tahts what ALID was for.  And now --version eill be used as you advised.

With you forest source selection, no "git" operations should occur on the BUILD_CONFIG[WORKSPACE_DIR]/BUILD_CONFIG[WORKING_DIR]/BUILD_CONFIG[OPENJDK_SOURCE_DIR]

Sure,  will do. Still I'm wondering if it is not agasint he tide of "." of git clone. But sure!

Just to confirm. Currently there are two proposed solutions of usecase:
make_any_jdk.sh    --version ifDirIsNotParseable DIR_OR_REPO
or
make_any_jdk.sh  --openjdk-sources alwaysNeeded  REPO
From those two I prefere first one, as it is less verbose.  On contrary, it is giving the dir_or_repo dual meaning.
Second one will  is quite unnecessary verbose, but is a bit more understandable.

Just to confirm. Currently there are two proposed solutions of usecase: make_any_platform.sh --version ifDirIsNotParseable DIR_OR_REPO or make_any_platformsh --openjdk-sources alwaysNeeded REPO
From those two I prefere first one, as it is less verbose. On contrary, it is giving the dir_or_repo dual meaning. Second one will is quite unnecessary verbose, but is a bit more understandable.

We had small chat with @andrew-m-leonard  and we decided that thsi feature can go in, once I rework it for  make_any_platformsh --openjdk-sources alwaysNeeded REPO
As this will need major rework of the patch, I will close this PR and open new one

surpassed by https://github.com/adoptium/temurin-build/pull/3737


callback-free-itx: Fixed $rollback and added $transaction

This PR contains the following improvements:

Fixes the $rollback behavior
Currently, the promise being rejected when calling $rollback is caught and ignored. This means the original target txClient is unaware that an exception was raised during the execution of its $transaction, and therefore performs a commit rather than a rollback.

Adds a $transaction method
One of the goals of this extension is to allow integration tests per issue 12458. The idea is that we can mock the prisma client by sending this imperative-styled transaction wrapper instead, starting a transaction in a global beforeEach block, and rolling back that transaction in afterEach. This allows full test independence, as rolling back the transaction means the database remains unchanged between tests. The code being tested should be unaware the prisma client is being mocked. It should be able to invoke prisma.$transaction if it needs to. However, in the current extension implementation this does not work. This PR enables this behavior by proxying the $transaction method, sending txClient to the callback.

Would be nice to see this

@vaharoni

The idea is that we can mock the prisma client by sending this imperative-styled transaction wrapper instead, starting a transaction in a global beforeEach block, and rolling back that transaction in afterEach

How can I specifically achieve the above content with code?


tests: kernel: timer: Fix failing tests for custom k_busy_wait()

This commit provides an additional threshold value for comparison when a custom k_busy_wait() implementation is chosen.

@andyross please revisit

Just wanted to double-check usage of the term "slew", which is typically used in analog circuits (e.g. opamps), and describes dv/dt at a single test point.
https://en.wikipedia.org/wiki/Slew_rate
"Skew" is a phenomenon that appears due to the propagation delay of a clock signal measured at one point vs at another point and also differences in rates between independent clock signals.
https://en.wikipedia.org/wiki/Clock_skew
Apologies if this was already brought up. English can be a bit of a silly language sometimes.
Hmmm... seems that neither "slew" nor "skew" is a good term here. The skew is an effect of the propagation of one clock source while in our case the thing is about deviation between two independent clock sources (both - RTC and GRTC are clocked by 32k oscillator while in our case 'k_busy_wait()' is clocked by the core clock) ... Am I right?

Hmmm... seems that neither "slew" nor "skew" is a good term here. The skew is an effect of the propagation of one clock source while in our case the thing is about deviation between two independent clock sources (both - RTC and GRTC are clocked by 32k oscillator while in our case 'k_busy_wait()' is clocked by the core clock) ... Am I right?

Yeah, I think you're right. Deviation is probably the more appropriate term. FWIR in rfsoc's and e.g. in bluetooth, the differences between two clocks would be specified as a deviation in terms of ± some number of PPM.
I'll just ping all of the time lords I can think of
@cvinayak @npitre @fgrandel @andyross - does the above sound accurate?

+1 for "deviation"

Thinking aloud here, with opportunity to learn too; a clock source has accuracy in ppm, that leads to jitter in a measured interval, over time of multiple such periodic interval a probable drift in relation to a perfect/accurate clock source. Now, with two clock sources of differing accuracy in ppm, the drift will be sum of their accuracy over the interval.
From the nRF52 product specification, the High Frequency Clock (internal RC typically unless External Crystal use is requested) that drives the CPU is typical +/- 1.5% at 64 MHz(now I do not know how to convert this to ppm! maybe I should learn it), and this will be the k_busy_wait() clock source. The Low Frequency Clock (typically 32 KHz crystal) at best be minimum of 0 to 20 ppm is driving the NRF_RTC peripheral, that is used as system timer. And I have experienced practically these crystals give ~100 ppm accuracy with all the software related jitter.
Trying to understand what this test is checking, it looks like it is comparing the absolute value of the delta_ticks; hence, comparing with deviation sound right to me.
+1 for deviation

Hmmm... seems that neither "slew" nor "skew" is a good term here. The skew is an effect of the propagation of one clock source while in our case the thing is about deviation between two independent clock sources

Interesting discussion. :-)
TLDR;
Time-related terms are well standardized so while all proposals made so far are certainly not wrong I propose that we stick to terms frequently used in standards.
IMO the most appropriate standard nomenclature would be +/-x% frequency offset of the busy timer oscillator as compared to the kernel timer oscillator.

You can replace oscillator by tick source or leave it out entirely.
You can replace frequency offset by frequency deviation although this is used less commonly in standards.
You should say clearly that it is frequency offset that is measured, not jitter or (frequency) drift or absolut time deviation.
You should not call those timers a clock source. They measure relative time distances or frequencies or at most arbitrary uptime. A proper clock source would also have to provide a time scale and time origin. Note: Linux's sloppy use of the word "clock source" may be justifiable because they always add time origin/scale downstream to their clock sources, which we don't in general to our kernel/busy timers.

Rationale:
Because I love time measurement I took the opportunity to actually consult a few standards, but of course this goes completely overboard wrt what we need here - just for those interested...
Common standards are (among others):

IEEE 1139-2022 (hidden behind a pay wall)
MIL-PRF-55310
NIST technical note 1337
[ITU-T G.801](file:///home/fgrandel/Insync/fgrandel@gmail.com/Development/TSN/standards/T-REC-G.810-199608-I!!PDF-E.pdf)

a clock source has accuracy

That is correct except that we do not necessarily look at a clock source here, see above.
Accuracy can either mean "trueness" (i.e. closeness to a reference) as opposed to "precision" (i.e. measurement granularity) or it can mean a combination of "trueness" and "precision" (ISO-5725-1).
Neither trueness nor precision (in that well-defined sense) seem to be the problem here, though. Even if both clock sources (probably oscillators) were highly inaccurate they'd not necessarily "deviate" or "drift" relatively to each other if they deviate in the same way. This is why the test doesn't fail on a single clock source even if that clock source was highly inaccurate.

now I do not know how to convert this to ppm

1 % = 10 ‰ = 10000 ppm
1ppm = 1000 ppb

that leads to jitter in a measured interval

Not really. Random or bounded jitter or frequency stability leads per definition to constant accuracy loss over time and is therefore mostly independent of the measurement interval unless it is very short such that its randomness matters.
NIST definition: "short term phase variation of the significant instants of a digital signal from their ideal positions in time".
Jitter is just one of several sources of oscillator error. It's probably also not the one that is most significant here, as it has constant or even (in the symmetric case) zero accurracy effect in the long term by definition. It also has a bounded effect on average precision.
Other common sources of oscillator error are frequency offset (~ "time drift") and frequency drift (~ "time drift of second order").
Frequency offset (or frequency accuracy or frequency deviation) over time can be measured absolutely (e.g. in Hertz) or relatively (e.g. in %, ppm, ppb, ...) as compared to another frequency source (our case) or as compared to nominal frequency (which is what you usually find in data sheets). When we colloquially speak of clock or oscillator "drift" or "accuracy", what we usually mean is frequency offset as compared to the reference frequency. This is also the measure you cited from the data sheet.
Frequency drift over time can be measured in "offset per time unit", i.e. it measures Hertz/ppm/... per second/minute/hour/year or sometimes other parameters like temperature, etc. It is the "slope" of frequency over time. Sometimes data sheets characterize frequency drift due to temperature, radiation or ageing. Secondary parameters like these can be measured over time, too, so that the overall drift in an oscillator "quality" measurement can usually given per time interval (e.g. per one timer period).
Eliminating frequency offset and drift between two oscillators (or other tick sources) is called syntonization as opposed to synchronization of clock sources which additionally requires negotiation of a common time origin and time scale.
The three most common sources of oscillator error can be approximated in the following time-domain formulae that calculate the reference timepoint (as measured by a reference clock with f_ref) of the t'th oscillator "tick" x(t):
x(t) = x(0) + y*t + (D/2) * t^2 + Phy(t) / (2*pi*f_ref)

Where (simplified):
x(t): the time of the t'th tick as measured by the reference clock
x(0): the tick that started measurement as expressed in the reference clock's time scale
y: frequency offset (linear phase error)
D: frequency drift (quadratic phase error)
Phy(t): jitter or phase fluctuation i.e. the inverse of frequency stability (random phase error)
f_ref: the nominal (reference) frequency
Or alternatively and more precisely:
x(t) = x(0) + tau * sum_0...t-1[y(t)]

Where (simplified):
y(t): averaged normalized frequency offset (aka average fractional frequency deviation) between tick t and tick t+1 (a value of 1 means no offset)
tau: nominal tick period
Of course lots of other formulae in the time and frequency domain have been proposed to characterize oszillators.
Based on such a time series of "ticks", the "quality" of an oscillator can be characterized by lots of aggregate measures, e.g. ADEV: the Allan deviation, MDEV: the modiﬁed Allan deviation, TDEV: the time deviation, TIErms : the root mean square of the time interval error (TIE), and MTIE: the maximum time interval error, etc. This only scratches the surface. Look at some of the above cited standards to get an idea how complex actual oscillator characterization can be.
With all this in mind what actually seems to matter most here is what is usually called "frequency offset". Frequency drift should be less important due to the short measurement interval. Jitter should be largely irrelevant as it should explain a very small fraction of the overall error only.


Change bootstrap theme

I have been looking Twitter Bootstrap themes in Wrapbootstrap and I wonder if those themes are compatible with Yiistrap or not. Will it require a lot of work to use those themes with Yiistrap? Or can we just overwrite files in 'assets' folder?

Setup
Download the latest release from Yii extensions by following the link below:
http://www.yiiframework.com/extension/bootstrap/
yii-bootstrap-2.1.0.r355.zip
Unzip the extension under protected/extensions/bootstrap and modify your application configuration accordingly:
If you wish to use the provided Bootstrap theme copy the theme directory to your themes directory.
And rename the theme to boostrap: okokok
// Define a path alias for the Bootstrap extension as it's used internally.
// In this example we assume that you unzipped the extension under protected/extensions.
Yii::setPathOfAlias('bootstrap', dirname(FILE).'/../extensions/bootstrap');
return array(
'theme'=>'bootstrap', // requires you to copy the theme under your themes directory
'modules'=>array(
'gii'=>array(
'generatorPaths'=>array(
'bootstrap.gii',
),
),
),
'components'=>array(
'bootstrap'=>array(
'class'=>'bootstrap.components.Bootstrap',
),
),
);
You're done! Now you can start using Bootstrap in your application. For examples on how to use the widgets please visit the docs.

@hdushku you are mixing yiistrap with my old yii-bootstrap extension.
@realtebo & @nek-v: add the theme stylesheet in your web under css and register it through CClientScript in your layout like so:
<?php Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl . "/css/theme.css") ?>

Sorry for the long delay in answering, I must have overlooked this issue.


Renamed codespell.py to commentspellcheck.py

Please rename to use underscore to separate words (per PEP8 guide for module names).

done


feat: implement rainbow spinner

fixes: #23

Pull Request Test Coverage Report for Build 107

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
7 unchanged lines in 6 files lost coverage.
Overall coverage decreased (-0.1%) to 81.373%

Files with Coverage Reduction
New Missed Lines
%

src/components/Badge/index.js
1
87.5%

src/components/Avatar/avatarContent.js
1
96.88%

src/components/Card/headerTitle.js
1
71.43%

src/components/Card/actions.js
1
71.43%

src/components/Card/footer.js
1
77.78%

src/components/Application/index.js
2
50.0%

Totals

Change from base Build 86:
-0.1%

Covered Lines:
444

Relevant Lines:
533

💛  - Coveralls


[iOS] copyRootApp runs a second time on the second launch of the application, overwriting updates

Expected Behaviour
The copyRootApp operation should not overwrite any content in the sync'd directory on subsequent runs of the app, assuming the app's version has not increased.
Actual Behaviour
On the second run of an app that calls .sync() with copyRootApp: true set on startup, the copyRootApp operation will be performed again unnecessarily, effectively overwriting any changes that were made in the sync'd directory during the first run of the app.
Reproduce Scenario (including but not limited to)
This issue can be reproduced with this basic app repository: https://github.com/blefebvre/phonegap-plugin-contentsync-bugs
It has been reproduced successfully on iOS 11.1, 10.3, and 10.2.
Steps to Reproduce

clone this repo: https://github.com/blefebvre/phonegap-plugin-contentsync-bugs
prepare the iOS platform: phonegap prepare ios
open the iOS project in Xcode: open platforms/ios/helloworld.xcworkspace/
run the app from Xcode.
the first time you run the app you will notice (in the logs) that it performs the copyRootApp operation. check for the text "Copying Root App" in the Xcode console.
run the app again from Xcode.
check again for the text "Copying Root App". a few lines above it, note the result of the version check that is being done:

2017-11-09 16:31:49.340750-0500 helloworld[10506:522159] previous version (null)
2017-11-09 16:31:49.340873-0500 helloworld[10506:522159] current version 1.0.5
2017-11-09 16:31:49.341759-0500 helloworld[10506:522159] current version is newer than previous version

since 1.0.5 (in my app's case) is considered to be "higher" than null, the copyRootApp operation will be performed again.

Platform and Version (eg. Android 5.0 or iOS 9.2.1)
Tested on iOS 11.1, 10.3, and 10.2. Not an issue on Android.
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
n/a
Cordova CLI version and cordova platform version
phonegap -v: 7.1.1

phonegap platform version ios: 4.3.1

Plugin version
phonegap-plugin-contentsync 1.4.0 "content-sync"

Sample Code that illustrates the problem
https://github.com/blefebvre/phonegap-plugin-contentsync-bugs
Logs taken while reproducing problem
Included above.

@blefebvre can you try this branch to see if it fixes your problem?
https://github.com/phonegap/phonegap-plugin-contentsync/pull/169

@blefebvre this might be a duplicate of #166

@macdonst looks to me like the code in #169 is already in master (68b70d).

I should have mentioned that on run 3 (and beyond) of the app, this issue does not occur since the previousVersion has been set at this point (via hasAppBeenUpdated()), so the comparison works as expected:
2017-11-09 16:53:46.663171-0500 helloworld[11217:617981] previous version 1.0.5
2017-11-09 16:53:46.663258-0500 helloworld[11217:617981] current version 1.0.5

Fixed in 1.4.1


bundler want to install win32 gem for watir

hi
running ubuntu 11.10 and have issue with the bundler to resolve the dependencies.
please see output below, any input is helpful, eager to test your work.
thanks in advance.
# sudo install bundle

skipped...
Installing win32-api (1.4.8) with native extensions /usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:533:in
`build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/usr/bin/ruby1.8 extconf.rb
checking for strncpy_s()... no
creating Makefile

make
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I.  -fPIC -fno-strict-aliasing -g -g -O2  -fPIC   -c win32/api.c
win32/api.c:2:21: fatal error: windows.h: No such file or directory
compilation terminated.
make: *** [api.o] Error 1

Gem files will remain installed in /var/lib/gems/1.8/gems/win32-api-1.4.8 for inspection.

Philipp -
I think the problem here is that bundler is trying to install win32-api on
your Linux machine which makes sense to me why that would fail  :)
The dependency is part of the Watir gem which is used to start up the
browser.  I didn't write word_cloud to be compatible with Linux
installations but I suppose it could easily be made to do so if I had a
Linux machine available.  All that would need to be done is to get Watir to
start up Firefox.  I will see if I can look into this but it will be
difficult for me to test since I'm not on Linux.  Can you use a windows
machine for this?
Alan
On Thu, Mar 1, 2012 at 11:22 PM, Philipp Hunold <
<EMAIL_ADDRESS>
wrote:

hi
running ubuntu 11.10 and have issue with the bundler to resolve the
dependencies.
please see output below, any input is helpful, eager to test your work.
thanks in advance.
sudo install bundle

skipped...
Installing win32-api (1.4.8) with native extensions
/usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:533:in
`build_extensions': ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError)

   /usr/bin/ruby1.8 extconf.rb

checking for strncpy_s()... no
creating Makefile
make
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I.  -fPIC
-fno-strict-aliasing -g -g -O2  -fPIC   -c win32/api.c
win32/api.c:2:21: fatal error: windows.h: No such file or directory
compilation terminated.
make: *** [api.o] Error 1
Gem files will remain installed in /var/lib/gems/1.8/gems/win32-api-1.4.8
for inspection.

Reply to this email directly or view it on GitHub:
https://github.com/abaird/word_cloud/issues/1

Sorry for not replying earlier.
Im a Unix guy so was hoping bundler could resolve the dependency issue,
nevermind it wasnt a good fit. I'm looking for something similar like
Wordpress tag cloud, so I could run it on my ubuntu server and on the fly
with changing data...Wasn't lucky so far to find a fit in ruby.
Thanks for help anyway.
On Mar 2, 2012 9:35 AM, "Alan Baird" <
<EMAIL_ADDRESS>wrote:

Philipp -
I think the problem here is that bundler is trying to install win32-api on
your Linux machine which makes sense to me why that would fail  :)
The dependency is part of the Watir gem which is used to start up the
browser.  I didn't write word_cloud to be compatible with Linux
installations but I suppose it could easily be made to do so if I had a
Linux machine available.  All that would need to be done is to get Watir to
start up Firefox.  I will see if I can look into this but it will be
difficult for me to test since I'm not on Linux.  Can you use a windows
machine for this?
Alan
On Thu, Mar 1, 2012 at 11:22 PM, Philipp Hunold <
<EMAIL_ADDRESS>
wrote:

hi
running ubuntu 11.10 and have issue with the bundler to resolve the
dependencies.
please see output below, any input is helpful, eager to test your work.
thanks in advance.
sudo install bundle

skipped...
Installing win32-api (1.4.8) with native extensions
/usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:533:in
`build_extensions': ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError)

   /usr/bin/ruby1.8 extconf.rb

checking for strncpy_s()... no
creating Makefile
make
gcc -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I.  -fPIC
-fno-strict-aliasing -g -g -O2  -fPIC   -c win32/api.c
win32/api.c:2:21: fatal error: windows.h: No such file or directory
compilation terminated.
make: *** [api.o] Error 1
Gem files will remain installed in /var/lib/gems/1.8/gems/win32-api-1.4.8
for inspection.

Reply to this email directly or view it on GitHub:
https://github.com/abaird/word_cloud/issues/1

Reply to this email directly or view it on GitHub:
https://github.com/abaird/word_cloud/issues/1#issuecomment-4286628


Remove python 2.7 from readme

& bump to python3.8.  We don't mention node LTS 12 or 14 here either, even though it's technically still possible.

@fredvd Volto 14 works fine on Plone 5.2 and Python 2.7 so far. Question here if we list minimal dependencies or the current best practice. Maybe we should say: Python 3.8 and Node 14 (16 for Volto 14) is recommended but we support down to Python 2.7 and Node 12.

Back from vaction and cathing up with saved up work.

question here if we list minimal dependencies or the current best practice.

The question is also which target groups interpret the information in which way. This README is kind of 'developer' marketing.
I think Python2.7 has been bashed/end-of-lifed enough by the Python Community at large to have a negative connotation now.  So I wouldn't mention it near the top of the document. List  best practice / currently active maintained Python versions.
Further down the same main README is a section on suported Node versions. That section also describe the the support for previous Python versions there where there is room to mention the caveats.

It's fine for me if we mention the recommended, but somewhere (in the docs) we should mention all the range and combination possibles (even Plone 4! although in a limited mode)


[Select] Value 0

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
Hello ! I'm using a Select through a TextField as shown bellow:
<TextField
  label='label'
  type="text"
  value={value || ''}
  onChange={handleChange}
  select
  style={{ minWidth: 110, marginTop: 10 }}
    >
      {ratesValues.map((item, rateIndex) => (
          <MenuItem key={rateIndex} value={item.value}>{item.label}</MenuItem>
       ))}
</TextField>

rateValues is an array of items, each item has a label and a value. For example: {label: '50%', value: 0.5}
Switching items works for all items except for the item: {label: '0 %', value: 0}
Indeed, when selecting this particular item, nothing is displayed. I am suspecting that somewhere there is an "if (value)" instead of "if (value !== null)" or whatever.
Expected Behavior 🤔
Selecting an item with value 0 should display its label.
Your Environment 🌎

Tech
Version

Material-UI
v4.9.5

React
6.13.0

Browser
Chrome

The issue was that value={value || ''} returned '' when value was 0.
Closed.


Mode breaks on a list of lists

For example, it can't be used here instead of Ċ↑h because it complains that lazylists aren't hashable
(created by lyxal here)

Lazylists should probably be made hashable then.


Release new version

Can there be a new version released that includes the kebab strings feature?
It's used here: https://github.com/Masterminds/sprig/blob/9f8fceff796fb9f4e992cd2bece016be0121ab74/functions.go#L132
And I'm seeing some cases where Go Modules users get install failures because v1.0.0 of this repo is being installed.

Ah, I forgot to tag it. I'll do it right now. Thanks for your reminder.

@rarkins ToKebabCase is included in v1.2.0. Check it out.

@huandu thanks, I see that v1.0.0 was a release while v1.1.0 and v1.2.0 were just tags - so I missed them. I think the "go get" failures I'm seeing may be because Masterminds/sprig hasn't embraced go modules yet.


Test fixes

CI fails because of #159.
This PR fixes the test setup to actually highlight that failure.

@netdpb The conformance tests suddenly accept DetailMessages with compilation errors. I verified that the compilation errors are reported in analyze, with kind error. I haven't tracked down where they are filtered out.
I don't think https://github.com/eisop/checker-framework/pull/739 is the problem, but that's a possibility.
./gradlew test fails in this PR, so it might be easier to run in #174.

It looks like the compile error may be getting reported under full path but that the conformance-test runner may be looking for errors only in the relative paths:
@@ -73,6 +75,10 @@ public final class ConformanceTestReport {
     report.format(
         "# %,d pass; %,d fail; %,d total; %.1f%% score%n",
         passes, fails, total, 100.0 * passes / total);
+    Set<Path> unknownFilesWithErrors = difference(reportedFactsByFile.keySet(), files);
+    if (!unknownFilesWithErrors.isEmpty()) {
+      throw new RuntimeException("unknown files with errors: " + unknownFilesWithErrors);
+    }
     for (Path file : files) {
       ImmutableListMultimap<Long, ExpectedFact> expectedFactsInFile =
           index(expectedFactsByFile.get(file), Fact::getLineNumber);

java.lang.RuntimeException: unknown files with errors: [, /tmp/tmp.b0K8g39UiV/jspecify-reference-checker/build/conformanceTests/samples/ContainmentExtends.java, /tmp/tmp.b0K8g39UiV/jspecify-reference-checker/build/conformanceTests/samples/TypeVariableUnionNullToObjectUnionNull.java, ...

Ah! I return the first DetailMessage before relativizing!
I'll see whether that fixes things.

@cpovirk Thanks for tracking this down! Relativizing earlier fixes the issue. Should I file against the conformance test suite to make this more robust? Or is this working as intended?

I think the point of that rootDirectory parameter is to relativize. How would you make it more robust?

@cpovirk Thanks for tracking this down! Relativizing earlier fixes the issue. Should I file against the conformance test suite to make this more robust? Or is this working as intended?

I think the point of that rootDirectory parameter is to relativize. How would you make it more robust?

Output diagnostics even if they are not relative to the rootDirectory?
When is it okay for unknownFilesWithErrors from Chris's comment to be non-empty?

@cpovirk Thanks for tracking this down! Relativizing earlier fixes the issue. Should I file against the conformance test suite to make this more robust? Or is this working as intended?

I think the point of that rootDirectory parameter is to relativize. How would you make it more robust?

Output diagnostics even if they are not relative to the rootDirectory? When is it okay for unknownFilesWithErrors from Chris's comment to be non-empty?

It shouldn't ever be. Maybe unexpected errors in unexpected locations (or no location) should cause the runner to throw an exception? I don't want to put those in the test report.
Anyway, feel free to file a separate issue for what to do in that case.

@cpovirk Thanks for tracking this down! Relativizing earlier fixes the issue. Should I file against the conformance test suite to make this more robust? Or is this working as intended?

I think the point of that rootDirectory parameter is to relativize. How would you make it more robust?

Output diagnostics even if they are not relative to the rootDirectory? When is it okay for unknownFilesWithErrors from Chris's comment to be non-empty?

It shouldn't ever be. Maybe unexpected errors in unexpected locations (or no location) should cause the runner to throw an exception? I don't want to put those in the test report.
Anyway, feel free to file a separate issue for what to do in that case.

Filed #176.


cargo xtask release should pull the website repo

Currently it assumes that it's up to date and might create an outdated changelog entry.

Beware: it will also create duplicate changelog posts if given the chance.


Fn fix codetable,dictionary time filter error

Description

Fix code table, column dictionary time filter
Related Issue :

How Has This Been Tested?

Management -> Exploration -> Code table -> check time filter works well
Management -> Exploration -> Column dictionary -> check time filter works ell

Need additional checks?
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

Additional Context

@ufoscw
When i choose only current time or only past time there is no more error.
However filter seems not wokring well.
In the case of choosing only one date every data is returned as a response

@thinkcsww
ok. i will fix it.
and please change label in ColumnDictionary and Code Table's filter.
Created Date -> Update Date

@ufoscw
Modified

deploy to 4


[stable/metrics-server] Update RBAC to handle disabled kubelet read-only port

A disabled kubelet read-only port is the default behaviour in K8S 1.11+
Along with #6620, fixes https://github.com/kubernetes-incubator/metrics-server/issues/77

cc @olemarkus

/assign @unguiculus

Thanks for the PR. I added some change suggestions that unfortunately is most of the PR. But I believe these changes will be more in line with the changes done to future versions of metrics-server.

I'll reduce this PR to only the RBAC change, because as you mention, #6620 handles the rest in a more flexible manner.

CLA now signed

Looks good. There are some PRs in the pipeline for this chart, so you may have to do some merges before this one goes in.

/assign

/ok-to-test

/assign @olemarkus
I squashed & rebased on origin/master, other checks are green but I think a fresh approval may be required

/lgtm


Trailing \ / in directory path

Hi there,
This is very minor, but when there is a \ or / at the end of a path (à la Windows), the path is not recognized and butler won't work.
I believe this is only a bad habit of Windows users... ^^

@mrhelmut using the latest head version, I'm not able to reproduce the bug:

Can you butler upgrade --head and see if it's still a problem?

D:\Butler>butler.exe push "D:\Releases\NeuroVoider_current\Steam_Windows\" flyingoakgames/neurovoider:windows --userversion-file buildnumber.txt

butler.exe: error: required argument 'target' not provided, try --help

@mrhelmut that looks like expected behavior from cmd.exe. The backslash escapes the double-quote that follows, which means that what butler actually receives is:

push
D:\Releases\NeuroVoider_current\Steam_Windows" flyingoakgames/neurovoider:windows --userversion-file buildnumber.txt

Ahah, I feel dumb. ^^ Closing this now.


Configurable, Science Aware Tool for Labelling Clouds

ESIP Member Organization
National Center for Supercomputing Applications (NCSA)
Mentor
Ben Galewsky
Project Idea
Engineer a jupyter notebook that allows researchers to build custom tools to label clouds from Earth Observing Systems such as the Terra Satellite.
Information for students
Just the generally information for students. See ESIP Student Guide
Abstract
Clouds are the greatest source of climate change uncertainty. The twenty years of Terra satellite data gives us an incredible opportunity to train sophisticated models to further understand climate processes. In order to develop these models, we need an extensive set of labelled data based on the various instruments housed on the Terra and Aqua satellites. Labelling clouds can be difficult, especially against and snowy backdrop.
This task can be improved by considering images captured in different wavelengths, or from spatial shifts. Further improvements can be gained by considering the physics of the underlying elements.
We believe that the best way to create labelling tools is to provide a highly customizable platform that can be programmed by researchers using the familiar python and Jupyter Notebook environments. We are working with the geoviews python library to build just such a framework.
There is plenty of data available from Terra and Aqua satellites and this approach could be generalized to many other areas of science.
The general idea is to think through the user experience to give researchers powerful tools to label the clouds. There are multiple images available for a given location on the earth. Users should be able to flip through, overlay, or display them side-by-side. You might want to implement a "Magic Wand" style selection to create a polygon on one layer. Then users could adjust the polygon given pixels found on other layers. Assume that scientists will want to create numeric tools to give more hints based on their knowledge of the physical processes.
Technical stuff
Python, Jupyter Notebooks, Conda
Helpful Experience, but not required!
Geospatial Information Systems (GIS), Javascript
First steps
Try out our demo from the ESIP Winter Meeting on BinderHub
Watch this talk on the importance and challenges of labelling cloud data
Example Images
Here are some examples of images of the same area captured with different instruments or wavelengths.
Learn a bit more about the instruments:

ASTER
CERES
MISR
MODIS
MOPITT

Hi @BenGalewsky just wanted to know if there are any evaluative tasks that I need to do, apart from the ones listed here? Asking in context of GSoC 2020.

Also could you please suggest some active repositories in https://github.com/ESIPFed on which I can start contributing. Thanks :)

@BenGalewsky
Hey! The work going on this organisation seems really interesting. I had a question regarding the above idea. Does it involve exploring and training data or is it more on the lines of building tools which could facilitate others to do ML

The focus of this project is to develop powerful labelling tools to create the training sets needed by climate science. If you want to use them for developing your own models feel free, but that is not part of this project.

Hi @BenGalewsky , I am Punit Galav currently pursuing Masters in Geoinformatics and Natural Resources Engineering of IIT Bombay. I have all the relevant skills required for this project and have studied GIS, Remote sensing of natural resources, Scattering models, Machine learning. I understand the importance of developing such a framework and looking forward to contribute to this project.


Some functions don't work

Hi the integration now registers, the problem is not when I go to turn on the air conditioner after a few seconds it automatically goes back to off

Hi, please check the latest beta version, should be better now. The problem is, that the hOn servers need 3-7 seconds to report the correct state...


The gestures are hard to control

Looks like Flutter's gesture recognizer isn't a good fit for the task. A solution would be to replace it with a custom one.


There's a line between two divs,Some brands have android phones, some don't

You need to zoom 150 percent in debugging to see it

Hello! While we appreciate you opening an issue with us I am going to close this issue and ask that you open a new one that has the issue template filled out please.
Also, if you could provide a sample project that demonstrates the issue that would be very helpful.
Thanks for using Ionic!