packaging files in CVS
- From: Gregory Leblanc <gleblanc linuxweasel com>
- To: gnome-packaging-list gnome org
- Subject: packaging files in CVS
- Date: 06 Aug 2001 23:07:51 -0700
ok, so I've been promising this for a long time, and I'm just now
getting around to it. The question at hand is this, "Do we want to keep
packaging files (RPM's .spec files, dpkg's debian/ directories, and so
on) in the CVS repository with their respective module, or not?"
I tend to think that CVS -is- the right location for them, but I'm not
all knowing, so I'm asking everybody for thoughts. In order to make my
point better, I've taken 1 particular module, and hacked on it quite a
bit, in order to show what sort of integration is possible because the
.spec file is in CVS. The module I used is gnome-core, because the
maintainer just wants a working spec file, and said I could do whatever
else I wanted to to it. Here's gnome-core.spec.in
===BEGIN gnome-core.spec.in===
%define localstatedir /var/lib
Summary: The core programs for the GNOME GUI desktop
environment.
Name: gnome-core
Version: @VERSION@
Release: 1
License: LGPL
Group: System Environment/Base
Source:
ftp://ftp.gnome.org/pub/sources/gnome-core/gnome-core-%{version}.tar.gz
BuildRoot: /var/tmp/%{name}-%{version}-root
URL: http://www.gnome.org
Requires: gtk+ >= @GTK_REQUIRED@
Requires: gdk-pixbuf >= @GDK_PIXBUF_REQUIRED@
Requires: libglade >= @LIBGLADE_REQUIRED@, libxml
Requires: gnome-libs >= @GNOME_LIBS_REQUIRED@
Requires: ORBit >= @ORBIT_REQUIRED@
Requires: control-center >= @CONTROL_CENTER_REQUIRED@
BuildRequires: gtk+-devel >= @GTK_REQUIRED@, libxml-devel
BuildRequires: gdk-pixbuf-devel >= @GDK_PIXBUF_REQUIRED@
BuildRequires: libglade-devel >= @LIBGLADE_REQUIRED@
BuildRequires: scrollkeeper >= @SCROLLKEEPER_REQUIRED@
BuildRequires: gnome-libs-devel >= @GNOME_LIBS_REQUIRED@
BuildRequires: ORBit-devel >= @ORBIT_REQUIRED@
BuildRequires: control-center-devel >= @CONTROL_CENTER_REQUIRED@
%description
GNOME (GNU Network Object Model Environment) is a user-friendly
set of applications and desktop tools to be used in conjunction with a
window manager for the X Window System. GNOME is similar in purpose and
scope to CDE and KDE, but GNOME is based completely on free
software. The gnome-core package includes the basic programs and
libraries that are needed to install GNOME.
You should install the gnome-core package if you would like to use the
GNOME desktop environment. You'll also need to install the gnome-libs
package. If you would like to develop GNOME applications, you'll also
need to install gnome-libs-devel. If you want to use linuxconf with a
GNOME front end, you'll also need to install the gnome-linuxconf
package.
%package devel
Summary: GNOME core libraries, includes, and more.
Group: Development/Libraries
Requires: %name = %version
%description devel
Panel libraries and header files for creating GNOME panels.
%prep
%setup -q
%build
./configure --disable-gtkhtml-help --prefix=%{_prefix} \
--bindir=%{_bindir} --mandir=%{_mandir} \
--localstatedir=%{localstatedir} --libdir=%{_libdir} \
--datadir=%{_datadir} --includedir=%{_includedir} \
--sysconfdir=%{_sysconfdir}
CFLAGS="$RPM_OPT_FLAGS" make
%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf
$RPM_BUILD_ROOT
make prefix=$RPM_BUILD_ROOT%{_prefix} bindir=$RPM_BUILD_ROOT%{_bindir} \
mandir=$RPM_BUILD_ROOT%{_mandir} libdir=$RPM_BUILD_ROOT%{_libdir} \
localstatedir=$RPM_BUILD_ROOT%{localstatedir} \
datadir=$RPM_BUILD_ROOT%{_datadir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir} install
%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf
$RPM_BUILD_ROOT
%post
/sbin/ldconfig
if which scrollkeeper-update>/dev/null 2>&1; then scrollkeeper-update;
fi
%postun
/sbin/ldconfig
if which scrollkeeper-update>/dev/null 2>&1; then scrollkeeper-update;
fi
%files
%doc AUTHORS COPYING ChangeLog NEWS README
%defattr (-, root, root)
%{_bindir}/*
%{_sysconfdir}/CORBA/servers/*
%{_sysconfdir}/sound/events/*
%{_sysconfdir}/gnome/panel-config/*
%{_datadir}/locale/*/*/*
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_libdir}/*.so.*
%{_datadir}/applets/*
%{_datadir}/control-center/*
%{_datadir}/gnome/*
%{_datadir}/gnome-about/*
%{_datadir}/gnome-terminal/*
%{_datadir}/mc/*
%{_datadir}/omf/*
%{_datadir}/pixmaps/*
%files devel
%{_includedir}/*
%{_libdir}/*a
%{_libdir}/*so
%{_libdir}/*sh
%{_datadir}/idl/*
%changelog
* Mon Aug 6 2001 Gregory Leblanc <gleblanc linuxweasel com>
- removed unnecessary %defines
- reformatted the header slightly
- made the devel package require the main package properly
- replaced copyright with license
* Thu Apr 02 2001 Gregory Leblanc <gleblanc cu-portland edu>
- Fixed %files section to include some directories as well as their
contents.
- Updated to do the scrollkeeper ditty.
* Wed Mar 28 2001 Gregory Leblanc <gleblanc cu-portland edu>
- integrate configure.in and gnome-core.spec.in for version numbers of
dependancies. This should help to slow bit-rot in this spec file.
* Fri Mar 23 2001 Gregory Leblanc <gleblanc cu-portland edu>
- re-wrote the %files section from scratch, added a couple of
dependancies.
* Wed Feb 21 2001 Gregory Leblanc <gleblanc cu-portland edu>
- updated, fixed macros, removed hard-coded paths.
* Sat Feb 26 2000 Gregory McLean <gregm comstar net>
- Updated to 1.1.4
- Autogenerate the %files section.
* Sat Oct 16 1999 Gregory McLean <gregm comstar net>
- Updated to 1.0.50
- Sorted the language specific stuff out.
* Sun Oct 03 1999 Gregory McLean <gregm comstar net>
- updated to 1.0.50
- Overhauled the %files section.
* Sat Nov 21 1998 Pablo Saratxaga <srtxg chanae alphanet ch>
- Cleaned %files section
- added spanish and french translations for rpm
* Wed Sep 23 1998 Michael Fulbright <msf redhat com>
- Built 0.30 release
* Fri Mar 13 1998 Marc Ewing <marc redhat com>
- Integrate into gnome-core CVS source tree
===END gnome-core.spec.in===
I know, that's pretty big, and not everything that's been done is clear.
I'll reply to this message with some explanations in a minute, but
first, here's a relavent snippit of configure.in, since these two files
go hand-in-hand.
===BEGIN configure.in snippit===
dnl If you add a version number here, you *must* add an AC_SUBST line
for
dnl it too, or it will never make it into the spec file!
GTK_REQUIRED=1.3.1
GDK_PIXBUF_REQUIRED=1.3.1
LIBGLADE_REQUIRED=0.16
LIBGNOME_REQUIRED=1.96.0
LIBGNOME1COMPAT_REQUIRED=1.96.0
LIBGNOMEUI_REQUIRED=1.96.0
ORBIT_REQUIRED=2.3.91
XML_REQUIRED=2.2.8
LIBCAPPLET_REQUIRED=1.4.0
SCROLLKEEPER_REQUIRED=0.1.4
===END configure.in snippit==
Groovy, huh?
Greg
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]