[fedora-java] db merging script

Anthony Green green at redhat.com
Tue Mar 22 22:26:45 UTC 2005


Here's a real-world example from the servletapi5 spec file.  It
currently assumes that we should be using `gcj-dbtool -p`.
Comments/suggestions welcome.

*** servletapi5.spec	2004-11-04 06:41:06.000000000 -0800
--- servletapi5.spec.new	2005-03-22 14:23:54.964489184 -0800
***************
*** 3,9 ****
  %define	name		%{base_name}%{major_version}
  %define full_name	jakarta-%{base_name}
  %define	version		5.0.18
! %define release		1jpp_3fc
  %define section		free
  
  Name:		%{name}
--- 3,9 ----
  %define	name		%{base_name}%{major_version}
  %define full_name	jakarta-%{base_name}
  %define	version		5.0.18
! %define release		1jpp_4fc
  %define section		free
  
  Name:		%{name}
***************
*** 23,29 ****
  BuildRequires:  xerces-j2, xml-commons-apis
  BuildRequires:  jpackage-utils >= 1.5.30
  BuildRequires:  java-javadoc
- BuildArch:	noarch
  BuildRoot:	%{_tmppath}/%{name}-%{version}-buildroot
  #Obsoletes:	servlet4
  #Obsoletes:	servlet23
--- 23,28 ----
***************
*** 66,79 ****
--- 65,91 ----
  ant dist -Dservletapi.build=build -Dservletapi.dist=dist
  popd
  
+ # Generate native code.
+ gcj $RPM_OPT_FLAGS -shared -findirect-dispatch -Wl,-Bsymbolic -o libjspapi-%{version}.jar.so jsr152/dist/lib/jsp-api.jar
+ gcj-dbtool -n jspapi-%{version}.db
+ gcj-dbtool -f jspapi-%{version}.db jsr152/dist/lib/jsp-api.jar %{_libdir}/libjspapi-%{version}.jar.so
+ gcj $RPM_OPT_FLAGS -shared -findirect-dispatch -Wl,-Bsymbolic -o lib%{name}-%{version}.jar.so jsr154/dist/lib/servlet-api.jar
+ gcj-dbtool -n %{name}-%{version}.db
+ gcj-dbtool -f %{name}-%{version}.db jsr154/dist/lib/servlet-api.jar %{_libdir}/lib%{name}-%{version}.jar.so 
  
  %install
  cd jakarta-tomcat-%{version}-src/jakarta-servletapi-5
  # jars
  install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
+ install -d -m 755 $RPM_BUILD_ROOT%{_libdir}
+ install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p`.d
  
  install -m 644 jsr152/dist/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jspapi-%{version}.jar
  install -m 644 jsr154/dist/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
+ install -m 644 libjspapi-%{version}.jar.so $RPM_BUILD_ROOT%{_libdir}/libjspapi-%{version}.jar.so
+ install -m 644 lib%{name}-%{version}.jar.so $RPM_BUILD_ROOT%{_libdir}/lib%{name}-%{version}.jar.so 
+ install -m 644 jspapi-%{version}.db $RPM_BUILD_ROOT`gcj-dbtool -p`.d/jspapi-%{version}.db 
+ install -m 644 %{name}-%{version}.db $RPM_BUILD_ROOT`gcj-dbtool -p`.d/%{name}-%{version}.db 
  
  (cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed  "s|-%{version}||g"`; done)
  
***************
*** 94,105 ****
--- 106,125 ----
  %post
  update-alternatives --install %{_javadir}/servlet.jar servlet %{_javadir}/%{name}-%{version}.jar 50
  #update-alternatives --install %{_javadir}/jsp.jar jsp %{_javadir}/jsp-api-%{version}.jar 50
+ DB=`gcj-dbtool -p`
+ rm -f $DB 
+ gcj-dbtool -n $DB
+ (cd $DB.d; ls . | xargs gcj-dbtool -m $DB)
  
  %postun
  if [ "$1" = "0" ]; then
  	update-alternatives --remove servlet %{_javadir}/%{name}-%{version}.jar
  #	update-alternatives --remove jsp %{_javadir}/jsp-api-%{version}.jar
  fi
+ DB=`gcj-dbtool -p`
+ rm -f $DB 
+ gcj-dbtool -n $DB
+ (cd $DB.d; ls . | xargs gcj-dbtool -m $DB)
  
  %post javadoc
  rm -f %{_javadocdir}/%{name}
***************
*** 110,115 ****
--- 130,136 ----
  %files
  %defattr(-,root,root)
  %doc LICENSE
+ %{_libdir}/*
  %{_javadir}/*
  
  %files javadoc
***************
*** 121,126 ****
--- 142,150 ----
  
  
  %changelog
+ * Tue Mar 22 2005 Anthony Green <green at redhat.com> 0:5.0.18-1jpp_4fc
+ - Generate native libraries.
+ 
  * Thu Nov  4 2004 Gary Benson <gbenson at redhat.com> 0:5.0.18-1jpp_3fc
  - Build into Fedora.
  







More information about the fedora-devel-java-list mailing list