Download - Third-party software management under BSD
![Page 1: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/1.jpg)
Third-party softwaremanagement under BSD
Andrew Pantyukhin
EuroBSDCon 2006
powered by the FreeBSD Foundation
![Page 2: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/2.jpg)
First things first
●The need for 3d-party software
●Why do we require packages
●The need for package management
●What do we expect to manage
![Page 3: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/3.jpg)
History -Packages in UNIX
●OS is an all-included bundle
●"Users" must figure out how to "use" software
themselves
●SysV/SunOS PKG format
![Page 4: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/4.jpg)
History -Packages in BSD
●JKH committed pkg_install in 1993
●JKH committed ports in 1994
●{Net,Open}BSD snatched both of them
![Page 5: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/5.jpg)
History -Packages in Linux
●Many PM systems appeared in 1993-95, including
RPM and dpkg
●Portage came out in 2002
●A multitude of PM systems were started over since
90s, some of them still maintained, some actively
developed
![Page 6: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/6.jpg)
Current Status
●Dozens of distinctive PM systems
●Focus on binary and/or source packages
●Automation of compilation-related routines
●Automation of installation tasks
![Page 7: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/7.jpg)
FreeBSD ports
●Make + shell
●Multiple scripts in multilevel directories
●Effective automation of common tasks and hacks
![Page 8: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/8.jpg)
NetBSD ports
●Good documentation
●pkginstall framework
●pkg options framework
![Page 9: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/9.jpg)
OpenBSD ports
●Fake build environment
●Immaculate documentation
●Options, flavors, multi-packages
●New pkg_install + a hard-headed maintainer
![Page 10: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/10.jpg)
Looking out of BSD
●RPM
●Dpkg
●Portage
●Other
●Linux Core Consortium - Standard Base
![Page 11: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/11.jpg)
Why bother?
●Isolation has its benefits, but
●No system alone proved to be able to reach even
modest qualitative/quantitative targets
●We have too much in common not to share ideas and
code
![Page 12: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/12.jpg)
What's up?
●Scalability
●Resource management/customization
●Dependencies, capabilities, functionality
●User-side management, interface, Clicks!
●Versioning everywhere
●Saving porter a lifetime (as in more automation)
●Much more...
![Page 13: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/13.jpg)
What packages needand what they provide
●Other packages
●Resources
●Functionality
![Page 14: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/14.jpg)
OS Resourcesfor packages
●Disk space
●TCP/UDP ports at different addresses
●File name spaces
●User/group names/ids
●CPU, RAM, disk throughput, etc.
●Bandwidth
●You name it...
![Page 15: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/15.jpg)
Appliances
●Package + dependencies bundled together
●Jail appliances
●OS appliances
●BSD-based hardware appliances
![Page 16: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/16.jpg)
Package-Provided Resources
●(SQL) Databases
●Virtual Hosts
●Client connections to an (antivirus) engine
●On-screen pixel real-estate
●Technically specific items, like lines in configuration
files
![Page 17: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/17.jpg)
Package-Provided Functionality
●Needed by users directly and/or required by other
packages
●API-oriented, e.g. language modules and extensions,
binary libraries
●Task-oriented, e.g. web servers, mail clients, DBMS
![Page 18: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/18.jpg)
Install-/run-time customization
●Automation of installation tasks based on simple
user-made choices
●Single interface to configure the usage of some
resources, like TCP ports
![Page 19: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/19.jpg)
Multiple package instancing
●Many versions installed at one time for testing and
compatibility
●Several instances of the same version with different
configurations
![Page 20: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/20.jpg)
More flexibility
●Movable packages - at post-install time
●Non-privileged management
●Per-user/per-jail package masking
![Page 21: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/21.jpg)
Versioning
●Easily accessible older versions
●Depending on older versions
●Keeping distfiles in a VCS repo
●Incremental distfile updates
![Page 22: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/22.jpg)
Getting pristine sources
●RCS, VCS repositories
●P2P
●Metalinks
●Rsync
●Guided non-distributable downloads
![Page 23: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/23.jpg)
User Interface
●Centralized management
●Orthogonal switches
●Advanced on-line help/hints system in addition to
manpages and other documentation
●Integrated updating capabilities
●Options handling
●Clicks
![Page 24: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/24.jpg)
User Package Sets
●Storage of package sets, easy access/distribution
●Marking packages as requested or depended on
●Marking some big (sets of) packages as undesirable
to be installed
![Page 25: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/25.jpg)
Technicalities
●distcc
●ccache
●Cross-compilation
![Page 26: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/26.jpg)
Security
●CVE is a dictionary
●We need a database
●Different projects use CVE/database as an overlay
●Or, the database stores info about projects
![Page 27: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/27.jpg)
Exchanging hacks
●Thousands of hacks spread out throughout the PM
systems
●Only a few are documented, most of the other ones
are abandoned and forgotten
●Developers have to reinvent solutions
![Page 28: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/28.jpg)
Collaboration(ism)
●Education
●Spirit
●Communication
![Page 29: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/29.jpg)
Education
●Other PM systems exist, and they do work
●Many of them have good documentation
●Behind projects there are people to talk to and to learn
from
![Page 30: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/30.jpg)
Spirit
●No single PM system dominates the market
●Rich traditions of forks and new-from-scratch solutions
gave us diversity, but prevent us from trying to work
together
●Working with people/approaches we don't necessarily
like
![Page 31: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/31.jpg)
Communication
●Actual developers making contacts
●Looking for solutions (in)
●Sharing our ideas (out)
●Taking part in outside discussions
●Inviting outsiders over to our forums
![Page 32: Third-party software management under BSD](https://reader033.vdocuments.us/reader033/viewer/2022052904/557f0dafd8b42a01678b4788/html5/thumbnails/32.jpg)
What's next
●More forays into the wild
●Mentioning the diversity of PM systems in docs
●Learning from others
●Bringing in foreign solutions
●Standardizing on decisions