From 056e5f2c47b0b89eb367066aae4ab179fc7e92f4 Mon Sep 17 00:00:00 2001 From: Eng1n33r Date: Tue, 14 Jun 2022 02:45:06 +0300 Subject: [PATCH] fix macOS builds & update changelog --- Brewfile | 3 +- CHANGELOG.md | 8 ++-- CONTRIBUTING.md | 72 ----------------------------------- ReadMe.md | 27 +++++++++++++ RoadMap.md | 51 ------------------------- brew-cask/gcc-arm-embedded.rb | 56 +++++++++++++++++++++++++++ 6 files changed, 90 insertions(+), 127 deletions(-) delete mode 100644 CONTRIBUTING.md delete mode 100644 RoadMap.md create mode 100644 brew-cask/gcc-arm-embedded.rb diff --git a/Brewfile b/Brewfile index 963a687c5..5dc763034 100644 --- a/Brewfile +++ b/Brewfile @@ -1,4 +1,4 @@ -cask "gcc-arm-embedded" +cask "brew-cask/gcc-arm-embedded.rb" brew "protobuf" brew "gdb" brew "heatshrink" @@ -6,3 +6,4 @@ brew "open-ocd" brew "clang-format" brew "dfu-util" brew "imagemagick" +brew "protobuf-c" diff --git a/CHANGELOG.md b/CHANGELOG.md index c0424e210..112931fee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,13 @@ ### New Update +* Updated UniRF Remix app +* Fixed macOS Brewfile, so compiling on macOS now works +#### Previous changes * KeeLoq protocol rework. * Came Atomo emulation beta-test. * Fix critical issue with keeloq manufacturer name random change: -* now you can emulate any manufacturer system with proper key handling. + now you can emulate any manufacturer system with proper key handling. * Came Atomo parcel counter increasing and emulation. Beta test: -* (need rework signal header and make button counter cycle array for encoder). -#### Previous changes + (need rework signal header and make button counter cycle array for encoder). * Added Spectrum analyzer. * CAME Atomo - Save & Send - beta test, proper work is not guaranteed. * Removed similar frequencies. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 00a0191e5..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,72 +0,0 @@ -# Welcome to FlipperZero contributing guide - -Thank you for investing your time in contributing to our project! - -Read our [Code of Coduct](CODE_OF_CONDUCT.md) to keep our community approachable and respectable. - -In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR. - -## New contributor guide - -See the [ReadMe](ReadMe.md) to get an overview of the project. Here are some helpful resources to get you comfortable with open source contribution: - -- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github) -- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git) -- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow) -- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests) - -## Getting started - -Before writing code and creating PR make sure that it aligns with our mission and guidlines: - -- All our devices are intended for research and education. -- PR that contains code intended to commit crimes is not going to be accepted. -- Your PR must comply with our [Coding Style](CODING_STYLE.md) -- Your PR must contain code compatiable with project [LICENSE](LICENSE). -- PR will only be merged if it pass CI/CD. -- PR will only be merged if it pass review by code owner. - -Feel free to ask questions in issues if you're not sure. - -### Issues - -#### Create a new issue - -If you found a problem, [search if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). If a related issue doesn't exist, you can open a new issue using a relevant [issue form](https://github.com/flipperdevices/flipperzero-firmware/issues/new/choose). - -#### Solve an issue - -Scan through our [existing issues](https://github.com/flipperdevices/flipperzero-firmware/issues) to find one that interests you. - -### Make Changes - -1. Fork the repository. -- Using GitHub Desktop: - - [Getting started with GitHub Desktop](https://docs.github.com/en/desktop/installing-and-configuring-github-desktop/getting-started-with-github-desktop) will guide you through setting up Desktop. - - Once Desktop is set up, you can use it to [fork the repo](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/cloning-and-forking-repositories-from-github-desktop)! - -- Using the command line: - - [Fork the repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#fork-an-example-repository) so that you can make your changes without affecting the original project until you're ready to merge them. - -2. Install build requirements - -3. Create a working branch and start with your changes! - -### Commit your update - -Commit the changes once you are happy with them. Make sure that code compilation is not broken and passes tests. Check syntax and formatting. - -### Pull Request - -When you're done making the changes, open a pull request, often referred to as a PR. -- Fill out the "Ready for review" template so we can review your PR. This template helps reviewers understand your changes and the purpose of your pull request. -- Don't forget to [link PR to issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) if you are solving one. -- Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork) so the branch can be updated for a merge. -Once you submit your PR, a Docs team member will review your proposal. We may ask questions or request for additional information. -- We may ask for changes to be made before a PR can be merged, either using [suggested changes](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request) or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch. -- As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations). -- If you run into any merge issues, checkout this [git tutorial](https://lab.github.com/githubtraining/managing-merge-conflicts) to help you resolve merge conflicts and other issues. - -### Your PR is merged! - -Congratulations :tada::tada: The FlipperDevices team thanks you :sparkles:. diff --git a/ReadMe.md b/ReadMe.md index 151a2f381..7e4953982 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -143,6 +143,33 @@ Use **`flipper-z-{target}-full-{suffix}.dfu`** to flash your device. If compilation fails, make sure all submodules are all initialized. Either clone with `--recursive` or use `git submodule update --init --recursive`. +# Build on macOS + +## macOS Prerequisites + +Make sure you have [brew](https://brew.sh) and install all the dependencies: +```sh +brew bundle --verbose +``` + +**P.S. Brewfile has been fixed, so build works now** + +### Compile everything for development + +```sh +make +``` + +### Compile everything for release + get updater package to update from microSD card + +```sh +make updater_package TARGET=f7 DEBUG=0 COMPACT=1 +``` + +Check `dist/` for build outputs. + +Use **`flipper-z-{target}-full-{suffix}.dfu`** to flash your device. + # Apps included - [Clock/Stopwatch (By CompaqDisc, Stopwatch & Sound Alert By RogueMaster)](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/unleashed/applications/clock_app/clock_app.c) diff --git a/RoadMap.md b/RoadMap.md deleted file mode 100644 index 32ed860f2..000000000 --- a/RoadMap.md +++ /dev/null @@ -1,51 +0,0 @@ -# RoadMap - -# Where we are (0.x.x branch) - -Our goal for 0.x.x branch is to build stable usable apps and API. -First public release that we support in this branch is 0.43.1. Your device most likely came with this version. -You can develop applications but keep in mind that API is not final yet. - -## What's already implemented - -**Applications** - -- SubGhz: all most common protocols, reading RAW for everything else -- 125kHz RFID: all most common protocols -- NFC: reading/emulating Mifare Ultralight, reading MiFare Classic and DESFire, basic EMV, basic NFC-B,F,V -- Infrared: all most common RC protocols, RAW format for everything else -- GPIO: UART bridge, basic GPIO controls -- iButton: DS1990, Cyfral, Metacom -- Bad USB: Full USB Rubber Ducky support, some extras for windows alt codes -- U2F: Full U2F specification support - -**Extras** - -- BLE Keyboard -- Snake game - -**System and HAL** - -- Furi Core -- Furi HAL - -# Where we're going (Version 1) - -Main goal for 1.0.0 is to provide first stable version for both Users and Developers. - -## What we're planning to implement in 1.0.0 - -- Loading applications from SD (tested as PoC, work scheduled for Q2) -- More protocols (gathering feedback) -- User documentation (work in progress) -- FuriCore: get rid of CMSIS API, replace hard real time timers, improve stability and performance (work in progress) -- FuriHal: deep sleep mode, stable API, examples, documentation (work in progress) -- Application improvements (a ton of things that we want to add and improve that are too numerous to list here) - -## When will it happen and where I can see the progress? - -Release 1.0.0 will most likely happen around the end of Q3 - -Development progress can be tracked in our public Miro board: - -https://miro.com/app/board/uXjVO_3D6xU=/?moveToWidget=3458764522498020058&cot=14 diff --git a/brew-cask/gcc-arm-embedded.rb b/brew-cask/gcc-arm-embedded.rb new file mode 100644 index 000000000..1f9228991 --- /dev/null +++ b/brew-cask/gcc-arm-embedded.rb @@ -0,0 +1,56 @@ +cask "gcc-arm-embedded" do + # Exists as a cask because it is impractical as a formula: + # https://github.com/Homebrew/homebrew-core/pull/45780#issuecomment-569246452 + version "10.3-2021.07,10.14.6" + sha256 "cae8b168ad16556ca204c0b441f9fb2c05be85362fe10e3b210be6b7177ef2d7" + + url "https://developer.arm.com/-/media/Files/downloads/gnu-rm/#{version.before_comma}/gcc-arm-none-eabi-#{version.before_comma}-mac-#{version.after_comma}-sha1.pkg" + name "GCC ARM Embedded" + desc "Pre-built GNU bare-metal toolchain for 32-bit Arm processors" + homepage "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm" + + livecheck do + url "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads" + strategy :page_match do |page| + match = page.match(/href=.*?gcc-arm-none-eabi-(\d+\.\d+-\d+\.\d+)-mac-(\d+\.\d+\.\d+)-sha1.pkg/i) + "#{match[1]},#{match[2]}" + end + end + + pkg "gcc-arm-none-eabi-#{version.before_comma}-mac-#{version.after_comma}-sha1.pkg" + binary "#{appdir}/ARM/bin/arm-none-eabi-addr2line" + binary "#{appdir}/ARM/bin/arm-none-eabi-ar" + binary "#{appdir}/ARM/bin/arm-none-eabi-as" + binary "#{appdir}/ARM/bin/arm-none-eabi-c++" + binary "#{appdir}/ARM/bin/arm-none-eabi-c++filt" + binary "#{appdir}/ARM/bin/arm-none-eabi-cpp" + binary "#{appdir}/ARM/bin/arm-none-eabi-elfedit" + binary "#{appdir}/ARM/bin/arm-none-eabi-g++" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcc" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcc-10.3.1" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcc-ar" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcc-nm" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcc-ranlib" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcov" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcov-dump" + binary "#{appdir}/ARM/bin/arm-none-eabi-gcov-tool" + binary "#{appdir}/ARM/bin/arm-none-eabi-gdb" + binary "#{appdir}/ARM/bin/arm-none-eabi-gdb-add-index" + binary "#{appdir}/ARM/bin/arm-none-eabi-gdb-add-index-py" + binary "#{appdir}/ARM/bin/arm-none-eabi-gdb-py" + binary "#{appdir}/ARM/bin/arm-none-eabi-gprof" + binary "#{appdir}/ARM/bin/arm-none-eabi-ld" + binary "#{appdir}/ARM/bin/arm-none-eabi-ld.bfd" + binary "#{appdir}/ARM/bin/arm-none-eabi-lto-dump" + binary "#{appdir}/ARM/bin/arm-none-eabi-nm" + binary "#{appdir}/ARM/bin/arm-none-eabi-objcopy" + binary "#{appdir}/ARM/bin/arm-none-eabi-objdump" + binary "#{appdir}/ARM/bin/arm-none-eabi-ranlib" + binary "#{appdir}/ARM/bin/arm-none-eabi-readelf" + binary "#{appdir}/ARM/bin/arm-none-eabi-size" + binary "#{appdir}/ARM/bin/arm-none-eabi-strings" + binary "#{appdir}/ARM/bin/arm-none-eabi-strip" + + uninstall pkgutil: "gcc.arm-none-eabi-#{version[/^(\d{2})/]}", + delete: "/Applications/ARM" +end