Bug 1667

Summary: create RPM for mixxx 1.9.0
Product: Fedora Reporter: John Brier <johnbrier>
Component: mixxxAssignee: Nicolas Chauvet <kwizart>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P5    
Version: 14   
Hardware: All   
OS: GNU/Linux   
namespace:
Attachments: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball.
try 2: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball.
remove two lines from build/depends.py which uses rpath for QT4
try 3: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball
try 4: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball

Description John Brier 2011-03-22 01:37:39 CET
I cobbled together my own RPM using the spec file for 1.8.2 in rpmfusion as a base:

http://people.redhat.com/~jbrier/mixxx/

can we get an RPM for mixxx 1.9.0 into rpmfusion?
Comment 1 Nicolas Chauvet 2011-03-22 23:00:12 CET
Can you make a diff against the current cvs version ?
Comment 2 Nicolas Chauvet 2011-03-26 19:19:54 CET
@john
Can you help to co-maintain this package ?
Comment 3 John Brier 2011-03-26 23:01:25 CET
@Nicolas

Yes I would like to help co-maintain this package.

I have just created a FAS account (which I think I need to work with CVS). I am going to try making a diff of the previous spec file and the one I created for 1.9
Comment 4 Nicolas Chauvet 2011-04-06 11:47:54 CEST
(In reply to comment #3)
... 
> I have just created a FAS account (which I think I need to work with CVS). I am
> going to try making a diff of the previous spec file and the one I created for
> 1.9
You can have an anonymous access to the repository without a validated fas account, using export CVSROOT=cvs.rpmfusion.org:/cvs/free instead.

Thx

Comment 5 John Brier 2011-04-12 03:37:36 CEST
I'm (In reply to comment #4)
> You can have an anonymous access to the repository without a validated fas
> account, using export CVSROOT=cvs.rpmfusion.org:/cvs/free instead.
> 
> Thx
> 

[john@farina ~]$ export CVSROOT=cvs.rpmfusion.org:/cvs/free
[john@farina ~]$ cvs co mixxx
ssh_exchange_identification: Connection closed by remote host
cvs [checkout aborted]: end of file from server (consult above messages if any)

I just downloaded the source RPM from here [1] and made a diff/patch of my spec file vs yours. 

1. http://download1.rpmfusion.org/free/fedora/updates/14/SRPMS/repoview/mixxx.html

I'll attach the patch now..
Comment 6 John Brier 2011-04-12 03:38:24 CEST
Created attachment 609 [details]
patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball.
Comment 7 Nicolas Chauvet 2011-04-12 10:10:50 CEST
About the rpath:
https://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath
Please verify that the rpath isn't set another way, specially there is this addition:
build/depends.py:            build.env.Append(LINKFLAGS = "-Wl,-rpath,$QTDIR/lib")

Usuaully, rpathes are detected by an rpm build script. Specially When a build environnement is setup using rpmdev-setuptree from a dedicated user (see ~/.rpmmacros). Also, please prefer not to use your current user for packaging tasks.

Can you verify that norpathes are provided with the new updated package ?
Thx for the work.
Comment 8 John Brier 2011-04-13 05:06:30 CEST
(In reply to comment #7)
> About the rpath:
> https://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath
> Please verify that the rpath isn't set another way, specially there is this
> addition:
> build/depends.py:            build.env.Append(LINKFLAGS =
> "-Wl,-rpath,$QTDIR/lib")
> 
> Usuaully, rpathes are detected by an rpm build script. Specially When a build
> environnement is setup using rpmdev-setuptree from a dedicated user (see
> ~/.rpmmacros). Also, please prefer not to use your current user for packaging
> tasks.
> 
> Can you verify that norpathes are provided with the new updated package ?
> Thx for the work.
> 

Okay, I created a KVM guest to do this on with a non root user..

Okay, I installed my original RPM and ran readelf -d | grep RPATH on /usr/bin/mixxx binary (there are no other binaries provided by the package) and it looks like there is only one rpath in use:

[rpmbuild@moby ~]$ rpm -qi mixxx-1.9.0
Name        : mixxx                        Relocations: (not relocatable)
Version     : 1.9.0                             Vendor: (none)
Release     : 1.fc14                        Build Date: Mon 11 Apr 2011 09:30:13 PM EDT
Install Date: Tue 12 Apr 2011 10:06:20 PM EDT      Build Host: farina.dj.edm
Group       : Applications/Multimedia       Source RPM: mixxx-1.9.0-1.fc14.src.rpm
Size        : 12652420                         License: GPLv2+
Signature   : (none)
URL         : http://www.mixxx.org
Summary     : Mixxx is open source software for DJ'ing
Description :
Mixxx is open source software for DJ'ing. You can use MP3s,
Ogg Vorbis files, and other formats as audio input. Mixxx
can be controlled through the GUI and with external
controllers including MIDI devices, and more.

Non-default rpmbuild options:
--with bpm:        Enable bpm support
--with djconsole:  Enable djconsole support
--with libgpod:    Enable libgpod support


[rpmbuild@moby ~]$ readelf -d /usr/bin/mixxx  | grep RPATH
 0x000000000000000f (RPATH)              Library rpath: [/usr/share/qt4/lib]

As you pointed out that seems to be coming from 

build/depends.py:            build.env.Append(LINKFLAGS = "-Wl,-rpath,$QTDIR/lib")


ok at this point I created a patch similar to yours that worked in 1.8.2, but mine just removed 2 lines (the if statement and the line that set the rpath option for QT4)

I hope this is safe to do. It sounds like rpath is not necessary because all those paths will be determined dynamically.

I'll attach the patch which I dropped in ~/rpmbuild/SOURCES/mixxx-1.9.0-norpath.patch

I had started to build the rpm on my KVM guest and realized it was only using one of my four cores so I stopped, installed rpmdevtools on my KVM host and created an rpmbuild user there, then copied over my ~/rpmbuild/ stuff from the guest and continued working (this is why you see the hostname change from moby to farina) ;-) 

ok so I built it and it seemed to work.. now when I run readelf on /usr/bin/mixxx and grep for RPATH i get nothing back

[rpmbuild@farina x86_64]$ su -c 'rpm -e mixxx'
Password: 
[rpmbuild@farina x86_64]$ su -c 'rpm -Uvh mixxx-1.9.0-1.fc14.x86_64.rpm'
Password: 
Preparing...                ########################################### [100%]
   1:mixxx                  ########################################### [100%]
[rpmbuild@farina x86_64]$ readelf -d /usr/bin/mixxx | grep RPATH
[rpmbuild@farina x86_64]$

Also since I am using rpmdevtools which created my ~/.rpmmacros it ran check-rpaths and didn't complain:


+ rm -rf /home/rpmbuild/rpmbuild/BUILDROOT/mixxx-1.9.0-1.fc14.x86_64/usr/share/doc
+ /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note

Now I'll attach mixxx-1.8.2-to-1.9.0.spec-2.patch to the BZ and also 
mixxx-1.9.0-norpath.patch

Let me know if this works or if it needs any other work.
Comment 9 John Brier 2011-04-13 05:09:26 CEST
Created attachment 611 [details]
try 2: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball.
Comment 10 John Brier 2011-04-13 05:10:23 CEST
Created attachment 612 [details]
remove two lines from build/depends.py which uses rpath for QT4
Comment 11 John Brier 2011-04-16 00:04:17 CEST
Nicolas, do my patch and spec file look good?

John Brier
Comment 12 John Brier 2011-04-18 20:31:46 CEST
Created attachment 616 [details]
try 3: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball

The only difference between this and mixxx-1.8.2-to-1.9.0.spec-2.patch is that I changed the %setup macro because I realized that http://downloads.mixxx.org/mixxx-1.9.0/mixxx-1.9.0-src.tar.gz extracts into mixxx-1.9.0~release-1.9.x~bzr2720, not into mixxx-1.9.0

-%setup -q
+%setup -q -n mixxx-1.9.0~release-1.9.x~bzr2720
Comment 13 Nicolas Chauvet 2011-05-01 23:38:36 CEST
(In reply to comment #11)
> Nicolas, do my patch and spec file look good?
This looks good. I was in vacation these last two weeks so I couldn't answear.

BTW. Other subject. Are you interested in packaging LiVES ?

Can you remember which is you rpmfusion fas account ?
Thx for the update.
Comment 14 John Brier 2011-05-01 23:53:09 CEST
Created attachment 622 [details]
try 4: patch for the 1.8.2 spec file to work for mixxx 1.9.0 tarball

this one changes the email address I used in the changelog to my gmail.com address instead of work.
Comment 15 Nicolas Chauvet 2011-05-04 09:51:39 CEST
@John, Are you still unable to commit ?
Comment 16 John Brier 2011-05-09 20:47:44 CEST
(In reply to comment #15)
> @John, Are you still unable to commit ?
> 

I think it's all working. 

[rpmbuild@jb F-14]$ make build
PLAGUE_CLIENT_CONFIG=/home/rpmbuild/.plague-client-rpmfusion.cfg /usr/bin/plague-client build mixxx mixxx-1_9_0-1_fc14 f14-free
Package mixxx enqueued.  Job ID: 9465.


Now we wait for someone to push it I guess?