Current Path : /etc/rpm/ |
|
Current File : //etc/rpm/macros.jpackage |
#
# RPM macros for Java applications.
#
# JPackage Project <http://www.jpackage.org/>
# David Walluck <david@jpackage.org>
# Ville Skyttä <scop at jpackage.org>
# Nicolas Mailhot <Nicolas.Mailhot@laPoste.net>
#
#==============================================================================
# ---- default Java directories
#
# Root directory where all Java VMs/SDK/JREs are installed.
#
%_jvmdir %{_prefix}/lib/jvm
#
# Root directory where all Java VMs/SDK/JREs expose their jars
#
%_jvmjardir %{_prefix}/lib/jvm-exports
#
# Root directory for all Java VM/SDK/JRE's private things.
#
%_jvmprivdir %{_prefix}/lib/jvm-private
#
# Root directory for all architecture dependent parts of Java VM/SDK/JRE's
#
%_jvmlibdir %{_prefix}/lib/jvm
#
# Root directory for all architecture independent parts of Java VM/SDK/JRE's
#
%_jvmdatadir %{_datadir}/jvm
#
# Root directory for all configurations parts of Java VM/SDK/JRE's
#
%_jvmsysconfdir %{_sysconfdir}/jvm
#
# Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
#
%_jvmcommonlibdir %{_prefix}/lib/jvm-commmon
#
# Root directory for all common architecture independent parts of Java VM/SDK/JRE's
#
%_jvmcommondatadir %{_datadir}/jvm-commmon
#
# Root directory for all common configurations parts of Java VM/SDK/JRE's
#
%_jvmcommonsysconfdir %{_sysconfdir}/jvm-commmon
#
# Directory where arch and version independent jars are installed.
# This has already been integrated in RH macros following our request.
#
# By extension:
# %{_javadir}-ext:
# - version dependent jars
# %{_javadir}-x.y.z:
# - jars for Java standard x.y.z (usually symlinks to %{_javadir}-ext)
# %{_javadir}-utils:
# - Java-related scripts
#
# To simplify things only %{_javadir} is defined.
#
%_javadir %{_datadir}/java
#
# Directory where arch-specific (JNI) version-independent jars are installed.
#
# By extension:
# %{_jnidir}-ext:
# - version dependent jars
# %{_jnidir}-x.y.z:
# - jars for Java standard x.y.z (usually symlinks to %{_jnidir}-ext)
# To simplify things only %{_jnidir} is defined.
#
%_jnidir %{_prefix}/lib/java
#
# Root directory where all javadoc is installed. Also already in RH macros.
#
%_javadocdir %{_datadir}/javadoc
# Directory for maven poms
%_mavenpomdir %{_datadir}/maven2/poms
#
# Directory for maven depmaps
#
%_mavendepmapdir %{_sysconfdir}/maven
%_mavendepmapfragdir %{_sysconfdir}/maven/fragments
#
# Current default JVM home.
#
%java_home %(. %{_javadir}-utils/java-functions; set_jvm; echo $JAVA_HOME)
#==============================================================================
# ---- default Java commands
%ant JAVA_HOME=%{java_home} ant
%jar %{java_home}/bin/jar
%java %(. %{_javadir}-utils/java-functions; set_javacmd; echo $JAVACMD)
%javac %{java_home}/bin/javac
%javadoc %{java_home}/bin/javadoc
#==============================================================================
# ---- Java extension handling macros
#
# add_jvm_extension should be used in %install by extension packages to declare
# what extension jars they provide.
#
# For example a package that provides foo.jar which is the bar extension
# under java 1.2 and 1.3 should do a:
#
# %install
# ... # create foo.jar in %{javadir}-ext
# %add_jvm_extension foo bar 1.2 1.3
#
# %files
# %{javadir}-ext/foo.jar
# %{javadir}-*/bar.jar
#
%add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
#==============================================================================
#
# add_to_depmap adds an entry to the depmap. The arguments are:
#
# %1 the original groupid
# %2 the original artifact id
# %3 the version
# %4 the new groupid
# %5 the new artifactid
#
%add_to_maven_depmap() \
install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
<dependency>\
<maven>\
<groupId>%1</groupId>\
<artifactId>%2</artifactId>\
<version>%3</version>\
</maven>\
<jpp>\
<groupId>%4</groupId>\
<artifactId>%5</artifactId>\
<version>%3</version>\
</jpp>\
</dependency>\
\
EOF\
%{nil}
#==============================================================================
#
# update_maven_depmap updates the main maven depmap
#
%update_maven_depmap() \
echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
fi\
echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml\
%{nil}
#==============================================================================
# ---- GCJ support
%_gcj_support 1
#==============================================================================
# ---- default icons directories as per the icon theme freedesktop spec
%_iconstheme hicolor
%_iconsbasedir %{_datadir}/icons/%{_iconstheme}
#
# The following is a bit heavy and will be removed
#
%_icons16dir %{_iconsbasedir}/16x16/apps
%_icons22dir %{_iconsbasedir}/22x22/apps
%_icons48dir %{_iconsbasedir}/48x48/apps
%_icons64dir %{_iconsbasedir}/64x64/apps
%_icons96dir %{_iconsbasedir}/96x96/apps
%_icons192dir %{_iconsbasedir}/192x192/apps
%_iconsscaldir %{_iconsbasedir}/scalable/apps
#
# Mandriva macros for non-Mandriva systems.
#
%_miconsdir %{_datadir}/icons/mini
%_iconsdir %{_datadir}/icons
%_liconsdir %{_datadir}/icons/large
#
# Mandriva icons
#
# %1 the name of the icon (typically the name of the package). Mandriva
# requires 3 icons sizes (48, 32, 16), all should be present.
#
%mdkicons() \
install -D -m 644 %1-48.png $RPM_BUILD_ROOT%{_liconsdir}/%1.png\
install -D -m 644 %1-32.png $RPM_BUILD_ROOT%{_iconsdir}/%1.png\
install -D -m 644 %1-16.png $RPM_BUILD_ROOT%{_miconsdir}/%1.png\
%{nil}
#
# Red Hat icons
#
# %1 the name of the icon (typically the name of the package). RedHat
# requires 3 icons sizes (48, 32, 16), all should be present.
%rhicons() \
install -D -m 644 %1-48.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/%{name}.png\
install -D -m 644 %1-32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/%{name}.png\
install -D -m 644 %1-16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/%{name}.png\
%{nil}
#==============================================================================
# ---- default .desktop directories per the desktop-entry freedesktop.org spec
%_desktopdir %{_datadir}/applications
#
# Mandriva menu dir
#
%_menudir %{_prefix}/lib/menu
#
# Mandriva menu
#
# %1 the name of the menu (ex: %{name})
# %2 the command to run (ex: %{_bindir}/%{name})
# %3 needs (ex: X11)
# %4 menu section (ex: Applications/Editors)
# %5 mime types (ex: text/html;text/plain)
# %6 menu title (ex: %{name})
# %7 comment or summary (ex: %{Summary})
# %8 icon (ex: %{name}.png)
# %9 unused
#
%mdkmenu() \
install -d -m 755 $RPM_BUILD_ROOT%{_menudir}\
cat >$RPM_BUILD_ROOT%{_menudir}/%1 <<EOF\
\?package(%1):\\
command="%2"\\
needs="%3"\\
section="%4"\\
mimetypes="%5"\\
title="%6"\\
longtitle="%7"\\
icon="%8"\\
EOF\
%{nil}
%post_mdkmenu\
%post mdkmenu\
%{update_menus}
%postun_mdkmenu\
%postun mdkmenu\
%{clean_menus}
#
# Legacy menu
#
# %1 the name of the menu (ex: %{name})
# %2 the command to run (ex: %{_bindir}/%{name})
# %3 needs (ex: 1)
# %4 menu section (ex: Development)
# %5 unused
# %6 menu title (ex: %{name})
# %7 comment or summary (ex: %{Summary})
# %8 icon (ex: %{name}.png)
# %9 type (ex: Application)
#
%rhmenu() \
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/%4\
cat >$RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/%4/%1.desktop <<EOF\
[Desktop Entry]\
Name=%6\
Comment=%7\
Exec=%2\
Terminal=%3\
Type=%9\
Icon=%8\
EOF\
%{nil}
#
# Standard JPackage script
#
# This is kind of tasteless and should be moved to an external template
#
# %1 main class
# %2 flags
# %3 options
# %4 jars (separated by ':')
# %5 the name of script you wish to create
#
%jpackage_script() \
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}\
cat > $RPM_BUILD_ROOT%{_bindir}/%5 << EOF \
#!/bin/sh\
#\
# %{name} script\
# JPackage Project <http://www.jpackage.org/>\
\
# Source functions library\
. %{_javadir}-utils/java-functions\
\
# Source system prefs\
if [ -f %{_sysconfdir}/java/%{name}.conf ] ; then\
. %{_sysconfdir}/java/%{name}.conf\
fi\
\
# Source user prefs\
if [ -f \\$HOME/.%{name}rc ] ; then\
. \\$HOME/.%{name}rc\
fi\
\
# Configuration\
MAIN_CLASS=%1\
BASE_FLAGS=%2\
BASE_OPTIONS=%3\
BASE_JARS="%(echo %4 | sed -e 's,:, ,g')"\
\
# Set parameters\
set_jvm\
set_classpath \\$BASE_JARS\
set_flags \\$BASE_FLAGS\
set_options \\$BASE_OPTIONS\
\
# Let's start\
run "\\$@"\
EOF\
chmod 755 $RPM_BUILD_ROOT%{_bindir}/%5\
%{nil}
Copyright 2K16 - 2K18 Indonesian Hacker Rulez