Skip to content

Commit

Permalink
Merge branch 'OpenBoard-org:master' into remove-yt-password-storage
Browse files Browse the repository at this point in the history
  • Loading branch information
Vekhir authored Feb 12, 2025
2 parents 21429f2 + 9a884af commit 8e9501b
Show file tree
Hide file tree
Showing 159 changed files with 41,506 additions and 3,394 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,36 @@
![GitHub Repo forks](https://img.shields.io/github/forks/OpenBoard-org/openboard)
# OpenBoard
[![latest release](https://img.shields.io/github/v/release/OpenBoard-org/openboard.svg)]()
[![Commits since last release](https://img.shields.io/github/commits-since/OpenBoard-org/openboard/v1.7.1/dev)]()
[![Commits since last release](https://img.shields.io/github/commits-since/OpenBoard-org/openboard/v1.7.3/dev)]()
[![Github Repo Contributors](https://img.shields.io/github/contributors/OpenBoard-org/openboard.svg)]()
[![downloads v1.7.1](https://img.shields.io/github/downloads/OpenBoard-org/openboard/v1.7.1/total)]()
[![downloads v1.7.3](https://img.shields.io/github/downloads/OpenBoard-org/openboard/v1.7.3/total)]()
[![Github All Releases](https://img.shields.io/github/downloads/OpenBoard-org/OpenBoard/total.svg)]()

OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard.

### Installing
1.7.1 installers are available for Windows, OS X and Ubuntu on the [Download's page](https://github.com/OpenBoard-org/OpenBoard/wiki/Downloads).
1.7.3 installers are available for Windows, macOS and Debian on the [Download's page](https://github.com/OpenBoard-org/OpenBoard/wiki/Downloads).

### Supported platforms

| Version | officially maintained platforms | branch |
|------------|--------------------------------------------------------|----|
| 1.7.1 (latest stable) | Windows 10+, macOS 12+ (for both `x64_64` and `arm64`), Ubuntu 20.04, Ubuntu 22.04 | `master` |
| 1.7.2 (active development) | Windows 10+, macOS 12+ (for both `x64_64` and `arm64`), Debian 12 | `dev` |
| 1.7.3 (latest stable) | Windows 10+, macOS 12+ (for both `x64_64` and `arm64`), Debian 12 | `master` |
| 1.7.4 (active development) | Windows 10+, macOS 12+ (for both `x64_64` and `arm64`), Debian 12 | `dev` |

### Communnity-driven packages
On Linux, Ubuntu is the only officially maintained platform. For other platforms, you can thank the awesome community of OpenBoard that provides some cool stuff like a FlatHub package, or OpenSuse support. Check on [this page](https://github.com/OpenBoard-org/OpenBoard/wiki/Downloads) to see if you find what you're looking for. If you actually want to provide support and to be referenced on this page, please open an issue with the relevant information, and we'll be glad to add your contribution.
On Linux, Debian is the only officially maintained platform. For other platforms, you can thank the awesome community of OpenBoard that provides community-driven packages on a number of other distributions. Check on [this page](https://github.com/OpenBoard-org/OpenBoard/wiki/Downloads) to see if you find what you're looking for. If you actually want to provide support and to be referenced on this page, please open an issue with the relevant information, and we'll be glad to add your contribution.

### Building from source
If you didn't find any installer for your platform, or if you want to modify OpenBoard, you can find instructions on how to build OpenBoard from source on the [wiki](https://github.com/OpenBoard-org/OpenBoard/wiki/Build-OpenBoard-from-source).

### Qt support
OpenBoard can be compiled with the latest open source binaries of Qt 5.15 and Qt 6. On macOS, it is recommended to use Qt 6. You should also be able to compile OpenBoard using Qt 5.12, but it is not officially tested/supported.
OpenBoard can be compiled with the latest open source binaries of Qt 5.15 and Qt 6. It is recommended to use Qt 6. You should also be able to compile OpenBoard using Qt 5.12, but it is not officially tested/supported.

### Web Widgets

Even with not a single bit of knowledge in C++, you can contribute to OpenBoard. Web Widgets are websites that you can put and use directly on the board ! And to turn a website to an OpenBoard web widget is really simple !

Download and install OpenBoard, and develop your web app in it. You'll even find a web inspector to help you debug your site.

You'll find documentation on how to create a Web Widget from scratch or tunring your already developped web site into an OpenBoard Web Widget [here](https://github.com/OpenBoard-org/OpenBoard/wiki/Creating-Web-Widgets).
You'll find documentation on how to create a Web Widget from scratch or turning your already developped web site into an OpenBoard Web Widget [here](https://github.com/OpenBoard-org/OpenBoard/wiki/Creating-Web-Widgets).
6 changes: 3 additions & 3 deletions plugins/cffadaptor/src/UBCFFAdaptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parsePageset(const QStringList &page

QDomElement svgPagesetElement = mDocumentToWrite->createElementNS(svgIWBNS,":"+ tIWBPageSet);

for (const auto &value : qAsConst(pageList)) {
for (const auto &value : std::as_const(pageList)) {
svgPagesetElement.appendChild(value);
}

Expand Down Expand Up @@ -680,7 +680,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElemen
// to do:
// there we must to sort elements (take elements from list and assign parent ordered like in parseSVGGGroup)
// we returns just element because we don't care about layer.
for (const auto &value : qAsConst(svgElements)) {
for (const auto &value : std::as_const(svgElements)) {
svgElementPart.appendChild(value);
}

Expand Down Expand Up @@ -1612,7 +1612,7 @@ bool UBCFFAdaptor::UBToCFFConverter::parseSVGGGroup(const QDomElement &element,
std::sort(layers.begin(), layers.end());
int layer = layers.at(0);

for (const auto &value : qAsConst(svgElements)) {
for (const auto &value : std::as_const(svgElements)) {
svgElementPart.appendChild(value);
}

Expand Down
25 changes: 1 addition & 24 deletions release_scripts/linux/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,25 +89,6 @@ buildWithStandardQt(){
fi
}

buildImporter(){
IMPORTER_DIR="../OpenBoard-Importer/"
IMPORTER_NAME="OpenBoardImporter"
checkDir $IMPORTER_DIR
cd ${IMPORTER_DIR}

rm moc_*
rm -rf debug release
rm *.o

notifyProgress "Building importer"

$QMAKE_PATH ${IMPORTER_NAME}.pro
make clean
make -j4
checkExecutable $IMPORTER_NAME
cd -
}

createBuildContext() {
BUILD_CONTEXT="buildContext"
echo $ARCHITECTURE > $BUILD_CONTEXT
Expand Down Expand Up @@ -139,15 +120,11 @@ checkDir $QT_PATH
checkDir $PLUGINS_PATH
checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH


checkExecutable $QMAKE_PATH
checkExecutable $LRELEASES
checkExecutable $ZIP_PATH

#build third party application
#buildImporter
#notifyProgress "OpenBoardImporter" "Built Importer"


# cleaning the build directory
rm -rf $BUILD_DIR

Expand Down
8 changes: 0 additions & 8 deletions release_scripts/linux/package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
# | | | openboard.desktop
# opt/
# | openboard/
# | | importer/
# | | library/
# | | etc/
# | | qtlib/ (*)
Expand All @@ -57,8 +56,6 @@ initializeVariables()
# Where the application was built (see build.sh)
BUILD_DIR="$PROJECT_ROOT/build/linux/release"
PRODUCT_PATH="$BUILD_DIR/product"
IMPORTER_DIR="$PROJECT_ROOT/../OpenBoard-Importer/"
IMPORTER_NAME="OpenBoardImporter"

# Where the package is built to
PACKAGE_BUILD_DIR="$PROJECT_ROOT/install"
Expand Down Expand Up @@ -200,13 +197,8 @@ if $BUNDLE_QT; then
chmod a+x $PACKAGE_DIRECTORY/run.sh
fi

#notifyProgress "Copying importer"
#mkdir -p $PACKAGE_DIRECTORY/importer
#cp -R "$IMPORTER_DIR/$IMPORTER_NAME" "$PACKAGE_DIRECTORY/importer"

notifyProgress "Stripping main executable"
strip $PACKAGE_DIRECTORY/$APPLICATION_NAME
#strip $PACKAGE_DIRECTORY/importer/$IMPORTER_NAME

# copying startup hints
notifyProgress "copying startupHints"
Expand Down
23 changes: 0 additions & 23 deletions release_scripts/osx/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,27 +91,6 @@ done
}


function addImporter {
importerDir="`pwd`/../OpenBoard-Importer"
importerName="OpenBoardImporter"

if [ ! -e ${importerDir} ]; then
abort "${importerDir} not found"
fi

cd ${importerDir}
# git reset --hard
# git pull
rm -rf ${importerName}.app
rm MakeFile*
rm -rf release
rm -rf debug
$QMAKE ${importerName}.pro -spec macx-clang
make -j4 release
$MACDEPLOYQT ${importerName}.app
cd -
}

trap "defaults write org.oe-f.OpenBoard.release Running -bool NO" EXIT

notify "Running OpenBoard release script (`date`)"
Expand All @@ -135,8 +114,6 @@ checkExecutable "$PLISTBUDDY"
checkExecutable "$ICEBERG"
checkExecutable "$LRELEASE"

#addImporter

# delete the build directory
notify "Cleaning ..."
rm -rf "$BUILD_DIR"
Expand Down
19 changes: 0 additions & 19 deletions release_scripts/osx/codesign.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,6 @@ APPLICATION_CONTENTS_DIR="$APPLICATION_DIR/Contents"
APPLICATION_RESOURCES_DIR="$APPLICATION_CONTENTS_DIR/Resources"
APPLICATION_FRAMEWORKS_DIR="$APPLICATION_CONTENTS_DIR/Frameworks"

IMPORTER_NAME="OpenBoardImporter"
IMPORTER_DOT_APP="$IMPORTER_NAME.app"
IMPORTER_DIR="$APPLICATION_RESOURCES_DIR/$IMPORTER_DOT_APP"

WEBENGINE_NAME="QtWebEngineProcess"
WEBENGINE_DOT_APP="$WEBENGINE_NAME"
WEBENGINE_DIR="$APPLICATION_FRAMEWORKS_DIR/QtWebEngineCore.framework/Helpers"
Expand Down Expand Up @@ -88,19 +84,6 @@ function signWebEngine
cd -
}

function signImporter
{
notify "signing $IMPORTER_NAME..."
if [ ! -e ${IMPORTER_DIR} ]; then
abort "${IMPORTER_DIR} not found"
fi

cd $APPLICATION_RESOURCES_DIR

$CODESIGN --force --deep -o runtime --timestamp --verbose=4 -s "$IDENTITY" --digest-algorithm=sha1,sha256 "$IMPORTER_DOT_APP"
cd -
}

function signOpenBoard
{
notify "signing $APPLICATION_NAME..."
Expand All @@ -114,8 +97,6 @@ function signOpenBoard
cd -
}

#signImporter

signOpenBoard

signWebEngine
Expand Down
65 changes: 2 additions & 63 deletions release_scripts/osx/notarize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ PLISTBUDDY=/usr/libexec/PlistBuddy
ICEBERG=/usr/local/bin/freeze
LRELEASE=$BASE_QT_DIR/bin/lrelease
USER=$1
TEAMID=$2

# Directories
BUILD_DIR="$PROJECT_ROOT/build/macx/release"
Expand Down Expand Up @@ -71,7 +72,6 @@ function checkExecutable {
notify "================================================"
notify "=============== NOTARIZATION ==================="
notify "================================================"
read -s -p "Password for $USER is required: " PASSWORD
printf "\n"

cd $INSTALL_DIR;
Expand All @@ -80,68 +80,7 @@ notify "================================================"
notify "Submitting $APPLICATION_NAME for notarization..."
notify "================================================"

NOTARIZE_APP_OUTPUT=$(2>&1 xcrun altool --notarize-app -f OpenBoard.dmg --primary-bundle-id ch.openboard.id -u "$USER" -p "$PASSWORD")
SUBMISSION_ID=$(echo "$NOTARIZE_APP_OUTPUT" | grep "RequestUUID" | sed -Ee "s|.*= (.*)$|\1|")
echo $(2>&1 xcrun notarytool submit --wait --apple-id "$USER" --team-id "$TEAMID" OpenBoard.dmg)


if [[ "$SUBMISSION_ID" == "" ]]; then
NOTARIZE_APP_ERROR_LOG_NAME="notarization-submission-error.log"
NOTARIZE_APP_ERROR_LOG_PATH="$SCRIPT_PATH/$NOTARIZE_APP_ERROR_LOG_NAME"

echo "$NOTARIZE_APP_OUTPUT" > "$NOTARIZE_APP_ERROR_LOG_PATH"

warn "================================================"
warn "Submission of $APPLICATION_NAME failed !"
warn "See $NOTARIZE_APP_ERROR_LOG_NAME for details."
warn "================================================"

abort "$APPLICATION_NAME notarization failed"
else
NOTARIZE_APP_SUCCESS_LOG_NAME="notarization-submission-success.log"
NOTARIZE_APP_SUCCESS_LOG_PATH="$SCRIPT_PATH/$NOTARIZE_APP_SUCCESS_LOG_NAME"

echo "$OUTPUT" > "$NOTARIZE_APP_SUCCESS_LOG_PATH"

notify "================================================"
notify "Submission of $APPLICATION_NAME succeed."
notify "See $NOTARIZE_APP_SUCCESS_LOG_NAME for details."
notify "================================================"

notify "================================================"
notify "Checking status of notarization (RequestUUID = $SUBMISSION_ID)"
notify "================================================"

while true; do
NOTARIZATION_INFO_OUTPUT=$(2>&1 xcrun altool --notarization-info "$SUBMISSION_ID" -u "$USER" -p "$PASSWORD")
STATUS=$(echo "$NOTARIZATION_INFO_OUTPUT" | grep "Status:" | sed -Ee "s|.*: (.*)$|\1|" )
notify "notarization status: $STATUS"
if [[ "$STATUS" != "in progress" ]]; then
break
fi
sleep 30
done

if [[ $STATUS == "success" ]]; then
NOTARIZATION_SUCCESS_LOG_NAME="notarization-success.log"
NOTARIZATION_SUCCESS_LOG="$SCRIPT_PATH/$NOTARIZATION_SUCCESS_LOG_NAME"
echo "$NOTARIZATION_INFO_OUTPUT" > "$NOTARIZATION_SUCCESS_LOG"

notify "================================================"
notify "$APPLICATION_NAME was notarized sucessfully. You can now distribute it."
notify "See $NOTARIZATION_SUCCESS_LOG_NAME for details."
notify "================================================"
else
NOTARIZATION_ERROR_LOG_NAME="notarization-error.log"
NOTARIZATION_ERROR_LOG="$SCRIPT_PATH/$NOTARIZATION_ERROR_LOG_NAME"
echo "$NOTARIZATION_INFO_OUTPUT" > "$NOTARIZATION_ERROR_LOG"

warn "================================================"
warn "$APPLICATION_NAME could not be notarized."
warn "See $NOTARIZATION_ERROR_LOG_NAME for details."
warn "================================================"

abort "$APPLICATION_NAME notarization failed"
fi
fi
exit 0

Loading

0 comments on commit 8e9501b

Please sign in to comment.