* Restore settings and options * Clean code and windows.yml * Gui improvment * Fixed wrong value maxicam * Change GUI TRC and Log encoding and sigmoid * Clean code locallabtools2 * Fomat locallabtools2 * New calcualtion gray when using Q * Improve sigmoid Q with meanQ * Change labels and tooltip * Change DR with log * Change location GUI TRC * Change GUI sigmoid hide - show * Fixed bug with trc * Added whites to TRC & whites * Small modification whites - comment code * Change GUI and selection for sigmoid and log encoding Q * Change yml worksflow * Added cat to workingtrc rtthumbnail * Delete entries in defualt languages * Blacks and whites distribution * Change tooltips * Fixed some issues * Change GUI hide to set_sensitive * first step white and black log encoding * GUI Labels - tooltips * Compress brightness log encoding * Change compression threshold * Clean procparams * Improve GUI and threshold compression * Improvment GUI and tooltips * First step primaries cam16 * Primaries loc step 2 * Primaries loc step 3 * jdcmax primaries - format iplab2rgb * Improve GUI * Beta RGB primaries and message * Change tooltips * Change order prim * CIExy diagram step 1 * CIExy step 2 * CIExy step 2 * CIExy diagram step 4 * CIExy diagram step 5 * Change improccordinator and locallabtool2s listener * Forgoten delete in improccordinator * Disable setListener * Improve GUI and behavior TRC and Primaries * TRC primaries - illuminant step 1 * TRC primaries - illuminant step 2 * TRC primaries - illuminant step 3 * TRC primaries - illuminant step 4 * Gamut control - remove old listener and added listener locallabcieLC * publish pre dev labels windows appimage * publish pre dev labels windows appimage [] * Move log encoding cie - step 1 * Step 2 * Move Log encoding CIE and improve GUI step 3 * Pre Ciecam midtones step 1 * Mid tones step 2 and tooltips * Forgoten label and tooltips * Improve tooltips - and change yml files * Include repository in appimage and windows.yml - change labels * Forgotten surroundcie in procparams.cc * Improve GUI with expander - clean code * Change tooltip * Clean locallabtools2 - improve Jpro * Bypass Ciecam step 1 * step 2 * Step 3 * Change settings - improve GUI * Clean code * Improve sigmoid cam16 * Improve sigmoid cam16 * Added illuminant E to illmethod * Change iccmatrices * Working profile JDCmax stdA and Abstract Profile * Pre-ciecam JDCmax stdA * Abstract profile - cat method step 1 * Step 3 * Step 4 and various changes * Enable default gamutcontrol - improve GUI * Refine color pre-ciecam * Step 2 * step 3 * Step - 4 * Refine colors Abstract profiles * Expander true Abstract Profile * Clean and comment code * Tooltip pre-ciecam * Change tooltips * Improve GUI free primaries * Labgrid dominant color * Shift dominant color step 1 * Shift xy dominant color * History msg shift * Fixed various bad behavior - change scalrefi * Improve behavior DR vs deltaE - log encoding and pre-ciecam * Limited reduce deltaE to 1 - comment code * Improve behavior TIF/JPG * Forgotten code * Various small changes to refinement color pre-ciecam * Foramt iplab2rgb and simpleprocees - small change meanx meany * Bad behavior with simpleprocess abstract profile and pre-ciecam * Re-enable code for simpleprocess * Iprove iplab2rgb * Improve GUI if selection Jz * provis with precision * Chnage GUI log encoding basic - improve shiftxl shiftyl pre-ciecam * Improve GUI with expanders * Change location pre-ciecam expander * Change label tooltip pre-ciecam * Improve white distribution and equalizer * Bad behavior Source data adjustments * Comment code * Improve Dynamic Range Compression - for some images with very high DR * Clean code * Improve TM fattal with saturation control in LA * saturation control fattal LA * RE-order paramsedit * Change local contrast in LA - log encoding and Cam16 * LA settings avoidcolorshift XYZabsolute * Change GUI precision blackEv WhiteEv BlackEvjz WhiteEvjz * Check button smoothcie - smooth highlights * Change order midtones - log encoding - other method smooth * Change maximum gamma in TRC cam16 * Change maximum slope in TRC cam16 * refine smooth highlights * Small improvment - comment code * Bad behavior - black screen - in Cam16 * setLogscale for slopjcie * Change source data GUI - PQ and other DR functions * PQ mode advanced - adjustments and tooltip * Comment and clean code * Simplified GUI in Basic mode - Source Data Adjustments * Added primaries to source date adjustements - fix basic problem * GUI graduaded filter cie cam16 * Graduated filter - LA Color appearance * More illuminant cam16 - D120 - Tungsten 2000K - Tungsten 1500K * Abstract profile ICM - shift x - shift y * Frame color dominant Abstract profile * Frame color dominant Abstract profile * Illuminant E - abstract profile * Abstact profile - midtones * Abstrcat profile - smooth highlights checkbutton * Abstract Profile - Smooth highligts rtengine * Bad behavior LA gamut - re-enabled Munsell in settings * adapts Abstract profile and auto-match tone curve * Change chromaticity curve c(h) - ppversion 351 and procparams * icmpanel fixed bad wmidtcie * Change in procparams assignfromkeyfile color Management * Remove message in console * Missing code procparams.cc wcat * Clean message in console * Disable ppversion 351 - surround extremely dark * Choice surround scene Disable ciecam * Improve GUI for surround Disable Ciecam * Small change gamutcontrol - message g0..g5 verbose * Remove gautcontrol on limits * Strength log encoding - Source data adjustments * Fixed genral bug in lacam16n - bad behavior color * Checkbutton saturation control - Cam16 log encoding * Change default saturation controle log encoding - false * GUI LA Log encoding - Strength - saturation control - part 1 * Checkbox saturation control LA Log encoding * Change repartition GUI brightnees - hue - chroma * Hide primaries and illuminant in standard mode * Merge with dev 2 * reduces sigmoid Q contrast * Provisory disable Sigmoid Q * Re-enable sigmoid function complexity mode * Re-enable log encoding Q - with Ciecam * GUI improvments - small code improvments * Change tooltip * Simplify GUI mode Basic - Standard - added tooltip * Change tooltip - LA settings - Avoid color shift * hope to fix the bug between Jz and Cam16 * Another change for Jz - format astyle locallabtool2.cc * Clean code GUI - remove Zcam * Change label in Recovery based on luminance mask * Reduces minimum spot size from 2 to 1.5 * Improve behavior GUI with Jzczhz * Clean code iplocallab.cc * Small improvement ciecam02.cc * Fixed bad behvior GUI and code between Cam16 and Jzczhz * Improve Jz and surround effects * Improve Jz and Local contrast Cam16 & Jz taking account surround * Disable local contrast if cam16 and not ciecam surround * Restore epsil 0.001 loccont * Improve local contrast when surround low and Jz * Clean code locallabtool2 - weakened a little Local Contrast in connection with surround * Remove Laplacian threshold in Cam16 and JzCzHz mask * Simplify Mask for JzCzHz * Enable choice complexity mask in mode advanced * Solved bad behavior GUI masks * Optimize GUI mask Jz and cam16 * Change 3 icon .png without png * Remove wrong message in console without problem * Remove warning with & in some tooltips and TP_WBALANCE_AUTO_HEADER * Smoothcie Method GUI * Replace checkbutton smooth highlight bya combobox * Improve behavior GUI - CIECAM - advanced - tempout and greenout * Fixed - I hope - crash when delete spot and cam16 * Clean code with maxcam and dependencies * Added Smooth highlight rolloff or not * Improve smooth lights - gamma mode only - standard and advanced - gray balance * Improve Smoothing lights - take into account the 2 Yb * Change tooltip * Chnage wrong lable scope => slope * Clean and comment code * Reduces the effect of - Smoothing light -Ev mode - Small change range Slope * Scale Yb scene white whiteEv * Hide Scale in some GUI cases * Clean comment code Smotth and TM function * Change GUI - Smooth highlights and tone mapping - allows also Basic * Change labels * Change tooltip * Remove arrow.cur in windows.yml as suggested by Lawrence37 * Reverse last changes * Change limits slope based in SDA * Clean locallabtools2.cc * Set minimum slope based to 0.6 * Change label highlight * Change listener scene parameters to GUI * Clean code sine changes listener * Limits Blackev Whiteev values in slope base to avoid crash * Change a little limits BlackEv WhiteEv * Small changes in console - remove warnings * Change XYZ relative - avoid color shift * Improve gamutmap * re build gamutmap
265 lines
10 KiB
YAML
265 lines
10 KiB
YAML
name: AppImage Build
|
|
on:
|
|
push:
|
|
branches:
|
|
- dev
|
|
- releases
|
|
- 'release-[0-9]+.*'
|
|
tags:
|
|
- '[0-9]+.*'
|
|
pull_request:
|
|
branches:
|
|
- dev
|
|
- releases
|
|
- 'release-[0-9]+.*'
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
publish_pre_dev_labels: '["Beep6581:lacam16n2"]'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [release, debug]
|
|
steps:
|
|
- name: Checkout source
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
echo "Running apt update."
|
|
sudo apt update
|
|
echo "Installing dependencies with apt."
|
|
DEBIAN_FRONTEND=noninteractive sudo apt install -y cmake libgtk-3-dev libgtkmm-3.0-dev liblensfun-dev librsvg2-dev liblcms2-dev libfftw3-dev libiptcdata0-dev libtiff5-dev libcanberra-gtk3-dev liblensfun-bin libexpat1-dev libbrotli-dev zlib1g-dev libinih-dev adwaita-icon-theme-full
|
|
|
|
- name: Install Exiv2
|
|
run: |
|
|
EXIV2_VERSION='v0.28.1'
|
|
echo "Cloning Exiv2 $EXIV2_VERSION."
|
|
git clone --depth 1 --branch "$EXIV2_VERSION" https://github.com/Exiv2/exiv2.git ext/exiv2
|
|
|
|
echo "Configuring build."
|
|
mkdir ext/exiv2/build
|
|
cd ext/exiv2/build
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_BMFF=ON ..
|
|
|
|
echo "Building and installing."
|
|
sudo make -j$(nproc) install
|
|
|
|
- name: Install Librsvg required min. version
|
|
# Required min. version is not available for Ubuntu 20.04 LTS (but is for 22.04 LTS) so needs to be built manually
|
|
run: |
|
|
LIBRSVG2_VERSION='2.52.2'
|
|
echo "Cloning Librsvg2 $LIBRSVG2_VERSION."
|
|
git clone --depth 1 --branch "$LIBRSVG2_VERSION" https://gitlab.gnome.org/GNOME/librsvg.git ext/librsvg2
|
|
|
|
echo "Installing required dependencies with apt."
|
|
DEBIAN_FRONTEND=noninteractive sudo apt install -y rustc cargo gtk-doc-tools libgirepository1.0-dev
|
|
|
|
echo "Updating PATH."
|
|
export PATH="$PATH:/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0"
|
|
|
|
echo "Configuring build."
|
|
cd ext/librsvg2
|
|
sh autogen.sh
|
|
|
|
echo "Building and installing."
|
|
sudo make install
|
|
|
|
- name: Configure build
|
|
run: |
|
|
export REF_NAME_FILTERED="$(echo '${{github.ref_name}}' | sed 's/[^A-z0-9_.-]//g')"
|
|
|
|
echo "Setting cache suffix."
|
|
if [ '${{github.ref_type}}' == 'tag' ]; then
|
|
export CACHE_SUFFIX=""
|
|
else
|
|
export CACHE_SUFFIX="5-$REF_NAME_FILTERED"
|
|
fi
|
|
export CACHE_SUFFIX="$CACHE_SUFFIX-AppImage"
|
|
echo "Cache suffix is '$CACHE_SUFFIX'."
|
|
|
|
echo "Making build directory."
|
|
mkdir build
|
|
echo "Changing working directory to the build directory."
|
|
cd build
|
|
|
|
echo "Running CMake configure."
|
|
cmake \
|
|
-DCMAKE_BUILD_TYPE='${{matrix.build_type}}' \
|
|
-DCACHE_NAME_SUFFIX="$CACHE_SUFFIX" \
|
|
-DPROC_TARGET_NUMBER="1" \
|
|
-DBUILD_BUNDLE="ON" \
|
|
-DBUNDLE_BASE_INSTALL_DIR="/" \
|
|
-DOPTION_OMP="ON" \
|
|
-DWITH_LTO="OFF" \
|
|
-DWITH_PROF="OFF" \
|
|
-DWITH_SAN="OFF" \
|
|
-DWITH_SYSTEM_KLT="OFF" \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DLENSFUNDBDIR="../share/lensfun/version_1" \
|
|
..
|
|
|
|
echo "Recording filtered ref name."
|
|
echo "REF_NAME_FILTERED=$REF_NAME_FILTERED" >> $GITHUB_ENV
|
|
|
|
- name: Build RawTherapee
|
|
working-directory: ./build
|
|
run: |
|
|
echo "Running make install."
|
|
make -j$(nproc) install DESTDIR=AppDir/usr/bin
|
|
echo "Moving usr/bin/share to usr/share."
|
|
mv AppDir/usr/bin/share AppDir/usr/
|
|
|
|
- name: Include Lensfun
|
|
run: |
|
|
echo "Patching lensfun-update-data script."
|
|
sudo sed -i 's/HTTPError\(, ValueError\)/URLError\1/' $(which lensfun-update-data)
|
|
echo "Updating Lensfun database."
|
|
lensfun-update-data
|
|
echo "Creating Lensfun directory in the build directory."
|
|
mkdir -p build/AppDir/usr/share/lensfun
|
|
echo "Copying Lensfun database to the build directory."
|
|
cp -R ~/.local/share/lensfun/updates/* build/AppDir/usr/share/lensfun/
|
|
|
|
- name: Include Adwaita icon theme (partial)
|
|
run: |
|
|
mkdir build/AppDir/usr/bin/icons/Adwaita
|
|
icons_dir=('actions' 'devices' 'mimetypes' 'places' 'status' 'ui' 'devices')
|
|
for dir in "${icons_dir[@]}"; do
|
|
find_res=$(find /usr/share/icons/Adwaita -name "${dir}" -type d)
|
|
if [ -z "$find_res" ]
|
|
then
|
|
echo "-Warning: Icons folder '"${dir}"' not found in Adwaita theme."
|
|
else
|
|
new_dir=($(echo "$find_res" | awk -F/ '{print $(NF-1)"/"$NF}'))
|
|
for d in "${new_dir[@]}"; do
|
|
echo "-Copying '"${d}"' into 'AppDir/usr/bin/icons/Adwaita'."
|
|
mkdir -p "build/AppDir/usr/bin/icons/Adwaita/${d}"
|
|
cp -R "/usr/share/icons/Adwaita/${d}/." "build/AppDir/usr/bin/icons/Adwaita/${d}"
|
|
done
|
|
fi
|
|
done
|
|
echo "-Copying 'index.theme' into 'AppDir/usr/bin/icons/Adwaita'."
|
|
cp /usr/share/icons/Adwaita/index.theme build/AppDir/usr/bin/icons/Adwaita
|
|
|
|
- name: Restore AppImage tools from cache
|
|
id: appimage-tools-cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
key: appimage-tools-1
|
|
path: |
|
|
./build/linuxdeploy-x86_64.AppImage
|
|
./build/linuxdeploy-plugin-gtk.sh
|
|
|
|
- name: Download AppImage tools
|
|
if: ${{steps.appimage-tools-cache.outputs.cache-hit != 'true'}}
|
|
working-directory: ./build
|
|
run: |
|
|
echo "Downloading linuxdeploy."
|
|
curl --location 'https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage' > linuxdeploy-x86_64.AppImage
|
|
echo "Downloading GTK plugin for linuxdeploy."
|
|
curl --location 'https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh' \
|
|
| sed 's/^\(export GTK_THEME\)/#\1/' \
|
|
> linuxdeploy-plugin-gtk.sh
|
|
echo "Setting execute bit on all AppImage tools."
|
|
chmod u+x linuxdeploy-*
|
|
|
|
- name: Package AppImage
|
|
working-directory: ./build
|
|
run: |
|
|
echo "LD_LIBRARY_PATH is '$LD_LIBRARY_PATH'. Adding /usr/local/lib."
|
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
|
|
|
|
echo "Creating artifact name."
|
|
if [ '${{github.ref_type}}' == 'tag' ]; then
|
|
ARTIFACT_NAME="RawTherapee_${REF_NAME_FILTERED}_${{matrix.build_type}}"
|
|
else
|
|
echo "Getting RawTherapee version."
|
|
export VERSION="$(grep -m 1 '^Version: .*$' 'AboutThisBuild.txt' | sed 's/^Version: \(.\+\)$/\1/')"
|
|
echo "Version is '$VERSION'."
|
|
FILTERED_VERSION="$(echo "$VERSION" | sed 's/[^A-z0-9_.-]//g')"
|
|
ARTIFACT_NAME="RawTherapee_${REF_NAME_FILTERED}_${FILTERED_VERSION}_${{matrix.build_type}}"
|
|
fi
|
|
echo "Artifact name is '$ARTIFACT_NAME'."
|
|
|
|
echo "Generating AppImage file name."
|
|
export OUTPUT="$ARTIFACT_NAME.AppImage"
|
|
echo "AppImage file name will be '$OUTPUT'."
|
|
|
|
echo "Packaging AppImage."
|
|
./linuxdeploy-x86_64.AppImage \
|
|
--appimage-extract-and-run \
|
|
--appdir AppDir \
|
|
--plugin gtk \
|
|
--output appimage
|
|
|
|
echo "Recording artifact name."
|
|
echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{env.ARTIFACT_NAME}}.AppImage
|
|
path: ${{github.workspace}}/build/${{env.ARTIFACT_NAME}}.AppImage
|
|
|
|
- name: Prepare for publishing
|
|
if: ${{github.ref_type == 'tag' || github.ref_name == 'dev'}}
|
|
run: |
|
|
echo "Setting publish name."
|
|
PUBLISH_NAME="RawTherapee_${REF_NAME_FILTERED}_${{matrix.build_type}}"
|
|
echo "Publish name is '$PUBLISH_NAME'."
|
|
|
|
echo "Renaming AppImage."
|
|
cp "build/$ARTIFACT_NAME.AppImage" "$PUBLISH_NAME.AppImage"
|
|
|
|
echo "Creating version file."
|
|
cp "build/AboutThisBuild.txt" "$PUBLISH_NAME-AboutThisBuild.txt"
|
|
|
|
echo "Recording publish name."
|
|
echo "PUBLISH_NAME=$PUBLISH_NAME" >> $GITHUB_ENV
|
|
|
|
- name: Publish artifacts
|
|
uses: softprops/action-gh-release@v1
|
|
if: ${{github.ref_type == 'tag' || github.ref_name == 'dev'}}
|
|
with:
|
|
tag_name: nightly-github-actions
|
|
files: |
|
|
${{env.PUBLISH_NAME}}.AppImage
|
|
${{env.PUBLISH_NAME}}-AboutThisBuild.txt
|
|
|
|
- name: Prepare for publishing pre-dev
|
|
id: prepare-publish-pre-dev
|
|
if: ${{github.event_name == 'pull_request' && contains(fromJSON(env.publish_pre_dev_labels), github.event.pull_request.head.label)}}
|
|
run: |
|
|
echo "Making ref name."
|
|
REF_NAME_FILTERED="$(echo '${{github.event.pull_request.head.label}}' | tr ':' '_' | sed 's/[^A-z0-9_.-]//g')"
|
|
echo "Ref name is '$REF_NAME_FILTERED'."
|
|
|
|
echo "Setting publish name."
|
|
PUBLISH_NAME="RawTherapee_${REF_NAME_FILTERED}_${{matrix.build_type}}"
|
|
echo "Publish name is '$PUBLISH_NAME'."
|
|
|
|
echo "Renaming AppImage."
|
|
cp "build/$ARTIFACT_NAME.AppImage" "$PUBLISH_NAME.AppImage"
|
|
|
|
echo "Creating version file."
|
|
cp "build/AboutThisBuild.txt" "$PUBLISH_NAME-AppImage-AboutThisBuild.txt"
|
|
|
|
echo "Recording publish name."
|
|
echo "PUBLISH_NAME=$PUBLISH_NAME" >> $GITHUB_ENV
|
|
|
|
- name: Publish pre-dev artifacts
|
|
uses: softprops/action-gh-release@v1
|
|
if: ${{steps.prepare-publish-pre-dev.outcome == 'success'}}
|
|
with:
|
|
tag_name: pre-dev-github-actions
|
|
files: |
|
|
${{env.PUBLISH_NAME}}.AppImage
|
|
${{env.PUBLISH_NAME}}-AppImage-AboutThisBuild.txt
|