![]() |
Alternative ways of creating a debian source package in Qt Creator
I've been fighting with Qt Creator for two weeks now, trying to make the "publishing wizard" construct a debian source package for me. I've tried using the SDK on both OS X and Linux, and used both my own projects and some of the example projects, and every time I get the same error:
Code:
debian/rules clean I guess what I'd really like to ask is whether there are folks out there packaging products using the current Qt SDK. Does the wizard work for you, and if not, what practices do you use for packaging up apps for submission to extras? Thanks in advance! |
Re: Alternative ways of creating a debian source package in Qt Creator
I added a build step by following the instructions from here: http://qt-funk.blogspot.com/2011/02/...le-source.html
You also need to make some changes to the rules file, else it will fail in the autobuilder. Add these two lines using a text editor (make sure tabs are used for the indents, not spaces). Code:
Code:
P.S. I get the same permissions problem when using the wizard. |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
I'll go ahead and make the changes to my rules file, too. Thanks again! |
Re: Alternative ways of creating a debian source package in Qt Creator
Ok, I've messed around a bit, and I just can't figure out how to get qt-funk's build command to actually place source code into the tarball; it apparently has to run in the "build" directory, and only object files exist there. I'm pretty sure the Extras system wants the actual source code, right? It looks like I'll have to do something quite different to create a source package...
Update: Ok, blew away my build directory and started completely fresh build. Now, the tarball just has a .deb file inside it, none of the object files from before. I still don't understand fully what is going on here, but I'm guessing I just needed to clean things up from my previous failed attempts. Anyway, I'll push this into Extras-devel, and start on the next level of error messages. :) |
Re: Alternative ways of creating a debian source package in Qt Creator
As I am not a developer this may or may not help. The auto builder needs 3 files tar.gz (executable file(s), icons in the folder structure it needs to be installed in), .changes and .dsc file.
It is simple enough to go into another package that is similar to yours to see what has actually been submitted to the auto builder. package search http://maemo.org/packages/ example of cute tube qml package "source files" http://maemo.org/packages/source/vie...qmltube/1.1.1/ btw it took me a month to figure out how to package icons soo... If your interested I used py to deb in the end on my n900 |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
So, I tried this: I made a full copy of the project source directory into <projectname>-0.1.0, then copied the debian directory from the build directory into that, and ran dpkg-buildpackage on that directory. And that seems to have worked! It created a humongous tarball with tons of unnecessary stuff in it, but I went ahead and uploaded it, and for goodness sakes it seems to have built correctly! Amazingly enough, I now have an app on its way to extras-devel... :) |
Re: Alternative ways of creating a debian source package in Qt Creator
Hi, i have a problem...
I'm wrote a application for maemo5 with qt creator 2.4.1, sdk 1.2, but when i used a wizard to upload packages to extras-testing (Build→publish project), the output is: Code:
debian/rules clean -rwxr-xr-x 1 utente utente 1969 2012-01-28 18:28 rules so it has execute permission... I followed the directions of Marxian, but the output don't change... Can someone help me? Thanks to anyone who wants to give me a hand, sorry for my bad english, but I'm italian :D P.s. this is the structure of my source folder: -/home/user/Source_folder | |- qt_packages/ | | | |- debian_frematle/ | | | |- changelog | compat | control | copyright | postinst | README | rules | |- script/ (created by me) | |- icon64.png deployment.pri icon80.png img.qrc icon.desktop main.cpp icon_harmattan.desktop mainwindow.cpp app.pro mainwindow.h app.pro.user mainwindow.ui icon.svg |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
https://bugreports.qt-project.org/br...REATORBUG-6866 There are a couple of work-arounds for now; you can use the system I've described above (which I'm still using for my app), or you can try Michael's approach -- he slips in and changes the permission on the file while the build is running, by starting the following script right before he starts the wizard: Code:
while [ true ]; do chmod +x /tmp/qtc_packaging/projectname/debian/rules; done |
Re: Alternative ways of creating a debian source package in Qt Creator
But the /tmp/ directory is created on source directory (or in the build directory) by wizard and after is remove?
Sorry but I don't understand when I run Code:
while [ true ]; do chmod +x /tmp/qtc_packaging/projectname/debian/rules; done |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
It's a brute-force kind of method, but it works. What I'm doing is I'm trying to mimic what the wizard does by hand: Step one: I build my app and use the SDK's "Build Debian Package and Install to Maemo5 Device" option to install it onto my phone. Step two: I make a copy of my source directory. Step three: I put a copy of the "debian" directory that was created in step one (which I find in "projectname-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release") into my copied source directory. Step four: I make the two changes to the debian/rules file that Marxian described above (uncommenting qmake and $(MAKE) under the "build-stamp:" target, and commenting out the $(MAKE) clean line under the "clean:" target). Step five: I use the technique described in this web page to have the Qt SDK set up a call to "dpkg-buildpackage" against my copied source directory. (The web page runs dpkg-buildpackage directly against the build directory, but that didn't work for me -- I put the name of my copied source directory in where he's using "$BUILDDIR".) Step six: I have Qt do another build of my project, including the new custom step. And poof, the desired debian package emerges! :) Ok, yeah, that's not an easy process at all, and probably isn't the most efficient way to do it, but it works for now. Ultimately, the Qt guys should eventually fix this bug, and the wizard will go back to making life easier for everybody. :) |
Re: Alternative ways of creating a debian source package in Qt Creator
First of all thanks for the help.
I spent a pair of hours working on the project, following your pattern I could (I honestly do not know how) to get the three files needed to upload (.tar.gz, .changes and .dsc), but I can not try because extras assistant is offline. For the moment I can say that I was not able to use the wizard to complete the upload .. If you will go wrong, go back to the old version. I will try tomorrow, Wish me good luck :D |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
It's true, this Debian packaging system seems more complex than it really needs to be (or, perhaps, it just isn't described well enough anywhere). Honestly, you can get it to work with enough effort, it just takes a lot of time invested to figure out what it is trying to do... |
Re: Alternative ways of creating a debian source package in Qt Creator
Ok, now my new package is on extras...
The problem is, when I install my package by repository, the output is: E: handler silently failed Why? :confused: Thanks for everything really :D P.s. I have upload the 3 file with maemo extras assistant |
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
Quote:
|
Re: Alternative ways of creating a debian source package in Qt Creator
Quote:
I copied the debian file created by the debug build to the main directory, then pointed the working directory of the "Qt Funk Custom Step" to this directory. The tar.gz now contains the full source and amazingly I have a appilcation execpted by autobuilder. :) Thanks for the help Copernicus. |
All times are GMT. The time now is 16:17. |
vBulletin® Version 3.8.8