diff --git a/.github/actions/build.sh b/.github/actions/build.sh index 845f20cf92d..c669b5d9387 100755 --- a/.github/actions/build.sh +++ b/.github/actions/build.sh @@ -91,7 +91,7 @@ echo "===> ARCH packages: ${arch_packages}" echo "===> NOARCH packages: ${noarch_packages}" echo "::endgroup::" -if [ "${GH_ARCH}" = "noarch" ]; then +if [ "${GH_ARCH%%-*}" = "noarch" ]; then build_packages=${noarch_packages} else build_packages=${arch_packages} @@ -112,11 +112,16 @@ for package in ${build_packages} do echo "::group:: ---- build ${package}" - if [ "${GH_ARCH}" != "noarch" ]; then + if [ "${GH_ARCH%%-*}" != "noarch" ]; then # use TCVERSION and ARCH to get real exit codes. make TCVERSION=${GH_ARCH##*-} ARCH=${GH_ARCH%%-*} -C ./spk/${package} else - make -C ./spk/${package} + if [ "${GH_ARCH}" = "noarch" ]; then + TCVERSION= + else + TCVERSION=${GH_ARCH##*-} + fi + make TCVERSION=${TCVERSION} ARCH= -C ./spk/${package} fi result=$? diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b24bd97237..310c40a7963 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: matrix: # x64=x86_64, evansport=i686, aarch64=armv8, armv7, hi3535=armv7l, 88f6281=armv5, qoriq=ppc # https://github.com/SynoCommunity/spksrc/wiki/Synology-and-SynoCommunity-Package-Architectures - arch: [noarch, x64-6.1, evansport-6.1, aarch64-6.1, armv7-6.1, hi3535-6.1, 88f6281-6.1, qoriq-6.1] + arch: [noarch, noarch-7.0, x64-6.1, x64-7.0, evansport-6.1, evansport-7.0, aarch64-6.1, aarch64-7.0, armv7-6.1, armv7-7.0, hi3535-6.1, 88f6281-6.1, qoriq-6.1] steps: - name: Cache toolchains diff --git a/mk/spksrc.common.mk b/mk/spksrc.common.mk index bf2c10664fe..0677a197b7c 100644 --- a/mk/spksrc.common.mk +++ b/mk/spksrc.common.mk @@ -70,6 +70,11 @@ COMPILE_MAKE_OPTIONS += -j$(NCPUS) endif endif +# Terminal colors +RED=`tput setaf 1` +GREEN=`tput setaf 2` +NC=`tput sgr0` + # Version Comparison version_le = $(shell if printf '%s\n' "$(1)" "$(2)" | sort -VC ; then echo 1; fi) version_ge = $(shell if printf '%s\n' "$(1)" "$(2)" | sort -VCr ; then echo 1; fi) diff --git a/mk/spksrc.directories.mk b/mk/spksrc.directories.mk index 7c747f6cd56..b8d3423e076 100644 --- a/mk/spksrc.directories.mk +++ b/mk/spksrc.directories.mk @@ -1,4 +1,4 @@ -# * all goes in $(WORK_DIR) : work-arch, or simple work, in the current directory +# * all goes in $(WORK_DIR) : work-arch (for noarch: work-all or work-dsm7), in the current directory # * it will be installed in $(INSTALL_PREFIX) on the target system (/usr/local/transmission) # * each source package is unpacked in $(WORK_DIR) # * the install target installs files in $(WORK_DIR)/install/, known as $(INSTALL_DIR) diff --git a/mk/spksrc.service.installer b/mk/spksrc.service.installer index 3e50a7c8cfe..0b1e6fa31d9 100644 --- a/mk/spksrc.service.installer +++ b/mk/spksrc.service.installer @@ -8,6 +8,7 @@ INST_LOG="/tmp/${SYNOPKG_PKGNAME}_install.log" INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" INST_VARIABLES="${INST_ETC}/installer-variables" INST_VAR="${SYNOPKG_PKGDEST}/var" +SYNOPKG_PKGVAR="${SYNOPKG_PKGDEST}/var" # backwards compatibility # Optional FWPORTS file FWPORTS_FILE="/var/packages/${SYNOPKG_PKGNAME}/conf/${SYNOPKG_PKGNAME}.sc" diff --git a/mk/spksrc.service.installer.dsm7 b/mk/spksrc.service.installer.dsm7 new file mode 100644 index 00000000000..fddf1112594 --- /dev/null +++ b/mk/spksrc.service.installer.dsm7 @@ -0,0 +1,229 @@ +#!/bin/sh + +# DSM 5 -> 7 upgrade path: +# Not supported +# DSM 6 -> 7 upgrade path: +# files are migrated from ${SYNOPKG_PKGDEST}/var to ${SYNOPKG_PKGVAR} +# Not supported (yet) + +INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" +INST_VARIABLES="${INST_ETC}/installer-variables" +INST_VAR="${SYNOPKG_PKGVAR}" + +# Optional FWPORTS file +FWPORTS_FILE="/var/packages/${SYNOPKG_PKGNAME}/conf/${SYNOPKG_PKGNAME}.sc" + +TMP_DIR="${SYNOPKG_TEMP_UPGRADE_FOLDER}/var" + +# Source package specific variable and functions +SVC_SETUP=`dirname $0`"/service-setup" +if [ -r "${SVC_SETUP}" ]; then + . "${SVC_SETUP}" +fi + +# Reload wizard variables stored by postinst +if [ -r "${INST_VARIABLES}" ]; then + . "${INST_VARIABLES}" +fi + +# Expect user to be set from package specific variables +if [ -n "${USER}" -a -z "${USER_DESC}" ]; then + USER_DESC="User running $SYNOPKG_PKGNAME" +fi + +# Default description if group name provided by UI +if [ -n "${GROUP}" -a -z "${GROUP_DESC}" ]; then + GROUP_DESC="SynoCommunity Package Group" +fi + +# Extract share volume and share name from download location if provided +if [ -n "${SHARE_PATH}" ]; then + SHARE_VOLUME=$(echo "${SHARE_PATH}" | awk -F/ '{print "/"$2}') + SHARE_NAME=$(echo "${SHARE_PATH}" | awk -F/ '{print $3}') +fi + +# Tools shortcuts +MV="/bin/mv -f" +RM="/bin/rm -rf" +CP="/bin/cp -rfp" +MKDIR="/bin/mkdir -p" +LN="/bin/ln -nsf" +TEE="/usr/bin/tee -a" + +### Functions library + +log () +{ + echo "$1" 1>&2 # /var/log/packages/{package}.log +} + + +log_step () +{ + log $(date) + log "===> Step $1. USER=$USER GROUP=$GROUP SHARE_PATH=${SHARE_PATH}" +} + +save_wizard_variables () +{ + if [ -e "${INST_VARIABLES}" ]; then + $RM "${INST_VARIABLES}" + fi + if [ -n "${GROUP}" ]; then + echo "GROUP=${GROUP}" >> ${INST_VARIABLES} + fi + if [ -n "${SHARE_PATH}" ]; then + echo "SHARE_PATH=${SHARE_PATH}" >> ${INST_VARIABLES} + fi +} + +set_unix_permissions () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. set_unix_permissions() is no longer supported." +} + +syno_remove_user () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. syno_remove_user() is no longer supported." +} + +syno_group_create () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. syno_group_create() is no longer supported." +} + +syno_group_remove () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. syno_group_remove() is no longer supported." +} + +syno_user_add_to_group () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. syno_user_add_to_group() is no longer supported." +} + +set_syno_permissions () +{ + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. set_syno_permissions() is no longer supported." +} + +syno_user_add_to_legacy_group () { + log "${SYNOPKG_PKGNAME} has not been updated to DSM7 yet. syno_user_add_to_legacy_group() is no longer supported." +} + + +### Generic package behaviors + +preinst () +{ + log_step "preinst" + call_func "service_preinst" + + # Check volume exists + if [ -n "${SHARE_PATH}" ]; then + if [ ! -d "${SHARE_VOLUME}" ]; then + echo "Volume ${SHARE_VOLUME} does not exist." | $TEE 1>&2 + exit 1 + fi + fi + + exit 0 +} + +postinst () +{ + log_step "postinst" + save_wizard_variables + + # copy target/var data to permanent storage + # and don't override old configurations + if [ -d ${SYNOPKG_PKGDEST}/var ] && [ "$(find ${SYNOPKG_PKGVAR} -mindepth 1 -not -name '*.log' -print)" = "" ]; then + $CP -RT ${SYNOPKG_PKGDEST}/var/. ${SYNOPKG_PKGVAR} + fi + + if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then + # Add firewall config + if [ -r "${FWPORTS_FILE}" ]; then + echo "Installing service configuration ${FWPORTS_FILE}" >> ${INST_LOG} + servicetool --install-configure-file --package "${FWPORTS_FILE}" >> ${INST_LOG} 2>&1 + fi + fi + + call_func "service_postinst" + call_func "service_create_links" + + exit 0 +} + +preuninst () +{ + log_step "preuninst" + + if [ "${SYNOPKG_PKG_STATUS}" == "UNINSTALL" ]; then + # Remove firewall config + if [ -r "${FWPORTS_FILE}" ]; then + echo "Removing service configuration ${SYNOPKG_PKGNAME}.sc" >> ${INST_LOG} + servicetool --remove-configure-file --package "${SYNOPKG_PKGNAME}.sc" >> ${INST_LOG} 2>&1 + fi + fi + + call_func "service_preuninst" + exit 0 +} + +postuninst () +{ + log_step "postuninst" + + call_func "service_postuninst" + call_func "service_remove_links" + + if [ "$wizard_delete_data" = "true" ]; then + + if [ "$(ls -A ${SYNOPKG_PKGHOME})" != "" ]; then + rm -rf ${SYNOPKG_PKGHOME}/ + fi + + if [ "$(ls -A ${SYNOPKG_PKGVAR})" != "" ]; then + rm -rf ${SYNOPKG_PKGVAR}/ + fi + + if [ "$(ls -A /var/packages/${SYNOPKG_PKGNAME}/etc)" != "" ]; then + rm -rf /var/packages/${SYNOPKG_PKGNAME}/etc/ + fi + + if ["$(ls -A ${SYNOPKG_PKGTMP})" != "" ]; then + rm -rf ${SYNOPKG_PKGTMP}/ + fi + fi + exit 0 +} + +preupgrade () +{ + log_step "preupgrade" + + # dsm6 -> dsm7 + # Migrate data to permanent storage + if [ ! "$(ls -A ${SYNOPKG_PKGVAR})" ]; then + # only migrate when destination is empty + $CP -RT ${SYNOPKG_PKGDEST}/var/. ${SYNOPKG_PKGVAR} + fi + + call_func "service_preupgrade" + + call_func "service_save" + + exit 0 +} + +postupgrade () +{ + log_step "postupgrade" + + call_func "service_restore" + + call_func "service_postupgrade" + + exit 0 +} diff --git a/mk/spksrc.service.mk b/mk/spksrc.service.mk index 8972a2418eb..198d47cfc2d 100644 --- a/mk/spksrc.service.mk +++ b/mk/spksrc.service.mk @@ -3,7 +3,7 @@ # scripts/installer # scripts/start-stop-status # scripts/service-setup -# conf/privilege if SERVICE_USER +# conf/privilege if SERVICE_USER or DSM7 # conf/SPK_NAME.sc if SERVICE_PORT # app/config if DSM_UI_DIR # @@ -42,7 +42,8 @@ endif .PHONY: service_target service_msg_target .PHONY: $(PRE_SERVICE_TARGET) $(SERVICE_TARGET) $(POST_SERVICE_TARGET) .PHONY: $(DSM_SCRIPTS_DIR)/service-setup $(DSM_SCRIPTS_DIR)/start-stop-status -.PHONY: $(DSM_CONF_DIR)/privilege $(DSM_CONF_DIR)/$(SPK_NAME).sc $(STAGING_DIR)/$(DSM_UI_DIR)/config +.PHONY: $(DSM_CONF_DIR)/privilege $(DSM_CONF_DIR)/resource +.PHONY: $(DSM_CONF_DIR)/$(SPK_NAME).sc $(STAGING_DIR)/$(DSM_UI_DIR)/config service_msg_target: @$(MSG) "Generating service scripts for $(NAME)" @@ -55,13 +56,18 @@ SPK_USER = $(SPK_NAME) else SPK_USER = $(SERVICE_USER) endif +ifeq ($(strip $(SPK_USER)),) +SPK_USER = $(SPK_NAME) +endif # Recommend explicit STARTABLE=no ifeq ($(strip $(SSS_SCRIPT)),) ifeq ($(strip $(SERVICE_COMMAND)),) +ifeq ($(strip $(SPK_COMMANDS)),) ifeq ($(strip $(SERVICE_EXE)),) ifeq ($(strip $(STARTABLE)),) -$(error Set STARTABLE=no or provide either SERVICE_COMMAND or specific SSS_SCRIPT) +$(error Set STARTABLE=no or provide either SERVICE_COMMAND, SPK_COMMANDS or specific SSS_SCRIPT) +endif endif endif endif @@ -99,10 +105,19 @@ ifneq ($(strip $(SERVICE_PORT)),) @echo 'SERVICE_PORT="$(SERVICE_PORT)"' >> $@ endif ifneq ($(STARTABLE),no) +ifneq ($(call version_ge, ${TCVERSION}, 7.0),1) @echo "# start-stop-status script redirect stdout/stderr to LOG_FILE" >> $@ @echo 'LOG_FILE="$${SYNOPKG_PKGDEST}/var/$${SYNOPKG_PKGNAME}.log"' >> $@ @echo "# Service command has to deliver its pid into PID_FILE" >> $@ @echo 'PID_FILE="$${SYNOPKG_PKGDEST}/var/$${SYNOPKG_PKGNAME}.pid"' >> $@ + @echo "# backwards compatibility" >> $@ + @echo 'SYNOPKG_PKGVAR="$${SYNOPKG_PKGDEST}/var"' >> $@ +else + @echo "# start-stop-status script redirect stdout/stderr to LOG_FILE" >> $@ + @echo 'LOG_FILE="$${SYNOPKG_PKGVAR}/$${SYNOPKG_PKGNAME}.log"' >> $@ + @echo "# Service command has to deliver its pid into PID_FILE" >> $@ + @echo 'PID_FILE="$${SYNOPKG_PKGVAR}/$${SYNOPKG_PKGNAME}.pid"' >> $@ +endif endif ifneq ($(strip $(SERVICE_COMMAND)),) ifneq ($(strip $(SERVICE_SHELL)),) @@ -113,6 +128,13 @@ endif @echo 'SERVICE_COMMAND="$(SERVICE_COMMAND)"' >> $@ endif ifneq ($(strip $(SERVICE_EXE)),) +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) + @echo "${RED}ERROR: SERVICE_EXE (start-stop-daemon) is unsupported in DSM7${NC}" + @echo "${GREEN}Please migrate to SERVICE_COMMAND=${NC}" + @echo "SVC_BACKGROUND=y" + @echo "SVC_WRITE_PID=y" + @exit 1 +endif @echo "# Service command to execute with start-stop-daemon" >> $@ @echo 'SERVICE_EXE="$(SERVICE_EXE)"' >> $@ ifneq ($(strip $(SERVICE_OPTIONS)),) @@ -123,12 +145,44 @@ endif ifneq ($(strip $(SERVICE_SETUP)),) @cat $(CURDIR)/$(SERVICE_SETUP) >> $@ endif + +ifneq ($(call version_ge, ${TCVERSION}, 7.0),1) ifneq ($(strip $(SPK_COMMANDS) $(SPK_LINKS)),) @echo "# List of commands to create links for" >> $@ @echo "SPK_COMMANDS=\"${SPK_COMMANDS}\"" >> $@ @echo "SPK_LINKS=\"${SPK_LINKS}\"" >> $@ @cat $(SPKSRC_MK)spksrc.service.create_links >> $@ endif +else +ifneq ($(strip $(SPK_LINKS)),) + @echo "${RED}ERROR: SPK_LINKS is unsupported in DSM7${NC}" + @echo "${GREEN}Please migrate to SPK_USR_LOCAL_LINKS=${NC}" + @exit 1 +endif +$(DSM_CONF_DIR)/resource: + $(create_target_dir) + @echo '{}' > $@ +ifneq ($(strip $(SPK_COMMANDS)),) +# e.g. SPK_COMMANDS=bin/foo bin/bar + @jq --arg binaries '$(SPK_COMMANDS)' \ + '."usr-local-linker" = {"bin": $$binaries | split(" ")}' $@ 1<>$@ +endif +ifneq ($(strip $(SPK_USR_LOCAL_LINKS)),) +# e.g. SPK_USR_LOCAL_LINKS=etc:var/foo lib:libs/bar + @jq --arg links_str '${SPK_USR_LOCAL_LINKS}' \ + '."usr-local-linker" += ($$links_str | split (" ") | map(split(":")) | group_by(.[0]) | map({(.[0][0]) : map(.[1])}) | add )' $@ 1<>$@ +endif +ifneq ($(strip $(SERVICE_WIZARD_SHARE)),) +# e.g. SERVICE_WIZARD_SHARE=wizard_download_dir + @jq --arg share "{{${SERVICE_WIZARD_SHARE}}}" --arg user sc-${SPK_USER} \ + '."data-share" = {"shares": [{"name": $$share, "permission":{"rw":[$$user]}} ] }' $@ 1<>$@ +endif +SERVICE_FILES += $(DSM_CONF_DIR)/resource +# STARTABLE needs to be yes, the resource linking and unlinking works on start and stop +# see spsrc.spk.mk +endif + + DSM_SCRIPTS_ += service-setup SERVICE_FILES += $(DSM_SCRIPTS_DIR)/service-setup @@ -136,9 +190,14 @@ SERVICE_FILES += $(DSM_SCRIPTS_DIR)/service-setup # Control use of generic installer ifeq ($(strip $(INSTALLER_SCRIPT)),) DSM_SCRIPTS_ += installer +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) +$(DSM_SCRIPTS_DIR)/installer: $(SPKSRC_MK)spksrc.service.installer.dsm7 + @$(dsm_script_copy) +else $(DSM_SCRIPTS_DIR)/installer: $(SPKSRC_MK)spksrc.service.installer @$(dsm_script_copy) endif +endif # Control use of generic start-stop-status scripts ifeq ($(strip $(SSS_SCRIPT)),) @@ -159,19 +218,46 @@ endif # Generate privilege file for service user (prefixed to avoid collision with busybox account) -ifneq ($(strip $(SPK_USER)),) +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) +$(DSM_CONF_DIR)/privilege: + $(create_target_dir) + @jq -n '."defaults" = {"run-as": "package"}' > $@ +else ifeq ($(strip $(SERVICE_EXE)),) -$(DSM_CONF_DIR)/privilege: $(SPKSRC_MK)spksrc.service.privilege +$(DSM_CONF_DIR)/privilege: $(SPKSRC_MK)spksrc.service.privilege-installasroot + @$(dsm_script_copy) else $(DSM_CONF_DIR)/privilege: $(SPKSRC_MK)spksrc.service.privilege-startasroot + @$(dsm_script_copy) endif - $(create_target_dir) - @sed 's|USER|sc-$(SPK_USER)|' $< > $@ +endif +# Apply variables to privilege file +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) +ifneq ($(strip $(GROUP)),) +# Creates group but is different from the groups the user can create, they are invisible in the UI an are only usefull to access another packages permissions (ffmpeg comes to mind) +# For DSM7 I recommend setting permissions for individual packages (System Internal User) +# or use the shared folder resource worker to add permissions, ask user from wizard see transmission package for an example + @jq --arg packagename $(GROUP) '."join-pkg-groupnames" += [{$$packagename}]' $@ 1<>$@ +endif +endif +ifneq ($(strip $(SYSTEM_GROUP)),) +# options: http, system + @jq '."join-groupname" = "$(SYSTEM_GROUP)"' $@ 1<>$@ +endif +ifneq ($(strip $(SPK_USER)),) + @jq '."username" = "sc-$(SPK_USER)"' $@ 1<>$@ +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) + @jq '."groupname" = "sc-$(SPK_USER)"' $@ 1<>$@ +endif +endif +ifneq ($(strip $(SPK_GROUP)),) + @jq '."groupname" = "$(SPK_GROUP)"' $@ 1<>$@ +endif + ifneq ($(findstring conf,$(SPK_CONTENT)),conf) SPK_CONTENT += conf endif SERVICE_FILES += $(DSM_CONF_DIR)/privilege -endif # Generate service configuration for admin port diff --git a/mk/spksrc.service.privilege b/mk/spksrc.service.privilege deleted file mode 100644 index dc9e58afda7..00000000000 --- a/mk/spksrc.service.privilege +++ /dev/null @@ -1,25 +0,0 @@ -{ - "defaults":{ - "run-as": "package" - }, - "username": "USER", - "ctrl-script": [{ - "action": "preinst", - "run-as": "root" - }, { - "action": "postinst", - "run-as": "root" - }, { - "action": "preuninst", - "run-as": "root" - }, { - "action": "postuninst", - "run-as": "root" - }, { - "action": "preupgrade", - "run-as": "root" - }, { - "action": "postupgrade", - "run-as": "root" - }] -} diff --git a/mk/spksrc.service.privilege-installasroot b/mk/spksrc.service.privilege-installasroot new file mode 100644 index 00000000000..02d5d7e927f --- /dev/null +++ b/mk/spksrc.service.privilege-installasroot @@ -0,0 +1,25 @@ +{ + "defaults":{ + "run-as": "package" + }, + "username": "USER", + "ctrl-script": [{ + "action": "preinst", + "run-as": "root" + }, { + "action": "postinst", + "run-as": "root" + }, { + "action": "preuninst", + "run-as": "root" + }, { + "action": "postuninst", + "run-as": "root" + }, { + "action": "preupgrade", + "run-as": "root" + }, { + "action": "postupgrade", + "run-as": "root" + }] +} diff --git a/mk/spksrc.service.start-stop-status b/mk/spksrc.service.start-stop-status index d9a8c993482..a7331774e73 100644 --- a/mk/spksrc.service.start-stop-status +++ b/mk/spksrc.service.start-stop-status @@ -35,11 +35,17 @@ start_daemon () else SVC_CD="cd ${SVC_CWD}; " fi + if [ -n "${SYNOPKG_DSM_VERSION_MAJOR}" ] && [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then + SU="su ${EFF_USER} -s" + else + SU="" + fi if [ -z "${SVC_BACKGROUND}" ]; then - su ${EFF_USER} -s ${SERVICE_SHELL} -c "${SVC_CD}${SERVICE_COMMAND}" >> ${OUT} 2>&1 + $SU ${SERVICE_SHELL} -c "${SVC_CD}${SERVICE_COMMAND}" >> ${OUT} 2>&1 else - su ${EFF_USER} -s ${SERVICE_SHELL} -c "${SVC_CD}${SERVICE_COMMAND}" >> ${OUT} 2>&1 & + $SU ${SERVICE_SHELL} -c "${SVC_CD}${SERVICE_COMMAND}" >> ${OUT} 2>&1 & fi + else # DSM 6 user is set by conf/privilege if [ -n "${SVC_CWD}" ]; then diff --git a/mk/spksrc.spk.mk b/mk/spksrc.spk.mk index 8a9f4d049e5..a2d4af9e3a0 100644 --- a/mk/spksrc.spk.mk +++ b/mk/spksrc.spk.mk @@ -14,8 +14,14 @@ TC = syno$(ARCH_SUFFIX) else SPK_ARCH = noarch SPK_NAME_ARCH = noarch +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) +SPK_TCVERS = dsm7 +OS_MIN_VER = 7.0-40000 +else SPK_TCVERS = all OS_MIN_VER = 3.1-1594 +endif +ARCH_SUFFIX = -$(SPK_TCVERS) FIRMWARE = $(OS_MIN_VER) endif @@ -110,7 +116,7 @@ ifneq ($(strip $(OS_MIN_VER)),) else @echo os_min_ver=\"$(TC_OS_MIN_VER)\" >> $@ endif -ifeq ($(shell expr "$(TC_OS_MIN_VER)" \<= 6.1),1) +ifeq ($(call version_le, ${TC_OS_MIN_VER}, 6.1),1) ifneq ($(strip $(FIRMWARE)),) @echo firmware=\"$(FIRMWARE)\" >> $@ else @@ -127,9 +133,9 @@ endif ifneq ($(strip $(HELPURL)),) @echo helpurl=\"$(HELPURL)\" >> $@ else - ifneq ($(strip $(HOMEPAGE)),) +ifneq ($(strip $(HOMEPAGE)),) @echo helpurl=\"$(HOMEPAGE)\" >> $@ - endif +endif endif ifneq ($(strip $(SUPPORTURL)),) @echo support_url=\"$(SUPPORTURL)\" >> $@ @@ -143,23 +149,40 @@ endif ifneq ($(strip $(INSTUNINST_RESTART_SERVICES)),) @echo instuninst_restart_services=\"$(INSTUNINST_RESTART_SERVICES)\" >> $@ endif -ifneq ($(strip $(RELOAD_UI)),) +ifeq ($(RELOAD_UI),yes) @echo reloadui=\"$(RELOAD_UI)\" >> $@ endif + +ifneq ($(call version_ge, ${TCVERSION}, 7.0),1) +# old behaviour ifeq ($(STARTABLE),no) -ifeq ($(shell expr "$(TC_OS_MIN_VER)" \<= 6.1),1) +ifeq ($(call version_le, ${TC_OS_MIN_VER}, 6.1),1) @echo startable=\"$(STARTABLE)\" >> $@ endif @echo ctl_stop=\"$(STARTABLE)\" >> $@ endif +else +# since 7.0 use Synology resource acquisition +ifeq ($(STARTABLE),no) +ifeq ($(strip $(SPK_COMMANDS)),) +# STARTABLE needs to be yes, Resource linking and unlinking works on start and stop + @echo ctl_stop=\"$(STARTABLE)\" >> $@ +endif +endif +endif + @echo displayname=\"$(DISPLAY_NAME)\" >> $@ ifneq ($(strip $(DSM_UI_DIR)),) @echo dsmuidir=\"$(DSM_UI_DIR)\" >> $@ endif ifneq ($(strip $(DSM_APP_NAME)),) @echo dsmappname=\"$(DSM_APP_NAME)\" >> $@ + @echo dsmapppage=\"$(DSM_APP_NAME)\" >> $@ + @echo dsmapplaunchname=\"$(DSM_APP_NAME)\" >> $@ else @echo dsmappname=\"com.synocommunity.$(SPK_NAME)\" >> $@ + @echo dsmapppage=\"com.synocommunity.$(SPK_NAME)\" >> $@ + @echo dsmapplaunchname=\"com.synocommunity.$(SPK_NAME)\" >> $@ endif ifneq ($(strip $(ADMIN_PROTOCOL)),) @echo adminprotocol=\"$(ADMIN_PROTOCOL)\" >> $@ @@ -262,7 +285,11 @@ icons: ifneq ($(strip $(SPK_ICON)),) $(create_target_dir) @$(MSG) "Creating PACKAGE_ICON.PNG for $(SPK_NAME)" +ifneq ($(call version_ge, ${TCVERSION}, 7.0),1) (convert $(SPK_ICON) -thumbnail 72x72 -strip - > $(WORK_DIR)/PACKAGE_ICON.PNG) +else + (convert $(SPK_ICON) -thumbnail 64x64 -strip - > $(WORK_DIR)/PACKAGE_ICON.PNG) +endif @$(MSG) "Creating PACKAGE_ICON_256.PNG for $(SPK_NAME)" (convert $(SPK_ICON) -thumbnail 256x256 -strip - > $(WORK_DIR)/PACKAGE_ICON_256.PNG) $(eval SPK_CONTENT += PACKAGE_ICON.PNG PACKAGE_ICON_256.PNG) @@ -275,14 +302,19 @@ info-checksum: .PHONY: wizards wizards: +ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) + @$(MSG) "Create default DSM7 uninstall wizard" + @mkdir -p $(DSM_WIZARDS_DIR) + @find $(SPKSRC_MK)wizard -maxdepth 1 -type f -and \( -name "uninstall_uifile" -or -name "uninstall_uifile_???" \) -print -exec cp -f {} $(DSM_WIZARDS_DIR) \; +endif ifneq ($(strip $(WIZARDS_DIR)),) - @$(MSG) "Preparing DSM Wizards" + @$(MSG) "Create DSM Wizards" @mkdir -p $(DSM_WIZARDS_DIR) @find $${SPKSRC_WIZARDS_DIR} -maxdepth 1 -type f -and \( -name "install_uifile" -or -name "install_uifile_???" -or -name "install_uifile.sh" -or -name "install_uifile_???.sh" -or -name "upgrade_uifile" -or -name "upgrade_uifile_???" -or -name "upgrade_uifile.sh" -or -name "upgrade_uifile_???.sh" -or -name "uninstall_uifile" -or -name "uninstall_uifile_???" -or -name "uninstall_uifile.sh" -or -name "uninstall_uifile_???.sh" \) -print -exec cp -f {} $(DSM_WIZARDS_DIR) \; +endif @find $(DSM_WIZARDS_DIR) -maxdepth 1 -type f -not -name "*.sh" -print -exec chmod 0644 {} \; @find $(DSM_WIZARDS_DIR) -maxdepth 1 -type f -name "*.sh" -print -exec chmod 0755 {} \; $(eval SPK_CONTENT += WIZARD_UIFILES) -endif .PHONY: conf conf: diff --git a/mk/spksrc.tc-flags.mk b/mk/spksrc.tc-flags.mk index b894c1e8065..887dc7b3f44 100644 --- a/mk/spksrc.tc-flags.mk +++ b/mk/spksrc.tc-flags.mk @@ -22,6 +22,10 @@ endif ifeq ($(strip $(TC_DIST_SITE_URL)),) TC_DIST_SITE_URL = https://sourceforge.net/projects/dsgpl/files/Tool%20Chain/$(TC_TYPE)%20$(TC_VERS)%20Tool%20Chains/ +ifeq ($(TC_VERS),7.0) +# we are in beta, please remove me when DSM7.0 is released +TC_DIST_SITE_URL = https://sourceforge.net/projects/dsgpl/files/Tool%20Chain/$(TC_TYPE)%20$(TC_VERS)%20preview%20Tool%20Chains/ +endif endif ifeq ($(strip $(TC_DIST_SITE)),) diff --git a/mk/spksrc.tc-vers.mk b/mk/spksrc.tc-vers.mk index 4db00034094..d728d501336 100644 --- a/mk/spksrc.tc-vers.mk +++ b/mk/spksrc.tc-vers.mk @@ -57,3 +57,7 @@ endif ifeq ($(TC_VERS),6.2.3) TC_BUILD = 25423 endif + +ifeq ($(TC_VERS),7.0) +TC_BUILD = 40000 +endif diff --git a/mk/wizard/uninstall_uifile b/mk/wizard/uninstall_uifile new file mode 100644 index 00000000000..d37e44605f6 --- /dev/null +++ b/mk/wizard/uninstall_uifile @@ -0,0 +1,16 @@ +[{ + "step_title": "Uninstall package", + "items": [{ + "type": "singleselect", + "desc": "Keep or delete package settings.", + "subitems": [{ + "key": "wizard_keep_data", + "desc": "Uninstall only. Keep existing files for future re-installation.", + "defaultValue": true + }, { + "key": "wizard_delete_data", + "desc": "Erase all of the package data files. (Not Recoverable)", + "defaultValue": false + }] + }] +}] diff --git a/toolchain/syno-aarch64-7.0/Makefile b/toolchain/syno-aarch64-7.0/Makefile new file mode 100644 index 00000000000..dc2d7e3629d --- /dev/null +++ b/toolchain/syno-aarch64-7.0/Makefile @@ -0,0 +1,15 @@ +TC_NAME = syno-aarch64 + +TC_ARCH = rtd1296 armada37xx aarch64 +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = rtd1296-gcc730_glibc226_armv8-GPL +TC_DIST_SITE_PATH = Realtek%20RTD129x%20Linux%204.4.180 + +TC_TARGET = aarch64-unknown-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sysroot + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-aarch64-7.0/digests b/toolchain/syno-aarch64-7.0/digests new file mode 100644 index 00000000000..2dd2183e14b --- /dev/null +++ b/toolchain/syno-aarch64-7.0/digests @@ -0,0 +1,3 @@ +rtd1296-gcc730_glibc226_armv8-GPL.txz SHA1 5f4e8d3af9b31110c6cd139de51b662ecd3fe084 +rtd1296-gcc730_glibc226_armv8-GPL.txz SHA256 54042300cdc3ff65e3a1093df47238cf91f37d744592e594f685b46ead73522b +rtd1296-gcc730_glibc226_armv8-GPL.txz MD5 349a6f674c4698df3b9d334ac5c86b5e diff --git a/toolchain/syno-alpine-7.0/Makefile b/toolchain/syno-alpine-7.0/Makefile new file mode 100644 index 00000000000..b7d8102683b --- /dev/null +++ b/toolchain/syno-alpine-7.0/Makefile @@ -0,0 +1,16 @@ +TC_NAME = syno-alpine + +TC_ARCH = alpine alpine4k +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.36 + +TC_DIST = alpine4k-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Annapurna%20Alpine%20Linux%203.10.108 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mfloat-abi=hard -mtune=cortex-a15 -mfpu=neon-vfpv4 -mthumb + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-alpine-7.0/digests b/toolchain/syno-alpine-7.0/digests new file mode 100644 index 00000000000..daeedb4c731 --- /dev/null +++ b/toolchain/syno-alpine-7.0/digests @@ -0,0 +1,3 @@ +alpine4k-gcc730_glibc226_hard-GPL.txz SHA1 a6082db9cc84066ba93da32968fc604e8525f0e9 +alpine4k-gcc730_glibc226_hard-GPL.txz SHA256 db64916271e7274a54f3ec41b3c72bf83b6991a11c56f361e7a57315a0839208 +alpine4k-gcc730_glibc226_hard-GPL.txz MD5 a259283312b3489085fb658dbf768f8f diff --git a/toolchain/syno-apollolake-7.0/Makefile b/toolchain/syno-apollolake-7.0/Makefile new file mode 100644 index 00000000000..f324e1de0a6 --- /dev/null +++ b/toolchain/syno-apollolake-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = apollolake +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = apollolake-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Apollolake%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-apollolake-7.0/digests b/toolchain/syno-apollolake-7.0/digests new file mode 100644 index 00000000000..14ea437008a --- /dev/null +++ b/toolchain/syno-apollolake-7.0/digests @@ -0,0 +1,3 @@ +apollolake-gcc730_glibc226_x86_64-GPL.txz SHA1 3d6a03823ef3465881354d1e68552a9546f9b6c8 +apollolake-gcc730_glibc226_x86_64-GPL.txz SHA256 40d97588d637294afc5b8377482b1ea982bd0acfe87962fbdc714cc350e35502 +apollolake-gcc730_glibc226_x86_64-GPL.txz MD5 d3e7cb99168a2ed98d5a6c1d5f49d8fc diff --git a/toolchain/syno-armada370-7.0/Makefile b/toolchain/syno-armada370-7.0/Makefile new file mode 100644 index 00000000000..d12d2f93b4a --- /dev/null +++ b/toolchain/syno-armada370-7.0/Makefile @@ -0,0 +1,14 @@ +TC_ARCH = armada370 +TC_VERS = 7.0 +TC_KERNEL = 3.2.101 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = armada370-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Marvell%20Armada%20370%20Linux%203.2.101 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3-d16 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armada370-7.0/digests b/toolchain/syno-armada370-7.0/digests new file mode 100644 index 00000000000..9b99377aecf --- /dev/null +++ b/toolchain/syno-armada370-7.0/digests @@ -0,0 +1,3 @@ +armada370-gcc730_glibc226_hard-GPL.txz SHA1 8f0973be4c5f61ae919971cc9f1c1b9cfa76b96c +armada370-gcc730_glibc226_hard-GPL.txz SHA256 bfecbed7099aade4f19bc9250fea373343e45cff15436b61e8c91baa5bdbbec7 +armada370-gcc730_glibc226_hard-GPL.txz MD5 ca60fb63a0ed204f523398051dab171b diff --git a/toolchain/syno-armada375-7.0/Makefile b/toolchain/syno-armada375-7.0/Makefile new file mode 100644 index 00000000000..7bbea9516c2 --- /dev/null +++ b/toolchain/syno-armada375-7.0/Makefile @@ -0,0 +1,14 @@ +TC_ARCH = armada375 +TC_VERS = 7.0 +TC_KERNEL = 3.2.101 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = armada375-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Marvell%20Armada%20375%20Linux%203.2.101 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armada375-7.0/digests b/toolchain/syno-armada375-7.0/digests new file mode 100644 index 00000000000..0219bca1c08 --- /dev/null +++ b/toolchain/syno-armada375-7.0/digests @@ -0,0 +1,3 @@ +armada375-gcc730_glibc226_hard-GPL.txz SHA1 1e3253f06bf24f303134e9030cce73ffdc2d50ec +armada375-gcc730_glibc226_hard-GPL.txz SHA256 a69d36553a2fcb4214e5c126ae5a2173c235ff102ea622eeacb67d36a82bf90f +armada375-gcc730_glibc226_hard-GPL.txz MD5 ae1bf54e0b16955a43fd7b5991d35c14 diff --git a/toolchain/syno-armada38x-7.0/Makefile b/toolchain/syno-armada38x-7.0/Makefile new file mode 100644 index 00000000000..253c179b65d --- /dev/null +++ b/toolchain/syno-armada38x-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = armada38x +TC_VERS = 7.0 +TC_KERNEL = 3.10.108+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = armada38x-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Marvell%20Armada%2038x%20Linux%203.10.108 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armada38x-7.0/digests b/toolchain/syno-armada38x-7.0/digests new file mode 100644 index 00000000000..6f1a9cf6da4 --- /dev/null +++ b/toolchain/syno-armada38x-7.0/digests @@ -0,0 +1,3 @@ +armada38x-gcc730_glibc226_hard-GPL.txz SHA1 0b7adcde222ae902d54edfd6d598a23d65f526b0 +armada38x-gcc730_glibc226_hard-GPL.txz SHA256 38c72d94a1ca2bc58cfc683d632908ec12c6745647c35dfdae66062fde2e7285 +armada38x-gcc730_glibc226_hard-GPL.txz MD5 1789a7a17c177af1993cc030cdff7840 diff --git a/toolchain/syno-armadaxp-7.0/Makefile b/toolchain/syno-armadaxp-7.0/Makefile new file mode 100644 index 00000000000..bd795d77ce0 --- /dev/null +++ b/toolchain/syno-armadaxp-7.0/Makefile @@ -0,0 +1,14 @@ +TC_ARCH = armadaxp +TC_VERS = 7.0 +TC_KERNEL = 3.2.101 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = armadaxp-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Marvell%20Armada%20XP%20Linux%203.2.101 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3-d16 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armadaxp-7.0/digests b/toolchain/syno-armadaxp-7.0/digests new file mode 100644 index 00000000000..f6116f839f9 --- /dev/null +++ b/toolchain/syno-armadaxp-7.0/digests @@ -0,0 +1,3 @@ +armadaxp-gcc730_glibc226_hard-GPL.txz SHA1 d0331bdbff1ca21e5d3b0580228c81dbc6892b80 +armadaxp-gcc730_glibc226_hard-GPL.txz SHA256 6c170cd4054d5dea3e234905cca34de005aad3e49fdd11de7ed489ea1514ebcb +armadaxp-gcc730_glibc226_hard-GPL.txz MD5 8fe37c76c43e9777b55bf8d0c5c469b7 diff --git a/toolchain/syno-armv7-7.0/Makefile b/toolchain/syno-armv7-7.0/Makefile new file mode 100644 index 00000000000..a961b19131c --- /dev/null +++ b/toolchain/syno-armv7-7.0/Makefile @@ -0,0 +1,16 @@ +TC_NAME = syno-armv7 + +# generic toolchain for arm7hf DSM +TC_ARCH = armada370 armada375 armada38x alpine alpine4k armadaxp comcerto2k monaco +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.30 +TC_GLIBC = 2.26 + +TC_DIST = armada38x-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = Marvell%20Armada%2038x%20Linux%203.10.108 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armv7-7.0/digests b/toolchain/syno-armv7-7.0/digests new file mode 100644 index 00000000000..6f1a9cf6da4 --- /dev/null +++ b/toolchain/syno-armv7-7.0/digests @@ -0,0 +1,3 @@ +armada38x-gcc730_glibc226_hard-GPL.txz SHA1 0b7adcde222ae902d54edfd6d598a23d65f526b0 +armada38x-gcc730_glibc226_hard-GPL.txz SHA256 38c72d94a1ca2bc58cfc683d632908ec12c6745647c35dfdae66062fde2e7285 +armada38x-gcc730_glibc226_hard-GPL.txz MD5 1789a7a17c177af1993cc030cdff7840 diff --git a/toolchain/syno-avoton-7.0/Makefile b/toolchain/syno-avoton-7.0/Makefile new file mode 100644 index 00000000000..ee796e41479 --- /dev/null +++ b/toolchain/syno-avoton-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = avoton +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = avoton-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%203.10.108%20%28Avoton%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-avoton-7.0/digests b/toolchain/syno-avoton-7.0/digests new file mode 100644 index 00000000000..a26b4633e78 --- /dev/null +++ b/toolchain/syno-avoton-7.0/digests @@ -0,0 +1,3 @@ +avoton-gcc730_glibc226_x86_64-GPL.txz SHA1 6ada3b4d7065fca46c5aa3f64f4b4a17049e8056 +avoton-gcc730_glibc226_x86_64-GPL.txz SHA256 adc7716b007de589a6e6cebd54c9613fb3ece55936a50264362fdb3cc6a3fce2 +avoton-gcc730_glibc226_x86_64-GPL.txz MD5 5be42d301d16afdb2d17a85334724a10 diff --git a/toolchain/syno-braswell-7.0/Makefile b/toolchain/syno-braswell-7.0/Makefile new file mode 100644 index 00000000000..112508d698d --- /dev/null +++ b/toolchain/syno-braswell-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = braswell +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = braswell-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%203.10.108%20%28Braswell%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-braswell-7.0/digests b/toolchain/syno-braswell-7.0/digests new file mode 100644 index 00000000000..46e17457f99 --- /dev/null +++ b/toolchain/syno-braswell-7.0/digests @@ -0,0 +1,3 @@ +braswell-gcc730_glibc226_x86_64-GPL.txz SHA1 c60558d8019175491da22b13635a3465571ea942 +braswell-gcc730_glibc226_x86_64-GPL.txz SHA256 fe1ac424ca2c91b4d6ff68121de99c7e3740d4d8eaaa1fce1197e587639f7d99 +braswell-gcc730_glibc226_x86_64-GPL.txz MD5 65a52968950cad6bb74a09ea175e175f diff --git a/toolchain/syno-broadwell-7.0/Makefile b/toolchain/syno-broadwell-7.0/Makefile new file mode 100644 index 00000000000..65e1f74f52a --- /dev/null +++ b/toolchain/syno-broadwell-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = broadwell +TC_VERS = 7.0 +TC_KERNEL = 4.4.180+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = broadwell-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Broadwell%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-broadwell-7.0/digests b/toolchain/syno-broadwell-7.0/digests new file mode 100644 index 00000000000..9afe8a54228 --- /dev/null +++ b/toolchain/syno-broadwell-7.0/digests @@ -0,0 +1,3 @@ +broadwell-gcc730_glibc226_x86_64-GPL.txz SHA1 465d7554fcea56b19fcff98aa26b9802617fa79e +broadwell-gcc730_glibc226_x86_64-GPL.txz SHA256 0b70542b2dfd240f6c177dfd19981ef8f3e5baeb659ceb34fe0a22c9e64da35e +broadwell-gcc730_glibc226_x86_64-GPL.txz MD5 e76bee0cb9b51157f3ceedb82c7766ec diff --git a/toolchain/syno-broadwellnk-7.0/Makefile b/toolchain/syno-broadwellnk-7.0/Makefile new file mode 100644 index 00000000000..32f727a4a0f --- /dev/null +++ b/toolchain/syno-broadwellnk-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = broadwellnk +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = broadwellnk-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Broadwellnk%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-broadwellnk-7.0/digests b/toolchain/syno-broadwellnk-7.0/digests new file mode 100644 index 00000000000..e380ecfb0c9 --- /dev/null +++ b/toolchain/syno-broadwellnk-7.0/digests @@ -0,0 +1,3 @@ +broadwellnk-gcc730_glibc226_x86_64-GPL.txz SHA1 7d5d8934271fd090342c76194d87bf525ea9842e +broadwellnk-gcc730_glibc226_x86_64-GPL.txz SHA256 f1c14454d1987a5c4d755f8390fd87502c73716517ae88408c5db07f77922c1e +broadwellnk-gcc730_glibc226_x86_64-GPL.txz MD5 c373572373dcffde3eeb84aea2c86426 diff --git a/toolchain/syno-bromolow-7.0/Makefile b/toolchain/syno-bromolow-7.0/Makefile new file mode 100644 index 00000000000..1e640993104 --- /dev/null +++ b/toolchain/syno-bromolow-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = bromolow +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = bromolow-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20linux%203.10.108%20%28Bromolow%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-bromolow-7.0/digests b/toolchain/syno-bromolow-7.0/digests new file mode 100644 index 00000000000..d93cb5415cd --- /dev/null +++ b/toolchain/syno-bromolow-7.0/digests @@ -0,0 +1,3 @@ +bromolow-gcc730_glibc226_x86_64-GPL.txz SHA1 eaac193a24092e69685e7cdb5b9b962d9b82beca +bromolow-gcc730_glibc226_x86_64-GPL.txz SHA256 3c4d6e5df6f1b5083feb1309677d529549f9528f8e5920fad4a4ccde1fedbce7 +bromolow-gcc730_glibc226_x86_64-GPL.txz MD5 91be7674a8c53e80ce4fffbfb6510241 diff --git a/toolchain/syno-cedarview-7.0/Makefile b/toolchain/syno-cedarview-7.0/Makefile new file mode 100644 index 00000000000..e5f07dc8005 --- /dev/null +++ b/toolchain/syno-cedarview-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = cedarview +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = cedarview-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%203.10.108%20%28Cedarview%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-cedarview-7.0/digests b/toolchain/syno-cedarview-7.0/digests new file mode 100644 index 00000000000..31612f8f92b --- /dev/null +++ b/toolchain/syno-cedarview-7.0/digests @@ -0,0 +1,3 @@ +cedarview-gcc730_glibc226_x86_64-GPL.txz SHA1 aa9bbb6f3fe7f0a9afc19ea75bd5f2b2e1db7347 +cedarview-gcc730_glibc226_x86_64-GPL.txz SHA256 bb5128069e1e6de5535187afd62f9c66ee7d1a8e692b55073624bb418c862533 +cedarview-gcc730_glibc226_x86_64-GPL.txz MD5 472fba82343d13d0919eb36651891f76 diff --git a/toolchain/syno-comcerto2k-7.0/Makefile b/toolchain/syno-comcerto2k-7.0/Makefile new file mode 100644 index 00000000000..352b65b9127 --- /dev/null +++ b/toolchain/syno-comcerto2k-7.0/Makefile @@ -0,0 +1,14 @@ +TC_ARCH = comcerto2k +TC_VERS = 7.0 +TC_KERNEL = 3.2.101 +TC_GCC = 4.9.3 +TC_GLIBC = 2.20 + +TC_DIST = comcerto2k-gcc493_glibc220_hard-GPL +TC_DIST_SITE_PATH = Mindspeed%20Comcerto%202000%20Linux%203.2.101 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mfloat-abi=hard -mtune=cortex-a15 -mfpu=neon-vfpv4 -mthumb + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-comcerto2k-7.0/digests b/toolchain/syno-comcerto2k-7.0/digests new file mode 100644 index 00000000000..bb325410da7 --- /dev/null +++ b/toolchain/syno-comcerto2k-7.0/digests @@ -0,0 +1,3 @@ +comcerto2k-gcc493_glibc220_hard-GPL.txz SHA1 d7a5bbf790488be14ea59218e0564d897fc35b3b +comcerto2k-gcc493_glibc220_hard-GPL.txz SHA256 f70fafcfbff9cb7d375e7739d0d2eb5ec7fa21ab42beaada0ceb322a81042e3d +comcerto2k-gcc493_glibc220_hard-GPL.txz MD5 3cc8d3711c5f4b618e40ac1c6896ae61 diff --git a/toolchain/syno-denverton-7.0/Makefile b/toolchain/syno-denverton-7.0/Makefile new file mode 100644 index 00000000000..28566fc21c4 --- /dev/null +++ b/toolchain/syno-denverton-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = denverton +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = denverton-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Denverton%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-denverton-7.0/digests b/toolchain/syno-denverton-7.0/digests new file mode 100644 index 00000000000..4b4a737e3b9 --- /dev/null +++ b/toolchain/syno-denverton-7.0/digests @@ -0,0 +1,3 @@ +denverton-gcc730_glibc226_x86_64-GPL.txz SHA1 0816af40584cab0d0b37566dfd1fe6db30184a9c +denverton-gcc730_glibc226_x86_64-GPL.txz SHA256 aefc671f8dee62805c44f5f4b0275470f9bc2d73041e3d7c3e3eb8c08f4ecf51 +denverton-gcc730_glibc226_x86_64-GPL.txz MD5 f70d74dfa8813aae1d2ba87390d73363 diff --git a/toolchain/syno-evansport-7.0/Makefile b/toolchain/syno-evansport-7.0/Makefile new file mode 100644 index 00000000000..32012b3dc7b --- /dev/null +++ b/toolchain/syno-evansport-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = evansport +TC_VERS = 7.0 +TC_KERNEL = 3.2.101 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = evansport-gcc730_glibc226_i686-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%203.2.101%20%28Evansport%29 + +TC_TARGET = i686-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-evansport-7.0/digests b/toolchain/syno-evansport-7.0/digests new file mode 100644 index 00000000000..f9baf47660f --- /dev/null +++ b/toolchain/syno-evansport-7.0/digests @@ -0,0 +1,3 @@ +evansport-gcc730_glibc226_i686-GPL.txz SHA1 4771caf7d8ffddfebd97f20a8fc89f779902b4d5 +evansport-gcc730_glibc226_i686-GPL.txz SHA256 8922f0d9afec9cdd6bf465e579e5f9747a855ed71edd7e3340b3ccd36eb104d0 +evansport-gcc730_glibc226_i686-GPL.txz MD5 2a2fcd24c5b52a93f71b92a33a5ff1c5 diff --git a/toolchain/syno-geminilake-7.0/Makefile b/toolchain/syno-geminilake-7.0/Makefile new file mode 100644 index 00000000000..b19872093f3 --- /dev/null +++ b/toolchain/syno-geminilake-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = geminilake +TC_VERS = 7.0 +TC_KERNEL = 4.4.180+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = geminilake-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-geminilake-7.0/digests b/toolchain/syno-geminilake-7.0/digests new file mode 100644 index 00000000000..7375d6e3438 --- /dev/null +++ b/toolchain/syno-geminilake-7.0/digests @@ -0,0 +1,3 @@ +geminilake-gcc730_glibc226_x86_64-GPL.txz SHA1 6872bddab01e63d07568be8ad5e96dee15aa897e +geminilake-gcc730_glibc226_x86_64-GPL.txz SHA256 a36a325eac67c8e42f868317baa3ad275ebfc8fbd19fad2951372ba2a178c461 +geminilake-gcc730_glibc226_x86_64-GPL.txz MD5 710dd6b43262a9de8f5cfd5341b5a314 diff --git a/toolchain/syno-grantley-7.0/Makefile b/toolchain/syno-grantley-7.0/Makefile new file mode 100644 index 00000000000..1382001dd06 --- /dev/null +++ b/toolchain/syno-grantley-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = grantley +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = grantley-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%203.10.108%20%28Grantley%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-grantley-7.0/digests b/toolchain/syno-grantley-7.0/digests new file mode 100644 index 00000000000..aa8731354d8 --- /dev/null +++ b/toolchain/syno-grantley-7.0/digests @@ -0,0 +1,3 @@ +grantley-gcc730_glibc226_x86_64-GPL.txz SHA1 9bb9eda5c51c0659bd58fc4db4cef30dac26e162 +grantley-gcc730_glibc226_x86_64-GPL.txz SHA256 29b060785186fe653ddea2ab50197eb9568913804a2882b8aba96cb3babb5414 +grantley-gcc730_glibc226_x86_64-GPL.txz MD5 e11d4021f09167753cea01f41b7ec589 diff --git a/toolchain/syno-kvmx64-7.0/Makefile b/toolchain/syno-kvmx64-7.0/Makefile new file mode 100644 index 00000000000..938cf81f7a9 --- /dev/null +++ b/toolchain/syno-kvmx64-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = kvmx64 +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = kvmx64-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Kvmx64%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-kvmx64-7.0/digests b/toolchain/syno-kvmx64-7.0/digests new file mode 100644 index 00000000000..fe31f0e92e6 --- /dev/null +++ b/toolchain/syno-kvmx64-7.0/digests @@ -0,0 +1,3 @@ +kvmx64-gcc730_glibc226_x86_64-GPL.txz SHA1 9bfaa101dc96c05dbd10fe8101559093853e559c +kvmx64-gcc730_glibc226_x86_64-GPL.txz SHA256 b60ebaf302e7311e520f61675111d3df7d2f3729b6984454899de25e8378503e +kvmx64-gcc730_glibc226_x86_64-GPL.txz MD5 da921788460a5b4e3d33526cc019de2d diff --git a/toolchain/syno-monaco-7.0/Makefile b/toolchain/syno-monaco-7.0/Makefile new file mode 100644 index 00000000000..93f186e150e --- /dev/null +++ b/toolchain/syno-monaco-7.0/Makefile @@ -0,0 +1,14 @@ +TC_ARCH = monaco +TC_VERS = 7.0 +TC_KERNEL = 3.10.108 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = monaco-gcc730_glibc226_hard-GPL +TC_DIST_SITE_PATH = STMicroelectronics%20Monaco%20Linux%203.10.108 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mcpu=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-monaco-7.0/digests b/toolchain/syno-monaco-7.0/digests new file mode 100644 index 00000000000..d96a486910e --- /dev/null +++ b/toolchain/syno-monaco-7.0/digests @@ -0,0 +1,3 @@ +monaco-gcc730_glibc226_hard-GPL.txz SHA1 daae9799b0d2b4b271193a8fb15615ee11efdf4e +monaco-gcc730_glibc226_hard-GPL.txz SHA256 d640d8bc957cf78a832b1f3752e99fc846b1cc0431dd2bc9901facc35f1fba0e +monaco-gcc730_glibc226_hard-GPL.txz MD5 f07d0518ce30c70ee0095f9faa6e33e5 diff --git a/toolchain/syno-purley-7.0/Makefile b/toolchain/syno-purley-7.0/Makefile new file mode 100644 index 00000000000..21fe989add6 --- /dev/null +++ b/toolchain/syno-purley-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = purley +TC_VERS = 7.0 +TC_KERNEL = 4.4.180+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = purley-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Purley%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-purley-7.0/digests b/toolchain/syno-purley-7.0/digests new file mode 100644 index 00000000000..618581ac027 --- /dev/null +++ b/toolchain/syno-purley-7.0/digests @@ -0,0 +1,3 @@ +purley-gcc730_glibc226_x86_64-GPL.txz SHA1 63d362b1a4d684484537b1d0a67d321f372e84aa +purley-gcc730_glibc226_x86_64-GPL.txz SHA256 d1f869143f9df9a48c9ae8985e892165a379e2bd69db1fd6adbc1742db4a4463 +purley-gcc730_glibc226_x86_64-GPL.txz MD5 b1b14f2da3f2785a92b896fc888da418 diff --git a/toolchain/syno-rtd1296-7.0/Makefile b/toolchain/syno-rtd1296-7.0/Makefile new file mode 100644 index 00000000000..25b04a44826 --- /dev/null +++ b/toolchain/syno-rtd1296-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = rtd1296 +TC_VERS = 7.0 +TC_KERNEL = 4.4.180 +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = rtd1296-gcc730_glibc226_armv8-GPL +TC_DIST_SITE_PATH = Realtek%20RTD129x%20Linux%204.4.180 + +TC_TARGET = aarch64-unknown-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sysroot + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-rtd1296-7.0/digests b/toolchain/syno-rtd1296-7.0/digests new file mode 100644 index 00000000000..2dd2183e14b --- /dev/null +++ b/toolchain/syno-rtd1296-7.0/digests @@ -0,0 +1,3 @@ +rtd1296-gcc730_glibc226_armv8-GPL.txz SHA1 5f4e8d3af9b31110c6cd139de51b662ecd3fe084 +rtd1296-gcc730_glibc226_armv8-GPL.txz SHA256 54042300cdc3ff65e3a1093df47238cf91f37d744592e594f685b46ead73522b +rtd1296-gcc730_glibc226_armv8-GPL.txz MD5 349a6f674c4698df3b9d334ac5c86b5e diff --git a/toolchain/syno-v1000-7.0/Makefile b/toolchain/syno-v1000-7.0/Makefile new file mode 100644 index 00000000000..8e386877122 --- /dev/null +++ b/toolchain/syno-v1000-7.0/Makefile @@ -0,0 +1,13 @@ +TC_ARCH = v1000 +TC_VERS = 7.0 +TC_KERNEL = 4.4.180+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = v1000-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = AMD%20x86%20Linux%204.4.180%20%28v1000%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-v1000-7.0/digests b/toolchain/syno-v1000-7.0/digests new file mode 100644 index 00000000000..65b8d85a9f1 --- /dev/null +++ b/toolchain/syno-v1000-7.0/digests @@ -0,0 +1,3 @@ +v1000-gcc730_glibc226_x86_64-GPL.txz SHA1 ccd0cdc867dcef8dcc703fe758608d4c2cfaf04b +v1000-gcc730_glibc226_x86_64-GPL.txz SHA256 e7152cbd2c64a24e1405339c22a3b95947a539d1f5da5f6b33980ca87b126c30 +v1000-gcc730_glibc226_x86_64-GPL.txz MD5 5093a4ec21e5ea76a88f759064b8747d diff --git a/toolchain/syno-x64-7.0/Makefile b/toolchain/syno-x64-7.0/Makefile new file mode 100644 index 00000000000..7c91f8929b1 --- /dev/null +++ b/toolchain/syno-x64-7.0/Makefile @@ -0,0 +1,15 @@ +TC_NAME = syno-x64 + +TC_ARCH = apollolake avoton braswell broadwell broadwellnk bromolow cedarview denverton dockerx64 geminilake grantley purley kvmx64 v1000 x86 x86_64 +TC_VERS = 7.0 +TC_KERNEL = 4.4.180+ +TC_GCC = 7.3.0 +TC_GLIBC = 2.26 + +TC_DIST = apollolake-gcc730_glibc226_x86_64-GPL +TC_DIST_SITE_PATH = Intel%20x86%20Linux%204.4.180%20%28Apollolake%29 + +TC_TARGET = x86_64-pc-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sys-root + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-x64-7.0/digests b/toolchain/syno-x64-7.0/digests new file mode 100644 index 00000000000..14ea437008a --- /dev/null +++ b/toolchain/syno-x64-7.0/digests @@ -0,0 +1,3 @@ +apollolake-gcc730_glibc226_x86_64-GPL.txz SHA1 3d6a03823ef3465881354d1e68552a9546f9b6c8 +apollolake-gcc730_glibc226_x86_64-GPL.txz SHA256 40d97588d637294afc5b8377482b1ea982bd0acfe87962fbdc714cc350e35502 +apollolake-gcc730_glibc226_x86_64-GPL.txz MD5 d3e7cb99168a2ed98d5a6c1d5f49d8fc diff --git a/toolkit/syno-evansport-7.0/Makefile b/toolkit/syno-evansport-7.0/Makefile new file mode 100644 index 00000000000..9ae44abf62d --- /dev/null +++ b/toolkit/syno-evansport-7.0/Makefile @@ -0,0 +1,6 @@ +TOOLKIT_ARCH = evansport +TOOLKIT_VERS = 7.0 + +TOOLKIT_TARGET = i686-pc-linux-gnu + +include ../../mk/spksrc.toolkit.mk diff --git a/toolkit/syno-evansport-7.0/digests b/toolkit/syno-evansport-7.0/digests new file mode 100644 index 00000000000..e0c027976ba --- /dev/null +++ b/toolkit/syno-evansport-7.0/digests @@ -0,0 +1,3 @@ +ds.evansport-7.0.dev.txz SHA1 be47d9a3147d62bff0827b07d590f428483703a0 +ds.evansport-7.0.dev.txz SHA256 402a326a6c32299074bc1703ff5519f8584cc2da136882314203031c4b3a141d +ds.evansport-7.0.dev.txz MD5 9d1c7f8695f5b7abdb352919344d35ec