Bug 841003 (mate-corba)

Summary: Review Request: mate-corba - CORBA Object Request Broker for MATE Desktop
Product: [Fedora] Fedora Reporter: Dan Mashal <dan.mashal>
Component: Package ReviewAssignee: Rex Dieter <rdieter>
Status: CLOSED ERRATA QA Contact: Dan Mashal <dan.mashal>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: chat-to-me, misc, notting, package-review, rdieter
Target Milestone: ---Flags: rdieter: fedora‑review+
limburgher: fedora‑cvs+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-27 19:56:04 EDT Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 840149    

Description Dan Mashal 2012-07-17 16:38:22 EDT
Spec URL: http://vicodan.fedorapeople.org/matespec/mate-corba.spec
SRPM URL: http://vicodan.fedorapeople.org/materpms/srpms/mate-corba-1.4.0-4.fc17.src.rpm
Description:  CORBA Object Request Broker for MATE Desktop
Comment 1 Wolfgang Ulbrich 2012-07-19 10:12:25 EDT
my suggestion:

This spec file is based from the original from Eric Smith.

%define libidl_version 0.8.2-1
%define glib2_version 2.2.0

Summary: 		A high-performance CORBA Object Request Broker
Name: 			mate-corba
Version: 		1.4.0
Release: 		1%{?dist}
Source: 		http://pub.mate-desktop.org/releases/1.4/%{name}-%{version}.tar.xz
Group: 			System Environment/Daemons
License: 		LGPLv2+ and GPLv2+
URL: 			http://pub.mate-desktop.org
BuildRequires: 	libIDL-devel >= %{libidl_version}
BuildRequires: 	glib2-devel >= %{glib2_version}
BuildRequires: 	pkgconfig >= 0.14
BuildRequires: 	libtool
BuildRequires: 	autoconf
BuildRequires: 	automake
BuildRequires: 	gtk-doc
BuildRequires: 	mate-common

# handle ref leaks in the a11y stack more gracefully
Patch0: mate-corba-2.14.3-ref-leaks.patch

%description
mate-corba is a high-performance CORBA (Common Object Request Broker
Architecture) ORB (object request broker). It allows programs to
send requests and receive replies from other programs, regardless
of the locations of the two programs. CORBA is an architecture that
enables communication between program objects, regardless of the
programming language they're written in or the operating system they
run on.

You will need to install this package and mate-corba-devel if you want to
write programs that use CORBA technology.

%package devel
Summary: Development libraries, header files and utilities for mate-corba
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: indent
Requires: libIDL-devel >= %{libidl_version}
Requires: glib2-devel >= %{glib2_version}
# we install a pc file
Requires: pkgconfig
# we install an automake macro
Requires: automake

%description devel
mate-corba is a high-performance CORBA (Common Object Request Broker
Architecture) ORB (object request broker) with support for the
C language.

This package contains the header files, libraries and utilities
necessary to write programs that use CORBA technology.

%prep
%setup -q -n %{name}-%{version}
%patch0 -p1 -b .ref-leaks
NOCONFIGURE=1 ./autogen.sh

%build

# let's use the ./autogen.sh hammer for now.
%configure \
	--disable-static \
	--enable-gtk-doc \
	--enable-purify

make %{?_smp_mflags}

%install
make install DESTDIR=$RPM_BUILD_ROOT

rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/matecorba-2.0/*.*a

# fix multilib conflict caused by matecorba-config.h
%ifarch x86_64 s390x ia64 ppc64 alpha sparc64
%define wordsize 64
%else
%define wordsize 32
%endif

mv $RPM_BUILD_ROOT%{_includedir}/matecorba-2.0/matecorba/matecorba-config.h \
   $RPM_BUILD_ROOT%{_includedir}/matecorba-2.0/matecorba/matecorba-config-%{wordsize}.h

cat >$RPM_BUILD_ROOT%{_includedir}/matecorba-2.0/matecorba/matecorba-config.h <<EOF
ifndef MATECORBA_MULTILIB
define MATECORBA_MULTILIB

include <bits/wordsize.h>

if __WORDSIZE == 32
 include "matecorba-config-32.h"
elif __WORDSIZE == 64
 include "matecorba-config-64.h"
else
 error "unexpected value for __WORDSIZE macro"
endif

endif
EOF

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING README TODO
%{_libdir}/*.so.*
%dir %{_libdir}/matecorba-2.0
%{_libdir}/matecorba-2.0/*.so*


%files devel
%defattr(-,root,root,-)
%{_libdir}/*.so
# this is needed by matecomponent
%{_libdir}/libname-matecorba-server-2.a
%{_libdir}/pkgconfig/*
%{_bindir}/matecorba-idl-2
%{_bindir}/matecorba-typelib-dump
%{_bindir}/matecorba2-config
%{_bindir}/matecorba-ior-decode-2
%{_includedir}/*
%{_datadir}/aclocal/*
%{_datadir}/idl/matecorba-2.0
%{_bindir}/matecorba-linc-cleanup-sockets
%{_datadir}/gtk-doc

%changelog
* Thu Jul 05 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.4.0-1
- update to 1.4.0

* Tue Mar 27 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.2.2-1
- update to 1.2.2

* Thu Mar 01 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.2.1-1
-update verion to 1.2

* Sun Feb 19 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.1.0-3
- fix rpmbuild error mate-netspeed-applet

* Fri Feb 17 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.1.0-2
- rebuild for enable builds for .i686

* Wed Jan 10 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.1.0-1
- jump to new version 1.1.0

* Sun Nov 13 2011 Eric Smith <eric@brouhaha.com> - 1.0-1.20111112gitebd4a9bf6a
- mate-corba spec based on Fedora 14 ORBit-2.14.19-1 spec


I'm not shure if we really need this patch, but this package working well for 7 month on my repo.

IHMO it's not necessary to invent the wheel new ;)
Comment 2 Wolfgang Ulbrich 2012-07-19 11:43:47 EDT
Opps,
removing *.la files is a bad idea because for building mate-desktop we need them.

remove those lines:

rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/matecorba-2.0/*.*a
Comment 3 Wolfgang Ulbrich 2012-07-19 11:45:37 EDT
and add those lines to files.

%{_libdir}/libMateCORBA-2.la
%{_libdir}/libMateCORBA-imodule-2.la
%{_libdir}/libMateCORBACosNaming-2.la
%{_libdir}/matecorba-2.0/Everything_module.la
Comment 4 Rex Dieter 2012-07-19 13:11:29 EDT
Those .la files shouldn't be required, if stuff breaks without it, then we can patch it to add additional (and imo proper) linkage.
Comment 5 Wolfgang Ulbrich 2012-07-19 13:35:08 EDT
Ok, for better understanding.
You mean i've to patch mate-desktop package to build without those *.la files?
Comment 6 Rex Dieter 2012-07-19 14:59:30 EDT
Probably, but it depends on the particular build failures, on how best to fix it.
Comment 7 Wolfgang Ulbrich 2012-07-19 16:51:13 EDT
I try to find out what calls /usr/lib64/libMateCORBA-2.la

gcc -DHAVE_CONFIG_H -I. -I.. -DMATELOCALEDIR=\""/usr/share/locale\"" -DPNP_IDS=\""/usr/share/hwdata/pnp.ids"\"    -pthread -DMATECORBA2=1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/mateconf/2 -I/usr/include/matecorba-2.0 -I/usr/include/startup-notification-1.0      -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic -c test-ditem.c
test-ditem.c: In function 'test_ditem':
test-ditem.c:93:9: warning: ignoring return value of 'getcwd', declared with attribute warn_unused_result [-Wunused-result]
  CCLD   libmate-desktop-2.la
/bin/grep: /usr/lib64/libMateCORBA-2.la: No such file or directory
/bin/sed: can't read /usr/lib64/libMateCORBA-2.la: No such file or directory
libtool: link: `/usr/lib64/libMateCORBA-2.la' is not a valid libtool archive
make[3]: *** [libmate-desktop-2.la] Error 1

in mate-desktop for several hours......
But this is not the theme here.
Comment 8 Dan Mashal 2012-07-19 16:53:27 EDT
Please,

Use the spec in the first comment to build. 

It works.

I don't understand what the confusion is about?

Thanks,
Dan
Comment 9 Rex Dieter 2012-07-19 19:11:11 EDT
Agreed, let's not go inventing problems that don't exist with the package(s) as submitted.
Comment 10 Rex Dieter 2012-07-19 19:49:52 EDT
1. MUST: create -devel pkg to own development files, similar to comment #1 's version, including the hack to avoid the multilib conflicts

2. MUST: missing scriptlets for shared libraries.

3. MUST: omit extraneous lib runtime dependencies, like
Requires:	mate-common gobject-introspection libIDL gtk-doc
esp mate-common, which is only something needed at *build* time.

Um... I think you may want to start with something closer to the .spec in comment #1 come to think of it. :-/  except for the "not omitting libtool archives" part.
Comment 11 Dan Mashal 2012-07-20 01:10:03 EDT
Thanks Rex.
Comment 12 Dan Mashal 2012-07-22 01:44:02 EDT
$ rpmlint mate-corba.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
$ rpmlint mate-corba-1.4.0-5.fc17.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.


f17:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4313386

f18:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4313862

# yum install ./mate-corba-1.4.0-5.fc17.x86_64.rpm 
Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Examining ./mate-corba-1.4.0-5.fc17.x86_64.rpm: mate-corba-1.4.0-5.fc17.x86_64
Marking ./mate-corba-1.4.0-5.fc17.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mate-corba.x86_64 0:1.4.0-5.fc17 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package      Arch     Version          Repository                         Size
================================================================================
Installing:
 mate-corba   x86_64   1.4.0-5.fc17     /mate-corba-1.4.0-5.fc17.x86_64   2.7 M

Transaction Summary
================================================================================
Install  1 Package

Total size: 2.7 M
Installed size: 2.7 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mate-corba-1.4.0-5.fc17.x86_64                               1/1 
  Verifying  : mate-corba-1.4.0-5.fc17.x86_64                               1/1 

Installed:
  mate-corba.x86_64 0:1.4.0-5.fc17                                              

Complete!
Comment 13 Wolfgang Ulbrich 2012-07-22 09:29:05 EDT
We need a -devel package !!!
Comment 14 Wolfgang Ulbrich 2012-07-22 09:32:40 EDT
You don't need mate-common only as BuildRequires not as Requires.
Comment 15 Dan Mashal 2012-07-22 13:52:52 EDT
I know we need a devel package. I'll create one.
Comment 16 Michael Scherer 2012-07-22 18:21:14 EDT
I think rpmlint should have complained on the license, ie, without "and".

Guidelines say to use "or" if that a dual license, or "and" if that's multiple license :

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Dual_Licensing_Scenarios
Comment 17 Dan Mashal 2012-07-22 18:26:58 EDT
That is correct Michael, I just finished updating the spec file.

SPEC file:
http://vicodan.fedorapeople.org/matespec/mate-corba.spec

SRPM file:
http://vicodan.fedorapeople.org/materpms/srpms/mate-corba-1.4.0-6.fc17.src.rpm

$ rpmlint mate-corba.spec
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

$ rpmlint mate-corba-1.4.0-6.fc17.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
Comment 18 Michael Scherer 2012-07-22 18:38:03 EDT
Also, I see the package own directories that doesn't belong to him :

/usr/share/gtk-doc/html
/usr/lib/pkgconfig
/usr/share/aclocal
/usr/share/idl

And the whole debug directory is in the main rpm too :
/usr/lib/debug

That's because there is a too wide joker used in %files
Comment 19 Michael Scherer 2012-07-22 18:39:16 EDT
Mhh seems to have been corrected in the last version, didn't see sooner, disregard last comment.
Comment 20 Dan Mashal 2012-07-22 18:49:00 EDT
Yes, sorry, 

Been working on that and the other review at the same time. 

Please let me know of any other issues you see.

Thank you.
Comment 21 Dan Mashal 2012-07-22 18:51:29 EDT
http://koji.fedoraproject.org/koji/taskinfo?taskID=4321830

$ rpmlint mate-corba.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

$ rpmlint mate-corba-1.4.0-6.fc17.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
Comment 22 Dan Mashal 2012-07-24 22:47:30 EDT
1. MUST: create -devel pkg to own development files, similar to comment #1 's version, including the hack to avoid the multilib conflicts

DONE.

2. MUST: missing scriptlets for shared libraries.

DONE.

3. MUST: omit extraneous lib runtime dependencies, like
Requires:	mate-common gobject-introspection libIDL gtk-doc
esp mate-common, which is only something needed at *build* time.

DONE.

Um... I think you may want to start with something closer to the .spec in comment #1 come to think of it. :-/  except for the "not omitting libtool archives" part.

DONE.

$ rpmlint mate-corba-1.4.0-7.fc17.x86_64.rpm 
mate-corba.x86_64: W: no-manual-page-for-binary matecorba-typelib-dump
mate-corba.x86_64: W: no-manual-page-for-binary matecorba-linc-cleanup-sockets
mate-corba.x86_64: W: no-manual-page-for-binary matecorba-ior-decode-2
mate-corba.x86_64: W: no-manual-page-for-binary matecorba-idl-2
1 packages and 0 specfiles checked; 0 errors, 4 warnings.
Comment 24 Rex Dieter 2012-07-24 23:33:21 EDT
OK, now that the %files list is clearer,

4. MUST omit static libraries and libtool archives, ie, items that match
%{_libdir}/lib*.a
%{_libdir}/lib*.la
(or provide justification why they warrant an exception)

5. SHOULD own includedir subdirectories.  One easy way to do that, is to just include:
%{_includedir}/matecorba-2.0/
which will include it, and recursively everything under it

6. SHOULD.  this
%{_bindir}/matecorba-linc-cleanup-sockets
looks like something that ought to be in the main runtime pkg instead of -devel

7. -devel MUST have an arch'd dependency on the main pkg, use this instead:
Requires: %{name}%{?_isa} = %{version}-%{release}

8.  MUST drop
Requires: mate-common
this is a BuildRequires only, not required for normal runtime use.
Comment 26 Dan Mashal 2012-07-25 00:24:54 EDT
4. MUST omit static libraries and libtool archives, ie, items that match
%{_libdir}/lib*.a
%{_libdir}/lib*.la
(or provide justification why they warrant an exception)

DONE

5. SHOULD own includedir subdirectories.  One easy way to do that, is to just include:
%{_includedir}/matecorba-2.0/
which will include it, and recursively everything under it

DONE

6. SHOULD.  this
%{_bindir}/matecorba-linc-cleanup-sockets
looks like something that ought to be in the main runtime pkg instead of -devel

This is already in %files not %files devel. 

7. -devel MUST have an arch'd dependency on the main pkg, use this instead:
Requires: %{name}%{?_isa} = %{version}-%{release}

DONE

8.  MUST drop
Requires: mate-common
this is a BuildRequires only, not required for normal runtime use.

DONE
Comment 28 Wolfgang Ulbrich 2012-07-25 00:55:28 EDT
before i go to bed
BuildRequires: autoconf automake
you can remove, mock builds without it
BuildRequires: libtool you can remove if mate-common-1.4.0-6 is in stable
Comment 29 Rex Dieter 2012-07-25 15:45:50 EDT
OK, latest -8 at
http://vicodan.fedorapeople.org/matespec/mate-corba.spec

Looks good.

APPROVED
Comment 30 Dan Mashal 2012-07-25 15:51:03 EDT
New Package SCM Request
=======================
Package Name: mate-corba
Short Description: CORBA Object Request Broker for MATE Desktop
Owners: vicodan rdieter
Branches: f16 f17
Comment 31 Jon Ciesla 2012-07-26 06:33:23 EDT
Git done (by process-git-requests).
Comment 32 Fedora Update System 2012-07-26 19:53:22 EDT
mate-corba-1.4.0-8.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/mate-corba-1.4.0-8.fc17
Comment 33 Fedora Update System 2012-07-26 19:53:32 EDT
mate-corba-1.4.0-8.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/mate-corba-1.4.0-8.fc16
Comment 34 Fedora Update System 2012-07-27 05:01:32 EDT
mate-corba-1.4.0-9.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/mate-corba-1.4.0-9.fc16
Comment 35 Fedora Update System 2012-07-27 05:01:44 EDT
mate-corba-1.4.0-9.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/mate-corba-1.4.0-9.fc17
Comment 36 Fedora Update System 2012-07-27 05:52:28 EDT
mate-corba-1.4.0-8.fc16 has been pushed to the Fedora 16 testing repository.
Comment 37 Wolfgang Ulbrich 2012-07-27 08:13:37 EDT
mate-corba-1.4.0-8 is ok, except the unnecessary Build requires.
see comment 28.
They are called as Requires from mate-common-1.4.0-6
No need to call them double.
Anyway, i will give karma !


@mate-corba-1.4.0-9
see comment 2 -7
rm -rf $RPM_BUILD_ROOT/%{_libdir}/libMateCORBA-2.la
rm -rf $RPM_BUILD_ROOT/%{_libdir}/libMateCORBA-imodule-2.la
rm -rf $RPM_BUILD_ROOT/%{_libdir}/libMateCORBACosNaming-2.la
rm -rf $RPM_BUILD_ROOT/%{_libdir}/matecorba-2.0/Everything_module.la

This will prevent you from building the mate-desktop package.

If you show me a way to build mate-desktop with mate-corba-1.4.0-9, i give you karma ;)
Comment 38 Rex Dieter 2012-07-27 08:17:27 EDT
we've already discussed the libtool archives thing.  It should build fine, and if it doesn't, it's simply a bug we can fix.  the "fix" is *not* to put the .la files back.
Comment 39 Wolfgang Ulbrich 2012-07-27 10:21:31 EDT
(In reply to comment #38)
> we've already discussed the libtool archives thing.  It should build fine,
> and if it doesn't, it's simply a bug we can fix.  the "fix" is *not* to put
> the .la files back.

agree, i will give karma.
hope we find a fix for building other packages.
Comment 40 Kevin Fenzi 2012-07-27 11:02:01 EDT
Hey dan, could I ask again that you not push each of these packages as updates as they are approved, but wait until the stack is ready? 

People using mate 1.2 from 3rd party repos will get your updated 1.4 packages as they go out and it could mess up their desktops. If you do one big update at the end with all the parts of 1.4 they can just simply be updated to 1.4 and be happy.
Comment 41 Dan Mashal 2012-07-27 11:04:09 EDT
Hey Kevin,

I thought we fixed that with mate-doc-utils and using an obsolete field.

Which one is conflicting now? Maybe I need to obsolete each package or figure some other way around preventing. I'll find you on IRC in an hour or two.
Comment 42 Kevin Fenzi 2012-07-27 11:20:00 EDT
well, it's not (just) conflicts or obsoletes... it's versions too. 

Looking more closely: 

The mate-desktop page refers to: 
http://mate-desktop.org/install/#fedora

yum install http://dl.dropbox.com/u/49862637/Mate-desktop/mate-desktop-fedora/releases/16/noarch/mate-desktop-release-16-5.fc16.noarch.rpm

So, it looks like it's just f16 as far as I can see. 

So, folks using this on f16 have installed a mate-1.2 setup. 

When you push out mate-corba-1.4.x it updates their mate-corba-1.2.2-1.fc16

Does the desktop continue to work with just parts of it 1.2 and other parts of it 1.4? 
I'm not sure, but it seems a dangerous combo to me. 

I don't know if there is a f17 repo anywhere, it could be that just not pushing to f16 would solve the issue.
Comment 43 Wolfgang Ulbrich 2012-07-27 11:36:29 EDT
No Prob Kevin,
Mate-Desktop 1.4.x is released today.
I've upload all packages for fc16/fc17 5 min ago.
Do a 'yum clean all' for getting them yet.
At the moment all aproved packages don't have any conflicts with my repo packages.
My version no. are smaller then the aproved packages.
Comment 44 Dan Mashal 2012-07-27 19:46:22 EDT
I will remove the fc17 and fc16 packages from updates-testing repo as per discussion with Kevin on IRC earlier today..
Comment 45 Wolfgang Ulbrich 2012-07-27 21:07:34 EDT
@ kevin Fenci
there is a little confusion for the information of my repo.
see http://wiki.mate-desktop.org/download for current install instructions.
I provide packages for fc16 and fc17
as i said in comment 42
I update both to 1.4.x today.
The reason for that was that MATE wants to release at the same time for all distros.
From my side we can also update fc17 step by step from fedora.
Fc16 makes no sense because it has there EOL in 3-4 month.

Pls see my complete spec list at http://raveit65.fedorapeople.org/Mate-Desktop/fc16/SPECS/
This include all my packages in my repo.
And i provide compiz-0.88 for Mate.
I'm talking about up to 70-80 main packages which is the complete Mate-Desktop.

What Dan and me want to do for fc18 is a very minimalistic version in fedora.
In my opinion we need my repo for extra packages for fc18.
Otherwise users of mate-fedora will be sad.
In result we need to sync the packages for rawhide.

All for your information
Comment 46 Fedora Update System 2012-08-01 18:27:09 EDT
mate-corba-1.4.0-8.fc17 has been pushed to the Fedora 17 stable repository.
Comment 47 Fedora Update System 2012-08-12 22:24:16 EDT
mate-corba-1.4.0-9.fc17 has been pushed to the Fedora 17 stable repository.
Comment 48 Fedora Update System 2012-08-12 22:25:42 EDT
mate-corba-1.4.0-8.fc16 has been pushed to the Fedora 16 stable repository.