Fossil Forum

cannot parse manifest for check-in: tip

cannot parse manifest for check-in: tip

(1) By anonymous on 2018-10-20 16:15:57 [link] [source]

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.

(2) By Stephan Beal (stephan) on 2018-10-20 16:25:56 in reply to 1 [link] [source]

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.

(3) By anonymous on 2018-10-20 16:45:33 in reply to 2 [link] [source]

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.

(6) By anonymous on 2020-03-24 21:37:00 in reply to 2 [link] [source]

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.

(4) By skywalk on 2020-03-24 14:44:43 in reply to 1 [link] [source]

Does Fossil support Android builds?

(5) By Kees Nuyt (knu) on 2020-03-24 19:04:52 in reply to 4 [link] [source]

Does Fossil support Android builds?

It has been done before, but I found it hard to use.

Kees Nuyt

(7) By skywalk on 2020-03-25 18:07:42 in reply to 5 [link] [source]

Thanks, I did not see that. 
I am pondering sync'ng to my phone or android tablet with Fossil. 
Has anyone tried this?

(8) By anonymous on 2020-03-25 20:00:23 in reply to 7 [link] [source]

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.

(9) By skywalk on 2020-03-26 15:07:18 in reply to 8 [link] [source]

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.

(10) By anonymous on 2020-03-26 19:17:55 in reply to 9 [link] [source]

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.

(11) By skywalk on 2020-03-26 21:01:35 in reply to 10 [link] [source]

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.

(12) By anonymous on 2020-03-27 08:57:06 in reply to 11 [source]

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

### 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.

(13) By skywalk on 2020-03-27 13:43:37 in reply to 12 [link] [source]

WOW! Thanks for investigating! This should go on a Fossil sticky page.

(14) By Stephan Beal (stephan) on 2020-03-27 14:34:12 in reply to 13 [link] [source]

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.

(15) By skywalk on 2020-03-27 14:41:36 in reply to 14 [link] [source]

I prefer the build page. Searches for "Android", "iOS" can link to the build page. Thanks!

(16) By Stephan Beal (stephan) on 2020-03-27 15:20:13 in reply to 12 [link] [source]

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.