summaryrefslogtreecommitdiff
path: root/onlineupdate
diff options
context:
space:
mode:
authorNathan Yee <ny.nathan.yee@gmail.com>2015-07-03 11:09:48 +0200
committerJan Holesovsky <kendy@collabora.com>2015-07-03 13:49:20 +0200
commitba1d870abf1b12fd4ac4ba353d39d20bc9bb3a0e (patch)
treeee65280c6c4c019b1fb940dc71c06cc2282a45d5 /onlineupdate
parent05806f4603476dd150af7770543fea749cc6d10c (diff)
online update: Remove unneeded files.
Change-Id: Id69448d893f7492e7321c6c6f84d6cccc9024220
Diffstat (limited to 'onlineupdate')
-rw-r--r--onlineupdate/README4
-rw-r--r--onlineupdate/source/libmar/sign/moz.build24
-rw-r--r--onlineupdate/source/libmar/src/moz.build30
-rw-r--r--onlineupdate/source/libmar/tool/moz.build58
-rw-r--r--onlineupdate/source/libmar/verify/moz.build32
-rw-r--r--onlineupdate/source/update/common/moz.build29
-rw-r--r--onlineupdate/source/update/src/moz.build30
-rw-r--r--onlineupdate/source/update/updater/automounter_gonk.cxx251
-rw-r--r--onlineupdate/source/update/updater/automounter_gonk.h48
-rw-r--r--onlineupdate/source/update/updater/moz.build13
10 files changed, 2 insertions, 517 deletions
diff --git a/onlineupdate/README b/onlineupdate/README
index 74012d4059a3..539e04ceb03c 100644
--- a/onlineupdate/README
+++ b/onlineupdate/README
@@ -3,5 +3,5 @@ Online update implementation based on Mozilla's MAR format + update mechanism
Parts of this code are copied from the mozilla repository, and adapted to
LibreOffice needs:
-firefox/modules/libmar -> online-update/source/libmar
-firefox/toolkit/mozapps/update -> online-update/source/update
+firefox/modules/libmar -> onlineupdate/source/libmar
+firefox/toolkit/mozapps/update -> onlineupdate/source/update
diff --git a/onlineupdate/source/libmar/sign/moz.build b/onlineupdate/source/libmar/sign/moz.build
deleted file mode 100644
index d7b8d1f8b30f..000000000000
--- a/onlineupdate/source/libmar/sign/moz.build
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-Library('signmar')
-
-UNIFIED_SOURCES += [
- 'mar_sign.c',
- 'nss_secutil.c',
-]
-
-FORCE_STATIC_LIB = True
-
-LOCAL_INCLUDES += [
- '../src',
- '../verify',
-]
-
-DEFINES['MAR_NSS'] = True
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- USE_STATIC_LIBS = True
diff --git a/onlineupdate/source/libmar/src/moz.build b/onlineupdate/source/libmar/src/moz.build
deleted file mode 100644
index 2d25e0849af1..000000000000
--- a/onlineupdate/source/libmar/src/moz.build
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXPORTS += [
- 'mar.h',
- 'mar_cmdline.h',
-]
-
-HOST_SOURCES += [
- 'mar_create.c',
- 'mar_extract.c',
- 'mar_read.c',
-]
-HostLibrary('hostmar')
-
-Library('mar')
-
-UNIFIED_SOURCES += [
- 'mar_create.c',
- 'mar_extract.c',
- 'mar_read.c',
-]
-
-FORCE_STATIC_LIB = True
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- USE_STATIC_LIBS = True
diff --git a/onlineupdate/source/libmar/tool/moz.build b/onlineupdate/source/libmar/tool/moz.build
deleted file mode 100644
index 7cb27da298dc..000000000000
--- a/onlineupdate/source/libmar/tool/moz.build
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-HOST_SOURCES += [
- 'mar.c',
-]
-
-HostProgram('mar')
-
-HOST_USE_LIBS += [
- 'hostmar',
-]
-
-if CONFIG['MOZ_ENABLE_SIGNMAR']:
- Program('signmar')
-
- SOURCES += HOST_SOURCES
-
- USE_LIBS += [
- 'mar',
- 'signmar',
- 'verifymar',
- ]
-
-for var in ('MAR_CHANNEL_ID', 'MOZ_APP_VERSION'):
- DEFINES[var] = '"%s"' % CONFIG[var]
-
-if CONFIG['MOZ_ENABLE_SIGNMAR']:
- USE_LIBS += [
- 'nspr',
- 'nss',
- ]
-else:
- DEFINES['NO_SIGN_VERIFY'] = True
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- USE_STATIC_LIBS = True
-
- OS_LIBS += [
- 'ws2_32',
- ]
- if CONFIG['MOZ_ENABLE_SIGNMAR']:
- OS_LIBS += [
- 'crypt32',
- 'advapi32',
- ]
-elif CONFIG['OS_ARCH'] == 'Darwin':
- OS_LIBS += [
- '-framework Security',
- ]
-
-if CONFIG['HOST_OS_ARCH'] == 'WINNT':
- HOST_OS_LIBS += [
- 'ws2_32',
- ]
diff --git a/onlineupdate/source/libmar/verify/moz.build b/onlineupdate/source/libmar/verify/moz.build
deleted file mode 100644
index 7a6a14227300..000000000000
--- a/onlineupdate/source/libmar/verify/moz.build
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-Library('verifymar')
-
-UNIFIED_SOURCES += [
- 'cryptox.c',
- 'mar_verify.c',
-]
-
-FORCE_STATIC_LIB = True
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- USE_STATIC_LIBS = True
-elif CONFIG['OS_ARCH'] == 'Darwin':
- UNIFIED_SOURCES += [
- 'MacVerifyCrypto.cpp',
- ]
- OS_LIBS += [
- '-framework Security',
- ]
-else:
- DEFINES['MAR_NSS'] = True
- LOCAL_INCLUDES += ['../sign']
-
-LOCAL_INCLUDES += [
- '../src',
-]
-
diff --git a/onlineupdate/source/update/common/moz.build b/onlineupdate/source/update/common/moz.build
deleted file mode 100644
index 044433696efc..000000000000
--- a/onlineupdate/source/update/common/moz.build
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXPORTS += [
- 'readstrings.h',
- 'updatedefines.h',
- 'updatelogging.h',
-]
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
- EXPORTS += [
- 'pathhash.h',
- 'uachelper.h',
- 'updatehelper.cpp',
- 'updatehelper.h',
- ]
-
-Library('updatecommon')
-
-srcdir = '.'
-
-include('sources.mozbuild')
-
-FINAL_LIBRARY = 'xul'
-
-FAIL_ON_WARNINGS = True
diff --git a/onlineupdate/source/update/src/moz.build b/onlineupdate/source/update/src/moz.build
deleted file mode 100644
index 2d25e0849af1..000000000000
--- a/onlineupdate/source/update/src/moz.build
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXPORTS += [
- 'mar.h',
- 'mar_cmdline.h',
-]
-
-HOST_SOURCES += [
- 'mar_create.c',
- 'mar_extract.c',
- 'mar_read.c',
-]
-HostLibrary('hostmar')
-
-Library('mar')
-
-UNIFIED_SOURCES += [
- 'mar_create.c',
- 'mar_extract.c',
- 'mar_read.c',
-]
-
-FORCE_STATIC_LIB = True
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- USE_STATIC_LIBS = True
diff --git a/onlineupdate/source/update/updater/automounter_gonk.cxx b/onlineupdate/source/update/updater/automounter_gonk.cxx
deleted file mode 100644
index 3dff2a1337a1..000000000000
--- a/onlineupdate/source/update/updater/automounter_gonk.cxx
+++ /dev/null
@@ -1,251 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et cindent: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include <android/log.h>
-#include <cutils/android_reboot.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/mount.h>
-#include <sys/reboot.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "automounter_gonk.h"
-#include "updatedefines.h"
-#include "updatelogging.h"
-
-#define LOG_TAG "GonkAutoMounter"
-
-#define GONK_LOG(level, format, ...) \
- LOG((LOG_TAG ": " format "\n", ##__VA_ARGS__)); \
- __android_log_print(level, LOG_TAG, format, ##__VA_ARGS__)
-
-#define LOGI(format, ...) GONK_LOG(ANDROID_LOG_INFO, format, ##__VA_ARGS__)
-#define LOGE(format, ...) GONK_LOG(ANDROID_LOG_ERROR, format, ##__VA_ARGS__)
-
-const char *kGonkMountsPath = "/proc/mounts";
-const char *kGonkSystemPath = "/system";
-
-GonkAutoMounter::GonkAutoMounter() : mDevice(nullptr), mAccess(Unknown)
-{
- if (!RemountSystem(ReadWrite)) {
- LOGE("Could not remount %s as read-write.", kGonkSystemPath);
- }
-}
-
-GonkAutoMounter::~GonkAutoMounter()
-{
- bool result = RemountSystem(ReadOnly);
- free(mDevice);
-
- if (!result) {
- // Don't take any chances when remounting as read-only fails, just reboot.
- Reboot();
- }
-}
-
-void
-GonkAutoMounter::Reboot()
-{
- // The android_reboot wrapper provides more safety, doing fancier read-only
- // remounting and attempting to sync() the filesystem first. If this fails
- // our only hope is to force a reboot directly without these protections.
- // For more, see system/core/libcutils/android_reboot.c
- LOGE("Could not remount %s as read-only, forcing a system reboot.",
- kGonkSystemPath);
- LogFlush();
-
- if (android_reboot(ANDROID_RB_RESTART, 0, nullptr) != 0) {
- LOGE("Safe system reboot failed, attempting to force");
- LogFlush();
-
- if (reboot(RB_AUTOBOOT) != 0) {
- LOGE("CRITICAL: Failed to force restart");
- }
- }
-}
-
-static const char *
-MountAccessToString(MountAccess access)
-{
- switch (access) {
- case ReadOnly: return "read-only";
- case ReadWrite: return "read-write";
- default: return "unknown";
- }
-}
-
-bool
-GonkAutoMounter::RemountSystem(MountAccess access)
-{
- if (!UpdateMountStatus()) {
- return false;
- }
-
- if (mAccess == access) {
- return true;
- }
-
- unsigned long flags = MS_REMOUNT;
- if (access == ReadOnly) {
- flags |= MS_RDONLY;
- // Give the system a chance to flush file buffers
- sync();
- }
-
- if (!MountSystem(flags)) {
- return false;
- }
-
- // Check status again to verify /system has been properly remounted
- if (!UpdateMountStatus()) {
- return false;
- }
-
- if (mAccess != access) {
- LOGE("Updated mount status %s should be %s",
- MountAccessToString(mAccess),
- MountAccessToString(access));
- return false;
- }
-
- return true;
-}
-
-bool
-GonkAutoMounter::UpdateMountStatus()
-{
- FILE *mountsFile = NS_tfopen(kGonkMountsPath, "r");
-
- if (mountsFile == nullptr) {
- LOGE("Error opening %s: %s", kGonkMountsPath, strerror(errno));
- return false;
- }
-
- // /proc/mounts returns a 0 size from fstat, so we use the same
- // pre-allocated buffer size that ADB does here
- const int mountsMaxSize = 4096;
- char mountData[mountsMaxSize];
- size_t read = fread(mountData, 1, mountsMaxSize - 1, mountsFile);
- mountData[read + 1] = '\0';
-
- if (ferror(mountsFile)) {
- LOGE("Error reading %s, %s", kGonkMountsPath, strerror(errno));
- fclose(mountsFile);
- return false;
- }
-
- char *token, *tokenContext;
- bool foundSystem = false;
-
- for (token = strtok_r(mountData, "\n", &tokenContext);
- token;
- token = strtok_r(nullptr, "\n", &tokenContext))
- {
- if (ProcessMount(token)) {
- foundSystem = true;
- break;
- }
- }
-
- fclose(mountsFile);
-
- if (!foundSystem) {
- LOGE("Couldn't find %s mount in %s", kGonkSystemPath, kGonkMountsPath);
- }
- return foundSystem;
-}
-
-bool
-GonkAutoMounter::ProcessMount(const char *mount)
-{
- const int strSize = 256;
- char mountDev[strSize];
- char mountDir[strSize];
- char mountAccess[strSize];
-
- int rv = sscanf(mount, "%255s %255s %*s %255s %*d %*d\n",
- mountDev, mountDir, mountAccess);
- mountDev[strSize - 1] = '\0';
- mountDir[strSize - 1] = '\0';
- mountAccess[strSize - 1] = '\0';
-
- if (rv != 3) {
- return false;
- }
-
- if (strcmp(kGonkSystemPath, mountDir) != 0) {
- return false;
- }
-
- free(mDevice);
- mDevice = strdup(mountDev);
- mAccess = Unknown;
-
- char *option, *optionContext;
- for (option = strtok_r(mountAccess, ",", &optionContext);
- option;
- option = strtok_r(nullptr, ",", &optionContext))
- {
- if (strcmp("ro", option) == 0) {
- mAccess = ReadOnly;
- break;
- } else if (strcmp("rw", option) == 0) {
- mAccess = ReadWrite;
- break;
- }
- }
-
- return true;
-}
-
-/*
- * Mark the given block device as read-write or read-only, using the BLKROSET
- * ioctl.
- */
-static void SetBlockReadWriteStatus(const char *blockdev, bool setReadOnly) {
- int fd;
- int roMode = setReadOnly ? 1 : 0;
-
- fd = open(blockdev, O_RDONLY);
- if (fd < 0) {
- return;
- }
-
- if (ioctl(fd, BLKROSET, &roMode) == -1) {
- LOGE("Error setting read-only mode on %s to %s: %s", blockdev,
- setReadOnly ? "true": "false", strerror(errno));
- }
- close(fd);
-}
-
-
-bool
-GonkAutoMounter::MountSystem(unsigned long flags)
-{
- if (!mDevice) {
- LOGE("No device was found for %s", kGonkSystemPath);
- return false;
- }
-
- // Without setting the block device ro mode to false, we get a permission
- // denied error while trying to remount it in read-write.
- SetBlockReadWriteStatus(mDevice, (flags & MS_RDONLY));
-
- const char *readOnly = flags & MS_RDONLY ? "read-only" : "read-write";
- int result = mount(mDevice, kGonkSystemPath, "none", flags, nullptr);
-
- if (result != 0) {
- LOGE("Error mounting %s as %s: %s", kGonkSystemPath, readOnly,
- strerror(errno));
- return false;
- }
-
- LOGI("Mounted %s partition as %s", kGonkSystemPath, readOnly);
- return true;
-}
diff --git a/onlineupdate/source/update/updater/automounter_gonk.h b/onlineupdate/source/update/updater/automounter_gonk.h
deleted file mode 100644
index 1300d39003aa..000000000000
--- a/onlineupdate/source/update/updater/automounter_gonk.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et cindent: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef AUTOMOUNTER_GONK_H__
-#define AUTOMOUNTER_GONK_H__
-
-typedef enum {
- ReadOnly,
- ReadWrite,
- Unknown
-} MountAccess;
-
-/**
- * This class will remount the /system partition as read-write in Gonk to allow
- * the updater write access. Upon destruction, /system will be remounted back to
- * read-only. If something causes /system to remain read-write, this class will
- * reboot the device and allow the system to mount as read-only.
- *
- * Code inspired from AOSP system/core/adb/remount_service.c
- */
-class GonkAutoMounter
-{
-public:
- GonkAutoMounter();
- ~GonkAutoMounter();
-
- const MountAccess GetAccess()
- {
- return mAccess;
- }
-
-private:
- bool RemountSystem(MountAccess access);
- bool ForceRemountReadOnly();
- bool UpdateMountStatus();
- bool ProcessMount(const char *mount);
- bool MountSystem(unsigned long flags);
- void Reboot();
-
-private:
- char *mDevice;
- MountAccess mAccess;
-};
-
-#endif // AUTOMOUNTER_GONK_H__
diff --git a/onlineupdate/source/update/updater/moz.build b/onlineupdate/source/update/updater/moz.build
deleted file mode 100644
index d5b1d5046062..000000000000
--- a/onlineupdate/source/update/updater/moz.build
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-Program('updater')
-
-updater_rel_path = ''
-include('updater-common.build')
-if CONFIG['ENABLE_TESTS']:
- DIRS += ['updater-xpcshell']
-FAIL_ON_WARNINGS = True