Swordfish90 / cool-retro-term

A good looking terminal emulator which mimics the old cathode display...
22.37k stars 853 forks source link

Debian packaging and fonts #332

Closed barak closed 4 years ago

barak commented 7 years ago

I have a debian-packaging-related question.

Should the debian binary package require the fonts-3270 package, and use the font from there, and ditch the corresponding .ttf file from the binary package?

Or even more radically, perhaps all the fonts in the repo should be packaged into a fonts-cool-retro-term package, upon which the binary package containing the executable depends, thus allowing their proper installation in the system and use from elsewhere?

Currently the fonts get baked into the binary executable file itself, I believe---either of the above would require that to change, either for just one font (IBM 3270 Medium) or for all of them.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/41552036-debian-packaging-and-fonts?utm_campaign=plugin&utm_content=tracker%2F479407&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F479407&utm_medium=issues&utm_source=github).
yurikhan commented 7 years ago

That would be a good thing. Also, that would require the packager to research the licensing status of the fonts involved. Which would also be a good thing.

barak commented 7 years ago
$ git log --stat --no-merges -- '**fonts**' '*.ttf' '*.TTF' '*.otf' '*.OTF'

Urk.

buhtz commented 7 years ago

Related to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758238

alexmyczko commented 4 years ago

@barak i do the separate package building here http://phd-sid.ethz.ch/debian/cool-retro-term/VERYNEW/

but see the @pazos post at https://github.com/Swordfish90/cool-retro-term/issues/240#issuecomment-180860345 that is what we need for linux (system fonts being used, and not the font embedded into the binary)

alexmyczko commented 4 years ago

http://phd-sid.ethz.ch/debian/cool-retro-term/2020/

barak commented 4 years ago

Cool, thanks @alexmyczko, that's great. I've merged most of your changes into my debian packaging branch.

I'd really like to get this into Debian proper.

But, I'm thinking we need a proper strategy to make that happen. How does this sound to you?

