Blob Blame History Raw
%global realname corba
%global upstream erlang
# Technically, we're almost noarch (ic has some binary-specific files); but
# erlang whose directories we install into is not.
%global debug_package %{nil}


%ifarch %{arm} %{mips} riscv64
# MIPS and RISC-V does not have all dependencies for fop yet.
# For some reason, fop hangs on arm, so for now don't generate docs by
# default.
%bcond_with doc
%else
%bcond_without doc
%endif


Name:		erlang-%{realname}
Version:	5.1
Epoch:		1
Release:	6%{?dist}
Summary:	Erlang CORBA libraries
License:	ASL 2.0
URL:		https://github.com/%{upstream}/%{realname}
VCS:		scm:git:https://github.com/%{upstream}/%{realname}.git
Source0:	https://github.com/%{upstream}/%{realname}/archive/%{version}/%{realname}-%{version}.tar.gz
Patch1:		erlang-corba-0001-Add-files-from-OTP-tree.patch
Patch2:		erlang-corba-0002-Edit-OTP-files-to-allow-out-of-tree-build.patch
Patch3:		erlang-corba-0003-Do-not-install-C-sources.patch
Patch4:		erlang-corba-0004-Do-not-install-Java-sources.patch
Patch5:		erlang-corba-0005-Do-not-install-erlang-sources.patch
Patch6:		erlang-corba-0006-Do-not-install-examples.patch
Patch7:		erlang-corba-0007-Fix-javadoc.patch
BuildRequires:	erlang-erl_docgen
BuildRequires:	erlang-erl_interface
BuildRequires:	erlang-erts
BuildRequires:	erlang-jinterface
BuildRequires:	erlang-parsetools
BuildRequires:	erlang-rpm-macros
BuildRequires:	gcc
BuildRequires:	java-devel
%if %{with doc}
BuildRequires:	fop
BuildRequires:	libxslt
%endif
BuildRequires: make
# FIXME no autodetect yet
#BuildRequires:	erlang-cosEvent
#BuildRequires:	erlang-cosNotification
#BuildRequires:	erlang-cosProperty
#BuildRequires:	erlang-cosTime
#BuildRequires:	erlang-orber
ExclusiveArch:	%{java_arches}


%description
A set of Erlang applications, that implements a CORBA compliant Object Request
Broker (ORB) and a number of Object Managemnt Group (OMG) standard services.

%if %{with doc}
%package doc
Summary: Erlang CORBA documentation
BuildArch: noarch

%description doc
Documentation for Erlang.
%endif

%package -n erlang-cosEvent
Summary: Orber OMG Event Service
Requires: erlang-orber%{?_isa}

%description -n erlang-cosEvent
Orber OMG Event Service.

%package -n erlang-cosEventDomain
Summary: Orber OMG Event Domain Service
Requires: erlang-cosNotification%{?_isa}
Requires: erlang-orber%{?_isa}

%description -n erlang-cosEventDomain
Orber OMG Event Domain Service.

%package -n erlang-cosFileTransfer
Summary: Orber OMG File Transfer Service
Requires: erlang-cosProperty%{?_isa}
Requires: erlang-orber%{?_isa}

%description -n erlang-cosFileTransfer
Orber OMG File Transfer Service.

%package -n erlang-cosNotification
Summary: Orber OMG Notification Service
Requires: erlang-cosEvent%{?_isa}
Requires: erlang-cosTime%{?_isa}
Requires: erlang-orber%{?_isa}

%description -n erlang-cosNotification
Orber OMG Notification Service.

%package -n erlang-cosProperty
Summary: Orber OMG Property Service
Requires: erlang-orber%{?_isa}

%description -n erlang-cosProperty
Orber OMG Property Service.

%package -n erlang-cosTime
Summary: Orber OMG Timer and TimerEvent Service
Requires: erlang-cosEvent%{?_isa}
Requires: erlang-orber%{?_isa}

%description -n erlang-cosTime
Orber OMG Timer and TimerEvent Service.

%package -n erlang-cosTransactions
Summary: Orber OMG Transaction Service
Requires: erlang-orber%{?_isa}

%description -n erlang-cosTransactions
Orber OMG Transaction Service.

%package -n erlang-ic
Summary: IDL compiler
Requires: erlang-jinterface
Requires: javapackages-tools

%description -n erlang-ic
IDL compiler.

%package -n erlang-orber
Summary: A CORBA Object Request Broker

%description -n erlang-orber
A CORBA Object Request Broker.


%prep
%autosetup -p1 -n %{realname}-%{version}


%build
CFLAGS="$RPM_OPT_FLAGS" ERL_TOP=`pwd` make %{?_smp_mflags} V=1
%if %{with doc}
CFLAGS="$RPM_OPT_FLAGS" ERL_TOP=`pwd` make docs V=1
%endif


%install
ERL_TOP=`pwd` make install DESTDIR=%{buildroot}%{_erldir}
%if %{with doc}
ERL_TOP=`pwd` make install-docs DESTDIR=%{buildroot}%{_erldir}
%endif

# erlang-ic
install -m 0755 -d "%{buildroot}%{_javadir}/erlang"
ic_lib_dir="$(ls -d1 %{buildroot}%{_libdir}/erlang/lib/ic-*/ | sed "s,^%{buildroot},,")"
test -d "%{buildroot}$ic_lib_dir"
ln -s "${ic_lib_dir}priv/ic.jar" "%{buildroot}%{_javadir}/erlang/"

%if %{with doc}
# Move man-pages to a system-wide directory - in the same way as Debian did
# Erlang files from man 3 have too generic names
for manpage in %{buildroot}%{_libdir}/erlang/man/man3/*
do
	mv ${manpage} ${manpage}erl
done
mkdir -p %{buildroot}%{_mandir}/
mv %{buildroot}%{_libdir}/erlang/man/* %{buildroot}%{_mandir}/
%endif

# Relocate doc-files into the proper directory
%if %{with doc}
mkdir -p %{buildroot}%{_docdir}/%{name}-%{version}/lib
pushd .
cd %{buildroot}%{_libdir}/erlang
mv -v doc %{buildroot}%{_docdir}/%{name}-%{version}
cd %{buildroot}%{_libdir}/erlang/lib
for i in * ; do mv -v $i/doc %{buildroot}%{_docdir}/%{name}-%{version}/lib/$i || true ; done
popd
for i in ic orber ; do mv -v lib/$i/examples %{buildroot}%{_docdir}/%{name}-%{version}/lib/$i-%{version}/examples || true ; done
cp -av AUTHORS CONTRIBUTING.md README.md %{buildroot}%{_docdir}/%{name}-%{version}
# We'll package it by marking it explicitly as doc - see below
rm -f %{buildroot}%{_libdir}/erlang/README.md %{buildroot}%{_libdir}/erlang/COPYRIGHT
%endif

# Do not install info files - they are almost empty and useless
find %{buildroot}%{_libdir}/erlang -type f -name info -exec rm -f {} \;


%if %{with doc}
%files doc
%dir %{_docdir}/%{name}-%{version}/
%doc %{_docdir}/%{name}-%{version}/AUTHORS
%doc %{_docdir}/%{name}-%{version}/CONTRIBUTING.md
%doc %{_docdir}/%{name}-%{version}/README.md
%doc %{_docdir}/%{name}-%{version}/doc
%doc %{_docdir}/%{name}-%{version}/lib/
%license COPYRIGHT
%license LICENSE.txt
%endif

%files -n erlang-cosEvent
%license COPYRIGHT
%license LICENSE.txt
%{_libdir}/erlang/lib/cosEvent-*/
%if %{with doc}
%{_mandir}/man3/cosEventApp.*
%{_mandir}/man3/CosEventChannelAdmin.*
%{_mandir}/man3/CosEventChannelAdmin_ConsumerAdmin.*
%{_mandir}/man3/CosEventChannelAdmin_EventChannel.*
%{_mandir}/man3/CosEventChannelAdmin_ProxyPullConsumer.*
%{_mandir}/man3/CosEventChannelAdmin_ProxyPullSupplier.*
%{_mandir}/man3/CosEventChannelAdmin_ProxyPushConsumer.*
%{_mandir}/man3/CosEventChannelAdmin_ProxyPushSupplier.*
%{_mandir}/man3/CosEventChannelAdmin_SupplierAdmin.*
%endif

