Skip to content

Commit

Permalink
Merge branch 'dev-2.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
callaa committed Feb 13, 2019
2 parents 010c946 + 2912015 commit 6ed71f3
Show file tree
Hide file tree
Showing 323 changed files with 24,322 additions and 11,563 deletions.
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ set(CMAKE_AUTOMOC ON)

### generic info
set ( WEBSITE "https://drawpile.net/" )
set ( DRAWPILE_VERSION "2.0.11" )
set ( DRAWPILE_VERSION "2.1.0" )

### protocol versions
# see doc/protocol.md for protocol version history
set ( DRAWPILE_PROTO_SERVER_VERSION 4 )
set ( DRAWPILE_PROTO_MAJOR_VERSION 20 )
set ( DRAWPILE_PROTO_MINOR_VERSION 1 )
set ( DRAWPILE_PROTO_MAJOR_VERSION 21 )
set ( DRAWPILE_PROTO_MINOR_VERSION 2 )
set ( DRAWPILE_PROTO_DEFAULT_PORT 27750 )

###
Expand Down
29 changes: 29 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
2019-02-13 Version 2.1.0
* Changed internal pixel format to premultiplied 32 bit RGBA
* Added PutTile command and optimized layer initialization
* dprectool: added --msg-freq option
* Protocol change: replaced ToolChange and PenMove with DrawDabs commands
* Replaced "background layer" concept with a tiled canvas background. (Mostly compatible with MyPaint)
* Redesigned user list box and chat panel
* Autoreset threshold is now adjustable and includes reset image as base size
* Individual layers can now be censored
* Merged "Find sessions" dialog into the "Join" dialog
* Simplified "Host" dialog
* Redesigned "Login" dialog
* Moved layer hamburger menu to the main menu bar (and expanded it)
* Added support for user avatars
* Added controls for flipping, rotating and zooming to the navigator dock
* New user level: Trusted users
* Added tiered feature access controls (guest/registered/trusted/operator)
* Added zoom and rotation controls to navigator
* Removed sliders from status bar
* Added zoom tool
* Added zoom/rotation/flip toolbar
* Show keyboard shortcuts in toolbar tooltips
* Replaced recording status icon with toolbar button
* Replaced "new chat message" status icon with toolbar button (red dot indicates new message)
* Added template export feature
* Added square pixel brush
* Replaced Ffmpeg video export with native WebM export
* Added private messaging feature

2018-08-14 Version 2.0.11
* Server: fixed OP status auto-restoration for users who used the "become operator" feature
* Server AppImage: updated libmicrohttpd to version 0.9.59
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Client specific dependencies:
* KF5 KDNSSD (optional: local server discovery with Zeroconf)
* GIFLIB (optional: animated GIF export)
* MiniUPnP (optional: automatic port forwarding setup)
* LibVPX (optional: WebM video export)

Server specific dependencies (you can also take a look at [Docker build](server/docker/Dockerfile) script):

Expand Down
19 changes: 19 additions & 0 deletions config/FindVpx.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Try to find libvpx
#
# This will define
# LIBVPX_FOUND
# LIBVPX_INCLUDE_DIRS
# LIBVPX_LIBRARIES

find_path(LIBVPX_INCLUDE_DIR vpx_encoder.h
PATH_SUFFIXES vpx)
find_library(LIBVPX_LIBRARY NAMES vpx)

set(LIBVPX_INCLUDE_DIRS ${LIBVPX_INCLUDE_DIR})
set(LIBVPX_LIBRARIES ${LIBVPX_LIBRARY})

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(libvpx DEFAULT_MSG LIBVPX_LIBRARY LIBVPX_INCLUDE_DIR)

mark_as_advanced(LIBVPX_INCLUDE_DIR LIBVPX_LIBRARY)

4 changes: 2 additions & 2 deletions desktop/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ endif()

