changed: remove CPack based packaging
cpack is too limited and have too many issue that need to be worked around. native packaging for redhat and debian will follow git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@2346 e10b68d5-8a6e-419e-a041-bce267b0401d
This commit is contained in:
parent
9003b327bf
commit
52a43a5ec3
@ -9,8 +9,6 @@ SET(IFEM_VERSION "${IFEM_VERSION_MAJOR}.${IFEM_VERSION_MINOR}.${IFEM_VERSION_PAT
|
||||
# Generate header with version info
|
||||
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/src/IFEM.h.in
|
||||
${PROJECT_SOURCE_DIR}/src/IFEM.h @ONLY)
|
||||
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/scripts/fixupdebs.sh.in
|
||||
${PROJECT_SOURCE_DIR}/scripts/fixupdebs.sh @ONLY)
|
||||
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/libifem-builddeps.control.in
|
||||
${PROJECT_SOURCE_DIR}/doc/libifem-builddeps.control @ONLY)
|
||||
|
||||
@ -178,6 +176,3 @@ ELSE(WIN32)
|
||||
INSTALL(FILES ${PROJECT_SOURCE_DIR}/COPYING DESTINATION share/doc/IFEM COMPONENT doc)
|
||||
INSTALL(FILES ${PROJECT_SOURCE_DIR}/doc/Tutorials/GettingStarted.pdf DESTINATION share/doc/IFEM COMPONENT doc)
|
||||
ENDIF(WIN32)
|
||||
|
||||
#Packaging
|
||||
INCLUDE(IFEMPackaging)
|
||||
|
@ -1,58 +0,0 @@
|
||||
EXECUTE_PROCESS(COMMAND lsb_release "-sc" OUTPUT_VARIABLE CODENAME)
|
||||
STRING(REGEX REPLACE "\n" "" SYSTEM_CODENAME ${CODENAME})
|
||||
EXECUTE_PROCESS(COMMAND lsb_release "-si" OUTPUT_VARIABLE VENDOR)
|
||||
STRING(REGEX REPLACE "\n" "" SYSTEM_VENDOR ${VENDOR})
|
||||
|
||||
IF (SYSTEM_VENDOR STREQUAL "Ubuntu" OR SYSTEM_VENDOR STREQUAL "Debian")
|
||||
EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE ARCHITECTURE)
|
||||
STRING(REGEX REPLACE "\n" "" CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARCHITECTURE})
|
||||
SET(SYSTEM_ARCHITECTURE ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Arne Morten Kvarving <arne.morten.kvarving@sintef.no>")
|
||||
SET(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
ENDIF (SYSTEM_VENDOR STREQUAL "Ubuntu" OR SYSTEM_VENDOR STREQUAL "Debian")
|
||||
|
||||
IF (SYSTEM_VENDOR STREQUAL "Scientific")
|
||||
SET(CPACK_GENERATOR "RPM")
|
||||
EXECUTE_PROCESS(COMMAND uname "-p" OUTPUT_VARIABLE ARCHITECTURE)
|
||||
STRING(REGEX REPLACE "\n" "" CPACK_RPM_PACKAGE_ARCHITECTURE ${ARCHITECTURE})
|
||||
SET(SYSTEM_ARCHITECTURE ${CPACK_RPM_PACKAGE_ARCHITECTURE})
|
||||
SET(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
SET(CPACK_RPM_bin_PACKAGE_REQUIRES "arpack, lapack, atlas, blas, hdf5 >= 1.8")
|
||||
SET(CPACK_RPM_devel_PACKAGE_REQUIRES "libifem-bin, arpack-devel, lapack-devel, atlas-devel, blas-devel, hdf5-devel >= 1.8")
|
||||
SET(CPACK_RPM_examples_PACKAGE_REQUIRES "libifem-devel")
|
||||
ENDIF(SYSTEM_VENDOR STREQUAL "Scientific")
|
||||
|
||||
# Common packaging
|
||||
SET(CPACK_PACKAGE_NAME "libifem")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "IFEM - the isogemetric finite element library")
|
||||
SET(CPACK_PACKAGE_VERSION "${IFEM_VERSION}")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${IFEM_VERSION_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${IFEM_VERSION_MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${IFEM_VERSION_PATCH})
|
||||
SET(CPACK_PACKAGE_FILE_NAME "libifem_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}")
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/COPYING)
|
||||
SET(CPACK_COMPONENTS_ALL bin doc examples ${IFEM_DEV_COMPONENT})
|
||||
SET(CPACK_STRIP_FILES "bin/Poisson;bin/LinEl;bin/HDF5toVTx;lib/libIFEM.so.${IFEM_VERSION}")
|
||||
|
||||
INCLUDE(CPack)
|
||||
|
||||
# For generating ubuntu packages
|
||||
ADD_CUSTOM_TARGET(ubuntu
|
||||
COMMAND make package
|
||||
COMMAND ${PROJECT_SOURCE_DIR}/scripts/fixupdebs.sh
|
||||
COMMAND equivs-build ${PROJECT_SOURCE_DIR}/doc/libifem-builddeps.control
|
||||
COMMAND mv ${CMAKE_BINARY_DIR}/libifem-builddeps_${IFEM_VERSION}_all.deb ${CMAKE_BINARY_DIR}/UbuntuDebs
|
||||
COMMAND echo "All done. Packages are in UbuntuDebs/"
|
||||
COMMENT "Generating and fixing up Ubuntu packages" VERBATIM)
|
||||
|
||||
# For generating RPM packages
|
||||
ADD_CUSTOM_TARGET(rpm
|
||||
COMMAND make package
|
||||
COMMAND mkdir -p RPMs
|
||||
COMMAND mv libifem_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}-bin.rpm RPMs/libifem-bin_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}.rpm
|
||||
COMMAND mv libifem_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}-doc.rpm RPMs/libifem-doc_${CPACK_PACKAGE_VERSION}_noarch-${SYSTEM_CODENAME}.rpm
|
||||
COMMAND mv libifem_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}-devel.rpm RPMs/libifem-devel_${CPACK_PACKAGE_VERSION}_noarch-${SYSTEM_CODENAME}.rpm
|
||||
COMMAND mv libifem_${CPACK_PACKAGE_VERSION}_${SYSTEM_ARCHITECTURE}-${SYSTEM_CODENAME}-examples.rpm RPMs/libifem-examples_${CPACK_PACKAGE_VERSION}_noarch-${SYSTEM_CODENAME}.rpm
|
||||
COMMAND echo "All done. Packages are in RPMs/"
|
||||
COMMENT "Generating and fixing up RPM packages" VERBATIM)
|
@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script helps workaround current CPack (2.8.8) limitations
|
||||
# 1) Fix the main deb to drop the '-bin' postfix
|
||||
# 2) Fix -dev and -examples dependencies and descriptions
|
||||
# 3) Remove dependencies from -doc and fix the description
|
||||
#
|
||||
# It expects to be run with debs in the cwd
|
||||
|
||||
function Unpack() {
|
||||
mkdir tmp
|
||||
dpkg-deb -R $1 tmp
|
||||
cd tmp/DEBIAN
|
||||
}
|
||||
|
||||
function Pack() {
|
||||
sed '/^$/d' -i control
|
||||
cd ../..
|
||||
dpkg-deb -b tmp $1
|
||||
rm tmp -rf
|
||||
}
|
||||
|
||||
path=`pwd`
|
||||
mkdir -p UbuntuDebs
|
||||
rm -f UbuntuDebs/*
|
||||
arch=`dpkg --print-architecture`
|
||||
code=`lsb_release -sc`
|
||||
version=@IFEM_VERSION_MAJOR@.@IFEM_VERSION_MINOR@.@IFEM_VERSION_PATCH@
|
||||
mkdir -p /tmp/debfixer
|
||||
cd /tmp/debfixer
|
||||
|
||||
# Step 1
|
||||
Unpack $path/libifem_${version}_$arch-$code-bin.deb
|
||||
echo "Suggests: libifem-examples, libifem-doc" >> control
|
||||
echo "Depends: libarpack2, liblapack3gf, libsuperlu3, libhdf5-serial-1.8.4, libtinyxml2.6.2" >> control
|
||||
sed -i control -e 's/-bin//g'
|
||||
Pack $path/UbuntuDebs/libifem_${version}_$arch-$code.deb
|
||||
rm -f $path/libifem_${version}_$arch-$code-bin.deb
|
||||
|
||||
# Step 2
|
||||
Unpack $path/libifem_${version}_$arch-$code-dev.deb
|
||||
echo "Suggests: libifem-examples, libifem-doc" >> control
|
||||
echo "Depends: libifem, libtinyxml-dev, libblas-dev, liblapack-dev, libarpack2-dev, libsuperlu3-dev, libvtfexpressapi-dev, libifem-cmakerules" >> control
|
||||
sed -i control -e 's/\(Description: .*$\)/\1 - development headers/g'
|
||||
sed -i control -e 's/\(Architecture: .*$\)/Architecture: all/g'
|
||||
Pack $path/UbuntuDebs/libifem-dev_${version}_all-$code.deb
|
||||
rm -f $path/libifem_${version}_$arch-$code-dev.deb
|
||||
|
||||
Unpack $path/libifem_${version}_$arch-$code-examples.deb
|
||||
echo "Suggests: libifem-doc" >> control
|
||||
echo "Depends: libifem-dev, libifem-cmakerules" >> control
|
||||
sed -i control -e 's/\(Description: .*$\)/\1 - examples/g'
|
||||
sed -i control -e 's/\(Architecture: .*$\)/Architecture: all/g'
|
||||
Pack $path/UbuntuDebs/libifem-examples_${version}_all-$code.deb
|
||||
rm -f $path/libifem_${version}_$arch-$code-examples.deb
|
||||
|
||||
# Step 3
|
||||
Unpack $path/libifem_${version}_$arch-$code-doc.deb
|
||||
echo -e "Suggests: libifem-examples" >> control
|
||||
sed -i control -e 's/\(Description: .*$\)/\1 - documentation/g'
|
||||
sed -i control -e 's/\(Architecture: .*$\)/Architecture: all/g'
|
||||
Pack $path/UbuntuDebs/libifem-doc_${version}_all-$code.deb
|
||||
rm -f $path/libifem_${version}_$arch-$code-doc.deb
|
||||
|
||||
rmdir /tmp/debfixer
|
Loading…
Reference in New Issue
Block a user