packaging

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    packaging - Presentation Transcript

    1. .rpm .deb .ebuild .tgz OMG!
        • Eddy Mulyono
        • current state of packaging across distros (Ubuntu, Gentoo, rPath), lessons learned, and what's next
    2. metadata – whoami
      • Gentoo
        • ~ 3 years
        • bunch of Bugzilla
        • Sunrise committer
      • Ubuntu
        • ~ 1 year
        • Launchpad PPA
    3. metadata - who
      • User
        • internal
      • SysAdmin
        • package stuff!
      • Dev
        • package stuff!
    4. whatis packaging
      • packages
      • .C.R.U.D.
      • package managers
      • related tools
    5. why packaging?
    6. base
      • “wrapper” around shellscripts
    7. across distros
      • Debian (Ubuntu)
      • Fedora (Redhat)
      • Gentoo
      • Foresight (rPath)
    8. Debian
      • 1: dpkg
      • deps: apt
    9. debian/rules
      • makefile targets
        • build
        • binary
          • .deb
          • arch, indep
        • clean
    10. debian/rules: from scratch
      • Makefile repeats
        • remember autotools?
    11. debhelper
      • debhelper
        • dh_make
          • generate scaffold debian/* (rules)
        • dh_*
          • wrapper scripts
      • scaffold pic
    12. cdbs
      • debhelper all over
      • refactor common code
      • include debhelper.mk
      • dpatch
      • autotools
      • gnome, kde, xfce
      • perl, python, ant
    13. cdbs: append
      • append
        • build::
        • build/mysql-common::
        • build/mysql-client::
        • build/mysql-server::
    14. cdbs: next
      • dbconfig-common
      • wwwconfig-common
      • webapps-common
      • (mozilla-extension)
      • more, please
    15. debian/control: apt
      • package metadata
      • Build-Depends
      • Depends
      • Conflicts
      • Suggests, Recommends
    16. Debian: packaging dev
      • package archive
        • can't wrap my head around it.
      • use Launchpad PPA
    17. Debian: A&D
      • dpkg-divert
      • debconf
      • packaging info all over the place
        • debian/rules
        • debian/control
        • debian/install
    18. Gentoo
      • 1: ebuild
      • deps: emerge
        • paludis
    19. Gentoo: ebuild
      • ebuild: shell functions
      • src_unpack()
        • get source & patch
      • src_compile()
        • configure & make
      • src_install()
        • make install
      • src_test()
        • make test
    20. Gentoo: ebuild (cont.)
      • pkg_preinst()
        • enewgroup & enewuser
      • (merge)
      • pkg_postinst()
        • gnome: menu item entry, mime handler
      • pkg_config()
        • mysql: init db, password
    21. Gentoo: ebuild: inst v. rm
      • pkg_preinst()
      • (merge)
      • pkg_postinst()
      • pkg_prerm()
      • (unmerge)
      • pkg_postrm()
    22. Gentoo: portage
      • package metadata
      • DEPENDS
        • conflicts: !package
      • RDEPENDS
    23. Gentoo: eclasses
      • ebuild: “object-oriented” shell functions
      • inheritance
      • gnome, kde, xfce, rox, enlightenment
      • python, ruby, perl, mono, java
      • vim, elisp, xemacs
      • perl-module, gems, php-pear-r1
    24. Gentoo: eclass
      • inherit gnome2 python
      • gnome2_src_unpack
      • python_src_unpack
      • src_unpack?
        • python_src_unpack
      • order matters
    25. Gentoo: eclass notes
      • eclass
        • refactor common code
        • cvs, subversion, git, darcs (“live ebuilds”)
        • webapps
          • multi-instance
          • vhosts
          • Debian: webapps-common
        • gems, php-pear
        • perl-module: g-cpan
    26. Gentoo: packaging dev
      • overlays
        • /usr/portage
        • /usr/local/portage
        • sunrise
        • gnome
        • overlays.gentoo.org
        • YOURs!
      • version bump:rename
    27. Fedora/Redhat
      • 1: rpm
      • deps: yum, up2date, zypp, urpmi
    28. rpm specfiles
      • shellscript
      • sections (& macros)
        • %prep
          • %setup: unpack
          • %patch
        • %build
          • %configure
        • %install
          • %makeinstall
    29. specfiles: into rpm
      • %files
        • %doc
        • %config(noreplace)
          • *.rpmnew
        • %attr(0644, root, root)
          • %defattr
      • `rust` helps
    30. specfiles: inst v. rm
      • %pre
      • (install)
      • %post
      • %preun
      • (uninstall)
      • %postun
    31. specfiles: (belated) introduction
      • package metadata
      • Name, %description
      • Requires, Conflicts
    32. specfiles: A&D
      • %triggerin
      • %triggerun
      • many tools:
        • rpm2targz
        • alien
        • apt-rpm
      • Fedora, OpenSuSE, and Mandriva don't share macros
    33. rPath/Foresight
      • 1: cvc (kinda)
      • deps: conary
    34. conary package.recipe
      • class Foo(PackageRecipe)
        • def setup(r)
          • r.addArchive('http://...')
          • r.addPatch()
          • r.Configure('--with-gtk')
          • r.Make('all')
          • r.MakeInstall()
          • r.Run('ls')
      • AutoPackageRecipe
    35. super classes
      • AutoPackageRecipe
      • Gnome PR
      • kdeCore PR
      • CPAN PR
      • RPM PR
    36. super classes (2)
      • multiple inheritance
        • Python mixin
    37. cvc
      • pkg repo~ver ctrl repo
      • cvc newpkg
      • cvc co
      • (edit, cook .recipe)
      • cvc ci
      • distributed VCS repo
      • shadow (branch)
      • co
      • (edit, cook .recipe)
      • ci
      • merge
      • (upstream) promote (pull)
    38. conary A&D
      • Python
      • dvcs
      • rollback
      • changeset:config files
      • steep learning curve
        • trove, flavor, ...
      • verbose syntax to specify package
        • Tom Lord's Arch
        • shortcuts :)
      • relatively young
    39. Loose Ends
    40. chroots
      • Debian: pbuilder
      • Fedora: mock
      • rPath: rmake
      • Gentoo: catalyst
        • LiveCD
    41. Build Services
      • Ubuntu: Launchpad PPA (apt repo)
      • Fedora: Koji
      • rPath: rBuilder Online (VM)
      • OpenSuSE: Build Service (obs) (one click)
        • open source!
      • Gentoo: tinderbox
        • some dude's DistCC farm
    42. Devs: why pkg-ing?
      • build system
      • distribution system
        • LP PPA
        • obs 1 click install
    43. SysAdmins: why pkg-ing?
      • “encode” best practices
        • apache2
        • phpmyadmin
        • don't document, package!
    44. users: why pkg-ing?
      • “easier” deployment
        • pre-built
        • dependencies
    45. what's next
    46. what's next: CPANism
      • Perl CPAN, Ruby gems, PHP PEAR & PECL, PyPI, R CRAN
      • Mozilla extensions, Eclipse plugins
      • should os distro handle this?
        • if so, how?
          • Debian: manual (py-support, py-central)
          • Gentoo: auto-generate
            • ex needed by non-Perl
              • 666+
        • if not, how?
    47. what's next: Java
      • current practice: bundle JARs
      • Gentoo is doing fun stuff
      • Maven
    48. what's next: PackageKit
      • one UI to rule them all
        • apt
        • conary
        • yum
        • zypp
        • ...
    49. what's next: Windows
      • Pidgin: GTK
      • XChat: GTK
      • GIMP: GTK
      • KDE on Windows
      • Games: DirectX
    50. exit
      • Things are getting better
      • Many challenges ahead
      • Thanx!
    51. Q&A
    52. References
      • http://docs.fedoraproject.org/drafts/rpm-guide-en/index.html
      • http://wiki.rpath.com/
      • http://www.packagekit.org/
      • http://flickr.com/photos/mknowles/47457221/sizes/m/
      • http://www.supermanhomepage.com/multimedia/Wallpaper-Images/superman-supergirl-tb.html
      • http://flickr.com/photos/juiceboxgasoline/98539782/
      • http://flickr.com/photos/drh/2256587356/
      • http://www.fpa.nifc.gov/Library/Documentation/FPA_PM_Reference_Information/Output/images/gis_layers.jpg

    + Eddy MulyonoEddy Mulyono, 2 years ago

    custom

    570 views, 1 favs, 1 embeds more stats

    More info about this document

    CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

    Go to text version

    • Total Views 570
      • 565 on SlideShare
      • 5 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 13
    Most viewed embeds
    • 5 views on http://lj-toys.com

    more

    All embeds
    • 5 views on http://lj-toys.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories