Bug 205300 - Review Request: gtk-sharp - a set of mono bindings for gtk1.2
Review Request: gtk-sharp - a set of mono bindings for gtk1.2
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Kevin Fenzi
Fedora Package Reviews List
:
Depends On:
Blocks: FE-ACCEPT
  Show dependency treegraph
 
Reported: 2006-09-05 17:26 EDT by Paul F. Johnson
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-09-25 17:10:08 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


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

  None (edit)
Description Paul F. Johnson 2006-09-05 17:26:14 EDT
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-09 22:55:21 EDT
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-09 22:56:35 EDT
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 11:45:34 EDT
#2, are you using FC5 or 6?
Comment 4 Kevin Fenzi 2006-09-10 12:40:13 EDT
mock under fc6/devel.

Happy to provide any further information... 
Comment 5 Paul F. Johnson 2006-09-10 16:06:58 EDT
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 17:34:18 EDT
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 17:39:49 EDT
Spec URL: http://www.knox.net.nz/~nodoid/gtk-sharp.spec

Shortened the gapi subpackage description
Comment 8 Paul F. Johnson 2006-09-11 16:03:21 EDT
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-12 21:20:22 EDT
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-16 20:27:31 EDT
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-16 20:33:28 EDT
(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-16 20:35:20 EDT
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 04:34:55 EDT
#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 07:54:42 EDT
(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 07:58:33 EDT
Created attachment 136479 [details]
Build log on FC5/x86_64
Comment 16 Paul F. Johnson 2006-09-17 09:59:06 EDT
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 10:09:29 EDT
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 10:10:38 EDT
Created attachment 136482 [details]
my mock config log
Comment 19 Paul F. Johnson 2006-09-17 10:11:10 EDT
Created attachment 136483 [details]
root log
Comment 20 Dominik 'Rathann' Mierzejewski 2006-09-17 10:23:29 EDT
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 10:56:04 EDT
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 16:17:42 EDT
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 17:05:41 EDT
Builds fine here.
Comment 24 Kevin Fenzi 2006-09-19 00:38:06 EDT
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 03:45:10 EDT
(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 16:48:21 EDT
"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 15:59:59 EDT
Ping!
Comment 28 Kevin Fenzi 2006-09-25 16:43:41 EDT
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 17:10:08 EDT
Thanks
Comment 30 Warren Togami 2006-09-25 18:03:30 EDT
Why do you want a FE5 branch when this is already in FC5?
Comment 31 Paul F. Johnson 2006-09-25 19:22:06 EDT
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-25 21:52:35 EDT
FC5 has gtk-sharp.  Why did you request a branch for FE5?
Comment 33 Paul F. Johnson 2006-09-26 02:46:53 EDT
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 02:54:05 EDT
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-05 22:27:12 EST
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-21 21:46:08 EST
I have added it to owners.list.

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