taviso / 123elf

A native port of Lotus 1-2-3 to Linux.
1.17k stars 59 forks source link

Dockerfile #42

Open apiening opened 2 years ago

apiening commented 2 years ago

I would love to give this a test drive out of curiosity. But it doesn't look easy for me to build this, or is it? It would be great to have a Dockerfile or docker image so that running this would be super easy. Maybe someone is already working on this?

mikeslattery commented 2 years ago

A Dockefile would be awesome.

I would suggest a multi-staged build, requiring the disk images be in the root directory. I may volunteer for this, if this is something @taviso would like to have done.

Publishing a binary image on Docker Hub may not be a good idea, due to possible legal issues (see ToS 4.3, 11)

taviso commented 2 years ago

I'm definitely interested, but I'm not a docker expert - there is an open PR from @gdm85 (see #10)!

Sorry I'm being slow getting to these requests, I'm really excited to get this working well but there's so much to do 😆

gdm85 commented 2 years ago

I would suggest a multi-staged build, requiring the disk images be in the root directory

I went for a volume-mount there in #10.

Sorry I'm being slow getting to these requests, I'm really excited to get this working well but there's so much to do

No worries but I humbly suggest to get #11 better sooner than later because...it can act as a guard against breakage :sweat_smile: for example I am not able to build it anymore with latest changes after pulling (tried with ./run-from-container.sh 20 and ./run-from-container.sh 22):

/home/lotus/source/main.c:59: undefined reference to `banner_printed'
./ld: /home/lotus/source/main.c:66: undefined reference to `banner_printed'
./ld: wrappers.o: in function `__unix_fcntl':
/home/lotus/source/wrappers.c:139: undefined reference to `__fcntl_time64'
./ld: /home/lotus/source/wrappers.c:172: undefined reference to `__fcntl_time64'
./ld: /home/lotus/source/wrappers.c:190: undefined reference to `__fcntl_time64'
./ld: wrappers.o: in function `__unix_stat':
/home/lotus/source/wrappers.c:258: undefined reference to `__stat64_time64'
./ld: wrappers.o: in function `__unix_fstat':
/home/lotus/source/wrappers.c:273: undefined reference to `__fstat64_time64'
./ld: patch.o: in function `display_column_labels':
/home/lotus/source/patch.c:58: undefined reference to `get_column_labels'
./ld: /home/lotus/source/patch.c:64: undefined reference to `get_column_labels'
./ld: atfuncs/atfuncs.a(date.o): in function `at_date':
/home/lotus/source/atfuncs/date.c:16: undefined reference to `get_integer'
./ld: /home/lotus/source/atfuncs/date.c:17: undefined reference to `get_integer'
./ld: /home/lotus/source/atfuncs/date.c:18: undefined reference to `get_integer'
apiening commented 2 years ago

Thank you for the feedback! Didn't think of the licensing issue regarding a docker image, honestly. I'll watch the project and try it when https://github.com/taviso/123elf/pull/10 is merged or a similar simple build option that works with plain Ubuntu linux.

taviso commented 2 years ago

/home/lotus/source/main.c:59: undefined reference to banner_printed' ./ld: /home/lotus/source/main.c:66: undefined reference tobanner_printed' ./ld: wrappers.o: in function `__unix_fcntl':

I think maybe just try make clean? I think I need to improve the Makefile to notice when the symbols change!

gdm85 commented 2 years ago

Yes, that worked!