# Blender legacy

Keeping Blender 2.79b up-to-date with modern compiler and libs,
stability/security/performance -improvements are also welcome.

Start point:

 - `https://download.blender.org/source/blender-2.79b.tar.gz`
 - `https://web.archive.org/web/20230405025010/https://download.blender.org/source/blender-2.79b.tar.gz`

```
sha512sum blender-2.79b.tar.gz 
2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f  blender-2.79b.tar.gz
```

## Why

 - On older hardware (2008 era) Blender 2.79b runs much smoother (or even at
   all) then newer versions.
 - When you prefer the old GUI over the new one.
 - When you don't need all those fancy new features Blender >=2.8 has.

## Progress

### Libs

| Library     | Version | Builds | Comment
| ----------- | ------- | ------ | -----------------------------------------
| FFmpeg      | 6       | No     | Build with `WITH_CODEC_FFMPEG=OFF` to
|             |         |        | build without FFmpeg support, to ignore
|             |         |        | FFmpeg build issues (for developers).
| Python      | 3.12    | No     |
| OpenCollada | 1.6.68  | No     |
| OpenColorIO | 2.2     | No     | For now use OpenColorIO 1.1 or build
|             |         |        | with `WITH_OPENCOLORIO=OFF`.
| OpenEXR     | 3       | No     | 
| OpenImageIO | 2.4     | No     |
| OpenVDB     | 11      | No     |

### Compiler

| Compiler    | Version | Builds | Comment
| ----------- | ------- | ------ | -----------------------------------------
| GCC         | 13      | No     | 

## Contributions

Help is more then welcome! Please open an issue first so we can prevent double
work.

## Development hints/notes

### Notable Blender commits

  - Mon Apr 16 12:07:42 2018 +0000

        159806140fd33e6ddab951c0f6f180cfbf927d38
        "Removing Blender Game Engine from Blender 2.8"

  - Mon Apr 16 13:54:36 2018 +0000

        28b996a9d2090efdd74115a653629ef9d7d871f7
        "Disable GAME ENGINE from the build options"

  - Thu Apr 19 15:34:44 2018 +0000

        51b796ff1528c52cc8b4079fab1003671652a4d9
        "Remove Blender Internal and legacy viewport from Blender 2.8."

### Search Blender git commits

Adjust the below commands as needed.

Prepare (clone the Blender git repo and cd into it):
```
mkdir ~/git
cd ~/git
git clone https://projects.blender.org/blender/blender.git
cd blender
```

The `v2.79b` tag commit is `f4dc9f9d68bddaa206b692e1d077d1a1f2bb1528`.

#### Commits between tag 2.79b and one year later
```bash
git log --after="22-03-2018 14:00" --before="22-03-2019 14:00"
```

#### Commits between tag 2.79b and one year later on specific file or dir
```bash
git log --after="22-03-2018 14:00" --before="22-03-2019 14:00" --follow -- source/blender/imbuf/intern/oiio/openimageio_api.cpp
```

#### Commits with specific string in it

Multiple examples, adjust any of these to your needs. The `--grep` string is
case insensitive.

```bash
git log --after="22-03-2018 14:00" --oneline --grep OCIO
git log --after="22-03-2018 14:00" --oneline --grep OpenColorIO
git log --after="22-03-2018 14:00" --oneline --grep OIIO
git log --after="22-03-2018 14:00" --oneline --grep OpenImageIO
git log --after="22-03-2018 14:00" --oneline --grep FFmpeg
git log --after="22-03-2018 14:00" --oneline --grep Python
```

#### Show a commit

 - adjust `f4dc9f9d68bddaa206b692e1d077d1a1f2bb1528` to your needs.

```bash
git show f4dc9f9d68bddaa206b692e1d077d1a1f2bb1528
```

#### Create patch from a commit (and the previous commit)

 - adjust `my.patch` to your needs.
 - adjust `1e6108e97246fe544e39d5a6d9fb907847fd907b` to your needs.

```bash
git format-patch --output=my.patch -1 1e6108e97246fe544e39d5a6d9fb907847fd907b
```

### FFmpeg resources

 - https://ffmpeg.org/documentation.html
 - https://ffmpeg.org/doxygen/4.4/deprecated.html
 - https://ffmpeg.org/doxygen/5.1/deprecated.html
 - https://ffmpeg.org/doxygen/6.0/deprecated.html

### OpenColorIO resources

 - https://opencolorio.readthedocs.io/en/latest/releases/ocio_2_0.html
 - https://opencolorio.readthedocs.io/en/latest/releases/ocio_2_1.html
 - https://opencolorio.readthedocs.io/en/latest/releases/ocio_2_2.html
 - https://opencolorio.readthedocs.io/en/latest/releases/ocio_2_3.html
 - https://projects.blender.org/blender/blender/issues/85940

### OpenImageIO resources

 - https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/master/CHANGES.md
 - https://openimageio.readthedocs.io/en/latest/oiiointro.html

### Python resources

 - https://docs.python.org/3/whatsnew/3.7.html
 - https://docs.python.org/3/whatsnew/3.8.html
 - https://docs.python.org/3/whatsnew/3.9.html
 - https://docs.python.org/3/whatsnew/3.10.html
 - https://docs.python.org/3/whatsnew/3.11.html
 - https://docs.python.org/3/whatsnew/3.12.html
