From 20916b8c2017a8c89452fb49321d826f553df9c0 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 00:26:16 +1200 Subject: Move from JSW to YAJSW wrapper --- setup/package.sh | 167 ++++++++--------- setup/unix/linux-arm-setup.sh | 22 --- setup/unix/setup.sh | 19 -- setup/unix/traccar.xml | 6 +- setup/windows/traccar.iss | 55 +----- setup/windows/traccar.xml | 403 ------------------------------------------ 6 files changed, 80 insertions(+), 592 deletions(-) delete mode 100755 setup/unix/linux-arm-setup.sh delete mode 100755 setup/unix/setup.sh delete mode 100644 setup/windows/traccar.xml diff --git a/setup/package.sh b/setup/package.sh index 928a6e5b1..41393fa6b 100755 --- a/setup/package.sh +++ b/setup/package.sh @@ -23,8 +23,7 @@ check_requirement () { } check_requirement "ls ../../ext-6.0.1" "Missing ../../ext-6.0.1 (https://www.sencha.com/legal/GPL/)" -check_requirement "ls wrapper-delta-pack-*.tar.gz" "Missing wrapper-delta-pack-*.tar.gz (http://wrapper.tanukisoftware.com/doc/english/download.jsp)" -check_requirement "ls wrapper-windows-x86-64-*.zip" "Missing wrapper-windows-x86-64-*.zip (http://www.krenger.ch/blog/tag/java-service-wrapper/)" +check_requirement "ls yajsw-*.zip" "Missing yajsw-*.zip (http://yajsw.sourceforge.net/)" check_requirement "ls innosetup-*.exe" "Missing isetup-*.exe (http://www.jrsoftware.org/isdl.php)" check_requirement "which sencha" "Missing sencha cmd package (https://www.sencha.com/products/extjs/cmd-download/)" check_requirement "which wine" "Missing wine package" @@ -32,131 +31,117 @@ check_requirement "which innoextract" "Missing innoextract package" check_requirement "which makeself" "Missing makeself package" prepare () { - - tar -xzf wrapper-delta-pack-*.tar.gz - mv wrapper-delta-pack-*/ wrapper/ + unzip yajsw-*.zip + mv yajsw-*/ yajsw/ ../tools/minify.sh innoextract innosetup-*.exe - echo "If you got any errors here try isetup version 5.5.5 (or check what versions are supported by 'innoextract -v')" + echo "If you got any errors here try isetup version 5.5.5 (or check supported versions using 'innoextract -v')" } cleanup () { - - rm -rf wrapper/ + rm -r yajsw/ rm ../web/app.min.js - rm -rf app/ + rm -r app/ } -prepare_windows_64 () { - unzip wrapper-windows-x86-64-*.zip - cp wrapper-windows-*/bin/wrapper.exe wrapper/bin/wrapper-windows-x86-32.exe - cp wrapper-windows-*/lib/wrapper.dll wrapper/lib/wrapper-windows-x86-32.dll - cp wrapper-windows-*/lib/wrapper.jar wrapper/lib/wrapper.jar - rm -rf wrapper-windows-*/ -} +copy_wrapper () { + cp yajsw/$1/setenv* out/bin + cp yajsw/$1/wrapper* out/bin + cp yajsw/$1/install* out/bin + cp yajsw/$1/start* out/bin + cp yajsw/$1/stop* out/bin + cp yajsw/$1/uninstall* out/bin -prepare_linux_32 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-linux-x86-32 out/bin/wrapper - cp wrapper/lib/libwrapper-linux-x86-32.so out/lib/libwrapper.so -} + chmod +x out/bin/* -prepare_linux_64 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-linux-x86-64 out/bin/wrapper - cp wrapper/lib/libwrapper-linux-x86-64.so out/lib/libwrapper.so -} + cp yajsw/conf/wrapper.conf.default out/conf -prepare_linux_arm () { - cp unix/linux-arm-setup.sh out/setup.sh - cp wrapper/bin/wrapper-linux-armel-32 out/bin - cp wrapper/bin/wrapper-linux-armhf-32 out/bin - cp wrapper/lib/libwrapper-linux-armel-32.so out/lib - cp wrapper/lib/libwrapper-linux-armhf-32.so out/lib -} + touch out/conf/wrapper.conf + echo "wrapper.java.app.jar=tracker-server.jar" >> out/conf/wrapper.conf + echo "wrapper.app.parameter.1=./conf/traccar.xml" >> out/conf/wrapper.conf + echo "wrapper.java.additional.1=-Dfile.encoding=UTF-8" >> out/conf/wrapper.conf + echo "wrapper.logfile=logs/wrapper.log.YYYYMMDD" >> out/conf/wrapper.conf + echo "wrapper.logfile.rollmode=DATE" >> out/conf/wrapper.conf + echo "wrapper.ntservice.name=traccar" >> out/conf/wrapper.conf + echo "wrapper.ntservice.displayname=traccar" >> out/conf/wrapper.conf + echo "wrapper.ntservice.description=traccar" >> out/conf/wrapper.conf -prepare_macosx_64 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-macosx-universal-64 out/bin/wrapper - cp wrapper/lib/libwrapper-macosx-universal-64.jnilib out/lib/libwrapper.jnilib -} + cp -r yajsw/lib/core out/lib + rm out/lib/core/ReadMe.txt -package_windows () { + cp -r yajsw/lib/extended out/lib + rm out/lib/extended/ReadMe.txt - if [ "$#" -gt 1 ] - then - eval $2 - fi - - wine app/ISCC.exe windows/traccar.iss - - zip -j traccar-$1-$VERSION.zip windows/Output/traccar-setup.exe README.txt + cp yajsw/templates/* out/templates - rm -rf windows/Output/ - rm -rf tmp/ + cp yajsw/wrapper*.jar out } -package_unix () { - - mkdir -p out/{bin,conf,data,lib,logs,web,schema} - - cp wrapper/src/bin/sh.script.in out/bin/traccar - cp wrapper/lib/wrapper.jar out/lib - cp wrapper/src/conf/wrapper.conf.in out/conf/wrapper.conf - - sed -i.bak 's/tail -1/tail -n 1/g' out/bin/traccar - chmod +x out/bin/traccar - +copy_files () { cp ../target/tracker-server.jar out cp ../target/lib/* out/lib cp ../schema/* out/schema cp -r ../web/* out/web cp unix/traccar.xml out/conf +} + +package_windows () { + mkdir -p out/{bin,conf,data,lib,logs,web,schema,templates} - sed -i.bak 's/@app.name@/traccar/g' out/bin/traccar - sed -i.bak 's/@app.long.name@/traccar/g' out/bin/traccar + copy_wrapper "bat" + copy_files - sed -i.bak '/wrapper.java.classpath.1/a\ -wrapper.java.classpath.2=../tracker-server.jar' out/conf/wrapper.conf - sed -i.bak '/wrapper.app.parameter.1/a\ -wrapper.app.parameter.2=../conf/traccar.xml' out/conf/wrapper.conf - sed -i.bak 's/wrapper.java.additional.1=/wrapper.java.additional.1=-Dfile.encoding=UTF-8/g' out/conf/wrapper.conf - sed -i.bak 's//org.traccar.Main/g' out/conf/wrapper.conf - sed -i.bak 's/@app.name@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/@app.long.name@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/@app.description@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/wrapper.logfile=..\/logs\/wrapper.log/wrapper.logfile=..\/logs\/wrapper.log.YYYYMMDD\ -wrapper.logfile.rollmode=DATE/g' out/conf/wrapper.conf + wine app/ISCC.exe windows/traccar.iss - rm out/bin/traccar.bak - rm out/conf/wrapper.conf.bak + zip -j traccar-windows-$VERSION.zip windows/Output/traccar-setup.exe README.txt - eval $2 + rm -r windows/Output + rm -r tmp + rm -r out +} - makeself out traccar.run "traccar" "chmod +x setup.sh ; ./setup.sh" - zip -j traccar-$1-$VERSION.zip traccar.run README.txt +package_unix () { + mkdir -p out/{bin,conf,data,lib,logs,web,schema,templates} + + copy_wrapper "bin" + copy_files + + makeself out traccar.run "traccar" "\ +if which java &>/dev/null ; \ +then \ +if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ] ; \ +then \ +echo "Java 7 or higher required" ; \ +else \ +mkdir -p /opt/traccar ; \ +cp -r * /opt/traccar ; \ +chmod -R go+rX /opt/traccar ; \ +/opt/traccar/bin/installDaemon.sh ; \ +fi ; \ +else \ +echo "Java runtime is required" ; \ +fi" + + zip -j traccar-linux-$VERSION.zip traccar.run README.txt + cp traccar-linux-$VERSION.zip traccar-macos-$VERSION.zip rm traccar.run - rm -rf out/ + rm -r out } package_universal () { - mkdir -p out/{conf,data,lib,logs,web,schema} - cp ../target/tracker-server.jar out - cp ../target/lib/* out/lib - cp ../schema/* out/schema - cp -r ../web/* out/web - cp windows/traccar.xml out/conf + copy_files + cp README.txt out cd out - zip -r ../traccar-$1-$VERSION.zip * README.txt + zip -r ../traccar-other-$VERSION.zip * cd .. rm -rf out/ @@ -164,12 +149,8 @@ package_universal () { prepare -package_windows "windows-32" -package_windows "windows-64" "prepare_windows_64" -package_unix "linux-32" "prepare_linux_32" -package_unix "linux-64" "prepare_linux_64" -package_unix "linux-arm" "prepare_linux_arm" -package_unix "macosx-64" "prepare_macosx_64" -package_universal "other" +package_windows +package_unix +package_universal cleanup diff --git a/setup/unix/linux-arm-setup.sh b/setup/unix/linux-arm-setup.sh deleted file mode 100755 index 8128e9396..000000000 --- a/setup/unix/linux-arm-setup.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -UNIX_PATH="/opt/traccar" - -if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ] -then - echo "Please install Java version 7 or higher" -else - mkdir -p $UNIX_PATH - cp -rf * $UNIX_PATH - chmod -R go+rX $UNIX_PATH - if [ -z "`readelf -A /proc/self/exe | grep Tag_ABI_VFP_args`" ] - then - mv $UNIX_PATH/bin/wrapper-linux-armel-32 $UNIX_PATH/bin/wrapper - mv $UNIX_PATH/lib/libwrapper-linux-armel-32.so $UNIX_PATH/lib/libwrapper.so - else - mv $UNIX_PATH/bin/wrapper-linux-armhf-32 $UNIX_PATH/bin/wrapper - mv $UNIX_PATH/lib/libwrapper-linux-armhf-32.so $UNIX_PATH/lib/libwrapper.so - fi - $UNIX_PATH/bin/traccar install - rm $UNIX_PATH/setup.sh -fi diff --git a/setup/unix/setup.sh b/setup/unix/setup.sh deleted file mode 100755 index 478966ea0..000000000 --- a/setup/unix/setup.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -UNIX_PATH="/opt/traccar" - -if which java &>/dev/null -then - if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ] - then - echo "Java 7 or higher required" - else - mkdir -p $UNIX_PATH - cp -rf * $UNIX_PATH - chmod -R go+rX $UNIX_PATH - $UNIX_PATH/bin/traccar install - rm $UNIX_PATH/setup.sh - fi -else - echo "Java runtime is required" -fi diff --git a/setup/unix/traccar.xml b/setup/unix/traccar.xml index 50847dcdf..a7ead50e5 100644 --- a/setup/unix/traccar.xml +++ b/setup/unix/traccar.xml @@ -15,7 +15,7 @@ true all - /opt/traccar/logs/tracker-server.log + ./logs/tracker-server.log true true @@ -28,13 +28,13 @@ org.h2.Driver - jdbc:h2:/opt/traccar/data/database + jdbc:h2:./data/database sa true - /opt/traccar/schema/changelog-master.xml + ./schema/changelog-master.xml SELECT * FROM server; diff --git a/setup/windows/traccar.iss b/setup/windows/traccar.iss index d4af5a808..76b176f71 100644 --- a/setup/windows/traccar.iss +++ b/setup/windows/traccar.iss @@ -5,35 +5,14 @@ DefaultDirName={pf}\Traccar AlwaysRestart=yes OutputBaseFilename=traccar-setup -[Dirs] -Name: "{app}\bin" -Name: "{app}\conf" -Name: "{app}\data" -Name: "{app}\lib" -Name: "{app}\logs" -Name: "{app}\web" -Name: "{app}\schema" - [Files] -Source: "..\wrapper\bin\wrapper-windows-x86-32.exe"; DestDir: "{app}\bin"; DestName: "wrapper.exe" -Source: "..\wrapper\src\bin\App.bat.in"; DestDir: "{app}\bin"; DestName: "Traccar.bat" -Source: "..\wrapper\src\bin\InstallApp-NT.bat.in"; DestDir: "{app}\bin"; DestName: "InstallTraccar-NT.bat" -Source: "..\wrapper\src\bin\UninstallApp-NT.bat.in"; DestDir: "{app}\bin"; DestName: "UninstallTraccar-NT.bat" -Source: "..\wrapper\lib\wrapper-windows-x86-32.dll"; DestDir: "{app}\lib"; DestName: "wrapper.dll" -Source: "..\wrapper\lib\wrapper.jar"; DestDir: "{app}\lib"; -Source: "..\wrapper\src\conf\wrapper.conf.in"; DestDir: "{app}\conf"; DestName: "wrapper.conf"; AfterInstall: ConfigureWrapper - -Source: "..\..\target\tracker-server.jar"; DestDir: "{app}" -Source: "..\..\target\lib\*"; DestDir: "{app}\lib" -Source: "..\..\schema\*"; DestDir: "{app}\schema" -Source: "..\..\web\*"; DestDir: "{app}\web"; Flags: recursesubdirs -Source: "traccar.xml"; DestDir: "{app}\conf"; AfterInstall: ConfigureApplication +Source: "..\out\*"; DestDir: "{app}"; Flags: recursesubdirs [Run] -Filename: "{app}\bin\InstallTraccar-NT.bat" +Filename: "{app}\bin\installService.bat" [UninstallRun] -Filename: "{app}\bin\UninstallTraccar-NT.bat" +Filename: "{app}\bin\uninstallService.bat" [Code] function GetLocalMachine(): Integer; @@ -60,31 +39,3 @@ begin MsgBox('This application requires Java Runtime Environment version 7 or later. Please download and install the JRE and run this setup again. If you have Java installed and still get this error, you need to re-install it from offline installer (for more info see https://www.traccar.org/windows/).', mbCriticalError, MB_OK); end; end; - -procedure ConfigureWrapper(); -var - S: String; -begin - LoadStringFromFile(ExpandConstant(CurrentFileName), S); - Insert('wrapper.java.classpath.2=../tracker-server.jar' + #13#10, S, Pos('wrapper.java.classpath.1', S)); - Insert(ExpandConstant('wrapper.app.parameter.2="{app}\conf\traccar.xml"') + #13#10, S, Pos('wrapper.app.parameter.1', S)); - StringChangeEx(S, 'wrapper.java.additional.1=', 'wrapper.java.additional.1=-Dfile.encoding=UTF-8', true); - StringChangeEx(S, '', 'org.traccar.Main', true); - StringChangeEx(S, '@app.name@', 'Traccar', true); - StringChangeEx(S, '@app.long.name@', 'Traccar', true); - StringChangeEx(S, '@app.description@', 'Traccar', true); - StringChangeEx(S, 'wrapper.logfile=../logs/wrapper.log', 'wrapper.logfile=../logs/wrapper.log.YYYYMMDD' + #13#10 + 'wrapper.logfile.rollmode=DATE', true); - SaveStringToFile(ExpandConstant(CurrentFileName), S, false); -end; - -procedure ConfigureApplication(); -var - S: String; -begin - LoadStringFromFile(ExpandConstant(CurrentFileName), S); - StringChangeEx(S, '[WEB]', ExpandConstant('{app}\web'), true); - StringChangeEx(S, '[LOG]', ExpandConstant('{app}\logs\tracker-server.log'), true); - StringChangeEx(S, '[DATABASE]', ExpandConstant('{app}\data\database'), true); - StringChangeEx(S, '[CHANGELOG]', ExpandConstant('{app}\schema\changelog-master.xml'), true); - SaveStringToFile(ExpandConstant(CurrentFileName), S, false); -end; diff --git a/setup/windows/traccar.xml b/setup/windows/traccar.xml deleted file mode 100644 index 3144f6352..000000000 --- a/setup/windows/traccar.xml +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - true - 8082 - [WEB] - - true - google - - true - all - [LOG] - - true - true - true - true - true - true - true - - - - org.h2.Driver - jdbc:h2:[DATABASE] - sa - - - true - - [CHANGELOG] - - - SELECT * FROM server; - - - - UPDATE server SET - registration = :registration, - readonly = :readonly, - map = :map, - bingKey = :bingKey, - mapUrl = :mapUrl, - distanceUnit = :distanceUnit, - speedUnit = :speedUnit, - latitude = :latitude, - longitude = :longitude, - zoom = :zoom, - twelveHourFormat = :twelveHourFormat, - attributes = :attributes - WHERE id = :id; - - - - SELECT * FROM users - WHERE email = :email; - - - - SELECT * FROM users - WHERE id = :id; - - - - SELECT * FROM users; - - - - INSERT INTO users (name, email, hashedPassword, salt, admin, map, distanceUnit, speedUnit, latitude, longitude, zoom, twelveHourFormat, attributes) - VALUES (:name, :email, :hashedPassword, :salt, :admin, :map, :distanceUnit, :speedUnit, :latitude, :longitude, :zoom, :twelveHourFormat, :attributes); - - - - UPDATE users SET - name = :name, - email = :email, - admin = :admin, - map = :map, - distanceUnit = :distanceUnit, - speedUnit = :speedUnit, - latitude = :latitude, - longitude = :longitude, - zoom = :zoom, - twelveHourFormat = :twelveHourFormat, - attributes = :attributes - WHERE id = :id; - - - - UPDATE users SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id; - - - - DELETE FROM users WHERE id = :id; - - - - SELECT userId, deviceId FROM user_device; - - - - SELECT userId, groupId FROM user_group; - - - - SELECT * FROM devices; - - - - INSERT INTO devices (name, uniqueId, groupId, attributes) VALUES (:name, :uniqueId, :groupId, :attributes); - - - - UPDATE devices SET name = :name, uniqueId = :uniqueId, groupId = :groupId, attributes = :attributes WHERE id = :id; - - - - UPDATE devices SET lastUpdate = :lastUpdate WHERE id = :id; - - - - DELETE FROM devices WHERE id = :id; - - - - INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId); - - - - DELETE FROM user_device WHERE userId = :userId AND deviceId = :deviceId; - - - - SELECT * FROM groups; - - - - INSERT INTO groups (name, groupId, attributes) VALUES (:name, :groupId, :attributes); - - - - UPDATE groups SET name = :name, groupId = :groupId, attributes = :attributes WHERE id = :id; - - - - DELETE FROM groups WHERE id = :id; - - - - INSERT INTO user_group (userId, groupId) VALUES (:userId, :groupId); - - - - DELETE FROM user_group WHERE userId = :userId AND groupId = :groupId; - - - - SELECT * FROM positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime; - - - - INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, attributes) - VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes); - - - - SELECT * FROM positions WHERE id IN (SELECT positionId FROM devices); - - - - UPDATE devices SET positionId = :id WHERE id = :deviceId; - - - - SELECT * FROM events WHERE id = :id; - - - - INSERT INTO events (type, serverTime, deviceId, positionId, geofenceId, attributes) - VALUES (:type, :serverTime, :deviceId, :positionId, :geofenceId, :attributes); - - - - SELECT * FROM events WHERE deviceId = :deviceId AND type LIKE :type AND serverTime BETWEEN :from AND :to ORDER BY serverTime DESC; - - - - SELECT * FROM geofences - WHERE id = :id; - - - - SELECT * FROM geofences; - - - - INSERT INTO geofences (name, description, area, attributes) - VALUES (:name, :description, :area, :attributes); - - - - UPDATE geofences SET - name = :name, - description = :description, - area = :area, - attributes = :attributes - WHERE id = :id; - - - - DELETE FROM geofences WHERE id = :id; - - - - SELECT userId, geofenceId FROM user_geofence; - - - - INSERT INTO user_geofence (userId, geofenceId) VALUES (:userId, :geofenceId); - - - - DELETE FROM user_geofence WHERE userId = :userId AND geofenceId = :geofenceId; - - - - SELECT groupId, geofenceId FROM group_geofence; - - - - INSERT INTO group_geofence (groupId, geofenceId) VALUES (:groupId, :geofenceId); - - - - DELETE FROM group_geofence WHERE groupId = :groupId AND geofenceId = :geofenceId; - - - - SELECT deviceId, geofenceId FROM device_geofence; - - - - INSERT INTO device_geofence (deviceId, geofenceId) VALUES (:deviceId, :geofenceId); - - - - DELETE FROM device_geofence WHERE deviceId = :deviceId AND geofenceId = :geofenceId; - - - - SELECT * FROM notifications; - - - - INSERT INTO notifications (userId, type, attributes) - VALUES (:userId, :type, :attributes); - - - - UPDATE notifications SET - userId = :userId, - type = :type, - attributes = :attributes - WHERE id = :id; - - - - DELETE FROM notifications WHERE id = :id; - - - - DELETE FROM positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM devices); - - - - - 5001 - 5002 - 5003 - 5004 - 5005 - 5006 - false - 5007 - 5008 - 5009 - 5010 - 5011 - 5012 - 5013 - 5014 - 5015 - 5016 - 5017 - 5018 - 5019 - 5020 - 5021 - 5022 - 5023 - 5024 - 5025 - 5026 - 5027 - 5028 - 5029 - 5030 - 5031 - 5032 - 5033 - 5034 - 5035 - 5036 - 5037 - 5038 - 5039 - 5040 - 5041 - 5042 - 5043 - 5044 - 5045 - 5046 - 5047 - 5048 - 5049 - 5050 - 5051 - 5052 - 5053 - 5054 - 5055 - 5056 - 5057 - 5058 - 5059 - 5060 - 5061 - 5062 - 5063 - 5064 - 5065 - 5066 - 5067 - 5068 - 5069 - 5070 - 5071 - 5072 - 5073 - 5074 - 5075 - 5076 - 5077 - 5078 - 5079 - 5080 - 5081 - 5082 - 5083 - 5084 - 5085 - 5086 - 5087 - 5088 - 5089 - 5090 - 5091 - 5092 - 5093 - 5094 - 5095 - 5096 - 5097 - 5098 - 5099 - 5100 - 5101 - 5102 - 5103 - 5104 - 5105 - 5106 - 5107 - 5108 - 5109 - 5110 - 5111 - 5112 - 5113 - 5114 - 5115 - 5116 - 5117 - 5118 - - -- cgit v1.2.3