Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AgregoreWeb/agregore-mobile
Mobile version of the Agregore browser for Android, based on Chromium and Bromite
https://github.com/AgregoreWeb/agregore-mobile
Last synced: about 2 months ago
JSON representation
Mobile version of the Agregore browser for Android, based on Chromium and Bromite
- Host: GitHub
- URL: https://github.com/AgregoreWeb/agregore-mobile
- Owner: AgregoreWeb
- License: mit
- Created: 2022-03-22T17:13:39.000Z (almost 3 years ago)
- Default Branch: default
- Last Pushed: 2022-06-04T02:08:54.000Z (over 2 years ago)
- Last Synced: 2024-11-18T05:37:21.671Z (2 months ago)
- Language: Python
- Size: 79.2 MB
- Stars: 31
- Watchers: 5
- Forks: 6
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - AgregoreWeb/agregore-mobile - Mobile version of the Agregore browser for Android, based on Chromium and Bromite (others)
README
# agregore-mobile
Mobile version of the Agregore browser for Android, based on Chromium and Bromite**WORK IN PROGRESS**
## Development
This codebase is based on [Chromium Android](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/android_build_instructions.md) and [Bromite](https://github.com/bromite/bromite).
How it works:
- You'll need about 70 GB of space on your machine since chromium and it's history is so huge.
- Run `./setup.py` to do the initial folder setup.
- The build scripts use Python 3, so you'll need to have it installed on your system.
- Chromium build tools are set up in `./depot_tools`
- A Chromium source tree is set up in `./chromium` (this takes huge amounts of space)
- A `Bromite` source tree is set up in `./bromite` (this doesn't take much space)
- Run `./checkout_bromite_tag.py` to checkout the correct version of bromite to base the browser on
- Run this when the bromite version gets updated, you must then re-apply the bromite patches, it will auto-run at setup
- `bromite_tag.txt` is where you can update the bromite version to build on top of
- Run `./apply_bromite_patches.py` to checkout the correct version of Chromium and to apply the bromite patches to it
- Run this whenever bromite gets updated, it will auto-run at setup
- You will need to re-apply agregore patches next since the git state will be reset
- Run `./apply_agregore_patches.py` to apply Agregore patches to the Chromium tree
- Run this whenever there are new Agregore patches to apply. It will auto-run at setup
- Run `./download_ipfs_daemon.py` to download the latest version of the [Agregore IPFS Daemon](https://github.com/AgregoreWeb/agregore-ipfs-daemon/)
- Run this whenever a new version is available to update. It will auto-run at setup
- The version of the daemon that we're using can be found inside `daemon_tag.txt`, update this with new versions
- Note: you can instead place an AAR of the daemon into `chromium/src/third_party/agregore-ipfs-daemon/agregore-ipfs-daemon.aar`
- Run `./prebuild.py` to sync dependencies needed to perform a build.
- This can be skipped if you're just adding changes, dependenices can take an extra 60 GB of space
- Run `./build.py` to trigger a new build of the browser
- You'll need to be running Ubuntu 18 in order to do a successful build.
Automated builds via a [build server](https://build.mauve.moe) are a work in progress.
- The `patches` folder contains Agregore-specific patches on top of Chromium
- Run `./generate_patch.py` To generate a new patch based on the latest Commit inside `Chromium/src`
- You can specify `--n` for the number of commits to include in the patch if you want something other than the latest one.
- Generally, if you did several commits as part of your change, you'll want to squash them with `git rebase -i HEAD~` where `n` is the number of commits you want to squash.
- Then you'll want to commit the patches and use `apply_agregore_patches.py` to apply them on the build server### Flow for making patches
- Checkout a new branch for your patch
- Make changes in `chromium/src`
- `git add -A` to track newly added files
- `git commit -am "some message"` to commit your changes
- For the message, try to start with `AG ` since this will be the patch name
- `cd ../../` back to the root of agregore-mobile
- `./generate_patch.py` to generate a new patch
- `git add -A` to track the new patch
- `git commit -am "Added patch for bla bla bla"` to commit your patch to the main repo
- `git push`### Adding changes to an existing patch
- Make your changes in `chromium/src`
- (If you have new or deleted files) `git add -A` to track the new files or remove deleted ones.
- `git commit -am "some message"` to commit your changes
- Note the message doesn't matter because we'll be deleting it in favor of the message in the patch
- `git rebase HEAD~2` to start rebasing the commit history (with the goal of sqashing your previous commit into your patch commit)
- Note `2` means "the latest commit, and the one before that", if you have more commits that you want to squash, increase this number
- When your editor opens, Squash all the commits other than the one for the patch (which should be left as "pick")
- Then once it prompts you to edit the new commit message, delete the squashed commit messages and just keep the original message
- Now your history should have the latest commit
- `cd ../../` to go back to the agregore-mobile directory
- `./generate_patch.py` to re-generate the patch content
- `git commit -am "the actual commit message for you change"` to commit changes to your patch
- `git push` to push the latest version of your patch out### Applying new versions of a patch
- `git pull` to get the latest chnages
- `./undo_last_patch.py` to undo the latest version of the patch
- `./apply_agregore_patches.py` to re-apply the latest versions of the patches.### Flow for building with the build server
- Checkout a new branch to start
- Make changes inside chromium/src and commit
- Run `./generate_patch.py` to generate a pach
- Commit your changes to your branch
- Push them to github
- Checkout the branch on the build server `ssh [email protected]`
- Apply the patches using `./apply_agregore_patches.py`
- Run `./build.py`