%define test_mode 0 %define ver_major 0 %define ver_minor 9 %define ver_patch 0 %define rpm_release 1 Name: odin Vendor: netlabs.org License: Project Odin Software License Url: http://svn.netlabs.org/odin32/ Version: %{ver_major}.%{ver_minor}.%{ver_patch} Release: %{rpm_release} %scm_source svn http://svn.netlabs.org/repos/odin32/tags/%{version} 22145 %define descr_brief Odin is a set of libraries that provide a Win32-compatible runtime environment.\ This environment is necesasry to run Win32 applications on OS/2 as well as\ native OS/2 applications built from Win32 sources using Odin SDK. %define pkg_docdir %{_docdir}/%{name}-%{version} %define pkg_wps_base ODIN %define pkg_wps_folder_id <%{pkg_wps_base}_FOLDER> %define pkg_wps_folder_create %{pkg_wps_base}_FOLDER:WPFolder|Odin| %define pkg_wps_view_txt() EXENAME=e.exe;PROGTYPE=PROG_PM;PARAMETERS=((%*)) %define pkg_wps_view_inf() EXENAME=view.exe;PROGTYPE=PROG_PM;PARAMETERS=((%*)) #------------------------------------------------------------------------------ # commons #------------------------------------------------------------------------------ # installation paths %define odin_libdir %{_libdir} %define odin_bindir %{_bindir} %define odin_systemdir %{odin_libdir} %define odin_sysexedir %{_libdir}/odin %define odin_windowsdir %{_var}/lib/odin #------------------------------------------------------------------------------ # main package #------------------------------------------------------------------------------ Summary: Odin (dummy) Group: System Environment/Libraries %description %{descr_brief} This package is not actually generated (due to the missing %files section). It is present only because RPM requires Summary: and %description sections for the main package to exist. BuildRequires: kbuild BuildRequires: os2tk45-headers os2tk45-rc os2tk45-utils #------------------------------------------------------------------------------ %package -n lib%{name} #------------------------------------------------------------------------------ Summary: Odin runtime Group: System Environment/Libraries # For os2_dos_path, os2_langdir etc. macros Requires: os2-rpm >= 0-4 # For -e in scriptlets Requires: rpm >= 4.9 %description -n lib%{name} %{descr_brief} This package contains core Odin runtime libraries. %files -n lib%{name} %doc %{pkg_docdir}/ %exclude %{pkg_docdir}/odinuser.inf %if "%{odin_libdir}" != "%{_libdir}" %dir %{odin_libdir}/ %endif %if "%{odin_bindir}" != "%{_bindir}" %dir %{odin_bindir}/ %endif %{odin_bindir}/*.exe %exclude %{odin_bindir}/pe.exe %exclude %{odin_bindir}/pec.exe %exclude %{odin_bindir}/xx2lx.exe %if "%{odin_systemdir}" != "%{odin_libdir}" %dir %{odin_systemdir}/ %endif %{odin_systemdir}/*.dll %exclude %{odin_systemdir}/capi2032.dll %exclude %{odin_systemdir}/secur32.dll %exclude %{odin_systemdir}/schannel.dll %dir %{odin_sysexedir}/ %{odin_sysexedir}/*.exe %if 0%{?have_win32k} %exclude %{odin_systemdir}/win32k.sys %exclude %{odin_sysexedir}/win32kCC.exe %exclude %{odin_sysexedir}/kRx.exe %endif # files/directories generated by odininst.exe removed on uninstall %ghost %{odin_systemdir}/Drivers/ %ghost %{odin_systemdir}/Drivers/etc/ %ghost %{odin_systemdir}/ODIN.INI # files/directories generated by odininst.exe preserved on uninstall %ghost %config %{odin_windowsdir}/ %pre -n lib%{name} %warpin_conflicts_begin Odin\Odin\Odin Core Files Odin\Odin\Odin System Files Odin\Odin\Odin .sym files Odin\Odin\Changes to Config.sys %warpin_conflicts_end %post -n lib%{name} -e ODIN_SYSTEMDIR_D="%%{os2_expand_dos_vars %{os2_dos_path %{odin_systemdir}}}" ODIN_BINDIR_D="%%{os2_expand_dos_vars %{os2_dos_path %{odin_bindir}}}" %if "%{odin_systemdir}" != "%{_libdir}" export ODIN_SYSTEMDIR_D %cube {ADDSTRING ";%ODIN_SYSTEMDIR_D%" IN "LIBPATH=" (FIRST AFTER} %{os2_config_sys} >nul %endif %if "%{odin_bindir}" != "%{_bindir}" export ODIN_BINDIR_D %cube {ADDSTRING ";%ODIN_BINDIR_D%" IN "SET PATH=" (FIRST AFTER} %{os2_config_sys} >nul %endif # initialize system directories, registry and INI files ODIN_WINDOWSDIR_D="%%{os2_expand_dos_vars %{os2_dos_path %{odin_windowsdir}}}" cat > "%{odin_systemdir}/ODIN.INI" <nul 2>nul <nul 2>nul <nul fi %endif #------------------------------------------------------------------------------ %package doc #------------------------------------------------------------------------------ Summary: Odin documentation Group: Documentation BuildArch: noarch Requires: lib%{name} = %{version}-%{release} %description doc %{descr_brief} This package contains Odin user's manual. %files doc %defattr(-,root,root,-) %doc %{pkg_docdir}/odinuser.inf %post doc if [ "$1" -ge 1 ]; then # (upon update) %wps_object_delete_all -n %{name}-doc fi %wps_object_create_begin -n %{name}-doc %{pkg_wps_folder_create} %{pkg_wps_base}_README:WPProgram|Read Me|%{pkg_wps_folder_id}|%{pkg_wps_view_txt %{pkg_docdir}/Readme.txt} %{pkg_wps_base}_CHANGELOG:WPProgram|ChangeLog|%{pkg_wps_folder_id}|%{pkg_wps_view_txt %{pkg_docdir}/ChangeLog} %{pkg_wps_base}_LICENSE:WPProgram|License|%{pkg_wps_folder_id}|%{pkg_wps_view_txt %{pkg_docdir}/LICENSE.TXT} %{pkg_wps_base}_WGSS50_LICENSE:WPProgram|WGSS50 License|%{pkg_wps_folder_id}|%{pkg_wps_view_txt %{pkg_docdir}/WGSS50.lic} %{pkg_wps_base}_MANUAL:WPProgram|User's Manual|%{pkg_wps_folder_id}|%{pkg_wps_view_inf %{pkg_docdir}/odinuser.inf} %wps_object_create_end %postun doc if [ "$1" -eq 0 ]; then # (upon removal) %wps_object_delete_all -n %{name}-doc fi #------------------------------------------------------------------------------ # Note: Odin exception handler wants .sym and won't read .dbg files so we supply # the list of files for the debug package in debugfiles.list ourselves (below). %define _strip_opts --no-debuginfo %debug_package #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ %prep #------------------------------------------------------------------------------ %scm_setup #------------------------------------------------------------------------------ %build #------------------------------------------------------------------------------ %define kmk_env \\\ CFLAGS="%{optflags}" \\\ CXXFLAGS="%{optflags}" \\\ PATH_INS=%{buildroot}/ \\\ INST_BIN=%{odin_bindir}/ \\\ INST_LIB=%{odin_libdir}/ \\\ INST_DLL=%{odin_systemdir}/ \\\ INST_DEBUG=./ kmk %{?_smp_mflags} %{kmk_env} #------------------------------------------------------------------------------ %install #------------------------------------------------------------------------------ %{__rm} -rf %{buildroot} kmk install %{kmk_env} %{__mkdir_p} %{buildroot}%{pkg_docdir} %{__cp} -a \ doc/Logging.txt \ doc/Odin.ini.txt \ doc/Readme.txt \ doc/ReportingBugs.txt \ doc/odinuser.inf \ LICENSE.TXT \ ChangeLog \ WGSS50.lic \ %{buildroot}%{pkg_docdir}/ %{__mkdir_p} %{buildroot}%{odin_windowsdir}/ %{__mkdir_p} %{buildroot}%{odin_sysexedir}/ # these are internal tools that should not be in PATH %{__mv} %{buildroot}%{odin_bindir}/odininst.* %{buildroot}%{odin_sysexedir}/ %if 0%{?have_win32k} %{__mv} %{buildroot}%{odin_bindir}/win32kCC.* %{buildroot}%{odin_sysexedir}/ %{__mv} %{buildroot}%{odin_bindir}/kRx.* %{buildroot}%{odin_sysexedir}/ %endif # wgss %{__cp} -a bin/wgss50.* %{buildroot}%{odin_systemdir}/ # we don't need static libraries %{__rm} %{buildroot}%{odin_libdir}/*.lib # list all .sym files for debug_package ourselves (see note above) %{__rm} -f debugfiles.list for f in `find %{buildroot} -name *.sym` ; do echo ${f#%{buildroot}} >> debugfiles.list done #------------------------------------------------------------------------------ %clean #------------------------------------------------------------------------------ %if !0%{?test_mode} %{__rm} -rf %{buildroot} %endif #------------------------------------------------------------------------------ %changelog * Sun Jul 30 2017 Dmitriy Kuminov - 0.9.0-1 - New release 0.9.0. See %{pkg_docdir}/ChangeLog for more information. - Update SPEC to use latest OS/2 RPM environment guidelines (scm_source etc.) which includes building Odin from sources rather than using zipped binaries when building RPMs and also makes RPM a primary distribution format for Odin. - Add schannel.dll to odin-security sub-package. * Sun Feb 17 2013 Dmitriy Kuminov - 0.8.9-1 - New release 0.8.9. See %{pkg_docdir}/ChangeLog for more information. * Mon Dec 31 2012 Dmitriy Kuminov - 0.8.8-1 - New release 0.8.8. See %{pkg_docdir}/ChangeLog for more information. * Wed Dec 19 2012 Dmitriy Kuminov - 0.8.7-1 - New release 0.8.7. See %{pkg_docdir}/ChangeLog for more information. * Tue Oct 23 2012 Dmitriy Kuminov - 0.8.6-1 - New release 0.8.6. See %{pkg_docdir}/ChangeLog for more information. * Sat Jul 21 2012 Dmitriy Kuminov - 0.8.5-1 - New release 0.8.5. See %{pkg_docdir}/ChangeLog for more information. * Mon Mar 19 2012 Dmitriy Kuminov - 0.8.4-1 - New release 0.8.4. See %{pkg_docdir}/ChangeLog for more information. * Tue Feb 07 2012 Dmitriy Kuminov - 0.8.3-1 - New release 0.8.3. See %{pkg_docdir}/ChangeLog for more information. * Fri Dec 30 2011 Dmitriy Kuminov - 0.8.2-1 - New release 0.8.2. See %{pkg_docdir}/ChangeLog for more information. * Mon Dec 19 2011 Dmitriy Kuminov - 0.8.1-1 - New release 0.8.1. See %{pkg_docdir}/ChangeLog for more information. * Mon Oct 03 2011 Dmitriy Kuminov - 0.7.1-3 - Remove executables from "libodin" (they are provided by "odin-exe-tools"). * Sun Oct 02 2011 Dmitriy Kuminov - 0.7.1-2 - Add "KLIBC\OdinPath" to OS2.INI needed for some applications. - Fix unexpected deletion of WPS objects when updating the "odin-doc" package ("yum reinstall odin-doc" is still requred after updating to this version). * Fri Sep 30 2011 Dmitriy Kuminov - 0.7.1-1 - New release 0.7.1. See %{pkg_docdir}/ChangeLog for more information.