mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 04:41:35 +00:00
Compare commits
23 Commits
v7.06.03
...
20250417.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2b7e339ff | ||
|
|
742a6f14fe | ||
|
|
b33c9bc213 | ||
|
|
0af09f7517 | ||
|
|
6113acce66 | ||
|
|
97578029d5 | ||
|
|
f846c81c01 | ||
|
|
13cc34fde6 | ||
|
|
7f90a1a950 | ||
|
|
1b234d5aa7 | ||
|
|
32dc4c9de4 | ||
|
|
a150288a6f | ||
|
|
df053c36a6 | ||
|
|
0d01850356 | ||
|
|
6e9a68627b | ||
|
|
904f743f39 | ||
|
|
64c194e4d0 | ||
|
|
98c7ea08f8 | ||
|
|
a55f065cfb | ||
|
|
8eed07cb2e | ||
|
|
01af866c7b | ||
|
|
614ebd11c5 | ||
|
|
da1266e7cc |
205
.github/workflows/build.yml
vendored
205
.github/workflows/build.yml
vendored
@@ -22,7 +22,7 @@ defaults:
|
|||||||
working-directory: src
|
working-directory: src
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SCRATCH_COUNTER: 13
|
SCRATCH_COUNTER: 14
|
||||||
OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
|
OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
|
||||||
OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
|
OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
|
||||||
OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
|
OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
|
||||||
@@ -88,15 +88,12 @@ jobs:
|
|||||||
goal: build
|
goal: build
|
||||||
arch: Win64
|
arch: Win64
|
||||||
openssl_archs: VC-WIN64A
|
openssl_archs: VC-WIN64A
|
||||||
# disable 3.9 test for now since it's oldest and due
|
#- os: windows-11-arm
|
||||||
# for removal in Oct 2025. We only have 13 jid accounts
|
# jid: 14
|
||||||
# so we need this one off but can re-enable at some point
|
# goal: build
|
||||||
# if we feel the need.
|
# arch: arm64
|
||||||
#- os: ubuntu-24.04
|
# openssl_archs: VC-WIN64-ARM
|
||||||
# goal: test
|
# continue-on-error: true
|
||||||
# python: "3.9"
|
|
||||||
# jid: 11
|
|
||||||
# arch: x86_64
|
|
||||||
- os: ubuntu-24.04
|
- os: ubuntu-24.04
|
||||||
goal: test
|
goal: test
|
||||||
python: "3.10"
|
python: "3.10"
|
||||||
@@ -148,6 +145,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python }}
|
python-version: ${{ matrix.python }}
|
||||||
allow-prereleases: true
|
allow-prereleases: true
|
||||||
|
check-latest: true
|
||||||
|
|
||||||
- name: common variables for all runs
|
- name: common variables for all runs
|
||||||
env:
|
env:
|
||||||
@@ -175,15 +173,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
echo "GAMCFGDIR=${GAMCFGDIR}" >> $GITHUB_ENV
|
echo "GAMCFGDIR=${GAMCFGDIR}" >> $GITHUB_ENV
|
||||||
echo "GAMCFGDIR is: ${GAMCFGDIR}"
|
echo "GAMCFGDIR is: ${GAMCFGDIR}"
|
||||||
if [[ "${RUNNER_OS}" == "macOS" ]]; then
|
export GAMOS=$(echo "$RUNNER_OS" | tr '[:upper:]' '[:lower:]')
|
||||||
GAMOS="macos"
|
|
||||||
elif [[ "${RUNNER_OS}" == "Linux" ]]; then
|
|
||||||
GAMOS="linux"
|
|
||||||
elif [[ "${RUNNER_OS}" == "Windows" ]]; then
|
|
||||||
GAMOS="windows"
|
|
||||||
else
|
|
||||||
GAMOS='unknown'
|
|
||||||
fi
|
|
||||||
echo "GAMOS=${GAMOS}" >> $GITHUB_ENV
|
echo "GAMOS=${GAMOS}" >> $GITHUB_ENV
|
||||||
echo "GAMOS is: ${GAMOS}"
|
echo "GAMOS is: ${GAMOS}"
|
||||||
|
|
||||||
@@ -232,7 +222,7 @@ jobs:
|
|||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
if: runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
with:
|
with:
|
||||||
arch: ${{ matrix.arch }}
|
arch: ${{ runner.arch }}
|
||||||
|
|
||||||
- name: Set Env Variables for build
|
- name: Set Env Variables for build
|
||||||
if: matrix.goal == 'build'
|
if: matrix.goal == 'build'
|
||||||
@@ -242,13 +232,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "We are running on ${RUNNER_OS}"
|
echo "We are running on ${RUNNER_OS}"
|
||||||
LD_LIBRARY_PATH="${OPENSSL_INSTALL_PATH}/lib:${PYTHON_INSTALL_PATH}/lib:/usr/local/lib"
|
LD_LIBRARY_PATH="${OPENSSL_INSTALL_PATH}/lib:${PYTHON_INSTALL_PATH}/lib:/usr/local/lib"
|
||||||
if [[ "${arch}" == "Win64" ]]; then
|
|
||||||
PYEXTERNALS_PATH="amd64"
|
|
||||||
PYBUILDRELEASE_ARCH="x64"
|
|
||||||
GAM_ARCHIVE_ARCH="x86_64"
|
|
||||||
WIX_ARCH="x64"
|
|
||||||
CHOC_OPS=""
|
|
||||||
fi
|
|
||||||
if [[ "${RUNNER_OS}" == "macOS" ]]; then
|
if [[ "${RUNNER_OS}" == "macOS" ]]; then
|
||||||
MAKE=make
|
MAKE=make
|
||||||
MAKEOPT="-j$(sysctl -n hw.logicalcpu)"
|
MAKEOPT="-j$(sysctl -n hw.logicalcpu)"
|
||||||
@@ -266,6 +249,17 @@ jobs:
|
|||||||
MAKE=nmake
|
MAKE=nmake
|
||||||
MAKEOPT=""
|
MAKEOPT=""
|
||||||
PERL="c:\strawberry\perl\bin\perl.exe"
|
PERL="c:\strawberry\perl\bin\perl.exe"
|
||||||
|
if [[ "$RUNNER_ARCH" == "ARM64" ]]; then
|
||||||
|
PYEXTERNALS_PATH="arm64"
|
||||||
|
GAM_ARCHIVE_ARCH="arm64"
|
||||||
|
WIX_ARCH="arm64"
|
||||||
|
CHOC_OPS=""
|
||||||
|
elif [[ "$RUNNER_ARCH" == "X64" ]]; then
|
||||||
|
PYEXTERNALS_PATH="amd64"
|
||||||
|
GAM_ARCHIVE_ARCH="x86_64"
|
||||||
|
WIX_ARCH="x64"
|
||||||
|
CHOC_OPS=""
|
||||||
|
fi
|
||||||
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}"
|
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}"
|
||||||
echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV
|
echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV
|
||||||
echo "GAM_ARCHIVE_ARCH=${GAM_ARCHIVE_ARCH}" >> $GITHUB_ENV
|
echo "GAM_ARCHIVE_ARCH=${GAM_ARCHIVE_ARCH}" >> $GITHUB_ENV
|
||||||
@@ -278,7 +272,6 @@ jobs:
|
|||||||
echo "MAKEOPT=${MAKEOPT}" >> $GITHUB_ENV
|
echo "MAKEOPT=${MAKEOPT}" >> $GITHUB_ENV
|
||||||
echo "PERL=${PERL}" >> $GITHUB_ENV
|
echo "PERL=${PERL}" >> $GITHUB_ENV
|
||||||
echo "PYEXTERNALS_PATH=${PYEXTERNALS_PATH}" >> $GITHUB_ENV
|
echo "PYEXTERNALS_PATH=${PYEXTERNALS_PATH}" >> $GITHUB_ENV
|
||||||
echo "PYBUILDRELEASE_ARCH=${PYBUILDRELEASE_ARCH}" >> $GITHUB_ENV
|
|
||||||
echo "openssl_archs=${openssl_archs}" >> $GITHUB_ENV
|
echo "openssl_archs=${openssl_archs}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Get latest stable OpenSSL source
|
- name: Get latest stable OpenSSL source
|
||||||
@@ -293,29 +286,21 @@ jobs:
|
|||||||
git checkout "${LATEST_STABLE_TAG}"
|
git checkout "${LATEST_STABLE_TAG}"
|
||||||
export COMPILED_OPENSSL_VERSION=${LATEST_STABLE_TAG:8} # Trim the openssl- prefix
|
export COMPILED_OPENSSL_VERSION=${LATEST_STABLE_TAG:8} # Trim the openssl- prefix
|
||||||
echo "COMPILED_OPENSSL_VERSION=${COMPILED_OPENSSL_VERSION}" >> $GITHUB_ENV
|
echo "COMPILED_OPENSSL_VERSION=${COMPILED_OPENSSL_VERSION}" >> $GITHUB_ENV
|
||||||
if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
|
|
||||||
for openssl_arch in $openssl_archs; do
|
|
||||||
ssldir="${OPENSSL_SOURCE_PATH}-${openssl_arch}"
|
|
||||||
mkdir -v "${ssldir}"
|
|
||||||
cp -vrf ${OPENSSL_SOURCE_PATH}/* "${ssldir}/"
|
|
||||||
done
|
|
||||||
rm -vrf "${OPENSSL_SOURCE_PATH}"
|
|
||||||
else
|
|
||||||
mv -v "${OPENSSL_SOURCE_PATH}" "${OPENSSL_SOURCE_PATH}-${openssl_archs}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Windows NASM Install
|
- name: Windows NASM Install
|
||||||
uses: ilammy/setup-nasm@v1
|
uses: ilammy/setup-nasm@v1
|
||||||
if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && runner.os == 'Windows' && runner.arch == 'X64' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: Config OpenSSL
|
- name: Config OpenSSL
|
||||||
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
for openssl_arch in $openssl_archs; do
|
cd "${OPENSSL_SOURCE_PATH}"
|
||||||
cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
|
# TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed.
|
||||||
# --libdir=lib is needed so Python can find OpenSSL libraries
|
if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
|
||||||
"${PERL}" ./Configure "${openssl_arch}" --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
|
export CFLAGS=-DNO_INTERLOCKEDOR64
|
||||||
done
|
fi
|
||||||
|
# --libdir=lib is needed so Python can find OpenSSL libraries
|
||||||
|
"${PERL}" ./Configure "${openssl_arch}" --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
|
||||||
|
|
||||||
- name: Rename GNU link on Windows
|
- name: Rename GNU link on Windows
|
||||||
if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
@@ -326,53 +311,30 @@ jobs:
|
|||||||
- name: Make OpenSSL
|
- name: Make OpenSSL
|
||||||
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
for openssl_arch in $openssl_archs; do
|
cd "${OPENSSL_SOURCE_PATH}"
|
||||||
cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
|
# TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed.
|
||||||
$MAKE "${MAKEOPT}"
|
if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
|
||||||
done
|
export CFLAGS=-DNO_INTERLOCKEDOR64
|
||||||
|
fi
|
||||||
|
$MAKE "$MAKEOPT"
|
||||||
|
|
||||||
- name: Install OpenSSL
|
- name: Install OpenSSL
|
||||||
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
|
cd "${OPENSSL_SOURCE_PATH}"
|
||||||
for openssl_arch in $openssl_archs; do
|
# install_sw saves us ages processing man pages :-)
|
||||||
cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_arch}"
|
# $MAKE install_sw
|
||||||
# install_sw saves us ages processing man pages :-)
|
$MAKE install
|
||||||
$MAKE install_sw
|
#if [[ "${RUNNER_OS}" != "Windows" ]]; then
|
||||||
mv -v "${OPENSSL_INSTALL_PATH}" "${GITHUB_WORKSPACE}/bin/ssl-${openssl_arch}"
|
echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
|
||||||
done
|
#fi
|
||||||
mkdir -vp "${OPENSSL_INSTALL_PATH}/lib"
|
|
||||||
mkdir -vp "${OPENSSL_INSTALL_PATH}/bin"
|
|
||||||
for archlib in libcrypto.3.dylib libssl.3.dylib libcrypto.a libssl.a; do
|
|
||||||
lipo -create "${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/lib/${archlib}" \
|
|
||||||
"${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64/lib/${archlib}" \
|
|
||||||
-output "${GITHUB_WORKSPACE}/bin/ssl/lib/${archlib}"
|
|
||||||
done
|
|
||||||
mv ${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/include ${GITHUB_WORKSPACE}/bin/ssl/
|
|
||||||
lipo -create "${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64/bin/openssl" \
|
|
||||||
"${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64/bin/openssl" \
|
|
||||||
-output "${GITHUB_WORKSPACE}/bin/ssl/bin/openssl"
|
|
||||||
rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64
|
|
||||||
rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64
|
|
||||||
else
|
|
||||||
cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_archs}"
|
|
||||||
# install_sw saves us ages processing man pages :-)
|
|
||||||
$MAKE install_sw
|
|
||||||
fi
|
|
||||||
if [[ "${RUNNER_OS}" != "Windows" ]]; then
|
|
||||||
echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
|
echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
|
||||||
case $arch in
|
case $RUNNER_ARCH in
|
||||||
universal2)
|
X64)
|
||||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include -arch arm64 -arch x86_64 ${CFLAGS}" >> $GITHUB_ENV
|
|
||||||
echo "ARCHFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
|
|
||||||
;;
|
|
||||||
x86_64)
|
|
||||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
||||||
echo "ARCHFLAGS=-arch x86_64" >> $GITHUB_ENV
|
echo "ARCHFLAGS=-arch x86_64" >> $GITHUB_ENV
|
||||||
;;
|
;;
|
||||||
aarch64)
|
ARM64)
|
||||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
||||||
echo "ARCHFLAGS=-arch arm64" >> $GITHUB_ENV
|
echo "ARCHFLAGS=-arch arm64" >> $GITHUB_ENV
|
||||||
;;
|
;;
|
||||||
@@ -399,18 +361,12 @@ jobs:
|
|||||||
if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
cd "${PYTHON_SOURCE_PATH}"
|
cd "${PYTHON_SOURCE_PATH}"
|
||||||
if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
|
|
||||||
extra_args=( "--enable-universalsdk" "--with-universal-archs=universal2" )
|
|
||||||
else
|
|
||||||
extra_args=( )
|
|
||||||
fi
|
|
||||||
./configure --with-openssl="${OPENSSL_INSTALL_PATH}" \
|
./configure --with-openssl="${OPENSSL_INSTALL_PATH}" \
|
||||||
--prefix="${PYTHON_INSTALL_PATH}" \
|
--prefix="${PYTHON_INSTALL_PATH}" \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
--with-ensurepip=upgrade \
|
--with-ensurepip=upgrade \
|
||||||
--enable-optimizations \
|
--enable-optimizations \
|
||||||
--with-lto \
|
--with-lto || : # exit 0
|
||||||
"${extra_args[@]}" || : # exit 0
|
|
||||||
cat config.log
|
cat config.log
|
||||||
|
|
||||||
- name: Windows Get External Python deps
|
- name: Windows Get External Python deps
|
||||||
@@ -430,10 +386,15 @@ jobs:
|
|||||||
Remove-Item -recurse -force "${env:OPENSSL_EXT_PATH}*"
|
Remove-Item -recurse -force "${env:OPENSSL_EXT_PATH}*"
|
||||||
# Emulate what this script does:
|
# Emulate what this script does:
|
||||||
# https://github.com/python/cpython/blob/main/PCbuild/openssl.vcxproj
|
# https://github.com/python/cpython/blob/main/PCbuild/openssl.vcxproj
|
||||||
$env:OPENSSL_EXT_TARGET_PATH = "${env:OPENSSL_EXT_PATH}${env:PYEXTERNALS_PATH}"
|
if (${env:RUNNER_ARCH} -eq "X64") {
|
||||||
|
$env:ossl_path = "amd64"
|
||||||
|
} elseif (${env:RUNNER_ARCH} -eq "ARM64") {
|
||||||
|
$env:ossl_path = "arm64"
|
||||||
|
}
|
||||||
|
$env:OPENSSL_EXT_TARGET_PATH = "${env:OPENSSL_EXT_PATH}${env:ossl_path}"
|
||||||
echo "Copying our OpenSSL to ${env:OPENSSL_EXT_TARGET_PATH}"
|
echo "Copying our OpenSSL to ${env:OPENSSL_EXT_TARGET_PATH}"
|
||||||
mkdir "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
|
mkdir "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
|
||||||
Copy-Item -Path "${env:GITHUB_WORKSPACE}/src/openssl-${env:openssl_archs}\LICENSE.txt" -Destination "${env:OPENSSL_EXT_TARGET_PATH}\LICENSE" -Verbose
|
Copy-Item -Path "${env:OPENSSL_SOURCE_PATH}\LICENSE.txt" -Destination "${env:OPENSSL_EXT_TARGET_PATH}\LICENSE"
|
||||||
cp -v "$env:OPENSSL_INSTALL_PATH\lib\*" "${env:OPENSSL_EXT_TARGET_PATH}"
|
cp -v "$env:OPENSSL_INSTALL_PATH\lib\*" "${env:OPENSSL_EXT_TARGET_PATH}"
|
||||||
cp -v "$env:OPENSSL_INSTALL_PATH\bin\*" "${env:OPENSSL_EXT_TARGET_PATH}"
|
cp -v "$env:OPENSSL_INSTALL_PATH\bin\*" "${env:OPENSSL_EXT_TARGET_PATH}"
|
||||||
cp -v "$env:OPENSSL_INSTALL_PATH\include\openssl\*" "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
|
cp -v "$env:OPENSSL_INSTALL_PATH\include\openssl\*" "${env:OPENSSL_EXT_TARGET_PATH}\include\openssl\"
|
||||||
@@ -454,8 +415,15 @@ jobs:
|
|||||||
cd "${env:PYTHON_SOURCE_PATH}"
|
cd "${env:PYTHON_SOURCE_PATH}"
|
||||||
# We need out custom openssl.props which uses OpenSSL 3 DLL names
|
# We need out custom openssl.props which uses OpenSSL 3 DLL names
|
||||||
Copy-Item -Path "${env:GITHUB_WORKSPACE}\src\tools\openssl.props" -Destination PCBuild\ -Verbose
|
Copy-Item -Path "${env:GITHUB_WORKSPACE}\src\tools\openssl.props" -Destination PCBuild\ -Verbose
|
||||||
echo "Building for ${env:PYBUILDRELEASE_ARCH}..."
|
if (${env:RUNNER_ARCH} -eq "X64") {
|
||||||
PCBuild\build.bat -m --pgo -c Release -p "${env:PYBUILDRELEASE_ARCH}"
|
$env:arch = "x64"
|
||||||
|
PCBuild\build.bat -c Release -p $env:arch --pgo
|
||||||
|
} elseif (${env:RUNNER_ARCH} -eq "ARM64") {
|
||||||
|
$env:arch = "ARM64"
|
||||||
|
# TODO: figure out why Windows ARM64 isn't compat with PGO optimiazation
|
||||||
|
# causes 10-20% slowdown in Python
|
||||||
|
PCBuild\build.bat -c Release -p $env:arch
|
||||||
|
}
|
||||||
|
|
||||||
- name: Mac/Linux Build Python
|
- name: Mac/Linux Build Python
|
||||||
if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
if: matrix.goal == 'build' && runner.os != 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
@@ -479,6 +447,11 @@ jobs:
|
|||||||
"${PYTHON}" -V
|
"${PYTHON}" -V
|
||||||
"${PYTHON}" -c "import ssl; print(f'Using {ssl.OPENSSL_VERSION}')"
|
"${PYTHON}" -c "import ssl; print(f'Using {ssl.OPENSSL_VERSION}')"
|
||||||
|
|
||||||
|
- name: Windows ARM Install rust and cargo
|
||||||
|
if: matrix.goal == 'build' && runner.os == 'Windows' && runner.arch == 'ARM64' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
choco install rust
|
||||||
|
|
||||||
- name: Upgrade pip, wheel, etc
|
- name: Upgrade pip, wheel, etc
|
||||||
run: |
|
run: |
|
||||||
curl $curl_retry -O https://bootstrap.pypa.io/get-pip.py
|
curl $curl_retry -O https://bootstrap.pypa.io/get-pip.py
|
||||||
@@ -489,37 +462,14 @@ jobs:
|
|||||||
|
|
||||||
- name: Install pip requirements
|
- name: Install pip requirements
|
||||||
run: |
|
run: |
|
||||||
|
# rust cargo needs this to compile
|
||||||
|
export OPENSSL_DIR="$OPENSSL_INSTALL_PATH"
|
||||||
echo "before anything..."
|
echo "before anything..."
|
||||||
"${PYTHON}" -m pip list
|
"${PYTHON}" -m pip list
|
||||||
if ([ "${RUNNER_OS}" == "macOS" ] && [ "$arch" == "universal2" ]); then
|
"${PYTHON}" -m pip install --upgrade -r requirements.txt
|
||||||
# cffi is a dep of cryptography and doesn't ship
|
echo "after requirements..."
|
||||||
# a universal2 wheel so we must build one ourself :-/
|
"${PYTHON}" -m pip list
|
||||||
export CFLAGS="-arch x86_64 -arch arm64"
|
"${PYTHON}" -m pip install --force-reinstall --no-deps --upgrade cryptography
|
||||||
export ARCHFLAGS="-arch x86_64 -arch arm64"
|
|
||||||
"${PYTHON}" -m pip install --upgrade --force-reinstall --no-binary :all: \
|
|
||||||
--no-cache-dir --no-deps --use-pep517 \
|
|
||||||
--use-feature=no-binary-enable-wheel-cache \
|
|
||||||
cffi
|
|
||||||
echo "before cryptography..."
|
|
||||||
"${PYTHON}" -m pip list
|
|
||||||
# cryptography has a universal2 wheel but getting it installed
|
|
||||||
# on x86-64 MacOS is a royal pain in the keester.
|
|
||||||
"${PYTHON}" -m pip download --only-binary :all: \
|
|
||||||
--dest . \
|
|
||||||
--no-cache \
|
|
||||||
--no-deps \
|
|
||||||
--platform macosx_10_15_universal2 \
|
|
||||||
cryptography
|
|
||||||
"${PYTHON}" -m pip install --force-reinstall --no-deps cryptography*.whl
|
|
||||||
echo "after cryptography..."
|
|
||||||
"${PYTHON}" -m pip list
|
|
||||||
"${PYTHON}" -m pip install --upgrade --no-binary :all: -r requirements.txt
|
|
||||||
else
|
|
||||||
"${PYTHON}" -m pip install --upgrade -r requirements.txt
|
|
||||||
echo "after requirements..."
|
|
||||||
"${PYTHON}" -m pip list
|
|
||||||
"${PYTHON}" -m pip install --force-reinstall --no-deps --upgrade cryptography
|
|
||||||
fi
|
|
||||||
echo "after everything..."
|
echo "after everything..."
|
||||||
"${PYTHON}" -m pip list
|
"${PYTHON}" -m pip list
|
||||||
|
|
||||||
@@ -534,14 +484,7 @@ jobs:
|
|||||||
# remove pre-compiled bootloaders so we fail if bootloader compile fails
|
# remove pre-compiled bootloaders so we fail if bootloader compile fails
|
||||||
rm -rvf PyInstaller/bootloader/*-*/*
|
rm -rvf PyInstaller/bootloader/*-*/*
|
||||||
cd bootloader
|
cd bootloader
|
||||||
export PYINSTALLER_BUILD_ARGS=""
|
"${PYTHON}" ./waf all
|
||||||
case "${arch}" in
|
|
||||||
"Win64")
|
|
||||||
export PYINSTALLER_BUILD_ARGS="--target-arch=64bit"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "PyInstaller build arguments: ${PYINSTALLER_BUILD_ARGS}"
|
|
||||||
"${PYTHON}" ./waf all $PYINSTALLER_BUILD_ARGS
|
|
||||||
cd ..
|
cd ..
|
||||||
echo "---- Installing PyInstaller ----"
|
echo "---- Installing PyInstaller ----"
|
||||||
"${PYTHON}" -m pip install .
|
"${PYTHON}" -m pip install .
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
7.06.05
|
||||||
|
|
||||||
|
Updated code in `gam delete|update chromepolicy` to handle the `policyTargetKey[additionalTargetKeys]`
|
||||||
|
field in a more general manner for future use.
|
||||||
|
|
||||||
|
7.06.04
|
||||||
|
|
||||||
|
Fixed bug in `gam report <ActivityApplictionName>` where a report with no activities
|
||||||
|
was not displaying any output.
|
||||||
|
|
||||||
7.06.03
|
7.06.03
|
||||||
|
|
||||||
Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
|
Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||||
__version__ = '7.06.03'
|
__version__ = '7.06.05'
|
||||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
#pylint: disable=wrong-import-position
|
#pylint: disable=wrong-import-position
|
||||||
@@ -14145,6 +14145,7 @@ def doReport():
|
|||||||
startDateTime += oneDay
|
startDateTime += oneDay
|
||||||
csvPF.writeCSVfile(f'Customer Report - {tryDate}')
|
csvPF.writeCSVfile(f'Customer Report - {tryDate}')
|
||||||
else: # activityReports
|
else: # activityReports
|
||||||
|
csvPF.SetTitles('name')
|
||||||
if addCSVData:
|
if addCSVData:
|
||||||
csvPF.AddTitles(sorted(addCSVData.keys()))
|
csvPF.AddTitles(sorted(addCSVData.keys()))
|
||||||
if select:
|
if select:
|
||||||
@@ -14303,8 +14304,7 @@ def doReport():
|
|||||||
row = {'name': 'NoActivities'}
|
row = {'name': 'NoActivities'}
|
||||||
if addCSVData:
|
if addCSVData:
|
||||||
row.update(addCSVData)
|
row.update(addCSVData)
|
||||||
csvPF.WriteRowTitles(row)
|
csvPF.WriteRowTitles(row)
|
||||||
csvPF.SetSortTitles(['name'])
|
|
||||||
else:
|
else:
|
||||||
if eventRowFilter:
|
if eventRowFilter:
|
||||||
csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
|
csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
|
||||||
@@ -28090,10 +28090,12 @@ def updatePolicyRequests(body, targetResource, printer_id, app_id):
|
|||||||
for request in body['requests']:
|
for request in body['requests']:
|
||||||
request.setdefault('policyTargetKey', {})
|
request.setdefault('policyTargetKey', {})
|
||||||
request['policyTargetKey']['targetResource'] = targetResource
|
request['policyTargetKey']['targetResource'] = targetResource
|
||||||
if app_id:
|
if app_id or printer_id:
|
||||||
request['policyTargetKey']['additionalTargetKeys'] = {'app_id': app_id}
|
request['policyTargetKey'].setdefault('additionalTargetKeys', {})
|
||||||
elif printer_id:
|
if app_id:
|
||||||
request['policyTargetKey']['additionalTargetKeys'] = {'printer_id': printer_id}
|
request['policyTargetKey']['additionalTargetKeys']['app_id'] = app_id
|
||||||
|
elif printer_id:
|
||||||
|
request['policyTargetKey']['additionalTargetKeys']['printer_id'] = printer_id
|
||||||
|
|
||||||
# gam delete chromepolicy
|
# gam delete chromepolicy
|
||||||
# (<SchemaName> [<JSONData>])+
|
# (<SchemaName> [<JSONData>])+
|
||||||
@@ -28126,9 +28128,9 @@ def doDeleteChromePolicy():
|
|||||||
if checkArgumentPresent('json'):
|
if checkArgumentPresent('json'):
|
||||||
jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
|
jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
|
||||||
if 'additionalTargetKeys' in jsonData:
|
if 'additionalTargetKeys' in jsonData:
|
||||||
body['requests'][-1].setdefault('policyTargetKey', {})
|
body['requests'][-1].setdefault('policyTargetKey', {'additionalTargetKeys': {}})
|
||||||
for atk in jsonData['additionalTargetKeys']:
|
for atk in jsonData['additionalTargetKeys']:
|
||||||
body['requests'][-1]['policyTargetKey']['additionalTargetKeys'] = {atk['name']: atk['value']}
|
body['requests'][-1]['policyTargetKey']['additionalTargetKeys'][atk['name']] = atk['value']
|
||||||
checkPolicyArgs(targetResource, printer_id, app_id)
|
checkPolicyArgs(targetResource, printer_id, app_id)
|
||||||
count = len(body['requests'])
|
count = len(body['requests'])
|
||||||
if count != 1:
|
if count != 1:
|
||||||
@@ -28281,9 +28283,9 @@ def doUpdateChromePolicy():
|
|||||||
jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
|
jsonData = getJSON(['direct', 'name', 'orgUnitPath', 'parentOrgUnitPath', 'group'])
|
||||||
schemaNameAppId = schemaName
|
schemaNameAppId = schemaName
|
||||||
if 'additionalTargetKeys' in jsonData:
|
if 'additionalTargetKeys' in jsonData:
|
||||||
body['requests'][-1].setdefault('policyTargetKey', {})
|
body['requests'][-1].setdefault('policyTargetKey', {'additionalTargetKeys': {}})
|
||||||
for atk in jsonData['additionalTargetKeys']:
|
for atk in jsonData['additionalTargetKeys']:
|
||||||
body['requests'][-1]['policyTargetKey']['additionalTargetKeys'] = {atk['name']: atk['value']}
|
body['requests'][-1]['policyTargetKey']['additionalTargetKeys'][atk['name']] = atk['value']
|
||||||
if atk['name'] == 'app_id':
|
if atk['name'] == 'app_id':
|
||||||
schemaNameAppId += f"({atk['value']})"
|
schemaNameAppId += f"({atk['value']})"
|
||||||
schemaNameList[-1] = schemaNameAppId
|
schemaNameList[-1] = schemaNameAppId
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ chardet
|
|||||||
cryptography
|
cryptography
|
||||||
distro; sys_platform=='linux'
|
distro; sys_platform=='linux'
|
||||||
filelock
|
filelock
|
||||||
google-api-python-client>=2.1
|
google-api-python-client>=2.166.0
|
||||||
google-auth-httplib2
|
google-auth-httplib2>=0.2.0
|
||||||
google-auth-oauthlib>=0.4.1
|
google-auth-oauthlib>=1.2.1
|
||||||
google-auth>=2.3.2
|
google-auth>=2.38.0
|
||||||
httplib2>=0.17.0
|
httplib2>=0.22.0
|
||||||
lxml
|
lxml
|
||||||
passlib>=1.7.2
|
passlib>=1.7.4
|
||||||
pathvalidate
|
pathvalidate
|
||||||
python-dateutil
|
python-dateutil
|
||||||
yubikey-manager[yubikey]>=5.0
|
yubikey-manager[yubikey]>=5.6.1
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ Typically, you will enclose the entire list in double quotes and quote each item
|
|||||||
* ```"item item item"```
|
* ```"item item item"```
|
||||||
- Items, separated by commas, with spaces, commas or single quotes in the items themselves
|
- Items, separated by commas, with spaces, commas or single quotes in the items themselves
|
||||||
* ```"'it em','it,em',\"it'em\""``` - Linux, MacOS, Windows Command Prompt
|
* ```"'it em','it,em',\"it'em\""``` - Linux, MacOS, Windows Command Prompt
|
||||||
* ```"'it em','it,em',`"it'em`""``` - Windows Power Shell
|
* ```"'it\ em','it,em',`"it\'em`""``` - Windows Power Shell
|
||||||
- Items, separated by spaces, with spaces, commas or single quotes in the items themselves
|
- Items, separated by spaces, with spaces, commas or single quotes in the items themselves
|
||||||
* ```"'it em' 'it,em' \"it'em\""``` - Linux, MacOS, Windows Command Prompt
|
* ```"'it em' 'it,em' \"it'em\""``` - Linux, MacOS, Windows Command Prompt
|
||||||
* ```"'it em' 'it,em' `"it'em`""``` - Windows Power Shell
|
* ```"'it\ em' 'it,em' `"it\'em`""``` - Windows Power Shell
|
||||||
|
|
||||||
Typical places where these rules apply are lists of OUs and Contact Groups.
|
Typical places where these rules apply are lists of OUs and Contact Groups.
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,16 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|||||||
|
|
||||||
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
||||||
|
|
||||||
|
### 7.06.05
|
||||||
|
|
||||||
|
Updated code in `gam delete|update chromepolicy` to handle the `policyTargetKey[additionalTargetKeys]`
|
||||||
|
field in a more general manner for future use.
|
||||||
|
|
||||||
|
### 7.06.04
|
||||||
|
|
||||||
|
Fixed bug in `gam report <ActivityApplictionName>` where a report with no activities
|
||||||
|
was not displaying any output.
|
||||||
|
|
||||||
### 7.06.03
|
### 7.06.03
|
||||||
|
|
||||||
Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
|
Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that caused a trap
|
||||||
|
|||||||
@@ -251,10 +251,10 @@ writes the credentials into the file oauth2.txt.
|
|||||||
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||||
admin@server:/Users/admin$ gam version
|
admin@server:/Users/admin$ gam version
|
||||||
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
MacOS Sequoia 15.4 x86_64
|
MacOS Sequoia 15.4.1 x86_64
|
||||||
Path: /Users/admin/bin/gam7
|
Path: /Users/admin/bin/gam7
|
||||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
|
|
||||||
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
C:\>del C:\GAMConfig\oauth2.txt
|
C:\>del C:\GAMConfig\oauth2.txt
|
||||||
C:\>gam version
|
C:\>gam version
|
||||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM - pythonsource
|
GAM 7.06.05 - https://github.com/GAM-team/GAM - pythonsource
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
Windows-10-10.0.17134 AMD64
|
Windows-10-10.0.17134 AMD64
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
- [Display Shared Drive access for specific Shared Drives](#display-shared-drive-access-for-specific-shared-drives)
|
- [Display Shared Drive access for specific Shared Drives](#display-shared-drive-access-for-specific-shared-drives)
|
||||||
- [Display Shared Drive access for selected Shared Drives](#display-shared-drive-access-for-selected-shared-drives)
|
- [Display Shared Drive access for selected Shared Drives](#display-shared-drive-access-for-selected-shared-drives)
|
||||||
- [Display members of all Shared Drives](#display-members-of-all-shared-drives)
|
- [Display members of all Shared Drives](#display-members-of-all-shared-drives)
|
||||||
|
- [Display external members of all Shared Drives](#display-external-members-of-all-shared-drives)
|
||||||
- [Display ACLs for Shared Drives with no organizers](#display-acls-for-shared-drives-with-no-organizers)
|
- [Display ACLs for Shared Drives with no organizers](#display-acls-for-shared-drives-with-no-organizers)
|
||||||
- [Display ACLs for Shared Drives with all organizers outside of your domain](#display-acls-for-shared-drives-with-all-organizers-outside-of-your-domain)
|
- [Display ACLs for Shared Drives with all organizers outside of your domain](#display-acls-for-shared-drives-with-all-organizers-outside-of-your-domain)
|
||||||
- [Display ACLs for Shared Drives with all ACLs outside of your domain](#display-acls-for-shared-drives-with-all-acls-outside-of-your-domain)
|
- [Display ACLs for Shared Drives with all ACLs outside of your domain](#display-acls-for-shared-drives-with-all-acls-outside-of-your-domain)
|
||||||
@@ -569,6 +570,12 @@ The `quotechar <Character>` option allows you to choose an alternate quote chara
|
|||||||
gam config csv_output_header_drop_filter "User,createdTime,permission.photoLink,permission.permissionDetails" redirect csv ./SharedDriveMembers.csv print shareddriveacls oneitemperrow
|
gam config csv_output_header_drop_filter "User,createdTime,permission.photoLink,permission.permissionDetails" redirect csv ./SharedDriveMembers.csv print shareddriveacls oneitemperrow
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Display external members of all Shared Drives
|
||||||
|
Replace `<InternalDomainList>` with your list of internal domains.
|
||||||
|
```
|
||||||
|
gam config csv_output_header_drop_filter "User,createdTime,permission.photoLink,permission.permissionDetails" redirect csv ./SharedDriveExternalMembers.csv print shareddriveacls pm notdomainlist <InternalDomainList> em oneitemperrow
|
||||||
|
```
|
||||||
|
|
||||||
## Display Shared Drive access for selected Shared Drives
|
## Display Shared Drive access for selected Shared Drives
|
||||||
```
|
```
|
||||||
gam [<UserTypeEntity>] show teamdriveacls
|
gam [<UserTypeEntity>] show teamdriveacls
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ k
|
|||||||
Print the current version of Gam with details
|
Print the current version of Gam with details
|
||||||
```
|
```
|
||||||
gam version
|
gam version
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
MacOS Sequoia 15.4 x86_64
|
MacOS Sequoia 15.4.1 x86_64
|
||||||
Path: /Users/Admin/bin/gam7
|
Path: /Users/Admin/bin/gam7
|
||||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
Time: 2023-06-02T21:10:00-07:00
|
Time: 2023-06-02T21:10:00-07:00
|
||||||
@@ -16,10 +16,10 @@ Time: 2023-06-02T21:10:00-07:00
|
|||||||
Print the current version of Gam with details and time offset information
|
Print the current version of Gam with details and time offset information
|
||||||
```
|
```
|
||||||
gam version timeoffset
|
gam version timeoffset
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
MacOS Sequoia 15.4 x86_64
|
MacOS Sequoia 15.4.1 x86_64
|
||||||
Path: /Users/Admin/bin/gam7
|
Path: /Users/Admin/bin/gam7
|
||||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
Your system time differs from www.googleapis.com by less than 1 second
|
Your system time differs from www.googleapis.com by less than 1 second
|
||||||
@@ -28,10 +28,10 @@ Your system time differs from www.googleapis.com by less than 1 second
|
|||||||
Print the current version of Gam with extended details and SSL information
|
Print the current version of Gam with extended details and SSL information
|
||||||
```
|
```
|
||||||
gam version extended
|
gam version extended
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.06.05 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
MacOS Sequoia 15.4 x86_64
|
MacOS Sequoia 15.4.1 x86_64
|
||||||
Path: /Users/Admin/bin/gam7
|
Path: /Users/Admin/bin/gam7
|
||||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
Time: 2023-06-02T21:10:00-07:00
|
Time: 2023-06-02T21:10:00-07:00
|
||||||
@@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|||||||
Path: /Users/Admin/bin/gam7
|
Path: /Users/Admin/bin/gam7
|
||||||
Version Check:
|
Version Check:
|
||||||
Current: 5.35.08
|
Current: 5.35.08
|
||||||
Latest: 7.06.03
|
Latest: 7.06.05
|
||||||
echo $?
|
echo $?
|
||||||
1
|
1
|
||||||
```
|
```
|
||||||
@@ -73,7 +73,7 @@ echo $?
|
|||||||
Print the current version number without details
|
Print the current version number without details
|
||||||
```
|
```
|
||||||
gam version simple
|
gam version simple
|
||||||
7.06.03
|
7.06.05
|
||||||
```
|
```
|
||||||
In Linux/MacOS you can do:
|
In Linux/MacOS you can do:
|
||||||
```
|
```
|
||||||
@@ -83,10 +83,10 @@ echo $VER
|
|||||||
Print the current version of Gam and address of this Wiki
|
Print the current version of Gam and address of this Wiki
|
||||||
```
|
```
|
||||||
gam help
|
gam help
|
||||||
GAM 7.06.03 - https://github.com/GAM-team/GAM
|
GAM 7.06.05 - https://github.com/GAM-team/GAM
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.13.3 64-bit final
|
Python 3.13.3 64-bit final
|
||||||
MacOS Sequoia 15.4 x86_64
|
MacOS Sequoia 15.4.1 x86_64
|
||||||
Path: /Users/Admin/bin/gam7
|
Path: /Users/Admin/bin/gam7
|
||||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
Time: 2023-06-02T21:10:00-07:00
|
Time: 2023-06-02T21:10:00-07:00
|
||||||
|
|||||||
Reference in New Issue
Block a user