Maintaining The Best

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 Group

    Maintaining The Best - Presentation Transcript

    1. Maintaining the be*st (fighting Perl and CPAN module authors for a better world) Ulrich Habel (rhaen@NetBSD.org)
    2. Not everything... Is settled ... ...thanks for the courage to all developers...
    3. NetBSD... NetBSD is a multi architecture operating system which has its roots in 386BSD. NetBSD supports over 54 ports which can be built from a single source tree. It's well known for its clearness of code and portability.
    4. Quote / Tales „gcc finds bugs in Linux, NetBSD finds bugs in gcc.“ Michael Dexter, Systems 2008
    5. NetBSD Package Collection The NetBSD package collection is a subtree inside the NetBSD project. The goal of the project is to provide a mature and stable package management system. pkgsrc is: ● A sourcecode management system ● A buildsystem ● A system to administrate binary packages ● Independend of the Operating System
    6. pkgsrc in detail ● Available for more than 15 platforms ● Forked from the FreeBSD ports system in 1997 ● Wrappers are used to provide an OS independend layer ● Is the only usable way to build software on HPUX and AIX ● Provides an advanced Solaris 7/8/9 userland
    7. ... ...catch breath...
    8. Who am I? ● Ulrich Habel ● IRC: Rhaen ● Blog: http://www.pkgbox.org ● NetBSD developer since 2007 ● Active inside the NetBSD Community since 1999 ● Work area Perl, p5-* ● Perl Smoking, cpan-testing
    9. Agenda ● Perl and pkgsrc ● Fix only what's broken ● Patch - what's the best way? ● A management besides CPAN? ● Dependencies ● Up-to-date Check of Perl modules in pkgsrc ● Fighting CPAN (Modules|Authors) ● Perl Smoking & CPAN Smoking
    10. Perl and pkgsrc ● Perl is an important part of the NetBSD Package Collection ● The last bulkbuild from pkgsrc-2008Q4 resulted in: – 8222 packages in total – 3483 packages had a dependency to Perl
    11. Growth of /p5-* in pkgsrc
    12. Fix only what's broken ● pkgsrc has its home on many platforms and OS ● patches need to be applied cleanly everywhere without breaking an architecture
    13. Patch – what's the right way? [...] case \"$osvers\" in 0.9*|1.[012]*|1.3|1.3.1) d_setregid=\"$undef\" d_setreuid=\"$undef\" ;; esac case \"$osvers\" in 0.9*|1.*|2.*|3.*|4.*) d_getprotoent_r=\"$undef\" d_getprotobyname_r=\"$undef\" d_getprotobynumber_r=\"$undef\" [...] (src: hints/netbsd.sh)
    14. Correct or false? --- hints/netbsd.sh.orig +++ hints/netbsd.sh @@ -79,7 +79,7 @@ case \"$osvers\" in ;; esac case \"$osvers\" in -0.9*|1.*|2.*|3.*|4.*) +0.9*|1.*|2.*|3.*|4.*|5.*) d_getprotoent_r=\"$undef\"
    15. Problems with dependencies ● Modules depend on each other ● What is broken if a module can't be built anymore?
    16. A management besides CPAN? ● CPAN works well for CPAN modules ● CPAN is horrible slow on older hardware (Ex.: Installation of Catalyst on Soekris Net-4801 ~ 36 hours) ● CPAN isn't able to work with patches in a general way suitable for the package collection ● CPAN doesn't care for binary packages ● User experience – one package management
    17. Dependencies part I Perl – Modul (Makefile.PL): - 'netbsd' => [ '' , '-lcurses -ltermcap' ], + 'netbsd' => { + 'bsd' => [ '' => '-lcurses -ltermcap' ], + 'ncurses' => [ '' => '-lncurses' ], + 'default' => 'ncurses' + }, Inside of the pkgsrc Makefile: .include \"../../devel/ncurses/buildlink3.mk\"
    18. Up-to-date check of moduls ● Once a week all the modules are checked if they are out-of-date (p2c) ● Report for all modules or per maintainer ● In YAML available ● „Maintainer Blame Report“ http://www.pkgbox.org/p2c
    19. p2c – pkgsrc update report
    20. p2c - „Maintainer blame report“
    21. Problems with Perl modules I ● Common problem: wrong or misformed version strings Example: Calendar::Simple ● Current version CPAN: 1.20 ● $version is being generated by Subversion revision numbers
    22. Calendar::Simple ● version string inside the module: our $VERSION = sprintf \"%d\", '$Revision: 44 $ ' =~ /(\\d+)/; ● Check for the version of the modules perl -MCalendar::Simple \\ -e 'print $Calendar::Simple::VERSION. \"\\n\"' 44
    23. Calendar::Simple ● Version check using the CPAN module perl ­MCPAN \\ ­e 'printf(\"CPAN Ver: %s\\n\", CPAN::Shell­>expand(\"Module\",  \"Calendar::Simple\")­>cpan_version);' CPAN Ver: 44
    24. Problems with Perl modules II ● version downgrades ● pkgsrc uses the version number of a module to determine if a package is newer ● CPAN allows floating point version strings ● Solution: unresolved
    25. Example devel/p5-AnyEvent Revision history for Perl extension AnyEvent. 4.34 Thu Feb 12 18:32:45 CET 2009 - [...] 4.331 Tue Jan 6 21:07:25 CET 2009 - [...] 4.33 Fri Nov 21 02:35:40 CET 2008 - [...]
    26. Problems with Perl modules III ● Missing Changelogs 2007-05-21 <joshua@always.joy.eth.net> * Event is now stored in GIT. You can grab a copy with \"git clone git://nirmalvihar.info/home/joshua/event.git\". I will not be updating this ChangeLog anymore because the full history plus changelog will be stored in GIT. ● Unfortunatelly the dns fails with resolving
    27. Do you smoke? ● Perl smoke testing – Downloading Perl of the GIT repo – Compiling of Perl and running the test suite smokers-reports@perl.org – Support by module Test::Smoke – current builds: FreeBSD, NetBSD, Darwin, Win32, HPUX, AIX, Solaris, Linux
    28. Do you smoke – issues ● perl.org does not accept mail from dynamic Ips ● Mail doesn't protect privacy of the sending host ● Test::Smoke is in full development, self-update would be useful (they are working on it)
    29. Do you smoke? CPAN ● Testing of all available modules on CPAN ● Results will be sent to cpan-testers@cpan.org ● Simple: cpan> install CPAN::Reporter cpan> o conf init test_report
    30. Do you smoke – CPAN II ● Install the module CPAN::Reporter::Smoker for bulk testing (smoke testing) ● It's useful to set up a mirror of CPAN (CPAN::Mini)
    31. Do you smoke – CPAN issues ● documentation is just bad – or missing - or.... ● Full setup of a mail server required ● sendmail as binary is possible – but the smoke hangs until the mail has been delivered ● HTTP Delivery possible - anyone?
    32. Seti? Smoke everyone! ● Using CPAN::Reporter we could improve the quality of CPAN ● Better code will make CPAN work more efficiently ● Communikation author – user has to be improved ● Make it simpler
    33. Quote/Tales „Where do you want to go today?“ Microsoft, 1994
    34. Questions? ● Ask them! ● Presentation: http://pkgbox.org/Perl btw, NetBSD will be released soon

    + Ulrich HabelUlrich Habel, 5 months ago

    custom

    202 views, 0 favs, 0 embeds more stats

    This is a presentation about maintaining Perl modul more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 202
      • 202 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    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

    Groups / Events