I've never had to add a patch to a SPEC file before and I can't seem
to make it work.
The patch is to make a modification to the Makefile. I created the
patch (diff -u) and put that in my SOURCES directory. I included the
Patch0: line and then called the patch in %prep using %patch0 (no
switches). When I run rpmbuild I get the following:
[user@system rpmbuild]$ rpmbuild -ba SPECS/gpredict.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ILyyD6
+ umask 022
+ cd /home/user/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /home/user/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 -p0 --fuzz=0
The text leading up to this was:
--------------------------
|--- Makefile 2010-11-15 20:07:20.676418835 -0500
|+++ Makefile 2010-11-15 21:35:53.803407014 -0500
--------------------------
File to patch:
It appears to not find Makefile. Most likely I'm just failing to do
something correctly here. Can someone point me in the proper
direction?
Thanks,
Eric
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 02:48 PM
Andy Shevchenko
Adding patches in a SPEC
You need to do patch on top of source tree container
Another way:
mycoolpkg-5.3/
/Makefile
/Makefile.orig
...
gendiff mycoolpkg-5.3 .orig > mycoolpkg-fix.patch
On Tue, Nov 16, 2010 at 5:43 PM, Eric "Sparks" Christensen
<sparks@fedoraproject.org> wrote:
> I've never had to add a patch to a SPEC file before and I can't seem
> to make it work.
>
> The patch is to make a modification to the Makefile. *I created the
> patch (diff -u) and put that in my SOURCES directory. *I included the
> Patch0: line and then called the patch in %prep using %patch0 (no
> switches). *When I run rpmbuild I get the following:
>
> [user@system rpmbuild]$ rpmbuild -ba SPECS/gpredict.spec
> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ILyyD6
> + umask 022
> + cd /home/user/rpmbuild/BUILD
> + LANG=C
> + export LANG
> + unset DISPLAY
> + cd /home/user/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 -p0 --fuzz=0
> The text leading up to this was:
> --------------------------
> |--- Makefile * 2010-11-15 20:07:20.676418835 -0500
> |+++ Makefile * 2010-11-15 21:35:53.803407014 -0500
> --------------------------
> File to patch:
>
>
> It appears to not find Makefile. *Most likely I'm just failing to do
> something correctly here. *Can someone point me in the proper
> direction?
>
> Thanks,
> Eric
> --
> devel mailing list
> devel@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
>
--
With Best Regards,
Andy Shevchenko
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 03:04 PM
Patrick MONNERAT
Adding patches in a SPEC
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 ...
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 03:15 PM
Itamar Reis Peixoto
Adding patches in a SPEC
On Tue, Nov 16, 2010 at 1:43 PM, Eric "Sparks" Christensen
<sparks@fedoraproject.org> wrote:
> I've never had to add a patch to a SPEC file before and I can't seem
> to make it work.
>
> The patch is to make a modification to the Makefile. *I created the
> patch (diff -u) and put that in my SOURCES directory. *I included the
> Patch0: line and then called the patch in %prep using %patch0 (no
> switches). *When I run rpmbuild I get the following:
>
> [user@system rpmbuild]$ rpmbuild -ba SPECS/gpredict.spec
> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ILyyD6
> + umask 022
> + cd /home/user/rpmbuild/BUILD
> + LANG=C
> + export LANG
> + unset DISPLAY
> + cd /home/user/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 -p0 --fuzz=0
> The text leading up to this was:
> --------------------------
> |--- Makefile * 2010-11-15 20:07:20.676418835 -0500
> |+++ Makefile * 2010-11-15 21:35:53.803407014 -0500
> --------------------------
> File to patch:
>
>
> It appears to not find Makefile. *Most likely I'm just failing to do
> something correctly here. *Can someone point me in the proper
> direction?
>
> Thanks,
> Eric
> --
> devel mailing list
> devel@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
>
Makefile is a autotools generated file, you should not patch it.
I think you should patch Makefile.in or Makefile.am
23rt
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 03:18 PM
"Eric "Sparks" Christensen"
Adding patches in a SPEC
On Tue, Nov 16, 2010 at 11:04, Patrick MONNERAT <pm@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:
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
--------------------------
File to patch:
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 08:28 PM
Martin Sourada
Adding patches in a SPEC
On Tue, 2010-11-16 at 11:18 -0500, Eric "Sparks" Christensen wrote:
> On Tue, Nov 16, 2010 at 11:04, Patrick MONNERAT <pm@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
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-16-2010, 09:17 PM
"Eric "Sparks" Christensen"
Adding patches in a SPEC
-----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@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@@GLIBC_2.2.5'
/usr/bin/ld: note: 'sincos@@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@@GLIBC_2.2.5'
/usr/bin/ld: note: 'sincos@@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.
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@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@@GLIBC_2.2.5'
> /usr/bin/ld: note: 'sincos@@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@@GLIBC_2.2.5'
> /usr/bin/ld: note: 'sincos@@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-implicit-DSO-change-in-Fedor.patch
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
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
11-17-2010, 11:39 AM
"Eric "Sparks" Christensen"
Adding patches in a SPEC
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/17/2010 03:57 AM, Martin Sourada wrote:
> 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@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@@GLIBC_2.2.5'
>> /usr/bin/ld: note: 'sincos@@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@@GLIBC_2.2.5'
>> /usr/bin/ld: note: 'sincos@@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-implicit-DSO-change-in-Fedor.patch
>
> 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
So just to add another twist to the problem, if I build from source on
my computer, not using rpmbuild, everything works just fine. I put the
SPEC and the source into rpmbuild and FAIL.
I could post everything up to my fpeople account if someone would like
to look at everything that I have.
I appreciate you helping me out with this.
- --Eric
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
On Wed, 2010-11-17 at 07:39 -0500, Eric "Sparks" Christensen wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 11/17/2010 03:57 AM, Martin Sourada wrote:
> > 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@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@@GLIBC_2.2.5'
> >> /usr/bin/ld: note: 'sincos@@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@@GLIBC_2.2.5'
> >> /usr/bin/ld: note: 'sincos@@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-implicit-DSO-change-in-Fedor.patch
> >
> > 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
>
> So just to add another twist to the problem, if I build from source on
> my computer, not using rpmbuild, everything works just fine. I put the
> SPEC and the source into rpmbuild and FAIL.
That's interesting, and most likely beyond my ability to help, but maybe
connected to the build flags fedora rpmbuild uses... Does it also fail
if built via koji (i.e. commit to fedora git and do fedpkg build; or
just do a scratch build)?
>
> I could post everything up to my fpeople account if someone would like
> to look at everything that I have.
>
Just pushing the intended changes (without the patch, at least
initially) to fedora git is fine (every package maintainer can do fedpkg
clone gpredict).
Cheers,
Martin
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel