Skip to content

Commit

Permalink
Intel(R) SGX DCAP 1.9 Release
Browse files Browse the repository at this point in the history
Added Ubuntu 20.04 support.
Added Intel Provisioning Certification Service V3 API support for ECDSA attestation.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
  • Loading branch information
llly committed Nov 11, 2020
1 parent 2ebedc5 commit 9897632
Show file tree
Hide file tree
Showing 218 changed files with 9,657 additions and 5,446 deletions.
54 changes: 33 additions & 21 deletions QuoteGeneration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ For Windows* OS
**NOTE**:`sgx_dcap_dev.inf` is for Windows* Server 2016 LTSC and `sgx_dcap.inf` is for Windows* Server 2019 LTSC.

## How to install
Refer to the *"Installation Instructions"* section in the [Intel(R) Software Guard Extensions: Data Center Attestation Primitives Installation Guide For Windows* OS](https://download.01.org/intel-sgx/sgx-dcap/1.8/windows/docs/Intel_SGX_DCAP_Windows_SW_Installation_Guide.pdf) to install the right packages on your platform.
Refer to the *"Installation Instructions"* section in the [Intel(R) Software Guard Extensions: Data Center Attestation Primitives Installation Guide For Windows* OS](https://download.01.org/intel-sgx/sgx-dcap/1.9/windows/docs/Intel_SGX_DCAP_Windows_SW_Installation_Guide.pdf) to install the right packages on your platform.


For Linux* OS
Expand All @@ -48,20 +48,31 @@ For Linux* OS
* Ubuntu* 16.04 LTS Server 64bits - minimal kernel 4.10
* Ubuntu* 18.04 LTS Desktop 64bits
* Ubuntu* 18.04 LTS Server 64bits
* Red Hat Enterprise Linux Server release 8.0 64bits
* Ubuntu* 20.04 LTS Server 64bits
* Red Hat Enterprise Linux Server release 8.2 64bits
* CentOS 8.2 64bits
- Ensure that you have the following required hardware:
* 8th Generation Intel(R) Core(TM) Processor or newer with **Flexible Launch Control** support*
* Intel(R) Atom(TM) Processor with **Flexible Launch Control** support*
- Configure the system with the **SGX hardware enabled** option.
- Use the following command(s) to install the required tools to build the Intel(R) SGX software:
* On Ubuntu 16.04 and Ubuntu 18.04
```
$ sudo apt-get install build-essential wget python debhelper zip
$ sudo apt-get install build-essential wget python debhelper zip libcurl4-openssl-dev
```
* On Red Hat Enterprise Linux 8.0
* On Ubuntu 20.04
```
$ sudo apt-get install build-essential wget python-is-python3 debhelper zip libcurl4-openssl-dev
```
* On Red Hat Enterprise Linux 8.2
```
$ sudo yum groupinstall 'Development Tools'
$ sudo yum install wget python rpm-build zip
$ sudo yum install wget python2 rpm-build zip
```
* On CentOS 8.2
```
$ sudo dnf group install 'Development Tools'
$ sudo dnf --enablerepo=PowerTools install wget python2 rpm-build zip
```
- Install latest prebuilt Intel(R) SGX SDK Installer from [01.org](https://01.org/intel-software-guard-extensions/downloads)
```
Expand Down Expand Up @@ -103,20 +114,20 @@ A `README.md` is provided in the Intel(R) SGX driver package for Intel(R) SGX DC
$ make DEBUG=1
```
- To build the Intel(R) SGX DCAP Quote Generation Library and the Intel(R) SGX Default Quote Provider Library installers, enter the following command:
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ make deb_pkg
```
You can find the generated installers located under `linux/installer/deb/`.
**Note**: On Ubuntu 18.04, the above command also generates another debug symbol package with extension name of `.ddeb` for debug purpose. On Ubuntu 16.04, if you want to keep debug symbols, you need to export an environment variable to ensure the debug symbols not stripped:
**Note**: On Ubuntu 18.04 and Ubuntu 20.04, the above command also generates another debug symbol package with extension name of `.ddeb` for debug purpose. On Ubuntu 16.04, if you want to keep debug symbols, you need to export an environment variable to ensure the debug symbols not stripped:
```
$ export DEB_BUILD_OPTIONS="nostrip"
```
**Note**: The above command builds the installers with default configuration firstly and then generates the target installers. To build the installers without optimization and with full debug information kept in the libraries, enter the following command:
```
$ make deb_pkg DEBUG=1
```
* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ make rpm_pkg
```
Expand All @@ -128,60 +139,61 @@ A `README.md` is provided in the Intel(R) SGX driver package for Intel(R) SGX DC

## Install the Intel(R) SGX DCAP Quote Generation Library Package
- Install prebuilt Intel(R) SGX common loader and other prerequisites from [01.org](https://01.org/intel-software-guard-extensions/downloads)
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ sudo dpkg -i --force-overwrite libsgx-ae-pce_*.deb libsgx-ae-qe3_*.deb libsgx-ae-qve_*.deb libsgx-enclave-common_*.deb libsgx-urts_*.deb
```
**NOTE**: Because we've split libsgx-enclave-common into multiple packages since 2.8 release, you need to add `--force-overwrite` to overwrite existing files if you've installed libsgx-enclave-common < 2.8. If you're doing a fresh install, you can omit this option.
**NOTE**: Sometimes we will split old package into smaller ones or move files between different packages. In such cases, you need to add `--force-overwrite` to overwrite existing files. If you're doing a fresh install, you can omit this option.

* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ sudo rpm -ivh libsgx-ae-pce*.rpm libsgx-ae-qe3*.rpm libsgx-ae-qve*.rpm libsgx-enclave-common*.rpm libsgx-urts*.rpm
```
**NOTE**: If you're not doing a fresh install, please replace option `-i` to `-U` to avoid some conflict errors.

- For production systems, package should be installed by the following command:
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ sudo dpkg -i libsgx-dcap-ql_*.deb
```
* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ sudo rpm -ivh libsgx-dcap-ql*.rpm
```

- For development systems, another two packages should be installed by the following commands:
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ sudo dpkg -i libsgx-dcap-ql-dev_*.deb
$ sudo dpkg -i libsgx-dcap-ql-dbgsym_*.deb
```
* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ sudo rpm -ivh libsgx-dcap-ql-devel*.rpm
$ sudo rpm -ivh libsgx-dcap-ql-debuginfo*.rpm
```

## Install the Intel(R) SGX Default Quote Provider Library Package
- For production systems, package should be installed by the following commands:
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ sudo dpkg -i libsgx-dcap-default-qpl_*.deb
$ sudo dpkg -i sgx-dcap-pccs_*.deb
```
* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ sudo rpm -ivh libsgx-dcap-default-qpl*.rpm
$ sudo rpm -ivh sgx-dcap-pccs*.rpm
```
Please refer to /opt/intel/sgx-dcap-pccs/README.md for more details about the installation of sgx-dcap-pccs.
- For development systems, another two packages should be installed by the following commands:
* On Ubuntu 16.04 and Ubuntu 18.04:
* On Ubuntu 16.04, Ubuntu 18.04 and Ubuntu 20.04:
```
$ sudo dpkg -i libsgx-dcap-default-qpl-dev*.deb
$ sudo dpkg -i libsgx-dcap-default-qpl-dev*.deb libsgx-headers*.deb
$ sudo dpkg -i libsgx-dcap-default-qpl-dbgsym*.deb
```
* On Red Hat Enterprise Linux 8.0:
* On Red Hat Enterprise Linux 8.2 and CentOS 8.2:
```
$ sudo rpm -ivh libsgx-dcap-default-qpl-devel*.rpm
$ sudo rpm -ivh libsgx-dcap-default-qpl-devel*.rpm libsgx-headers*.rpm
$ sudo rpm -ivh libsgx-dcap-default-qpl-debuginfo*.rpm
```
8 changes: 4 additions & 4 deletions QuoteGeneration/common/inc/internal/se_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#define STRFILEVER "1.8.100.2"
#define STRFILEVER "1.9.100.3"
#define COPYRIGHT "Copyright (C) 2020 Intel Corporation"
#define FILEVER 1,8,100,2
#define PRODUCTVER 1,8,100,2
#define STRPRODUCTVER "1.8.100.2"
#define FILEVER 1,9,100,3
#define PRODUCTVER 1,9,100,3
#define STRPRODUCTVER "1.9.100.3"
#define COMPANYNAME "Intel Corporation"
#define PRODUCTNAME "Intel® Software Guard Extensions"
6 changes: 3 additions & 3 deletions QuoteGeneration/download_prebuilt.bat
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@

@echo off

set ae_file_name=prebuilt_windows_dcap_1.8.zip
set checksum_file=SHA256SUM_prebuilt_windows_dcap_1.8.txt
set server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.8/windows/
set ae_file_name=prebuilt_windows_dcap_1.9.zip
set checksum_file=SHA256SUM_prebuilt_windows_dcap_1.9.cfg
set server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.9/windows/
set server_ae_url=%server_url_path%/%ae_file_name%
set server_checksum_url=%server_url_path%/%checksum_file%

Expand Down
6 changes: 3 additions & 3 deletions QuoteGeneration/download_prebuilt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

top_dir=`dirname $0`
out_dir=$top_dir
ae_file_name=prebuilt_dcap_1.8.tar.gz
checksum_file=SHA256SUM_prebuilt_dcap_1.8.txt
server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.8/linux
ae_file_name=prebuilt_dcap_1.9.tar.gz
checksum_file=SHA256SUM_prebuilt_dcap_1.9.cfg
server_url_path=https://download.01.org/intel-sgx/sgx-dcap/1.9/linux
server_ae_url=$server_url_path/$ae_file_name
server_checksum_url=$server_url_path/$checksum_file

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,2 @@
DeliveryName InstallName FileCheckSum FileFeature FileOwner
<deliverydir>/quote_wrapper/ql/inc/sgx_dcap_ql_wrapper.h <installdir>/include/sgx_dcap_ql_wrapper.h 0 main STP
<deliverydir>/quote_wrapper/common/inc/sgx_ql_lib_common.h <installdir>/include/sgx_ql_lib_common.h 0 main STP
<deliverydir>/quote_wrapper/common/inc/sgx_quote_3.h <installdir>/include/sgx_quote_3.h 0 main STP
<deliverydir>/quote_wrapper/common/inc/sgx_ql_quote.h <installdir>/include/sgx_ql_quote.h 0 main STP
<deliverydir>/pce_wrapper/inc/sgx_pce.h <installdir>/include/sgx_pce.h 0 main STP

Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ cp ${LINUX_INSTALLER_COMMON_DIR}/gen_source/gen_source.py ${SCRIPT_DIR}
# Copy the files according to the BOM
python ${SCRIPT_DIR}/gen_source.py --bom=BOMs/libsgx-dcap-ql.txt --installdir=pkgroot/libsgx-dcap-ql
python ${SCRIPT_DIR}/gen_source.py --bom=BOMs/libsgx-dcap-ql-dev.txt --cleanup=false --installdir=pkgroot/libsgx-dcap-ql-dev
python ${SCRIPT_DIR}/gen_source.py --bom=BOMs/libsgx-dcap-ql-dev-commoninc.txt --deliverydir=${SGX_SDK}/include --cleanup=false --installdir=pkgroot/libsgx-dcap-ql-dev
python ${SCRIPT_DIR}/gen_source.py --bom=BOMs/libsgx-dcap-ql-package.txt --cleanup=false
python ${SCRIPT_DIR}/gen_source.py --bom=../licenses/BOM_license.txt --cleanup=false

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
DeliveryName InstallName FileCheckSum FileFeature FileOwner
<deliverydir>/pccs/config/production-0.json <installdir>/config/production-0.json 0 main STP
<deliverydir>/pccs/config/default.json <installdir>/config/default.json 0 main STP
<deliverydir>/pccs/constants/index.js <installdir>/constants/index.js 0 main STP
<deliverydir>/pccs/constants/pccs_status_code.js <installdir>/constants/pccs_status_code.js 0 main STP
<deliverydir>/pccs/controllers/identityController.js <installdir>/controllers/identityController.js 0 main STP
Expand All @@ -17,7 +17,8 @@ DeliveryName InstallName FileCheckSum FileFeature FileOwner
<deliverydir>/pccs/dao/models/pck_certchain.js <installdir>/dao/models/pck_certchain.js 0 main STP
<deliverydir>/pccs/dao/models/pck_crl.js <installdir>/dao/models/pck_crl.js 0 main STP
<deliverydir>/pccs/dao/models/pcs_certificates.js <installdir>/dao/models/pcs_certificates.js 0 main STP
<deliverydir>/pccs/dao/models/platform_tcb.js <installdir>/dao/models/platform_tcb.js 0 main STP
<deliverydir>/pccs/dao/models/pcs_version.js <installdir>/dao/models/pcs_version.js 0 main STP
<deliverydir>/pccs/dao/models/platform_tcbs.js <installdir>/dao/models/platform_tcbs.js 0 main STP
<deliverydir>/pccs/dao/models/platforms_registered.js <installdir>/dao/models/platforms_registered.js 0 main STP
<deliverydir>/pccs/dao/models/platforms.js <installdir>/dao/models/platforms.js 0 main STP
<deliverydir>/pccs/dao/models/qe_identities.js <installdir>/dao/models/qe_identities.js 0 main STP
Expand All @@ -27,6 +28,7 @@ DeliveryName InstallName FileCheckSum FileFeature FileOwner
<deliverydir>/pccs/dao/pckcertDao.js <installdir>/dao/pckcertDao.js 0 main STP
<deliverydir>/pccs/dao/pckcrlDao.js <installdir>/dao/pckcrlDao.js 0 main STP
<deliverydir>/pccs/dao/pcsCertificatesDao.js <installdir>/dao/pcsCertificatesDao.js 0 main STP
<deliverydir>/pccs/dao/pcsVersionDao.js <installdir>/dao/pcsVersionDao.js 0 main STP
<deliverydir>/pccs/dao/platformsDao.js <installdir>/dao/platformsDao.js 0 main STP
<deliverydir>/pccs/dao/platformsRegDao.js <installdir>/dao/platformsRegDao.js 0 main STP
<deliverydir>/pccs/dao/platformTcbsDao.js <installdir>/dao/platformTcbsDao.js 0 main STP
Expand All @@ -51,11 +53,13 @@ DeliveryName InstallName FileCheckSum FileFeature FileOwner
<deliverydir>/pccs/services/tcbinfoService.js <installdir>/services/tcbinfoService.js 0 main STP
<deliverydir>/pccs/utils/Logger.js <installdir>/utils/Logger.js 0 main STP
<deliverydir>/pccs/utils/PccsError.js <installdir>/utils/PccsError.js 0 main STP
<deliverydir>/pccs/utils/apputil.js <installdir>/utils/apputil.js 0 main STP
<deliverydir>/pccs/x509/x509.js <installdir>/x509/x509.js 0 main STP
<deliverydir>/pccs/install.sh <installdir>/install.sh 0 main STP
<deliverydir>/pccs/package.json <installdir>/package.json 0 main STP
<deliverydir>/pccs/npm-shrinkwrap.json <installdir>/npm-shrinkwrap.json 0 main STP
<deliverydir>/pccs/pccs_server.js <installdir>/pccs_server.js 0 main STP
<deliverydir>/pccs/pccs_server.config.js <installdir>/pccs_server.config.js 0 main STP
<deliverydir>/pccs/pccs.service <installdir>/pccs.service 0 main STP
<deliverydir>/pccs/README.md <installdir>/README.md 0 main STP
<deliverydir>/installer/linux/common/sgx-dcap-pccs/installConfig <installdir>/installConfig 0 main STP
<deliverydir>/installer/linux/common/sgx-dcap-pccs/Makefile <installdir>/Makefile 0 main STP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives

Package: libsgx-dcap-ql
Architecture: amd64
Depends: libsgx-qe3-logic(>= @dep_version@), libsgx-pce-logic(>= @dep_version@), libsgx-dcap-quote-verify(>= @dep_version@), libsgx-ae-qve(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
Depends: libsgx-qe3-logic(>= @dep_version@), libsgx-pce-logic(>= @dep_version@), libsgx-ae-qve(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
Recommends: libsgx-dcap-quote-verify(>= @dep_version@)
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives

Package: libsgx-dcap-ql-dev
Section: devel
Architecture: amd64
Depends: libsgx-dcap-ql (= @dep_version@)
Depends: libsgx-dcap-ql (= @dep_version@), libsgx-headers (>= 2.12)
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives For Developers
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ Description: Intel(R) Software Guard Extensions Data Center Attestation Primitiv
Package: libsgx-dcap-quote-verify-dev
Section: devel
Architecture: amd64
Depends: libsgx-dcap-quote-verify (= @dep_version@)
Depends: libsgx-dcap-quote-verify (= @dep_version@), libsgx-headers (>= 2.12)
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives For Developers
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives

Package: libsgx-pce-logic
Architecture: amd64
Depends: libsgx-urts (>= 2.11), libsgx-ae-pce(>= 2.11), ${shlibs:Depends}, ${misc:Depends}
Depends: libsgx-urts (>= 2.12), libsgx-ae-pce(>= 2.12), ${shlibs:Depends}, ${misc:Depends}
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives

Package: libsgx-qe3-logic
Architecture: amd64
Depends: libsgx-urts (>= 2.11), libsgx-ae-qe3(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
Depends: libsgx-urts (>= 2.12), libsgx-ae-qe3(>= @dep_version@), ${shlibs:Depends}, ${misc:Depends}
Description: Intel(R) Software Guard Extensions Data Center Attestation Primitives
Original file line number Diff line number Diff line change
@@ -1 +1 @@
@pkg_path@/config/production-0.json
@pkg_path@/config/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ Homepage: https://github.com/intel/SGXDataCenterAttestationPrimitives

Package: sgx-dcap-pccs
Architecture: any
Depends: npm, nodejs
Depends: npm, nodejs, build-essential
Description: Intel(R) Software Guard Extensions PCK Caching Service
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,43 @@ set -e

case "$1" in
configure)
adduser --quiet --system pccs --group --home /opt/intel/sgx-dcap-pccs --no-create-home --shell /bin/bash
chown -R pccs:pccs /opt/intel/sgx-dcap-pccs/
if which pm2 > /dev/null
then
echo "pm2 is installed, continue ..."
else
npm install -g pm2
fi
PCCS_USER=pccs
PCCS_HOME=/opt/intel/sgx-dcap-pccs
adduser --quiet --system $PCCS_USER --group --home $PCCS_HOME --no-create-home --shell /bin/bash
chown -R $PCCS_USER:$PCCS_USER $PCCS_HOME
if [ "${DEBIAN_FRONTEND}" != "noninteractive" ]
then
/bin/su -c "/opt/intel/sgx-dcap-pccs/install.sh postinst" pccs
pm2cfg=`/bin/su -c "pm2 startup systemd | grep 'sudo'" pccs` || true
eval $pm2cfg
/bin/su -c "/opt/intel/sgx-dcap-pccs/install.sh" $PCCS_USER
fi

#Install PCCS as system service
echo -n "Installing PCCS service ..."
if [ -d /run/systemd/system ]; then
PCCS_NAME=pccs.service
PCCS_TEMP=$PCCS_HOME/$PCCS_NAME
if [ -d /lib/systemd/system ]; then
PCCS_DEST=/lib/systemd/system/$PCCS_NAME
else
PCCS_DEST=/usr/lib/systemd/system/$PCCS_NAME
fi
cp $PCCS_TEMP $PCCS_DEST
chmod 0644 $PCCS_DEST
systemctl daemon-reload
systemctl enable pccs
elif [ -d /etc/init/ ]; then
PCCS_NAME=pccs.service
PCCS_TEMP=$PCCS_HOME/$PCCS_NAME
PCCS_DEST=/etc/init/$PCCS_NAME
cp $PCCS_TEMP $PCCS_DEST
chmod 0644 $PCCS_DEST
/sbin/initctl reload-configuration
else
echo "failed."
echo "Unsupported platform - neither systemctl nor initctl was found."
exit 5
fi
echo "finished."
echo "Installation completed successfully."
;;

abort-upgrade|abort-remove|abort-deconfigure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,33 @@ set -e

case "$1" in
remove)
if which pm2 > /dev/null; then
su -c "pm2 stop pccs" pccs || true
su -c "pm2 delete pccs" pccs || true
pm2cfg=`/bin/su -c "pm2 unstartup | grep 'sudo'" - pccs` || true
eval $pm2cfg || true
fi

if [ -d @pkg_path@ ]
then
pushd @pkg_path@ &> /dev/null
rm -rf node_modules || true
popd &> /dev/null
fi

#Remove PCCS system service
echo -n "Uninstalling PCCS service ..."
if [ -d /run/systemd/system ]; then
PCCS_NAME=pccs.service
if [ -d /lib/systemd/system ]; then
PCCS_DEST=/lib/systemd/system/$PCCS_NAME
else
PCCS_DEST=/usr/lib/systemd/system/$PCCS_NAME
fi
systemctl stop pccs || true
systemctl disable pccs || true
rm $PCCS_DEST || true
systemctl daemon-reload
elif [ -d /etc/init/ ]; then
PCCS_NAME=pccs.service
PCCS_DEST=/etc/init/$PCCS_NAME
rm $PCCS_DEST || true
/sbin/initctl reload-configuration
fi
echo "finished."
;;

purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
Expand Down
Loading

0 comments on commit 9897632

Please sign in to comment.