%files -n erlang-cosEventDomain
%license COPYRIGHT
%license LICENSE.txt
%{_libdir}/erlang/lib/cosEventDomain-*/
%if %{with doc}
%{_mandir}/man3/CosEventDomainAdmin.*
%{_mandir}/man3/CosEventDomainAdmin_EventDomain.*
%{_mandir}/man3/CosEventDomainAdmin_EventDomainFactory.*
%{_mandir}/man3/cosEventDomainApp.*
%endif

%files -n erlang-cosFileTransfer
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/cosFileTransfer-*/
%{_libdir}/erlang/lib/cosFileTransfer-*/ebin
%{_libdir}/erlang/lib/cosFileTransfer-*/include
%{_libdir}/erlang/lib/cosFileTransfer-*/src
%if %{with doc}
%{_mandir}/man3/cosFileTransferApp.*
%{_mandir}/man3/CosFileTransfer_Directory.*
%{_mandir}/man3/CosFileTransfer_File.*
%{_mandir}/man3/CosFileTransfer_FileIterator.*
%{_mandir}/man3/CosFileTransfer_FileTransferSession.*
%{_mandir}/man3/CosFileTransfer_VirtualFileSystem.*
%endif

%files -n erlang-cosNotification
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/cosNotification-*/
%{_libdir}/erlang/lib/cosNotification-*/ebin
%{_libdir}/erlang/lib/cosNotification-*/include
%{_libdir}/erlang/lib/cosNotification-*/src
%if %{with doc}
%{_mandir}/man3/CosNotification.*
%{_mandir}/man3/CosNotification_AdminPropertiesAdmin.*
%{_mandir}/man3/cosNotificationApp.*
%{_mandir}/man3/CosNotification_QoSAdmin.*
%{_mandir}/man3/CosNotifyChannelAdmin_ConsumerAdmin.*
%{_mandir}/man3/CosNotifyChannelAdmin_EventChannel.*
%{_mandir}/man3/CosNotifyChannelAdmin_EventChannelFactory.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxyConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxyPullConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxyPullSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxyPushConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxyPushSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_ProxySupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_SequenceProxyPullConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_SequenceProxyPullSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_SequenceProxyPushConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_SequenceProxyPushSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_StructuredProxyPullConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_StructuredProxyPullSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_StructuredProxyPushConsumer.*
%{_mandir}/man3/CosNotifyChannelAdmin_StructuredProxyPushSupplier.*
%{_mandir}/man3/CosNotifyChannelAdmin_SupplierAdmin.*
%{_mandir}/man3/CosNotifyComm_NotifyPublish.*
%{_mandir}/man3/CosNotifyComm_NotifySubscribe.*
%{_mandir}/man3/CosNotifyFilter_Filter.*
%{_mandir}/man3/CosNotifyFilter_FilterAdmin.*
%{_mandir}/man3/CosNotifyFilter_FilterFactory.*
%{_mandir}/man3/CosNotifyFilter_MappingFilter.*
%endif

%files -n erlang-cosProperty
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/cosProperty-*/
%{_libdir}/erlang/lib/cosProperty-*/ebin
%{_libdir}/erlang/lib/cosProperty-*/include
%{_libdir}/erlang/lib/cosProperty-*/src
%if %{with doc}
%{_mandir}/man3/cosProperty.*
%{_mandir}/man3/CosPropertyService_PropertiesIterator.*
%{_mandir}/man3/CosPropertyService_PropertyNamesIterator.*
%{_mandir}/man3/CosPropertyService_PropertySet.*
%{_mandir}/man3/CosPropertyService_PropertySetDef.*
%{_mandir}/man3/CosPropertyService_PropertySetDefFactory.*
%{_mandir}/man3/CosPropertyService_PropertySetFactory.*
%endif

%files -n erlang-cosTime
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/cosTime-*/
%{_libdir}/erlang/lib/cosTime-*/ebin
%{_libdir}/erlang/lib/cosTime-*/include
%{_libdir}/erlang/lib/cosTime-*/src
%if %{with doc}
%{_mandir}/man3/cosTime.*
%{_mandir}/man3/CosTimerEvent_TimerEventHandler.*
%{_mandir}/man3/CosTimerEvent_TimerEventService.*
%{_mandir}/man3/CosTime_TimeService.*
%{_mandir}/man3/CosTime_TIO.*
%{_mandir}/man3/CosTime_UTO.*
%endif

%files -n erlang-cosTransactions
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/cosTransactions-*/
%{_libdir}/erlang/lib/cosTransactions-*/ebin
%{_libdir}/erlang/lib/cosTransactions-*/include
%{_libdir}/erlang/lib/cosTransactions-*/src
%if %{with doc}
%{_mandir}/man3/cosTransactions.*
%{_mandir}/man3/CosTransactions_Control.*
%{_mandir}/man3/CosTransactions_Coordinator.*
%{_mandir}/man3/CosTransactions_RecoveryCoordinator.*
%{_mandir}/man3/CosTransactions_Resource.*
%{_mandir}/man3/CosTransactions_SubtransactionAwareResource.*
%{_mandir}/man3/CosTransactions_Terminator.*
%{_mandir}/man3/CosTransactions_TransactionFactory.*
%endif

%files -n erlang-ic
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/ic-*/
%{_javadir}/erlang/ic.jar
%{_libdir}/erlang/lib/ic-*/ebin
%{_libdir}/erlang/lib/ic-*/include
%{_libdir}/erlang/lib/ic-*/priv
%{_libdir}/erlang/lib/ic-*/src
%{_libdir}/erlang/usr/include/erlang.idl
%{_libdir}/erlang/usr/include/ic.h
%{_libdir}/erlang/usr/lib/libic.a
%if %{with doc}
%{_mandir}/man3/ic.*
%{_mandir}/man3/ic_clib.*
%{_mandir}/man3/ic_c_protocol.*
%endif

%files -n erlang-orber
%license COPYRIGHT
%license LICENSE.txt
%dir %{_libdir}/erlang/lib/orber-*/
%{_libdir}/erlang/lib/orber-*/COSS
%{_libdir}/erlang/lib/orber-*/ebin
%{_libdir}/erlang/lib/orber-*/include
%{_libdir}/erlang/lib/orber-*/priv
%{_libdir}/erlang/lib/orber-*/src
%if %{with doc}
%{_mandir}/man3/CosNaming.*
%{_mandir}/man3/CosNaming_BindingIterator.*
%{_mandir}/man3/CosNaming_NamingContext.*
%{_mandir}/man3/CosNaming_NamingContextExt.*
%{_mandir}/man3/Module_Interface.*
%{_mandir}/man3/any.*
%{_mandir}/man3/corba.*
%{_mandir}/man3/corba_object.*
%{_mandir}/man3/fixed.*
%{_mandir}/man3/interceptors.*
%{_mandir}/man3/lname.*
%{_mandir}/man3/lname_component.*
%{_mandir}/man3/orber.*
%{_mandir}/man3/orber_acl.*
%{_mandir}/man3/orber_diagnostics.*
%{_mandir}/man3/orber_ifr.*
%{_mandir}/man3/orber_tc.*
%endif


%changelog
* Sat Mar 02 2024 Jiri Vanek <jvanek@redhat.com> - 1:5.1-6
- Rebuilt for java-21-openjdk as system jdk

* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Sun Aug  7 2022 Peter Lemenkov <lemenkov@gmail.com> - 1:5.1-1
- Erlang CORBA ver. 5.1
- Build only on arches where Java is available

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 1:5.0.2-3
- Rebuilt for java-17-openjdk as system jdk

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Wed Jul 28 2021 Peter Lemenkov <lemenkov@gmail.com> - 1:5.0.2-1
- Erlang CORBA ver. 5.0.2

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Mon Apr  5 2021 Peter Lemenkov <lemenkov@gmail.com> - 1:5.0.1-1
- Erlang CORBA ver. 5.0.1

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Sun Oct  4 2020 Peter Lemenkov <lemenkov@gmail.com> - 5.0-1
- Erlang CORBA ver. 5.0

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.5.2-6
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.5.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 1:4.5.2-4
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11

* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.5.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Tue Jan 15 2019 Peter Lemenkov <lemenkov@gmail.com> - 4.5.2-1
- Initial build as a separate set of packages splitted off from Erlang/OTP