Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-353

use system libraries instead of bundled libraries

    Details

    • Type: Improvement
    • Status: Accepted
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Environment:
      Linux lenny 2.6.31-1-686 #1 SMP Sun Nov 15 20:39:33 UTC 2009 i686 GNU/Linux

      Debian GNU/Linux "unstable" (sid)
    • CPU Architecture:
      x86
    • Kernel:
      Linux
    • Userland:
      GNU/Linux
    • lsb_release:
      Hide
      LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch
      Distributor ID: Debian
      Description: Debian GNU/Linux unstable (sid)
      Release: unstable
      Codename: sid
      Show
      LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch Distributor ID: Debian Description: Debian GNU/Linux unstable (sid) Release: unstable Codename: sid
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      16111
    • GIT Master Revision hash::
      well, this was yesterday's snapshot...

      Description

      The current build system makes it really long and hard to compile freeswitch for no apparent good reason. A lot of libraries are being built that are already available on the target system. On Debian, the following are already present:

      apr
      apr-util
      curl
      iksemel
      libsndfile
      pcre
      portaudio
      sofia-sip
      speex
      sqlite
      spandsp
      srtp
      tiff
      udns
      yaml?

      In addition, the following are downloaded during the build process and built on the fly: celt-0.7.0-1, json-c-0.8, lame-3.97, libmemcached-0.32, libshout-2.2.2 and mpg123

      That will keep freeswitch from being bundled with the next Debian release. I really appreciate the work that has been done here to try to package FreeSWITCH to Debian, but as it stands, the package cannot enter the archive for three reasons:

       1. it bundles copies of code already shipped in other packages (this is the issue at hand here)
       2. it installs files in a non-standard location (/opt, i'll open a separate issue about this)
       3. it packages non-free components (mpg123 and lame come to mind, there may be others, that's a Debian issue that doesn't have to be addressed here)

      As it stands, the issue I'm wishing to address here is #1. The issue is twofold:

       a. we need to be able to build freeswitch by linking to existing libraries, not the bundled ones
       b. ideally, we would need a reduced source distribution that wouldn't bundle those libraries

      I understand the wish for the developers here to ensure a controlled environment in the distribution of the software, but really, a 75M archive is way too big for freeswitch. This build system will impede inclusion in Debian, but I suspect it will be a problem in other distributions as well.

      Before build, the freeswitch-specific code only makes 279M of the total uncompressed 364M of source code. After build, that's 482M out of 710M. Really, that should be factored out.

      But for the resolution of this issue, I think we can settle with just fixing the build system by adding a make target that would use existing libraries... Then the debian/rules file can be fixed to use that target.

      I would understand if you guys don't want to change the build system that way, in which case that would mean the debian package would need to divert away from the standard build system, which will involve duplicate work and more confusion, so I'd rather avoid that.

      The Debian packaging effort takes place here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=389591

      Thanks and happy new year.

        Attachments

        1. 0001-Add-libyaml-pkg-config-LIBS-to-LIBADD-not-LDFLAGS.patch
          2 kB
        2. 0001-Avoid-adding-linker-flags-as-make-targets.patch
          2 kB
        3. 0001-FS-353-initial-support-for-system-liblua.patch
          3 kB
        4. 0001-Use-libedit-EL_REFRESH-again.patch
          2 kB
        5. 0002-Allow-a-system-provided-version-of-pcre-to-be-used.patch
          6 kB
        6. 0002-Ungetlib-libmemcached.patch
          8 kB
        7. 0003-Allow-a-system-provided-version-of-Speex-to-be-used.patch
          3 kB
        8. 0004-Allow-a-system-provided-version-of-libedit-to-be-use.patch
          4 kB
        9. 0005-Allow-a-system-provided-version-of-SQLite-to-be-used.patch
          5 kB
        10. 0006-Build-debian-with-optional-system-libs.patch
          1 kB
        11. 20140224T131622Z-sid-amd64-build-log.txt
          7.88 MB
        12. 20140306T103246Z-fs-asan.txt
          3 kB
        13. fs-sqlite.diff
          1.32 MB
        14. fs-sqlite.git.log.gz
          2.21 MB
        15. fs-sqlite.shorter.diff
          12 kB
        16. fs-sqlite-20100603-2-core-Fix-misuse-of-free-and-switch_core_db_free.patch
          11 kB
        17. fs-sqlite-20100606-1-Remove-deps-to-sqlite3-local-copy.patch
          17 kB
        18. libedit-unbundle.diff
          19 kB
        19. mod_memcache-system-libs.diff
          5 kB
        20. pcrespeex-unbundle.diff
          11 kB
        21. system-libcurl.diff
          32 kB
        22. system-libcurl.diff
          32 kB
        23. system-libcurl.diff
          31 kB
        24. system-libcurl.diff
          25 kB
        25. system-sqlite.diff
          8 kB

          Issue Links

            Activity

              People

              • Assignee:
                tc Travis Cross
                Reporter:
                anarcat antoine beaupré
              • Votes:
                0 Vote for this issue
                Watchers:
                22 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 8 hours
                  8h
                  Remaining:
                  Remaining Estimate - 8 hours
                  8h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified