Swordfish90 / cool-retro-term

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

Build Packages for Debian environments. #136

Open timfallmk opened 10 years ago

timfallmk commented 10 years ago

It would be great to have built packages for debian environment, namely Ubuntu. There are lot of build requirements that would make it harder to build yourself.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5077196-build-packages-for-debian-environments?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).
Swordfish90 commented 10 years ago

Yeah, I wanted to wait till the code was in a stable state (no more changes to the build system and so on). Right now I think it might be time to really consider packaging.

KAMiKAZOW commented 10 years ago

Debian/Ubuntu have "alien" to install RPMs. Tell me how the dependencies are called there and I can add them to the spec file (or one of you does it) but I think you meant .deb packages.

timfallmk commented 10 years ago

Right. I definitely meant debs. Alien is a good hack, but not for permanent packages. Sent using CloudMagic On Fri, Oct 03, 2014 at 4:28 PM, KAMiKAZOW notifications@github.com wrote:Debian/Ubuntu have "alien" to install RPMs. Tell me how the dependencies are called there and I can add them to the spec file (or one of you does it) but I think you meant .deb packages.

—Reply to this email directly or view it on GitHub.

timfallmk commented 10 years ago

Have you considered something like Bin Tray for a build/serve system? Sent using CloudMagic On Fri, Oct 03, 2014 at 4:37 PM, Tim Fall tim@midokura.com wrote:Right. I definitely meant debs. Alien is a good hack, but not for permanent packages. Sent using CloudMagic On Fri, Oct 03, 2014 at 4:28 PM, KAMiKAZOW notifications@github.com wrote:Debian/Ubuntu have "alien" to install RPMs. Tell me how the dependencies are called there and I can add them to the spec file (or one of you does it) but I think you meant .deb packages.

—Reply to this email directly or view it on GitHub.

KAMiKAZOW commented 10 years ago

Actually the LSB standard says that RPM is the proper permanent solution and there is no sane reason why RPMs shouldn't be understood by apt but that's an off topic discussion. :-)

Bintray is a commercial service. Open Build Service does the same as proper FOSS solution with a free of charge instance running on http://build.opensuse.org (incl support for Debian and Ubuntu), although I think getting CRT into Debian itself would be the best course of action. All Debian derivatives (like Ubuntu) would inherit CRT automatically.

timfallmk commented 10 years ago

It was just a suggestion. And I'm not sure if it's "commercial" but it is free.Sent using CloudMagicOn Fri, Oct 3, 2014 at 17:48, KAMiKAZOW notifications@github.com wrote: Actually the LSB standard says that RPM is the proper permanent solution and there is no sane reason why RPMs shouldn't be understood by apt but that's an off topic discussion. :-)

Bintray is a commercial service. Open Build Service does the same as proper FOSS solution with a free of charge instance running on http://build.opensuse.org (incl support for Debian and Ubuntu), although I think getting CRT into Debian itself would be the best course of action. All Debian derivatives (like Ubuntu) would inherit CRT automatically.

—Reply to this email directly or view it on GitHub.

jekader commented 10 years ago

I would also love to see this packaged as a .deb - hope this happens soon.

jekader commented 10 years ago

So I made some initial manifest which build into .deb just fine on my system. Pull request created. Now it's up to someone to configure OpenBuildService to produce the packages.

jekader commented 10 years ago

The pull request was merged, so to build a .deb you can tun these commands:

1) install dependencies:

apt-get install git devscripts debhelper build-essential build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtgraphicaleffects qml-module-qtquick-dialogs qml-module-qtquick-localstorage qml-module-qtquick-window2

2) fetch sources and build the deb: $ mkdir crt_debian && cd crt_debian && git clone https://github.com/Swordfish90/cool-retro-term.git && tar -cvzf cool-retro-term_0.9.orig.tar.gz cool-retro-term/* && cd cool-retro-term && cp -r packaging/debian . && debuild -us -uc

KAMiKAZOW commented 10 years ago

Building doesn't even start in my OBS test repo. It just says "excluded". Apparently something called dsc file is required as well, at least that's what exists under https://build.opensuse.org/package/show/shells:fish:release:2/fish

jekader commented 10 years ago

Hmmm... Interesting. The .dsc file contains checksums of archives and is generated during package build [1]. This kind of defeats the whole purpose of automated builds, or maybe I'm misunderstanding something. Still, I've shared the files I got during my build so that you can test if this makes the build run [2]. The resulting .deb is there as well just in case.

[1] https://wiki.debian.org/dsc [2] https://www.jekader.net/owncloud/public.php?service=files&t=b3830181c15fcc8924f11555ce6cff7a&path=%2F0.9

KAMiKAZOW commented 10 years ago

Maybe it's also that the source package has to have ".orig" in its name? I have absolutely no clue. Debian packaging seems insanely convoluted – 5 files + 1 directory with an additional file to achieve the exactly same thing an RPM can do in a single file (two if you outsource the changelog).

Considering that I'm not using any Debian-based distribution, I don't have that much motivation to find out the details about Debian packaging (I'm still learning RPM ;) ). Maybe one of you guys want to register an account on https://build.opensuse.org/ and try for yourself?

jekader commented 10 years ago

@KAMiKAZOW I tried to build it but it's missing dependencies on the build service. Wanted to put it on Launchpad instead, and guess what I randomly found?

https://launchpad.net/~joern-schoenyan/+archive/ubuntu/lxqt/+packages

A chap is trying to build it on Launchpad! Need to get in touch with him to inform about this thread.

JoernSchoenyan commented 10 years ago

Really a nice coincidence ;-)

Well, that dependencies are missing at all in Ubuntu Trusty, but they do exist in Utopic.

JoernSchoenyan commented 10 years ago

I've added qt5-default to the build dependencies and it builds! Can't test it right now, because I'm still on Trusty and crashed my Utopic VM few days ago. So feel free to test it ;-)

jekader commented 10 years ago

@JoernSchoenyan thank you! Tested to install and work on Debian Sid amd64. Please create a pull request to add the build dependency. Otherwise tell me and I'll do that. Also, can you somehow automate the process on launchpad to regularly pull and build latest git commits?

JoernSchoenyan commented 10 years ago

I guess yes, even if I've never tried it. I will take a look into that tomorrow and inform you about my progress.

JoernSchoenyan commented 10 years ago

Hello everyone, short update:

Good news: with different dependencies it's now building correctly in Ubuntu Trusty (tested locally with pbuilder). The bad news: Launchpad isn't able to import the Git repo.

2014-10-18 11:53:24 INFO Unable to import branch because of limitations in Bazaar. 2014-10-18 11:53:24 INFO The repository you are fetching from contains submodules, which are not yet supported.

JoernSchoenyan commented 10 years ago

I've uploaded the debian folders to my Google Drive, there is one for Trusty (not sure if it would work for Precise - I guess not) and one for Utopic, which should work in the next cycle, too. In the future, there will be a smaller diff to Debian regarding Qt than in the past.

Copy the appropiate debian-* folder in the source folder, then:

dch (if you want to update the changelog for example to bump the version) debuild -S -sa (to build the source package - you will need an archive with the source, too, but only once per version. so when you've uploaded 0.9, you can omit -sa and run only debuild -S) dput ppa:your-team/your-ppa ../cute-retro-term_0.9-2~trusty1_source.changes (or simmilar)

I hope that helps ;-)

https://drive.google.com/file/d/0B5KBmyjlQESwS202Yzh6VkJuTWM/view?usp=sharing

tomchiverton commented 9 years ago

I have succesfully used @JoernSchoenyan debian folder to package to a Ubuntu PPA, and it's install without issues on my Trusty laptop, including all the dependencies.

https://launchpad.net/~bugs-launchpad-net-falkensweb/+archive/ubuntu/cool-retro-term/

Swordfish90 commented 9 years ago

@tomchiverton Good news. Which version are you currently packaging?

Swordfish90 commented 9 years ago

If someone is interested in packaging it for Ubuntu 14.10 there is a known issue between the default Qt version and libxext (stdout gets flooded with error messages slowing down the experience). The only solution is to grab the vivid version of libxext.

tomchiverton commented 9 years ago

@Swordfish90 master as of last night

Swordfish90 commented 9 years ago

@tomchiverton Good. It's better to update the version in the package then. I can still read 0.9, which was a sort of boilerplate version we had before.

tomchiverton commented 9 years ago

@Swordfish90 what version should the package be called ? I can easily call it any version regardless of what the internal original source file is called.

Also, I'm not sure what 'vivid version' of libext refers to. In theory we can have a different dependency for 14.10 or statically compile against our own version though, so that's fixable.

Swordfish90 commented 9 years ago

@tomchiverton This is the ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1369113 . This is related to steam games but the error is the same. This bug was fixed upstream in the following commit:

http://cgit.freedesktop.org/xorg/lib/libXext/commit/?id=11aad96bd689d54156064d2e81213dc827a689d1

At the moment I've installed the libxext version from vivid on my laptop (http://packages.ubuntu.com/source/vivid/libxext) but I understand this is a suboptimal solution. So if someone has a better idea I'm all ears.

tomchiverton commented 9 years ago

@Swordfish90 I'm tempted to publish the package as is for 14.10 then, and note on the PPA web page that you should upgrade that library if you find the performance poor ?

Swordfish90 commented 9 years ago

@tomchiverton Agreed. I think it's probably the best solution at the moment. We'll see if someone has a better solution in the long term.

tomchiverton commented 9 years ago

Done.

nodiscc commented 8 years ago

The RFP for a cool-retro-term Debian package is at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758238

tomchiverton commented 8 years ago

The RFP is over a year old, and needs a lawyer to unpick the licence issues. I think sticking with a PPA is the best plan.

nodiscc commented 8 years ago

https://github.com/Swordfish90/cool-retro-term/blob/master/app/qml/fonts/modern-envy-code-r/Read%20Me.txt#L16

tomchiverton commented 8 years ago

For instance, yes. @Swordfish90 may have a licence grant we don't know about, for instance.

Swordfish90 commented 8 years ago

@tomchiverton ... I'm sorry I completely forgot about the licensing issues. I don't have any license grant and I think this needs to be addressed quite soon. To the experts here: getting those licenses would solve all the problems with the Debian packages or we are forced to remove the non-free fonts?

nodiscc commented 8 years ago

I think you'd have to completely remove Monaco. I think other non-free fonts would have to be packaged in separate non-free packages, but maybe you could start with a package that provides only free fonts?

You can ask the Debian people by replying to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758238

buhtz commented 8 years ago

I am not able to build the current git repo on Debian unstable.

user@TONNE:~/share/work/cool-retro-term$ LANG=en-US.UTF-8 qmake
user@TONNE:~/share/work/cool-retro-term$ LANG=en-US.UTF-8 make
cd qmltermwidget/ && ( test -e Makefile || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/user/share/work/cool-retro-term/qmltermwidget/qmltermwidget.pro -o Makefile ) && make -f Makefile 
Cannot find file: /home/user/share/work/cool-retro-term/qmltermwidget/qmltermwidget.pro.
Makefile:43: recipe for target 'sub-qmltermwidget-make_first-ordered' failed
make: *** [sub-qmltermwidget-make_first-ordered] Error 2
tomchiverton commented 8 years ago

My PPA is available for 16.04, so it must be able to build on that platform ?

buhtz commented 8 years ago

@tomchiverton Ubuntu 16.04 is far away from Debian unstable. It is not the same plattform.

tomchiverton commented 8 years ago

Correct. I am unsure of how far the two diverge at the moment. What KDE platform version is unstable ? (K)ubuntu is using 5.5.

buhtz commented 8 years ago

I don't use KDE as desktop. Not sure what libs are in the system. You can find details at Debians Package Tracker. e.g. for meta-kde.

alexmyczko commented 8 years ago

Maybe you want to add an Atari 800 font? www.aiei.ch/atari/

alexmyczko commented 8 years ago

Oh and https://github.com/rewtnull/amigafonts (the ttf/ directory)

probonopd commented 8 years ago

You could build an AppImage on Travis CI and reach users of debian, Ubuntu, CentOS, Fedora, Linux Mint, elementary OS, openSUSE, and many other distributions with just one and the same AppImage.

buhtz commented 8 years ago

There are a lot of discussed disadvantages of such image-formats (AppImage, Snappy, etc). It is not recommended. And this Issue is about debian packes and not alternative solutions.

probonopd commented 8 years ago

It's not an either-or...

jekader commented 8 years ago

As always, pull requests are welcome ;)

xaionaro commented 7 years ago

Relates: https://github.com/Swordfish90/cool-retro-term/pull/331

buhtz commented 7 years ago

Also see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758238

And https://github.com/Swordfish90/cool-retro-term/issues/332

probonopd commented 7 years ago

...and https://github.com/Swordfish90/cool-retro-term/pull/336

alexmyczko commented 6 years ago

I'm having problems packaging (well running the software) when removing non-free fonts: my app/qml/fonts only has

modern-hermit modern-inconsolata modern-pro-font-win-tweaked modern-proggy-tiny modern-terminus

and the others removed, where else do I have to edit that the fonts are gone? Any way you separate the non-free fonts from the building, and have them optional?