OpenSUSE buildservice Debian GIT builds

User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

...continuation of this thread
Actually I did, tel the truth, I take a better look at what you done in ./unitest. You xvfb to detect the xserver.
But, as I said: " There is NO X-server or xvfb. In any Virtual Machine on OBS they are Headless. "
So.. you added the xvfb as a build requirement and it went on. That problem is solved :P
The next is that the language files (.ts) are missing. For the rpm builds I just call ./translate in the %pre section of the .spec file.
I'm not that deep in deb-pkg. Is there a way to do the same in debian files? And may be it will need some more dependencies (for translation to work)

P.S. There is another way. You can call the ./translate in witch you can add a test string for .ts files
Yep, X server problem solved. I am thinking how to solve the translation files creation in a clean Debian way.
Also the error on 12.04 builds was not related to the GCC flag, because I removed it and the error is still there.
that is more difficult to solve :(
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

I think it is better to concentrate on xubuntu 14.04, for now. When it will compile as it should. We can go back to troubleshot the 12.04. It will be much faster.
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Damn OBS !
The Debian tools they install behave differently from the ones in my distro.
Anyway, it's building again. I've tried also to resolve the error on 12.04.

Question: is there a way to automatically trigger new builds when a new commit is pushed on GIT ?

[EDIT] No way. It completely ignores this: https://github.com/mcallegari/qlcplus/b ... /rules#L12 :cry:

[EDIT2] Stupid me ! There's a file called debian.rules that overrides the one in the source tree ! I patched it now, let's see what happens...
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

YES ! YES ! YES !

All 4 packages succeeded ! 8-) 8-) 8-)

Now, to be figured out:
- if those packages actually work :D
- how to automatically produce builds when new commits are pushed on GIT
- how to give a dynamic name to the packages depending on the GIT hash

[EDIT] Just checked 14.04 amd64 package. Dependencies are OK and the package installs and works fine.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Sorry... I was out for business. Bravo! Great job...
how to automatically produce builds when new commits are pushed on GIT
I think is already working. Don't now how, but when I returned back it was already compiled.
how to give a dynamic name to the packages depending on the GIT hash
Did you mean like this: qlcplus_4.9.2.git.1442578011.095d296_i386.deb
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

cingulingu wrote:Sorry... I was out for business. Bravo! Great job...
Bravo to you ! I haven't been able to figure out the libmad problem myself !
cingulingu wrote:
how to automatically produce builds when new commits are pushed on GIT
I think is already working. Don't now how, but when I returned back it was already compiled.
Uhm...this morning I launched like a million of builds, so you have probably seen one of my refreshes :)
cingulingu wrote:
how to give a dynamic name to the packages depending on the GIT hash
Did you mean like this: qlcplus_4.9.2.git.1442578011.095d296_i386.deb
Ah yeah, I didn't understand what %ct and %h were, then I found this:
https://github.com/openSUSE/obs-service ... cm.service

I prefer %cd.%h as it is more human-understandable. I already switched to it.

I've eneabled also Ubuntu 15.04 (which is OK) and Arch-Extra. The latter almost passes. Now it's building, let's see... :)
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Ok... Nice. I'm working on the other RPM distros.
The only thing that will stay are ola,and libmad-develop, for those distros. Don't worry. There are good reasons.
More here: https://en.opensuse.org/openSUSE:Build_ ... _blacklist

I will send you when it will be ready.
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Alright, so all my 8 packages build fine now !

What I would like to get from OBS is the combination of the following in a unique place. At this point my account.

Distros:
Arch_Extra
Fedora_21
Fedora_22
openSUSE_13.1
openSUSE_13.2
openSUSE_Tumbleweed
xUbuntu_12.04
xUbuntu_14.04
xUbuntu_15.04

Archs: i586 and x86_64

QLC+ versions: Qt4 stable, Qt5 stable, Qt4 GIT, Qt5 GIT

Total of 9 * 2 * 4 = 72 packages.
Not sure about Qt4 GIT though. I'd like to phase out Qt4 as soon as I can. In case, they would be 54 packages total.

Would you be willing to help me in this ?

I've had a look at your repo and I think you can remove the -desktop.patch and the -translate.patch from your GIT version (and from the next release). Please try and let me know.
As for -libdir64.patch I think it can be autodetected in the variable.pri file. Is /usr/lib not even available on OpenSUSE 64bit distros ?
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

I send you the requests as I sad....
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I saw them. I accepted ola and libmad-opensuse.
However I asked you to remove some patches and instead you sent me a request for your whole qlcplus package.

Anyway, I created the 4 final packages and added also the OpenSUSE and Fedora targets. I picked your files and removed 2 patches.
Please let's work on that.
Probably we'll need to find some meaningful names to packages in case users want to have stable/git repos together
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hey Veljko, I've worked some more on the different packages.

I don't understand why the OBS website doesn't create the download page for me.
For example: http://software.opensuse.org/download.h ... us-qt4-git

Have you got any clue ?
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Sorry for the delay (did a concert on weekend (iron maiden-tribute (italy)) Qlight did the yob, again :P
I don't understand why the OBS website doesn't create the download page for me.
May be, because you didn't disable the repos for libmad for opensuse, libmadand-development, ola for xubuntu,...
And for those that did not compile yet (exclude flag). Disable the repos and other flags for each package accordingly.

warning: the qt5 build is pointing its files in "usr/lib(64)/qt4" change the spec file as mine and patch the "variables.pri" accordingly.
Whay? Is not GNU complaint and cause cross compile problems.

About the "translate.sh" Great job. I just have a suggestion:
To test for the "lrelease-qt5" first. Because is less likely to be installed by default and link to " lrelease " by the system witch is usually done in any distro for "lrelease-qt4"
In actual situation, It first test, for lrelease witch is (by defoult) linked to lrelease-qt4 and the files are done with it by ignoring lrelease-qt5. This is not good because that can lead for dependency errors. QT4-QT5
Tray to add as a "Build-Depends: ....qt5-tools (I'm not sure about the package name check it)" which will install lrelease-qt5

After some checking I think that the qttools5-dev depend on itself (it is strange). I don’t have any deb disto at hand to check.
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

cingulingu wrote:Sorry for the delay (did a concert on weekend (iron maiden-tribute (italy)) Qlight did the yob, again :P
Cool ! I like Iron Maiden very much. What's the name of the band ?
I don't understand why the OBS website doesn't create the download page for me.
May be, because you didn't disable the repos for libmad for opensuse, libmadand-development, ola for xubuntu,...
And for those that did not compile yet (exclude flag). Disable the repos and other flags for each package accordingly.
How do I disable those targets ? I searched the OBS website but couldn't find the option.
warning: the qt5 build is pointing its files in "usr/lib(64)/qt4" change the spec file as mine and patch the "variables.pri" accordingly.
Whay? Is not GNU complaint and cause cross compile problems.
Plugins are not system libraries, but Qt plugins loaded by QLC+ at runtime. So basically they can be installed anywhere in the system.
I think they have nothing to do with GNU compliance.
I am aware that 'qt4' looks wrong in a 'qt5' installation, but I kept it for backward compatibility.
I think that in general all the plugins should be moved in /usr/share/qlcplus/plugins, even though this would break a few things.
About the "translate.sh" Great job. I just have a suggestion:
To test for the "lrelease-qt5" first. Because is less likely to be installed by default and link to " lrelease " by the system witch is usually done in any distro for "lrelease-qt4"
In actual situation, It first test, for lrelease witch is (by defoult) linked to lrelease-qt4 and the files are done with it by ignoring lrelease-qt5. This is not good because that can lead for dependency errors. QT4-QT5
Uhm..checking for the least probable lrelease by default doesn't sound like a good idea to me.
Is yours a supposition or have you found information how an Ubuntu system installs Qt5 tools ?
I use Mint 17 daily and according to my distro lrelease is installed by qttools5-dev-tools but in /usr/lib/x86_64-linux-gnu/qt5/bin/lrelease
Tray to add as a "Build-Depends: ....qt5-tools (I'm not sure about the package name check it)" which will install lrelease-qt5
After some checking I think that the qttools5-dev depend on itself (it is strange). I don’t have any deb disto at hand to check.
I've tried many packages but they all failes. No way to pass that check.
I need to investigate a bit futher.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Cool ! I like Iron Maiden very much. What's the name of the band ?
Moonchild
How do I disable those targets ? I searched the OBS website but couldn't find the option.
Go in a project e.g. libmad and then go to repositories. After that do the same for all the others projects (qt4,git,...). Take a look at the links below, VERY IMPORTANT!
You need to disable the build targets for libmad and libmad-dev (publish flags too). Because they are blacklisted in OBS. So no Download is enabled/published for anything !
Like this: https://build.opensuse.org/package/repo ... i79/libmad
and this: https://build.opensuse.org/package/repo ... nSUSE_13.1
Or you can grant me the permission to newly added/changed projects. Including the above.
Is yours a supposition or have you found information how an Ubuntu system installs Qt5 tools ?
By default "lrelease-qt4" is link to " lrelease " in almost all distros (opensuse, ubuntu,..). And " lrelease " will be the first one found even when you want to build against Qt5.
So... If you turn that around, is much more logical to test for " lrelease-qt5 ". And if not fallback to qt4 --> " lrelease " or " lrelease-qt4 "
Almost none distro have "lrelease-qt5" installed by default. At least I didn't see one, yet.
I've tried many packages but they all failes. No way to pass that check.
I read somewhere that those packages a dependent on themselves. Why... don't know . Probably because they have bin and src packed together.
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Moonchild: LOL ! Great music but the singer is...SOOO italian ! Freaking accent that ruins the whole band :(

Packages webpage: I've added you as maintainer on every repository. Also flagged the repos as you suggested. Now it's building qt4-git. Let's see what happens.
[EDIT] Ohhh damn ! The right link is: https://software.opensuse.org/download. ... ge=qlcplus

lrelease: on a QLC+ .ts file, there's no substantial difference in running lrelease-qt4 or lrelease-qt5. They both produce valid .qm files.
The problem in Qt5 debian builds is an unmet dependency, which is required to deploy but not to build the sources.
I guess Debian checks are too strict in that sense and at the moment I have no idea how to solve it.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Great music but the singer is...SOOO italian !
Oh... Is not that bad... I've heard worse. (what you, wary wary... :P )
Packages webpage: I've added you as maintainer on every repository. Also flagged the repos as you suggested. Now it's building qt4-git. Let's see what happens.
It seems to be OK now. The download page appears.
lrelease: on a QLC+ .ts file, there's no substantial difference in running lrelease-qt4 or lrelease-qt5. They both produce valid .qm files.
I know that. I'm just saying that the Qt5 is hire to stay. And sooner or later it can cause problems. So why not now?
The problem in Qt5 debian builds is an unmet dependency, which is required to deploy but not to build the sources.
In the build-log it say to use "-d" switch. But as I said, I'm not to much in deb configs. I think it can be done in .dh file. Or in the meta configuration.

I just sort out the package naming. You can found them in my branch: https://build.opensuse.org/project/show ... allegari79
P.S. The qlcplus-qt4 (main) is downloaded now from git with the version tag :)
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

cingulingu wrote:I just sort out the package naming. You can found them in my branch: https://build.opensuse.org/project/show ... allegari79
P.S. The qlcplus-qt4 (main) is downloaded now from git with the version tag :)
This is just wrong. QLC+ tagged sources are in debug mode, while officially release sources are configured in release mode.

Anyway I think I have overwritten your changes. I tried to manually upload the released sources, but the Qt4 Ubuntu packages won't build. Damn it.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

I know, The problem is in the tar.gz archive itself. Because it has to have the same name as the project and for the deb build the directory inside has to have the same name too.

Project name: qlcplus-qt4 ---> Archive name: qlcplus-qt4-{version}.tar.gz ---> Directory Name: qlcplus-qt4-{version}

Possible solutions:
1) It is OK to live it as it is. I saw today that you already bumped the git version. And is already "tested" true qlcplus-qt4-git to compile correctly.
So when you will be ready for the new release just change the mode to release and tag it QLC+{version} as you already do. And correct the tag in obs. Simple and elegant.
2) Use a static approach. Upload the correctly formed archive and correct the version number in OBS.
3) Use a different source (ftp,cloud,...) in _service file with correctly formed archive as a target.
4) Tray to make a _service file which unpack the entire archive and repack it in a correct way ( heavy duty staff ).
5) Tray to correct the debian build to find the correct source ( but I'm skeptic about this solution )
6) I'm out of options :P
Last edited by cingulingu on Tue Sep 22, 2015 3:41 pm, edited 1 time in total.
User avatar
mcallegari
Posts: 4710
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I thought about #1 too, but there is a problem. We need to distinguish between qt4 and qt5 versions.
So the final packages must have different names. E.g.
qlcplus-4.10.0.qt4.i586.deb
qlcplus-4.10.0.qt5.i586.deb
etc..

I would say I'd opt for #2. I am uploading a qlcplus-qt4-4.9.1.tar.gz package in qlcplus-qt4. It's the official sources package, but renamed.
Let's see if it builds
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

In the first solution this is not a problem. Just change the name in the _service to "qlcplus-qt5". Every thing else is taken care of, automatically !
Actually the names of the packages will be:

qlcplus-qt4-4.10.0.i586.deb
qlcplus-qt5-4.10.0.i586.deb
.
.
.

Same as the projects names!
Post Reply