Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 205300 - Review Request: gtk-sharp - a set of mono bindings for gtk1.2
Summary: Review Request: gtk-sharp - a set of mono bindings for gtk1.2
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks: FE-ACCEPT
TreeView+ depends on / blocked
 
Reported: 2006-09-05 21:26 UTC by Paul F. Johnson
Modified: 2007-11-30 22:11 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-09-25 21:10:08 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Build log on FC5/x86_64 (234.13 KB, text/plain)
2006-09-17 11:58 UTC, Dominik 'Rathann' Mierzejewski
no flags Details
my mock config log (180 bytes, text/plain)
2006-09-17 14:10 UTC, Paul F. Johnson
no flags Details
root log (3.16 KB, text/plain)
2006-09-17 14:11 UTC, Paul F. Johnson
no flags Details

Description Paul F. Johnson 2006-09-05 21:26:14 UTC
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec
SRPM URL: http://www.knox.net.nz/~nodoid/gtk-sharp-1.0.10-6.src.rpm
Description:

gtk-sharp is a set of mono bindings for gtk-1.2. It has been recently (today!) been removed from core to FE.

This version includes patches for the correct installation for 64 bit architectures (FC6/rawhide) as well as -devel package for the main package and gtk-sharp-gapi (both FC5 and FC6)

Note : so that this builds on both FC5 and FC6, I've had to use a hack of sorts which will vanish as soon as FC5 becomes sane with respects to architecture agnostisism. The hack creates a define which places everything in /usr/lib (FC5) or %{_libdir} (FC6). This means that it complies (in spirit at least!) with the packaging guidelines

Comment 1 Kevin Fenzi 2006-09-10 02:55:21 UTC
This review has been assigned, but is still in FE-NEW. 
Do you intend to review it? If not I would be happy to do so...

Comment 2 Kevin Fenzi 2006-09-10 02:56:35 UTC
FYI, this package fails to build in mock. I get: 

Patch #0 (gtksharp-libdir.patch):
+ patch -p1 -b --suffix .libdir -s
+ autoreconf
configure.in:50: error: possibly undefined macro: PKG_PATH
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
error: Bad exit status from /var/tmp/rpm-tmp.38992 (%prep)


Comment 3 Paul F. Johnson 2006-09-10 15:45:34 UTC
#2, are you using FC5 or 6?

Comment 4 Kevin Fenzi 2006-09-10 16:40:13 UTC
mock under fc6/devel.

Happy to provide any further information... 

Comment 5 Paul F. Johnson 2006-09-10 20:06:58 UTC
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec
SRPM URL: http://www.knox.net.nz/~nodoid/gtk-sharp-1.0.10-7.src.rpm

Fixes galore! Now builds in mock

Comment 6 Andreas Thienemann 2006-09-10 21:34:18 UTC
Good. Looks much better now.

Please trim down the description for the gapi subpackage though. It is a bit
excessivly long.



Comment 7 Paul F. Johnson 2006-09-10 21:39:49 UTC
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec

Shortened the gapi subpackage description

Comment 8 Paul F. Johnson 2006-09-11 20:03:21 UTC
Kevin : Andreas is on holiday for a while. Do you want to finish the review?
According to Andreas, it's about fit to go

Comment 9 Kevin Fenzi 2006-09-13 01:20:22 UTC
Per the conversation on IRC, I'll go ahead and move this review forward...

OK - Package name
OK - Spec file matches base package name.
OK - Meets Packaging Guidelines.
OK - License (LGPL)
OK - License field in spec matches
OK - License file included in package
OK - Spec in American English
OK - Spec is legible.
See below - Sources match upstream md5sum:
Pending - Package compiles and builds on at least one arch.
Pending - BuildRequires correct
Pending - Package owns all the directories it creates.
OK - Package has no duplicate files in %files.
OK - Package has %defattr and permissions on files is good.
OK - Package has a correct %clean section.
OK - Spec has consistant macro usage.
OK - Package is code or permissible content.
OK - Packages %doc files don't affect runtime.
OK - .pc files in -devel subpackage.
OK - -devel package Requires: %{name} = %{version}-%{release}
Pending - Package doesn't own any directories other packages own.
Pending - No rpmlint output.

SHOULD Items:

OK - Should include License or ask upstream to include it.
See below - Should build in mock.
OK - Should have subpackages require base package with fully versioned depend.

Issues:

1. I can't seem to find the source download for this version.
http://sourceforge.net/project/showfiles.php?group_id=40240
has 1.0.8 as the latest stable version.
Where can this source be found?

2. Might include AUTHORS and HACKING and README.generator files?

3. Still doesn't seem to build for me in mock/devel:

Patch #0 (gtksharp-libdir.patch):
+ patch -p1 -b --suffix .libdir -s
+ autoreconf
configure.in:50: error: possibly undefined macro: PKG_PATH
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
error: Bad exit status from /var/tmp/rpm-tmp.14789 (%prep)

