Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dosemu tur #1423

Merged
merged 10 commits into from
Jan 1, 2025
Merged

Dosemu tur #1423

merged 10 commits into from
Jan 1, 2025

Conversation

stsp
Copy link
Contributor

@stsp stsp commented Dec 27, 2024

Hi guys!

This is my attempt to build dosemu2
under termux. I haven't tried dosemu1
for that task, as it doesn't support aarch64,
whereas dosemu2 does.
Unfortunately, dosemu2 is a monster,
(while dosemu1 is very small), so I spent
almost a month figuring out its deps and
packing it up into termux... I don't even
know if people will appreciate that amount
of new packages, all of which are just a
build-deps. :( I actually only added the
most essential deps - it had much more,
I removed some.

Status:

  • Builds on CI: from termux, from tur and the hacked-up my own
  • Tested on waydroid/x86_64 only, so please test on aarch64!
  • All acceleration (jit, kvm, native execution on x86 host) - disabled
  • pthread_cancel() replaced with pthread_kill(), so on exit you'll see messages like "terminated on signal" etc

I'd say its a pure miracle that it even works.
But I believe it suits termux better than
dosbox does, because it can flawlessly work
on text terminal without gfx mode.
Which termux is all about. :)

@stsp
Copy link
Contributor Author

stsp commented Dec 27, 2024

Here's the demo of dosemu2 on terminal:
https://www.youtube.com/watch?v=_seqxpqvuXs
As can be seen, its not just for simple text -
most of complex TUI things actually work.

@stsp
Copy link
Contributor Author

stsp commented Dec 27, 2024

Oh, can someone please tell me what
is this "dry-run" thing? I only made sure
the packages can be built on CI.

@stsp
Copy link
Contributor Author

stsp commented Dec 27, 2024

I removed the .git suffixes from URLs.
I suspect this is what makes dry-run to
fail... But only the trial can tell.

tur/comcom64/build.sh Outdated Show resolved Hide resolved
tur/fdpp/build.sh Outdated Show resolved Hide resolved
tur/instfd/build.sh Outdated Show resolved Hide resolved
tur/nasm-segelf/build.sh Outdated Show resolved Hide resolved
tur/dj64dev/build.sh Outdated Show resolved Hide resolved
tur/djstub/build.sh Outdated Show resolved Hide resolved
tur/dosemu2/build.sh Show resolved Hide resolved
tur/thunk-gen/build.sh Outdated Show resolved Hide resolved
tur/ctags-cross/build.sh Outdated Show resolved Hide resolved
@licy183
Copy link
Collaborator

licy183 commented Dec 29, 2024

As you're the maintainer of these packages, I'll merge this PR after these things are get resolved. Thanks for your contribution!

stsp and others added 10 commits December 29, 2024 12:45
Host build of universal-ctags.
Needed for the brograms that build-depend on ctags: in termux,
ctags are not built for host.
This adds SmallerC C compiler.
It is cross-platform, and under Termux can be used to
compile for dosbox. It is also used with dosemu2, which
I am also planning to submit.
go32-compatible stub that supports COFF, PE and ELF payloads.
This is a generator for C and assembler thunks.
dj64dev is a development suite that allows to cross-build 64-bit
programs for DOS.
64bit command.com.
nasm fork with segelf patches.
It supports real-mode segment relocations in ELF files.
64-bit DOS core.
FreeDOS installer for dosemu2.
@stsp
Copy link
Contributor Author

stsp commented Jan 1, 2025

As you're the maintainer of these packages, I'll merge this PR after these things are get resolved.

I addressed your comments.
As for maintaining - I only tested
these packages under waydroid/x86_64.
If setting the maintenance to
@termux-user-repository helps
better testing, I can do that.

Status update:

  • enabled jit on x86 platforms
  • enabled LTO

So mostly this is a fully-functional build,
just with GUI stripped off (termux doesn't
need GUI, it needs TUI). It seems, for arm
platforms there is no JIT even in upstream
version, so for now this is probably the
best what I could package.

@licy183
Copy link
Collaborator

licy183 commented Jan 1, 2025

LGTM. Thanks!

@licy183 licy183 merged commit 039b79f into termux-user-repository:master Jan 1, 2025
7 checks passed
@stsp stsp deleted the dosemu_tur branch January 1, 2025 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants