diff --git a/.github/workflows/auto.yml b/.github/workflows/auto.yml new file mode 100644 index 0000000..421e343 --- /dev/null +++ b/.github/workflows/auto.yml @@ -0,0 +1,139 @@ +name: Automatic Release +on: + schedule: + - cron: 15 */8 * * * + workflow_dispatch: + +jobs: + Check: + outputs: + json: ${{ steps.setVariables.outputs.json }} + new_avail: ${{ steps.setVariables.outputs.new_avail }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Get Latest Releases + run: | + # ----------------------------- # + # --- get release version --- # + # ----------------------------- # + + echo "< Fetching versions >" + + BRAVE="$(curl -s https://api.github.com/repos/brave/brave-browser/releases?per_page=5)" + RELEASES="$(echo "$BRAVE" | jq -S -r '.[] | {name,tag_name}' | sed 's/ \\n\\n//g')" + TAG_NAMES=$(echo "$RELEASES" | jq '.tag_name') + + # Only include latest version of release type to avoid conflict. + # It's also pointless building outdated releases. + LATEST_NIGHTLY=false + LATEST_DEV=false + LATEST_BETA=false + LATEST_RELEASE=false + + OUT="{\"include\":[]}" + + # --------------------------------- # + # --- check release existence --- # + # --------------------------------- # + + echo "[ CHECKING ][ "$TAG_NAMES" ]" + + while read -r TAG; do + # -- Skip existent releases -- + ID="$(curl -s "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}" | jq -r .id)" + + if [ "$ID" != "null" ]; then + echo -e "Release ${TAG} already exists." + else + # -- check download links -- + NAME="$(echo "$RELEASES" | jq --arg TAG "$TAG" '. | select(.tag_name==$TAG) | .name' | sed 's/\"//g')" + EXISTS=$(echo "$BRAVE" | jq --arg TAG "$TAG" -r '.[] | select(.tag_name==$TAG) | + .assets[].browser_download_url | contains("linux")' | sort | uniq) + + if [ "$EXISTS" = "false" ]; then + echo "< Download links unavailable for ${NAME} >" + else + echo -e "< New Release: ${NAME} >" + + SKIP=true + + # -------------------------------- # + # --- determine release type --- # + # -------------------------------- # + + # -- Nightly + if [[ $NAME =~ "Nightly" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=nightly + if [[ $LATEST_NIGHTLY == false ]]; then + LATEST_NIGHTLY=true + SKIP=false + fi + # -- Development + elif [[ $NAME =~ "Dev" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=dev + if [[ $LATEST_DEV == false ]]; then + LATEST_DEV=true + SKIP=false + fi + # -- Beta + elif [[ $NAME =~ "Beta" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=beta + if [[ $LATEST_BETA == false ]]; then + LATEST_BETA=true + SKIP=false + fi + # -- Release + elif [[ $NAME =~ "Release" ]]; then + BRAVE_PRERELEASE=false + BRAVE_TYPE=stable + if [[ $LATEST_RELEASE == false ]]; then + LATEST_RELEASE=true + SKIP=false + fi + fi + + # -- Add latest release to output -- + if [[ $SKIP == false ]]; then + OUT="$(echo $OUT | jq -c \ + --arg TAG "$TAG" \ + --arg TYPE "$BRAVE_TYPE" \ + --arg PRERELEASE "$BRAVE_PRERELEASE" \ + '.include |= . + + [{ + "tag": $TAG, + "type": $TYPE, + "prerelease": $PRERELEASE, + }]')" + fi + fi + fi + done < <(echo "$RELEASES" | jq '.tag_name' | sed 's/\"//g') + + # -- Build releases, if they exist -- + if [ "$OUT" == "{\"include\":[]}" ]; then + echo "NEW_AVAILABLE=false" >> $GITHUB_ENV + else + echo "NEW_AVAILABLE=true" >> $GITHUB_ENV + + echo "OUT<> $GITHUB_ENV + echo $OUT >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + fi + - env: + input_json: ${{ env.OUT }} + input_avail: ${{ env.NEW_AVAILABLE }} + id: setVariables + run: | + echo "json=$input_json" >> $GITHUB_OUTPUT + echo "new_avail=$input_avail" >> $GITHUB_OUTPUT + Build: + needs: Check + if: ${{ fromJson(needs.check.outputs.new_avail) }} + uses: ./.github/workflows/release.yml + with: + input_json: ${{ needs.check.outputs.json }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 1e51b43..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,105 +0,0 @@ - -name: Release -on: - workflow_dispatch: - schedule: - - cron: "5 */12 * * *" - push: - branches: - - "master" - - -jobs: - Brave: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Download Brave - env: - GITHUB_TOKEN: ${{ github.token }} - run: | - set -u - export APPIMAGE_EXTRACT_AND_RUN=1 - # to build a specific tag - # curl https://api.github.com/repos/brave/brave-browser/releases/tags/v1.23.71 > /tmp/brave.json - - # get the latest release - curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/brave/brave-browser/releases/latest > /tmp/brave.json - - # extract the linux url, but without debug symbols - cat /tmp/brave.json| jq '.assets[].browser_download_url' | grep linux | grep -v symbols - wget "$(cat /tmp/brave.json| jq -r '.assets[].browser_download_url' | grep linux | grep -v symbols | grep -v sha256 | grep -v arm64)" - - # set the version - VERSION="$(cat /tmp/brave.json| jq -r .tag_name)" - echo "BRAVE_VERSION=$VERSION" >> $GITHUB_ENV - - # determine the release type - if ls *nightly*.zip 1> /dev/null 2>&1; then - # this is a nightly release - # mark as pre release - BRAVE_PRERELEASE=true - BRAVE_TYPE=nightly - APPDIR=AppDir-Nightly - ICON=brave-browser-nightly - elif ls *dev*.zip 1> /dev/null 2>&1; then - # this is a dev release - # mark as pre release - BRAVE_PRERELEASE=true - BRAVE_TYPE=dev - APPDIR=AppDir-Dev - ICON=brave-browser-dev - else - BRAVE_PRERELEASE=false - BRAVE_TYPE=stable - APPDIR=AppDir - ICON=brave-browser - fi - echo "BRAVE_TYPE=$BRAVE_TYPE" >> $GITHUB_ENV - echo "BRAVE_PRERELEASE=$BRAVE_PRERELEASE" >> $GITHUB_ENV - - # copy the zip to the AppDir - cp *.zip $APPDIR/. - cd $APPDIR - unzip *.zip && rm -r *.zip - ln -sr product*logo*128*.png "$ICON.png" - cd .. - - # bundle the appimage now - wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage - chmod +x *.AppImage - echo "AppDir: $APPDIR" - ls -al - ls -al "$APPDIR" - ./appimagetool-x86_64.AppImage --comp gzip "$APPDIR" -n -u "gh-releases-zsync|srevinsaju|Brave.AppImage|$BRAVE_TYPE|Brave*.AppImage.zsync" - mkdir dist - mv Brave*.AppImage* dist/. - - - - name: Upload artifact - uses: actions/upload-artifact@v1 - with: - name: brave-continuous.AppImage - path: 'dist' - - - name: Release - uses: marvinpinto/action-automatic-releases@latest - with: - title: Brave AppImage ${{ env.BRAVE_VERSION }} Build - automatic_release_tag: ${{ env.BRAVE_VERSION }} - prerelease: ${{ env.BRAVE_PRERELEASE }} - files: | - dist/ - repo_token: ${{ secrets.GITHUB_TOKEN }} - - - name: Release Continuous - uses: marvinpinto/action-automatic-releases@latest - with: - title: Brave AppImage Continuous ${{ env.BRAVE_TYPE }} Build - automatic_release_tag: ${{ env.BRAVE_TYPE }} - prerelease: true - files: | - dist/ - repo_token: ${{ secrets.GITHUB_TOKEN }} - diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml new file mode 100644 index 0000000..c28460e --- /dev/null +++ b/.github/workflows/manual.yml @@ -0,0 +1,125 @@ +name: Manual Release +on: + workflow_dispatch: + inputs: + tag: + description: 'Brave version tag ("latest" or "vX.Y.Z")' + required: true + default: "latest" + type: string + rebuild: + description: "Force rebuilding release" + required: true + default: false + type: boolean + +jobs: + Setup: + outputs: + json: ${{ steps.setVariables.outputs.json }} + build_release: ${{ steps.setVariables.outputs.build_release }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Setup Build + continue-on-error: true + run: | + set -u + + # --------------------------- # + # --- initial variables --- # + # --------------------------- # + + INPUT_TAG=${{ inputs.tag }} + INPUT_REBUILD=${{ inputs.rebuild }} + + # --------------------- # + # --- get release --- # + # --------------------- # + + TAG=${INPUT_TAG:-"latest"} # if no manual input, use "latest" by default + REBUILD=${INPUT_REBUILD:-false} + + echo "< Fetching release >" + + if [ $TAG == "latest" ]; then + BRAVE="$(curl -s https://api.github.com/repos/brave/brave-browser/releases?per_page=1 | jq -r '.[0]')" + TAG="$(echo $BRAVE | jq '.tag_name' | sed 's/\"//g')" + else + BRAVE="$(curl -s "https://api.github.com/repos/brave/brave-browser/releases/tags/${TAG}")" + fi + + # --------------------------------- # + # --- check release existence --- # + # --------------------------------- # + + ID="$(curl -s "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}" | jq -r .id)" + + if [ "$ID" != "null" ] && [ $REBUILD = false ]; then + echo -e "Release ${TAG} already exists." + BUILD_RELEASE=false + else + NAME="$(echo $BRAVE | jq '.name' | sed 's/ \\n\\n//g')" + + EXISTS=$(echo "$BRAVE" | jq --arg TAG "$TAG" -r '. | select(.tag_name==$TAG) | + .assets[].browser_download_url | contains("linux")' | sort | uniq) + + if [ "$EXISTS" = "false" ]; then + echo "< Download links unavailable for ${NAME} >" + BUILD_RELEASE=false + else + echo -e "< Building: ${NAME} >" + + # -------------------------------- # + # --- determine release type --- # + # -------------------------------- # + + if [[ $NAME =~ "Nightly" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=nightly + + elif [[ $NAME =~ "Dev" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=dev + + elif [[ $NAME =~ "Beta" ]]; then + BRAVE_PRERELEASE=true + BRAVE_TYPE=beta + + elif [[ $NAME =~ "Release" ]]; then + BRAVE_PRERELEASE=false + BRAVE_TYPE=stable + fi + + BUILD_RELEASE=true + fi + fi + + if [ $BUILD_RELEASE = true ]; then + # ------------------------------------- # + # --- store environment variables --- # + # ------------------------------------- # + + echo "TAG=$TAG" >> $GITHUB_ENV + echo "TYPE=$BRAVE_TYPE" >> $GITHUB_ENV + echo "PRE=$BRAVE_PRERELEASE" >> $GITHUB_ENV + fi + + echo "BUILD_RELEASE=$BUILD_RELEASE" >> $GITHUB_ENV + - env: + tag: ${{ env.TAG }} + type: ${{ env.TYPE }} + pre: ${{ env.PRE }} + build_release: ${{ env.BUILD_RELEASE }} + id: setVariables + run: | + input_json="{\"include\":[{\"tag\": \"$tag\", \"type\": \"$type\", \"prerelease\": \"$pre\",}]}" + echo "json=$input_json" >> $GITHUB_OUTPUT + echo "build_release=$build_release" >> $GITHUB_OUTPUT + Build: + needs: Setup + if: ${{ fromJson(needs.setup.outputs.build_release) }} + uses: ./.github/workflows/release.yml + with: + input_json: ${{ needs.setup.outputs.json }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..72bc81a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,173 @@ +name: Release +on: + workflow_call: + inputs: + input_json: + required: true + type: string + +jobs: + Setup: + runs-on: ubuntu-latest + steps: + - id: setVariables + run: | + echo "matrix=$input" >> $GITHUB_OUTPUT + env: + input: ${{ inputs.input_json }} + outputs: + matrix: ${{ steps.setVariables.outputs.matrix }} + Brave: + runs-on: ubuntu-latest + needs: Setup + strategy: + matrix: ${{ fromJson(needs.setup.outputs.matrix) }} + steps: + - uses: actions/checkout@v3 + + - name: Download Brave + continue-on-error: true + run: | + set -u + + # --------------------------- # + # --- initial variables --- # + # --------------------------- # + + TAG=${{ matrix.tag }} + TYPE=${{ matrix.type }} + PRE=${{ matrix.prerelease }} + + NAME=${TYPE^} + APPDIR="AppDir" + ICON="brave-browser" + + if [ "$TYPE" != "stable" ]; then + TYPE_LINK="-$TYPE" + APPDIR="$APPDIR-$NAME" + ICON="$ICON-$TYPE" + else + TYPE_LINK="" + fi + + # ----------------------------------- # + # --- check linux url existence --- # + # ----------------------------------- # + + LINKS="https://github.com/brave/brave-browser/releases/download/${TAG}/brave-browser${TYPE_LINK}-${TAG:1}-linux-amd64.zip" + + wget -q --spider $LINKS + + if [ $? -eq 0 ]; then + UPLOAD_CONTENT=true + else + echo -e "\nDownload links unavilable for linux. Quitting ..." + UPLOAD_CONTENT=false + fi + + echo "UPLOAD_CONTENT=$UPLOAD_CONTENT" >> $GITHUB_ENV + + if [ $UPLOAD_CONTENT = true ]; then + # ----------------------- # + # --- download urls --- # + # ----------------------- # + + echo "< Downloading files >" + + wget -q --show-progress --progress=dot:giga $LINKS $LINKS.sha256 + + # ----------------------- # + # --- verify hashes --- # + # ----------------------- # + + echo "< Verifying checksums >" + + sha256sum -c *.sha256 + + if [ $? -ne 0 ]; then + echo -e "\nBad checksums. Quitting ..." + echo "UPLOAD_CONTENT=false" >> $GITHUB_ENV + fi + + # ---------------------------- # + # --- copy zip to AppDir --- # + # ---------------------------- # + + if [ $UPLOAD_CONTENT = true ]; then + echo "< Copying files to AppDir >" + + unzip -q *.zip -d $APPDIR && rm -r *.zip *.zip.sha256 + cd $APPDIR + ln -sr product*logo*128*.png "$ICON.png" + cd .. + + # ------------------------- # + # --- bundle Appimage --- # + # ------------------------- # + + echo "< Bundling Appimage >" + + echo "AppDir: $APPDIR" && ls -al + ls -al "$APPDIR" + + wget -q --show-progress --progress=dot:mega -O appimagetool \ + https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x ./appimagetool + + ./appimagetool --appimage-extract && mv ./squashfs-root ./appimagetool.AppDir + + ./appimagetool.AppDir/AppRun --comp gzip "$APPDIR" -n -u \ + "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|Brave-AppImage|$TYPE|Brave*.AppImage.zsync" \ + "Brave-$TYPE-$TAG-x86_64.AppImage" + + mkdir dist && mv Brave*.AppImage* dist/. + + echo "< Done >" + fi + + # ------------------------------------- # + # --- store environment variables --- # + # ------------------------------------- # + + echo "BRAVE_PRERELEASE=$PRE" >> $GITHUB_ENV + echo "BRAVE_NAME=${TYPE^}" >> $GITHUB_ENV + echo "BRAVE_TYPE=$TYPE" >> $GITHUB_ENV + echo "BRAVE_VERSION=$TAG" >> $GITHUB_ENV + fi + + - name: Upload artifact + if: ${{ env.UPLOAD_CONTENT }} + uses: actions/upload-artifact@v3 + with: + name: brave-continuous.AppImage + path: "dist" + + - name: ${{ env.BRAVE_NAME }} + if: ${{ env.UPLOAD_CONTENT }} + uses: ncipollo/release-action@v1.12.0 + with: + name: Brave AppImage ${{ env.BRAVE_NAME }} ${{ env.BRAVE_VERSION }} + tag: ${{ env.BRAVE_VERSION }} + prerelease: ${{ env.BRAVE_PRERELEASE }} + artifacts: | + dist/* + token: ${{ secrets.GITHUB_TOKEN }} + allowUpdates: true + removeArtifacts: true + artifactErrorsFailBuild: true + generateReleaseNotes: true + + - name: ${{ env.BRAVE_NAME }} Continuous + if: ${{ env.UPLOAD_CONTENT }} + uses: ncipollo/release-action@v1.12.0 + with: + name: Brave AppImage Continuous ${{ env.BRAVE_NAME }} + tag: ${{ env.BRAVE_TYPE }} + prerelease: true + artifacts: | + dist/* + token: ${{ secrets.GITHUB_TOKEN }} + allowUpdates: true + removeArtifacts: true + artifactErrorsFailBuild: true + generateReleaseNotes: true diff --git a/AppDir-Beta/AppRun b/AppDir-Beta/AppRun new file mode 100755 index 0000000..0fdc83b --- /dev/null +++ b/AppDir-Beta/AppRun @@ -0,0 +1,96 @@ +#!/bin/bash +set -e + +if [ ! -z "$DEBUG" ] ; then + env + set -x +fi + +THIS="$0" +# http://stackoverflow.com/questions/3190818/ +args=("$@") +NUMBER_OF_ARGS="$#" + +if [ -z "$APPDIR" ] ; then + # Find the AppDir. It is the directory that contains AppRun. + # This assumes that this script resides inside the AppDir or a subdirectory. + # If this script is run inside an AppImage, then the AppImage runtime likely has already set $APPDIR + path="$(dirname "$(readlink -f "${THIS}")")" + while [[ "$path" != "" && ! -e "$path/$1" ]]; do + path=${path%/*} + done + export APPDIR="$path" +fi +path="$(dirname "$(readlink -f "${THIS}")")" +export APPDIR="$path" +echo $APPDIR + +export PATH="${APPDIR}:${APPDIR}/usr/sbin:${PATH}" +export XDG_DATA_DIRS="./share/:/usr/share/gnome:/usr/local/share/:/usr/share/:${XDG_DATA_DIRS}" +export LD_LIBRARY_PATH="${APPDIR}/usr/lib:${LD_LIBRARY_PATH}" +export XDG_DATA_DIRS="${APPDIR}"/usr/share/:"${XDG_DATA_DIRS}":/usr/share/gnome/:/usr/local/share/:/usr/share/ +export GSETTINGS_SCHEMA_DIR="${APPDIR}/usr/share/glib-2.0/schemas:${GSETTINGS_SCHEMA_DIR}" + +BIN="$APPDIR/brave-browser-beta" + +if [ -z "$APPIMAGE_EXIT_AFTER_INSTALL" ] ; then + trap atexit EXIT +fi + +isEulaAccepted=1 + +atexit() +{ + if [ $isEulaAccepted == 1 ] ; then + if [ $NUMBER_OF_ARGS -eq 0 ] ; then + exec "$BIN" + else + exec "$BIN" "${args[@]}" + fi + fi +} + +error() +{ + if [ -x /usr/bin/zenity ] ; then + LD_LIBRARY_PATH="" zenity --error --text "${1}" 2>/dev/null + elif [ -x /usr/bin/kdialog ] ; then + LD_LIBRARY_PATH="" kdialog --msgbox "${1}" 2>/dev/null + elif [ -x /usr/bin/Xdialog ] ; then + LD_LIBRARY_PATH="" Xdialog --msgbox "${1}" 2>/dev/null + else + echo "${1}" + fi + exit 1 +} + +yesno() +{ + TITLE=$1 + TEXT=$2 + if [ -x /usr/bin/zenity ] ; then + LD_LIBRARY_PATH="" zenity --question --title="$TITLE" --text="$TEXT" 2>/dev/null || exit 0 + elif [ -x /usr/bin/kdialog ] ; then + LD_LIBRARY_PATH="" kdialog --title "$TITLE" --yesno "$TEXT" || exit 0 + elif [ -x /usr/bin/Xdialog ] ; then + LD_LIBRARY_PATH="" Xdialog --title "$TITLE" --clear --yesno "$TEXT" 10 80 || exit 0 + else + echo "zenity, kdialog, Xdialog missing. Skipping ${THIS}." + exit 0 + fi +} + +check_dep() +{ + DEP=$1 + if [ -z $(which "$DEP") ] ; then + echo "$DEP is missing. Skipping ${THIS}." + exit 0 + fi +} + +if [ -z "$APPIMAGE" ] ; then + APPIMAGE="$APPDIR/AppRun" + # not running from within an AppImage; hence using the AppRun for Exec= +fi + diff --git a/AppDir-Beta/brave-browser-beta.desktop b/AppDir-Beta/brave-browser-beta.desktop new file mode 100644 index 0000000..e00df8f --- /dev/null +++ b/AppDir-Beta/brave-browser-beta.desktop @@ -0,0 +1,124 @@ +[Desktop Entry] +Name=Brave Beta +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +StartupNotify=true +StartupWMClass=brave-browser-beta +TryExec=brave-browser-beta +Exec=brave-browser-beta %U +Terminal=false +Icon=brave-browser-beta +Type=Application +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Exec=brave-browser-beta + +[Desktop Action new-private-window] +Name=New Incognito Window +Exec=brave-browser-beta --incognito diff --git a/README.md b/README.md index 80e95fd..c61ec3c 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@

- Brave logo - + + Brave logo +

Brave AppImage

- Brave Stable, Beta and Nightly (unofficial) AppImages by GitHub Actions Continuous Integration + Brave Stable, Beta, Dev and Nightly (unofficial) AppImages by GitHub Actions Continuous Integration
Report bug · @@ -16,34 +17,58 @@ ## Get Started -Download the latest release from +Download releases from -| Stable | Nightly | Dev | -| ------- | --------| ------ | -| [Download](https://github.com/srevinsaju/Brave-AppImage/releases/tag/stable) | [Download](https://github.com/srevinsaju/Brave-AppImage/releases/tag/nightly) | [Download](https://github.com/srevinsaju/Brave-AppImage/releases/tag/dev) +

+ + Latest Stable + + + Latest Beta + + + Latest Dev + + + Latest Nightly + +

+

+ + GitHub release (latest by date) + + + GitHub tag (latest SemVer pre-release) + +

or, use [`zap`](https://github.com/srevinsaju/zap), the command line AppImage package manager: + ```bash zap install --github --from=srevinsaju/Brave-AppImage brave-appimage ``` ### Executing + #### File Manager + Just double click the `*.AppImage` file and you are done! > In normal cases, the above method should work, but in some rare cases -the `+x` permissisions. So, right click > Properties > Allow Execution +> the `+x` permissisions. So, right click > Properties > Allow Execution + +#### Terminal -#### Terminal ```bash ./Brave-*.AppImage ``` + ```bash chmod +x Brave-*.AppImage ./Brave-*.AppImage ``` -In case, if FUSE support libraries are not installed on the host system, it is +In case, if FUSE support libraries are not installed on the host system, it is still possible to run the AppImage ```bash @@ -53,14 +78,17 @@ cd squashfs-root ``` ## Note + > This is not an official AppImage. The developer of this continuous integration > take no responsibility over anything which happen using this AppImage. USE IT ONLY > ON YOUR OWN RISK. You are "free" to fork this repository, analyze the code and > build your own AppImage under the MIT License and MPL 2.0 License. ## License -"Brave" is licensed under the [Mozilla Public License 2.0 (MPL 2.0)](https://en.wikipedia.org/wiki/Mozilla_Public_License) -The official source code of the Brave is available at links provided -* https://github.com/brave/brave-browser -"GitHub Continuous Integration" is licensed under the MIT License. +"Brave" is licensed under the [Mozilla Public License 2.0 (MPL 2.0)](https://en.wikipedia.org/wiki/Mozilla_Public_License) +The official source code of the Brave is available at links provided + +- https://github.com/brave/brave-browser + +"GitHub Continuous Integration" is licensed under the MIT License.