Skip to content

Latest commit

 

History

History

debian

Folders and files

NameName
Last commit message
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