Skip to content
Snippets Groups Projects
  1. Feb 27, 2017
    • George Joseph's avatar
      build: Warn if asterisk is installed in both 32 and 64 bit sys dirs · 4692a32e
      George Joseph authored
      ... and clean them both up on uninstall.
      
      We've fixed the issue where 'make install' was installing to
      /usr/lib on 64-bit systems that use /usr/lib64.  Now we need
      to clean up the remnants in /usr/lib.
      
      * 'make install' now prints a warning if DESTDIR/ASTLIBDIR
        contains 'lib64' and libasterisk* shared libraries or modules
        are also found in DESTDIR/ASTLIBDIR with 'lib64' transformed
        to 'lib'.
      
      * 'make uninstall' ALWAYS cleans up both DESTDIR/ASTLIBDIR and
        DESTDIR/ASTLIBDIR with 'lib64' transformed to 'lib'.
      
      ASTERISK-26705
      
      Change-Id: I6edddeb3c07a51e7c7ba7cac3c05e4bf3ec3f01f
      4692a32e
  2. Feb 23, 2017
    • George Joseph's avatar
      build: Execute ldconfig to build cache. (take two) · b0067bcf
      George Joseph authored
      On some platforms a multiarch approach is used for libraries.
      The build system does not take this into account and still
      places libraries into the lib directory if no --libdir is
      specified to configure. On initial startup this results in
      libasteriskssl.so not being found, as it is not in the multiarch
      lib directory.  To make matters worse, options were being passed
      to ldconfig on both Linux and FreeBSD that actually prevented
      the rebuild of the cache.
      
       * Fedora has a /usr/share/config.site that automatically tells
         autoconf to use /usr/lib64 but CentOS does not. This logic was
         copied to configure.ac and modified so systems like Ubuntu,
         which still use /usr/lib for 64-bit systems, aren't affected.
      
      Now that we have them in the correct directory...
      
      In order for the system loader to find libasteriskssl and
      libasteriskpj, one of 3 things has to happen...
      
        - The linker cache must be rebuilt including the directory
          where the libasterisk* libraries were installed.  Only root
          can rebuild the cache.  This was busted.
        - We have to link the asterisk binary with an rpath pointing
          to the directrory where the libasterisk* libraries were
          installed.  This makes things very complicated and will happen
          over the collective dead bodies of everyone who's had to
          package a distribution with an rpath.
        - Finally, you can start asterisk with LD_LIBRARY_PATH set to the
          directrory where the libasterisk* libraries were installed.
      
      There are no other options. So...
      
       * The invokation of ldconfig has been moved from main/Makefile
         to ASTTOPDIR/Makefile, the options have been removed, and
         DESTDIR/ASTLIBDIR appended.  If you aren't root, you will be
         warned after the "Asterisk Installation Compete" banner that
         you must re-run 'make install' as root, manually run
         'ldconfig DESTDIR/ASTLIBDIR' as root, or run asterisk with
         LD_LIBRARY_PATH.
      
      ASTERISK-26705
      
      Change-Id: I2a64b7c33a7d3e9bde20f47e3d3ab771977af982
      b0067bcf
  3. Oct 10, 2016
    • George Joseph's avatar
      bundled_pjproject: Add tests for programs used by the Makefile, et al. · 5fb848ee
      George Joseph authored
      Added tests for bzip2, tar, patch, sed and nm to configure.ac.
      
      Set DOWNLOAD_TO_STDOUT to a working command line regardless of
      whether the download program is wget, curl or fetch.
      
      Added a 'configure.m4' file to the third-party directory which takes
      care of calling any third-party project setup.  Had to move some
      pjproject_bundled stuff up in configure.ac so it was called before
      the third-party configure macro.
      
      The pjproject tarball is now downloaded to the externals_cache_dir if
      it was specified on the ./configure command line
      
      Removed regeneration of the pjproject aconfigure file.  It was only
      needed for an old patch that no longer applies.
      
      Converted the tests for symbols to explicit tests since we know that
      they're now available in the bundled version.  Saves a little time
      during configure.
      
      ASTERISK-26416 #close
      Reported-by: Corey Farrell
      
      Change-Id: Id1d94251c0155f8dd41b7de7067f35cfbaafbb9b
      (cherry picked from commit e6b0053d)
      (cherry picked from commit a0d02f38)
      5fb848ee
  4. Sep 06, 2016
    • George Joseph's avatar
      build: Add download capability for external packages · 6caf6bcd
      George Joseph authored
      The DPMA and g729a, silk, siren7 and siren14 codecs hosted at
      http://downloads.digium.com/pub/telephony/ are now listed in the
      "External" sections of the "Resource Modules" and "Codec Translators"
      pages in menuselect.  Any that are selected will automatically be
      downloaded and installed when "make install" is run.  Their LICENSE and
      README (if avaialble) files will be installed to
      ASTVARLIBDIR/documentation/thirdparty/<product_name>.
      
      Example use with codecs:
      
      The codecs/codecs.xml file is a menuselect style xml file that lists
      the codecs to be included.  Their support levels are 'external', which
      triggers the download and install, and defaultenabled is no.  Also
      because codec_g729a is actually in a directory named codec_g729 on the
      download server, the newly added 'member_data' element is used to
      override the default of the directory name being the package name.  You
      can use the 'directory_name' attribute to keep default base URL
      (http://downloads.digium.com/pub/telephony/) but use the new directory,
      or you use the 'remote_url' attribute to specify a full URL to the
      download directory.  In this case, you must still follow the same
      subdirectory naming conventions as that used for the packages located
      at 'http://downloads.digium.com/pub/telephony'.
      
      A new configure option '--with-externals-cache' was added and like
      '--with-sounds-cache' it allows the installer to cache tarballs so
      they're not downloaded every time.
      
      To assist with the download and install process, each external package
      now has a manifest.xml file that, among other things, contains a package
      version and checksums for each file in the tarball.  The manifest is
      saved to both the cache directory and ASTMODDIR and together with the
      manifest.xml on the downloads site, tells the install scripts whether
      a download and/or update is needed.
      
      bash and xmlstarlet are required for downloader operation.  If they're
      not installed, the external items in menuselect will be unavailable.
      
      Change-Id: Id3dcf1289ffd3cb0bbd7dfab3cafbb87be60323a
      6caf6bcd
  5. Jul 19, 2016
  6. Jul 18, 2016
  7. May 19, 2016
  8. Mar 01, 2016
    • George Joseph's avatar
      build-system: Allow building with static pjproject · 3173e91b
      George Joseph authored
      Background here:
      http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html
      
      From CHANGES:
       * To help insure that Asterisk is compiled and run with the same known
         version of pjproject, a new option (--with-pjproject-bundled) has been
         added to ./configure.  When specified, the version of pjproject specified
         in third-party/versions.mak will be downloaded and configured.  When you
         make Asterisk, the build process will also automatically build pjproject
         and Asterisk will be statically linked to it.  Once a particular version
         of pjproject is configured and built, it won't be configured or built
         again unless you run a 'make distclean'.
      
         To facilitate testing, when 'make install' is run, the pjsua and pjsystest
         utilities and the pjproject python bindings will be installed in
         ASTDATADIR/third-party/pjproject.
      
         The default behavior remains building with the shared pjproject
         installation, if any.
      
      Building:
      
         All you have to do is include the --with-pjproject-bundled option on
         the ./configure command line (and remove any existing --with-pjproject
         option if specified).  Everything else is automatic.
      
      Behind the scenes:
      
         The top-level Makefile was modified to include 'third-party' in the
         list of MOD_SUBDIRS.
      
         The third-party directory was created to contain any third party
         packages that may be needed in the future.  Its Makefile automatically
         iterates over any subdirectories passing on targets.
      
         The third-party/pjproject directory was created to house the pjproject
         source distribution.  Its Makefile contains targets to download, patch
         configure, generate dependencies, compile libs, apps and python bindings,
         sanitized build.mak and generate a symbols list.
      
         When bootstrap.sh is run, it automatically includes the configure.m4
         file in third-party/pjproject.  This file has a macro to download and
         conifgure pjproject and get and set PJPROJECT_INCLUDE, PJPROJECT_DIR
         and PJPROJECT_BUNDLED.  It also tests for the capabilities like
         PJ_TRANSACTION_GRP_LOCK by parsing preprocessor output as opposed to
         trying to compile.  Of course, bootstrap.sh is only run once and the
         configure file is incldued in the patch.
      
         When configure is run with the new options, the macro in configure.m4
         triggers the download, patch, conifgure and tests.  No compilation is
         performed at this time.  The downloaded tarball is cached in /tmp so
         it doesn't get downloaded again on a distclean.
      
         When make is run in the top-level Asterisk source directory, it will
         automatically descend all the subdirectories in third_party just as it
         does for addons, apps, etc.  The top-level Makefile makes sure that
         the 'third-party' is built before 'main' so that dependencies from the
         other directories are built first.
      
         When main does build, a new shared library (libasteriskpj) is created that
         links statically to the pjproject .a files and exports all their symbols.
         The asterisk binary links to that, just as it does with libasteriskssl.
      
         When Asterisk is installed, the pjsua and pjsystest apps, and the pjproject
         python bindings are installed in ASTDATADIR/third-party/pjproject.  This
         will facilitate testing, including running the testsuite which will be
         updated to check that directory for the pjsua module ahead of the system
         python library.
      
      Modules should continue to depend on pjproject if they use pjproject APIs
      directly.  They should not care about the implementation.  No changes to any
      res_pjsip modules were made.
      
      Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
      3173e91b
  9. Jan 27, 2016
    • George Joseph's avatar
      build_system: Prevent goals needing makeopts from running when it's missing · c53903d4
      George Joseph authored
      The Makefile only optionally includes makeopts so when goals like uninstall that
      dont depend on anything else are run after a distclean, rules like
      'rm -f "$(DESTDIR)$(ASTMODDIR)/"*' get run as 'rm -f ""/*' which attempts
      to remove everything in the root directory.
      
      Although there's a rule defined for makeopts which prints a message and does
      an 'exit 1', since '-include makepopts' was specified (with the -), the exit
      was ignored letting the rest of the rules run.
      
      This patch makes makeopts required unless the goal has the string 'clean' in it.
      
      ASTERISK-25730 #close
      Reported-by: George Joseph
      
      Change-Id: I1bce59a7ea4f48e7a468e22b2abbb13c63417ac7
      c53903d4
  10. Jan 21, 2016
  11. Nov 04, 2015
    • Corey Farrell's avatar
      Fix cli display of build options. · b0bf1899
      Corey Farrell authored
      A previous commit reduced the AST_BUILDOPTS compiler define to
      only include options that affected ABI.  This included some options
      that were previously displayed by cli "core show settings".  This
      change corrects the CLI display while still restricting buildopts.h
      to ABI effecting options only.
      
      ASTERISK-25434 #close
      Reported by: Rusty Newton
      
      Change-Id: Id07af6bedd1d7d325878023e403fbd9d3607e325
      b0bf1899
  12. Oct 31, 2015
    • Matt Jordan's avatar
      Makefile: Add a rule 'basic-pbx' that installs the Basic PBX configs · 80cf4960
      Matt Jordan authored
      This patch adds a rule for installing the Super Awesome Company based 'Basic
      PBX' configuration files. As part of adding this rule, a bit of the content
      that makes up installing the configuration files under the 'samples' target
      was refactored into a make subroutine for usage by additional later config
      make targets.
      
      Change-Id: I6c2e27906f73e2919a2b691da0be20ae70302404
      80cf4960
  13. Sep 25, 2015
  14. Jun 05, 2015
    • David M. Lee's avatar
      Fixes for OS X · 9fca378b
      David M. Lee authored
       * Add some type casting so tv_usec can really be a long, instead of
         some strange platform specific type.
      
       * Add some .dylib style files to .gitignore.
      
       * Switch from using -Xlinker to -Wl,. For [reasons unknown][], newer
         versions of GCC, when compiling the Homebrew formula for Asterisk,
         are not properly passing the -Xlinker options to the linker. Given
         that -Wl, does exactly the [same thing][], and does it properly, this
         patch changes the -Xlinker options to use -Wl, instead.
      
       [reasons unknown]: http://bit.ly/1SUbEYx
       [same thing]: https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
      
      Change-Id: Id5e6b3c6cc86282ea5fca630dc3991137c5bf4dd
      9fca378b
  15. May 12, 2015
  16. May 08, 2015
    • George Joseph's avatar
      doc: Make progdocs play nice with git · cf637f25
      George Joseph authored
      Moved contrib/asterisk-ng-doxygen to doc/asterisk-ng-doxygen.in
      
      Changed /Makefile to copy asterisk-ng-doxygen.in to
      asterisk-ng-doxygen then modify it with version instead of
      modifying asterisk-ng-doxygen directly.  Updated clean
      targets as well.
      
      Updated /.gitignore and doc/.gitignore.
      
      Change-Id: I38712d3e334fa4baec19d30d05de8c6f28137622
      cf637f25
  17. Apr 29, 2015
    • Corey Farrell's avatar
      Git Migration: Create doc/rest-api when needed. · c232ff3a
      Corey Farrell authored
      Create the directory './doc/rest-api' at the start of 'make ari-stubs'
      to prevent an error when documentation is generated.  The directory is
      also added to git ignores.
      
      ASTERISK-25027
      Reported by: Corey Farrell
      
      Change-Id: Iaccc7f0138501c23aa78feaca2f3cce9e68cbc1b
      c232ff3a
  18. Apr 15, 2015
    • Corey Farrell's avatar
      Build System: Enable use of ~/.asterisk.makeopts and /etc/asterisk.makeopts. · abf10a1d
      Corey Farrell authored
      The Makefile claims that you can set default menuselect options by creating
      ~/.asterisk.makeopts or /etc/asterisk.makeopts, but they are never read.
      The rule for menuselect.makeopts is only allowed to run if the active target
      is 'menuselect', but the menuselect target doesn't depend on
      menuselect.makeopts.  A dot (wildcard character) was added so the rule will
      be active for the targets that cause it to run: nmenuselect, cmenuselect,
      and gmenuselect.
      
      ASTERISK-13271 #close
      Reported by: John Nemeth
      
      Change-Id: Ibde804ff196283def49ccb9432fbf224a22586e2
      abf10a1d
  19. Mar 12, 2015
  20. Oct 31, 2014
  21. Oct 19, 2014
  22. Oct 12, 2014
  23. Sep 18, 2014
  24. Jul 17, 2014
  25. Jul 03, 2014
  26. Jun 22, 2014
  27. Jun 12, 2014
  28. Feb 16, 2014
  29. Feb 14, 2014
  30. Dec 11, 2013
  31. Oct 18, 2013
  32. Oct 02, 2013
  33. Sep 03, 2013
  34. Aug 29, 2013
  35. Aug 01, 2013
  36. Jul 21, 2013
    • Matthew Jordan's avatar
      Always install safe_asterisk; add configuration file support · 54803338
      Matthew Jordan authored
      This patch modifies the behavior of safe_asterisk in two ways:
      (1) It modifies the Asterisk Makefile such that safe_asterisk is always
          installed on a 'make install'. This was done as bugfixes in the
          safe_asterisk script were not applied in previous version of Asterisk
          without first removing the old version of the script.
      (2) In order to keep a newly installed version of safe_asterisk from impacting
          local modifications, a new config file - safe_asterisk.conf.sample - has
          been provided. Settings that were previously modified in safe_asterisk can
          be set there instead.
      
      (closes issue ASTERISK-21965)
      Reported by: Jeremy Kister
      patches:
        safe_asterisk.patch uploaded by jkister (License 6232)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      54803338
  37. Jul 03, 2013
Loading