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

Build Packages for Debian environments. #136

Open
timfallmk opened this issue Oct 3, 2014 · 53 comments
Open

Build Packages for Debian environments. #136

timfallmk opened this issue Oct 3, 2014 · 53 comments

Comments

@timfallmk
Copy link

timfallmk commented Oct 3, 2014

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
Copy link
Owner

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
Copy link
Contributor

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
Copy link
Author

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
Copy link
Author

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
Copy link
Contributor

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
Copy link
Author

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
Copy link
Contributor

jekader commented Oct 9, 2014

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

@jekader
Copy link
Contributor

jekader commented Oct 10, 2014

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
Copy link
Contributor

jekader commented Oct 11, 2014

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

  1. 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
Copy link
Contributor

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
Copy link
Contributor

jekader commented Oct 12, 2014

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
Copy link
Contributor

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
Copy link
Contributor

jekader commented Oct 17, 2014

@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
Copy link

Really a nice coincidence ;-)

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

@JoernSchoenyan
Copy link

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
Copy link
Contributor

jekader commented Oct 17, 2014

@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
Copy link

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
Copy link

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
Copy link

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
Copy link
Contributor

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
Copy link
Owner

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

@Swordfish90
Copy link
Owner

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
Copy link
Contributor

@Swordfish90 master as of last night

@Swordfish90
Copy link
Owner

@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
Copy link
Contributor

@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
Copy link
Owner

@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
Copy link
Contributor

@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
Copy link
Owner

@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
Copy link
Contributor

Done.

@nodiscc
Copy link

nodiscc commented Jan 4, 2016

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

@tomchiverton
Copy link
Contributor

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.

@tomchiverton
Copy link
Contributor

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

@Swordfish90
Copy link
Owner

@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
Copy link

nodiscc commented Jan 7, 2016

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
Copy link

buhtz commented Aug 9, 2016

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
Copy link
Contributor

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

@buhtz
Copy link

buhtz commented Aug 10, 2016

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

@tomchiverton
Copy link
Contributor

tomchiverton commented Aug 10, 2016

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
Copy link

buhtz commented Aug 10, 2016

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
Copy link
Contributor

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

@alexmyczko
Copy link
Contributor

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

@probonopd
Copy link
Contributor

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
Copy link

buhtz commented Oct 24, 2016

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
Copy link
Contributor

It's not an either-or...

@jekader
Copy link
Contributor

jekader commented Oct 24, 2016

As always, pull requests are welcome ;)

@xaionaro
Copy link

xaionaro commented Feb 1, 2017

Relates: #331

@buhtz
Copy link

buhtz commented Jul 20, 2017

@probonopd
Copy link
Contributor

...and #336

@alexmyczko
Copy link
Contributor

alexmyczko commented Jan 4, 2018

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?

@alexmyczko
Copy link
Contributor

Guess I have to do the reverse described in: #240 (comment) to get the non-free stuff removed from the software. Or maybe replace it with free alternatives...

@alexmyczko
Copy link
Contributor

alexmyczko commented Jan 21, 2020

meanwhile http://sid.ethz.ch/debian/cool-retro-term/2020/ a package is ready for official debian inclusion, waiting in NEW queue for review

@alexmyczko
Copy link
Contributor

alexmyczko commented Jan 24, 2020

meanwhile if you have debian sid you can apt install cool-retro-term

i guess this one can be closed? please close this issue, as it's available on debian, ubuntu, raspberry...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests