stsp / dj64dev

dj64dev development suite
https://github.com/stsp/dj64dev/
GNU Lesser General Public License v3.0
4 stars 0 forks source link

move to debian? #5

Open stsp opened 2 weeks ago

stsp commented 2 weeks ago

Hi @skitt

I spent the considerable efforts on finishing and polishing dj64dev. All missing functionality that I was aware of, is now implemented. The usage of the tool-chain is greatly simplified and fully documented: https://github.com/stsp/dj64dev/blob/master/README.md Also the demos are provided: https://github.com/stsp/dj64dev/tree/master/demos clang and freebsd ports are done. Freebsd port required static linking support, as it seems freebsd's dlopen() ignores the link order... so 2 weeks spent on making dlmopen() (which is missing on freebsd) optional, appears to be in vain, as dlopen() is also bad there. But static linking is now implemented and works.

So to me it really looks like a tool-chain now, rather than a set of an undocumented, unportable ad-hocs. Please let me know what is missing to get it into debian, so that I can work it out.

skitt commented 2 weeks ago

OK, let’s do this; here’s what I need to do, I’ll open issues as appropriate if I run into problems:

stsp commented 2 weeks ago

Is there a similar list for a programmer?

and so on. There must be some, as I don't think debian wants the unportable or undocumented stuff.

skitt commented 2 weeks ago

Yes, there is: https://wiki.debian.org/UpstreamGuide

stsp commented 2 weeks ago
Forbidden

<p>You are not allowed to access this!</p>

OMG... use vpn?

skitt commented 2 weeks ago

Wow, that’s surprising!

stsp commented 2 weeks ago

So www.debian.org works but wiki.debian.org blocks (I used vpn so reading up).

stsp commented 2 weeks ago

OK, so from the above manual:

stsp commented 2 weeks ago

I think the short man page can be written, but what should I do with README.md? Can I just package it to deb and say that I now have the off-line docs?

skitt commented 2 weeks ago

Packaging a README file is fine if the README provides useful documentation for end-users; that’s the case for dj64dev’s, not so much for thunk-gen. IMO from a package perspective man pages are better because more users think of using them, but from an overall perspective most users get their info from web searches now anyway, so improving READMEs is a better use of developer/maintainer time.

stsp commented 2 weeks ago

not so much for thunk-gen.

Thunk_gen is too internal. It is very unlikely to every be used by anyone including myself (I am not planning any new thunk_gen-based DOS code ports). Do you think it should still be documented? Of course I can just briefly describe what it does, but that won't help any of its potential users (which are none).

skitt commented 2 weeks ago

Yeah I agree there’s no point in documenting thunk-gen further, all I meant was that there is also no point in packaging its README.

stsp commented 2 weeks ago

Ah, ok. I am currently trying to make dj64-gcc script more relevant, as this is the only "binary" that may potentially require a man page (no other binaries are provided).

Also I have forgot to mention that djstub must be included first. Now since dj64dev has demos (that require djstub to be built), I suppose I need to add it to build-deps.

stsp commented 2 weeks ago

Or not, since demos are not built by default... But in either case, djstub must be packaged before thunk_gen or dj64dev.

skitt commented 2 weeks ago

https://tracker.debian.org/news/1537129/accepted-thunk-gen-00git20240607f9cae90-1exp1-source-amd64-into-experimental/ — it’s already been accepted!

stsp commented 2 weeks ago

Good, thanks! :) Although djstub should better go before dj64dev, or it would be a complete breaker. :)

skitt commented 2 weeks ago

Yes, I updated the todo list above :wink:

stsp commented 2 weeks ago

update smallerc

Hmm, how difficult would it be to push updates, once things are in a debian? smallerc was updated rather long ago, but seems like every update needs some amount of work from you from now on? What's the procedure?

skitt commented 2 weeks ago

Yes, only DDs or DMs can upload packages to Debian. Once the initial packaging is done most updates are straightforward: gbp import-orig --uscan to import the latest release (or git commit if the project is set up that way), review the changes, dch to update the changelog, check the build, and upload.

stsp commented 2 weeks ago

