On Tue, 2010-11-16 at 17:17 -0500, Eric "Sparks" Christensen wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/16/2010 04:28 PM, Martin Sourada wrote:
> On Tue, 2010-11-16 at 11:18 -0500, Eric "Sparks" Christensen wrote:
>> On Tue, Nov 16, 2010 at 11:04, Patrick MONNERAT <pm(a)datasphere.ch> wrote:
>>> On Tue, 2010-11-16 at 17:48 +0200, Andy Shevchenko wrote:
>>>> You need to do patch on top of source tree container
>>>>
>>>> mycoolpkg-5.3/
>>>> /Makefile
>>>> /source.c
>>>> ...
>>>> mycoolpkg-5.3.new/
>>>> /Makefile
>>>> /source.c
>>>> ...
>>>>
>>>> run diff -ruN -p mycoolpkg-5.3 mycoolpkg-5.3.new
>>>>
>>>
>>> ... and use %patch0 -p 1 ...
>>
>> Okay, I ran the above diff and created a nice patch:
>>
>> diff -ruN -p gpredict-1.2/Makefile gpredict-1.2.new/Makefile
>> --- gpredict-1.2/Makefile 2010-11-15 20:07:20.676418835 -0500
>> +++ gpredict-1.2.new/Makefile 2010-11-16 11:04:49.677590541 -0500
>> @@ -168,7 +168,7 @@ OTOOL64 =
>> PACKAGE = gpredict
>> PACKAGE_BUGREPORT =
>> PACKAGE_CFLAGS = -pthread -I/usr/include/gtk-2.0
>> -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
>> -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
>> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
>> -I/usr/include/pixman-1 -I/usr/include/freetype2
>> -I/usr/include/libpng12 -I/usr/include/goocanvas-1.0
>> -PACKAGE_LIBS = -pthread -lgoocanvas -lgtk-x11-2.0 -lgdk-x11-2.0
>> -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0
>> -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0
>> -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lcurl
>> +PACKAGE_LIBS = -lm -pthread -lgoocanvas -lgtk-x11-2.0 -lgdk-x11-2.0
>> -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0
>> -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0
>> -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lcurl
>> PACKAGE_NAME =
>> PACKAGE_STRING =
>> PACKAGE_TARNAME =
>>
>> I changed the SPEC to say "%patch0 -p 1". I get the same error
(below):
>>
>> [user@server rpmbuild]$ rpmbuild -ba SPECS/gpredict.spec
>> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.wAGj7E
>> + umask 022
>> + cd /home/christensene/rpmbuild/BUILD
>> + LANG=C
>> + export LANG
>> + unset DISPLAY
>> + cd /home/christensene/rpmbuild/BUILD
>> + rm -rf gpredict-1.2
>> + /usr/bin/gzip -dc /home/user/rpmbuild/SOURCES/gpredict-1.2.tar.gz
>> + /bin/tar -xf -
>> + STATUS=0
>> + '[' 0 -ne 0 ']'
>> + cd gpredict-1.2
>> + /bin/chmod -Rf a+rX,u+w,g-w,o-w .
>> + echo 'Patch #0 (gpredict-1.2-DSO.patch):'
>> Patch #0 (gpredict-1.2-DSO.patch):
>> + /bin/cat /home/user/rpmbuild/SOURCES/gpredict-1.2-DSO.patch
>> + /usr/bin/patch -s -p1 --fuzz=0
>> The text leading up to this was:
>> --------------------------
>> |diff -ruN -p gpredict-1.2/Makefile gpredict-1.2.new/Makefile
>> |--- gpredict-1.2/Makefile 2010-11-15 20:07:20.676418835 -0500
>> |+++ gpredict-1.2.new/Makefile 2010-11-16 11:04:49.677590541 -0500
>> --------------------------
> That might be because the Makefile actually isn't there -- it's usually
> created from Makefile.in after calling ./configure. IMHO you have
> several options
> * use sed to make the change, after running configure
> * patch Makefile.in instead of Makefile
> * patch Makefile.am and reconfigure (autoreconf --force,
> or ./autogen.sh, depending how autotools are handled in
> gpredict)
>
> And anyway, why are you trying to patch it this way? Unless I missed
> something you're adding -lm to PACKAGE_LIBS which is however already
> present (prior to -lcairo) there.
>
> Martin
>
I ran into the following error when I was building the SRPM:
/usr/bin/ld: solar.o: undefined reference to symbol 'sincos@(a)GLIBC_2.2.5'
/usr/bin/ld: note: 'sincos@(a)GLIBC_2.2.5' is defined in DSO
/lib64/libm.so.6 so try adding it to the linker command line
/lib64/libm.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[4]: *** [test-002] Error 1
make[4]: *** Waiting for unfinished jobs....
/usr/bin/ld: solar.o: undefined reference to symbol 'sincos@(a)GLIBC_2.2.5'
/usr/bin/ld: note: 'sincos@(a)GLIBC_2.2.5' is defined in DSO
/lib64/libm.so.6 so try adding it to the linker command line
/lib64/libm.so.6: could not read symbols: Invalid operation
I was told that I needed to add the -lm to the PACKAGE_LIBS which is
what I was trying to do. If this is NOT what I need to do or I need to
fix this in a different manner I'm open to suggestions.
Well, the thing is, unless I read the patch incorrectly, that -lm
already is in PACKAGE_LIBS, so this error is even more confusing. Does
it build with the patched Makefile (i.e. does running make after editing
the Makefile works)?
Actually, I've just searched a bit over the net, try doing something
along the lines of this patch (to different package)
http://launchpadlibrarian.net/48982549/0001-Fix-building-clutk-with-impli...
Perhaps, it would be best if you committed the changes you want to make
to git so that people here could look into it in full context.
Martin