Are you sure you have the most recent spec up (-7?)


Comment 10 Dominik 'Rathann' Mierzejewski 2006-09-17 00:27:31 UTC
Redundant BuildRequires:
gtk2-devel
libart_lgpl-devel
gnome-vfs2-devel
libgnomecanvas-devel
libglade2-devel
(required by libgnomeui-devel)
libgnomeprintui22-devel
(required by gtkhtml3-devel)


Comment 11 Dominik 'Rathann' Mierzejewski 2006-09-17 00:33:28 UTC
(In reply to comment #9)
> 3. Still doesn't seem to build for me in mock/devel:
> 
> Patch #0 (gtksharp-libdir.patch):
> + patch -p1 -b --suffix .libdir -s
> + autoreconf
> configure.in:50: error: possibly undefined macro: PKG_PATH
>       If this token and others are legitimate, please use m4_pattern_allow.
>       See the Autoconf documentation.
> autoreconf: /usr/bin/autoconf failed with exit status: 1
> error: Bad exit status from /var/tmp/rpm-tmp.14789 (%prep)
> 
> Are you sure you have the most recent spec up (-7?)

That's because the patch and autoreconf call are invoked only on fc5:
%if "%{?fedora}" > "5"
%patch0 -p1 -b .libdir
autoreconf
%endif

FYI: builds fine outside mock on FC5/x86_64

Another nitpick: use %setup -q ....



Comment 12 Dominik 'Rathann' Mierzejewski 2006-09-17 00:35:20 UTC
OK, I lied. It doesn't build fine:

RPM build errors:
    File not found by glob:
/home/dominik/build/tmp/gtk-sharp-1.0.10-7-root-dominik/usr/lib/*.so
    File not found:
/home/dominik/build/tmp/gtk-sharp-1.0.10-7-root-dominik/usr/lib/pkgconfig/gapi.pc
    File not found by glob:
/home/dominik/build/tmp/gtk-sharp-1.0.10-7-root-dominik/usr/lib/pkgconfig/*-sharp.pc

I think these are due to:
%if "%{?fedora}" == "5"
%define monodir %{_prefix}/lib
%else
%define monodir %{_libdir}
%endif


Comment 13 Paul F. Johnson 2006-09-17 08:34:55 UTC
#12 - if you're using rawhide, the version of mono shipped is architecture
agnostic so on a 64 bit box, things go into /usr/lib64. Under FC5, everything is
under /usr/lib

I'll need to check on the errors you're seeing as I can't reproduce them here.

#11 - it's done that way so I can see what's going on (needed for the time
being, I'll switch to -q on the next release). The patch is invoked on anything
above FC5

#10 - thanks

#9 - always get the source from www.go-mono.com/source-latest (IIRC). I'll fix that.

Thanks for the comments. I'll get -8 out sometime today

Comment 14 Dominik 'Rathann' Mierzejewski 2006-09-17 11:54:42 UTC
(In reply to comment #13)
> #12 - if you're using rawhide, the version of mono shipped is architecture
> agnostic so on a 64 bit box, things go into /usr/lib64. Under FC5, everything
> is under /usr/lib

I'm using FC5 and it's not, apparently.

> I'll need to check on the errors you're seeing as I can't reproduce them here.

Build log attached.

> #11 - it's done that way so I can see what's going on (needed for the time
> being, I'll switch to -q on the next release). The patch is invoked on
> anything above FC5

Apparently that's what you meant, but that's not what happens. I.e. it gets
called on fc5, too. Ah, I see the problem. Change all
%if "%{?fedora}"
to
%if "%{fedora}"
i.e. without the question mark. Still, some files get installed in %{_libdir}
nonetheless:
    File not found by glob:
/home/dominik/build/tmp/gtk-sharp-1.0.10-7-root-dominik/usr/lib/*.so
    File not found:
/home/dominik/build/tmp/gtk-sharp-1.0.10-7-root-dominik/usr/lib/pkgconfig/gapi.pc

Full build.log attached (built with my fix %{?fedora} -> %{fedora}).

Comment 15 Dominik 'Rathann' Mierzejewski 2006-09-17 11:58:33 UTC
Created attachment 136479 [details]
Build log on FC5/x86_64

Comment 16 Paul F. Johnson 2006-09-17 13:59:06 UTC
If you're using FC-5's mono (1.1.13), then nothing has changed. Everything is
under /usr/lib. This has caused me no end of problems ensuring that the likes of
monodevelop et al work properly under both FC-5 and rawhide. 

The correct way of doing the %fedora bit is "%{?fedora}" - it's the same as
using "%{?dist}" and gives the version in use as the return value. Just having
"%{fedora}" is wrong.

Have a look at the monodevelop, gtksourceview-sharp etc spec files for further
examples.

Comment 17 Paul F. Johnson 2006-09-17 14:09:29 UTC
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec
SRPM URL: http://www.knox.net.nz/~nodoid/gtk-sharp-1.0.10-8.src.rpm

The srpm has been verified as building in mock

Comment 18 Paul F. Johnson 2006-09-17 14:10:38 UTC
Created attachment 136482 [details]
my mock config log

Comment 19 Paul F. Johnson 2006-09-17 14:11:10 UTC
Created attachment 136483 [details]
root log

Comment 20 Dominik 'Rathann' Mierzejewski 2006-09-17 14:23:29 UTC
RPM build errors:
    File not found by glob:
/home/dominik/build/tmp/gtk-sharp-1.0.10-8-root-dominik/usr/lib/*.so
    File not found:
/home/dominik/build/tmp/gtk-sharp-1.0.10-8-root-dominik/usr/lib/pkgconfig/gapi.pc
    File not found by glob:
/home/dominik/build/tmp/gtk-sharp-1.0.10-8-root-dominik/usr/lib/pkgconfig/*-sharp.pc

Obviously not in 64bit mock.

Comment 21 Paul F. Johnson 2006-09-17 14:56:04 UTC
This is very very annoying! I'm using exactly the same hack for monodevelop etc
and the fedora buildsys allows it through for all platforms. I'm at a loss as to
why your box should fail!

Comment 22 Paul F. Johnson 2006-09-18 20:17:42 UTC
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec
SRPM URL: http://www.knox.net.nz/~nodoid/gtk-sharp-1.0.10-9.src.rpm

Fixes the problems you've had!

Comment 23 Dominik 'Rathann' Mierzejewski 2006-09-18 21:05:41 UTC
Builds fine here.

Comment 24 Kevin Fenzi 2006-09-19 04:38:06 UTC
1. Your Source0 still isn't quite right. I was able to get the source via:
http://go-mono.com/sources/gtk-sharp/gtk-sharp-1.0.10.tar.gz
That md5sum matches: 
e21fb3c5a39374f86ba70b926311a6d0  gtk-sharp-1.0.10.tar.gz
e21fb3c5a39374f86ba70b926311a6d0  gtk-sharp-1.0.10.tar.gz.1

2. looks good. 

3. At first I was getting the: 
mono: mono-codeman.c:257: new_codechunk: Assertion `!err' failed.
make[2]: *** [gapi_codegen.exe] Aborted
make[2]: Leaving directory `/builddir/build/BUILD/gtk-sharp-1.0.10/generator'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/gtk-sharp-1.0.10'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.14252 (%build)

But then I realized the cause. I hadn't disabled selinux on my new build 
machine. Mono apparently tries to do something odd to the stack when compiling, 
and selinux blocks it. 

Sep 18 22:09:31 thulsadoom kernel: audit(1158638970.725:4300): avc:  denied  { 
execmem } for  pid=25215 comm="mono" scontext=user_u:system_r:unconfined_t:s0 
tcontext=user_u:system_r:unconfined_t:s0 tclass=process

Disabling selinux gets it compiling on both i386 and x86_64... 

rpmlint says: 

E: gtk-sharp invalid-soname /usr/lib/libgladesharpglue.so libgladesharpglue.so
E: gtk-sharp invalid-soname /usr/lib/libglibsharpglue.so libglibsharpglue.so
E: gtk-sharp invalid-soname /usr/lib/libgtksharpglue.so libgtksharpglue.so
E: gtk-sharp invalid-soname /usr/lib/libgnomesharpglue.so libgnomesharpglue.so
E: gtk-sharp invalid-soname /usr/lib/libgdksharpglue.so libgdksharpglue.so
E: gtk-sharp invalid-soname /usr/lib/libpangosharpglue.so libpangosharpglue.so

From looking at other mono packages I think this is normal for them. 

W: gtk-sharp non-executable-in-bin /usr/bin/gconfsharp-schemagen.exe 0644

Should this be 755?

W: gtk-sharp strange-permission gtksharp-libdir.patch 0666

The patch should probibly be 644. 

E: gtk-sharp hardcoded-library-path in %{_prefix}/lib

Is this normal for mono packages? 

W: gtk-sharp mixed-use-of-spaces-and-tabs

Not a blocker, but would be nice to fix. 

E: gtk-sharp-debuginfo script-without-shellbang /usr/src/debug/gtk-sharp-1.0.10/
glib/glue/error.c

Probibly that source file should be 644. 

W: gtk-sharp-devel summary-not-capitalized pkgconfig file for gtk-sharp

Can be ignored. 

E: gtk-sharp-devel script-without-shellbang /usr/share/doc/gtk-sharp-devel-
1.0.10/HACKING

Should be 644. 

E: gtk-sharp-gapi summary-too-long Glib and GObject C source parser and C 
generator for the creation and maintenance of managed bindings for Mono and .NET

Could boil that down some? 

W: gtk-sharp-gapi spelling-error-in-description maintainance maintenance

Should be fixed. 

W: gtk-sharp-gapi no-documentation

Can be ignored. 

W: gtk-sharp-gapi non-executable-in-bin /usr/bin/gapi-fixup.exe 0644
W: gtk-sharp-gapi non-executable-in-bin /usr/bin/gapi_codegen.exe 0644

755?

W: gtk-sharp-gapi-devel summary-not-capitalized pkgconfig for gapi-sharp
W: gtk-sharp-gapi-devel no-documentation

Can be ignored. 


Comment 25 Paul Howarth 2006-09-19 07:45:10 UTC
(In reply to comment #24)
> 3. At first I was getting the: 
> mono: mono-codeman.c:257: new_codechunk: Assertion `!err' failed.
> make[2]: *** [gapi_codegen.exe] Aborted
> make[2]: Leaving directory `/builddir/build/BUILD/gtk-sharp-1.0.10/generator'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/builddir/build/BUILD/gtk-sharp-1.0.10'
> make: *** [all] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.14252 (%build)
> 
> But then I realized the cause. I hadn't disabled selinux on my new build 
> machine. Mono apparently tries to do something odd to the stack when compiling, 
> and selinux blocks it. 
> 
> Sep 18 22:09:31 thulsadoom kernel: audit(1158638970.725:4300): avc:  denied  { 
> execmem } for  pid=25215 comm="mono" scontext=user_u:system_r:unconfined_t:s0 
> tcontext=user_u:system_r:unconfined_t:s0 tclass=process
> 
> Disabling selinux gets it compiling on both i386 and x86_64... 

See the Extras/MockTricks wiki page for how to install a local policy module
that allows mono to run under mock with SELInux enabled.


Comment 26 Paul F. Johnson 2006-09-23 20:48:21 UTC
"W: gtk-sharp non-executable-in-bin /usr/bin/gconfsharp-schemagen.exe 0644

Should this be 755?"

Yes and fixed.

"W: gtk-sharp strange-permission gtksharp-libdir.patch 0666

The patch should probibly be 644. "

Done

Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec
SRPM URL: http://www.knox.net.nz/~nodoid/gtk-sharp-1.0.10-10.src.rpm

"E: gtk-sharp hardcoded-library-path in %{_prefix}/lib

Is this normal for mono packages? "

It is for the moment. The problem is that the current FC5 release of mono still
depends on everything being in /usr/lib irrespective of the processor used. The
version in rawhide/FC6 has this problem corrected. When FC5's version is
upgraded to the current version (1.1.17), the hack goes.

All the other problems have been fixed.



Comment 27 Paul F. Johnson 2006-09-25 19:59:59 UTC
Ping!

Comment 28 Kevin Fenzi 2006-09-25 20:43:41 UTC
ok, all those changes look pretty good. 

I'll go ahead and APPROVE this package. Thanks for all your hard work on it. 

Please remember to close this NEXTRELEASE once it's been imported and built. 


Comment 29 Paul F. Johnson 2006-09-25 21:10:08 UTC
Thanks

Comment 30 Warren Togami 2006-09-25 22:03:30 UTC
Why do you want a FE5 branch when this is already in FC5?


Comment 31 Paul F. Johnson 2006-09-25 23:22:06 UTC
gtk-sharp has been moved from core to extras as there is nothing in core which
uses it anymore.

Comment 32 Warren Togami 2006-09-26 01:52:35 UTC
FC5 has gtk-sharp.  Why did you request a branch for FE5?

Comment 33 Paul F. Johnson 2006-09-26 06:46:53 UTC
There isn't anything in FC-5 or rawhide which uses gtk-sharp anymore. Have a
word with caillon and alexl.

The removal of gtk-sharp-1.0.10 was taken about a month back and before it was
placed on the orphan list, I snapped it up. It is now an FE package, so by
default only has a rawhide entry.

Comment 34 Warren Togami 2006-09-26 06:54:05 UTC
gtk-sharp *IS* in Fedora Core 5.  Thus it makes no sense to branch it there and
rebuild it in Extras for Fedora Core 5.

It does make sense to do this for FC6.

Do you concur?


Comment 35 Kevin Fenzi 2006-12-06 03:27:12 UTC
Hey Paul. 

I don't see gtk-sharp in the owners.list. Can you please add it? 
http://fedoraproject.org/wiki/Extras/Contributors#head-f6f080b4c48fe519c98a29364a740953f90179e7



Comment 36 Kevin Fenzi 2006-12-22 02:46:08 UTC
I have added it to owners.list.


Note You need to log in before you can comment on or make changes to this bug.