diff options
| author | Claude Sonnet 5 <noreply@anthropic.com> | 2026-09-23 22:52:38 -1000 |
|---|---|---|
| committer | Claude Sonnet 5 <noreply@anthropic.com> | 2026-09-23 22:52:38 -1000 |
| commit | a58e975d08a29500dd394a91208f471855135662 (patch) | |
| tree | 915ce215665e84b8612c6bdc642f9540f68f0432 /fedora-android-build-setup.md | |
Fedora laptop's -workspace memory: listen/feedreader/podkit context
Adds workspace-layout.md, listen-handover-2026-09-21.md, and
fedora-android-build-setup.md -- built on the fedora laptop, no filename
overlap with tungsten's existing -workspace memory (doot/claudomator/
feedreader-on-tungsten/marine-cert scope).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sj3CoWEedM56bebByKgNxA
Diffstat (limited to 'fedora-android-build-setup.md')
| -rw-r--r-- | fedora-android-build-setup.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fedora-android-build-setup.md b/fedora-android-build-setup.md new file mode 100644 index 0000000..6489ac5 --- /dev/null +++ b/fedora-android-build-setup.md @@ -0,0 +1,20 @@ +--- +name: fedora-android-build-setup +description: "How Android builds (Listen, FeeDreader) were made to work on Peter's Fedora 44 laptop — JDK and SDK location, and two stale-state traps" +metadata: + node_type: memory + type: project + originSessionId: 0e4bffd6-5847-4b40-9037-6bfb9055e654 + modified: 2026-09-21T21:30:50.235Z +--- + +As of 2026-09-21, on Peter's Fedora 44 laptop, building either `listen` or `feedreader` needed setup beyond the CLI's own Node/npm install: + +- **Fedora 44's repos have no `java-21-openjdk-devel`** (only `java-25-openjdk*` and a `java-latest` 27 EA build) — `sudo dnf install java-21-openjdk-devel` fails with "No match for argument". Worse, Java 25 itself can't run Gradle 8.14.3 (the version this repo is pinned to for Chaquopy compatibility, per `listen/CLAUDE.md`): the bundled Kotlin compiler's `JavaVersion.parse` throws `IllegalArgumentException: 25.0.4.1` — a parser bug, not a real incompatibility Gradle could work around. +- **Fix applied**: downloaded Temurin JDK 21 as a portable tarball from Adoptium (`https://api.adoptium.net/v3/binary/latest/21/ga/linux/x64/jdk/hotspot/normal/eclipse`) into `~/.jdks/jdk-21.0.12.1+1` (no sudo needed), and set `org.gradle.java.home=/home/terst/.jdks/jdk-21.0.12.1+1` in `~/.gradle/gradle.properties` (user-global, untracked — applies to every Gradle project for this user, not just Listen). +- **No system Android SDK either**: `/opt` isn't writable without sudo, and `/opt/android-sdk` (what both repos' `local.properties` pointed at, a stale value from a previous machine) doesn't exist here. Fix: installed SDK cmdline-tools into `~/Android/Sdk` (Google's `commandlinetools-linux-13114758_latest.zip`), ran `sdkmanager --licenses`, and installed `platform-tools`, `platforms;android-36`, `build-tools;36.0.0`, `ndk;27.2.12479018`. `local.properties` (gitignored, per-machine by design) was updated to `sdk.dir=/home/terst/Android/Sdk`. +- **Stale `app/build/` from the old machine**: Chaquopy's `extractDebugPythonBuildPackages` failed following a symlink to `/usr/bin/python3.12`, which doesn't exist on this machine (it has 3.14). `app/build/` is gitignored, pure build output — `rm -rf app/build build` and rebuilding resolved it. If this recurs after a repo copy/sync from another machine, the fix is the same: delete the build directory, don't debug the symlink. + +**Why this matters**: none of this is written into either repo's CLAUDE.md (correctly — it's machine-specific, not project-specific), so it's easy to silently re-hit and waste a session rediscovering it. If `feedreader` build/test is attempted on this machine and hits the same JDK/SDK/stale-build issues, the fixes above apply identically — check `~/.jdks`, `~/Android/Sdk`, and `~/.gradle/gradle.properties` before reinstalling anything. + +**How to apply:** before debugging a Gradle failure on this laptop that looks like a JDK, SDK-location, or Python-symlink problem, check whether this setup is still in place first (`~/.jdks`, `~/Android/Sdk`, `~/.gradle/gradle.properties`) rather than re-deriving the fix from scratch. |
