Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / qt / 2009-11

Packaging

9 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Den Jean

Hi,

some Lazarus users probably would
like that packages are available
for the Qt4 Binding.

I normally only use a rpm based distro.
I already do an effort by creating binaries for
Mac and Win (platforms I do not use)

If people want to improve, they can look into
creating a qmake project, that could normalize the building process and create packages.
I have other priorities than creating packages for debian.

Makefiles just serve to finally create calls to gcc, these calls I wrote by hand (there was no qmake in qt2) to more easily configure which Qt to use on the system.
- 2 different Qt's on a system:
The system Qt used to be a Qt3 not so long ago (Debian stable is still qt3/kde3) or an old unwanted Qt4 (eg Qt 4.0 and you wanted Qt 4.4)
- cross compiling
The makefile would just pickup the wrong one. But for distro packaging, the system t is ofcourse the target Qt. Both methods can coexist.

I would propose to store the rpm and deb packages somewhere (fpc website?), most distros allow the addition of package sources.
- one for latest stable lazarus in a stable source and
- an often refreshed one in a testing/cooker package source

The binding source is created by scripts, with many manual steps. A Qt binding is actually always alot of manual work (defining solutions to every exception, just read the so called typedef system of QtJambi or a kalyptus generator. If one day I have too much time, I could start again from scratch, use e.g. parts of the QtJambi project that is available now, and publish everything. Now I do not even find
time to clean up everything and publish it or
make a nicer website. Everyone points at smoke instead of QtJambi, but after so many years, smoke is still
undocumented. This is one of the reasons mentioned by PySide developers to not use smoke. I started many years ago when smoke info was even more scarce.

Because a debian maintainer refuses to include the FPC Qt binding because it is not based on smoke, I will not change it to smoke. But everyone is free to create one. I guess it would be more interesting if you would spend time in creating packages.

regards,

Den Jean

Reply by email

zeljko
to Den Jean
Den Jean wrote 13 lines
The binding source is created by scripts, with many manual steps. A Qt binding is actually always alot of manual work (defining solutions to every exception, just read the so called typedef system of QtJambi or a kalyptus generator. If one day I have too much time, I could start again from scratch, use e.g. parts of the QtJambi project that is available now, and publish everything. Now I do not even find time to clean up everything and publish it or make a nicer website. Everyone points at smoke instead of QtJambi, but after so many years, smoke is still undocumented. This is one of the reasons mentioned by PySide developers to not use smoke. I started many years ago when smoke info was even more scarce.

I've tried yesterday to find some docs about smoke , but there's definitelly nothing, so that means that you should learn everything from source (definitelly a PITA).

Because a debian maintainer refuses to include the FPC Qt binding because it is not based on smoke, I will not change it to smoke. But everyone is free to create one. I guess it would be more interesting if you would spend time in creating packages.

Agree. Smoke is nice thing, but just for developers who made it and some other ppl with a lot spare time to learn from source.
Leave it as it is , don't waste your time, just try to create deb's and rpm's for binary bindings and that's it (I already have rpm spec for libqt4intf).

zeljko

Reply by email

Vincent Snijders
to zeljko
zeljko wrote
Leave it as it is , don't waste your time, just try to create deb's and rpm's for binary bindings and that's it (I already have rpm spec for libqt4intf).

We can distribute them with Lazarus, if they are not allowed in the distro repos.

Vincent

Reply by email

Matthias Klumpp
to Den Jean: some Lazarus users probably would like that packages are available for the Qt4 Binding. I…
Den Jean wrote 5 lines
Hi, some Lazarus users probably would like that packages are available for the Qt4 Binding.

Yes. And packages are already available, but they're not in Debian, which prevents compiling LCL-Qt4 applications on Debian.

Show quoted text 8 lines
I normally only use a rpm based distro. I already do an effort by creating binaries for Mac and Win (platforms I do not use) If people want to improve, they can look into creating a qmake project, that could normalize the building process and create packages. I have other priorities than creating packages for debian.

You should not create Debian packages. (This is what I do) I package applications, the Debian developers approve them and allow upload to the repositories. They decide, if a package gets accepted. I got this comment on the sources:
The build system looks like it is a buildd killer. It basically builds all files at once, instead of build all files and then link them together.
It would be nice, if someone could fix this so the package gets accepted. (I have no experience how to create a qmake-file. And if I had, the changes I would make have to be forwarded to upstream and be included in the official sources)

Show quoted text 11 lines
Makefiles just serve to finally create calls to gcc, these calls I wrote by hand (there was no qmake in qt2) to more easily configure which Qt to use on the system. - 2 different Qt's on a system: The system Qt used to be a Qt3 not so long ago (Debian stable is still qt3/kde3) or an old unwanted Qt4 (eg Qt 4.0 and you wanted Qt 4.4) - cross compiling The makefile would just pickup the wrong one. But for distro packaging, the system t is ofcourse the target Qt. Both methods can coexist.

Create both would fix this.

I would propose to store the rpm and deb packages somewhere (fpc

website?),

most distros allow the addition of package sources. - one for latest stable lazarus in a stable source and - an often refreshed one in a testing/cooker package source

I can send you Debian packages for AMD64 and X86 if you want. Those packages work great. (but because of the issues it is not clear if they will be accepted for Debian)

Show quoted text 17 lines
The binding source is created by scripts, with many manual steps. A Qt binding is actually always alot of manual work (defining solutions to every exception, just read the so called typedef system of QtJambi or a kalyptus generator. If one day I have too much time, I could start again from scratch, use e.g. parts of the QtJambi project that is available now, and publish everything. Now I do not even find time to clean up everything and publish it or make a nicer website. Everyone points at smoke instead of QtJambi, but after so many years, smoke is still undocumented. This is one of the reasons mentioned by PySide developers to not use smoke. I started many years ago when smoke info was even more scarce. Because a debian maintainer refuses to include the FPC Qt binding because it is not based on smoke, I will not change it to smoke.

I don't think the Debian dev asked you to use SMOKE. He said he likes Smoke more than the manual way of creating bindings. (It seems he is a Smoke developer)
Could you please give an answer to this statement?

The sources seem to contain many autogenerated files with moc. these should be redone on build.

How are the bindings done? By manually writing each wrapper class or by some 'secret script' that helps?

If you use a script but do many manual changes, I would answer this script cannot be included, because it only helps with manuel writing of the wrapper classes.

It looks like the qreal handling is too fragile, but might be just enough to make it work on debian, and it seems to assume that all people using Qt on arm uses 'qtopia'. (qtopia doesn't exist anymore)

Well, this is something I know nothing about ;-P

And wouldn't it make more sense to create different bindings for each qt module? That's what the python, c#, ruby, php, lua, ... bindings are doing.

But everyone is free to create one. I guess it would be more interesting if you would spend time in creating packages.

The packaging is fine but ONE developer looked at the code. So I had to ask you about these issues to reply on this criticism and to get the package accepted.

Best regards
Matthias Klumpp

Reply by email

Matthias Klumpp
to Den Jean: some Lazarus users probably would like that packages are available for the Qt4 Binding. I…
Show quoted text 6 lines
I haven't gotten to the packaging yet, because there is two things from upstream that *needs* to be fixed. 1) The moc gerenated files *needs* to be generated on build, else the build might break on each new qt version. 2) The build system needs to be done in a way that doesn't kill buildds when it can be avoided.

Okay, this means: He will not upload the package to Debian, but another one (maybe a Lazarus-Maintainer?) could do that, if the issues above are fixed. Could someone of the Qt4intf-Team please include a build system and add the script which generates the moc file?
Thanks a lot!
Regards
Matthias Klumpp

Reply by email

Den Jean
to Matthias Klumpp
Matthias Klumpp wrote 5 lines
> I haven't gotten to the packaging yet, because there is two things from > upstream that *needs* to be fixed. > 1) The moc gerenated files *needs* to be generated on build, else the > build might break on each new qt version.

It is disturbing to see how little knowledge a Qt/Kde packager has of Qt, but then Debian does not even have Kde4 in stable. It is alot of work to create a binding for each new version of Qt. This is not what a distro package maintainer does. This is why (effort) Nokia decided to stop this effort for QtJambi.

http://labs.trolltech.com/blogs/2009/10/02/adapting-qt-jambi-to-a-new-minor-version-of-qt/

This is also why the most long lasting Qt binding, PyQt, is a commercial one and licenses fund the binding effort.

http://www.riverbankcomputing.co.uk/software/pyqt/license (grep fund)

The moc files are included to ease the compilation process, you only need to indicate where the Qt libs are and where the Qt includes are, you do not need to change the search path to have the correct moc binary called. With correct I mean of the same Qt version as the binding, on debian not the same Qt as the distribution Qt (Debian is still Qt3 in stable)

> 2) The build system needs to be done in a way that doesn't kill buildds > when it can be avoided.

This I actually do not understand, not that I know buildd, but what is wrong with the code, it is way smaller than kde4, how can this be too heavy to compile for buildd.

Anyhow, what is wrong with already providing binary packages for the main architectures. I already compiled binaries for the main architectures.

Okay, this means: He will not upload the package to Debian, but another one (maybe a Lazarus-Maintainer?) could do that, if the issues above are fixed. Could someone of the Qt4intf-Team please include a build system and add the

The whole team (aka moi) will look into it.

But it would be way more interesting to have binary packages, like for fpc to enable users of a given distro to quickly get going.

regards,

Den Jean

Reply by email

Vincent Snijders
to Den Jean
Den Jean wrote
> Could someone of the Qt4intf-Team please include a build system and add the The whole team (aka moi) will look into it.

:-)

But it would be way more interesting to have binary packages, like for fpc to enable users of a given distro to quickly get going.

Isn't that the purpose of all this? But the binary packages have to be build somehow by the given distro, like they do for fpc.

Vincent

Reply by email

Den Jean
to Vincent Snijders
Vincent Snijders wrote
Isn't that the purpose of all this? But the binary packages have to be build somehow by the given distro, like they do for fpc.

The distro people have sample fpc packages on sourceforge from fpc devs to start from. I guess making a package for fpc is way more difficult than for qt4intf, in the end it is a single library to install.

Sometimes people confuse the means with the end purpose. A makefile or qmake are the means, the end purpose is a call to gcc. Just run qmake -pro on my sources and you will see why it is for me far more easy to maintain a simple gcc compile script file than a qmake project file. qmake seems to me a tool for people afraid of reading man gcc. When they have to cross compile, they do not know what happens. If you have experience with scratchbox, you should understand why the whole makefile problem/build system has led to projects that cannot be cross compiled due to their makefile and you need faking environments to fix that. My comparably simple cross compile scripts allows you to cross compile w/o the whole scratchbox nightmare (that only works on debian).

Anyhow I will look into it adding a qmake file, perhaps than it would be also more easy to add it to fpc svn, so that it could be build from svn using the distro qt. (of course not build by default). I know it are mostly c++ sources, so it would be strange to add them to fpc, but they are only meant for fpc, the whole binding tries to be pascal friendly by providing pascal language factories to c++ (see bindhelp.cpp)

regards,

Den Jean

Reply by email

Matthias Klumpp
to Den Jean: It is disturbing to see how little knowledge a Qt/Kde packager has of Qt, but then Debian…
Den Jean wrote 10 lines
Anyhow, what is wrong with already providing binary packages for the main architectures. I already compiled binaries for the main architectures. > Okay, this means: He will not upload the package to Debian, but another > one > (maybe a Lazarus-Maintainer?) could do that, if the issues above are > fixed. > Could someone of the Qt4intf-Team please include a build system and add > the The whole team (aka moi) will look into it.

Great!

But it would be way more interesting to have binary packages, like for

fpc

to enable users of a given distro to quickly get going.

You could look at my testbuilds at [1] or look at [2] for the Debian version of the package.
Regards
Matthias

-------------
Links:
[1]: http://ppa.launchpad.net/ximion/ppa/ubuntu/pool/main/libq/libqtintf4/ [2]:
http://mentors.debian.net/cgi-bin/maintainer-packages?action=details;package=libqtintf4

Reply by email