From Fedora Project Wiki

References

Case Study

Mercurial Eclipse

hg archive -r RELEASE_1.8.1 --type=tar ../mercurialeclipse_1-8-1.tar.bz2
problem with this ccommand:
type=tar caused problem while decompressing the tar ball with pde-script, so we can just archive as a regular folder
It's better to keep the name of the folder as just mercurial then we will put it in a folder called eclipse-mercurial
so the new command is: hg archive -r RELEASE_1.8.1 ../eclipse-mercurial-1.8.1/mercurial
  • Create a new feature in Eclipse using New -> feature

Mercurial Create Feature

  • Add this feature id to %build in .spec file in -f option
Don't need to add -d (dependencies) for now, until it complains
Added mylyn as the dependency later
  • Create an archive file of the feature then add it to the SOURCES in RPM project.
Before, I put the com.vectrace.mercurialeclipse-feature plugin folder in eclipse-mercurial folder. --not anymore
you may need to add that to the %prep in .spec file.
     %setup 
     %setup -T -D -a 1
  • For using changelog
Go to window -> preferences -> changelog -> enter your name and email
in .spec file editor -> %changelog -> Ctrl+Alt+C
  • After making sure it works,: use this command to create the tar ball: tar -cf eclipse-mercurial-1.8.1.tar.bz2 eclipse-mercurial-1.8.1: some times it complained that it couldn't remove the folder eclipse-mercurial because it was not empty, one solution is to kill the process:
    pgrep rpmbuild    #if it showed the id so it's running
    kill `rpmbuild`

Eclipse Mercurial Spec File

  • To install the package
Install for the first time:
cd PATH/TO/RPMS/IN/RPM-PROEJCT/noarch/
rpm -i eclipse-mercurial-1.8.1.noarch.rpm
Install the updated packages
Yum remove eclipse-mercurial-1.8.1
again rpm -i....
This will created a folder called mercurial in /usr/share/eclipse/dropins which will contain the feature.xml
  • The bash script
This script will be used to clone and create the source later, when using FedoraPackaer
  RELEASE="1.8.1"

  hg clone http://javaforge.com:8000/hgeclipse && \
  pushd hgeclipse > /dev/null && \
  hg archive -r RELEASE_${RELEASE} eclipse-mercurial-${RELEASE}/mercurial &&\
  tar -cf eclipse-mercurial-${RELEASE}.tar.bz2 eclipse-mercurial-${RELEASE}  && \
  mv eclipse-mercurial-${RELEASE}.tar.bz2 ../ && \
  popd > /dev/null && rm -rf hgeclipse
pushd makes the mentioned directory, the top level directory