From 643d579bdf9591c7fd4af4d39c14305a16437cf1 Mon Sep 17 00:00:00 2001 From: Boyuan Yang <073plan@gmail.com> Date: Tue, 22 Sep 2015 15:36:38 +0800 Subject: [PATCH] Improve Debian packaging script. if debuild or dpkg-buildpackage is used, it will generate 4 packages to fit Debian's packaging policy. --- README.md | 4 +- debian/.gitignore | 5 + debian/README.Debian | 12 +- debian/autopkg.sh | 27 ++ debian/compat | 2 +- debian/control | 47 ++- debian/copyright | 54 +-- debian/copyright.original | 23 ++ debian/docs | 1 + debian/libshadowsocks-dev.install | 3 + debian/libshadowsocks1.install | 3 + debian/libshadowsocks1.symbols | 610 ++++++++++++++++++++++++++++++ debian/rules | 9 +- debian/shadowsocks-libev.install | 3 + debian/shadowsocks-libev.service | 21 + debian/source/format | 1 + 16 files changed, 793 insertions(+), 32 deletions(-) create mode 100644 debian/.gitignore create mode 100755 debian/autopkg.sh create mode 100644 debian/copyright.original create mode 100644 debian/libshadowsocks-dev.install create mode 100644 debian/libshadowsocks1.install create mode 100644 debian/libshadowsocks1.symbols create mode 100644 debian/shadowsocks-libev.install create mode 100644 debian/shadowsocks-libev.service create mode 100644 debian/source/format diff --git a/README.md b/README.md index ffb3b46c..7d99064e 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ sudo apt-get install shadowsocks-libev ``` bash cd shadowsocks-libev -sudo apt-get install build-essential autoconf libtool libssl-dev gawk debhelper -dpkg-buildpackage -us -uc +sudo apt-get install build-essential automake libtool libssl-dev gawk debhelper dh-systemd +sh debian/autopkg.sh cd .. sudo dpkg -i shadowsocks-libev*.deb ``` diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 index 00000000..1f1d1576 --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1,5 @@ +*.substvars +libshadowsocks1/ +libshadowsocks-dbg/ +libshadowsocks-dev/ +tmp/ diff --git a/debian/README.Debian b/debian/README.Debian index 30335ac0..7e5fdd16 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,6 +1,16 @@ shadowsocks-libev for Debian ---------------------- - +The Debian package has added systemd support. By default, the dpkg installer +will enable initscripts if the OS is using sysvinit, and systemd service unit +file if the OS is using systemd. This is done automatically. + +Another problem is that shadowsocks-libev is licensed under GPLv3+. This will +conflict with OpenSSL License when linked against OpenSSL library. As a +result, this package faces licensing problem. Use it at your own risk. + + -- Boyuan Yang <073plan@gmail.com> Fri, 11 Sep 2015 19:08:30 +0800 + +(No special notes.) -- Max Lv Sat, 06 Apr 2013 16:59:15 +0800 diff --git a/debian/autopkg.sh b/debian/autopkg.sh new file mode 100755 index 00000000..64d5866e --- /dev/null +++ b/debian/autopkg.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# Automatic deb packaging script for shadowsocks-libev +# + +set -e +if [ "$(basename $(pwd))x" = "debianx" ]; then + cd .. +else + if [ ! "$(basename $(pwd))x" = "shadowsocks-libevx" ]; then + echo "Unknown Working Directory, won't continue." + exit 1 + fi +fi +git clean -Xdf +git reset --hard HEAD +autoreconf --install +rm -f ../*.tar.xz ../*.deb ../*.tar.gz ../*.build ../*.dsc ../*.changes +CURR_PKG_DIR=$(pwd) +tar -czvf ../$(basename $CURR_PKG_DIR)_$(cat ./configure.ac | grep AC_INIT | grep -o '[0-9]\.[0-9]\.[0-9]').orig.tar.gz . --exclude-vcs +#dh_make --multi --createorig --yes --copyright gpl3 +A=$(which debuild > /dev/null 2> /dev/null; echo $?) +if [ "${A}x" = "0x" ]; then + debuild -us -uc +else + dpkg-buildpackage -us -uc +fi diff --git a/debian/compat b/debian/compat index 7f8f011e..ec635144 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -7 +9 diff --git a/debian/control b/debian/control index 2408b422..8a41e41c 100644 --- a/debian/control +++ b/debian/control @@ -2,8 +2,8 @@ Source: shadowsocks-libev Section: net Priority: extra Maintainer: Max Lv -Build-Depends: debhelper (>= 7.0.50~), libssl-dev (>= 0.9.8), autotools-dev, mime-support, gawk -Standards-Version: 3.8.4 +Build-Depends: debhelper (>= 9), dh-systemd (>= 1.5), pkg-config, libssl-dev (>= 0.9.8), autotools-dev, mime-support, gawk +Standards-Version: 3.9.6 Homepage: http://www.shadowsocks.org Vcs-Git: https://github.com/shadowsocks/shadowsocks-libev.git Vcs-Browser: https://github.com/shadowsocks/shadowsocks-libev @@ -13,5 +13,44 @@ Replaces: shadowsocks (<< 1.5.3-2) Breaks: shadowsocks (<< 1.5.3-2) Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A lightweight and secure socks5 proxy. - Shadowsocks-libev is a lightweight and secure socks5 proxy for embedded devices and low end boxes. +Description: lightweight and secure socks5 proxy + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + +Package: libshadowsocks1 +Architecture: any +Multi-Arch: same +Section: libs +Priority: extra +Breaks: shadowsocks-libev (<< 2.3.1) +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: lightweight and secure socks5 proxy (shared library) + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + This package provides shared libraries. + +Package: libshadowsocks-dev +Architecture: any +Section: libdevel +Priority: extra +Breaks: shadowsocks-libev (<< 2.3.1) +Depends: libshadowsocks1 (= ${binary:Version}), ${misc:Depends} +Description: lightweight and secure socks5 proxy (development files) + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + This package provides C header files for the libraries. + +Package: libshadowsocks-dbg +Architecture: any +Section: debug +Priority: extra +Breaks: shadowsocks-libev (<< 2.3.1) +Depends: libshadowsocks1 (= ${binary:Version}), ${misc:Depends} +Description: debugging symbols for the libshadowsocks1 library + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + This package contains the debugging symbols for libshadowsocks1. diff --git a/debian/copyright b/debian/copyright index b7ed35e2..2fb8e531 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,23 +1,31 @@ -This work was packaged for Debian by: - - Max Lv on Sat, 06 Apr 2013 16:59:15 +0800 - -It was downloaded from: - - https://github.com/madeye/shadowsocks-libev - -Upstream Author(s): - - clowwindy - -Copyright: - - Copyright (C) 2013 Max Lv - -License: - - GPLv3 - -The Debian packaging is: - - Copyright (C) 2013 Max Lv +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: shadowsocks-libev +Upstream-Contact: Max Lv +Source: https://github.com/shadowsocks/shadowsocks-libev + +Files: * +Copyright: 2013-2015 Clow Windy + 2013-2015 Max Lv +License: GPL-3+ + +Files: debian/* +Copyright: 2013-2015 Max Lv + 2015, Boyuan Yang <073plan@gmail.com> +License: GPL-3+ + +License: GPL-3+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/debian/copyright.original b/debian/copyright.original new file mode 100644 index 00000000..b7ed35e2 --- /dev/null +++ b/debian/copyright.original @@ -0,0 +1,23 @@ +This work was packaged for Debian by: + + Max Lv on Sat, 06 Apr 2013 16:59:15 +0800 + +It was downloaded from: + + https://github.com/madeye/shadowsocks-libev + +Upstream Author(s): + + clowwindy + +Copyright: + + Copyright (C) 2013 Max Lv + +License: + + GPLv3 + +The Debian packaging is: + + Copyright (C) 2013 Max Lv diff --git a/debian/docs b/debian/docs index b43bf86b..92c80c5a 100644 --- a/debian/docs +++ b/debian/docs @@ -1 +1,2 @@ README.md +debian/copyright.original diff --git a/debian/libshadowsocks-dev.install b/debian/libshadowsocks-dev.install new file mode 100644 index 00000000..d5033980 --- /dev/null +++ b/debian/libshadowsocks-dev.install @@ -0,0 +1,3 @@ +usr/include/ +usr/lib/*/pkgconfig/ +usr/lib/*/libshadowsocks.so diff --git a/debian/libshadowsocks1.install b/debian/libshadowsocks1.install new file mode 100644 index 00000000..40c1ea51 --- /dev/null +++ b/debian/libshadowsocks1.install @@ -0,0 +1,3 @@ +usr/lib/*/libshadowsocks.so.1 +usr/lib/*/libshadowsocks.so.1.0.0 +usr/lib/*/libshadowsocks.la diff --git a/debian/libshadowsocks1.symbols b/debian/libshadowsocks1.symbols new file mode 100644 index 00000000..08260eeb --- /dev/null +++ b/debian/libshadowsocks1.symbols @@ -0,0 +1,610 @@ +libshadowsocks.so.1 libshadowsocks1 #MINVER# + ERROR@Base 2.3.1 + FATAL@Base 2.3.1 + _crypto_stream_salsa20@Base 2.3.1 + _crypto_stream_salsa20_xor_ic@Base 2.3.1 + _dns_format_code@Base 2.3.1 + acl_contains_ip@Base 2.3.1 + bytes_to_key@Base 2.3.1 + cache_create@Base 2.3.1 + cache_delete@Base 2.3.1 + cache_insert@Base 2.3.1 + cache_key_exist@Base 2.3.1 + cache_lookup@Base 2.3.1 + cache_remove@Base 2.3.1 + cipher_context_init@Base 2.3.1 + cipher_context_release@Base 2.3.1 + cipher_context_set_iv@Base 2.3.1 + cipher_iv_size@Base 2.3.1 + cipher_key_size@Base 2.3.1 + create_remote_socket@Base 2.3.1 + create_server_socket@Base 2.3.1 + crypto_aead_chacha20poly1305_abytes@Base 2.3.1 + crypto_aead_chacha20poly1305_decrypt@Base 2.3.1 + crypto_aead_chacha20poly1305_encrypt@Base 2.3.1 + crypto_aead_chacha20poly1305_keybytes@Base 2.3.1 + crypto_aead_chacha20poly1305_npubbytes@Base 2.3.1 + crypto_aead_chacha20poly1305_nsecbytes@Base 2.3.1 + crypto_auth@Base 2.3.1 + crypto_auth_bytes@Base 2.3.1 + crypto_auth_hmacsha256@Base 2.3.1 + crypto_auth_hmacsha256_bytes@Base 2.3.1 + crypto_auth_hmacsha256_final@Base 2.3.1 + crypto_auth_hmacsha256_init@Base 2.3.1 + crypto_auth_hmacsha256_keybytes@Base 2.3.1 + crypto_auth_hmacsha256_update@Base 2.3.1 + crypto_auth_hmacsha256_verify@Base 2.3.1 + crypto_auth_hmacsha512256@Base 2.3.1 + crypto_auth_hmacsha512256_bytes@Base 2.3.1 + crypto_auth_hmacsha512256_final@Base 2.3.1 + crypto_auth_hmacsha512256_init@Base 2.3.1 + crypto_auth_hmacsha512256_keybytes@Base 2.3.1 + crypto_auth_hmacsha512256_update@Base 2.3.1 + crypto_auth_hmacsha512256_verify@Base 2.3.1 + crypto_auth_hmacsha512@Base 2.3.1 + crypto_auth_hmacsha512_bytes@Base 2.3.1 + crypto_auth_hmacsha512_final@Base 2.3.1 + crypto_auth_hmacsha512_init@Base 2.3.1 + crypto_auth_hmacsha512_keybytes@Base 2.3.1 + crypto_auth_hmacsha512_update@Base 2.3.1 + crypto_auth_hmacsha512_verify@Base 2.3.1 + crypto_auth_keybytes@Base 2.3.1 + crypto_auth_primitive@Base 2.3.1 + crypto_auth_verify@Base 2.3.1 + crypto_box@Base 2.3.1 + crypto_box_afternm@Base 2.3.1 + crypto_box_beforenm@Base 2.3.1 + crypto_box_beforenmbytes@Base 2.3.1 + crypto_box_boxzerobytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_afternm@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_beforenm@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_beforenmbytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_boxzerobytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_keypair@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_macbytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_noncebytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_open@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_open_afternm@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_publickeybytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_secretkeybytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_seed_keypair@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_seedbytes@Base 2.3.1 + crypto_box_curve25519xsalsa20poly1305_zerobytes@Base 2.3.1 + crypto_box_detached@Base 2.3.1 + crypto_box_easy@Base 2.3.1 + crypto_box_keypair@Base 2.3.1 + crypto_box_macbytes@Base 2.3.1 + crypto_box_noncebytes@Base 2.3.1 + crypto_box_open@Base 2.3.1 + crypto_box_open_afternm@Base 2.3.1 + crypto_box_open_detached@Base 2.3.1 + crypto_box_open_easy@Base 2.3.1 + crypto_box_primitive@Base 2.3.1 + crypto_box_publickeybytes@Base 2.3.1 + crypto_box_secretkeybytes@Base 2.3.1 + crypto_box_seed_keypair@Base 2.3.1 + crypto_box_seedbytes@Base 2.3.1 + crypto_box_zerobytes@Base 2.3.1 + crypto_core_hsalsa20@Base 2.3.1 + crypto_core_hsalsa20_constbytes@Base 2.3.1 + crypto_core_hsalsa20_inputbytes@Base 2.3.1 + crypto_core_hsalsa20_keybytes@Base 2.3.1 + crypto_core_hsalsa20_outputbytes@Base 2.3.1 + crypto_core_salsa20@Base 2.3.1 + crypto_core_salsa20_constbytes@Base 2.3.1 + crypto_core_salsa20_inputbytes@Base 2.3.1 + crypto_core_salsa20_keybytes@Base 2.3.1 + crypto_core_salsa20_outputbytes@Base 2.3.1 + crypto_generichash@Base 2.3.1 + crypto_generichash_blake2b@Base 2.3.1 + crypto_generichash_blake2b_bytes@Base 2.3.1 + crypto_generichash_blake2b_bytes_max@Base 2.3.1 + crypto_generichash_blake2b_bytes_min@Base 2.3.1 + crypto_generichash_blake2b_final@Base 2.3.1 + crypto_generichash_blake2b_init@Base 2.3.1 + crypto_generichash_blake2b_init_salt_personal@Base 2.3.1 + crypto_generichash_blake2b_keybytes@Base 2.3.1 + crypto_generichash_blake2b_keybytes_max@Base 2.3.1 + crypto_generichash_blake2b_keybytes_min@Base 2.3.1 + crypto_generichash_blake2b_personalbytes@Base 2.3.1 + crypto_generichash_blake2b_salt_personal@Base 2.3.1 + crypto_generichash_blake2b_saltbytes@Base 2.3.1 + crypto_generichash_blake2b_update@Base 2.3.1 + crypto_generichash_bytes@Base 2.3.1 + crypto_generichash_bytes_max@Base 2.3.1 + crypto_generichash_bytes_min@Base 2.3.1 + crypto_generichash_final@Base 2.3.1 + crypto_generichash_init@Base 2.3.1 + crypto_generichash_keybytes@Base 2.3.1 + crypto_generichash_keybytes_max@Base 2.3.1 + crypto_generichash_keybytes_min@Base 2.3.1 + crypto_generichash_primitive@Base 2.3.1 + crypto_generichash_update@Base 2.3.1 + crypto_hash@Base 2.3.1 + crypto_hash_bytes@Base 2.3.1 + crypto_hash_primitive@Base 2.3.1 + crypto_hash_sha256@Base 2.3.1 + crypto_hash_sha256_bytes@Base 2.3.1 + crypto_hash_sha256_final@Base 2.3.1 + crypto_hash_sha256_init@Base 2.3.1 + crypto_hash_sha256_update@Base 2.3.1 + crypto_hash_sha512@Base 2.3.1 + crypto_hash_sha512_bytes@Base 2.3.1 + crypto_hash_sha512_final@Base 2.3.1 + crypto_hash_sha512_init@Base 2.3.1 + crypto_hash_sha512_update@Base 2.3.1 + crypto_onetimeauth@Base 2.3.1 + crypto_onetimeauth_bytes@Base 2.3.1 + crypto_onetimeauth_final@Base 2.3.1 + crypto_onetimeauth_init@Base 2.3.1 + crypto_onetimeauth_keybytes@Base 2.3.1 + crypto_onetimeauth_poly1305@Base 2.3.1 + crypto_onetimeauth_poly1305_bytes@Base 2.3.1 + crypto_onetimeauth_poly1305_final@Base 2.3.1 + crypto_onetimeauth_poly1305_implementation_name@Base 2.3.1 + crypto_onetimeauth_poly1305_init@Base 2.3.1 + crypto_onetimeauth_poly1305_keybytes@Base 2.3.1 + crypto_onetimeauth_poly1305_set_implementation@Base 2.3.1 + crypto_onetimeauth_poly1305_update@Base 2.3.1 + crypto_onetimeauth_poly1305_verify@Base 2.3.1 + crypto_onetimeauth_primitive@Base 2.3.1 + crypto_onetimeauth_update@Base 2.3.1 + crypto_onetimeauth_verify@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_ll@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_memlimit_interactive@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_opslimit_interactive@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_saltbytes@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_str@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_str_verify@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_strbytes@Base 2.3.1 + crypto_pwhash_scryptsalsa208sha256_strprefix@Base 2.3.1 + crypto_scalarmult@Base 2.3.1 + crypto_scalarmult_base@Base 2.3.1 + crypto_scalarmult_bytes@Base 2.3.1 + crypto_scalarmult_curve25519@Base 2.3.1 + crypto_scalarmult_curve25519_base@Base 2.3.1 + crypto_scalarmult_curve25519_bytes@Base 2.3.1 + crypto_scalarmult_curve25519_scalarbytes@Base 2.3.1 + crypto_scalarmult_primitive@Base 2.3.1 + crypto_scalarmult_scalarbytes@Base 2.3.1 + crypto_secretbox@Base 2.3.1 + crypto_secretbox_boxzerobytes@Base 2.3.1 + crypto_secretbox_detached@Base 2.3.1 + crypto_secretbox_easy@Base 2.3.1 + crypto_secretbox_keybytes@Base 2.3.1 + crypto_secretbox_macbytes@Base 2.3.1 + crypto_secretbox_noncebytes@Base 2.3.1 + crypto_secretbox_open@Base 2.3.1 + crypto_secretbox_open_detached@Base 2.3.1 + crypto_secretbox_open_easy@Base 2.3.1 + crypto_secretbox_primitive@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_boxzerobytes@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_keybytes@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_macbytes@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_noncebytes@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_open@Base 2.3.1 + crypto_secretbox_xsalsa20poly1305_zerobytes@Base 2.3.1 + crypto_secretbox_zerobytes@Base 2.3.1 + crypto_shorthash@Base 2.3.1 + crypto_shorthash_bytes@Base 2.3.1 + crypto_shorthash_keybytes@Base 2.3.1 + crypto_shorthash_primitive@Base 2.3.1 + crypto_shorthash_siphash24@Base 2.3.1 + crypto_shorthash_siphash24_bytes@Base 2.3.1 + crypto_shorthash_siphash24_keybytes@Base 2.3.1 + crypto_sign@Base 2.3.1 + crypto_sign_bytes@Base 2.3.1 + crypto_sign_detached@Base 2.3.1 + crypto_sign_ed25519@Base 2.3.1 + crypto_sign_ed25519_bytes@Base 2.3.1 + crypto_sign_ed25519_detached@Base 2.3.1 + crypto_sign_ed25519_keypair@Base 2.3.1 + crypto_sign_ed25519_open@Base 2.3.1 + crypto_sign_ed25519_pk_to_curve25519@Base 2.3.1 + crypto_sign_ed25519_publickeybytes@Base 2.3.1 + crypto_sign_ed25519_secretkeybytes@Base 2.3.1 + crypto_sign_ed25519_seed_keypair@Base 2.3.1 + crypto_sign_ed25519_seedbytes@Base 2.3.1 + crypto_sign_ed25519_sk_to_curve25519@Base 2.3.1 + crypto_sign_ed25519_sk_to_pk@Base 2.3.1 + crypto_sign_ed25519_sk_to_seed@Base 2.3.1 + crypto_sign_ed25519_verify_detached@Base 2.3.1 + crypto_sign_keypair@Base 2.3.1 + crypto_sign_open@Base 2.3.1 + crypto_sign_primitive@Base 2.3.1 + crypto_sign_publickeybytes@Base 2.3.1 + crypto_sign_secretkeybytes@Base 2.3.1 + crypto_sign_seed_keypair@Base 2.3.1 + crypto_sign_seedbytes@Base 2.3.1 + crypto_sign_verify_detached@Base 2.3.1 + crypto_stream@Base 2.3.1 + crypto_stream_chacha20@Base 2.3.1 + crypto_stream_chacha20_keybytes@Base 2.3.1 + crypto_stream_chacha20_noncebytes@Base 2.3.1 + crypto_stream_chacha20_xor@Base 2.3.1 + crypto_stream_chacha20_xor_ic@Base 2.3.1 + crypto_stream_keybytes@Base 2.3.1 + crypto_stream_noncebytes@Base 2.3.1 + crypto_stream_primitive@Base 2.3.1 + crypto_stream_salsa20@Base 2.3.1 + crypto_stream_salsa20_keybytes@Base 2.3.1 + crypto_stream_salsa20_noncebytes@Base 2.3.1 + crypto_stream_salsa20_xor@Base 2.3.1 + crypto_stream_salsa20_xor_ic@Base 2.3.1 + crypto_stream_xor@Base 2.3.1 + crypto_stream_xsalsa20@Base 2.3.1 + crypto_stream_xsalsa20_keybytes@Base 2.3.1 + crypto_stream_xsalsa20_noncebytes@Base 2.3.1 + crypto_stream_xsalsa20_xor@Base 2.3.1 + crypto_verify_16@Base 2.3.1 + crypto_verify_16_bytes@Base 2.3.1 + crypto_verify_32@Base 2.3.1 + crypto_verify_32_bytes@Base 2.3.1 + crypto_verify_64@Base 2.3.1 + crypto_verify_64_bytes@Base 2.3.1 + daemonize@Base 2.3.1 + dns_a4ptodn@Base 2.3.1 + dns_a4todn@Base 2.3.1 + dns_a4todn_@Base 2.3.1 + dns_a6ptodn@Base 2.3.1 + dns_a6todn@Base 2.3.1 + dns_a6todn_@Base 2.3.1 + dns_active@Base 2.3.1 + dns_add_serv@Base 2.3.1 + dns_add_serv_s@Base 2.3.1 + dns_add_srch@Base 2.3.1 + dns_cancel@Base 2.3.1 + dns_classname@Base 2.3.1 + dns_classtab@Base 2.3.1 + dns_close@Base 2.3.1 + dns_defctx@Base 2.3.1 + dns_dnequal@Base 2.3.1 + dns_dnlabels@Base 2.3.1 + dns_dnlen@Base 2.3.1 + dns_dntodn@Base 2.3.1 + dns_dntop@Base 2.3.1 + dns_dntop_size@Base 2.3.1 + dns_dntosp@Base 2.3.1 + dns_findname@Base 2.3.1 + dns_free@Base 2.3.1 + dns_getdn@Base 2.3.1 + dns_inaddr_arpa_dn@Base 2.3.1 + dns_init@Base 2.3.1 + dns_initparse@Base 2.3.1 + dns_ioevent@Base 2.3.1 + dns_ip6_arpa_dn@Base 2.3.1 + dns_new@Base 2.3.1 + dns_nextrr@Base 2.3.1 + dns_ntop@Base 2.3.1 + dns_open@Base 2.3.1 + dns_parse_a4@Base 2.3.1 + dns_parse_a6@Base 2.3.1 + dns_parse_mx@Base 2.3.1 + dns_parse_naptr@Base 2.3.1 + dns_parse_ptr@Base 2.3.1 + dns_parse_srv@Base 2.3.1 + dns_parse_txt@Base 2.3.1 + dns_ptodn@Base 2.3.1 + dns_pton@Base 2.3.1 + dns_random16@Base 2.3.1 + dns_rcodename@Base 2.3.1 + dns_rcodetab@Base 2.3.1 + dns_reset@Base 2.3.1 + dns_resolve@Base 2.3.1 + dns_resolve_a4@Base 2.3.1 + dns_resolve_a4dnsbl@Base 2.3.1 + dns_resolve_a4dnsbl_txt@Base 2.3.1 + dns_resolve_a4ptr@Base 2.3.1 + dns_resolve_a6@Base 2.3.1 + dns_resolve_a6dnsbl@Base 2.3.1 + dns_resolve_a6dnsbl_txt@Base 2.3.1 + dns_resolve_a6ptr@Base 2.3.1 + dns_resolve_dn@Base 2.3.1 + dns_resolve_mx@Base 2.3.1 + dns_resolve_naptr@Base 2.3.1 + dns_resolve_p@Base 2.3.1 + dns_resolve_rhsbl@Base 2.3.1 + dns_resolve_rhsbl_txt@Base 2.3.1 + dns_resolve_srv@Base 2.3.1 + dns_resolve_txt@Base 2.3.1 + dns_rewind@Base 2.3.1 + dns_set_dbgfn@Base 2.3.1 + dns_set_opt@Base 2.3.1 + dns_set_opts@Base 2.3.1 + dns_set_tmcbck@Base 2.3.1 + dns_setstatus@Base 2.3.1 + dns_skipdn@Base 2.3.1 + dns_sock@Base 2.3.1 + dns_status@Base 2.3.1 + dns_stdrr_finish@Base 2.3.1 + dns_stdrr_size@Base 2.3.1 + dns_strerror@Base 2.3.1 + dns_submit_a4@Base 2.3.1 + dns_submit_a4dnsbl@Base 2.3.1 + dns_submit_a4dnsbl_txt@Base 2.3.1 + dns_submit_a4ptr@Base 2.3.1 + dns_submit_a6@Base 2.3.1 + dns_submit_a6dnsbl@Base 2.3.1 + dns_submit_a6dnsbl_txt@Base 2.3.1 + dns_submit_a6ptr@Base 2.3.1 + dns_submit_dn@Base 2.3.1 + dns_submit_mx@Base 2.3.1 + dns_submit_naptr@Base 2.3.1 + dns_submit_p@Base 2.3.1 + dns_submit_rhsbl@Base 2.3.1 + dns_submit_rhsbl_txt@Base 2.3.1 + dns_submit_srv@Base 2.3.1 + dns_submit_txt@Base 2.3.1 + dns_timeouts@Base 2.3.1 + dns_typename@Base 2.3.1 + dns_typetab@Base 2.3.1 + dns_version@Base 2.3.1 + enc_ctx_init@Base 2.3.1 + enc_get_iv_len@Base 2.3.1 + enc_init@Base 2.3.1 + enc_key_init@Base 2.3.1 + enc_md5@Base 2.3.1 + enc_table_init@Base 2.3.1 + ev_async_send@Base 2.3.1 + ev_async_start@Base 2.3.1 + ev_async_stop@Base 2.3.1 + ev_backend@Base 2.3.1 + ev_break@Base 2.3.1 + ev_check_start@Base 2.3.1 + ev_check_stop@Base 2.3.1 + ev_child_start@Base 2.3.1 + ev_child_stop@Base 2.3.1 + ev_cleanup_start@Base 2.3.1 + ev_cleanup_stop@Base 2.3.1 + ev_clear_pending@Base 2.3.1 + ev_default_loop@Base 2.3.1 + ev_default_loop_ptr@Base 2.3.1 + ev_depth@Base 2.3.1 + ev_embed_start@Base 2.3.1 + ev_embed_stop@Base 2.3.1 + ev_embed_sweep@Base 2.3.1 + ev_embeddable_backends@Base 2.3.1 + ev_feed_event@Base 2.3.1 + ev_feed_fd_event@Base 2.3.1 + ev_feed_signal@Base 2.3.1 + ev_feed_signal_event@Base 2.3.1 + ev_fork_start@Base 2.3.1 + ev_fork_stop@Base 2.3.1 + ev_idle_start@Base 2.3.1 + ev_idle_stop@Base 2.3.1 + ev_invoke@Base 2.3.1 + ev_invoke_pending@Base 2.3.1 + ev_io_start@Base 2.3.1 + ev_io_stop@Base 2.3.1 + ev_iteration@Base 2.3.1 + ev_loop_destroy@Base 2.3.1 + ev_loop_fork@Base 2.3.1 + ev_loop_new@Base 2.3.1 + ev_now@Base 2.3.1 + ev_now_update@Base 2.3.1 + ev_once@Base 2.3.1 + ev_pending_count@Base 2.3.1 + ev_periodic_again@Base 2.3.1 + ev_periodic_start@Base 2.3.1 + ev_periodic_stop@Base 2.3.1 + ev_prepare_start@Base 2.3.1 + ev_prepare_stop@Base 2.3.1 + ev_recommended_backends@Base 2.3.1 + ev_ref@Base 2.3.1 + ev_resume@Base 2.3.1 + ev_run@Base 2.3.1 + ev_set_allocator@Base 2.3.1 + ev_set_invoke_pending_cb@Base 2.3.1 + ev_set_io_collect_interval@Base 2.3.1 + ev_set_loop_release_cb@Base 2.3.1 + ev_set_syserr_cb@Base 2.3.1 + ev_set_timeout_collect_interval@Base 2.3.1 + ev_set_userdata@Base 2.3.1 + ev_signal_start@Base 2.3.1 + ev_signal_stop@Base 2.3.1 + ev_sleep@Base 2.3.1 + ev_stat_start@Base 2.3.1 + ev_stat_stat@Base 2.3.1 + ev_stat_stop@Base 2.3.1 + ev_supported_backends@Base 2.3.1 + ev_suspend@Base 2.3.1 + ev_time@Base 2.3.1 + ev_timer_again@Base 2.3.1 + ev_timer_remaining@Base 2.3.1 + ev_timer_start@Base 2.3.1 + ev_timer_stop@Base 2.3.1 + ev_unref@Base 2.3.1 + ev_userdata@Base 2.3.1 + ev_verify@Base 2.3.1 + ev_version_major@Base 2.3.1 + ev_version_minor@Base 2.3.1 + event_active@Base 2.3.1 + event_add@Base 2.3.1 + event_base_dispatch@Base 2.3.1 + event_base_free@Base 2.3.1 + event_base_get_method@Base 2.3.1 + event_base_loop@Base 2.3.1 + event_base_loopexit@Base 2.3.1 + event_base_new@Base 2.3.1 + event_base_once@Base 2.3.1 + event_base_priority_init@Base 2.3.1 + event_base_set@Base 2.3.1 + event_del@Base 2.3.1 + event_dispatch@Base 2.3.1 + event_get_callback@Base 2.3.1 + event_get_method@Base 2.3.1 + event_get_version@Base 2.3.1 + event_init@Base 2.3.1 + event_loop@Base 2.3.1 + event_loopexit@Base 2.3.1 + event_once@Base 2.3.1 + event_pending@Base 2.3.1 + event_priority_init@Base 2.3.1 + event_priority_set@Base 2.3.1 + event_set@Base 2.3.1 + free_acl@Base 2.3.1 + free_addr@Base 2.3.1 + free_cb@Base 2.3.1 + free_udprelay@Base 2.3.1 + get_cipher_type@Base 2.3.1 + get_digest_type@Base 2.3.1 + get_sockaddr@Base 2.3.1 + get_sockaddr_len@Base 2.3.1 + init_acl@Base 2.3.1 + init_udprelay@Base 2.3.1 + ipmap_done@Base 2.3.1 + ipmap_free@Base 2.3.1 + ipmap_init@Base 2.3.1 + ipmap_ip_get@Base 2.3.1 + ipmap_ip_set@Base 2.3.1 + ipmap_ip_set_network@Base 2.3.1 + ipmap_ipv4_get@Base 2.3.1 + ipmap_ipv4_set@Base 2.3.1 + ipmap_ipv4_set_network@Base 2.3.1 + ipmap_ipv6_get@Base 2.3.1 + ipmap_ipv6_set@Base 2.3.1 + ipmap_ipv6_set_network@Base 2.3.1 + ipmap_is_empty@Base 2.3.1 + ipmap_is_equal@Base 2.3.1 + ipmap_load@Base 2.3.1 + ipmap_memory_size@Base 2.3.1 + ipmap_new@Base 2.3.1 + ipmap_save@Base 2.3.1 + ipmap_save_to_stream@Base 2.3.1 + ipset_assignment_clear@Base 2.3.1 + ipset_assignment_cut@Base 2.3.1 + ipset_assignment_equal@Base 2.3.1 + ipset_assignment_expand@Base 2.3.1 + ipset_assignment_free@Base 2.3.1 + ipset_assignment_get@Base 2.3.1 + ipset_assignment_new@Base 2.3.1 + ipset_assignment_set@Base 2.3.1 + ipset_bdd_iterator_advance@Base 2.3.1 + ipset_bdd_iterator_free@Base 2.3.1 + ipset_bit_array_assignment@Base 2.3.1 + ipset_bool_array_assignment@Base 2.3.1 + ipset_contains_ip@Base 2.3.1 + ipset_contains_ipv4@Base 2.3.1 + ipset_contains_ipv6@Base 2.3.1 + ipset_done@Base 2.3.1 + ipset_expanded_assignment_advance@Base 2.3.1 + ipset_expanded_assignment_free@Base 2.3.1 + ipset_free@Base 2.3.1 + ipset_init@Base 2.3.1 + ipset_init_library@Base 2.3.1 + ipset_ip_add@Base 2.3.1 + ipset_ip_add_network@Base 2.3.1 + ipset_ip_remove@Base 2.3.1 + ipset_ip_remove_network@Base 2.3.1 + ipset_ipv4_add@Base 2.3.1 + ipset_ipv4_add_network@Base 2.3.1 + ipset_ipv4_remove@Base 2.3.1 + ipset_ipv4_remove_network@Base 2.3.1 + ipset_ipv6_add@Base 2.3.1 + ipset_ipv6_add_network@Base 2.3.1 + ipset_ipv6_remove@Base 2.3.1 + ipset_ipv6_remove_network@Base 2.3.1 + ipset_is_empty@Base 2.3.1 + ipset_is_equal@Base 2.3.1 + ipset_iterate@Base 2.3.1 + ipset_iterate_networks@Base 2.3.1 + ipset_iterator_advance@Base 2.3.1 + ipset_iterator_free@Base 2.3.1 + ipset_load@Base 2.3.1 + ipset_memory_size@Base 2.3.1 + ipset_new@Base 2.3.1 + ipset_node_cache_free@Base 2.3.1 + ipset_node_cache_load@Base 2.3.1 + ipset_node_cache_new@Base 2.3.1 + ipset_node_cache_nodes_equal@Base 2.3.1 + ipset_node_cache_nonterminal@Base 2.3.1 + ipset_node_cache_save@Base 2.3.1 + ipset_node_cache_save_dot@Base 2.3.1 + ipset_node_decref@Base 2.3.1 + ipset_node_evaluate@Base 2.3.1 + ipset_node_fprint@Base 2.3.1 + ipset_node_incref@Base 2.3.1 + ipset_node_insert@Base 2.3.1 + ipset_node_iterate@Base 2.3.1 + ipset_node_memory_size@Base 2.3.1 + ipset_node_reachable_count@Base 2.3.1 + ipset_save@Base 2.3.1 + ipset_save_dot@Base 2.3.1 + ipset_save_to_stream@Base 2.3.1 + json_parse@Base 2.3.1 + json_parse_ex@Base 2.3.1 + json_value_free@Base 2.3.1 + json_value_free_ex@Base 2.3.1 + json_value_none@Base 2.3.1 + logfile@Base 2.3.1 + new_server_ctx@Base 2.3.1 + parse_addr@Base 2.3.1 + rand_bytes@Base 2.3.1 + randombytes@Base 2.3.1 + randombytes_buf@Base 2.3.1 + randombytes_close@Base 2.3.1 + randombytes_implementation_name@Base 2.3.1 + randombytes_random@Base 2.3.1 + randombytes_salsa20_implementation@Base 2.3.1 + randombytes_salsa20_implementation_name@Base 2.3.1 + randombytes_salsa20_random@Base 2.3.1 + randombytes_salsa20_random_buf@Base 2.3.1 + randombytes_salsa20_random_close@Base 2.3.1 + randombytes_salsa20_random_stir@Base 2.3.1 + randombytes_salsa20_random_uniform@Base 2.3.1 + randombytes_set_implementation@Base 2.3.1 + randombytes_stir@Base 2.3.1 + randombytes_sysrandom@Base 2.3.1 + randombytes_sysrandom_buf@Base 2.3.1 + randombytes_sysrandom_close@Base 2.3.1 + randombytes_sysrandom_implementation@Base 2.3.1 + randombytes_sysrandom_implementation_name@Base 2.3.1 + randombytes_sysrandom_stir@Base 2.3.1 + randombytes_sysrandom_uniform@Base 2.3.1 + randombytes_uniform@Base 2.3.1 + read_jconf@Base 2.3.1 + run_as@Base 2.3.1 + set_nofile@Base 2.3.1 + setinterface@Base 2.3.1 + setnonblocking@Base 2.3.1 + sodium_allocarray@Base 2.3.1 + sodium_bin2hex@Base 2.3.1 + sodium_free@Base 2.3.1 + sodium_hex2bin@Base 2.3.1 + sodium_init@Base 2.3.1 + sodium_library_version_major@Base 2.3.1 + sodium_library_version_minor@Base 2.3.1 + sodium_malloc@Base 2.3.1 + sodium_memcmp@Base 2.3.1 + sodium_memzero@Base 2.3.1 + sodium_mlock@Base 2.3.1 + sodium_mprotect_noaccess@Base 2.3.1 + sodium_mprotect_readonly@Base 2.3.1 + sodium_mprotect_readwrite@Base 2.3.1 + sodium_munlock@Base 2.3.1 + sodium_runtime_get_cpu_features@Base 2.3.1 + sodium_runtime_has_neon@Base 2.3.1 + sodium_runtime_has_sse2@Base 2.3.1 + sodium_runtime_has_sse3@Base 2.3.1 + sodium_version_string@Base 2.3.1 + ss_check_hash@Base 2.3.3 + ss_decrypt@Base 2.3.1 + ss_decrypt_all@Base 2.3.1 + ss_encrypt@Base 2.3.1 + ss_encrypt_all@Base 2.3.1 + ss_gen_hash@Base 2.3.3 + ss_itoa@Base 2.3.1 + ss_onetimeauth@Base 2.3.1 + ss_onetimeauth_verify@Base 2.3.1 + ss_strndup@Base 2.3.1 + start_ss_local_server@Base 2.3.1 + udns_jraninit@Base 2.3.1 + udns_jranval@Base 2.3.1 + usage@Base 2.3.1 + use_tty@Base 2.3.1 + verbose@Base 2.3.1 diff --git a/debian/rules b/debian/rules index 7813da59..e494abca 100755 --- a/debian/rules +++ b/debian/rules @@ -16,9 +16,16 @@ # This has to be exported to make some magic below work. export DH_OPTIONS +# Enable Multi-Arch support. +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +override_dh_strip: + dh_strip --dbg-package=libshadowsocks-dbg + sed -i "/dependency_libs/ s/'.*'/''/" `find . -name '*.la'` + override_dh_auto_configure: dh_auto_configure -- \ --enable-shared %: - dh $@ + dh $@ --with systemd diff --git a/debian/shadowsocks-libev.install b/debian/shadowsocks-libev.install new file mode 100644 index 00000000..f437c779 --- /dev/null +++ b/debian/shadowsocks-libev.install @@ -0,0 +1,3 @@ +usr/bin/ +usr/share/man/ +debian/config.json etc/shadowsocks-libev diff --git a/debian/shadowsocks-libev.service b/debian/shadowsocks-libev.service new file mode 100644 index 00000000..c540c537 --- /dev/null +++ b/debian/shadowsocks-libev.service @@ -0,0 +1,21 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This file is default for Debian packaging. + +[Unit] +Description=Shadowsocks-libev Default Server Service +After=network.target + +[Service] +Type=simple +User=nobody +ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json + +[Install] +WantedBy=multi-user.target + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt)