diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-08-16 12:23:25 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-08-16 12:23:25 -0700 |
commit | 3624ecb5457493ac5f965956f36d81f567bb8114 (patch) | |
tree | be51e6d8be31aa25611d762ddce6da9d07a93361 | |
parent | 79b4ce92d8f979741b3cf1ed9552f047e73c8c9d (diff) | |
parent | 6951ca513f697811cfe8d3fa88298a1bd894f5b4 (diff) |
Merge tag 'v1.2.2'
-rw-r--r-- | .github/workflows/ci.yml | 101 | ||||
-rw-r--r-- | .travis.yml | 47 | ||||
-rwxr-xr-x | .travis/obs.sh | 17 | ||||
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | facebook/facebook-api.c | 8 | ||||
-rw-r--r-- | facebook/facebook-api.h | 2 | ||||
-rw-r--r-- | facebook/facebook-data.c | 5 | ||||
-rw-r--r-- | facebook/facebook-http.c | 11 | ||||
-rw-r--r-- | facebook/facebook-json.c | 6 | ||||
-rw-r--r-- | facebook/facebook-mqtt.c | 11 | ||||
-rw-r--r-- | facebook/facebook-thrift.c | 6 | ||||
-rw-r--r-- | facebook/facebook.c | 10 |
13 files changed, 144 insertions, 92 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..097ee98 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,101 @@ +name: CI + +on: + - pull_request + - push + +jobs: + build: + runs-on: ubuntu-16.04 + + steps: + - uses: actions/checkout@v2 + - name: Dependencies + run: | + sudo apt-get update -y + sudo apt-get install -y --no-install-recommends clang git make pkg-config libgnutls28-dev libgcrypt20-dev libjson-glib-dev #osc + + - uses: actions/cache@v2 + id: cache + with: + path: /tmp/bitlbee/ + key: bitlbee + + - name: clone bitlbee + if: steps.cache.outputs.cache-hit != 'true' + run: | + git clone https://github.com/bitlbee/bitlbee /tmp/bitlbee + + - name: build bitlbee + run: | + cd /tmp/bitlbee + git pull --ff-only + + ./configure \ + --events=glib \ + --ssl=gnutls \ + --doc=0 \ + --jabber=0 \ + --msn=0 \ + --oscar=0 \ + --twitter=0 \ + --yahoo=0 + + make + sudo make install install-dev + + - name: bitlbee-facebook + run: | + CFLAGS="-Werror" ./autogen.sh --enable-warnings + make all clean + - name: scan-build + run: | + scan-build -k --status-bugs make all clean + + obs: + if: ${{github.ref == 'refs/head/master' && github.event_name == 'push'}} + runs-on: ubuntu-20.04 + needs: build + + steps: + - uses: actions/checkout@v2 + + - uses: actions/cache@v2 + id: cache + with: + path: | + /tmp/bitlbee/ + key: bitlbee + + - name: bitlbee headers + run: | + cd /tmp/bitlbee + sudo make install install-dev + + - name: Dependencies + run: | + echo "deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs) ./" \ + | sudo tee /etc/apt/sources.list.d/suse.list + + ## this key expired literally three days ago: + ## + ## pub rsa2048 2018-09-25 [SC] [expired: 2020-12-03] + ## FCADAFC81273B9E7F184F2B0826659A9013E5B65 + ## uid openSUSE:Tools OBS Project <openSUSE:Tools@build.opensuse.org> + # + #curl -s "http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs)/Release.key" \ + # | sudo apt-key add - + # + ## and for Mysterious Reasons this other key exists with the same fingerprint, + ## but expiring three years later: + curl -s "https://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_Tumbleweed/repodata/repomd.xml.key" \ + | sudo apt-key add - + + sudo apt-get update -y + sudo apt-get install -y --no-install-recommends osc + - name: Send job to OBS + env: + OBSUSER: ${{ secrets.OBSUSER }} + OBSPASS: ${{ secrets.OBSPASS }} + run: | + .travis/obs.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0552ba0..0000000 --- a/.travis.yml +++ /dev/null @@ -1,47 +0,0 @@ -language: c - -notifications: - email: false - -os: - - linux - -compiler: - - gcc - -env: - global: - - secure: "TEmTAAN05PO2xTeF/UvmirkFJIUuzYemI6azQRlzhEu/71qMppKcLgnTd6xbQIpOJr96FsDvagC/56XaL0682YjbCATFQft3aD+XtIV8DsGE0edpR8rPTaztwQ7ZYooigRuhe02nWu3g1f8N/3QL9aMUlUCVbvdSPL9c2yB9sFM=" - - secure: "hBqs4rtUTPCOMcrovwqFbWiG7j17T/3jAwtm/5N3c8F7nkiMI/oba6AI7OATYekp+H6oPXD2VpVuFUVklxN9LVzgMybnKx7DNcUyOCCMmBThfRZg+21ActpgYaboynRsyZXCGzqAgGfJRhT8rteLfUNe0uepBe6TBoTEpDO4Gks=" - - secure: "RyCpkq3KU8zftQfD54rNERzzygzLfJtQQXG13LnsIj3NSx5Attr6aM1lZKLWEEgjpkiEuhXkmcwmOuQJfEqYHxYQ24SSKihE9AvEBrOGNuY8CB4SFZEs+atRgovi2SrttdVOU3AzlZSgUUAaHNBUaC7QgimODAyCPV9KfuQkJEw=" - - COVERITY_SCAN_PROJECT_NAME=jgeboski/bitlbee-facebook - - COVERITY_SCAN_NOTIFICATION_EMAIL=nope - - COVERITY_SCAN_BUILD_COMMAND=make - - COVERITY_SCAN_BRANCH_PATTERN=coverity_scan - - MY_DEPLOY_BRANCH=master - -before_install: - - echo "deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs) ./" - | sudo tee /etc/apt/sources.list.d/suse.list - - curl -s "http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs)/Release.key" - | sudo apt-key add - - - sudo apt-get update -qq - - sudo apt-get install -qq - --no-install-recommends - clang - libjson-glib-dev - osc - libgnutls28-dev - libgcrypt20-dev - -install: - - .travis/bitlbee.sh - -script: - - CFLAGS="-Werror" ./autogen.sh --enable-warnings - - make all clean - - scan-build -k --status-bugs make all clean - -after_success: - - curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true - - .travis/obs.sh diff --git a/.travis/obs.sh b/.travis/obs.sh index 7292750..fe33b27 100755 --- a/.travis/obs.sh +++ b/.travis/obs.sh @@ -1,13 +1,11 @@ #!/bin/bash -[ "${TRAVIS_PULL_REQUEST}" == "false" -a \ - "${TRAVIS_BRANCH}" == "${MY_DEPLOY_BRANCH}" \ -] || exit set -e -FULLVERS="$(date +%Y%m%d)~$(git rev-parse --short=7 HEAD)~${TRAVIS_BUILD_NUMBER}" +FULLVERS="$(date +%Y%m%d)~$(git rev-parse --short=7 HEAD)~${GITHUB_RUN_NUMBER}" FULLDATE=$(date -R) -REPONAME=$(basename "${TRAVIS_REPO_SLUG}") +REPONAME=$(basename "${GITHUB_REPOSITORY}") +BUILD_DIR=$(pwd) git reset -q --hard git clean -dfqx @@ -16,6 +14,7 @@ sed -ri \ -e "18 s/^(\s+).*(,)\$/\1\[${FULLVERS}\]\2/" \ -e "s|^PKG_CHECK_MODULES\(\[BITLBEE\].*|plugindir=/usr/lib/bitlbee|" \ configure.ac + sed -ri \ -e "s/bitlbee-dev \([^\(\)]+\),?\s*//" \ -e "s/(bitlbee[^ ]*) \(>= 3.4\)/\1 (>= 3.5)/g" \ @@ -29,22 +28,24 @@ ${REPONAME} (${FULLVERS}) UNRELEASED; urgency=medium -- Travis CI <travis@travis-ci.org> ${FULLDATE} EOF -cat <<EOF > ~/.oscrc +mkdir -p ~/.config/osc/ +cat <<EOF > ~/.config/osc/oscrc [general] apiurl = https://api.opensuse.org [https://api.opensuse.org] user = ${OBSUSER} pass = ${OBSPASS} +credentials_mgr_class=osc.credentials.PlaintextConfigFileCredentialsManager EOF mkdir -p m4 cp /usr/local/include/bitlbee/*.h facebook -osc checkout "home:${OBSUSER}" "${REPONAME}" -o /tmp/obs +osc checkout "home:jgeboski" "${REPONAME}" -o /tmp/obs ( cd /tmp/obs rm -f *.{dsc,tar.gz} - dpkg-source -I -b "${TRAVIS_BUILD_DIR}" + dpkg-source -I -b "${BUILD_DIR}" osc addremove -r osc commit -m "Updated to ${FULLVERS}" @@ -1,3 +1,9 @@ +bitlbee-facebook-1.2.2 (2021-02-13): + - Fix id assertion in fb_api_cb_publish_mst() + - Increase sync_interval from 5 to 1440 ("The action attempted has been + deemed abusive or is otherwise disallowed") + - Bump the FB_ORCA_AGENT version once again + bitlbee-facebook-1.2.1 (2020-10-20): - Fix "Parse error: unexpected identifier 'taNewMessage'" - Fix "Failed to read thrift: facebook-api.c:1929 fb_api_cb_publish_pt: diff --git a/configure.ac b/configure.ac index 697492c..aae1d0a 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ AC_INIT( [bitlbee-facebook], - [1.2.1], + [1.2.2], [https://github.com/bitlbee/bitlbee-facebook/issues], [bitlbee-facebook], [https://github.com/bitlbee/bitlbee-facebook], @@ -32,7 +32,7 @@ AM_PROG_CC_C_O LT_INIT([disable-static]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -m4_ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99]) +m4_ifdef([AC_PROG_CC], [AC_PROG_CC]) # Define PKG_CHECK_VAR() for pkg-config < 0.28 m4_define_default( @@ -53,7 +53,7 @@ AC_ARG_ENABLE( ) AS_IF( - [test "x$WARNINGS" == "xyes"], + [test "x$WARNINGS" = "xyes"], [CFLAGS="$CFLAGS -Wall -Wextra \ -Waggregate-return \ -Wdeclaration-after-statement \ diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c index 7b21caf..b452ccd 100644 --- a/facebook/facebook-api.c +++ b/facebook/facebook-api.c @@ -100,7 +100,7 @@ fb_api_sticker(FbApi *api, FbId sid, FbApiMessage *msg); void fb_api_contacts_delta(FbApi *api, const gchar *delta_cursor); -G_DEFINE_TYPE(FbApi, fb_api, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbApi, fb_api, G_TYPE_OBJECT); static const gchar *agents[] = { FB_API_AGENT, @@ -240,7 +240,6 @@ fb_api_class_init(FbApiClass *klass) gklass->set_property = fb_api_set_property; gklass->get_property = fb_api_get_property; gklass->dispose = fb_api_dispose; - g_type_class_add_private(klass, sizeof (FbApiPrivate)); /** * FbApi:cid: @@ -599,7 +598,7 @@ fb_api_init(FbApi *api) { FbApiPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(api, FB_TYPE_API, FbApiPrivate); + priv = fb_api_get_instance_private(api); api->priv = priv; priv->http = fb_http_new(FB_API_AGENT); @@ -1544,7 +1543,8 @@ fb_api_cb_publish_mst(FbThrift *thft, GError **error) FB_API_TCHK(fb_thrift_read_field(thft, &type, &id, 0)); FB_API_TCHK(type == FB_THRIFT_TYPE_STRING); - FB_API_TCHK(id == 2); + fb_util_debug_info("fb_api_cb_publish_mst() id: %d", id); + FB_API_TCHK(id == 1 || id == 2); FB_API_TCHK(fb_thrift_read_str(thft, NULL)); FB_API_TCHK(fb_thrift_read_stop(thft)); } diff --git a/facebook/facebook-api.h b/facebook/facebook-api.h index 988dbf5..cecfa05 100644 --- a/facebook/facebook-api.h +++ b/facebook/facebook-api.h @@ -117,7 +117,7 @@ * */ -#define FB_ORCA_AGENT "[FBAN/Orca-Android;FBAV/192.0.0.31.101;FBBV/14477681]" +#define FB_ORCA_AGENT "[FBAN/Orca-Android;FBAV/537.0.0.31.101;FBBV/14477681]" /** * FB_API_AGENT: diff --git a/facebook/facebook-data.c b/facebook/facebook-data.c index 608d725..84dc270 100644 --- a/facebook/facebook-data.c +++ b/facebook/facebook-data.c @@ -37,7 +37,7 @@ static const gchar *fb_props_strs[] = { "token" }; -G_DEFINE_TYPE(FbData, fb_data, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbData, fb_data, G_TYPE_OBJECT); static void fb_data_dispose(GObject *obj) @@ -74,7 +74,6 @@ fb_data_class_init(FbDataClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_data_dispose; - g_type_class_add_private(klass, sizeof (FbDataPrivate)); } static void @@ -82,7 +81,7 @@ fb_data_init(FbData *fata) { FbDataPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(fata, FB_TYPE_DATA, FbDataPrivate); + priv = fb_data_get_instance_private(fata); fata->priv = priv; priv->api = fb_api_new(); diff --git a/facebook/facebook-http.c b/facebook/facebook-http.c index 7335848..d7f2b01 100644 --- a/facebook/facebook-http.c +++ b/facebook/facebook-http.c @@ -47,8 +47,8 @@ struct _FbHttpRequestPrivate gboolean freed; }; -G_DEFINE_TYPE(FbHttp, fb_http, G_TYPE_OBJECT); -G_DEFINE_TYPE(FbHttpRequest, fb_http_request, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbHttp, fb_http, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbHttpRequest, fb_http_request, G_TYPE_OBJECT); static void fb_http_dispose(GObject *obj) @@ -68,7 +68,6 @@ fb_http_class_init(FbHttpClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_http_dispose; - g_type_class_add_private(klass, sizeof (FbHttpPrivate)); } static void @@ -76,7 +75,7 @@ fb_http_init(FbHttp *http) { FbHttpPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(http, FB_TYPE_HTTP, FbHttpPrivate); + priv = fb_http_get_instance_private(http); http->priv = priv; priv->cookies = fb_http_values_new(); @@ -116,7 +115,6 @@ fb_http_request_class_init(FbHttpRequestClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_http_request_dispose; - g_type_class_add_private(klass, sizeof (FbHttpRequestPrivate)); } static void @@ -124,8 +122,7 @@ fb_http_request_init(FbHttpRequest *req) { FbHttpRequestPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(req, FB_TYPE_HTTP_REQUEST, - FbHttpRequestPrivate); + priv = fb_http_request_get_instance_private(req); req->priv = priv; priv->headers = fb_http_values_new(); diff --git a/facebook/facebook-json.c b/facebook/facebook-json.c index 976e4c3..a9a2a4d 100644 --- a/facebook/facebook-json.c +++ b/facebook/facebook-json.c @@ -44,7 +44,7 @@ struct _FbJsonValuesPrivate GError *error; }; -G_DEFINE_TYPE(FbJsonValues, fb_json_values, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbJsonValues, fb_json_values, G_TYPE_OBJECT); static void fb_json_values_dispose(GObject *obj) @@ -79,7 +79,6 @@ fb_json_values_class_init(FbJsonValuesClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_json_values_dispose; - g_type_class_add_private(klass, sizeof (FbJsonValuesPrivate)); } static void @@ -87,8 +86,7 @@ fb_json_values_init(FbJsonValues *values) { FbJsonValuesPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(values, FB_TYPE_JSON_VALUES, - FbJsonValuesPrivate); + priv = fb_json_values_get_instance_private(values); values->priv = priv; priv->queue = g_queue_new(); diff --git a/facebook/facebook-mqtt.c b/facebook/facebook-mqtt.c index 01979e6..e6a2c18 100644 --- a/facebook/facebook-mqtt.c +++ b/facebook/facebook-mqtt.c @@ -51,8 +51,8 @@ struct _FbMqttMessagePrivate gboolean local; }; -G_DEFINE_TYPE(FbMqtt, fb_mqtt, G_TYPE_OBJECT); -G_DEFINE_TYPE(FbMqttMessage, fb_mqtt_message, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbMqtt, fb_mqtt, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbMqttMessage, fb_mqtt_message, G_TYPE_OBJECT); static void fb_mqtt_dispose(GObject *obj) @@ -71,7 +71,6 @@ fb_mqtt_class_init(FbMqttClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_mqtt_dispose; - g_type_class_add_private(klass, sizeof (FbMqttPrivate)); /** * FbMqtt::connect: @@ -146,7 +145,7 @@ fb_mqtt_init(FbMqtt *mqtt) { FbMqttPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(mqtt, FB_TYPE_MQTT, FbMqttPrivate); + priv = fb_mqtt_get_instance_private(mqtt); mqtt->priv = priv; priv->rbuf = g_byte_array_new(); @@ -169,7 +168,6 @@ fb_mqtt_message_class_init(FbMqttMessageClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_mqtt_message_dispose; - g_type_class_add_private(klass, sizeof (FbMqttMessagePrivate)); } static void @@ -177,8 +175,7 @@ fb_mqtt_message_init(FbMqttMessage *msg) { FbMqttMessagePrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(msg, FB_TYPE_MQTT_MESSAGE, - FbMqttMessagePrivate); + priv = fb_mqtt_message_get_instance_private(msg); msg->priv = priv; } diff --git a/facebook/facebook-thrift.c b/facebook/facebook-thrift.c index 164dc21..6ef7fdd 100644 --- a/facebook/facebook-thrift.c +++ b/facebook/facebook-thrift.c @@ -28,7 +28,7 @@ struct _FbThriftPrivate guint lastbool; }; -G_DEFINE_TYPE(FbThrift, fb_thrift, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE(FbThrift, fb_thrift, G_TYPE_OBJECT); static void fb_thrift_dispose(GObject *obj) @@ -46,7 +46,6 @@ fb_thrift_class_init(FbThriftClass *klass) GObjectClass *gklass = G_OBJECT_CLASS(klass); gklass->dispose = fb_thrift_dispose; - g_type_class_add_private(klass, sizeof (FbThriftPrivate)); } static void @@ -54,8 +53,7 @@ fb_thrift_init(FbThrift *thft) { FbThriftPrivate *priv; - priv = G_TYPE_INSTANCE_GET_PRIVATE(thft, FB_TYPE_THRIFT, - FbThriftPrivate); + priv = fb_thrift_get_instance_private(thft); thft->priv = priv; } diff --git a/facebook/facebook.c b/facebook/facebook.c index 0ced73f..9e6d9e3 100644 --- a/facebook/facebook.c +++ b/facebook/facebook.c @@ -212,9 +212,11 @@ fb_sync_contacts_add_timeout(FbData *fata) sync = set_getint(&acct->set, "sync_interval"); - if (sync < 1) { - set_setint(&acct->set, "sync_interval", 1); - sync = 1; + /* if it's 5 minutes or lower, set it to the new default, + * since servers really don't like us syncing that often */ + if (sync <= 5) { + sync = 1440; + set_setint(&acct->set, "sync_interval", sync); } sync *= 60 * 1000; @@ -772,7 +774,7 @@ fb_init(account_t *acct) set_add(&acct->set, "mark_read", "false", fb_eval_mark_read, acct); set_add(&acct->set, "mark_read_reply", "false", set_eval_bool, acct); set_add(&acct->set, "show_unread", "false", set_eval_bool, acct); - set_add(&acct->set, "sync_interval", "5", set_eval_int, acct); + set_add(&acct->set, "sync_interval", "1440", set_eval_int, acct); set_add(&acct->set, "work", "false", set_eval_bool, acct); } |