From 5d2c2b27a6323e2666378b986129b2a7c2c39e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 6 Feb 2022 16:04:24 +0100 Subject: New upstream version 5.2.2GA --- distribution/CMakeLists.txt | 11 +++++++- distribution/fedora/xtrkcad.spec | 50 ++++++++++++++++++++++++++++++++++ distribution/posix/CMakeLists.txt | 31 ++++++++++++++++++--- distribution/posix/postinst | 21 ++++++++++++++ distribution/posix/prerm | 22 +++++++++++++++ distribution/win32/CMakeLists.txt | 5 ++-- distribution/win32/nsis/CMakeLists.txt | 29 +++++++++++--------- 7 files changed, 148 insertions(+), 21 deletions(-) create mode 100644 distribution/fedora/xtrkcad.spec create mode 100755 distribution/posix/postinst create mode 100755 distribution/posix/prerm (limited to 'distribution') diff --git a/distribution/CMakeLists.txt b/distribution/CMakeLists.txt index 9eede85..119b684 100644 --- a/distribution/CMakeLists.txt +++ b/distribution/CMakeLists.txt @@ -1,7 +1,16 @@ # Setup global packaging parameters ... SET(CPACK_PACKAGE_DESCRIPTION "XTrackCad is a CAD program for designing model railroad layouts.") SET(CPACK_PACKAGE_EXECUTABLES "xtrkcad;XTrkCAD ${XTRKCAD_VERSION}") -SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}") +IF(WIN32) + # Add suffix + IF(WIN64) + SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-x64") + ELSE(WIN64) + SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-x86") + ENDIF(WIN64) +ELSE(WIN32) + SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}") +ENDIF(WIN32) SET(CPACK_PACKAGE_INSTALL_DIRECTORY "XTrkCAD ${XTRKCAD_VERSION}") SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "XTrkCAD ${XTRKCAD_VERSION}") SET(CPACK_PACKAGE_NAME "xtrkcad") diff --git a/distribution/fedora/xtrkcad.spec b/distribution/fedora/xtrkcad.spec new file mode 100644 index 0000000..84e4be1 --- /dev/null +++ b/distribution/fedora/xtrkcad.spec @@ -0,0 +1,50 @@ +Summary: XTrkCad CAD for Model Railroad layout +Name: xtrkcad +Version: 5.2.2 +Release: 1%{?dist} +License: GPLv2+ +URL: https://sourceforge.net/projects/xtrkcad-fork +Source0: https://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20%{version}%20/xtrkcad-source-%{version}.zip +BuildRoot: %{_tmppath}/%{name}-root +BuildRequires: gcc, gcc-c++, cmake >= 2.4.7, pkgconfig, gtk2-devel +BuildRequires: libcmocka, libcmocka-devel, libzip, libzip-devel +BuildRequires: tinyxml, tinyxml-devel, pandoc +BuildRequires: gettext, gettext-devel, glibc-devel +Requires: libcmocka, libzip, tinyxml + +%description +XTrkCad is a CAD program for designing Model Railroad layouts. +XTrkCad supports any scale, has libraries of popular brands of x +turnouts and sectional track (plus you add your own easily), can +automatically use spiral transition curves when joining track +XTrkCad lets you manipulate track much like you would with actual +flex-track to modify, extend and join tracks and turnouts. +Additional features include tunnels, 'post-it' notes, on-screen +ruler, parts list, 99 drawing layers, undo/redo commands, +benchwork, 'Print to BitMap', elevations, train simulation and +car inventory. + +%prep +%setup -n xtrkcad-source-%{version}/usr/local -q + +%build +cmake -D CMAKE_INSTALL_PREFIX:PATH=%{_prefix} -D CMAKE_BUILD_TYPE=Debug . +make + +%install +rm -rf $RPM_BUILD_ROOT/* +make DESTDIR=$RPM_BUILD_ROOT install + +%check +make test + +%files +%license app/COPYING +%defattr(-, root, root) +%{_bindir}/xtrkcad +%{_datadir} + +%changelog +* Tue Dec 14 2021 Phil Cameron +- V5.2.2 GA + diff --git a/distribution/posix/CMakeLists.txt b/distribution/posix/CMakeLists.txt index 3356005..6e44581 100644 --- a/distribution/posix/CMakeLists.txt +++ b/distribution/posix/CMakeLists.txt @@ -8,7 +8,12 @@ set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}////xtrkcad-desc.txt") set(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}") -set(CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ) +if(XTRKCAD_PACKAGE_GA_RELEASE) + set(CPACK_INSTALL_PREFIX "/usr" ) +else() + set(CPACK_INSTALL_PREFIX "/usr/local" ) +endif() + set(CPACK_PACKAGING_INSTALL_PREFIX ${CPACK_INSTALL_PREFIX}) # get the specific configuration for each packager @@ -17,7 +22,7 @@ set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/package.txt) set(CPACK_PACKAGE_VENDOR "XTrackCAD Fork Project") # common dependencies for all Linux builds -set(CPACK_RPM_PACKAGE_REQUIRES "glibc gtk2 zip zlib") +set(CPACK_RPM_PACKAGE_REQUIRES "glibc gtk2 zlib") set(CPACK_RPM_BUILDREQUIRES "gcc, cmake >= 2.4.7, pkgconfig, gtk2-devel" @@ -31,6 +36,12 @@ if(NOT XTRKCAD_USE_BROWSER) # message(AUTHOR_WARNING "Add dependency to webkitgtk for viewing help!") endif() +#Add dependency to MiniXML (mxml) if configured +if(XTRKCAD_CREATE_SVG) + set(CPACK_RPM_PACKAGE_REQUIRES + "${CPACK_RPM_PACKAGE_REQUIRES} mxml") +endif() + # exclude these directories from the rpm set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/local" @@ -54,13 +65,23 @@ set(CPACK_DEBIAN_PACKAGE_VERSION "1:${XTRKCAD_VERSION}") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "zip") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "xdg-utils") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "xtrkcad@sillub.com") set(CPACK_PACKAGE_CONTACT "xtrkcad@sillub.com") -set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "XTrkCad description") +set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "XTrkCad supports any scale, has libraries of popular brands of \ +turnouts and sectional track (plus you add your own easily), can \ +automatically use spiral transition curves when joining track \ +XTrkCad lets you manipulate track much like you would with actual \ +flex-track to modify, extend and join tracks and turnouts. \ +Additional features include tunnels, 'post-it' notes, on-screen \ +ruler, parts list, 99 drawing layers, undo/redo commands, \ +benchwork, 'Print to BitMap', elevations, train simulation and \ +car inventory. \ +") + set(CPACK_DEBIAN_PACKAGE_SECTION "contrib/graphics") @@ -74,5 +95,7 @@ set(CPACK_PACKAGE_EXECUTABLES "xtrkcad;XTrkCad-5.2.1-Beta") set(CPACK_CREATE_DESKTOP_LINKS "xtrkcad") +set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/prerm") + include(CPack) diff --git a/distribution/posix/postinst b/distribution/posix/postinst new file mode 100755 index 0000000..914534d --- /dev/null +++ b/distribution/posix/postinst @@ -0,0 +1,21 @@ +#!/bin/sh +LOGF=/tmp/xtrkcad-setup.log +if [ -f "${LOGF}" ] ; then + chmod 666 ${LOGF} + echo postinst: $* >> ${LOGF} +else + LOGF=/dev/null +fi + +if [ -d /usr/local/share/xtrkcad ] ; then + INSTALLDIR=/usr/local/share/xtrkcad +elif [ -d /usr/share/xtrkcad ] ; then + INSTALLDIR=/usr/share/xtrkcad +else + echo No existing XTrkCad install >> ${LOGF} + exit 1 +fi + +( su -c "sh ${INSTALLDIR}/xtrkcad-setup install ${INSTALLDIR}" -l $SUDO_USER ) >> ${LOGF} 2>&1 + +exit 0 diff --git a/distribution/posix/prerm b/distribution/posix/prerm new file mode 100755 index 0000000..3c5db28 --- /dev/null +++ b/distribution/posix/prerm @@ -0,0 +1,22 @@ +#!/bin/sh +LOGF=/tmp/xtrkcad-setup.log +if [ -f "${LOGF}" ] ; then + chmod 666 ${LOGF} + echo prerm: $* >> ${LOGF} +else + LOGF=/dev/null +fi + +if [ -d /usr/local/share/xtrkcad ] ; then + INSTALLDIR=/usr/local/share/xtrkcad +elif [ -d /usr/share/xtrkcad ] ; then + INSTALLDIR=/usr/share/xtrkcad +else + echo No existing XTrkCad install >> ${LOGF} + exit 1 +fi + +( su -c "sh ${INSTALLDIR}/xtrkcad-setup remove ${INSTALLDIR}" -l $SUDO_USER ) >> ${LOGF} 2>&1 + +exit 0 + diff --git a/distribution/win32/CMakeLists.txt b/distribution/win32/CMakeLists.txt index 80ecfe3..3a46c7f 100644 --- a/distribution/win32/CMakeLists.txt +++ b/distribution/win32/CMakeLists.txt @@ -1,4 +1,3 @@ -SET(CPACK_SOURCE_GENERATOR "ZIP") - -ADD_SUBDIRECTORY(nsis) +set(CPACK_SOURCE_GENERATOR "ZIP") +add_subdirectory(nsis) diff --git a/distribution/win32/nsis/CMakeLists.txt b/distribution/win32/nsis/CMakeLists.txt index 150fe43..ef1775c 100644 --- a/distribution/win32/nsis/CMakeLists.txt +++ b/distribution/win32/nsis/CMakeLists.txt @@ -1,23 +1,26 @@ -STRING(REPLACE "/" "\\\\" NATIVE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +string(REPLACE "/" "\\\\" NATIVE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -SET(CPACK_GENERATOR "NSIS") -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "XTrackCAD") -SET(CPACK_NSIS_EXECUTABLE_NAME "bin\\\\xtrkcad.exe") -SET(CPACK_NSIS_DISPLAY_NAME "XTrackCAD ${CPACK_PACKAGE_VERSION}") -SET(CPACK_PACKAGE_ICON "${NATIVE_CURRENT_SOURCE_DIR}\\\\headerimage.bmp") -SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\xtrkcad.exe") -SET(CPACK_NSIS_HELP_LINK "http://www.xtrkcad.org") -SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "xtrkcad.exe") +set(CPACK_GENERATOR "NSIS") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "XTrackCAD") +set(CPACK_NSIS_EXECUTABLE_NAME "bin\\\\xtrkcad.exe") +set(CPACK_NSIS_DISPLAY_NAME "XTrackCAD ${CPACK_PACKAGE_VERSION}") +set(CPACK_PACKAGE_ICON "${NATIVE_CURRENT_SOURCE_DIR}\\\\headerimage.bmp") +set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\xtrkcad.exe") +set(CPACK_NSIS_HELP_LINK "http://www.xtrkcad.org") +set(CPACK_NSIS_MUI_FINISHPAGE_RUN "xtrkcad.exe") set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "on") +set(CMAKE_INSTALL_OPENMP_LIBRARIES TRUE) -SET(CPACK_NSIS_STARTMENU_FOLDER "XTrackCAD") +set(CPACK_NSIS_STARTMENU_FOLDER "XTrackCAD") -SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS +set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "; add part specific to XTrackCAD installation !include \\\"${NATIVE_CURRENT_SOURCE_DIR}\\\\install.nsh\\\"") -SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS +set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "; add part specific to XTrackCAD uninstall !include \\\"${NATIVE_CURRENT_SOURCE_DIR}\\\\uninstall.nsh\\\"") -INCLUDE(CPack) +include (InstallRequiredSystemLibraries) + +include(CPack) -- cgit v1.2.3 From a14a7a0ccc9de76aeab0b2e4bbf58f1a79deedc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 3 Jul 2024 10:19:30 +0200 Subject: New upstream version 5.3.0GA --- distribution/CMakeLists.txt | 6 +- distribution/fedora/README | 26 +++++ .../fedora/xtrkcad-5.2.2GA-xtrkcad.desktop.patch | 106 +++++++++++++++++++++ distribution/fedora/xtrkcad.spec | 87 +++++++++++++---- distribution/posix/CMakeLists.txt | 12 +-- distribution/posix/postinst | 9 +- distribution/posix/prerm | 9 +- 7 files changed, 207 insertions(+), 48 deletions(-) create mode 100644 distribution/fedora/README create mode 100644 distribution/fedora/xtrkcad-5.2.2GA-xtrkcad.desktop.patch (limited to 'distribution') diff --git a/distribution/CMakeLists.txt b/distribution/CMakeLists.txt index 119b684..30acac7 100644 --- a/distribution/CMakeLists.txt +++ b/distribution/CMakeLists.txt @@ -3,11 +3,7 @@ SET(CPACK_PACKAGE_DESCRIPTION "XTrackCad is a CAD program for designing model ra SET(CPACK_PACKAGE_EXECUTABLES "xtrkcad;XTrkCAD ${XTRKCAD_VERSION}") IF(WIN32) # Add suffix - IF(WIN64) - SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-x64") - ELSE(WIN64) - SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-x86") - ENDIF(WIN64) + SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-${XTRKCAD_ARCH_SUBDIR}") ELSE(WIN32) SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}") ENDIF(WIN32) diff --git a/distribution/fedora/README b/distribution/fedora/README new file mode 100644 index 0000000..239b454 --- /dev/null +++ b/distribution/fedora/README @@ -0,0 +1,26 @@ +202220315 +This is repository of the files needed to make a fedora release. + +Temporary patches needed for 5.2.2, delete on next GA +xtrkcad-5.2.2GA-xtrkcad.desktop.patch + +Builds the needed fedora rpms +xtrkcad.spec +Also needs (not saved here) +xtrkcad-source-5.2.2GA.tar.gz + +builds the fc37 rpms +fedpkg --release rawhide mockbuild + +builds fc35 rpms +fedpkg --release f 35 mockbuild + +Built xtrkcad-5.2.2-1.fc35.x86_64.rpm installs as +a graphical app, Can be selected by Applications->Graphics->XTrackCAD + +https://bugzilla.redhat.com/show_bug.cgi?id=2040728 +2040728 - xtrkcad - CAD for Model Railroad layout +Approved 03/15 Comment #21 + + + diff --git a/distribution/fedora/xtrkcad-5.2.2GA-xtrkcad.desktop.patch b/distribution/fedora/xtrkcad-5.2.2GA-xtrkcad.desktop.patch new file mode 100644 index 0000000..54f74dc --- /dev/null +++ b/distribution/fedora/xtrkcad-5.2.2GA-xtrkcad.desktop.patch @@ -0,0 +1,106 @@ +diff -ru orig/xtrkcad-source-5.2.2GA/app/bin/CMakeLists.txt xtrkcad-source-5.2.2GA/app/bin/CMakeLists.txt +--- orig/xtrkcad-source-5.2.2GA/app/bin/CMakeLists.txt 2021-12-18 12:12:02.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/bin/CMakeLists.txt 2022-02-21 15:22:10.656926058 -0500 +@@ -169,7 +169,6 @@ + utility.c + utility.h + validator.c +- cJSON.c + archive.h + directory.h + manifest.h +@@ -237,10 +236,7 @@ + # This ensures that messages.h has been generated before we build xtrkcad-lib + ADD_DEPENDENCIES(xtrkcad-lib Help) + +-TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-lib) +-TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-wlib) +-TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-cornu) +-TARGET_LINK_LIBRARIES(xtrkcad dynstring) ++TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-lib xtrkcad-wlib xtrkcad-cornu dynstring cjson) + if(XTRKCAD_CREATE_SVG) + IF(UNIX) + if (NOT APPLE) +diff -ru orig/xtrkcad-source-5.2.2GA/app/bin/fileio.c xtrkcad-source-5.2.2GA/app/bin/fileio.c +--- orig/xtrkcad-source-5.2.2GA/app/bin/fileio.c 2021-12-18 10:31:35.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/bin/fileio.c 2022-02-20 10:51:17.258176965 -0500 +@@ -20,7 +20,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +-#include ++#include + + #include "archive.h" + #include "common.h" +Only in orig/xtrkcad-source-5.2.2GA/app/bin/include: dirent.h +Only in xtrkcad-source-5.2.2GA/app/bin/include: dirent.h.phil +diff -ru orig/xtrkcad-source-5.2.2GA/app/bin/manifest.c xtrkcad-source-5.2.2GA/app/bin/manifest.c +--- orig/xtrkcad-source-5.2.2GA/app/bin/manifest.c 2021-12-18 10:31:34.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/bin/manifest.c 2022-02-20 10:51:14.426213927 -0500 +@@ -21,7 +21,7 @@ + + #include + +-#include "cJSON.h" ++#include + #include "fileio.h" + #include "layout.h" + #include "misc2.h" +diff -ru orig/xtrkcad-source-5.2.2GA/app/help/CMakeLists.txt xtrkcad-source-5.2.2GA/app/help/CMakeLists.txt +--- orig/xtrkcad-source-5.2.2GA/app/help/CMakeLists.txt 2021-12-18 10:27:44.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/help/CMakeLists.txt 2022-02-21 15:24:51.868816364 -0500 +@@ -1,6 +1,6 @@ + PROJECT(help) + +-ADD_EXECUTABLE(genhelp genhelp.c cJSON.c cJSON.h) ++ADD_EXECUTABLE(genhelp genhelp.c) + + ADD_EXECUTABLE(genmessages genmessages.c) + +@@ -10,6 +10,8 @@ + SET(GENMESSAGES_OPTS "") + ENDIF(XTRKCAD_USE_GETTEXT) + ++TARGET_LINK_LIBRARIES(genhelp PUBLIC cjson) ++ + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/messages.h ${CMAKE_CURRENT_BINARY_DIR}/messages.but + DEPENDS genmessages ${CMAKE_CURRENT_SOURCE_DIR}/messages.in +diff -ru orig/xtrkcad-source-5.2.2GA/app/help/genhelp.c xtrkcad-source-5.2.2GA/app/help/genhelp.c +--- orig/xtrkcad-source-5.2.2GA/app/help/genhelp.c 2021-12-18 10:27:44.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/help/genhelp.c 2022-02-20 10:28:37.155745877 -0500 +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include "cJSON.h" ++#include + + #define I18NHEADERFILE "i18n.h" + +diff -ru orig/xtrkcad-source-5.2.2GA/app/lib/CMakeLists.txt xtrkcad-source-5.2.2GA/app/lib/CMakeLists.txt +--- orig/xtrkcad-source-5.2.2GA/app/lib/CMakeLists.txt 2021-12-18 12:12:02.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/app/lib/CMakeLists.txt 2022-02-21 15:25:06.717622045 -0500 +@@ -42,10 +42,6 @@ + endif() + + if(UNIX AND NOT APPLE) +- install(PROGRAMS +- xdg-open xtrkcad-setup +- DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR} +- ) + install(FILES + xtrkcad.desktop xtrkcad.xml + DESTINATION "${XTRKCAD_SHARE_INSTALL_DIR}/applications" +diff -ru orig/xtrkcad-source-5.2.2GA/CMakeLists.txt xtrkcad-source-5.2.2GA/CMakeLists.txt +--- orig/xtrkcad-source-5.2.2GA/CMakeLists.txt 2021-12-18 13:10:04.000000000 -0500 ++++ xtrkcad-source-5.2.2GA/CMakeLists.txt 2022-02-21 15:30:10.711643816 -0500 +@@ -1,6 +1,6 @@ + PROJECT(XTrkCAD) + enable_testing() +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.22) + set(CMAKE_MACOSX_RPATH 0) + + # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked diff --git a/distribution/fedora/xtrkcad.spec b/distribution/fedora/xtrkcad.spec index 84e4be1..eae4a74 100644 --- a/distribution/fedora/xtrkcad.spec +++ b/distribution/fedora/xtrkcad.spec @@ -1,16 +1,29 @@ -Summary: XTrkCad CAD for Model Railroad layout Name: xtrkcad +Summary: CAD for Model Railroad layout Version: 5.2.2 Release: 1%{?dist} -License: GPLv2+ +License: GPLv2 URL: https://sourceforge.net/projects/xtrkcad-fork -Source0: https://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20%{version}%20/xtrkcad-source-%{version}.zip -BuildRoot: %{_tmppath}/%{name}-root -BuildRequires: gcc, gcc-c++, cmake >= 2.4.7, pkgconfig, gtk2-devel -BuildRequires: libcmocka, libcmocka-devel, libzip, libzip-devel -BuildRequires: tinyxml, tinyxml-devel, pandoc -BuildRequires: gettext, gettext-devel, glibc-devel -Requires: libcmocka, libzip, tinyxml +Source0: https://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20%{version}/xtrkcad-source-%{version}GA.tar.gz +# patch (to be removed on next GA release) +# patch0 adds xtrkcad.desktop to build - Changed upstream +# It also uses cJSON and xdg-utils packages +Patch0: xtrkcad-5.2.2GA-xtrkcad.desktop.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake >= 2.4.7 +BuildRequires: pkgconfig +BuildRequires: gtk2-devel +BuildRequires: libzip-devel +BuildRequires: desktop-file-utils +BuildRequires: gettext-devel +BuildRequires: glibc-devel +BuildRequires: pandoc +BuildRequires: doxygen +BuildRequires: cjson-devel + +Requires: xdg-utils %description XTrkCad is a CAD program for designing Model Railroad layouts. @@ -25,26 +38,60 @@ benchwork, 'Print to BitMap', elevations, train simulation and car inventory. %prep -%setup -n xtrkcad-source-%{version}/usr/local -q +%setup -n xtrkcad-source-%{version}GA -q + +# removed on next GA release +%patch0 -p1 + +%package doc +Summary: Documentation for %{name} +BuildArch: noarch + +%description doc +This package contains user documentation for XTrkCad, +in HTML format. It also contains demos, and examples. %build -cmake -D CMAKE_INSTALL_PREFIX:PATH=%{_prefix} -D CMAKE_BUILD_TYPE=Debug . -make +%cmake -DBUILD_SHARED_LIBS=OFF -DXTRKCAD_USE_DOXYGEN=ON +%cmake_build %install -rm -rf $RPM_BUILD_ROOT/* -make DESTDIR=$RPM_BUILD_ROOT install +%cmake_install -%check -make test +desktop-file-install --dir=%{buildroot}/%{_datadir}/applications \ + %{buildroot}/%{_datadir}/%{name}/applications/xtrkcad.desktop +rm %{buildroot}/%{_datadir}/%{name}/applications/xtrkcad.desktop + +mkdir -p %{buildroot}/%{_datadir}/pixmaps +mv %{buildroot}/%{_datadir}/%{name}/pixmaps/xtrkcad.png \ + %{buildroot}/%{_datadir}/pixmaps/xtrkcad.png +rm -rf %{buildroot}/%{_datadir}/%{name}/pixmaps + +mkdir -p %{buildroot}/%{_datadir}/mime/packages +mv %{buildroot}/%{_datadir}/%{name}/applications/xtrkcad.xml \ + %{buildroot}/%{_datadir}/mime/packages/xtrkcad.xml + +# Tests require a feature in the next release +#%check +#%ctest %files %license app/COPYING -%defattr(-, root, root) -%{_bindir}/xtrkcad -%{_datadir} +%{_bindir}/%{name} +%{_datadir}/applications/xtrkcad.desktop +%{_datadir}/pixmaps/xtrkcad.png +%{_datadir}/mime/packages/xtrkcad.xml +%{_datadir}/%{name} +%exclude %{_datadir}/%{name}/demos +%exclude %{_datadir}/%{name}/examples +%exclude %{_datadir}/%{name}/html + +%files doc +%{_datadir}/%{name}/demos +%{_datadir}/%{name}/examples +%{_datadir}/%{name}/html %changelog -* Tue Dec 14 2021 Phil Cameron +* Mon Feb 21 2022 Phil Cameron 5.2.2-1 - V5.2.2 GA diff --git a/distribution/posix/CMakeLists.txt b/distribution/posix/CMakeLists.txt index 6e44581..f202791 100644 --- a/distribution/posix/CMakeLists.txt +++ b/distribution/posix/CMakeLists.txt @@ -8,10 +8,11 @@ set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}////xtrkcad-desc.txt") set(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}") -if(XTRKCAD_PACKAGE_GA_RELEASE) - set(CPACK_INSTALL_PREFIX "/usr" ) -else() +if(XTRKCAD_BETA MATCHES "-beta") set(CPACK_INSTALL_PREFIX "/usr/local" ) +else() + set(CPACK_INSTALL_PREFIX "/usr" ) + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/prerm") endif() set(CPACK_PACKAGING_INSTALL_PREFIX ${CPACK_INSTALL_PREFIX}) @@ -59,7 +60,7 @@ set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_CURRENT_SOURCE_DIR}////changelog.txt") set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) -set(CPACK_DEBIAN_PACKAGE_NAME "XTrkCad") +set(CPACK_DEBIAN_PACKAGE_NAME "XTrkCad${XTRKCAD_BETA}") set(CPACK_DEBIAN_PACKAGE_VERSION "1:${XTRKCAD_VERSION}") @@ -95,7 +96,4 @@ set(CPACK_PACKAGE_EXECUTABLES "xtrkcad;XTrkCad-5.2.1-Beta") set(CPACK_CREATE_DESKTOP_LINKS "xtrkcad") -set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/prerm") - include(CPack) - diff --git a/distribution/posix/postinst b/distribution/posix/postinst index 914534d..969aa7e 100755 --- a/distribution/posix/postinst +++ b/distribution/posix/postinst @@ -7,14 +7,7 @@ else LOGF=/dev/null fi -if [ -d /usr/local/share/xtrkcad ] ; then - INSTALLDIR=/usr/local/share/xtrkcad -elif [ -d /usr/share/xtrkcad ] ; then - INSTALLDIR=/usr/share/xtrkcad -else - echo No existing XTrkCad install >> ${LOGF} - exit 1 -fi +INSTALLDIR=/usr/share/xtrkcad ( su -c "sh ${INSTALLDIR}/xtrkcad-setup install ${INSTALLDIR}" -l $SUDO_USER ) >> ${LOGF} 2>&1 diff --git a/distribution/posix/prerm b/distribution/posix/prerm index 3c5db28..b5ae917 100755 --- a/distribution/posix/prerm +++ b/distribution/posix/prerm @@ -7,14 +7,7 @@ else LOGF=/dev/null fi -if [ -d /usr/local/share/xtrkcad ] ; then - INSTALLDIR=/usr/local/share/xtrkcad -elif [ -d /usr/share/xtrkcad ] ; then - INSTALLDIR=/usr/share/xtrkcad -else - echo No existing XTrkCad install >> ${LOGF} - exit 1 -fi +INSTALLDIR=/usr/share/xtrkcad ( su -c "sh ${INSTALLDIR}/xtrkcad-setup remove ${INSTALLDIR}" -l $SUDO_USER ) >> ${LOGF} 2>&1 -- cgit v1.2.3