if( XDGMENU )
install(CODE "
execute_process(COMMAND ${XDGMENU} install --novendor ${CMAKE_CURRENT_SOURCE_DIR}/drawpile.desktop)
execute_process(COMMAND ${XDGMENU} install --novendor ${CMAKE_CURRENT_SOURCE_DIR}/net.drawpile.drawpile.desktop)
")
endif()

Expand All @@ -36,5 +36,5 @@ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/palettes" DESTINATION "${DATADIR}
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/sounds" DESTINATION "${DATADIR}")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/theme" DESTINATION "${DATADIR}")

install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/drawpile.appdata.xml" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/appdata/")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/net.drawpile.drawpile.appdata.xml" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/metainfo/")

Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<component type="desktop">
<id>drawpile.desktop</id>
<id>net.drawpile.drawpile</id>
<launchable type="desktop-id">net.drawpile.drawpile.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+</project_license>
<developer_name>Calle Laakkonen</developer_name>
<name>Drawpile</name>
<summary>Collaborative Drawing</summary>
<description>
<p>Drawpile is a drawing program that lets you share a canvas with other users in real time.</p>
<p>Feature highlights:</p>
Expand All @@ -16,16 +20,18 @@
<li>Discover drawing sessions via global announcement feature or locally with Zeroconf</li>
</ul>
</description>
<url type="homepage">http://drawpile.net/</url>
<url type="homepage">https://drawpile.net/</url>
<url type="bugtracker">https://github.com/callaa/Drawpile/issues</url>
<screenshots>
<screenshot type="default">
<image>http://drawpile.net/static/screenshots/screenshot2.png</image>
<image>https://drawpile.net/media/d/images/screenshot2.png</image>
</screenshot>
</screenshots>
<categories>
<category>Graphics</category>
</categories>
<provides>
<binary>drawpile</binary>
</provides>
<developer_name>Calle Laakkonen</developer_name>
</component>

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ MimeType=image/openraster;image/png;image/jpeg;application/x-drawpile-recording;
Type=Application
Icon=drawpile
StartupNotify=true
Categories=Graphics;Network;RasterGraphics;
Categories=Graphics;
Terminal=false

14 changes: 14 additions & 0 deletions desktop/theme/dark/zoom-select.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions desktop/theme/light/zoom-select.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 0 additions & 16 deletions doc/example.dptpl.txt

This file was deleted.

15 changes: 15 additions & 0 deletions doc/protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,21 @@ Protocol stability promises:
* New server features may be added at any time, but they should not break older clients,
nor should a missing feature break newer clients.

### Protocol dp:4.21.2 (2.1.0)

* Changed PutImage pixel format to ARGB32_Premultiplied
* Added PutTile command
* Removed ToolChange and PenMove commands
* Added DrawDabsClassic and DrawDabsPixel commands
* Added CanvasBackground command
* Added TrustedUsers command
* General session lock is now applied with the LayerACL command by using layer ID 0
* Removed "lock new users by default" feature
* Replaced SessionACL message with FeatureAccessLevels message
* Added sublayer field to LayerAttributes command
* Added flags field and "censored" flag to LayerAttributes command
* Added PrivateChat transparent meta message

### Protocol dp:4.20.1 (2.0.9)

* Added `Filtered` message type. Fully backward compatible.
Expand Down
3 changes: 3 additions & 0 deletions pkg/mac/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
deps/
build/

6 changes: 6 additions & 0 deletions pkg/mac/deps.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
91b7a9359f1bfe6f667a5a9c23f6b2178555df26ca2e4dd1bb5c38dc36c77144 *extra-cmake-modules.tar.xz
34a7377ba834397db019e8eb122e551a49c98f49df75ec3fcc92b9a794a4f6d1 *giflib.tar.gz
8f28ab8a8f7236ae5e9e6cf35263dbbb87a52ec938d35515f073bc33dbc33d90 *karchive.tar.xz
677ed3d572706cc896c1e05bb2f1fb1a6c50ffaa13d1c62de13e35eca1e85803 *kdnssd.tar.xz
e8577a6acf5a168b13fc6f64d829e8ea86e917bcddf75f452bd46c69d2a6445f *libvpx.zip
e19fb5e01ea5a707e2a8cb96f537fbd9f3a913d53d804a3265e3aeab3d2064c6 *miniupnpc.tar.gz
120 changes: 120 additions & 0 deletions pkg/mac/install-deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
#!/bin/bash

set -e

### VERSIONS TO DOWNLOAD
GIFLIB_URL=https://sourceforge.net/projects/giflib/files/giflib-5.1.4.tar.gz/download
MINIUPNPC_URL=http://miniupnp.free.fr/files/download.php?file=miniupnpc-2.1.tar.gz
LIBVPX_URL=https://github.com/webmproject/libvpx/archive/v1.8.0.zip
ECM_URL=https://download.kde.org/stable/frameworks/5.54/extra-cmake-modules-5.54.0.tar.xz
KARCHIVE_URL=https://download.kde.org/stable/frameworks/5.54/karchive-5.54.0.tar.xz
KDNSSD_URL=https://download.kde.org/stable/frameworks/5.54/kdnssd-5.54.0.tar.xz

### Build flags
export CFLAGS=-mmacosx-version-min=10.7
export CXXFLAGS=-mmacosx-version-min=10.7

### GENERIC FUNCTIONS
function download_package() {
URL="$1"
OUT="$2"

if [ -f "$OUT" ]
then
echo "$OUT already downloaded. Skipping..."
else
curl -L "$URL" -o "$OUT"
fi
}

function install_package() {
if [ -d $1-* ]; then
echo "Build directory for $1 already exists. Skipping..."
return
fi
if [ -f "$1.zip" ]; then
unzip -q "$1.zip"
elif [ -f "$1.tar.gz" ]; then
tar xfz "$1.tar.gz"
elif [ -f "$1.tar.xz" ]; then
tar xfJ "$1.tar.xz"
else
echo "BUG: Unhandled package archive format $1"
exit 1
fi
pushd $1-*
build_$2
popd
}

### PACKAGE SPECIFIC BUILD SCRIPTS
function build_autoconf() {
./configure "--prefix=$QTPATH"
make
make install
}

function build_autoconf_libvpx() {
./configure "--prefix=$QTPATH" --disable-vp8 --disable-vp9-decoder
make
make install
}

function build_justmakeinstall() {
INSTALLPREFIX="$QTPATH" make install
}

function build_cmake() {
mkdir build
cd build
cmake .. "-DCMAKE_PREFIX_PATH=$QTPATH" "-DCMAKE_INSTALL_PREFIX=$QTPATH"
make
make install
}

### MAIN SCRIPT STARTS HERE
if [ -z "$QTPATH" ]
then
echo "QTPATH environment variable not set"
exit 1
fi

if [ ! -d "$QTPATH" ]
then
echo "$QTPATH is not a directory!"
exit 1
fi

echo "Dependencies will be downloaded to $(pwd)/deps and installed to $QTPATH."
echo "Write 'ok' to continue"

read confirmation

if [ "$confirmation" != "ok" ]
then
echo "Cancelled."
exit 0
fi

mkdir -p deps
cd deps

# Download dependencies
download_package "$GIFLIB_URL" giflib.tar.gz
download_package "$MINIUPNPC_URL" miniupnpc.tar.gz
download_package "$LIBVPX_URL" libvpx.zip
download_package "$ECM_URL" extra-cmake-modules.tar.xz
download_package "$KARCHIVE_URL" karchive.tar.xz
download_package "$KDNSSD_URL" kdnssd.tar.xz

# Make sure we have the right versions (and they haven't been tampered with)
shasum -a 256 -c ../deps.sha256

# Build and install
install_package giflib autoconf
install_package miniupnpc justmakeinstall
install_package libvpx autoconf_libvpx
install_package extra-cmake-modules cmake
install_package karchive cmake
install_package kdnssd cmake

Loading

0 comments on commit 6ed71f3

Please sign in to comment.