{"id":13562501,"url":"https://github.com/meganz/MEGAsync","last_synced_at":"2025-04-03T18:33:46.275Z","repository":{"id":37596419,"uuid":"51461829","full_name":"meganz/MEGAsync","owner":"meganz","description":"Easy automated syncing between your computers and your MEGA Cloud Drive","archived":false,"fork":false,"pushed_at":"2025-04-03T12:03:43.000Z","size":157167,"stargazers_count":1698,"open_issues_count":427,"forks_count":283,"subscribers_count":91,"default_branch":"master","last_synced_at":"2025-04-03T16:06:19.082Z","etag":null,"topics":["cloud","end-to-end-encryption","mega","privacy","qt","storage","synchronization"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meganz.png","metadata":{"files":{"readme":"README.linux.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-10T18:28:05.000Z","updated_at":"2025-04-03T12:03:35.000Z","dependencies_parsed_at":"2024-02-29T18:50:53.191Z","dependency_job_id":"d9baaf8e-ab64-4451-8f3a-cf02b08cc982","html_url":"https://github.com/meganz/MEGAsync","commit_stats":{"total_commits":10685,"total_committers":48,"mean_commits":"222.60416666666666","dds":0.7823116518483856,"last_synced_commit":"fe4aaa992dbf9146f06bfd24aff47c62cc2ffa48"},"previous_names":[],"tags_count":258,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meganz%2FMEGAsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meganz%2FMEGAsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meganz%2FMEGAsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meganz%2FMEGAsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meganz","download_url":"https://codeload.github.com/meganz/MEGAsync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247057129,"owners_count":20876517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","end-to-end-encryption","mega","privacy","qt","storage","synchronization"],"created_at":"2024-08-01T13:01:09.290Z","updated_at":"2025-04-03T18:33:46.266Z","avatar_url":"https://github.com/meganz.png","language":"C++","funding_links":[],"categories":["Applications","C++"],"sub_categories":["Sharing Files"],"readme":"[[_TOC_]]\n\n# Ubuntu instructions\n\nWe officially support a handful of Linux flavors based on Debian and RedHat,\nhowever, for development, we are focusing on Ubuntu LTS as a good reference platform.\nCurrent LTS is 22.04 (jammy) and our developers use that for daily Linux development.\n\n# Requirements\n\nImportant requirements for MEGAsync are GCC above version 5 and Qt above version 5.15. The\nother third-party requirements are handled through VCPKG.\n\n## System build dependencies\nIn order to build the desktop app, you will need to install the following packages:\n```\nsudo apt install \\\n    build-essential \\\n    git \\\n    cmake \\\n    wget \\\n    autoconf-archive \\\n    curl \\\n    zip \\\n    unzip \\\n    tar \\\n    pkg-config \\\n    nasm\n```\nand\n```\nsudo apt install \\\n    libxcb-cursor0 \\\n    qtbase5-dev \\\n    qttools5-dev  \\\n    libqt5x11extras5-dev  \\\n    libqt5svg5-dev    \\\n    qtdeclarative5-dev \\\n    qml-module-qtquick-dialogs \\\n    qml-module-qtquick-controls2\n```\n## VCPKG\nAlong with Qt, MEGA Desktop app and the MEGA SDK require another dozen or more\nthird party libraries to cover all the functionality exposed to our users. We are\nusing Microsoft's VCPKG C++ Library Manager for managing our dependencies.\n\nYou need to clone the VCPKG git repo (you can of course choose the local directory, `~/mega` is given as an example):\n```\nmkdir ~/mega\ncd ~/mega\ngit clone https://github.com/microsoft/vcpkg\n```\n\n# Get the source\nOpen a Terminal and clone the MEGA Desktop app repository:\n\n```\ncd ~/mega\nmkdir desktop\ncd desktop\ngit clone https://github.com/meganz/MEGAsync.git .\ngit submodule update --init src/MEGASync/mega\ncd ..\n```\nThe MEGA SDK is fetched recursively from https://github.com/meganz/sdk.git\n\n# Build everything\n\n## Run CMake\nRun CMake to configure the project. We will build in a separate directory, outside of the source tree.\n```\ncd ~/mega\ncmake -DVCPKG_ROOT='~/mega/vcpkg' -S '~/mega/desktop' -B '~/mega/build_dir' -DCMAKE_BUILD_TYPE=Debug\n```\nAdapt the parameters to suit your needs:\n```\ncmake -DVCPKG_ROOT='\u003cVCPKG root path\u003e' -S '\u003cdesktop app repository path\u003e' -B '\u003cbuild directory\u003e' -DCMAKE_BUILD_TYPE=\u003cDebug or Release\u003e\n```\n\nThe dependencies will be built at this stage from VCPKG.\n\n## Build the Desktop App\nTo build the Desktop App, use target `MEGAsync`.\nExample:\n```\ncmake --build '~/mega/build_dir' --target MEGAsync\n```\n\nThe built executable will be in `~/mega/build_dir/src/MEGASync/Debug/`\n\n\n# Development\n\nFor development, you can use the Qt Creator IDE, which can be installed on Debian flavors like so:\n```\nsudo apt install qtcreator\n```\n Note: the Qt Online installer might provide a more recent version of Qt Creator than your distribution.\n\nOpen the `CMakeLists.txt` located at the root of the repository.\n\n## Configure the project\nSelect the configuration that you want for the project, and set their build path (you can keep the defaults).\n\nYou will need to add the path to VCPKG to the CMake configuration. For each configuration, add a new `VCPKG_ROOT` key (in the \"Initial Configuration\" tab), and set the value to the VCPKG root directory (for instance `~/mega/vcpkg`).\n\nThen click the \"Re-configure with Initial Parameters\" button. Wait for this process to finish (you can follow the progress in the \"General messages\" output).\nYou're good to go!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeganz%2FMEGAsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeganz%2FMEGAsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeganz%2FMEGAsync/lists"}