author Gregory Szorc <>
Wed, 28 Jan 2015 13:37:00 -0800
changeset 120289 8033c2e38381d2832d66906e3d03126189c703d5
parent 103408 5508eb7bd2635cf52e5fe95ee488f6e80ee19681
child 117745 767c77596873c05db841082e1967489f8b05cd12
permissions -rw-r--r--
Close old release branch MOBILE180_2012123109_RELBRANCH

To upgrade to a new revision of libjpeg-turbo, do the following:

* Check out libjpeg-turbo from SVN:

    $ svn co libjpeg-turbo

* In a clean clone of mozilla-central, run the following commands

    $ rm -rf media/libjpeg
    $ svn export --ignore-externals /path/to/libjpeg-turbo media/libjpeg
    $ cd media/libjpeg

* Copy win/ to simd/.

* Since libjpeg-turbo normally creates config.h and jconfig.h at build time and
  we use pre-generated versions, changes to and win/
  should be looked for and noted for later inclusion.

* Now look through the new files and rm any which are npotb.  When I upgraded
  to libjpeg-turbo 1.1.0, the only files I kept which didn't match

    *.c  *.h *.asm *.inc

  were README and README-turbo.

  You can easily look for all non *.c, *.h, *.asm, and *.inc files by running

    $ hg status -nu | grep -v '\(c\|h\|asm\|inc\)$'

  Once you're comfortable that you're only deleting files you want to delete
  (and you've hg add'ed the files you want to keep), you can nuke the remaining
  files with

    $ hg status -nu | grep -v '\(c\|h\|asm\|inc\)$' | xargs rm

  A helpful command for finding the *.c files which aren't *currently* part of
  the build is

    diff <(ls *.c | sort) <(grep -o '\w*\.c' | sort)

  Of course, libjpeg-turbo might have added some new source files, so you'll
  have to look though and figure out which of these files to keep.

* Restore files modified in the Mozilla repository.

    $ hg revert --no-backup config.h jconfig.h MOZCHANGES \
      mozilla.diff simd/

* Update config.h and jconfig.h as noted previously.

* Apply Mozilla-specific changes to upstream files.

    $ patch -p0 -i mozilla.diff

* Update to build any new files.

* Finally, tell hg that we've added or removed some files:

    $ hg addremove

== July 4, 2012 (libjpeg-turbo v1.2.1 r853 2012-06-30) ==

* Updated to v1.2.1 stable release.

== June 5, 2012 (libjpeg-turbo v1.2.x branch, r831 2012-05-30) ==

* Updated to latest version on v1.2.x branch (bug 759891).

== February 10, 2012 (libjpeg-turbo v1.2.0 r807 2012-02-10) ==

* Imported jchuff.c, jdhuff.c, jdhuff.h under new licensing.

* Created mozilla.diff for the required jmorecfg.h changes and to allow for any
  future changes made by Mozilla to upstream files.

* Removed the following files which are unused by the Mozilla build:

    cderror.h, cdjpeg.h,, transupp.h, simd/

== March 28, 2011 (initial commit, libjpeg-turbo v1.1.0 r469 2011-02-27) ==

* Modified jmorecfg.h to define UINT8, UINT16, INT16, and INT32 in terms of
  prtypes to fix a build error on Windows.

* Defined INLINE as NS_ALWAYS_INLINE in jconfig.h.

* Removed the following files which are licensed under the wxWindows license:

    bmp.c, bmp.h, jpegut.c, jpgtest.cxx, rrtimer.h, rrutil.h, turbojpeg.h,

* Reverted the following files to what was previously in Mozilla's tree
  (nominally libjpeg 6.2):

    jchuff.c, jdhuff.c, jdhuff.h

  since the versions of these files in libjpeg-turbo are also under the
  wxWindows license.  (It would have been nicer to revert them to the new
  libjpeg-8b code, but that doesn't easily integrate with libjpeg-turbo.)