[opensuse-factory] grub-0.97 patch error
Hi, all I'm a student working on an opensuse GSoC project which aims at enabling ext4 file system as grub legacy boot patition for opensuse and others. As I was told in the other mailing list, I downloaded the latest src.rpm file from http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/sr... After unrpming the source package, and following the patch order in grub.spec, all patches are applied successfully (wildcard patches are disabled in grub.spec, so I didn't apply them either). BUT, there are some problems without wildcard patches. The dir function declaration in stage2/shared.h is modified in stage2-wildcard.diff and this modification is needed by other files in stage2 directory. Without it, I got compiling errors saying disk_io.c: In function 'print_completions': disk_io.c:1481: error: too many arguments to function 'dir' disk_io.c:1500: error: too many arguments to function 'dir' After making the following changes, everything goes right. --- stage2/shared.h.orig 2008-04-22 11:06:15.000000000 +0800 +++ stage2/shared.h 2008-04-22 11:14:48.000000000 +0800 @@ -1006,7 +1006,7 @@ /* List the contents of the directory that was opened with GRUB_OPEN, printing all completions. */ -int dir (char *dirname); +int dir (char *dirname, void (*handle)(char *)); int set_bootdev (int hdbias); Hope there's someone taking care of this:-) -- RGDS Bergwolf ................ Here lieth one whose name was writ on water. --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi there, On Tue, Apr 22, 2008 at 10:10:25PM +0800, Peng tao wrote:
I'm a student working on an opensuse GSoC project which aims at enabling ext4 file system as grub legacy boot patition for opensuse and others. As I was told in the other mailing list, I downloaded the latest src.rpm file from http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/sr...
After unrpming the source package, and following the patch order in grub.spec, all patches are applied successfully (wildcard patches are disabled in grub.spec, so I didn't apply them either).
BUT, there are some problems without wildcard patches. The dir function declaration in stage2/shared.h is modified in stage2-wildcard.diff and this modification is needed by other files in stage2 directory. Without it, I got compiling errors saying disk_io.c: In function 'print_completions': disk_io.c:1481: error: too many arguments to function 'dir' disk_io.c:1500: error: too many arguments to function 'dir'
I tried to reproduce this build failure and didn't succeed so far. How did you apply the patches, that were shipped with the source RPM? You might want to read http://en.opensuse.org/GNOME/Packaging#Quilt on how to deal with the .spec file and multiple patches. http://en.opensuse.org/SUSE_Build_Tutorial has more detailed information on the build process. Best, Christoph -- Christoph Thiel, Tech. Project Management, Research & Development SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi, Christoph On 4/23/08, Christoph Thiel <cthiel@suse.de> wrote:
Hi there,
On Tue, Apr 22, 2008 at 10:10:25PM +0800, Peng tao wrote:
I'm a student working on an opensuse GSoC project which aims at enabling ext4 file system as grub legacy boot patition for opensuse and others. As I was told in the other mailing list, I downloaded the latest src.rpm file from http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/sr...
After unrpming the source package, and following the patch order in grub.spec, all patches are applied successfully (wildcard patches are disabled in grub.spec, so I didn't apply them either).
BUT, there are some problems without wildcard patches. The dir function declaration in stage2/shared.h is modified in stage2-wildcard.diff and this modification is needed by other files in stage2 directory. Without it, I got compiling errors saying disk_io.c: In function 'print_completions': disk_io.c:1481: error: too many arguments to function 'dir' disk_io.c:1500: error: too many arguments to function 'dir'
I tried to reproduce this build failure and didn't succeed so far. How did you apply the patches, that were shipped with the source RPM? I applied them one by one in a script file using patch command...sort of stupid compared with quilt :-(
You might want to read http://en.opensuse.org/GNOME/Packaging#Quilt on how to deal with the .spec file and multiple patches. http://en.opensuse.org/SUSE_Build_Tutorial has more detailed information on the build process.
After comparing my patching script with the series file generated by "quilt setup grub.spec", I found my problem. I mistakenly applied stage2-dir-callback.diff that is disabled in grub.spec. This patch changes dir function definition in disk_io.c. That's the reason why I got the build failure. So it's now solved. Human eyes hardly win auto tools :P Thank you for helping me so much. Hope I'm not flooding the mailling list:-)
Best, Christoph -- Christoph Thiel, Tech. Project Management, Research & Development SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- RGDS Bergwolf ................ Here lieth one whose name was writ on water.
participants (2)
-
Christoph Thiel
-
Peng tao