OpenCSW - What is the project about?

1,297 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,297
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OpenCSW - What is the project about?

  1. 1. Solaris Packages Dagobert Michelsen Baltic Online Computer GmbH Donnerstag, 10. Januar 13
  2. 2. Me Donnerstag, 10. Januar 13
  3. 3. Me Born 1971 Solaris 1994 „root“ 1998 CSW 2006 Donnerstag, 10. Januar 13
  4. 4. Solaris Packages What is OpenCSW? Donnerstag, 10. Januar 13
  5. 5. 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
  6. 6. 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
  7. 7. Solaris Packages Why “Open”CSW? Donnerstag, 10. Januar 13
  8. 8. Solaris Packages Why “Open”CSW? • Open build descriptions • Repository hosted at SourceForge Donnerstag, 10. Januar 13
  9. 9. Solaris Packages Why “Open”CSW? • Open build descriptions • Repository hosted at SourceForge • Open download for binary packages Donnerstag, 10. Januar 13
  10. 10. Solaris Packages Why “Open”CSW? • Open build descriptions • Repository hosted at SourceForge • Open download for binary packages • Open for contributors Donnerstag, 10. Januar 13
  11. 11. 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
  12. 12. Camps twice a year all around Europe Community Donnerstag, 10. Januar 13
  13. 13. Camps twice a year all around Europe Community Kiel Oslo München Dublin Zürich Donnerstag, 10. Januar 13
  14. 14. Solaris Packages Open...What? • German: Open-Ze-Es-We • English: Open-Cashew Open-kə-ˈshü Donnerstag, 10. Januar 13
  15. 15. Solaris Packages Open...What? • German: Open-Ze-Es-We • English: Open-Cashew Open-kə-ˈshü Cashew nut Donnerstag, 10. Januar 13
  16. 16. Solaris Packages History • CSW Community SoftWare, Alan DuBoff • Start 2002 with packages from Phil Brown, hosted at Blastwave • Fork 2008 OpenCSW http://www.flickr.com/photos/bertiemabootoo/2362780033/ Donnerstag, 10. Januar 13
  17. 17. Using OpenCSW Donnerstag, 10. Januar 13
  18. 18. Solaris Packages Solaris versions Sparc 8 9 10 11 x86 8 9 10 11 Donnerstag, 10. Januar 13
  19. 19. 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
  20. 20. Solaris Packages Getting Started # pkgadd -d http://get.opencsw.org/now # PATH=$PATH:/opt/csw/bin # pkgutil -i top # top Donnerstag, 10. Januar 13
  21. 21. Solaris Packages What is available? [unstable10s]:/home/dam > pkgutil -a xml common package catalog size libqtxml4_gxx CSWlibqtxml4-gxx 4.8.0,REV=2012.06.08 132.3 KB libxml CSWlibxml 1.8.17 1.4 MB libxml++ CSWlibxml++ 1.0.0,REV=2004.06.14 50.3 KB libxml2_2 CSWlibxml2-2 2.7.8,REV=2011.03.24 1.4 MB libxml2_dev CSWlibxml2-dev 2.7.8,REV=2011.03.24 864.6 KB libxml2_stub CSWlibxml2 2.7.8,REV=2011.03.24 1.9 KB libxml2devel_stub CSWlibxml2devel 2.7.8,REV=2011.03.24 1.9 KB php5_xmlreader CSWphp5-xmlreader 5.3.15,REV=2012.07.25 23.5 KB php5_xmlrpc CSWphp5-xmlrpc 5.3.15,REV=2012.07.25 51.9 KB php5_xmlwriter CSWphp5-xmlwriter 5.3.15,REV=2012.07.25 24.0 KB php5xmlreader_stub CSWphp5xmlreader 5.3.15,REV=2012.07.25 2.5 KB php5xmlrpc_stub CSWphp5xmlrpc 5.3.15,REV=2012.07.25 2.5 KB php5xmlwriter_stub CSWphp5xmlwriter 5.3.15,REV=2012.07.25 2.5 KB pm_libxmlperl CSWpmlibxmlperl 0.08,REV=2006.08.15 46.0 KB pm_marcxml CSWpmmarcxml 0.92,REV=2010.06.11 10.4 KB pm_rpcxml CSWpmrpcxml 0.74,REV=2011.02.13 171.4 KB pm_testxml CSWpmtestxml 0.07,REV=2006.02.21 10.0 KB pm_xml_atom CSWpm-xml-atom 0.39,REV=2011.06.26 26.7 KB … Donnerstag, 10. Januar 13
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Solaris Packages Catalogs http://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
  26. 26. 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
  27. 27. 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/unstable mirror=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
  28. 28. 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 • Fingerprint 4DCE 3C80 AAB2  CAB1  E60C    9A3C  05F4  2D66  9306  CC77 Donnerstag, 10. Januar 13
  29. 29. No internet? Donnerstag, 10. Januar 13
  30. 30. No internet? Donnerstag, 10. Januar 13
  31. 31. 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
  32. 32. 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
  33. 33. Solaris Packages Packaging • Dependencies between CSW packages, No dependencies to SUNW packages • Split-off development packages CSW<library>-dev • On libraries one package per SONAME • Simplfied updates on versions bumps • Canonical package name deriver from SONAME Donnerstag, 10. Januar 13
  34. 34. Solaris Packages Compiling against OpenCSW • Compiler • “Dublin”+ “Kiel”: Solaris Studio 12.x “Bratislava”: GCC 4.7 • Flags CFLAGS -I/opt/csw/include LDFLAGS -L/opt/csw/lib{/64} -R/opt/csw/lib{/64} PKG_CONFIG_PATH /opt/csw/lib/pkgconfig{/64} Donnerstag, 10. Januar 13
  35. 35. 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
  36. 36. Solaris Packages Sparse Zones • Yes, we can! :-) • Solaris 11: No more sparse zones • Global Zone Class Action Scripts CSWcas-* /usr/sadm/install/scripts/{i|r}.<class> • Nonglobal Zones: nothing special Donnerstag, 10. Januar 13
  37. 37. Buildsystem Donnerstag, 10. Januar 13
  38. 38. Solaris Packages Buildsystem: GAR http://gar.opencsw.org Donnerstag, 10. Januar 13
  39. 39. Solaris Packages Live Demo • Name • Description • Version • Filename • Download from where? Donnerstag, 10. Januar 13
  40. 40. Solaris Packages Live Demo NAME = gperf VERSION = 3.0.4 DESCRIPTION = A perfect hash function generator MASTER_SITES = http://ftp.gnu.org/gnu/gperf DISTFILES = $(NAME)-$(VERSION).tar.gz include gar/category.mk Donnerstag, 10. Januar 13
  41. 41. Solaris Packages Live Demo NAME = gperf VERSION = 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
  42. 42. Solaris Packages Live Demo NAME = gperf VERSION = 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
  43. 43. 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
  44. 44. Solaris Packages Prerequisites Fetch Checksum Extract Patch Configure Build Test Install Merge Package Global Inside a modulation Global Phases Donnerstag, 10. Januar 13
  45. 45. Solaris Packages Prerequisites Fetch Checksum Extract Patch Configure Build Test Install Merge Package Global Inside a modulation Global Phases Donnerstag, 10. Januar 13
  46. 46. Solaris Packages Prerequisites Fetch Checksum Extract Patch Configure Build Test Install Merge Package Global Inside a modulation Global Phases One Modulation Donnerstag, 10. Januar 13
  47. 47. Solaris Packages Live Demo NAME = gperf VERSION = 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
  48. 48. 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
  49. 49. Solaris Packages Features, … • Reinplacement • Checkpkg • Categories • Auto–SMF • Preserveconf • CPAN makemake • Platforms • Mapfiles • Modulations • Obsoletions • Dynamic prototypes Donnerstag, 10. Januar 13
  50. 50. Solaris Packages Things to come • IPS • Rebuild the World with custom prefix • ACMEopenldap • /opt/acme Donnerstag, 10. Januar 13
  51. 51. http://www.opencsw.org http://www.opencsw.org/community http://freenode.net IRC-Channel #opencsw Twitter: @opencsw Donnerstag, 10. Januar 13

×