Let's make a dfsg branch, which contains only free-by-Debian-standards materials. It may refer to things like fonts in a list of requirements. The executable scans at runtime for suitable fonts, and if it can't find what it really wants it backs off to something it can live with (as it does now, sure, but maybe with a popup unless that's disabled by an option or something like that.)

To make life easy, qmltermwidget gets packaged separately, just like qml-module-qtgraphicaleffects is currently.

All the fonts get moved to their own repo (or multiple repos), or at least their own branch. Maybe package the not-too-nonfree ones for uploading into non-free. Or maybe we kick out a tiny "contrib" package which just downloads/installs all the fonts at install time. Or just include a shell script to do that, which people can invoke if they get the urge.

The package proper Recommends: the non-free font packages, but can run without them.

Maybe put some verbiage somewhere encouraging people to make free versions of these archaic fonts, from scratch based on screen captures and such.

Also, need to fix cool-retro-term --version and cool-retro-term --help to not try to connect to the server at startup, so they can happen at autobuilder time and so they don't spit out warnings about X vs Wayland and whatnot. Or at least to send the "regular" --help/--version output to stdout not stderr. This would avoid the man page lagging behind.

barak commented 4 years ago

(Fixed that last sterr/stout thing, #569)

alexmyczko commented 4 years ago

it is already in NEW queue https://ftp-master.debian.org/new.html

alexmyczko commented 4 years ago

things in main can not depend (and imho should not recommend nor suggest) on stuff in non-free or contrib

alexmyczko commented 4 years ago

can we get an amigashell mode? https://github.com/rewtnull/amigafonts/ also see http://www.aiei.ch/linux/amiga/

and the typewriter one? https://github.com/Swordfish90/cool-retro-term/issues/425

if we could set a separate color for the cursor? http://bootes.ethz.ch/crt-amiga.png

what is the reason pixels/scanlines (not default) is limited to a set of fonts and not all system fonts?

barak commented 4 years ago

We could set up a stub package retro-font-collection and have it Depends: font-crappy-substitute | font-nonfree-actual-old-font for all the fonts we want. It could also Suggests: font-downloader-in-contrib.

Or, just ship a shell script to download the font files to /usr/local/share/fonts/ and run fc-cache -fv, and require the user to run it manually if they want to go that route. As long as things run without the non-free fonts, albeit at some aesthetic disadvantage, that seems fine.

The whole font issue seems like a "don't let the perfect be the enemy of the good" sort of issue. Let's get the package proper into plain old Debian, and have it use non-free fonts if available. Make life easy...

alexmyczko commented 4 years ago

Cool, thanks @alexmyczko, that's great. I've merged most of your changes into my debian packaging branch.

I suggest you don't need that branch as it might happen to land in salsa.debian.org, and then there's always the debian source package which you can easily dget and have the debian/* incl. patches (if existing)

I'd really like to get this into Debian proper.

So do I.

But, I'm thinking we need a proper strategy to make that happen. How does this sound to you?

Let's make a dfsg branch, which contains only free-by-Debian-standards materials. It may refer to things like fonts in a list of requirements. The executable scans at runtime for suitable fonts, and if it can't find what it really wants it backs off to something it can live with (as it does now, sure, but maybe with a popup unless that's disabled by an option or something like that.)

The debian package is free-by-Debian-standards (it's called DFSG): https://www.debian.org/social_contract#guidelines

To make life easy, qmltermwidget gets packaged separately, just like qml-module-qtgraphicaleffects is currently.

If no other software needs that, that doesn't make sense. Keep it like it is (or this should have happened 4+ years ago)

All the fonts get moved to their own repo (or multiple repos), or at least their own branch. Maybe package the not-too-nonfree ones for uploading into non-free. Or maybe we kick out a tiny "contrib" package which just downloads/installs all the fonts at install time. Or just include a shell script to do that, which people can invoke if they get the urge.

Why mess around with repos. This is not Ubuntu with PPAs (besides I recommend sticking with ONE repo, the official, and nothing else, that's what everyone sugggests), nobody wants a frankendebian: https://wiki.debian.org/DontBreakDebian

No downloaderscript, that's why there's debian packages. And no non-free stuff, please.

The package proper Recommends: the non-free font packages, but can run without them.

No it doesn't, and yes it runs just fine. It's just some fonts that are non-free right, feel free to find/create free alternatives that later replace the non-free ones.

Maybe put some verbiage somewhere encouraging people to make free versions of these archaic fonts, from scratch based on screen captures and such.

Good idea, there's plenty of free software tools to do so. autotrace/potrace/fontforge

Also, need to fix cool-retro-term --version and cool-retro-term --help to not try to connect to the server at startup, so they can happen at autobuilder time and so they don't spit out warnings about X vs Wayland and whatnot. Or at least to send the "regular" --help/--version output to stdout not stderr. This would avoid the man page lagging behind.

Sounds good.

alexmyczko commented 4 years ago

We could set up a stub package retro-font-collection and have it Depends: font-crappy-substitute | font-nonfree-actual-old-font for all the fonts we want. It could also Suggests: font-downloader-in-contrib.

I will not. And I discourage anyone to do so.

Or, just ship a shell script to download the font files to /usr/local/share/fonts/ and run fc-cache -fv, and require the user to run it manually if they want to go that route. As long as things run without the non-free fonts, albeit at some aesthetic disadvantage, that seems fine.

No for the reasons already mentioned.

The whole font issue seems like a "don't let the perfect be the enemy of the good" sort of issue. Let's get the package proper into plain old Debian, and have it use non-free fonts if available. Make life easy...

shrug

alexmyczko commented 4 years ago

@barak meanwhile i updated the packaging to create a separate package, but i don't call it qml-module-qtgraphicaleffects, but qml-module-qmltermwidget

barak commented 4 years ago

It seems like you're doing a great job. Please feel free to merge any of my mods as you wish. If you need someone to dput a new version I'm happy to do so, although I guess you already have a DD who's doing that job.

alexmyczko commented 4 years ago

@barak was that an offer for general packages or only crt? are you on irc?

barak commented 4 years ago

Can do others too if you'd like, sure. (Within reason etc) Not on IRC, but email barak at pearlmutter dot net gets to me.

alexmyczko commented 4 years ago

i guess this issue can be closed now?