OpenCSW - What is the project about?

Post on 22-Nov-2014

402 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

This is an introduction on the OpenCSW project - what is about and how the basic things are done

Transcript

Solaris PackagesDagobert Michelsen

Baltic Online Computer GmbH

Donnerstag, 10. Januar 13

Me

Donnerstag, 10. Januar 13

MeBorn 1971

Solaris 1994„root“ 1998CSW 2006

Donnerstag, 10. Januar 13

Solaris Packages

What is OpenCSW?

Donnerstag, 10. Januar 13

Solaris Packages

What is OpenCSW?

• Priority 1: Porting together with Upstream

• 43 projects using the OpenCSW buildfarm to ensure Solaris compatibility

• 12 GNU projects

Donnerstag, 10. Januar 13

Solaris Packages

What is OpenCSW?

• Priority 1: Porting together with Upstream

• 43 projects using the OpenCSW buildfarm to ensure Solaris compatibility

• 12 GNU projects

• Priority 2: Packaging

• About 3700 packages

Donnerstag, 10. Januar 13

Solaris Packages

Why “Open”CSW?

Donnerstag, 10. Januar 13

Solaris Packages

Why “Open”CSW?

• Open build descriptions

• Repository hosted at SourceForge

Donnerstag, 10. Januar 13

Solaris Packages

Why “Open”CSW?

• Open build descriptions

• Repository hosted at SourceForge

• Open download for binary packages

Donnerstag, 10. Januar 13

Solaris Packages

Why “Open”CSW?

• Open build descriptions

• Repository hosted at SourceForge

• Open download for binary packages

• Open for contributors

Donnerstag, 10. Januar 13

Solaris Packages

Why “Open”CSW?

• Open build descriptions

• Repository hosted at SourceForge

• Open download for binary packages

• Open for contributors

• Open for upstream projects

Donnerstag, 10. Januar 13

Camps twice a yearall around Europe

Community

Donnerstag, 10. Januar 13

Camps twice a yearall around Europe

Community

Kiel

Oslo

München

Dublin

Zürich

Donnerstag, 10. Januar 13

Solaris Packages

Open...What?

• German: Open-Ze-Es-We

• English: Open-Cashew Open-\kə-ˈshü\

Donnerstag, 10. Januar 13

Solaris Packages

Open...What?

• German: Open-Ze-Es-We

• English: Open-Cashew Open-\kə-ˈshü\

Cashew nut

Donnerstag, 10. Januar 13

Solaris Packages

History

• CSW Community SoftWare, Alan DuBoff

• Start 2002 with packages from Phil Brown, hosted at Blastwave

• Fork 2008 OpenCSWhttp://www.flickr.com/photos/bertiemabootoo/2362780033/

Donnerstag, 10. Januar 13

Using OpenCSW

Donnerstag, 10. Januar 13

Solaris Packages

Solaris versions

Sparc

8

9

10

11

x86

8

9

10

11

Donnerstag, 10. Januar 13

Solaris Packages

pkgutil

• Wrapper around pkgadd / pkgrm

• Automatic download

• Automatic dependency resolution

• For OpenCSW packages,but also other non-csw packages→ Use CSWpkgutilplus

Donnerstag, 10. Januar 13

Solaris Packages

Getting Started

# pkgadd -d http://get.opencsw.org/now

# PATH=$PATH:/opt/csw/bin

# pkgutil -i top

# top

Donnerstag, 10. Januar 13

Solaris Packages

What is available?[unstable10s]:/home/dam > pkgutil -a xmlcommon package catalog sizelibqtxml4_gxx CSWlibqtxml4-gxx 4.8.0,REV=2012.06.08 132.3 KBlibxml CSWlibxml 1.8.17 1.4 MBlibxml++ CSWlibxml++ 1.0.0,REV=2004.06.14 50.3 KBlibxml2_2 CSWlibxml2-2 2.7.8,REV=2011.03.24 1.4 MBlibxml2_dev CSWlibxml2-dev 2.7.8,REV=2011.03.24 864.6 KBlibxml2_stub CSWlibxml2 2.7.8,REV=2011.03.24 1.9 KBlibxml2devel_stub CSWlibxml2devel 2.7.8,REV=2011.03.24 1.9 KBphp5_xmlreader CSWphp5-xmlreader 5.3.15,REV=2012.07.25 23.5 KBphp5_xmlrpc CSWphp5-xmlrpc 5.3.15,REV=2012.07.25 51.9 KBphp5_xmlwriter CSWphp5-xmlwriter 5.3.15,REV=2012.07.25 24.0 KBphp5xmlreader_stub CSWphp5xmlreader 5.3.15,REV=2012.07.25 2.5 KBphp5xmlrpc_stub CSWphp5xmlrpc 5.3.15,REV=2012.07.25 2.5 KBphp5xmlwriter_stub CSWphp5xmlwriter 5.3.15,REV=2012.07.25 2.5 KBpm_libxmlperl CSWpmlibxmlperl 0.08,REV=2006.08.15 46.0 KBpm_marcxml CSWpmmarcxml 0.92,REV=2010.06.11 10.4 KBpm_rpcxml CSWpmrpcxml 0.74,REV=2011.02.13 171.4 KBpm_testxml CSWpmtestxml 0.07,REV=2006.02.21 10.0 KBpm_xml_atom CSWpm-xml-atom 0.39,REV=2011.06.26 26.7 KB…

Donnerstag, 10. Januar 13

Solaris Packages

Update

• Update the catalog# pkgutil -U

• Update a package# pkgutil -y -u CSWapache2

• Update all packages# pkgutil -y -u

Donnerstag, 10. Januar 13

Solaris Packages

Paths

• Configuration/etc/opt/csw! ! (local) configuration/opt/csw/etc! ! Artifacts and global configurations

• Binaries and libraries/opt/csw

• Variable files/var/opt/csw

Donnerstag, 10. Januar 13

Solaris Packages

Catalogs• By stability

‣ stable Legacy, dead since 2008

‣ testing At the moment „dublin“

‣ unstable Lots of updates

• By release

‣ dublin Features shared library splitting

‣ kiel Features OpenSSL 1.0, GCC 4.7

‣ bratislava Features world rebuild, custom prefix

Donnerstag, 10. Januar 13

Solaris Packages

Catalogshttp://mirror.opencsw.org/opencsw/

stable ! ./README (dead!) testing ! dublin/ unstable/

dublin/ (will become new stable) kiel/ (has updates from unstable) bratislava/ (still almost empty)

Donnerstag, 10. Januar 13

Solaris Packages

Catalogs<catalog>"## i386$   "## 5.8$ $   "## catalog$ $   "## descriptions$ $   %## pkg-1.0,REV=2912.11.21-SunOS5.8-sparc-CSW.pkg.gz$   %## 5.9$ $   "## catalog$ $   "## descriptions$ $   %## pkg-1.0,REV=2912.11.21-SunOS5.8-sparc-CSW.pkg.gz$ $   -> ../5.8/pkg-1.0,REV=2912.11.21-SunOS5.8-sparc-CSW.pkg.gz$   "## 5.10$ $   "## catalog$ $   "## descriptions$ $   %## pkg-1.0,REV=2912.11.21-SunOS5.10-sparc-CSW.pkg.gz$   "## 5.11%## sparc "## 5.8 "## 5.9 "## 5.10 %## 5.11

Donnerstag, 10. Januar 13

Solaris Packages

/etc/opt/csw/pkgutil.conf

…# Max package list length# During dependency calculation the recursive algorithm needs to be protected# against cyclic dependencies in the catalog (packages that list each other# as dependencies) or pkgutil will not stop until memory is exhausted.# Default: 250000#maxpkglist=250000

# Mirror to use for downloads# See http://www.opencsw.org/mirrors for alternative mirrors.# Default: http://mirror.opencsw.org/opencsw/unstablemirror=http://mirror.opencsw.org/opencsw/unstable

# Support non-CSW packages. If you have your own packages that have a different# prefix that you want to use with pkgutil you must enable this otherwise# pkgutil will skip every package not prefixed by CSW.# NOTE: this also affects options like -c/C, however it's easy to filter the# output if wanted, e.g. "pkgutil -C CSW".# Default: false#noncsw=true…

Donnerstag, 10. Januar 13

Solaris Packages

Security

• Catalog is signed with GPG

• Checksum for each package in the catalog

pkgutil  -­‐i  CSWcswpki

             *or*

wget  -­‐q  -­‐O  -­‐  http://www.opencsw.org/security/  |  gpg  -­‐-­‐import  -­‐gpg  -­‐-­‐edit-­‐key  board@opencsw.org  trust

• Fingerprint4DCE 3C80 AAB2  CAB1  E60C    9A3C  05F4  2D66  9306  CC77

Donnerstag, 10. Januar 13

No internet?

Donnerstag, 10. Januar 13

No internet?

Donnerstag, 10. Januar 13

Solaris Packages

No internet?or lots of local package traffic

• Local mirror rsync -Hrav rsync://mirror.opencsw.org/opencsw \ /export/opencsw

vi /etc/opt/csw/pkgutil.conf (Edit mirror=file:///export/opencsw/unstable)

Donnerstag, 10. Januar 13

Solaris Packages

No internet?

• One package with dependencies

# pkgutil --stream --download -T sparc:5.10 bind…Transforming packages into stream (/home/dam/.pkgutil/packages/bind.sparc.5.10.pkg)…

• Copy over bind.sparc.5.10.pkg

• Install packages

# pkgadd -d bind.sparc.5.10.pkg all

Donnerstag, 10. Januar 13

Solaris Packages

Packaging

• Dependencies between CSW packages,No dependencies to SUNW packages

• Split-off development packagesCSW<library>-dev

• On libraries one package per SONAME

• Simplfied updates on versions bumps

• Canonical package name deriver from SONAME

Donnerstag, 10. Januar 13

Solaris Packages

Compiling against OpenCSW

• Compiler

• “Dublin”+ “Kiel”: Solaris Studio 12.x“Bratislava”: GCC 4.7

• FlagsCFLAGS -I/opt/csw/includeLDFLAGS -L/opt/csw/lib{/64} -R/opt/csw/lib{/64}PKG_CONFIG_PATH /opt/csw/lib/pkgconfig{/64}

Donnerstag, 10. Januar 13

Solaris Packages

32/64 Bit

• Combined 32/64 bit packages where useful

‣ Kernel memory

‣ >2 GB memory

‣ >256 file descriptors

‣ x64

• isaexec

Donnerstag, 10. Januar 13

Solaris Packages

Sparse Zones

• Yes, we can! :-)

• Solaris 11: No more sparse zones

• Global ZoneClass Action Scripts CSWcas-*/usr/sadm/install/scripts/{i|r}.<class>

• Nonglobal Zones: nothing special

Donnerstag, 10. Januar 13

Buildsystem

Donnerstag, 10. Januar 13

Solaris Packages

Buildsystem: GARhttp://gar.opencsw.org

Donnerstag, 10. Januar 13

Solaris Packages

Live Demo

• Name

• Description

• Version

• Filename

• Download from where?

Donnerstag, 10. Januar 13

Solaris Packages

Live DemoNAME = gperfVERSION = 3.0.4

DESCRIPTION = A perfect hash function generator

MASTER_SITES = http://ftp.gnu.org/gnu/gperfDISTFILES = $(NAME)-$(VERSION).tar.gz

include gar/category.mk

Donnerstag, 10. Januar 13

Solaris Packages

Live DemoNAME = gperfVERSION = 3.0.4

DESCRIPTION = A perfect hash function generator

MASTER_SITES = $(GNU_MIRROR)DISTFILES = $(NAME)-$(VERSION).tar.gz

include gar/category.mk

Donnerstag, 10. Januar 13

Solaris Packages

Live DemoNAME = gperfVERSION = 3.0.4

DESCRIPTION = A perfect hash function generator

MASTER_SITES = $(GNU_MIRROR)DISTFILES = $(NAME)-$(VERSION).tar.gz

BUILD64 = 1

include gar/category.mk

Donnerstag, 10. Januar 13

Solaris Packages

Live Demo.`-- opt `-- csw |-- bin | |-- gperf | `-- sparcv9 | `-- gperf `-- share |-- doc | |-- gperf | | `-- license | `-- gperf.html |-- info | `-- gperf.info `-- man `-- man1 `-- gperf.1

Donnerstag, 10. Januar 13

Solaris Packages

PrerequisitesFetchChecksumExtractPatchConfigureBuildTestInstallMergePackage

Global

Inside amodulation

Global

Phases

Donnerstag, 10. Januar 13

Solaris Packages

PrerequisitesFetchChecksumExtractPatchConfigureBuildTestInstallMergePackage

Global

Inside amodulation

Global

Phases

Donnerstag, 10. Januar 13

Solaris Packages

PrerequisitesFetchChecksumExtractPatchConfigureBuildTestInstallMergePackage

Global

Inside amodulation

Global

Phases

One Modulation

Donnerstag, 10. Januar 13

Solaris Packages

Live DemoNAME = gperfVERSION = 3.0.4

DESCRIPTION = A perfect hash function generator

MASTER_SITES = $(GNU_MIRROR)DISTFILES = $(NAME)-$(VERSION).tar.gz

BUILD64 = 1

ISAEXEC = 1

include gar/category.mk

Donnerstag, 10. Januar 13

Solaris Packages

Live Demo.`-- opt `-- csw |-- bin | |-- gperf -> isaexec | `-- sparcv8plus | `-- gperf | `-- sparcv9 | `-- gperf `-- share |-- doc | |-- gperf | | `-- license | `-- gperf.html |-- info | `-- gperf.info `-- man `-- man1

Donnerstag, 10. Januar 13

Solaris Packages

Features, …

• Reinplacement

• Checkpkg

• Categories

• Auto–SMF

• Preserveconf

• CPAN makemake

• Platforms

• Mapfiles

• Modulations

• Obsoletions

• Dynamic prototypes

Donnerstag, 10. Januar 13

Solaris Packages

Things to come

• IPS

• Rebuild the World with custom prefix

• ACMEopenldap

• /opt/acme

Donnerstag, 10. Januar 13

http://www.opencsw.org http://www.opencsw.org/communityhttp://freenode.net IRC-Channel #opencswTwitter: @opencsw

Donnerstag, 10. Januar 13

top related