Thursday, December 13, 2007

Umbrello spec for RPM

To create an RPM from source code, here is what you do:
1. Download source code, build it.
2. Create a spec.
3. Copy {g|b}zipped tarball of code to /usr/src/redhat/SOURCES. This is the first place that rpmbuild looks for the sourcefile mentioned in Source0 below.
4. Type "rpmbuild -ba " to build both source and binary RPMs. RTM for rpmbuild for other options.

Some useful RPM macros which weren't required for umbrello. %post tells RPM what to do after the install. %preun tells RPM what to do right before. $1 is an argument passed to RPM which tells it how many versions will be left after the un-install. So if $1 == 1 we wouldn't want to take it out of chkconfig.

%post
if [ ! -f /etc/iscsi/initiatorname.iscsi ]; then
echo "InitiatorName=`/sbin/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi
fi
/sbin/chkconfig --add open-iscsi
%preun
if [ "$1" = 0 ] ; then
/sbin/service open-iscsi stop > /dev/null 2>&1
/sbin/chkconfig --del open-iscsi
fi
exit 0



The gory details are here:
http://www.ibm.com/developerworks/library/l-rpm1/

http://docs.fedoraproject.org/drafts/rpm-guide-en/index.html

===========================================
Summary: Umbrello UML Modeller
Name: umbrello
Version: 1.5.8
Release: 3
Source0: %{name}-%{version}.tar.bz2
License: GPL
Group: Development/Tools
BuildRoot: %{_builddir}/%{name}-root
%description
An UML modeling tool for KDE. It supports most UML diagrams, code export (C++ and Java) and reverse engineering.
%prep
%setup -q
%build
./configure
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/usr/bin/umbodoc
/usr/share/apps/umbrello/xmi2docbook.xsl
/usr/share/apps/umbrello/docbook2xhtml.xsl
/usr/share/apps/umbrello/xmi.css
/usr/share/apps/umbrello/common.ent
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_sequence.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_component.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_class.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_entityrelationship.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_state.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_deployment.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_activity.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_component.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_collaboration.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_class.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_state.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_activity.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_usecase.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_collaboration.png
/usr/share/icons/crystalsvg/22x22/actions/umbrello_diagram_sequence.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_deployment.png
/usr/share/icons/crystalsvg/16x16/actions/umbrello_diagram_usecase.png
/usr/share/apps/umbrello/pics/actor.png
/usr/share/apps/umbrello/pics/aggregation.png
/usr/share/apps/umbrello/pics/align_left.png
/usr/share/apps/umbrello/pics/align_right.png
/usr/share/apps/umbrello/pics/align_top.png
/usr/share/apps/umbrello/pics/align_bottom.png
/usr/share/apps/umbrello/pics/align_vert_middle.png
/usr/share/apps/umbrello/pics/align_hori_middle.png
/usr/share/apps/umbrello/pics/align_vert_distribute.png
/usr/share/apps/umbrello/pics/align_hori_distribute.png
/usr/share/apps/umbrello/pics/anchor.png
/usr/share/apps/umbrello/pics/andline.png
/usr/share/apps/umbrello/pics/arrow.png
/usr/share/apps/umbrello/pics/association.png
/usr/share/apps/umbrello/pics/choice-rhomb.png
/usr/share/apps/umbrello/pics/choice-round.png
/usr/share/apps/umbrello/pics/component.png
/usr/share/apps/umbrello/pics/composition.png
/usr/share/apps/umbrello/pics/containment.png
/usr/share/apps/umbrello/pics/CVglobal_meth.png
/usr/share/apps/umbrello/pics/CVglobal_var.png
/usr/share/apps/umbrello/pics/CVimplementation_meth.png
/usr/share/apps/umbrello/pics/CVimplementation_signal.png
/usr/share/apps/umbrello/pics/CVimplementation_slot.png
/usr/share/apps/umbrello/pics/CVimplementation_var.png
/usr/share/apps/umbrello/pics/CVnamespace.png
/usr/share/apps/umbrello/pics/CVprivate_meth.png
/usr/share/apps/umbrello/pics/CVprivate_signal.png
/usr/share/apps/umbrello/pics/CVprivate_slot.png
/usr/share/apps/umbrello/pics/CVprivate_var.png
/usr/share/apps/umbrello/pics/CVprotected_meth.png
/usr/share/apps/umbrello/pics/CVprotected_signal.png
/usr/share/apps/umbrello/pics/CVprotected_slot.png
/usr/share/apps/umbrello/pics/CVprotected_var.png
/usr/share/apps/umbrello/pics/CVpublic_meth.png
/usr/share/apps/umbrello/pics/CVpublic_signal.png
/usr/share/apps/umbrello/pics/CVpublic_slot.png
/usr/share/apps/umbrello/pics/CVpublic_var.png
/usr/share/apps/umbrello/pics/CVstruct.png
/usr/share/apps/umbrello/pics/deep-history.png
/usr/share/apps/umbrello/pics/shallow-history.png
/usr/share/apps/umbrello/pics/dependency.png
/usr/share/apps/umbrello/pics/end_state.png
/usr/share/apps/umbrello/pics/generalisation.png
/usr/share/apps/umbrello/pics/initial_state.png
/usr/share/apps/umbrello/pics/interface.png
/usr/share/apps/umbrello/pics/join.png
/usr/share/apps/umbrello/pics/junction.png
/usr/share/apps/umbrello/pics/datatype.png
/usr/share/apps/umbrello/pics/enum.png
/usr/share/apps/umbrello/pics/message-synchronous.png
/usr/share/apps/umbrello/pics/message-asynchronous.png
/usr/share/apps/umbrello/pics/note.png
/usr/share/apps/umbrello/pics/object.png
/usr/share/apps/umbrello/pics/startlogo.png
/usr/share/apps/umbrello/pics/template.png
/usr/share/apps/umbrello/pics/text.png
/usr/share/apps/umbrello/pics/class.png
/usr/share/apps/umbrello/pics/uniassociation.png
/usr/share/apps/umbrello/pics/usecase.png
/usr/share/apps/umbrello/pics/branch.png
/usr/share/apps/umbrello/pics/fork.png
/usr/share/apps/umbrello/pics/state-fork.png
/usr/share/apps/umbrello/pics/package.png
/usr/share/apps/umbrello/pics/subsystem.png
/usr/share/apps/umbrello/pics/artifact.png
/usr/share/apps/umbrello/pics/box.png
/usr/share/apps/umbrello/pics/node.png
/usr/share/apps/umbrello/pics/entity.png
/usr/share/apps/umbrello/pics/relationship.png
/usr/share/apps/umbrello/pics/cursor-actor.png
/usr/share/apps/umbrello/pics/cursor-andline.png
/usr/share/apps/umbrello/pics/cursor-choice-rhomb.png
/usr/share/apps/umbrello/pics/cursor-choice-round.png
/usr/share/apps/umbrello/pics/cursor-deep-history.png
/usr/share/apps/umbrello/pics/cursor-join.png
/usr/share/apps/umbrello/pics/cursor-junction.png
/usr/share/apps/umbrello/pics/cursor-shallow-history.png
/usr/share/apps/umbrello/pics/cursor-state-fork.png
/usr/share/apps/umbrello/pics/cursor-usecase.png
/usr/share/apps/umbrello/pics/cursor-initial_state.png
/usr/share/apps/umbrello/pics/cursor-package.png
/usr/share/apps/umbrello/pics/cursor-aggregation.png
/usr/share/apps/umbrello/pics/cursor-component.png
/usr/share/apps/umbrello/pics/cursor-containment.png
/usr/share/apps/umbrello/pics/cursor-interface.png
/usr/share/apps/umbrello/pics/cursor-datatype.png
/usr/share/apps/umbrello/pics/cursor-enum.png
/usr/share/apps/umbrello/pics/cursor-text.png
/usr/share/apps/umbrello/pics/cursor-anchor.png
/usr/share/apps/umbrello/pics/cursor-composition.png
/usr/share/apps/umbrello/pics/cursor-message-asynchronous.png
/usr/share/apps/umbrello/pics/cursor-class.png
/usr/share/apps/umbrello/pics/cursor-artifact.png
/usr/share/apps/umbrello/pics/cursor-dependency.png
/usr/share/apps/umbrello/pics/cursor-message-synchronous.png
/usr/share/apps/umbrello/pics/cursor-uniassociation.png
/usr/share/apps/umbrello/pics/cursor-association.png
/usr/share/apps/umbrello/pics/cursor-end_state.png
/usr/share/apps/umbrello/pics/cursor-node.png
/usr/share/apps/umbrello/pics/cursor-box.png
/usr/share/apps/umbrello/pics/cursor-fork.png
/usr/share/apps/umbrello/pics/cursor-note.png
/usr/share/apps/umbrello/pics/cursor-branch.png
/usr/share/apps/umbrello/pics/cursor-generalisation.png
/usr/share/apps/umbrello/pics/cursor-object.png
/usr/share/apps/umbrello/pics/cursor-entity.png
/usr/share/apps/umbrello/pics/cursor-relationship.png
/usr/share/apps/umbrello/headings/heading.adb
/usr/share/apps/umbrello/headings/heading.ads
/usr/share/apps/umbrello/headings/heading.as
/usr/share/apps/umbrello/headings/heading.cpp
/usr/share/apps/umbrello/headings/heading.cs
/usr/share/apps/umbrello/headings/heading.d
/usr/share/apps/umbrello/headings/heading.h
/usr/share/apps/umbrello/headings/heading.idl
/usr/share/apps/umbrello/headings/heading.java
/usr/share/apps/umbrello/headings/heading.js
/usr/share/apps/umbrello/headings/heading.php
/usr/share/apps/umbrello/headings/heading.pm
/usr/share/apps/umbrello/headings/heading.py
/usr/share/apps/umbrello/headings/heading.rb
/usr/share/apps/umbrello/headings/heading.sql
/usr/share/apps/umbrello/headings/heading.xsd
/usr/bin/umbrello
/usr/share/icons/hicolor/128x128/apps/umbrello.png
/usr/share/icons/hicolor/scalable/apps/umbrello.svgz
/usr/share/icons/hicolor/22x22/apps/umbrello.png
/usr/share/icons/crystalsvg/64x64/mimetypes/umbrellofile.png
/usr/share/icons/hicolor/32x32/mimetypes/umbrellofile.png
/usr/share/icons/crystalsvg/32x32/mimetypes/umbrellofile.png
/usr/share/icons/crystalsvg/128x128/mimetypes/umbrellofile.png
/usr/share/icons/hicolor/16x16/apps/umbrello.png
/usr/share/icons/crystalsvg/22x22/mimetypes/umbrellofile.png
/usr/share/icons/hicolor/48x48/apps/umbrello.png
/usr/share/icons/hicolor/32x32/apps/umbrello.png
/usr/share/icons/crystalsvg/scalable/mimetypes/umbrellofile.svgz
/usr/share/icons/crystalsvg/48x48/mimetypes/umbrellofile.png
/usr/share/icons/hicolor/16x16/mimetypes/umbrellofile.png
/usr/share/icons/crystalsvg/16x16/mimetypes/umbrellofile.png
/usr/share/icons/hicolor/64x64/apps/umbrello.png
/usr/share/apps/umbrello/tips
/usr/share/apps/umbrello/umbrelloui.rc
/usr/share/mimelnk/application/x-umbrello.desktop
/usr/share/applications/kde/umbrello.desktop
%doc

Labels: , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home