diff --git a/.gitattributes b/.gitattributes index a1da5a9708..6e0910f66f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1927,6 +1927,8 @@ tools/install/file_filter.sh -text svneol=native#application/x-sh tools/install/get_lazarus_version.sh -text svneol=native#application/x-sh tools/install/macosx/fpc_installer_info.zip -text svneol=unset#application/zip tools/install/replace_in_files.pl -text svneol=native#application/x-perl +tools/install/rpm/fpc.spec.template svneol=native#text/plain +tools/install/rpm/lazarus.spec.template svneol=native#text/plain tools/install/setup.sh -text svneol=native#application/x-sh tools/install/smart_strip.sh -text svneol=native#application/x-sh tools/install/win32/build-fpc.bat svneol=native#text/x-msdos-program diff --git a/tools/install/rpm/fpc.spec.template b/tools/install/rpm/fpc.spec.template new file mode 100644 index 0000000000..e443c43184 --- /dev/null +++ b/tools/install/rpm/fpc.spec.template @@ -0,0 +1,188 @@ +Name: fpc +Version: 2.0.0 +Release: 1 +Summary: Free Pascal Compiler + +Group: Development/Languages +License: GPL and modified LGPL +URL: http://www.freepascal.org/ +Source0: ftp://ftp.freepascal.org/pub/fpc/dist/source-%{version}/%{name}-%{version}-%{release}.source.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +#Requires: gpm, gpm-devel, glibc, ncurses, binutils +Requires: glibc, binutils +#BuildRequires: tetex, tetex-latex, tetex-fonts, binutils, gpm-devel, glibc-devel +BuildRequires: binutils, glibc-devel + +%description + +Freepascal is a free 32/64bit Pascal Compiler. It comes with a run-time +library fully compatible with Turbo Pascal 7.0 and nearly Delphi compatible. +Some extensions are added to the language, like function overloading. Shared +libraries can be linked. This package contains commandline compiler and +utils. Provided units are the runtime library (RTL), free component library +(FCL) and bindings for among others gtk1, gtk2, ncurses, zlib, mysql, postgres +and ibase. + +#%package doc +#Summary: Free Pascal Compiler - documentation and examples +#Group: Development/Languages +# +#%description doc +# +#The fpc-doc package contains the documentation (in pdf format) and examples +#of Freepascal. + +%package src +Summary: Free Pascal Compiler - sources +Group: Development/Languages + +%description src + +The fpc-doc package contains the sources of Freepascal, for documentation or +automatical-code generation purposes. + + +%ifarch ppc +%define ppcname ppcppc +%else +%ifarch x86_64 +%define ppcname ppcx64 +%else +%define ppcname ppc386 +%endif +%endif + +%prep +#%setup -q -a0 -n %{name} +%setup -q -n %{name} + +%build +# The source-files: +mkdir -p fpcsrc +cp -a rtl fpcsrc +cp -a fcl fpcsrc +cp -a packages fpcsrc +rm -rf packages/extra/amunits +rm -rf packages/extra/winunits + +STARTPP=`which %{ppcname}` +NEWPP=`pwd`/compiler/%{ppcname} +NEWFPDOC=`pwd`/utils/fpdoc/fpdoc +DATA2INC=`pwd`/utils/data2inc +make compiler_cycle FPC=${STARTPP} +make rtl_clean rtl_smart FPC=${NEWPP} +make packages_base_smart FPC=${NEWPP} +make fcl_smart FPC=${NEWPP} +#make fv_smart FPC=${NEWPP} +make packages_extra_smart FPC=${NEWPP} +#make ide_all FPC=${NEWPP} +make utils_all FPC=${NEWPP} DATA2INC=${DATA2INC} + +# disable the debuginfo package +%define debug_package %{nil} +%define __spec_install_post /usr/lib/rpm/brp-compress + +%install +rm -rf %{buildroot} +FPCMAKE=`pwd`/utils/fpcm/fpcmake +NEWPP=`pwd`/compiler/%{ppcname} +INSTALLOPTS="FPC=${NEWPP} FPCMAKE=${FPCMAKE} \ + INSTALL_PREFIX=%{buildroot}%{_prefix} \ + INSTALL_LIBDIR=%{buildroot}%{_libdir} \ + INSTALL_BASEDIR=%{buildroot}%{_libdir}/%{name}/%{version} \ + CODPATH=%{buildroot}%{_libdir}/%{name}/lexyacc \ + INSTALL_DOCDIR=%{buildroot}%{_defaultdocdir}/%{name}-%{version} \ + INSTALL_BINDIR=%{buildroot}%{_bindir} + INSTALL_EXAMPLEDIR=%{buildroot}%{_defaultdocdir}/%{name}-%{version}/examples" +make compiler_install ${INSTALLOPTS} +make rtl_install ${INSTALLOPTS} +make packages_install ${INSTALLOPTS} +make fcl_install ${INSTALLOPTS} +#make fv_install ${INSTALLOPTS} +#make ide_install ${INSTALLOPTS} +make utils_install ${INSTALLOPTS} + +#make doc_install ${INSTALLOPTS} +#make -C docs pdfinstall ${INSTALLOPTS} +#make man_install ${INSTALLOPTS} INSTALL_MANDIR=%{buildroot}%{_mandir} + +# create link +ln -sf ../%{_lib}/%{name}/%{version}/%{ppcname} %{buildroot}%{_bindir}/%{ppcname} + +# Include the COPYING-information in the documentation +#cd fpcsrc +#cp -a compiler/COPYING %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING +#cp -a rtl/COPYING %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.rtl +#cp -a fcl/COPYING %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.fcl +#cp -a rtl/COPYING.FPC %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.FPC +#cd - + +# The source-files: +mkdir -p %{buildroot}%{_datadir}/fpcsrc +cp -a fpcsrc/* %{buildroot}%{_datadir}/fpcsrc/ + +# Workaround: +# newer rpm versions do not allow garbage +# delete lexyacc +rm -rf %{buildroot}%{_libdir}/%{name}/lexyacc + +%clean +rm -rf %{buildroot} + +%post +# Create a version independent config +%{_libdir}/%{name}/%{version}/samplecfg %{_libdir}/%{name}/%{version} > /dev/null + + +%files +%defattr(-,root,root,-) +%{_bindir}/* +%{_libdir}/%{name} +#%doc %{_defaultdocdir}/%{name}-%{version}/NEWS +#%doc %{_defaultdocdir}/%{name}-%{version}/README +#%doc %{_defaultdocdir}/%{name}-%{version}/readme.ide +#%doc %{_defaultdocdir}/%{name}-%{version}/faq* +#%doc %{_defaultdocdir}/%{name}-%{version}/COPYING* +#%{_mandir}/*/* + +#%files doc +#%defattr(-,root,root,-) +#%doc %{_defaultdocdir}/%{name}-%{version}/*.pdf +#%doc %{_defaultdocdir}/%{name}-%{version}/examples + +%files src +%defattr(-,root,root,-) +%{_datadir}/fpcsrc + +%changelog +* Tue Jul 28 2005 Joost van der Sluis 2.0.0-1 +- Added some requirements +- Added COPYING-info to %%doc + +* Tue Jun 28 2005 Joost van der Sluis 2.0.0-0.6 +- Only rtl, fcl and packages are added to src-subpackage +- Silenced post-script +- disabled the debuginfo-package + +* Sat Jun 5 2005 Joost van der Sluis 2.0.0-0.5 +- Added doc-subpackage +- Added src-subpackage + +* Fri Jun 3 2005 Joost van der Sluis 2.0.0-0.4 +- New fix for lib64 on x86_64 +- small patches from Jens Petersen + +* Thu May 26 2005 Joost van der Sluis 2.0.0-0.3 +- replaced 'lib' and 'lib64' by %%{_lib} + +* Tue May 24 2005 Joost van der Sluis 2.0.0-0.2 +- Fixed for lib64 on x86_64 +- Changed summary, description and license +- Removed examples from installation +- Make clean removed from clean-section +- Clean-up +- replaced $RPM_BUILD_ROOT by %%{buildroot} + +* Mon May 23 2005 Joost van der Sluis 2.0.0-0.1 +- Initial build. \ No newline at end of file diff --git a/tools/install/rpm/lazarus.spec.template b/tools/install/rpm/lazarus.spec.template new file mode 100644 index 0000000000..4487fa60a5 --- /dev/null +++ b/tools/install/rpm/lazarus.spec.template @@ -0,0 +1,65 @@ +Name: lazarus +Version: LAZVERSION +Release: LAZRELEASE +Summary: Lazarus Component Library and IDE + +Group: Development/Languages +License: GPL and modified LGPL +URL: http://www.lazarus.freepascal.org/ +Source0: http://prdownloads.sourceforge.net/%{name}/%{name}-%{version}-%{release}.source.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +#BuildRequires: +Requires: fpc-src = FPCVERSION, fpc = FPCVERSION, gdk-pixbuf-devel, gtk+, gtk+-devel, gdb, glibc-devel, gdk-pixbuf + +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils + +%description +Lazarus is a free and opensource RAD tool for freepascal using the lazarus +component library - LCL, which is also included in this package. + +%prep +%setup -c + +%build +cd lazarus +make OPT="-n @$FPCCfg" +# -Fl/opt/gnome/lib +strip lazarus +strip startlazarus + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{_libdir}/%{name} +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/pixmaps +# mkdir -p %{buildroot}%{_datadir}/gnome/apps/Development +mkdir -p %{buildroot}%{_datadir}/applications +cp -a lazarus/* %{buildroot}%{_libdir}/%{name}/ + install -m 644 lazarus/images/ide_icon48x48.png %{buildroot}%{_datadir}/pixmaps/lazarus.png +# install -m 644 lazarus/gnome.ide.desktop %{buildroot}%{_datadir}/gnome/apps/Development/lazarus.desktop + install -m 644 lazarus/install/gnome.ide.desktop %{buildroot}%{_datadir}/applications/lazarus.desktop +ln -sf ../%{_lib}/%{name}/%{name} %{buildroot}%{_bindir}/%{name} + +%clean +rm -rf %{buildroot} + +#%post +#update-desktop-database &> /dev/null ||: + +%postun +update-desktop-database &> /dev/null ||: + +%files +%defattr(-,root,root,-) +%{_libdir}/%{name} +%{_bindir}/%{name} + %{_datadir}/pixmaps/lazarus.png +# %{_datadir}/gnome/apps/Development/lazarus.desktop + %{_datadir}/applications/lazarus.desktop + +%changelog +* Wed Jul 20 2005 Joost van der Sluis 0.9.8-0.1 +- Initial build. +