There is no rpm package for ImageJ. I send you the spec file that I have updated and the file imagej.sh which must be placed in the SOURCES directory ------------------------------------------------------------ Name: imagej Version: 1.46a Release: %mkrel 1 Summary: Image Processing and Analysis in Java Group: Applications/Engineering License: Public Domain URL: http://rsb.info.nih.gov/ij/index.html Source0: http://rsb.info.nih.gov/ij/download/src/ij146a-src.zip # unix-script.txt modified for linux Source1: imagej.sh Source2: http://rsb.info.nih.gov/ij/macros/macros.zip Source3: http://rsb.info.nih.gov/ij/download/linux/unix-script.txt BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} BuildRequires: jpackage-utils BuildRequires: java-devel BuildRequires: ant BuildRequires: desktop-file-utils Requires: jpackage-utils # java-devel not java for plugins build Requires: java-1.6.0-devel >= 1.6.0 %description ImageJ is a public domain Java image processing program. It can display, edit, analyze a wide variety of image data, including image sequences. Imagej can be used for quantitative analysis of engineering and scientific image data. %description -l fr.UTF-8 ImageJ est un logiciel de retouche d'images, du domaine public. Il permet d'afficher, de modifier, d'analyser une très grande variété d'images, incluant les séquences d'images. ImageJ peut être utilisé pour effectuer des analyses quantitatives d'images. %package javadoc Summary: Javadocs for %{name} Group: Documentation BuildArch: noarch Requires: %{name} = %{version}-%{release} Requires: jpackage-utils %description javadoc This package contains the API documentation for %{name}. %description javadoc -l fr.UTF-8 Ce paquet contient la documentation de l'API pour %{name}. %prep %setup -q -c -n "%{name}-%{version}" unzip -qq -u %{SOURCE2} # erase binary and useless files rm -rf macros/.FBC* rm macros/build.xml rm -rf __MACOSX find -name '/*.class' -exec rm -f '{}' \; find -name '*.jar' -exec rm -f '{}' \; %build cd source ant build javadocs cd .. %install rm -rf $RPM_BUILD_ROOT # install jar mkdir -p $RPM_BUILD_ROOT%{_javadir} cp -p source/ij.jar \ $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar # install javadoc mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name} cp -rp api \ $RPM_BUILD_ROOT%{_javadocdir}/%{name} #install icons mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps cat > $RPM_BUILD_ROOT%{_datadir}/pixmaps/imagej.xpm << EOF /* XPM */ static char *imagej[] = { /* columns rows colors chars-per-pixel */ "20 20 8 1 ", " c #C3D100", ". c #D1C700", "X c #D1B500", "o c #D1A900", "O c #CB8E00", "+ c #C57700", "@ c None", "# c black", /* pixels */ "@@@@@@@@@@++@@@@@@@@", "@@@@@@@@@@+ @@@@@@@@", "@@@@@@@@@@+ @@@@@@@@", "@@@@@@@@@@+ @@@@@@@@", "@@@@@@@@@@+O@@@@@@@@", "@@@@@@@@@@+O@@@@@@@@", "@@@@@@@@@o+O@@@@@@@@", "@@@@@@@@O++O@@@@@@@@", "@@@@@@@++++O@@@@@@@@", "@@@@@@O+@@+O@@@@@@@@", "@@@@@@++@@++@@@@@@@@", "@@@@@@++@@++@@@@@@@@", "@@@@@@++@@@@@@@@@@@@", "@@@@@@++++OXX @@@@@", "@@@@@@@+++OOOO@@@@@@", "@@@@@@@@++@@@@@@@@@@", "@@@@@@@@++@.@@@@@@@@", "@@@@@@@@++@OO@@@@@@@", "@@@@@+++XXXXX @@@@@", "@@@@++++++++OO. @@@@" }; EOF # Install desktop file mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications cat > $RPM_BUILD_ROOT%{_datadir}/applications/imagej.desktop << EOF [Desktop Entry] Encoding=UTF-8 Name=ImageJ GenericName=Image Editor GenericName[ar]=ÙØØ±Ø± ØµÙØ± GenericName[be]=Ð ÑдакÑÐ°Ñ Ð²ÑдаÑÑÑÐ°Ñ GenericName[bg]=РедакÑÐ¾Ñ Ð½Ð° изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ GenericName[ca]=Editor d'imatges GenericName[ca@valencia]=Editor d'imatges GenericName[cs]=Editor obrázků GenericName[da]=Billedredigering GenericName[de]=Bildeditor GenericName[dz]=à½à½à½à½¦à¼à½à½¢à½à¼ à½à½à¼à½à½à¼à½à¼ GenericName[el]=ÎÏεξεÏγαÏÏÎ®Ï ÎµÎ¹ÎºÏνÏν GenericName[en_CA]=Image Editor GenericName[en_GB]=Image Editor GenericName[eo]=Bilada Redaktilo GenericName[es]=Editor de imagen GenericName[et]=Pildiredaktor GenericName[eu]=Irudi-editorea GenericName[fa]=ÙÛØ±Ø§Ûشگر تصÙÛØ± GenericName[fi]=Kuvankäsittely GenericName[fr]=Ãditeur d'image GenericName[gl]=Editor de imaxes GenericName[gu]=àªàª¿àª¤àª° સપાદઠGenericName[hu]=KépszerkesztÅ GenericName[is]=Myndvinnsluforrit GenericName[it]=Editor immagine GenericName[ja]=ç»åã¨ãã£ã¿ GenericName[ka]=ááááá¡áá®á£ááááááá¡ á áááá¥á¢áá á GenericName[km]=ááááááááááááá¶á GenericName[kn]=à²à²¤à²° ಸà²à²ªà²¾à²¦à² GenericName[ko]=ì´ë¯¸ì§ í¸ì§ê¸° GenericName[lt]=PaveikslÄlių rengyklÄ GenericName[lv]=AttÄla redaktors GenericName[mk]=УÑедник за Ñлики GenericName[mr]=परतिमा सपादठGenericName[nb]=Bildebehandler GenericName[ne]=à¤à¤µà¤¿ समपादठGenericName[nl]=Afbeeldingsbewerker GenericName[nn]=Biletbehandlar GenericName[or]=ପରତà¬à¬¬ ସମପାଦଠGenericName[pa]=à¨à¨¿à¨¤à¨° à¨à¨¡à©à¨à¨° GenericName[pl]=Edytor obrazu GenericName[pt]=Editor de Imagens GenericName[pt_BR]=Editor de Imagens GenericName[ro]=Editor de imagine GenericName[ru]=РедакÑÐ¾Ñ Ð¸Ð·Ð¾Ð±Ñажений GenericName[sk]=Editor obrázkov GenericName[sl]=Urejevalnik slik GenericName[sr]=ÐбÑада Ñлика GenericName[sr@latin]=Obrada slika GenericName[sv]=Bildredigerare GenericName[ta]=பிமப திரà¯à®¤à®¤à®¿ GenericName[th]=à¸à¸§à¹à¸à¹à¸à¸ าภGenericName[tr]=Resim Düzenleyici GenericName[tt]=Sürät Tözätkeç GenericName[uk]=РедакÑÐ¾Ñ Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ñ GenericName[vi]=Bá» biên soạn ảnh GenericName[xh]=UmHleli woMfanekiso GenericName[zh_CN]=å¾åç¼è¾å¨ GenericName[zh_HK]=åçç·¨è¼¯å¨ GenericName[zh_TW]=åçç·¨è¼¯å¨ Comment=Image Processing and Analysis in Java Comment[fr_FR]=en Java Exec=imagej %f TryExec=imagej Icon=/usr/share/pixmaps/imagej.xpm Terminal=false Type=Application Categories=Java;Graphics; MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjeg;image/png;image/tiff;image/x-bmp;image/x-fits;image/x-png;image/x-psd;image/x-xbitmap;application/dicom; EOF # install data files mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} cp -p source/build/about.jpg $RPM_BUILD_ROOT%{_datadir}/%{name}/about.jpg cp -p source/build/IJ_Props.txt $RPM_BUILD_ROOT%{_datadir}/%{name}/IJ_Props.txt #install macros chmod 644 macros/About\ Startup\ Macros find ./macros -name \*.txt -type f -exec chmod 644 {} \; find ./macros -type d -exec chmod 755 {} \; cp -rp macros $RPM_BUILD_ROOT%{_datadir}/%{name} #install luts mkdir $RPM_BUILD_ROOT%{_datadir}/%{name}/luts # install script mkdir -p $RPM_BUILD_ROOT%{_bindir} cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name} chmod +x $RPM_BUILD_ROOT%{_bindir}/%{name} # directory for plugins mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins cp source/plugins/JavaScriptEvaluator.source $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/JavaScriptEvaluator.java %post #update icon cache touch --no-create %{_datadir}/icons/hicolor if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor; fi update-desktop-database &> /dev/null || : %postun # update icon cache touch --no-create %{_datadir}/icons/hicolor if [ -x %{_bindir}/gtk-update-icon-cache ]; then %{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor; fi update-desktop-database &> /dev/null || : %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %{_javadir}/* %{_datadir}/%{name}/ %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.xpm %{_bindir}/%{name} %doc source/aREADME.txt source/release-notes.html source/applet.html %files javadoc %defattr(-,root,root,-) %{_javadocdir}/%{name} %changelog * Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.44-2.i - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild ----------------------------------------------------------------------- ----------------------------------------------------------------------- #!/bin/bash # A wrapper script to launch imagej from the UNIX command line # Images given as arguments will be opened, macros may also be given as arguments # Looks for macros in the imagej macro directory # # This program is free software, but comes with no warrenty or guarantee # send bug reports or feedback to jjackson at familyjackson dot net # Author: Jon Jackson # Maintainer : Fabien Georget for fedora # Last modified date: 2010-10-30 # Revision: 53 # # ### WARNING ########################################################### # This file must be edited with a program that supports unix new line characters # - it won't run if edited in 'Notepad' ! ####################################################################### # setup environment set +u # don't give error for unset variables (matters for environment variables) shopt -s extglob # allow extended pattern matching ############ SITE SPECIFIC VARIABLES ######################### # Trailing / is not required for path variables # IMAGEJ PATH - production installation ij_path='/usr/share/java' #path to data files ij_data_path='/usr/share/imagej' # Path to user ij_user_path="${HOME}/.imagej" # JAVA PATH JAVA_HOME=$(dirname $(dirname $(readlink /etc/alternatives/java))) # report bug to http://bugzilla.redhat.com/ ijadmin='Fedora project' # DOCUMENTATION URL doc_url='http://rsb.info.nih.gov/ij/' # TEMP FOLDER ij_tmp="${HOME}/.imagej/tmp" # LOG FILE #ij_log="${ij_tmp}/log.txt" # default behaviour when an ImageJ window is already open newwindow='true' #newwindow='false' # macro argument delimiter character separator=':' # a ' ' may work provided no arguments would contain spaces # use macro functions: args=getArgument(); argArray=split(args, ':'); # to recover macro arguments ############ DEFAULT MEMORY SETTINGS ######################### declare -i default_mem=768 declare -i min_mem=32 declare -i max_32bit=1800 # empirical declare -i max_64bit=17000000000 # conservative ############ SITE SPECIFIC MODULES ######################### # JAR libraries for additional modules may be placed in ${ij_path}/lib # jmf.jar jai_codec.jar jai_core.jar mlibwrapper_jai.jar # Native libraries may be placed in ${ij_path}/lib/$OS # where OS matches the output of the 'uname' command ############ END SITE SPECIFIC VARIABLES ######################### OS=$(uname) processor=$(uname -m) # -p doesn't work on ubuntu declare -i mem declare -i max_mem declare -i free_mem java_path="${JAVA_HOME}/bin/java" if [[ "$OS" == 'Linux' ]] ; then if [[ "$processor" == 'x86_64' ]] ; then java_arch='-d64' max_mem=`free | awk -v maxMem=$max_64bit 'NR == 2 {fmem=int($2 / 1024); if (fmem < maxMem) {print fmem} else {print maxMem}}'` free_mem=`free | awk -v maxMem=$max_64bit 'NR == 3 {fmem=int($4 / 1024); if (fmem < maxMem) {print fmem} else {print maxMem}}'` mem=${free_mem}/3*2 if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=$default_mem ; fi else java_arch='-d32' max_mem=`free | awk -v maxMem=$max_32bit 'NR == 2 {fmem=int($2 / 1024); if (fmem < maxMem) {print fmem} else {print maxMem}}'` free_mem=`free | awk -v maxMem=$max_32bit 'NR == 3 {fmem=int($4 / 1024); if (fmem < maxMem) {print fmem} else {print maxMem}}'` mem=${free_mem}/3*2 if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=$default_mem ; fi fi fi # create plugins, macros, luts dirs mkdir -p $ij_user_path/plugins mkdir -p $ij_user_path/macros mkdir -p $ij_user_path/luts if [[ ! -d "$ij_tmp" ]] ; then mkdir -p "$ij_tmp" fi # makes symbolik links from shared plugins, macros and luts ls $ij_data_path/plugins | while read p ; do if [ ! -e "$ij_user_path/plugins/$p" ] ; then ln -s $ij_data_path/plugins/$p $ij_user_path/plugins/$p fi done ls $ij_data_path/macros | while read p; do if [ ! -e "$ij_user_path/macros/$p" ] ; then ln -s "$ij_data_path/macros/$p" "$ij_user_path/macros/$p" fi done ls $ij_data_path/luts | while read p ; do if [ ! -e "$ij_user_path/luts/$p" ] ; then ln -s $ij_data_path/luts/$p $ij_user_path/luts/$p fi done # enable plugins to be compiled with imageJ tools="${JAVA_HOME}/../lib/tools.jar" # End Site specific variables --------------------------------------------------------- # other variables dir=`pwd` user=`whoami` host=`hostname` if [[ -z "$DISPLAY" ]] ; then echo 'Display variable not set' echo 'If ImageJ fails to load, try ' echo '% setenv DISPLAY yourcomputer:0' echo 'if you use the "csh" or for "bash" try' echo '% export DISPLAY=yourcomputer:0' display='default' else display="$DISPLAY" fi declare -i port=0 declare -i verbosity=0 images='' macrocmd='' macroargs='' function usage { echo echo 'Image display and analysis program. Opens formats including:' echo 'UNC, Analyze, Dicom, NIFTI, Tiff, Jpeg, Gif, PNG ...' echo echo 'imagej [options] image [ image2 ... image3 ]' echo ' -h print help and more options' echo ' -o open images in an open ImageJ panel' echo ' -p <N> open images in ImageJ panel number <N>' echo " -x <MB> set available memory (default=${mem} max=${max_mem})" echo } function fullusage { echo echo 'Image display and analysis program. Opens formats including:' echo 'UNC, Analyze, Dicom, NIFTI, Tiff, Jpeg, Gif, PNG ...' echo echo 'imagej [options] image [ image2 ... image3 ] -> open images' echo echo 'basic options:' echo ' -h print help and more options' echo ' -o open images in existing ImageJ panel if one exists' echo ' -p <N> open images in existing ImageJ panel number <N>' echo " -x <MB> set available memory (default=${mem} max=${max_mem})" echo echo 'advanced options:' echo ' -c enable plugin compilation within imagej' echo ' -d use development version' echo ' -v be verbose (vv or vvv increases verbosity)' echo echo 'options for batch processing:' echo " -e 'Macro Code' execute macro code" echo " -r 'Menu Command' run menu command" echo "Quotation marks '' are required around commands including spaces" echo 'Commands can be sent to open ImageJ panels with the -p option' echo echo 'options for macros:' echo 'imagej [-i image] [-b|-m] [arg1 ... argN] ' echo ' -b macro run macro without graphics window' echo ' -m macro run macro' echo '"image" will be opened before macro is run' echo 'all following arguments are passed to macro' echo echo "Documentation - $doc_url " echo "Report problems with this software to $ijadmin" echo } function macroCmdError { fullusage echo 'Only one command option (-b -e -m OR -r) may be specified' 1>&2 exit 1 } function getFullPath { # Return full path to file # treats multiple arguments as a single file with spaces if (( $# == 0 )) ; then echo "error getting full path for '${*}'" 1>&2 fi pwd_getFullPath="$PWD" \cd $(dirname "${*}") > /dev/null dir_getFullPath="$PWD" \cd "$pwd_getFullPath" > /dev/null echo "$dir_getFullPath"/$(basename "${*}") } function derefln { # Returns the full path of file to which link points # following multiple levels of symbolic links. # NOTE: if you use this function in a script, don't use any # of the variable names used here if (( $# == 0 )) ; then return fi local the_link="$1" local link_dir local current_dir="$PWD" while file "$the_link" | grep symbolic > /dev/null ; do # resolve links until target is regular file if [[ "$the_link" == */* ]] ; then # path contains / \cd $(dirname "${the_link}") > /dev/null the_link=$(basename "$the_link") fi link_dir="$PWD" # some versions of 'file' surround the path in `' quotes, hence the tr to remove them the_link=$(file "${the_link}" | awk '/symbolic link/ {print $NF}' | tr -d "\140\047" ) if [[ "$the_link" != /* ]] ; then # path is not absolute path - make it one the_link="$link_dir/$the_link" fi \cd "$current_dir" > /dev/null done echo $the_link } # parse input arguments while getopts b:cde:hi:m:nop:r:vx: options do case $options in b) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi macrocmd="-batch ${OPTARG}" ;; c) modules="${modules:-}${modules+:}${tools}" ;; d) ij_path="$ij_path_dev" ;; e) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi macrocmd='-eval' macroargs="'${OPTARG}'" ;; h) fullusage exit 0 ;; i) images="${images}'${OPTARG}' " ;; m) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi macrocmd="-macro ${OPTARG}" ;; n) newwindow='true' ;; o) newwindow='false' ;; p) newwindow='false' port="${OPTARG}" if (( "$port" < 1 || "$port" > 99 )) ; then echo "${OPTARG} is not a permissible value for port number (-p)" 1>&2 exit 1 fi ;; r) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi macrocmd='-run' macroargs="'${OPTARG}'" ;; v) verbosity=verbosity+1 if (( $verbosity == 2 )) ; then set -x ; fi if (( $verbosity == 3 )) ; then set -v ; fi ;; x) mem="${OPTARG}" newwindow='true' if (( $mem < $min_mem || $mem > $max_mem )) ; then echo "${OPTARG} is not a permissible value for memory (-x)" 1>&2 echo "min=${min_mem}, max=${max_mem}" 1>&2 exit 1 fi ;; \?) usage exit 1 ;; esac done #for ((i=1; i < $OPTIND; i++)) #do # shift #done ## above syntax not supported in bash < 2.05 declare -i i=1 while (( i < $OPTIND )) ; do shift i=i+1 done if [[ "$#" == 0 && -z "$macrocmd" ]] ; then usage fi # The best way to install .jar libraries required by plugins is to copy them # to the imagej plugins/jars directory # Alternatively, either copy them to ${ij_path}/jre/lib/ext/ or add the .jar # filepath to the modules line below. Paths are separated by a colon # Classpath must follow command line arguments, as ij_path is dependent on the -d option # Resolving ij.jar path. If ij.jar is a symbolic link to ij_<version>.jar # this allows updating ij.jar without crashing running sessions ij_jar_path=$(derefln ${ij_path}/imagej.jar) for mod_jar in ${ij_path}/*jar ; do modules="${modules:-}${modules+:}$mod_jar" done modules="-cp ${ij_jar_path}:${modules+:}${modules:-}" #${ij_path}/plugins/jars/dcmie.jar export LD_LIBRARY_PATH="${ij_path}/lib/${OS}_$processor" if (( $verbosity > 0 )) ; then echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" fi # -b and -m options only: # remaining command line arguments are passed as macro arguments # separated by $separator if [[ -n "$macrocmd" && -z "$macroargs" ]] ; then while (( "$#" > 0 )) ; do if [[ -z "$macroargs" ]] ; then macroargs="${1}" else macroargs="${macroargs}${separator}${1}" fi shift done macroargs="'$macroargs'" fi # PROTECT POSSIBLE SPACES IN IMAGE FILENAMES if (( "$#" > 0 )) ; then while (( "$#" > 0 )) ; do filearg="${1}" # full file path required when sending images to running ImageJ panel if [[ "${newwindow}" == 'false' && -f "${filearg}" ]] && ! expr "${filearg}" : '/.*' > /dev/null; then filearg="$(getFullPath ${filearg})" fi images="${images}'$filearg' " shift done fi # CREATE IMAGEJ SOCKET-LOCK DIRECTORY IF NON EXISTANT if [[ ! -d "$ij_tmp" ]] ; then mkdir "$ij_tmp" chmod 777 "$ij_tmp" fi # CREATE IMAGEJ LOG FILE IF NON EXISTANT if [[ -n "$ij_log" && ! -f "$ij_log" ]] ; then touch "$ij_log" chmod 666 "$ij_log" fi # CREATES A TEMP FILE INDICATING A PORT IS IN USE BY IMAGEJ cd "$ij_tmp" declare -i count=1 portopen='false' lockFileCreated='false' declare -a locklist=(`ls | grep '[0-9][0-9]-.*'`) [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tNew Window = $newwindow" >> "$ij_log" 2> /dev/null [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tPort = $port" >> "$ij_log" 2> /dev/null [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tlocklist: \n ${locklist[*]}" >> "$ij_log" 2> /dev/null if (( $verbosity > 0 )) ; then echo -e "locklist: \n ${locklist[*]}" ; fi # PORT SPECIFIED BY USER if (( $port > 0 )) ; then # look for a lock on the port specified for lockname in ${locklist[*]} ; do prefix=`printf '%02u' $port` if [[ "$lockname" == ${prefix}-${user}-${host}* ]] ; then # found lock on the requested port, owned by user on current display portopen='true' if (( $verbosity > 0 )) ; then echo "Using socket lock: $lockname" ; fi count=$port break elif [[ "$lockname" == ${prefix}-* ]] ; then echo "Port $port is in use by some other user or a different host" 1>&2 if (( $verbosity > 0 )) ; then echo "Port lock: $lockname" ; fi exit 1 fi done # specified port not in use count=$port # IF EXISTING WINDOW IS REQUESTED, LOOK FOR LISTENING PORT elif [[ "$newwindow" == 'false' && ${#locklist} != 0 ]] ; then # look for a lock on the current display for this user for lockname in ${locklist[*]} ; do if [[ "$lockname" == [0-9][0-9]-${user}-${host}-${display} ]] ; then portopen='true' if (( $verbosity > 0 )) ; then echo "Found socket lock: $lockname" ; fi # if a matching user/display is found, use this one count="${lockname%-*-*-*}" #count=`echo $lockname | sed -e 's/^\([0-9][0-9]\).*/\1/' -e 's/^0//'` # csh? break fi done fi # IF A NEW PORT IS TO BE USED if [[ "$portopen" == 'false' ]] ; then # new window requested or no matching port found # if port is not specified, look for first free port if (( "$port" == 0 )) ; then if (( ${#locklist} == 0 )) ; then # no active locks - use first port count=1 else # active locks - check each port number so see if it is in use # this is not synchronised!! count=0 inuse='true' while [[ "$inuse" == 'true' ]] ; do count=count+1 prefix=`printf '%02u' $count` inuse='false' for lockname in ${locklist[*]} ; do if [[ "$lockname" == ${prefix}-* ]] ; then inuse='true' fi done done fi fi # CREATING A NEW PORT LOCK prefix=`printf '%02u' $count` lockname=${prefix}-${user}-${host}-${display} [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tCreating lock\t$lockname" >> "$ij_log" 2> /dev/null if (( $verbosity > 0 )) ; then echo -n "creating lock $lockname ... " ; fi touch $lockname trap '\rm -f ${ij_tmp}/$lockname >/dev/null ; [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tReleasing lock\t$lockname" >> "$ij_log" 2> /dev/null' EXIT TERM KILL # Quitting ImageJ sends EXIT, as does a kill/kill -9 # CTRL+C in terminal sends INT + EXIT # System shutdown sends TERM (+EXIT??) if (( $verbosity > 0 )) ; then echo 'done' ; fi lockFileCreated='true' if [[ -z "$macrocmd" ]] ; then echo 'Open other images in this ImageJ panel as follows:' echo " imagej -p $count <image1> [<image2> ... <imageN>]" fi [[ -n "$ij_log" ]] && echo -e "$$\t$(date)\tSocket lock:\t$lockname" >> "$ij_log" 2> /dev/null if (( $verbosity > 0 )) ; then echo "Socket lock: $lockname" ; fi echo fi if (( $verbosity > 0 )) ; then echo ${JAVA_HOME}/bin/java ${java_arch} -mx${mem}m ${modules} ij.ImageJ -ijpath ${ij_user_path} -port${count} ${images} ${macrocmd} ${macroargs} fi cd "$dir" eval "${JAVA_HOME}/bin/java ${java_arch} -mx${mem}m ${modules} ij.ImageJ -ijpath ${ij_user_path} -port${count} ${images} ${macrocmd} ${macroargs} " exit 0 ------------------------------------------------------------------
It's better to add an attachment for your spec instead of copy-paste ;)
URL: (none) => http://rsb.info.nih.gov/ij/index.htmlSource RPM: (none) => imagejSeverity: normal => enhancement
Created attachment 1059 [details] spec file for imagej spec file for imagej
Created attachment 1060 [details] imagej.sh imagej.sh file to put in SOURCES
Duplicate of bug #2197 I will take a look at your spec ;) *** This bug has been marked as a duplicate of bug 2197 ***
Status: NEW => RESOLVEDCC: (none) => zen25000Resolution: (none) => DUPLICATE