cannot parse manifest for check-in: tip
hi thanks for this sweet fossil.
brief, i installed it on android. i scp'ed my repo in. i served a directory. it works. i click files. it works. 12 to 24 hours later i received cannot parse manifest for check-in: tip . i have a handful of repo same error on all.
within the 12 to 24 hour on 1 repo i enabled search. i browse the web ui looking at my files and writting a few tickets. i also used ssh-keygen (dont know if it is related and secured my host but it happens after this). that is all,
i tried to rebuild after the error not what i expected i may have read wrong.
help ? Thanks.can i fix it? before the rebuild.
i'm guessing here, but were those repos served from a microSD card? It sounds very much like they've been corrupted.
Something to try: scp the repos back to a desktop OS and try to serve them there just to test. This might (MIGHT) be a problem with the build on android, and not with the repos themselves.
The reason i suggest this: the first few times i ported some of my C software to ARM platforms i discovered many cases where i had used the
char data type and assumed it was (like integers) signed. i knew, from when i learned C in the 90s, that that was not guaranteed, but i had never encountered a platform on which chars were unsigned by default, so i hadn't been careful about that in my code. So... i had cases where i intended to use small negative numbers but they were instead interpreted as small positive numbers (e.g. -1 wrapped around to 255).
It's conceivable that the errors you're seeing a side-effects of platform portability bugs, rather than actual corruption.
Interesting! Maybe we need to audit the Fossil code for signed char use.
On the other hand, this does not explain why OP's repos worked ok initially.
I wonder if it may have something to do with storage access permissions in Android. After all to use Fossil one needs a terminal prompt (app?). Depending how that terminal is installed may explain it's storage permissions. Just a guess.
where i had used the char data type and assumed it was (like integers) signed.
This is one reason I was glad that C99 introduced standard integer types:
int8_t, uint8_t, int16_t, uint16_t, etc.
Does Fossil support Android builds?
Does Fossil support Android builds?
It has been done before, but I found it hard to use.
-- Regards, Kees Nuyt
Thanks, I did not see that. I am pondering sync'ng to my phone or android tablet with Fossil. Has anyone tried this?
What about just downloading the served repo content (trunk) as a zip from browser?
Copy the repo file to dropbox, ggdrive etc? You could as well try dumping the repo db and serve up a compressed dump. Or even sync it to chisel and access from there.
Well, I am trying to avoid manual steps like copying to the cloud. It was just an attempt to expand fossil server to an android terminal.
I'd start with Android NDK.
Cross-compile Fossil to your target arch/OS ver. Fossil needs just zip and openssl; zip is included in source, you can try to build without ssl first, then try to wrench in openssl.
When ready, the fossil binary could be side-loaded using
adb. I assume you've got your device rooted, otherwise there's little point in this exercise.
Yes, I will have to experiment with a simpler code base before trying that! Rooting limits the audience. I prefer a blessed app store approach.
Just tried it with current NDK r21 (on Linux x86_64).
I targeted for Jelly Bean (android-21), but ended up running it on Lollipop on Samsung phone, non-rooted.
These are the steps, no heroics necessary :)
---------- export CC=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang cd fossil ./configure --with-openssl=none make ### enable USB debugging from Developer menu in phone Device Options ### connect the device via USB ### if connected ok, the device shows up as 'device' in sudo adb devices ## and you can get into shell sudo adb shell ## copy the fossil onto the device and run it from shell sudo adb push fossil /data/local/tmp sudo adb shell > cd /data/local/tmp > export HOME=$PWD > export PATH=$PWD:$PATH > fossil version WARNING: linker: ./fossil: unused DT entry: type 0x6ffffef5 arg 0x1464 WARNING: linker: ./fossil: unused DT entry: type 0x6ffffffe arg 0x1ba8 WARNING: linker: ./fossil: unused DT entry: type 0x6fffffff arg 0x2 This is fossil version 2.11 [e5653a4ceb] 2020-03-26 18:54:02 UTC ----------
Well, a little wrinkle with the warnings. May be because I ran it on Lollipop, but targeted for Jelly Bean, or may be some config flag missing.
Anyways, it runs OK, creates and handles the repos. I was able to start it in server mode
fossil server and then see the repo's page in the browser at
http://localhost:8080. All this without root.
WOW! Thanks for investigating! This should go on a Fossil sticky page.
Thanks for investigating! This should go on a Fossil sticky page.
i'm willing to port it into an embedded doc. In your opinion, should this go into:
or into an Android-specific build page? It seems kind of fringe-case, IMO, for the main build docs, but i don't have strong feelings against it.
I prefer the build page. Searches for "Android", "iOS" can link to the build page. Thanks!
These instructions have been adapted into the build docs:
See what is currently section 6.0. There's a link there to a StackOverflow post which describes the potential source of, and possible solutions for, the "DT entry" warnings.
The adaptation was primarily copy/paste, with a small bit of text expansion. Please report any bugs i may have inadvertently introduced.