File netty_mini_ssl.spec of Package netty_mini_ssl

Name: netty_mini_ssl
Version: 4.1.104
Release: 2zh
Summary: netty's openssl and epoll transport standalone
License: Apache-2.0
Group: Development/Libraries/Java
URL: https://github.com/netty
Source0: https://github.com/netty/netty/archive/refs/tags/netty-%{version}.Final.tar.gz
Source1: https://github.com/netty/netty-tcnative/archive/refs/tags/netty-tcnative-parent-2.0.62.Final.tar.gz
Source2: https://github.com/JCTools/JCTools/archive/refs/tags/v4.0.2.tar.gz
#Source3: netty-%{version}.Final-pregen.tar.gz
Patch0: trim-deps.patch

%if 0%{?centos}
BuildRequires: java-1.8.0-openjdk-devel
%else
BuildRequires: java-devel
%endif
BuildArch:      noarch
Requires: libnetty_tcnative = 2.0.62
Requires: libnetty_transport_native_epoll = 4.1.104

%description
Java part of netty's openssl and epoll transport as a compact self-consistent 
package for easy and reproducable rebuilding on various rpm-based GNU/Linux 
distributions.

%prep

%setup -c

# rm -Rf $RPM_BUILD_DIR/%{name}-%{version}
# mkdir $RPM_BUILD_DIR/%{name}-%{version}
mkdir $RPM_BUILD_DIR/%{name}-%{version}/Full
mkdir $RPM_BUILD_DIR/%{name}-%{version}/java

pushd $RPM_BUILD_DIR/%{name}-%{version}/Full
tar xaf %{_sourcedir}/netty-%{version}.Final.tar.gz --strip-components=1
tar xaf %{_sourcedir}/netty-tcnative-parent-2.0.62.Final.tar.gz --strip-components=1
tar xaf %{_sourcedir}/v4.0.2.tar.gz --strip-components=1
popd

pushd $RPM_BUILD_DIR/%{name}-%{version}
#tar xaf %{_sourcedir}/netty-%{version}.Final-pregen.tar.gz
mkdir -p java/io/netty/util/collection
sed 's/@K@/Int/g ; s/@k@/int/g ; s/@O@/Integer/g ; s/@KEY_NUMBER_METHOD@/intValue/g ; s/@HASH_CODE@/(int) key/g ' < $RPM_BUILD_DIR/%{name}-%{version}/Full/common/src/main/templates/io/netty/util/collection/KObjectHashMap.template >java/io/netty/util/collection/IntObjectHashMap.java
sed 's/@K@/Int/g ; s/@k@/int/g ; s/@O@/Integer/g ; s/@KEY_NUMBER_METHOD@/intValue/g ; s/@HASH_CODE@/(int) key/g ' < $RPM_BUILD_DIR/%{name}-%{version}/Full/common/src/main/templates/io/netty/util/collection/KObjectMap.template >java/io/netty/util/collection/IntObjectMap.java
#cp output/IntObject*.java java/io/netty/util/collection
popd

pushd $RPM_BUILD_DIR/%{name}-%{version}
cp -a Full/transport/src/main/java/. java/
cp -a Full/buffer/src/main/java/. java/
cp -a Full/openssl-classes/src/main/java/. java/
cp -a Full/resolver/src/main/java/. java/
cp -a Full/common/src/main/java/. java/
cp -a Full/transport-classes-epoll/src/main/java/. java/
cp -a Full/transport-native-unix-common/src/main/java/. java/
mkdir -p java/io/netty/handler/ssl
cp -a Full/handler/src/main/java/io/netty/handler/ssl/. java/io/netty/handler/ssl
mkdir -p java/io/netty/handler/codec
cp -a Full/codec/src/main/java/io/netty/handler/codec/. java/io/netty/handler/codec
mkdir -p java/org/jctools/queues
cp -a Full/jctools-core/src/main/java/org/jctools/queues/. java/org/jctools/queues
mkdir -p java/org/jctools/util
cp -a Full/jctools-core/src/main/java/org/jctools/util/. java/org/jctools/util
popd

pushd $RPM_BUILD_DIR/%{name}-%{version}/java
patch -p1 < %{_sourcedir}/trim-deps.patch
popd


%build

pushd $RPM_BUILD_DIR/%{name}-%{version}
mkdir tmpclasses
javac -encoding utf-8 -XDignore.symbol.file -O -d tmpclasses -sourcepath java/ java/io/netty/handler/ssl/ReferenceCountedOpenSslEngine.java java/io/netty/internal/tcnative/CertificateVerifierTask.java java/io/netty/handler/ssl/util/FingerprintTrustManagerFactory.java java/io/netty/handler/ssl/SslContextBuilder.java java/io/netty/channel/epoll/EpollSocketChannel.java java/io/netty/channel/epoll/EpollEventLoopGroup.java
jar cf netty-mini-ssl.jar -C tmpclasses io -C tmpclasses org
popd

%install

pushd $RPM_BUILD_DIR/%{name}-%{version}
install -d -m 755 %{buildroot}%{_javadir}
install -m 644 netty-mini-ssl.jar %{buildroot}%{_javadir}
popd

## % clean
## rm -rf $RPM_BUILD_DIR/%{name}-%{version}

%files
%defattr(0644,root,root,0755)
%{_javadir}/*

%changelog
* Tue Mar 26 2024 Nikolai Zhubr <zhubr.2@gmail.com> - 4.1.104
- initial packaging
openSUSE Build Service is sponsored by