debian
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
==================== BUILDING A PACKAGE ==================== - Prior to buidling a pacakge, various packaging files need to be generated for the specific release. This may be done with 'make -C debian all'. See the example below for how to specify the release version and date. - Building a package requires tar files with the appropriate source. These can be generated by running 'make -C debian orig' from the top of the source tree. - The release name, release version, and Subversion revision may be specified as shown in the example below. - The following steps will checkout the source and build locally: # git clone --recursive /raid/git/bsc.git # cd bsc # git clone /raid/git/bsc-doc.git doc # svn export https://svn.bluespec.com:8080/bs/training/trunk/slides/Released_Slides slides # svn export https://svn.bluespec.com:8080/bs/marketing/trunk/WhitePapers whitepapers # svn export https://svn.bluespec.com:8080/bs/marketing/trunk/Conferences conferences # RELEASE_NUM=2017.07.omega3 RELEASE_DATE=20170725 make -C debian orig all # make -C debian deb - There are other ways to build Debian packages including debuild, pbuilder, and cowbuilder. - The packages will build under jessie, and previousl have been tested with squeeze and wheezy. However, packages built under one release will not work in another, due to library dependencies (e.g., libgmp). ==================== PACKAGE VERSION ==================== - The package name is based on the release number, such as 2017.07.omega3 - The version number is based on the following: - Release date, such as 20170725 - Packaging revision, - Target operating system and revision, e.g., deb7.0, rhel6 - Version example: 20170725-1+deb7.0 ==================== TODO ==================== -------------------- Package Dependencies and Organization -------------------- - Move architecture independent bits from bluespec-latest to bluespec-latest-common. - Eliminate need for symlinks from /usr/lib/bluespec-latest to /usr/share/bluespec-latest . - Eliminate static linking to support libraries. Use development packages from OS. - boost (done) - cudd - tcl/tk/itcl/itk - stp - yices - Split bluespec-util into more specific packages. Relocate files and integrate into each application, where appropriate. - bluespec-emacs - bluespec-vim - bluespec-jedit - bluespec-enscript - flexlm binaries - Create debian package for yices. Create yices-package to download and build package. (mostly done) -------------------- Build Script Clean Up -------------------- - 64-bit src/lib/tcllib/emacs/linux64/emacsclient-22.1 depends on 32-bit libc - Properly address hacks in debian/rules. - Proper script permissions on files under board_support/ . - .gitignore files in release. - Integrate building of bluenoc and manpages with regular build scripts. - Integrate patches from debian/patches/ . -------------------- Package Clean Up -------------------- - Move files to conform with FHS. (mostly done) - Release to proper FHS paths directly with 'make install'. - Fix doc tree organization. Update index.html to FHS adjusted paths. - Eliminate useless dependency on libutil.so.1, per dpkg-shlibdeps warning. - Clean up lintian warnings. - Enable harden flags that don't cause problems. -------------------- RPM Packages -------------------- Building RPM packages (for Red Hat, SuSE, etc.) can be accomplished a number of ways. alien ----- The package alien may be used to convert Debian packages to RPM packages. However, the resulting RPM packages will not have any dependencies nor any maintainer scripts. Additionally, for the packages to even run properly, the original Debian packages must be built in an environment that is compatible with the target operating system. Native RPM Packages ------------------- Native RPM packages may be built by creating suitable spec files. One has been started for the bluespec package. Maintaining this configuration in addition to the Debian packaging configuration will require additional effort. With native RPM packages, the packages may be built on the target operating system, ensuring compatibility with dynamic library versions. However, some of the desired target operating systems do not have packages available for some of the dependencies of the bluespec package. -- Darius Rad <[email protected]>, Thu, 27 Jul 2017 20:29:58 -0400