OpenSUSE buildservice Debian GIT builds

User avatar
mcallegari
Posts: 4481
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: 4481
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: 4481
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: 4481
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: 4481
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!
User avatar
mcallegari
Posts: 4481
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I think I figured out what's wrong with qlcplus-qt4 Ubuntu packages.
The damn OBS doesn't like qlcplus-xx-4.9.1.tar.gz, but instead it likes qlcplus-4.9.1.xx.tar.gz.
That's the reason why GIT builds work and why this page gives no data:
https://software.opensuse.org/download. ... us-qt4-git

Because the package name is qlcplus and not qlcplus-xx-yy !
Now qlcplus-qt4 fails for other reasons, but it built the whole sources.
Hopefully qlcplus 4.10.0 should have all the fixes to build and pass the test units.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

I think I figured out what's wrong with qlcplus-qt4 Ubuntu packages.
The damn OBS doesn't like qlcplus-xx-4.9.1.tar.gz, but instead it likes qlcplus-4.9.1.xx.tar.gz.
I don't think so. I use the exact same syntax for the names in my projects. And I don't have any problem with that.
But don't forget the most important thing about names. The name of the package must be the same as the project to be published!
Even though, the qlcplus-qt4 for deb didn't compile too (your fixes upstream on tests). It looks like a way to go.
Take a look here:
https://build.opensuse.org/package/show ... lcplus-qt4
https://build.opensuse.org/package/show ... us-qt4-git

P.S.
Can we talk true skype about this? I think that will be much faster. Mail me your nick or PM me.
User avatar
mcallegari
Posts: 4481
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Veljko, please help to fix what's not building instead of keep commenting about the way to go.

I won't look at your packages because you introduce errors like:
- new version is 4.10.0 and not 4.10
- in a Debian .dsc file "Standards-Version:" must be 3.7.3 and not the QLC+ version or 4.9
- GitHub tagged sources produce DEBUG builds and are not OK for a stable release (qlcplus-qt4)

So if you're going to make changes to my repo, please change only the things you're sure about.
At this stage I don't care that much about names, but I can assure you my packages can all be found here:
https://software.opensuse.org/download. ... ge=qlcplus

And those are the names that I actually want.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

I know what you want to achieve (qlcplus-4.9.1.xx.tar.gz).
I just tray to explain, that you are taking the wrong way.
The hole point, is that the names and versions must be consistent threw out the whole project, beginning with the project name.
If they are not. That will lead to inconsistency, build fails, not published,... That is the OBS imperative rule for cross platform builds.
So if you want to build a qlcplus-{version.xx}.tar.gz you need to open a new project named qlcplus ({name}-{version+xx}) And this must be used in all config files for all distros!
And that will lead to another problem, when the qt5 will be added. There can not be 2 or more projects with the same name.

About the 2 numbers version 4.10. I used them just for qlcplus-qtx-git.
Why? The first number is a big release number, second is a small one, and the third is composed from where the source was take (git), commit number +date and hour.
e.g. (git.%cd.%h). and is updated each time the build is triggered.
So if same tester told you (later on) that there is a problem, you can easily pinpoint the version,commit,and when it was build.

P.S.
The links that I send you, are from a subproject. They are not synchronizing with yours any more. Just upon request.
They are not published and are there just for testing stuff. Don't take them as 100% ready.
e.g. main taken from git, versions and other stuff.

Update: 23.09.15 - 15:19 --- Your Download page for qlcplus-qt4 is empty again.

Code: Select all

qlcplus.src: W: invalid-spec-name
The spec file name (without the .spec suffix) must match the package name
("Name:" tag). Either rename your package or the specfile.
Didn't touch any thing.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

Qt5 dependencies for xubuntu, sorted.
link: https://build.opensuse.org/package/show ... us-qt5-git
Look at : qlcplus-qt5-git.dsc

Build work for:
12.04--NO
14.04--NO
15.04--YES

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

Well done Veljko.

I ported some of your changes to my repos. Thanks.
I still don't understand a few things though:
- my qlcplus-qt4 arch packages fail - I'm not using a GiHub snapshot, but a tweaked official tar.gz to build on debian
[EDIT] The same is happening in the AUR website. Apparently it is something related to release builds - wow - Under investigation
- qlcplus-qt4 debian packages do not show up here: http://software.opensuse.org/download.h ... lcplus-qt4
- my qlcplus-qt5-git still doesn't build even with your changes. Am I missing something ?

If you can have a look I would be thankful
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

- my qlcplus-qt4 arch packages fail
Don't have a clue. Can you create a mockup 4.10.0 -- "release like tar.gz" so we can test the builds with all the corrections in the code already done.
qlcplus-qt4 debian packages do not show
Publish flags "Disabled". I enabled them but they need some time to recalculate and publish. --- Done
my qlcplus-qt5-git still doesn't build even with your changes. Am I missing something ?
Yes. ", qt5-default," in .dsc -- already added.
That's why I asked to test for "lrelease-qt5" first. It seems that ubuntu has a hard-link for "lrelease --> lrelease-qt4" but we didn't use qt4tools.
But "qt5-default" sort it. :o
User avatar
mcallegari
Posts: 4481
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

As I suspected, checking for lrelease-qt5 is not a feasible way.
See this change:
https://github.com/mcallegari/qlcplus/c ... 71ac172cbd

Produces this on ubuntu 14.04 and 15.04:
[ 280s] Forcing the use of lrelease-qt5
[ 280s] lrelease, lrelease-qt4 and lrelease-qt5 are not present in this system ! Aborting.

It should use the absolute path, but it's a horrible solution. On my Mint distro (equivalent of Ubuntu 14.04) lrelease-qt5 is here
/usr/lib/x86_64-linux-gnu/qt5/bin/lrelease
so it even depends on the architecture.
What a crap.

As for qlcplus-qt4 I've uploaded a pseudo release 4.10.0 package and Arch still fails. Apparently Arch has serious problems in building a release Qt application. Crap.
User avatar
cingulingu
Posts: 57
Joined: Sat Aug 22, 2015 7:42 am
Real Name: Veljko Stankov

so it even depends on the architecture.
What a crap.
Totally agree.
As for qlcplus-qt4 I've uploaded a pseudo release 4.10.0 package and Arch still fails. Apparently Arch has serious problems in building a release Qt application. Crap.
I saw the log. I have still no clue. I will take a deeper look.
Just a question. Did the "make" take the right switches?
User avatar
mcallegari
Posts: 4481
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

cingulingu wrote:Did the "make" take the right switches?
I think so, and Googling the issue seems to be a GCC 5 related problem.
Qt4 and GCC5 have like 3 years of difference. Qt4 is most likely not ready for GCC 5.
See here: https://lists.debian.org/debian-qt-kde/ ... 00182.html

I'm trying to understand if there is a way to force a specific GCC version (e.g. 4.8) in PKGBUILD

[EDIT] SOLVED. The magic was:

Code: Select all

qmake-qt4 QMAKE_CXXFLAGS+=-Wno-error=unused-variable
Post Reply