Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 28 additions & 3 deletions ci/azure-pipelines-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,39 @@ jobs:
displayName: Clippy
condition: ne( variables['rustup_toolchain'], 'nightly' )

- ${{ if ne(parameters.name, 'Windows') }}:
- ${{ if eq(parameters.name, 'Linux') }}:
- script: |
cargo run --bin pyoxidizer -- init --pip-install appdirs==1.4.3 --pip-install cryptography --pip-install markupsafe==1.1.1 --pip-install simplejson==3.17.0 --pip-install gevent==1.4.0 ~/pyapp
cat ci/pyapp.py | cargo run --bin pyoxidizer -- run ~/pyapp
displayName: Build Oxidized Application

- ${{ if eq(parameters.name, 'macOS') }}:
- script: brew install openssl@1.1
displayName: 'Install OpenSSL'

- ${{ if eq(parameters.name, 'macOS') }}:
- script: |
cargo run --bin pyoxidizer -- init --pip-install appdirs==1.4.3 --pip-install zero-buffer==0.5.1 ~/pyapp
export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include"
export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib"
cargo run --bin pyoxidizer -- init --pip-install appdirs==1.4.3 --pip-install cryptography==2.8 --pip-install markupsafe==1.1.1 --pip-install simplejson==3.17.0 --pip-install gevent==1.4.0 ~/pyapp
cat ci/pyapp.py | cargo run --bin pyoxidizer -- run ~/pyapp
displayName: Build Oxidized Application

- ${{ if eq(parameters.name, 'Windows') }}:
- powershell: |
git clone 'https://github.com/Badgerati/Fudge'
.\Fudge\src\Fudge.ps1 install -adhoc openssl
displayName: 'Install OpenSSL'

- ${{ if eq(parameters.name, 'Windows') }}:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'

- ${{ if eq(parameters.name, 'Windows') }}:
- script: |
cargo run --bin pyoxidizer -- init --pip-install appdirs==1.4.3 --pip-install zero-buffer==0.5.1 %USERPROFILE%/pyapp
set INCLUDE=%ProgramFiles%\OpenSSL-Win64\include;%INCLUDE%
set LIB=%ProgramFiles%\OpenSSL-Win64\lib\;%LIB%
cargo run --bin pyoxidizer -- init --pip-install appdirs==1.4.3 --pip-install cryptography==2.8 --pip-install markupsafe==1.1.1 --pip-install simplejson==3.17.0 --pip-install gevent==1.4.0 %USERPROFILE%/pyapp
cat ci/pyapp.py | cargo run --bin pyoxidizer -- run %USERPROFILE%/pyapp
displayName: Build Oxidized Application (Windows)
2 changes: 1 addition & 1 deletion ci/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
- template: azure-pipelines-template.yml
parameters:
name: macOS
vmImage: macOS-10.14
vmImage: macOS-10.13

- template: azure-pipelines-template.yml
parameters:
Expand Down
40 changes: 33 additions & 7 deletions ci/pyapp.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
import appdirs
import _cffi_backend
# Allow AttributeError rather than ImportError
# as this indirectly triggers a missing __file__
# https://github.com/dabeaz/ply/issues/216
try:
import zero_buffer
except AttributeError:
pass

import markupsafe._speedups
import simplejson._speedups

import markupsafe
import simplejson

print("hello, world")

import cryptography.fernet

m = b'does this work?'
s = 'original message:\n' + str(m) + '\n\n'

k = cryptography.fernet.Fernet.generate_key()
fernet = cryptography.fernet.Fernet(k)
t = fernet.encrypt(m)
d = fernet.decrypt(t)

s += 'key:\n' + str(k) + '\n\n'
s += 'token:\n' + str(t) + '\n\n'
s += 'decoded message:\n' + str(d)
print(s)
assert d == m

# This only confirms the built objects are loadable.
import gevent
import gevent._queue
assert 'gevent' in dir(gevent._queue)

import gevent._event
import gevent._greenlet
import gevent._local
import gevent.resolver.cares
import gevent.libev.corecext
9 changes: 9 additions & 0 deletions pyoxidizer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,20 @@ path = "src/lib.rs"
[build-dependencies]
vergen = "3"

# Contains one fix needed for Windows
[dependencies.object]
git = "https://github.com/gimli-rs/object.git"
branch = "master"
features = ["read", "std", "write"]

[dependencies]
byteorder = "1.2"
cargo_toml = "0.6"
cc = "1.0"
clap = "2.32"
codemap = "0.1"
codemap-diagnostic = "0.1"
copy_dir = "0.1.2"
encoding_rs = "0.8"
fs2 = "0.4"
git2 = "0.9"
Expand All @@ -37,6 +44,7 @@ hex = "0.3"
itertools = "0.8"
lazy_static = "1.3"
libc = "0.2"
memmap = "0.7"
regex = "1"
reqwest = "0.9"
rustc_version = "0.2"
Expand All @@ -53,6 +61,7 @@ url = "1.7"
uuid = { version = "0.7", features = ["v4", "v5"] }
version-compare = "0.0"
walkdir = "2"
which = "3.1.0"
xml-rs = "0.8"
zip = "0.5"
zstd = "0.4"
Expand Down
3 changes: 3 additions & 0 deletions pyoxidizer/src/app_packaging/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ pub enum InstallLocation {
#[derive(Clone, Debug, PartialEq)]
pub struct PackagingSetupPyInstall {
pub path: String,
pub venv_path: Option<String>,
pub extra_env: HashMap<String, String>,
pub extra_global_arguments: Vec<String>,
pub optimize_level: i64,
Expand Down Expand Up @@ -87,6 +88,7 @@ pub struct PackagingPackageRoot {
#[derive(Clone, Debug, PartialEq)]
pub struct PackagingPipInstallSimple {
pub package: String,
pub venv_path: Option<String>,
pub extra_env: HashMap<String, String>,
pub optimize_level: i64,
pub excludes: Vec<String>,
Expand All @@ -99,6 +101,7 @@ pub struct PackagingPipInstallSimple {
pub struct PackagingPipRequirementsFile {
// TODO resolve to a PathBuf.
pub requirements_path: String,
pub venv_path: Option<String>,
pub extra_env: HashMap<String, String>,
pub optimize_level: i64,
pub include_source: bool,
Expand Down
Loading