Ok, I suppose for some time they should live in parallel with PPA builds. And then we'll see if the PPA can be discontinued.

stsp commented 2 weeks ago

Added a primitive man page. As for packaging README.md - it contains too many external links, so its off-line use is very small.

stsp commented 2 weeks ago

Could you please help with this bug report: https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/2069483 by checking if it is fixed in bullseye? On which, I think, Focal is based.

skitt commented 2 weeks ago

Could you please help with this bug report: https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/2069483 by checking if it is fixed in bullseye? On which, I think, Focal is based.

It’s fixed in bullseye, but focal is based on buster — at least, bullseye has coreutils 8.32, whereas focal has 8.30, same as buster. The same sort error occurs on buster as on focal.

stsp commented 2 weeks ago

So is this table wrong? https://askubuntu.com/questions/445487/what-debian-version-are-the-different-ubuntu-versions-based-on

Would be cool if you can help with fixing it on buster, although I already applied this hack: https://github.com/stsp/dj64dev/commit/eb37e92e2dcb3e0f27bf0b2225c2eaf4ec138642 to check for FreeBSD explicitly. :) I hate doing the like things, but the hack is already there, so no rush at all (but maybe you can at least bug-report that).

Also I wonder what's the destiny of lfanew. I talked you into adding it, and then dropped (shit happens, but overall I simply didn't know smallerc's upstream is that responsive - he patched the linker for me). What would happen now with the package? It was documented as a dosemu2 requirement, which is no longer true.

skitt commented 2 weeks ago

That table is a simplification, see https://unix.stackexchange.com/a/404261/86440. Focal was branched off of bullseye during bullseye’s development, which means it has package versions that are guaranteed to be equal to or newer than those in buster (hence my comment above), and equal to or older than those in bullseye — so saying that it’s based on bullseye is misleading.

Buster is dropping out of LTS at the end of the month, and has been out of mainstream support since 2022, so it’s not possible to fix bugs there any more (other than security issues or critical bugs in packages supported in ELTS).

Regarding lfanew, I’ll stop it from being included in the next Debian release, unless another use-case turns up for it. Debian has loads of little-used (or even unused) leaf packages, so one more in unstable won’t be a problem :wink:.

stsp commented 2 weeks ago

Ok, thanks for info. Pretty clear now. :) One day I'll just drop Focal. It already did some problems in the past.

stsp commented 2 weeks ago

Hmm in fact, speaking of an off-line documentation, I can instead create a -demos package. Or is it an overkill?

stsp commented 2 weeks ago

Demos added to share/doc/dj64. So I suppose the doc question is closed.

stsp commented 4 days ago

Hi @skitt thanks for checking in the progress boxes. :) I think 1 more task should be added to update thunk-gen, as there was 1 incompatible change, that probably happened after you uploaded it to debian.

stsp commented 4 days ago

As for the license review, I am now also trying to do that. :) (yes, code first, license last!) And I see a small problem: all the library-related code (which means src/libc/* was licensed under LGPL. But src/libc/dj64 is a port of fdpp's porting layers, which were licensed under GPLv3+. Now I am not sure what does this mix give us. Should I, as a sole author of that code, re-license src/libc/dj64/* under LGPLv2+? Or LGPLv3+? Or GPLv3+ suits?

stsp commented 4 days ago

Or GPLv3+ suits?

Well, I am afraid it doesn't suit, as in this case the resulting libs are also GPLv3+, which is undesirable... So I am afraid we need to do something here. Fortunately I am the sole author of that code, so any re-licensing can be done without hesitations. I just need to understand what suits the best.

stsp commented 4 days ago

Wrote to djgpp list. Hope they will be able to guide me with that.

stsp commented 4 days ago

https://www.delorie.com/archives/browse.cgi?p=djgpp/2024/06/28/16:28:37

stsp commented 4 days ago

OK, I have finished the license review. You'll now need to re-do that step again. :)

stsp commented 1 day ago

Actually I wonder if it is a normal practice to use GPLv2+ or LGPLv2.1+, but explicitly disallowing to ever upgrade them to version 3... And this is what djgpp does.