SlideShare a Scribd company logo
1 of 26
Download to read offline
pkgsrc on SmartOS

                        Jonathan Perkin     @jperkin
                        Software Engineer   jperkin@joyent.com
                        Joyent              jperkin@pkgsrc.org




Saturday, 23 March 13
Agenda

              •    Introduction

              •    History and background to SmartOS

              •    pkgsrc usage in SmartOS

              •    pkgsrc features we’ve developed

              •    pkgsrc development at Joyent

              •    Our pkgsrc wishlist




Saturday, 23 March 13
$ whoami!

              •    Started working on pkgsrc in 2001

              •    Used pkgsrc on Solaris internally at BBC

              •    Worked on build systems and release engineering for MySQL/Sun/Oracle

              •    Now work full-time on pkgsrc for Joyent


         $ uname -a
         SunOS www0-rth.thls.bbc.co.uk 5.7 Generic sun4m sparc SUNW,SPARCstation-20

         $ uptime
          12:28pm       up 5000 day(s),    2 users,    load average: 0.91, 0.89, 0.87




Saturday, 23 March 13
What is SmartOS - History

              •    Solaris 10 released by Sun in 2005

                   •    ZFS, DTrace, Zones, SMF

                   •    Open Source

              •    OpenSolaris continued the development towards Solaris 11

                   •    IPS, Crossbow, Laptop/Desktop support, GNU environment

              •    However, Oracle made Solaris closed source and proprietary in 2010

              •    illumos was born to continue development of the last available OpenSolaris
                   code

                   •    Replace closed-source parts needed to operate the system

                   •    Continue feature development, working with other communities




Saturday, 23 March 13
What is SmartOS - illumos Distributions

              •    Diaspora of Solaris engineers from Oracle and community talent has to illumos
                   distributions focused on specific areas of interest

                   •    Delphix continue DTrace and ZFS development for database virtualisation
                        products

                   •    Nexenta and DEY focus on storage appliances and services

                   •    OmniTI produce OmniOS, a general-purpose illumos distribution for servers

                   •    OpenIndiana continues development of a desktop-oriented environment

                   •    Joyent produce SmartOS with a specific focus on cloud computing




Saturday, 23 March 13
What is SmartOS - Joyent!

              •    Joyent operate a high performance public cloud. The key features of illumos
                   we require which differentiate it are:


                   •    ZFS. Fast, scalable, robust storage


                   •    DTrace. Observability and debugging across everything


                   •    Zones. Low latency and highly customisable virtualisation


                   •    KVM. Ability to run customer’s preferred OS (though we always
                        recommend Zones wherever possible)




Saturday, 23 March 13
What is SmartOS - Thin Hypervisor

              •    SmartOS is a USB/network-booted thin hypervisor

                   •    Open source, available on GitHub

                   •    OS resides on USB stick or PXE

                   •    All disks are dedicated to zones

              •    The “Global Zone” is a ramdisk for zone administration, nothing else

                   •    /usr is a read-only lofs mount, changes to /etc, /root, etc. not permanent

                   •    Upgrades are trivial, replace platform directory and reboot

                   •    Latest “First Customer Ship” build available every 2 weeks

              •    Clear separation between OS (platform) and packages (pkgsrc)

                   •    PREFER_PKGSRC=yes (except for solaris-pam, terminfo)

                   •    Zone images are fully independent of OS version


Saturday, 23 March 13
What is SmartOS - Zones

              •    All work is done inside Zones

                   •    Zones are created from images, made up of a file system image (ZFS
                        snapshot) and metadata (JSON)

                   •    imgadm and vmadm tools for management of images and virtual machines

                   •    OS zones are “sparse” and mount /usr from GZ

              •    KVM systems are just images too, and run qemu process inside a thin zone

                   •    Gain hosting features (throttling, resource management, etc.)

                   •    Additional security




Saturday, 23 March 13
Demo Time!




Saturday, 23 March 13
pkgsrc on SmartOS - Basics

              •    We track quarterly branches for each image version

                   •    2012Q2 => base*-1.8.x, 2012Q4 => base*-1.9.x, etc

              •    Separate images for 32-bit (ABI=32, base) and 64-bit (ABI=64, base64)

              •    Self-contained layout

                   •    PREFIX=/opt/local

                   •    PKG_SYSCONFDIR=/opt/local/etc

                   •    PKG_DBDIR=/opt/local/pkg

              •    Various package sets available

                   •    base for minimal install

                   •    standard for base + common utilities

                   •    percona, riak etc for specific purpose


Saturday, 23 March 13
pkgsrc development

              •    Our users demand additional pkgsrc features that we have developed:

                   •    Multi-architecture binaries and libraries

                   •    SMF support

                   •    “SmartOS is Not GNU/Linux” distribution (PREFIX=/usr)




Saturday, 23 March 13
pkgsrc development - multiarch

              •    Separate 32-bit and 64-bit images are a pain:

                   •    Confusing for users and customers who think it refers to the kernel
                        architecture

                   •    Additional build and storage requirements

                   •    Solaris has had multiarch support since Solaris 7 in 1998, old-time users
                        have come to expect it




Saturday, 23 March 13
pkgsrc development - multiarch #2

              •    High-level overview:

                   •    For multiarch-enabled packages, perform each build stage (extract,
                        patch, ...) twice, once with ABI=32, once with ABI=64

                   •    --bindir= and --libdir= set based on ABI

                   •    Install both to the same DESTDIR, default ABI installed last

                   •    PLIST expansion to cover multiple entries

                   •    isaexec wrapper installed to handle binaries

                   •    Create package

              •    Enable with MULTIARCH=yes in mk.conf




Saturday, 23 March 13
pkgsrc development - multiarch #3

              •    Infrastructure (mk/) changes:

                   •    Each primary phase (e.g. ‘do-extract’) has a wrapper (e.g. ‘do-extract-
                        multi’) which calls the primary target for each ABI

                   •    mk/plist/plist-multiarch.awk handles PLIST expansion

                   •    OPSYS-specific {BIN,LIB}ARCHSUFFIX.{32,64} variables

                        •   BINARCHSUFFIX.32= /i86

                        •   BINARCHSUFFIX.64= /amd64

                   •    pkgtools/isaexec package created, supports ABI environment variable

                   •    pkg_install supports new @link directive for isaexec hardlinks




Saturday, 23 March 13
pkgsrc development - multiarch #4

              •    Converting a simple autoconf/cmake package requires:

                   •    USE_MULTIARCH= bin lib

              •    Converting more complicated custom packages involves:

                   •    USE_MULTIARCH= bin lib

                   •    Change hardcoded lib to lib${LIBARCHSUFFIX}

                   •    Change hardcoded bin to bin${BINARCHSUFFIX}

                   •    Use MULTIARCH_DIRS.{bin,lib}

                   •    Use MULTIARCH_SKIP_DIRS.{bin,lib}

                   •    Complicated WRKSRC handling

              •    Developers, please stop writing your own build systems!




Saturday, 23 March 13
pkgsrc development - multiarch #5

              •    Current status

                   •    Large number of packages converted (p5-* automatically handled)

                   •    SmartOS “trunk” image uses multiarch by default, ~8,000 packages

                   •    504 files changed, 3525 insertions(+), 902 deletions(-)

              •    Developed in Joyent pkgsrc repository

                   •    joyent/feature/multiarch/trunk -> joyent/release/trunk

                   •    joyent/feature/multiarch/YYYYQQ -> joyent/release/YYYYQQ_multiarch




Saturday, 23 March 13
pkgsrc development - SMF

              •    Solaris 10 introduced the Service Management Framework as a replacement
                   for the legacy init.d system. We need to support it.

                   •    svccfg to import a new manifest

                   •    svcadm to enable/disable/restart

                   •    svcs to display status

              •    Small number of infrastructure changes

                   •    New mk/smf.mk

                   •    4 files changed, 131 insertions(+)

              •    Manifest and method files current held externally similar to LOCALPATCHES

                   •    ${SMFBASE}/${PKGPATH}

              •    Developed in joyent/feature/smf/trunk branch



Saturday, 23 March 13
pkgsrc development - SNGL

              •    “SmartOS is Not GNU/Linux”, aka “snuggle”

                   •    Some users not keen on /opt/local layout, we can fix that!

                   •    Flexibility of zones allows /usr -> /system/usr, /lib -> /system/lib, etc.

                   •    pkgsrc built with LOCALBASE=/usr PKG_SYSCONFDIR=/etc

                   •    Symlinks in /usr for compatability, overridden by packages

              •    Works surprisingly well, with caveats

                   •    Most builtin checks are not LOCALBASE=/usr clean

                   •    Some packages (hi perl!) make assumptions about /usr

              •    Would be great to see other users of this, e.g. Linux

                   •    Developed in joyent/feature/sngl/trunk branch




Saturday, 23 March 13
pkgsrc development - gccruntime

              •    SmartOS does not provide GCC runtime (libgcc, libstdc++ etc), needs to come
                   from pkgsrc

                   •    Split runtime out to lang/gcc47-libs package

                   •    Packages register full DEPENDS upon it, use GCC -specs override for RPATH

                   •    USE_PKGSRC_GCC_RUNTIME=yes to enable

                   •    Packages which USE_LIBTOOL handled automatically

              •    Packages which build their own shared libraries need special handling

                   •    USE_GCC_RUNTIME=yes

                   •    Not ideal, compiler.mk sourced early so needs to be set first

              •    Would like to integrate remaining USE_GCC_RUNTIME for 2013Q2

                   •    Currently developed in joyent/feature/gccruntime/trunk



Saturday, 23 March 13
pkgsrc development - misc

              •    OpenJDK7

                   •    Patches from SmartOS user “jesse_” to get latest OpenJDK working

                   •    Mostly working openjdk7-current package, would like to discuss *BSD
                        status

              •    _PBULK_MULTI support for mysql* and percona

                   •    Need a good naming scheme, p5-DBD-mysql51 / p5-DBD-percona55?

              •    Various small changes in joyent/feature/miscfix/trunk




Saturday, 23 March 13
pkgsrc development - git

              •    We develop everything with git / github

                   •    https://github.com/joyent/pkgsrc (thanks joerg!)

                   •    https://github.com/joyent/pkgsrc-wip

                   •    https://github.com/joyent/pkgsrc-joyent

              •    Cheap and fast branching makes it all possible

                   •    upstream/trunk->trunk, upstream/pkgsrc_*->pkgsrc_* (pull --rebase)

                   •    trunk -> joyent/feature/*/trunk -> joyent/release/trunk

                   •    pkgsrc_YYYYQQ -> joyent/feature/*/YYYYQQ -> joyent/release/YYYYQQ

                   •    joyent/feature/*/YYYYQQ -> joyent/release/YYYYQQ_feature

              •    Currently 5 active features (gccruntime, miscfix, multiarch, smf, sngl)

              •    Short-lived branches (joyent/bulktest/*, pkggnudir, openssl1, etc)



Saturday, 23 March 13
pkgsrc development - pbulk

              •    We build lots of binary packages

                   •    /opt/pbulk bootstrap + development tools

                   •    pbulk cluster of 6 client VMs (8 CPU, 8GB each), 1 master, + NFS

                   •    Can perform a full clean bulk build in under 2 days with MAKE_JOBS=8

                   •    Builds done inside chroot for concurrency

              •    Some changes required (in joyent/feature/miscfix/trunk)

                   •    Support creation/deletion of chroots + config file support

                   •    SO_REUSEADDR for limited_list

                   •    Enable rsync of RESTRICTED dependencies

                   •    Add SPECIFIC_PKGS support for full pkgsrc + selected pkgsrc-wip




Saturday, 23 March 13
pkgsrc development - Jenkins

              •    We use Jenkins for triggering bulk builds

                   •    Was in use by other parts of Joyent anyway

              •    GitHub plugin monitors for pushes in joyent/release/* branches

                   •    Build triggered for every push

                   •    Limited to one concurrent build per branch,

              •    Upstream builds triggered via Jenkins “cron”

                   •    Tracked directly from jsonn/pkgsrc.git

                   •    4 builds per week (2 x 32-bit, 2 x 64-bit)

                   •    Results sent directly to pkgsrc-bulk@netbsd.org

              •    Provides quite a nice interface, plus Jabber notification etc.




Saturday, 23 March 13
pkgsrc wishlist

              •    Things we really want at some point:

                   •    Support for multiple repositories in pkgin

                   •    Decent upgrade support / config file management

                   •    Multi-packages (users require different PKG_OPTIONS)

                   •    Additional pbulk-multi support (mysql, postgres, etc.)

              •    Things which would be nice to have:

                   •    apt/dpkg backend support

                   •    Better pkg_alternatives support

                   •    pkgin package aliases (#1 confusion for users is scmgit, #2 is gcc47)

                   •    Working (and updated) xorg server




Saturday, 23 March 13
Thank You!

              •    “All this is possible thanks to the unique way the BBC is funded”

              •    Thank you for all your development work and pkgsrc commits

                   •    We couldn’t handle the pace of upgrades ourselves

                   •    Your work is used further than perhaps you realise

              •    Let’s keep going!

                   •    Regular binary builds for other platforms (OSX, Cygwin)

                   •    Become the de-facto package manager on more platforms

                   •    Users => Fixes => Developers => Users => ...




Saturday, 23 March 13
Thanks!

              •    www.joyent.com - high-performance VMs and private cloud infrastructure

                   •    SmartDataCentre (SDC) powered, SmartOS + additional tooling

                   •    REST APIs for managing VMs

                   •    Cloud Analytics (DTrace) plus other goodies

                   •    Use “FREEJOY” promo code for $125 free credit (2 months running a 1GB
                        SmartMachine)

              •    www.smartos.org - open source OS for running VMs

                   •    Contribute your own images to http://datasets.at/ or publish yourself

              •    Questions?




Saturday, 23 March 13

More Related Content

What's hot

Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirtplarsen67
 
LCE13: Virtualization Forum
LCE13: Virtualization ForumLCE13: Virtualization Forum
LCE13: Virtualization ForumLinaro
 
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebulaTechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebulaOpenNebula Project
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...NETWAYS
 
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013Gluster.org
 
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...Deepak Shetty
 
BSD for Linux Users
BSD for Linux UsersBSD for Linux Users
BSD for Linux UsersDru Lavigne
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyBoden Russell
 
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebula Project
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Boden Russell
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)Boden Russell
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Dobrica Pavlinušić
 
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...Deepak Shetty
 
final proposal-Xen based Hypervisor in a Box
final proposal-Xen based Hypervisor in a Boxfinal proposal-Xen based Hypervisor in a Box
final proposal-Xen based Hypervisor in a BoxParamkusham Shruthi
 
OpenNebula - OpenNebula and tips for CentOS 7
OpenNebula - OpenNebula and tips for CentOS 7OpenNebula - OpenNebula and tips for CentOS 7
OpenNebula - OpenNebula and tips for CentOS 7OpenNebula Project
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless ContainersAkihiro Suda
 
Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ramesh Nachimuthu
 

What's hot (20)

Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
NIH package manager for pkgsrc
NIH package manager for pkgsrcNIH package manager for pkgsrc
NIH package manager for pkgsrc
 
LCE13: Virtualization Forum
LCE13: Virtualization ForumLCE13: Virtualization Forum
LCE13: Virtualization Forum
 
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebulaTechDay - Toronto 2016 - Hyperconvergence and OpenNebula
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
 
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013
Integrating gluster fs,_qemu_and_ovirt-vijay_bellur-linuxcon_eu_2013
 
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...
GlusterFS Native driver for Openstack Manila at GlusterNight Paris @ Openstac...
 
Docker_AGH_v0.1.3
Docker_AGH_v0.1.3Docker_AGH_v0.1.3
Docker_AGH_v0.1.3
 
BSD for Linux Users
BSD for Linux UsersBSD for Linux Users
BSD for Linux Users
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
 
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)
 
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...
GlusterFS Cinder integration presented at GlusterNight Paris event @ Openstac...
 
final proposal-Xen based Hypervisor in a Box
final proposal-Xen based Hypervisor in a Boxfinal proposal-Xen based Hypervisor in a Box
final proposal-Xen based Hypervisor in a Box
 
OpenNebula - OpenNebula and tips for CentOS 7
OpenNebula - OpenNebula and tips for CentOS 7OpenNebula - OpenNebula and tips for CentOS 7
OpenNebula - OpenNebula and tips for CentOS 7
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless Containers
 
Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016
 

Similar to pkgsrc on SmartOS

Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless ContainersAkihiro Suda
 
Arch Linux Package 的前世今生
Arch Linux Package 的前世今生Arch Linux Package 的前世今生
Arch Linux Package 的前世今生yan12125
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-reviewabinaya m
 
Lessons Learned From Running Spark On Docker
Lessons Learned From Running Spark On DockerLessons Learned From Running Spark On Docker
Lessons Learned From Running Spark On DockerSpark Summit
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkBenjamin Zores
 
Docking postgres
Docking postgresDocking postgres
Docking postgresrycamor
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
 
Rootless Kubernetes
Rootless KubernetesRootless Kubernetes
Rootless KubernetesAkihiro Suda
 
2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpi2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpiQNIB Solutions
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageMayaData Inc
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerAkihiro Nomura
 
Central Iowa Linux Users Group-December 2019: Windows Managers
Central Iowa Linux Users Group-December 2019: Windows ManagersCentral Iowa Linux Users Group-December 2019: Windows Managers
Central Iowa Linux Users Group-December 2019: Windows ManagersAndrew Denner
 
Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugSteve Arnold
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & dockerejlp12
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Walid Shaari
 
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?panagenda
 

Similar to pkgsrc on SmartOS (20)

Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
 
FreeBSD hosting
FreeBSD hostingFreeBSD hosting
FreeBSD hosting
 
Arch Linux Package 的前世今生
Arch Linux Package 的前世今生Arch Linux Package 的前世今生
Arch Linux Package 的前世今生
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-review
 
Lessons Learned From Running Spark On Docker
Lessons Learned From Running Spark On DockerLessons Learned From Running Spark On Docker
Lessons Learned From Running Spark On Docker
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
 
Docking postgres
Docking postgresDocking postgres
Docking postgres
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
 
Rootless Kubernetes
Rootless KubernetesRootless Kubernetes
Rootless Kubernetes
 
2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpi2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpi
 
FreeBSD is not Linux
FreeBSD is not LinuxFreeBSD is not Linux
FreeBSD is not Linux
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 Supercomputer
 
Central Iowa Linux Users Group-December 2019: Windows Managers
Central Iowa Linux Users Group-December 2019: Windows ManagersCentral Iowa Linux Users Group-December 2019: Windows Managers
Central Iowa Linux Users Group-December 2019: Windows Managers
 
Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded Cclug
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & docker
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

pkgsrc on SmartOS

  • 1. pkgsrc on SmartOS Jonathan Perkin @jperkin Software Engineer jperkin@joyent.com Joyent jperkin@pkgsrc.org Saturday, 23 March 13
  • 2. Agenda • Introduction • History and background to SmartOS • pkgsrc usage in SmartOS • pkgsrc features we’ve developed • pkgsrc development at Joyent • Our pkgsrc wishlist Saturday, 23 March 13
  • 3. $ whoami! • Started working on pkgsrc in 2001 • Used pkgsrc on Solaris internally at BBC • Worked on build systems and release engineering for MySQL/Sun/Oracle • Now work full-time on pkgsrc for Joyent $ uname -a SunOS www0-rth.thls.bbc.co.uk 5.7 Generic sun4m sparc SUNW,SPARCstation-20 $ uptime 12:28pm up 5000 day(s), 2 users, load average: 0.91, 0.89, 0.87 Saturday, 23 March 13
  • 4. What is SmartOS - History • Solaris 10 released by Sun in 2005 • ZFS, DTrace, Zones, SMF • Open Source • OpenSolaris continued the development towards Solaris 11 • IPS, Crossbow, Laptop/Desktop support, GNU environment • However, Oracle made Solaris closed source and proprietary in 2010 • illumos was born to continue development of the last available OpenSolaris code • Replace closed-source parts needed to operate the system • Continue feature development, working with other communities Saturday, 23 March 13
  • 5. What is SmartOS - illumos Distributions • Diaspora of Solaris engineers from Oracle and community talent has to illumos distributions focused on specific areas of interest • Delphix continue DTrace and ZFS development for database virtualisation products • Nexenta and DEY focus on storage appliances and services • OmniTI produce OmniOS, a general-purpose illumos distribution for servers • OpenIndiana continues development of a desktop-oriented environment • Joyent produce SmartOS with a specific focus on cloud computing Saturday, 23 March 13
  • 6. What is SmartOS - Joyent! • Joyent operate a high performance public cloud. The key features of illumos we require which differentiate it are: • ZFS. Fast, scalable, robust storage • DTrace. Observability and debugging across everything • Zones. Low latency and highly customisable virtualisation • KVM. Ability to run customer’s preferred OS (though we always recommend Zones wherever possible) Saturday, 23 March 13
  • 7. What is SmartOS - Thin Hypervisor • SmartOS is a USB/network-booted thin hypervisor • Open source, available on GitHub • OS resides on USB stick or PXE • All disks are dedicated to zones • The “Global Zone” is a ramdisk for zone administration, nothing else • /usr is a read-only lofs mount, changes to /etc, /root, etc. not permanent • Upgrades are trivial, replace platform directory and reboot • Latest “First Customer Ship” build available every 2 weeks • Clear separation between OS (platform) and packages (pkgsrc) • PREFER_PKGSRC=yes (except for solaris-pam, terminfo) • Zone images are fully independent of OS version Saturday, 23 March 13
  • 8. What is SmartOS - Zones • All work is done inside Zones • Zones are created from images, made up of a file system image (ZFS snapshot) and metadata (JSON) • imgadm and vmadm tools for management of images and virtual machines • OS zones are “sparse” and mount /usr from GZ • KVM systems are just images too, and run qemu process inside a thin zone • Gain hosting features (throttling, resource management, etc.) • Additional security Saturday, 23 March 13
  • 10. pkgsrc on SmartOS - Basics • We track quarterly branches for each image version • 2012Q2 => base*-1.8.x, 2012Q4 => base*-1.9.x, etc • Separate images for 32-bit (ABI=32, base) and 64-bit (ABI=64, base64) • Self-contained layout • PREFIX=/opt/local • PKG_SYSCONFDIR=/opt/local/etc • PKG_DBDIR=/opt/local/pkg • Various package sets available • base for minimal install • standard for base + common utilities • percona, riak etc for specific purpose Saturday, 23 March 13
  • 11. pkgsrc development • Our users demand additional pkgsrc features that we have developed: • Multi-architecture binaries and libraries • SMF support • “SmartOS is Not GNU/Linux” distribution (PREFIX=/usr) Saturday, 23 March 13
  • 12. pkgsrc development - multiarch • Separate 32-bit and 64-bit images are a pain: • Confusing for users and customers who think it refers to the kernel architecture • Additional build and storage requirements • Solaris has had multiarch support since Solaris 7 in 1998, old-time users have come to expect it Saturday, 23 March 13
  • 13. pkgsrc development - multiarch #2 • High-level overview: • For multiarch-enabled packages, perform each build stage (extract, patch, ...) twice, once with ABI=32, once with ABI=64 • --bindir= and --libdir= set based on ABI • Install both to the same DESTDIR, default ABI installed last • PLIST expansion to cover multiple entries • isaexec wrapper installed to handle binaries • Create package • Enable with MULTIARCH=yes in mk.conf Saturday, 23 March 13
  • 14. pkgsrc development - multiarch #3 • Infrastructure (mk/) changes: • Each primary phase (e.g. ‘do-extract’) has a wrapper (e.g. ‘do-extract- multi’) which calls the primary target for each ABI • mk/plist/plist-multiarch.awk handles PLIST expansion • OPSYS-specific {BIN,LIB}ARCHSUFFIX.{32,64} variables • BINARCHSUFFIX.32= /i86 • BINARCHSUFFIX.64= /amd64 • pkgtools/isaexec package created, supports ABI environment variable • pkg_install supports new @link directive for isaexec hardlinks Saturday, 23 March 13
  • 15. pkgsrc development - multiarch #4 • Converting a simple autoconf/cmake package requires: • USE_MULTIARCH= bin lib • Converting more complicated custom packages involves: • USE_MULTIARCH= bin lib • Change hardcoded lib to lib${LIBARCHSUFFIX} • Change hardcoded bin to bin${BINARCHSUFFIX} • Use MULTIARCH_DIRS.{bin,lib} • Use MULTIARCH_SKIP_DIRS.{bin,lib} • Complicated WRKSRC handling • Developers, please stop writing your own build systems! Saturday, 23 March 13
  • 16. pkgsrc development - multiarch #5 • Current status • Large number of packages converted (p5-* automatically handled) • SmartOS “trunk” image uses multiarch by default, ~8,000 packages • 504 files changed, 3525 insertions(+), 902 deletions(-) • Developed in Joyent pkgsrc repository • joyent/feature/multiarch/trunk -> joyent/release/trunk • joyent/feature/multiarch/YYYYQQ -> joyent/release/YYYYQQ_multiarch Saturday, 23 March 13
  • 17. pkgsrc development - SMF • Solaris 10 introduced the Service Management Framework as a replacement for the legacy init.d system. We need to support it. • svccfg to import a new manifest • svcadm to enable/disable/restart • svcs to display status • Small number of infrastructure changes • New mk/smf.mk • 4 files changed, 131 insertions(+) • Manifest and method files current held externally similar to LOCALPATCHES • ${SMFBASE}/${PKGPATH} • Developed in joyent/feature/smf/trunk branch Saturday, 23 March 13
  • 18. pkgsrc development - SNGL • “SmartOS is Not GNU/Linux”, aka “snuggle” • Some users not keen on /opt/local layout, we can fix that! • Flexibility of zones allows /usr -> /system/usr, /lib -> /system/lib, etc. • pkgsrc built with LOCALBASE=/usr PKG_SYSCONFDIR=/etc • Symlinks in /usr for compatability, overridden by packages • Works surprisingly well, with caveats • Most builtin checks are not LOCALBASE=/usr clean • Some packages (hi perl!) make assumptions about /usr • Would be great to see other users of this, e.g. Linux • Developed in joyent/feature/sngl/trunk branch Saturday, 23 March 13
  • 19. pkgsrc development - gccruntime • SmartOS does not provide GCC runtime (libgcc, libstdc++ etc), needs to come from pkgsrc • Split runtime out to lang/gcc47-libs package • Packages register full DEPENDS upon it, use GCC -specs override for RPATH • USE_PKGSRC_GCC_RUNTIME=yes to enable • Packages which USE_LIBTOOL handled automatically • Packages which build their own shared libraries need special handling • USE_GCC_RUNTIME=yes • Not ideal, compiler.mk sourced early so needs to be set first • Would like to integrate remaining USE_GCC_RUNTIME for 2013Q2 • Currently developed in joyent/feature/gccruntime/trunk Saturday, 23 March 13
  • 20. pkgsrc development - misc • OpenJDK7 • Patches from SmartOS user “jesse_” to get latest OpenJDK working • Mostly working openjdk7-current package, would like to discuss *BSD status • _PBULK_MULTI support for mysql* and percona • Need a good naming scheme, p5-DBD-mysql51 / p5-DBD-percona55? • Various small changes in joyent/feature/miscfix/trunk Saturday, 23 March 13
  • 21. pkgsrc development - git • We develop everything with git / github • https://github.com/joyent/pkgsrc (thanks joerg!) • https://github.com/joyent/pkgsrc-wip • https://github.com/joyent/pkgsrc-joyent • Cheap and fast branching makes it all possible • upstream/trunk->trunk, upstream/pkgsrc_*->pkgsrc_* (pull --rebase) • trunk -> joyent/feature/*/trunk -> joyent/release/trunk • pkgsrc_YYYYQQ -> joyent/feature/*/YYYYQQ -> joyent/release/YYYYQQ • joyent/feature/*/YYYYQQ -> joyent/release/YYYYQQ_feature • Currently 5 active features (gccruntime, miscfix, multiarch, smf, sngl) • Short-lived branches (joyent/bulktest/*, pkggnudir, openssl1, etc) Saturday, 23 March 13
  • 22. pkgsrc development - pbulk • We build lots of binary packages • /opt/pbulk bootstrap + development tools • pbulk cluster of 6 client VMs (8 CPU, 8GB each), 1 master, + NFS • Can perform a full clean bulk build in under 2 days with MAKE_JOBS=8 • Builds done inside chroot for concurrency • Some changes required (in joyent/feature/miscfix/trunk) • Support creation/deletion of chroots + config file support • SO_REUSEADDR for limited_list • Enable rsync of RESTRICTED dependencies • Add SPECIFIC_PKGS support for full pkgsrc + selected pkgsrc-wip Saturday, 23 March 13
  • 23. pkgsrc development - Jenkins • We use Jenkins for triggering bulk builds • Was in use by other parts of Joyent anyway • GitHub plugin monitors for pushes in joyent/release/* branches • Build triggered for every push • Limited to one concurrent build per branch, • Upstream builds triggered via Jenkins “cron” • Tracked directly from jsonn/pkgsrc.git • 4 builds per week (2 x 32-bit, 2 x 64-bit) • Results sent directly to pkgsrc-bulk@netbsd.org • Provides quite a nice interface, plus Jabber notification etc. Saturday, 23 March 13
  • 24. pkgsrc wishlist • Things we really want at some point: • Support for multiple repositories in pkgin • Decent upgrade support / config file management • Multi-packages (users require different PKG_OPTIONS) • Additional pbulk-multi support (mysql, postgres, etc.) • Things which would be nice to have: • apt/dpkg backend support • Better pkg_alternatives support • pkgin package aliases (#1 confusion for users is scmgit, #2 is gcc47) • Working (and updated) xorg server Saturday, 23 March 13
  • 25. Thank You! • “All this is possible thanks to the unique way the BBC is funded” • Thank you for all your development work and pkgsrc commits • We couldn’t handle the pace of upgrades ourselves • Your work is used further than perhaps you realise • Let’s keep going! • Regular binary builds for other platforms (OSX, Cygwin) • Become the de-facto package manager on more platforms • Users => Fixes => Developers => Users => ... Saturday, 23 March 13
  • 26. Thanks! • www.joyent.com - high-performance VMs and private cloud infrastructure • SmartDataCentre (SDC) powered, SmartOS + additional tooling • REST APIs for managing VMs • Cloud Analytics (DTrace) plus other goodies • Use “FREEJOY” promo code for $125 free credit (2 months running a 1GB SmartMachine) • www.smartos.org - open source OS for running VMs • Contribute your own images to http://datasets.at/ or publish yourself • Questions? Saturday, 23 March 13