slipperydippery

slipperydippery

Member Since 5 Years Ago

Experience Points
17,290
Total
Experience

2,710 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
208
Lessons
Completed
Best Reply Awards
0
Best Reply
Awards
  • start-engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber-token Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer-token Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • lara-evanghelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 4
17,290 XP
Sep
13
1 month ago
Activity icon

Started a new Conversation PHP Should Be Upgraded But Isn't

I've tried to upgrade PHP on my server with the upgrade button. Forge says that the server should be at PHP 7.2, but phpinfo() and php -v when I ssh into the server all return PHP 7.1.

I've restarted the server. Downgraded the server back to 7.1 with forge, and tried upgrading to 7.2 or 7.3, but to no avail.

Does anybody have any ideas how to upgrade the server?

May
14
5 months ago
Activity icon

Replied to Using Uuid My Foreign Key Constraints Fail

@CRONIX - Thanks, it was a combination of $table->uuid('id')->primary(); and $table->string('user_id')->nullable(); instead of integer.

Activity icon

Replied to Using Uuid My Foreign Key Constraints Fail

@GRENADECX - Thanks, but that didn't fix it either

Activity icon

Replied to Using Uuid My Foreign Key Constraints Fail

@GRENADECX - Thanks for the tip, I tried changing it to:

$table->integer('user_id')->nullable();

and to

$table->string('user_id')->nullable();

but still no luck.

Activity icon

Started a new Conversation Using Uuid My Foreign Key Constraints Fail

I'm trying to switch my application to use Uuid, but my migration is failing.

My create_users_table:

    Schema::create('users', function (Blueprint $table) {
        $table->uuid('id')->primary;
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamps();
    });

My create_groups_table:

    Schema::create('groups', function (Blueprint $table) {
        $table->uuid('id')->primary();
        $table->string('title');
        $table->integer('user_id')->unsigned()->nullable();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->timestamps();
    });

It looks good to me, but when I try to run the migration I get the typical error:

Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1215 Cannot add foreign key 
constraint (SQL: alter table `groups` add constraint `groups_user_id_foreign` foreign key (`user_id`) 
references `users` (`id`) on delete cascade)

(I am following along with this guide: https://dev.to/wilburpowery/easily-use-uuids-in-laravel-45be , where I also add the UsesUuid trait to my Models)

Any help is greatly appreciated!

Sep
17
1 year ago
Activity icon

Replied to How To Publish VerifyEmail.php In Laravel 5.7

I have now solved the issue by creating a new "VerifyEmail.php" notification (php artisan make:notification VerifyEmail), copying and editing the content of Illuminate/Auth/Notifications/VerifyEmail.php to reflect my desired changes.

The new VerifyEmail.php also has the following lines:

use Illuminate\Auth\Notifications\VerifyEmail as VerifyEmailNotification;

class VerifyEmail extends VerifyEmailNotification
{

Also, User.php is edited to include:

    public function sendEmailVerificationNotification()
    {
        $this->notify(new VerifyEmail);
    }

and imports the new VerifyEmail.php.

hope this helps anyone else looking for a solution

Activity icon

Replied to How To Publish VerifyEmail.php In Laravel 5.7

@aurawindsurfing Hey, thanks for the reply! The resources/views/auth/verify.blade.php is the blade view for the website, not the view for the email.

I'm looking to pull in and change the Illuminate/Auth/Notifications/VerifyEmail.php file

Activity icon

Started a new Conversation How To Publish VerifyEmail.php In Laravel 5.7

I would like to change the VerifyEmail.php email notification to verify user's email addresses. I would expect it to be under php artisan vendor:publish but I can't find it there. What is the best way to edit this file?

Mar
22
1 year ago
Activity icon

Replied to Retreiving Old Form Input For Multiple Checkboxes

@Snapey Thanks! I can get that to work with a little tweaking! .

Activity icon

Started a new Conversation Retreiving Old Form Input For Multiple Checkboxes

EDIT: expanded on @Snapey 's answer at the bottom of this post for working code

I'm trying to allow users to select Tags for their forum Post.

My form generates the tag checkboxes from the Tag models into a Bootstrap styled list:

@foreach($tags as $tag)
    <label class="btn btn-sm btn-outline-primary ">
        <input type="checkbox" name="tags[]" value=" {{ $tag->id }} " />
        {{ $tag->name }}
    </label>
@endforeach 

This works fine, but I'm having trouble retrieving the 'old' data from request validation errors. I can't even see what kind of data is being returned, because when I try:

{{ old('body', request('body') ?? $post->body ?? null) }}
{{ old('tags', request('tags') ?? $post->tags ?? null) }}

The 'body' version will work just fine, returning the body content. But the 'tag' version will give me the htmlspecialchars() expects parameter 1 to be string, array given error.

What is the correct way to retrieve the old input from this array?

Edit: For future me, or anyone wanting to populate checkboxes with old input:

@foreach($tags as $tag)
    <label class="btn btn-sm btn-outline-primary {{ collect(old('tags', request('tags') ?? isset($post->tags) ? $post->tags->pluck('id') : null ))->contains($tag->id) ? 'active' : '' }}">
        <input type="checkbox" name="tags[]" value=" {{ $tag->id }} " />
        {{ $tag->name }}
    </label>
@endforeach 
Nov
20
1 year ago
Activity icon

Replied to Shared State With Components - Vue.js And Laravel 5.5

Great! That works!

I had not tried export let ..., that did the trick.

Thanks for your help!

Activity icon

Started a new Conversation Shared State With Components - Vue.js And Laravel 5.5

I'm trying to get shared states to work (https://laracasts.com/series/learn-vue-2-step-by-step/episodes/24), but I'm not sure how to implement it in my Laravel project with Vue.js.

Here is my code: app.js:

window.Vue = require('vue');

let store = {
    username: 'JohnDoe',
};

Vue.component('scan-container', require('./components/ScanContainer.vue'));

const app = new Vue({
    el: '#app',

    data: store,

});

ScanContainer.vue:

<template>
    <div class="root">
        {{ store }}
    {{ store.username }}
    </div>
</template>

<script>
    import {store} from '../app.js';

    export default {
        data() {
            return {
                store,
            }
        },
    }
</script>

I'm probably doing multiple things wrong; I've tried various versions of the code above, but can't get it to work as of yet!

Apr
24
2 years ago
Nov
19
2 years ago
Activity icon

Replied to Multiple Domains On A Server, Can I Access Them Through An IP Adres?

Thanks @shez1983 , that should work and is something I can easily apply!

Activity icon

Started a new Conversation Multiple Domains On A Server, Can I Access Them Through An IP Adres?

I need a temporary Laravel installation online as an example site. I don't necessarily want to register a new domain/sever for it. I thought I'd piggy back on a server I have set up, but now I'm wondering if it's possible to access the site.

My 'default' site has a domain name and DNS pointing at it. My second site ('mysite.com' directory when I ssh into my server) doesn't have that.

Is it at all possible to be such a cheapskate as me and have it work? I know a much simpler solution is to just set up a new droplet (I'm on digitalocean) for a few days and pay 50c, but now I'm also curious as to how and if it's possible to get it to work like this.

Thanks for your time

May
25
3 years ago
Activity icon

Replied to Laravel With Vue Resource.update, 500 Internal Server Error Issue

Doh! I wasn't adding a CSRF token to the request. In the header:

    <meta name="token" id="token" value="{{ csrf_token() }}">

and in the Vue Components:

<script>
    export default {
        http: {
            root: '/root',
            headers: {
                'X-CSRF-TOKEN': document.querySelector('#token').getAttribute('value')
            }
        },

        props: []
        //etc
    }
</script>
May
24
3 years ago
Activity icon

Replied to How To Periodically Poll A Back End API Using Vue.js?

@Juukie pusher sounds great, I can only find a Laracasts screencast from 2014 though. Can you point me towards the screencast with Pusher and Vue?

edit: found it https://laracasts.com/lessons/introducing-laravel-echo

Activity icon

Replied to Access Related Data From Database With Vuejs

I agree with what @ratiw says. For easily seeing exactly what Vue is receiving from your api endpoint install the Vue Devtools extension, and check out your components.

May
23
3 years ago
Activity icon

Started a new Conversation Laravel With Vue Resource.update, 500 Internal Server Error Issue

I've been following along with Learning Vue 1.0 Series, and at the end of episode 11 (https://laracasts.com/series/learning-vue-step-by-step/episodes/11), Jeffery demonstrates how to update a resource with Vue (but without having an endpoint for it):

var resource = this.$resource('api/tasks/:id');

resource.update({ id: 5 }, {body: 'Updated task body'}, function(tasks) {
    this.list = tasks;
}.bind(this));

When I try to create a route and controller method for this, I get an 500 Internal Server Error.

    Route::put('api/tasks/{task}', '[email protected]');

What am I missing?

May
21
3 years ago
Activity icon

Replied to Component Within Template Using Browserify

@Francismori7 Awesome, that makes a lot of sense, plus it works, thanks!

For clarity, I now have:

<script>
        import Subaction from '../components/Subaction.vue';
    export default {
        components: { Subaction },
        }
    //more code
</script>


Activity icon

Started a new Conversation Component Within Template Using Browserify

I'm trying to call a Vue component from within a template like so:

<actions></actions>

<template id="actions-template">
    <subaction></subaction>
</template>

The above code works with basic Vue (without Laravel/Elixir/Browserify) . But when I try to get it to work within my framework and Browserify, it fails. See code below:

main.js:

var Vue = require('vue');
Vue.use(require('vue-resource'));

 import Actions from './components/Actions.vue';
import Subaction from './components/Subaction.vue';


new Vue({
    el: 'body', 

    components: { Actions, Subaction },
});

And Actions.vue:

<template>
        <subaction></subaction>
</template>

<script>
    export default {
        // code
    }
</script>

<style lang="stylus">
    
</style>

And a basic Subaction.vue file.

Of course I use more logic in the code , but nonetheless, even this simplistic version does not seem to work. Is this normal, or is there a way that I can get it to work?

Mar
02
3 years ago
Activity icon

Replied to Unable To Obtain A LetsEncrypt SSL Certificate

I have tried setting up letsencrypt from Digital Ocean's console itself, but it came up with the same error. So it seems that it has nothing to do with Laravel Forge, but with Peep.

After doing some research in that area, it looks like the issue has just been resolved.

Mar
01
3 years ago
Activity icon

Started a new Conversation Unable To Obtain A LetsEncrypt SSL Certificate

I'm trying to optain an SSL certificate for a new site. I am following along with the laracasts episode (including creating a new droplet): https://laracasts.com/series/server-management-with-forge/episodes/12 But when I try to obtain an SSL certificate, forge gives me the: We were unable to obtain a LetsEncrypt SSL certificate on your server error. I've tried manually installing peep, and tried starting all over again, but to no avail. Hope somebody can help me with this.

Hit http://ppa.launchpad.net trusty InRelease
Ign http://mirrors.digitalocean.com trusty InRelease
Hit http://ppa.launchpad.net trusty InRelease
Hit http://ppa.launchpad.net trusty InRelease
Get:1 http://mirrors.digitalocean.com trusty-updates InRelease [65.9 kB]
Hit http://ppa.launchpad.net trusty InRelease
Hit http://ppa.launchpad.net trusty InRelease
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://mirrors.digitalocean.com trusty-backports InRelease
Hit http://ppa.launchpad.net trusty/main i386 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit http://mirrors.digitalocean.com trusty Release.gpg
Hit http://apt.postgresql.org trusty-pgdg InRelease
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://mirrors.digitalocean.com trusty Release
Hit http://ppa.launchpad.net trusty/main i386 Packages
Get:2 http://mirrors.digitalocean.com trusty-updates/main Sources [260 kB]
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main i386 Packages
Get:3 http://mirrors.digitalocean.com trusty-updates/restricted Sources [5,352 B]
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main i386 Packages
Get:4 http://mirrors.digitalocean.com trusty-updates/universe Sources [150 kB]
Hit http://ppa.launchpad.net trusty/main Translation-en
Get:5 http://mirrors.digitalocean.com trusty-updates/multiverse Sources [5,547 B]
Get:6 http://mirrors.digitalocean.com trusty-updates/main amd64 Packages [709 kB]
Hit http://apt.postgresql.org trusty-pgdg/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main i386 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Get:7 http://security.ubuntu.com trusty-security InRelease [65.9 kB]
Get:8 http://mirrors.digitalocean.com trusty-updates/restricted amd64 Packages [15.9 kB]
Get:9 http://mirrors.digitalocean.com trusty-updates/universe amd64 Packages [338 kB]
Hit http://apt.postgresql.org trusty-pgdg/main i386 Packages
Get:10 http://mirrors.digitalocean.com trusty-updates/multiverse amd64 Packages [13.2 kB]
Get:11 http://mirrors.digitalocean.com trusty-updates/main i386 Packages [688 kB]
Hit http://ftp.osuosl.org trusty InRelease
Get:12 http://mirrors.digitalocean.com trusty-updates/restricted i386 Packages [15.6 kB]
Get:13 http://mirrors.digitalocean.com trusty-updates/universe i386 Packages [339 kB]
Get:14 http://mirrors.digitalocean.com trusty-updates/multiverse i386 Packages [13.4 kB]
Hit http://mirrors.digitalocean.com trusty-updates/main Translation-en
Hit http://mirrors.digitalocean.com trusty-updates/multiverse Translation-en
Hit http://mirrors.digitalocean.com trusty-updates/restricted Translation-en
Hit http://ftp.osuosl.org trusty/main amd64 Packages
Hit http://mirrors.digitalocean.com trusty-updates/universe Translation-en
Hit http://mirrors.digitalocean.com trusty-backports/main Sources
Hit http://mirrors.digitalocean.com trusty-backports/restricted Sources
Hit http://mirrors.digitalocean.com trusty-backports/universe Sources
Hit http://mirrors.digitalocean.com trusty-backports/multiverse Sources
Hit http://mirrors.digitalocean.com trusty-backports/main amd64 Packages
Hit http://mirrors.digitalocean.com trusty-backports/restricted amd64 Packages
Hit http://mirrors.digitalocean.com trusty-backports/universe amd64 Packages
Hit http://mirrors.digitalocean.com trusty-backports/multiverse amd64 Packages
Hit http://mirrors.digitalocean.com trusty-backports/main i386 Packages
Hit http://mirrors.digitalocean.com trusty-backports/restricted i386 Packages
Get:15 http://security.ubuntu.com trusty-security/main Sources [105 kB]
Hit http://mirrors.digitalocean.com trusty-backports/universe i386 Packages
Hit http://mirrors.digitalocean.com trusty-backports/multiverse i386 Packages
Ign http://apt.postgresql.org trusty-pgdg/main Translation-en_US
Hit http://mirrors.digitalocean.com trusty-backports/main Translation-en
Hit http://mirrors.digitalocean.com trusty-backports/multiverse Translation-en
Hit http://ftp.osuosl.org trusty/main i386 Packages
Ign http://apt.postgresql.org trusty-pgdg/main Translation-en
Hit http://mirrors.digitalocean.com trusty-backports/restricted Translation-en
Hit http://mirrors.digitalocean.com trusty-backports/universe Translation-en
Hit http://mirrors.digitalocean.com trusty/main Sources
Hit http://mirrors.digitalocean.com trusty/restricted Sources
Hit http://mirrors.digitalocean.com trusty/universe Sources
Hit http://mirrors.digitalocean.com trusty/multiverse Sources
Hit http://mirrors.digitalocean.com trusty/main amd64 Packages
Hit http://mirrors.digitalocean.com trusty/restricted amd64 Packages
Hit http://mirrors.digitalocean.com trusty/universe amd64 Packages
Hit http://mirrors.digitalocean.com trusty/multiverse amd64 Packages
Hit http://mirrors.digitalocean.com trusty/main i386 Packages
Hit http://mirrors.digitalocean.com trusty/restricted i386 Packages
Hit http://mirrors.digitalocean.com trusty/universe i386 Packages
Hit http://mirrors.digitalocean.com trusty/multiverse i386 Packages
Hit http://mirrors.digitalocean.com trusty/main Translation-en
Hit http://mirrors.digitalocean.com trusty/multiverse Translation-en
Get:16 http://security.ubuntu.com trusty-security/universe Sources [33.3 kB]
Hit http://mirrors.digitalocean.com trusty/restricted Translation-en
Hit http://mirrors.digitalocean.com trusty/universe Translation-en
Get:17 http://security.ubuntu.com trusty-security/main amd64 Packages [427 kB]
Ign http://mirrors.digitalocean.com trusty/main Translation-en_US
Ign http://mirrors.digitalocean.com trusty/multiverse Translation-en_US
Ign http://mirrors.digitalocean.com trusty/restricted Translation-en_US
Ign http://mirrors.digitalocean.com trusty/universe Translation-en_US
Get:18 http://security.ubuntu.com trusty-security/universe amd64 Packages [124 kB]
Get:19 http://security.ubuntu.com trusty-security/main i386 Packages [400 kB]
Hit https://deb.nodesource.com trusty InRelease
Ign http://ftp.osuosl.org trusty/main Translation-en_US
Hit https://deb.nodesource.com trusty/main Sources
Get:20 http://security.ubuntu.com trusty-security/universe i386 Packages [124 kB]
Ign http://ftp.osuosl.org trusty/main Translation-en
Hit http://security.ubuntu.com trusty-security/main Translation-en
Hit https://deb.nodesource.com trusty/main amd64 Packages
Hit http://security.ubuntu.com trusty-security/universe Translation-en
Hit https://deb.nodesource.com trusty/main i386 Packages
Get:21 https://deb.nodesource.com trusty/main Translation-en_US
Ign https://deb.nodesource.com trusty/main Translation-en_US
Ign https://deb.nodesource.com trusty/main Translation-en
Fetched 3,899 kB in 6s (631 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
dialog is already the newest version.
gcc is already the newest version.
python is already the newest version.
python-dev is already the newest version.
augeas-lenses is already the newest version.
ca-certificates is already the newest version.
libaugeas0 is already the newest version.
libffi-dev is already the newest version.
python-virtualenv is already the newest version.
libssl-dev is already the newest version.
The following packages were automatically installed and are no longer required:
  php5-common php5-json
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Checking for new version...
Creating virtual environment...
Installing Python packages...
Had a problem while downloading and verifying Python packages:
Downloading argparse==1.4.0 (23K)...
Downloading cffi==1.4.2 (365K)...
Downloading ConfigArgParse==0.10.0 (36K)...
Downloading configobj==5.0.6 (33K)...
Downloading cryptography==1.1.2 (349K)...
Downloading enum34==1.1.2 (46K)...
Downloading funcsigs==0.4 (14K)...
Downloading idna==2.0 (61K)...
Downloading ipaddress==1.0.16 (17K)...
Downloading linecache2==1.0.0 (12K)...
Downloading ndg-httpsclient==0.4.0 (24K)...
Downloading ordereddict==1.1 (2K)...
Downloading parsedatetime==1.5 (50K)...
Downloading pbr==1.8.1 (89K)...
Downloading psutil==3.3.0 (261K)...
Downloading pyasn1==0.1.9 (36K)...
Downloading pycparser==2.14 (223K)...
Downloading pyOpenSSL==0.15.1 (102K)...
Downloading pyRFC3339==1.0 (8K)...
Downloading python-augeas==0.5.0 (90K)...
Downloading python2-pythondialog==3.3.0 (1831K)...
Downloading pytz==2015.7 (476K)...
Downloading requests==2.9.1 (501K)...
Downloading six==1.10.0 (10K)...
Downloading traceback2==1.4.0 (16K)...
Downloading unittest2==1.1.0 (96K)...
Downloading zope.component==4.2.2 (546K)...
Downloading zope.event==4.1.0 (476K)...
Downloading zope.interface==4.1.3 (141K)...
Downloading mock==1.0.1 (818K)...
Downloading acme==0.4.1 (95K)...
Downloading letsencrypt==0.4.1 (199K)...
Downloading letsencrypt-apache==0.4.1 (99K)...
Unpacking /tmp/peep-HDd6P8/argparse-1.4.0-py2.py3-none-any.whl
Installing collected packages: argparse
Successfully installed argparse
Cleaning up...
Unpacking /tmp/peep-I1ZyJ0/cffi-1.4.2.tar.gz
  Running setup.py (path:/tmp/pip-AOlUPm-build/setup.py) egg_info for package from file:///tmp/peep-I1ZyJ0/cffi-1.4.2.tar.gz
    
Installing collected packages: cffi
  Running setup.py install for cffi
    building '_cffi_backend' extension
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-x86_64-2.7/c/_cffi_backend.o
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/c/_cffi_backend.o -lffi -o build/lib.linux-x86_64-2.7/_cffi_backend.so
    
Successfully installed cffi
Cleaning up...
Unpacking /tmp/peep-6LccDN/ConfigArgParse-0.10.0.tar.gz
  Running setup.py (path:/tmp/pip-IUUoHe-build/setup.py) egg_info for package from file:///tmp/peep-6LccDN/ConfigArgParse-0.10.0.tar.gz
    
Installing collected packages: ConfigArgParse
  Running setup.py install for ConfigArgParse
    
Successfully installed ConfigArgParse
Cleaning up...
Unpacking /tmp/peep-lbmO86/configobj-5.0.6.tar.gz
  Running setup.py (path:/tmp/pip-tuKAqQ-build/setup.py) egg_info for package from file:///tmp/peep-lbmO86/configobj-5.0.6.tar.gz
    
Installing collected packages: configobj
  Running setup.py install for configobj
    
Successfully installed configobj
Cleaning up...
Unpacking /tmp/peep-iaEjX9/cryptography-1.1.2.tar.gz
  Running setup.py (path:/tmp/pip-pr2FsW-build/setup.py) egg_info for package from file:///tmp/peep-iaEjX9/cryptography-1.1.2.tar.gz
    
    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files matching '*' found under directory 'vectors'
Installing collected packages: cryptography
  Running setup.py install for cryptography
    warning: no previously-included files matching 'yacctab.*' found under directory 'tests'
    warning: no previously-included files matching 'lextab.*' found under directory 'tests'
    warning: no previously-included files matching 'yacctab.*' found under directory 'examples'
    warning: no previously-included files matching 'lextab.*' found under directory 'examples'
    zip_safe flag not set; analyzing archive contents...
    
    Installed /tmp/pip-pr2FsW-build/pycparser-2.14-py2.7.egg
    
    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files matching '*' found under directory 'vectors'
    generating cffi module 'build/temp.linux-x86_64-2.7/_padding.c'
    generating cffi module 'build/temp.linux-x86_64-2.7/_constant_time.c'
    generating cffi module 'build/temp.linux-x86_64-2.7/_openssl.c'
    building '_openssl' extension
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o
    build/temp.linux-x86_64-2.7/_openssl.c:710:6: error: conflicting types for ‘BIO_new_mem_buf’
     BIO *BIO_new_mem_buf(void *, int);
          ^
    In file included from /usr/include/openssl/asn1.h:65:0,
                     from build/temp.linux-x86_64-2.7/_openssl.c:426:
    /usr/include/openssl/bio.h:692:6: note: previous declaration of ‘BIO_new_mem_buf’ was here
     BIO *BIO_new_mem_buf(const void *buf, int len);
          ^
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    Complete output from command /root/.local/share/letsencrypt/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-pr2FsW-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('
', '
'), __file__, 'exec'))" install --record /tmp/pip-ceB7NL-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/.local/share/letsencrypt/include/site/python2.7:
    warning: no previously-included files matching 'yacctab.*' found under directory 'tests'

warning: no previously-included files matching 'lextab.*' found under directory 'tests'

warning: no previously-included files matching 'yacctab.*' found under directory 'examples'

warning: no previously-included files matching 'lextab.*' found under directory 'examples'

zip_safe flag not set; analyzing archive contents...



Installed /tmp/pip-pr2FsW-build/pycparser-2.14-py2.7.egg

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.7

creating build/lib.linux-x86_64-2.7/cryptography

copying src/cryptography/exceptions.py -> build/lib.linux-x86_64-2.7/cryptography

copying src/cryptography/fernet.py -> build/lib.linux-x86_64-2.7/cryptography

copying src/cryptography/__init__.py -> build/lib.linux-x86_64-2.7/cryptography

copying src/cryptography/utils.py -> build/lib.linux-x86_64-2.7/cryptography

copying src/cryptography/__about__.py -> build/lib.linux-x86_64-2.7/cryptography

creating build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/extensions.py -> build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/oid.py -> build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/general_name.py -> build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/base.py -> build/lib.linux-x86_64-2.7/cryptography/x509

copying src/cryptography/x509/name.py -> build/lib.linux-x86_64-2.7/cryptography/x509

creating build/lib.linux-x86_64-2.7/cryptography/hazmat

copying src/cryptography/hazmat/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings

copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/backends

copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends

copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends

copying src/cryptography/hazmat/backends/multibackend.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/serialization.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/openssl

copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/openssl

copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/openssl

copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/openssl

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/commoncrypto

copying src/cryptography/hazmat/bindings/commoncrypto/binding.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/commoncrypto

copying src/cryptography/hazmat/bindings/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/bindings/commoncrypto

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/openssl

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

copying src/cryptography/hazmat/backends/commoncrypto/hashes.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

copying src/cryptography/hazmat/backends/commoncrypto/hmac.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

copying src/cryptography/hazmat/backends/commoncrypto/ciphers.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

copying src/cryptography/hazmat/backends/commoncrypto/backend.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

copying src/cryptography/hazmat/backends/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/backends/commoncrypto

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/ciphers

copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/ciphers

copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/ciphers

copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/ciphers

copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/ciphers

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/kdf

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/asymmetric

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/interfaces

copying src/cryptography/hazmat/primitives/interfaces/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/interfaces

creating build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/twofactor

copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/twofactor

copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/twofactor

copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/twofactor

copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-x86_64-2.7/cryptography/hazmat/primitives/twofactor

running egg_info

writing dependency_links to src/cryptography.egg-info/dependency_links.txt

writing requirements to src/cryptography.egg-info/requires.txt

writing src/cryptography.egg-info/PKG-INFO

writing top-level names to src/cryptography.egg-info/top_level.txt

writing entry points to src/cryptography.egg-info/entry_points.txt

warning: manifest_maker: standard file '-c' not found



reading manifest file 'src/cryptography.egg-info/SOURCES.txt'

reading manifest template 'MANIFEST.in'

no previously-included directories found matching 'docs/_build'

warning: no previously-included files matching '*' found under directory 'vectors'

writing manifest file 'src/cryptography.egg-info/SOURCES.txt'

running build_ext

generating cffi module 'build/temp.linux-x86_64-2.7/_padding.c'

creating build/temp.linux-x86_64-2.7

generating cffi module 'build/temp.linux-x86_64-2.7/_constant_time.c'

generating cffi module 'build/temp.linux-x86_64-2.7/_openssl.c'

building '_openssl' extension

creating build/temp.linux-x86_64-2.7/build

creating build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o

build/temp.linux-x86_64-2.7/_openssl.c:710:6: error: conflicting types for ‘BIO_new_mem_buf’

 BIO *BIO_new_mem_buf(void *, int);

      ^

In file included from /usr/include/openssl/asn1.h:65:0,

                 from build/temp.linux-x86_64-2.7/_openssl.c:426:

/usr/include/openssl/bio.h:692:6: note: previous declaration of ‘BIO_new_mem_buf’ was here

 BIO *BIO_new_mem_buf(const void *buf, int len);

      ^

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /root/.local/share/letsencrypt/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-pr2FsW-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('
', '
'), __file__, 'exec'))" install --record /tmp/pip-ceB7NL-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/.local/share/letsencrypt/include/site/python2.7 failed with error code 1 in /tmp/pip-pr2FsW-build

Oh no! Peep had a problem while trying to do stuff. Please write up a bug report
with the specifics so we can fix it:

https://github.com/erikrose/peep/issues/new

Here are some particulars you can copy and paste into the bug report:

---
peep: (3, 1, 1)
python: '2.7.11 (default, Dec 15 2015, 16:46:19) 
[GCC 4.8.4]'
pip: '1.5.4'
Command line:  ['/tmp/tmp.ErPNv71mbL/peep.py', 'install', '-r', '/tmp/tmp.ErPNv71mbL/letsencrypt-auto-requirements.txt']
Traceback (most recent call last):
  File "/tmp/tmp.ErPNv71mbL/peep.py", line 967, in <module>
    exit(main())
  File "/tmp/tmp.ErPNv71mbL/peep.py", line 939, in main
    return commands[argv[1]](argv[2:])
  File "/tmp/tmp.ErPNv71mbL/peep.py", line 884, in peep_install
    req.install()
  File "/tmp/tmp.ErPNv71mbL/peep.py", line 652, in install
    run_pip(['install'] + other_args + ['--no-deps', '-U', archive_path])
  File "/tmp/tmp.ErPNv71mbL/peep.py", line 206, in run_pip
    status_code = pip.main(initial_args)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/__init__.py", line 185, in main
    return command.main(cmd_args)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/basecommand.py", line 161, in main
    text = '
'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 79: ordinal not in range(128)

---```