add ethkey & parity-evm todarwin pkg

+new ststus icons
mac/Parity Ethereum.xcodeproj/project.pbxproj
mac/Parity/AppDelegate.swift
mac/Parity/Assets.xcassets/statusIcon.imageset/Parity-1.png
mac/Parity/Assets.xcassets/statusIcon.imageset/Parity-2.png
mac/Parity/Assets.xcassets/statusIcon.imageset/Parity.png
mac/Parity/GetBSDProcessList.swift
mac/install-readme.txt
mac/uninstall-parity.sh
scripts/gitlab-build.sh
This commit is contained in:
Denis S. Soldatov aka General-Beck 2018-01-16 20:30:28 +03:00
parent 04b571b742
commit 2ac2fbdf89
9 changed files with 42 additions and 34 deletions

View File

@ -13,6 +13,8 @@
0ACF9AC71E30FAB600D5C935 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0ACF9AC51E30FAB600D5C935 /* MainMenu.xib */; }; 0ACF9AC71E30FAB600D5C935 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0ACF9AC51E30FAB600D5C935 /* MainMenu.xib */; };
0AE564F11E3CE42C00BD01F7 /* GetBSDProcessList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AE564F01E3CE42C00BD01F7 /* GetBSDProcessList.swift */; }; 0AE564F11E3CE42C00BD01F7 /* GetBSDProcessList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AE564F01E3CE42C00BD01F7 /* GetBSDProcessList.swift */; };
0AED4DA01E3E22F800BF87C0 /* ethstore in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0AED4D9F1E3E22F800BF87C0 /* ethstore */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 0AED4DA01E3E22F800BF87C0 /* ethstore in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0AED4D9F1E3E22F800BF87C0 /* ethstore */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
84CF92B3200E559900AD6E78 /* parity-evm in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84CF92B2200E559900AD6E78 /* parity-evm */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
84CF92B6200E56AE00AD6E78 /* ethkey in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84CF92B5200E56AE00AD6E78 /* ethkey */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
@ -22,6 +24,8 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 6; dstSubfolderSpec = 6;
files = ( files = (
84CF92B6200E56AE00AD6E78 /* ethkey in CopyFiles */,
84CF92B3200E559900AD6E78 /* parity-evm in CopyFiles */,
0AED4DA01E3E22F800BF87C0 /* ethstore in CopyFiles */, 0AED4DA01E3E22F800BF87C0 /* ethstore in CopyFiles */,
0A7A475D1E3D2CDD0093D1AB /* parity in CopyFiles */, 0A7A475D1E3D2CDD0093D1AB /* parity in CopyFiles */,
); );
@ -38,6 +42,8 @@
0ACF9AC81E30FAB600D5C935 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 0ACF9AC81E30FAB600D5C935 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
0AE564F01E3CE42C00BD01F7 /* GetBSDProcessList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetBSDProcessList.swift; sourceTree = "<group>"; }; 0AE564F01E3CE42C00BD01F7 /* GetBSDProcessList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetBSDProcessList.swift; sourceTree = "<group>"; };
0AED4D9F1E3E22F800BF87C0 /* ethstore */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = ethstore; path = ../target/release/ethstore; sourceTree = "<group>"; }; 0AED4D9F1E3E22F800BF87C0 /* ethstore */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = ethstore; path = ../target/release/ethstore; sourceTree = "<group>"; };
84CF92B2200E559900AD6E78 /* parity-evm */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = "parity-evm"; path = "../target/release/parity-evm"; sourceTree = "<group>"; };
84CF92B5200E56AE00AD6E78 /* ethkey */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = ethkey; path = ../target/release/ethkey; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -54,6 +60,8 @@
0ACF9AB51E30FAB600D5C935 = { 0ACF9AB51E30FAB600D5C935 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
84CF92B5200E56AE00AD6E78 /* ethkey */,
84CF92B2200E559900AD6E78 /* parity-evm */,
0AED4D9F1E3E22F800BF87C0 /* ethstore */, 0AED4D9F1E3E22F800BF87C0 /* ethstore */,
0A7A475C1E3D2CDD0093D1AB /* parity */, 0A7A475C1E3D2CDD0093D1AB /* parity */,
0ACF9AC01E30FAB600D5C935 /* Parity Ethereum */, 0ACF9AC01E30FAB600D5C935 /* Parity Ethereum */,
@ -110,7 +118,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastSwiftUpdateCheck = 0800; LastSwiftUpdateCheck = 0800;
LastUpgradeCheck = 0800; LastUpgradeCheck = 0820;
ORGANIZATIONNAME = "Parity Technologies"; ORGANIZATIONNAME = "Parity Technologies";
TargetAttributes = { TargetAttributes = {
0ACF9ABD1E30FAB600D5C935 = { 0ACF9ABD1E30FAB600D5C935 = {
@ -192,6 +200,7 @@
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@ -241,6 +250,7 @@
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;

View File

@ -1,4 +1,4 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd. // Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity. // This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify // Parity is free software: you can redistribute it and/or modify
@ -22,12 +22,12 @@ import Cocoa
class AppDelegate: NSObject, NSApplicationDelegate { class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var statusMenu: NSMenu! @IBOutlet weak var statusMenu: NSMenu!
@IBOutlet weak var startAtLogonMenuItem: NSMenuItem! @IBOutlet weak var startAtLogonMenuItem: NSMenuItem!
let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength) let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
var parityPid: Int32? = nil var parityPid: Int32? = nil
var commandLine: [String] = [] var commandLine: [String] = []
let defaultDefaults = "{\"fat_db\":false,\"mode\":\"passive\",\"mode.alarm\":3600,\"mode.timeout\":300,\"pruning\":\"fast\",\"tracing\":false}" let defaultDefaults = "{\"fat_db\":false,\"mode\":\"passive\",\"mode.alarm\":3600,\"mode.timeout\":300,\"pruning\":\"fast\",\"tracing\":false}"
func menuAppPath() -> String { func menuAppPath() -> String {
return Bundle.main.executablePath! return Bundle.main.executablePath!
} }
@ -40,20 +40,20 @@ class AppDelegate: NSObject, NSApplicationDelegate {
return NSRunningApplication.runningApplications(withBundleIdentifier: Bundle.main.bundleIdentifier!).count > 1 return NSRunningApplication.runningApplications(withBundleIdentifier: Bundle.main.bundleIdentifier!).count > 1
} }
func isParityRunning() -> Bool { func isParityRunning() -> Bool {
if let pid = self.parityPid { if let pid = self.parityPid {
return kill(pid, 0) == 0 return kill(pid, 0) == 0
} }
return false return false
} }
func killParity() { func killParity() {
if let pid = self.parityPid { if let pid = self.parityPid {
kill(pid, SIGKILL) kill(pid, SIGKILL)
} }
} }
func openUI() { func openUI() {
let parity = Process() let parity = Process()
parity.launchPath = self.parityPath() parity.launchPath = self.parityPath()
@ -61,29 +61,29 @@ class AppDelegate: NSObject, NSApplicationDelegate {
parity.arguments!.append("ui") parity.arguments!.append("ui")
parity.launch() parity.launch()
} }
func writeConfigFiles() { func writeConfigFiles() {
let basePath = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first? let basePath = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first?
.appendingPathComponent(Bundle.main.bundleIdentifier!, isDirectory: true) .appendingPathComponent(Bundle.main.bundleIdentifier!, isDirectory: true)
if FileManager.default.fileExists(atPath: basePath!.path) { if FileManager.default.fileExists(atPath: basePath!.path) {
return return
} }
do { do {
let defaultsFileDir = basePath?.appendingPathComponent("chains").appendingPathComponent("ethereum") let defaultsFileDir = basePath?.appendingPathComponent("chains").appendingPathComponent("ethereum")
let defaultsFile = defaultsFileDir?.appendingPathComponent("user_defaults") let defaultsFile = defaultsFileDir?.appendingPathComponent("user_defaults")
try FileManager.default.createDirectory(atPath: (defaultsFileDir?.path)!, withIntermediateDirectories: true, attributes: nil) try FileManager.default.createDirectory(atPath: (defaultsFileDir?.path)!, withIntermediateDirectories: true, attributes: nil)
if !FileManager.default.fileExists(atPath: defaultsFile!.path) { if !FileManager.default.fileExists(atPath: defaultsFile!.path) {
try defaultDefaults.write(to: defaultsFile!, atomically: false, encoding: String.Encoding.utf8) try defaultDefaults.write(to: defaultsFile!, atomically: false, encoding: String.Encoding.utf8)
} }
let configFile = basePath?.appendingPathComponent("config.toml") let configFile = basePath?.appendingPathComponent("config.toml")
} }
catch {} catch {}
} }
func autostartEnabled() -> Bool { func autostartEnabled() -> Bool {
return itemReferencesInLoginItems().existingReference != nil return itemReferencesInLoginItems().existingReference != nil
} }
@ -123,7 +123,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
} }
return (nil, nil) return (nil, nil)
} }
func toggleLaunchAtStartup() { func toggleLaunchAtStartup() {
let itemReferences = itemReferencesInLoginItems() let itemReferences = itemReferencesInLoginItems()
let shouldBeToggled = (itemReferences.existingReference == nil) let shouldBeToggled = (itemReferences.existingReference == nil)
@ -155,7 +155,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
func launchParity() { func launchParity() {
self.commandLine = CommandLine.arguments.dropFirst().filter({ $0 != "ui"}) self.commandLine = CommandLine.arguments.dropFirst().filter({ $0 != "ui"})
let processes = GetBSDProcessList()! let processes = GetBSDProcessList()!
let parityProcess = processes.index(where: { let parityProcess = processes.index(where: {
var name = $0.kp_proc.p_comm var name = $0.kp_proc.p_comm
@ -166,7 +166,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
} }
return str == "parity" return str == "parity"
}) })
if parityProcess == nil { if parityProcess == nil {
let parity = Process() let parity = Process()
let p = self.parityPath() let p = self.parityPath()
@ -178,7 +178,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
self.parityPid = processes[parityProcess!].kp_proc.p_pid self.parityPid = processes[parityProcess!].kp_proc.p_pid
} }
} }
func applicationDidFinishLaunching(_ aNotification: Notification) { func applicationDidFinishLaunching(_ aNotification: Notification) {
if self.isAlreadyRunning() { if self.isAlreadyRunning() {
openUI() openUI()
@ -188,12 +188,12 @@ class AppDelegate: NSObject, NSApplicationDelegate {
self.writeConfigFiles() self.writeConfigFiles()
self.launchParity() self.launchParity()
Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: {_ in Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: {_ in
if !self.isParityRunning() { if !self.isParityRunning() {
NSApplication.shared().terminate(self) NSApplication.shared().terminate(self)
} }
}) })
let icon = NSImage(named: "statusIcon") let icon = NSImage(named: "statusIcon")
icon?.isTemplate = true // best for dark mode icon?.isTemplate = true // best for dark mode
statusItem.image = icon statusItem.image = icon
@ -206,19 +206,18 @@ class AppDelegate: NSObject, NSApplicationDelegate {
} }
return true return true
} }
@IBAction func quitClicked(_ sender: NSMenuItem) { @IBAction func quitClicked(_ sender: NSMenuItem) {
self.killParity() self.killParity()
NSApplication.shared().terminate(self) NSApplication.shared().terminate(self)
} }
@IBAction func openClicked(_ sender: NSMenuItem) { @IBAction func openClicked(_ sender: NSMenuItem) {
self.openUI() self.openUI()
} }
@IBAction func startAtLogonClicked(_ sender: NSMenuItem) { @IBAction func startAtLogonClicked(_ sender: NSMenuItem) {
self.toggleLaunchAtStartup() self.toggleLaunchAtStartup()
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,4 +1,4 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd. // Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity. // This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify // Parity is free software: you can redistribute it and/or modify
@ -21,21 +21,21 @@ import Foundation
import Darwin import Darwin
public func GetBSDProcessList() -> ([kinfo_proc]?) { public func GetBSDProcessList() -> ([kinfo_proc]?) {
var done = false var done = false
var result: [kinfo_proc]? var result: [kinfo_proc]?
var err: Int32 var err: Int32
repeat { repeat {
let name = [CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0]; let name = [CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0];
let namePointer = name.withUnsafeBufferPointer { UnsafeMutablePointer<Int32>(mutating: $0.baseAddress) } let namePointer = name.withUnsafeBufferPointer { UnsafeMutablePointer<Int32>(mutating: $0.baseAddress) }
var length: Int = 0 var length: Int = 0
err = sysctl(namePointer, u_int(name.count), nil, &length, nil, 0) err = sysctl(namePointer, u_int(name.count), nil, &length, nil, 0)
if err == -1 { if err == -1 {
err = errno err = errno
} }
if err == 0 { if err == 0 {
let count = length / MemoryLayout<kinfo_proc>.stride let count = length / MemoryLayout<kinfo_proc>.stride
result = [kinfo_proc](repeating: kinfo_proc(), count: count) result = [kinfo_proc](repeating: kinfo_proc(), count: count)
@ -54,6 +54,6 @@ public func GetBSDProcessList() -> ([kinfo_proc]?) {
} }
} }
} while err == 0 && !done } while err == 0 && !done
return result return result
} }

View File

@ -3,8 +3,6 @@ Parity Wallet
Welcome to Parity Wallet, your all-in-one Ethereum node and wallet. Welcome to Parity Wallet, your all-in-one Ethereum node and wallet.
WARNING: This installer is **EXPERIMENTAL**. Use it at your own risk. If you continue, Parity will be installed as a user service. You will be able to use the Parity Wallet through your browser by using the menu bar icon, following the shortcut in the Launchpad or navigating to http://localhost:8180/ in your browser.
If you continue, Parity will be installed as a user service. You will be able to use the Parity Wallet through your browser by using the menu bar icon, following the shortcut in the Launchpad or navigating to http://localhost:8080/ in your browser.
Parity is distributed under the terms of the GPL. Parity is distributed under the terms of the GPL.

View File

@ -9,5 +9,4 @@ fi
PLIST=~/Library/LaunchAgents/io.parity.ethereum.plist PLIST=~/Library/LaunchAgents/io.parity.ethereum.plist
su $SUDO_USER -c "launchctl stop io.parity.ethereum" su $SUDO_USER -c "launchctl stop io.parity.ethereum"
su $SUDO_USER -c "launchctl unload $PLIST" su $SUDO_USER -c "launchctl unload $PLIST"
rm -f /usr/local/libexec/parity /usr/local/libexec/uninstall-parity.sh /usr/local/bin/ethstore $PLIST rm -f /usr/local/libexec/parity /usr/local/libexec/uninstall-parity.sh /usr/local/bin/ethstore /usr/local/bin/ethkey /usr/local/bin/parity-evm $PLIST

View File

@ -115,7 +115,9 @@ make_rpm () {
make_pkg () { make_pkg () {
echo "make PKG" echo "make PKG"
cp target/$PLATFORM/release/parity target/release/parity cp target/$PLATFORM/release/parity target/release/parity
cp target/$PLATFORM/release/parity-evm target/release/parity-evm
cp target/$PLATFORM/release/ethstore target/release/ethstore cp target/$PLATFORM/release/ethstore target/release/ethstore
cp target/$PLATFORM/release/ethkey target/release/ethkey
cd mac cd mac
xcodebuild -configuration Release xcodebuild -configuration Release
cd .. cd ..